watermelen671

Return of Data Mining, Art Assets, Model Dumping & More! (SPOILERS!)

Recommended Posts

Wardin25    2199
10 hours ago, -Variant said:

I thought I posted this already but obviously not. It was suggested I put these here so I shall.
Anyhow I was doing some digging and found out that the giant eye in the sky is indeed named Alter, here's the animations of it revealing and hiding itself.
alter_reveal.gif.99c814b2bf0d7d1ec182538e078cb04c.gifalter_hide.gif.918999389476c388836b2b2d3c368b48.gif

Thats the icon for the new full moon nights (the ones while moonstorm is activated)

  • Like 2

Share this post


Link to post
Share on other sites
QuartzBeam    4798
1 hour ago, Wardin25 said:

Thats the icon for the new full moon nights (the ones while moonstorm is activated)

Is that supposed to contradict what Variant said?

  • Like 2
  • Sanity 1

Share this post


Link to post
Share on other sites
lakhnish    2374

Can someone get me the animation of the Lord of the Fruitfly just flying? I'd appreciate it. Thanks.

Edited by lakhnish

Share this post


Link to post
Share on other sites
HowlVoid    2938
2 minutes ago, thegreatJash said:

This needs to have some of cap.

Holy holyga.

The champion be like, "I am speed."

  • Like 1
  • Haha 1
  • Ninja 1
  • Wavey 1

Share this post


Link to post
Share on other sites
HeatAndRun    2050

Did you guys know... The gestalts don't attack you when you're wearing an enlightened crown? Like a bone helm. You don't need to struggle with every night's lunacy effect if you have an enlightened crown when you're gonna exploit the perma full moon!

Edited by HeatAndRun
  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites
thegreatJash    1535
1 minute ago, HeatAndRun said:

Did you guys know... The gestalts don't attack you when you're wearing an enlightened crown? Like a bone helm. You don't need to struggle with every night's lunacy effect if you have an enlightened crown when you're gonna exploit the perma full moon!

I never seemed to notice this. That's really cool, but I still think it's sanity threshold needs lowering.

  • Sad 1

Share this post


Link to post
Share on other sites
QuartzBeam    4798
40 minutes ago, thegreatJash said:

I never seemed to notice this.

That's cause it was only added when the crown became deconstructible.

  • Thanks 2

Share this post


Link to post
Share on other sites
Tim S.    401

Does anyone know if and where the Archive Sigil is used?1890042795_ArchiveSigil.png.3f8f1f4727f3aebdca6b734f5eee7f2d.png
It's found under data/anim/archive_sigil.zip 

There's an animation included, but I couldn't get it to run..

 

 

And while I'm here, could anyone of you help me understand the brightmare_gestalt_invaderbrain.lua file found in scripts/brains?
 

Spoiler

require "behaviours/chaseandattack"
require "behaviours/panic"
require "behaviours/attackwall"
require "behaviours/leash"
require "behaviours/standstill"

local WORK_DIST = 3 --must be greater than physics radii
local LOST_DIST = 60
local RETURN_DIST = 15
local BASE_DIST = 6

local LOST_TIME = 5
local AGGRO_TIME = 6
local PETRIFY_TIME = 3
local PETRIFY_TIME_VAR = 1

local MoonBeastBrain = Class(Brain, function(self, inst)
    Brain._ctor(self, inst)
    self._losttime = nil
    self._petrifytime = nil
end)

local function GetInvadeTarget(inst)
    return inst.components.entitytracker:GetEntity("invadeTarget")
end

local function LostInvadeTarget(self)
    local target = GetInvadeTarget(self.inst)
    if target ~= nil and self.inst:IsNear(target, LOST_DIST) then
        self._losttime = nil
        return false
    elseif self._losttime == nil then
        self._losttime = GetTime()
        return false
    end
    return GetTime() - self._losttime > LOST_TIME
end

local function LostMoonCharge(self)
    local target = GetInvadeTarget(self.inst)
    if target == nil or
        (   target.components.timer ~= nil and
            target.components.timer:TimerExists("InvadeTarget") ) then
        self._petrifytime = nil
        return false
    elseif self._petrifytime == nil then
        self._petrifytime = GetTime() + GetRandomWithVariance(PETRIFY_TIME, PETRIFY_TIME_VAR)
        return false
    end
    return GetTime() > self._petrifytime
end

local function ShouldTargetInvadeTarget(inst)
    local target = GetInvadeTarget(inst)
    return target ~= nil
        and target:HasTag("wagstaff_npc")
        --and target.components.timer ~= nil
        --and target.components.timer:TimerExists("InvadeTarget")
        and GetTime() - inst.components.combat:GetLastAttackedTime() > AGGRO_TIME
end

