icantevenname Posted July 19, 2019 Share Posted July 19, 2019 Not important, but is it possible to give modded characters the idle animations of other characters? Who are, as far as I know, Willow, Winona, Wormwood, and Wortox. And if my guess is correct, Warly and the original survivors once they get reworked. And yes, I'm slightly proud of the title. Link to comment Share on other sites More sharing options...
IronHunter Posted July 19, 2019 Share Posted July 19, 2019 It seems they added a unique variable inst.customidleanim For any character that wants to use this, you can either assign it a string name for animation or use a function to do a special task. Spoiler --From SGWilson State{ name = "funnyidle", tags = { "idle", "canrotate" }, onenter = function(inst) if inst.components.temperature:GetCurrent() < 5 then inst.AnimState:PlayAnimation("idle_shiver_pre") inst.AnimState:PushAnimation("idle_shiver_loop") inst.AnimState:PushAnimation("idle_shiver_pst", false) elseif inst.components.temperature:GetCurrent() > TUNING.OVERHEAT_TEMP - 10 then inst.AnimState:PlayAnimation("idle_hot_pre") inst.AnimState:PushAnimation("idle_hot_loop") inst.AnimState:PushAnimation("idle_hot_pst", false) elseif inst.components.hunger:GetPercent() < TUNING.HUNGRY_THRESH then inst.AnimState:PlayAnimation("hungry") inst.SoundEmitter:PlaySound("dontstarve/wilson/hungry") elseif inst.components.sanity:GetPercent() < .5 then inst.AnimState:PlayAnimation("idle_inaction_sanity") elseif inst:HasTag("groggy") then inst.AnimState:PlayAnimation("idle_groggy01_pre") inst.AnimState:PushAnimation("idle_groggy01_loop") inst.AnimState:PushAnimation("idle_groggy01_pst", false) elseif inst.customidleanim == nil then inst.AnimState:PlayAnimation("idle_inaction") else local anim = type(inst.customidleanim) == "string" and inst.customidleanim or inst:customidleanim() if anim ~= nil then if inst.sg.mem.idlerepeats == nil then inst.sg.mem.usecustomidle = math.random() < .5 inst.sg.mem.idlerepeats = 0 end if inst.sg.mem.idlerepeats > 1 then inst.sg.mem.idlerepeats = inst.sg.mem.idlerepeats - 1 else inst.sg.mem.usecustomidle = not inst.sg.mem.usecustomidle inst.sg.mem.idlerepeats = inst.sg.mem.usecustomidle and math.random(2) or math.ceil(math.random(5) * .5) end inst.AnimState:PlayAnimation(inst.sg.mem.usecustomidle and anim or "idle_inaction") else inst.AnimState:PlayAnimation("idle_inaction") end end end, events = { EventHandler("animqueueover", function(inst) if inst.AnimState:AnimDone() then inst.sg:GoToState("idle") end end), }, }, inst.customidleanim = "idle_wortox" Please see existing character files such as wormwood for better idea how to properly custom functions for idle animations. 1 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now