local function GetInvadeTargetPos(inst)
    local target = GetInvadeTarget(inst)
    return target ~= nil and target:GetPosition() or nil
end

local function AttackInvadeTarget(inst)
    --inst:PushEvent("workmoonbase", { invadetarget = GetInvadeTarget(inst) })
end

local BREAKSKELETONS_MUST_TAGS = { "playerskeleton", "HAMMER_workable" }
local function BreakSkeletons(inst)
    local skel = FindEntity(inst, 1.25, nil, BREAKSKELETONS_MUST_TAGS)
    if skel ~= nil then
        skel.components.workable:WorkedBy(inst, 1)
    end
end

local function shouldspit(inst)
    if inst:HasTag("gestalt_invader_spitter") then
        if inst.components.combat.target and not inst.components.timer:TimerExists("spit_cooldown") then
            return true
        end
    end
end

local function spit(inst)
    local act = BufferedAction(inst, inst.components.combat.target, ACTIONS.TOSS)
    return act
end

local function shouldwaittospit(inst)
    if inst:HasTag("gestalt_invader_spitter") then
        if inst.components.combat.target then
            if inst:GetDistanceSqToInst(inst.components.combat.target) <= 4*4 then
                return true
            end
        end
    end
end

function MoonBeastBrain:OnStart()
    local root = PriorityNode(
    {
        WhileNode(function() return self.inst.components.hauntable ~= nil and self.inst.components.hauntable.panic end, "PanicHaunted", Panic(self.inst)),
        WhileNode(function() return self.inst.components.health.takingfiredamage end, "OnFire", Panic(self.inst)),

        --Teleported away, or moonbase got removed
        WhileNode(function() return LostInvadeTarget(self) end, "Lost Target",
            ActionNode(function() self.inst.components.health:Kill() end)),

        WhileNode(function() return shouldspit(self.inst) end, "Spit",
            DoAction(self.inst, spit)),
        
        WhileNode(function() return shouldwaittospit(self.inst) end, "waittospit",
            StandStill(self.inst)),

        SequenceNode{
            ActionNode(function() BreakSkeletons(self.inst) end),
            AttackWall(self.inst),
            ActionNode(function() self.inst.components.combat:ResetCooldown() end),
        },

        WhileNode(function() return ShouldTargetInvadeTarget(self.inst) end, "InvadeTarget",
            PriorityNode({
                Leash(self.inst, function() return GetInvadeTarget(self.inst):GetPosition() end, WORK_DIST, WORK_DIST),
                ActionNode(function() AttackInvadeTarget(self.inst) end),
                StandStill(self.inst),
            })),

        ChaseAndAttack(self.inst, 100),
        Leash(self.inst, GetInvadeTargetPos, RETURN_DIST, BASE_DIST),
        Panic(self.inst),
    }, .25)

    self.bt = BT(self.inst, root)
end

return MoonBeastBrain
 

I'm not much of a coder myself, but it looks to me like a Moonbase/Wagstaff-Type event, except with Gestalts I reckon? Did Klei just plan on using Gestalts instead of mutated birds originally and scrapped the idea? What creature has the tag "gestalt_invader_spitter"?

Would really appreciate the help of someone who actually knows what's going on here haha

Thanks in advance!

  • Like 2

Share this post


Link to post
Share on other sites
Hornete    8931
34 minutes ago, Tim S. said:

And while I'm here, could anyone of you help me understand the brightmare_gestalt_invaderbrain.lua file found in scripts/brains?
 

  Reveal hidden contents

require "behaviours/chaseandattack"
require "behaviours/panic"
require "behaviours/attackwall"
require "behaviours/leash"
require "behaviours/standstill"

local WORK_DIST = 3 --must be greater than physics radii
local LOST_DIST = 60
local RETURN_DIST = 15
local BASE_DIST = 6

local LOST_TIME = 5
local AGGRO_TIME = 6
local PETRIFY_TIME = 3
local PETRIFY_TIME_VAR = 1

local MoonBeastBrain = Class(Brain, function(self, inst)
    Brain._ctor(self, inst)
    self._losttime = nil
    self._petrifytime = nil
end)

local function GetInvadeTarget(inst)
    return inst.components.entitytracker:GetEntity("invadeTarget")
end

local function LostInvadeTarget(self)
    local target = GetInvadeTarget(self.inst)
    if target ~= nil and self.inst:IsNear(target, LOST_DIST) then
        self._losttime = nil
        return false
    elseif self._losttime == nil then
        self._losttime = GetTime()
        return false
    end
    return GetTime() - self._losttime > LOST_TIME
end

local function LostMoonCharge(self)
    local target = GetInvadeTarget(self.inst)
    if target == nil or
        (   target.components.timer ~= nil and
            target.components.timer:TimerExists("InvadeTarget") ) then
        self._petrifytime = nil
        return false
    elseif self._petrifytime == nil then
        self._petrifytime = GetTime() + GetRandomWithVariance(PETRIFY_TIME, PETRIFY_TIME_VAR)
        return false
    end
    return GetTime() > self._petrifytime
end

local function ShouldTargetInvadeTarget(inst)
    local target = GetInvadeTarget(inst)
    return target ~= nil
        and target:HasTag("wagstaff_npc")
        --and target.components.timer ~= nil
        --and target.components.timer:TimerExists("InvadeTarget")
        and GetTime() - inst.components.combat:GetLastAttackedTime() > AGGRO_TIME
end

local function GetInvadeTargetPos(inst)
    local target = GetInvadeTarget(inst)
    return target ~= nil and target:GetPosition() or nil
end

local function AttackInvadeTarget(inst)
    --inst:PushEvent("workmoonbase", { invadetarget = GetInvadeTarget(inst) })
end

local BREAKSKELETONS_MUST_TAGS = { "playerskeleton", "HAMMER_workable" }
local function BreakSkeletons(inst)
    local skel = FindEntity(inst, 1.25, nil, BREAKSKELETONS_MUST_TAGS)
    if skel ~= nil then
        skel.components.workable:WorkedBy(inst, 1)
    end
end

local function shouldspit(inst)
    if inst:HasTag("gestalt_invader_spitter") then
        if inst.components.combat.target and not inst.components.timer:TimerExists("spit_cooldown") then
            return true
        end
    end
end

local function spit(inst)
    local act = BufferedAction(inst, inst.components.combat.target, ACTIONS.TOSS)
    return act
end

local function shouldwaittospit(inst)
    if inst:HasTag("gestalt_invader_spitter") then
        if inst.components.combat.target then
            if inst:GetDistanceSqToInst(inst.components.combat.target) <= 4*4 then
                return true
            end
        end
    end
end

function MoonBeastBrain:OnStart()
    local root = PriorityNode(
    {
        WhileNode(function() return self.inst.components.hauntable ~= nil and self.inst.components.hauntable.panic end, "PanicHaunted", Panic(self.inst)),
        WhileNode(function() return self.inst.components.health.takingfiredamage end, "OnFire", Panic(self.inst)),

        --Teleported away, or moonbase got removed
        WhileNode(function() return LostInvadeTarget(self) end, "Lost Target",
            ActionNode(function() self.inst.components.health:Kill() end)),

        WhileNode(function() return shouldspit(self.inst) end, "Spit",
            DoAction(self.inst, spit)),
        
        WhileNode(function() return shouldwaittospit(self.inst) end, "waittospit",
            StandStill(self.inst)),

        SequenceNode{
            ActionNode(function() BreakSkeletons(self.inst) end),
            AttackWall(self.inst),
            ActionNode(function() self.inst.components.combat:ResetCooldown() end),
        },

        WhileNode(function() return ShouldTargetInvadeTarget(self.inst) end, "InvadeTarget",
            PriorityNode({
                Leash(self.inst, function() return GetInvadeTarget(self.inst):GetPosition() end, WORK_DIST, WORK_DIST),
                ActionNode(function() AttackInvadeTarget(self.inst) end),
                StandStill(self.inst),
            })),

        ChaseAndAttack(self.inst, 100),
        Leash(self.inst, GetInvadeTargetPos, RETURN_DIST, BASE_DIST),
        Panic(self.inst),
    }, .25)

    self.bt = BT(self.inst, root)
end

return MoonBeastBrain
 

I'm not much of a coder myself, but it looks to me like a Moonbase/Wagstaff-Type event, except with Gestalts I reckon? Did Klei just plan on using Gestalts instead of mutated birds originally and scrapped the idea? What creature has the tag "gestalt_invader_spitter"?

Would really appreciate the help of someone who actually knows what's going on here haha

Thanks in advance!

Yup! It looks like it was originally gonna be gestalts, Heck the functions that spawn the birds in the event still have names like "SpawnGestalt", the brightmare_gestalt_invaderbrain is identical to the mutant bird brain too!

 

36 minutes ago, Tim S. said:

Does anyone know if and where the Archive Sigil is used?1890042795_ArchiveSigil.png.3f8f1f4727f3aebdca6b734f5eee7f2d.png
It's found under data/anim/archive_sigil.zip 

There's an animation included, but I couldn't get it to run..

This is interesting! I don't think it's used anywhere, so its probably unused. There's only two "animations" named "on" and "off", theyre just the still images you posted there. "Off" being the white sign, "On" being the yellow sign.

  • Like 3
  • Thanks 1

Share this post


Link to post
Share on other sites
minespatch    86689
1 minute ago, Hornete said:

"Off" being the white sign, "On" being the yellow sign.

Makes me think of Oxygen not Included but for Thulian ancients.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now