Jump to content

Aura for transforming player, HOT and COLD auras


Recommended Posts

Greetings,
i tend to not ask for questions and search really deeply inside all the forums to solve most of my questions however today i have ran into an issue.
I have this character whom has 2 distinct forms, both a "cold" form and a "hot" form,

the hot form should have a high level of "warm/winter" insulation (she can still overheat) and an aura around her that would warm other characters around her (Overheating them quickly), or even burn them if they get too close. (hugging distance) She should also be able to handle fire damage very well, but not invulnerable to it, according to the time of day. (stronger defense at day, weaker defense at night.)

The Ice form should have a high level of "cold/summer" insulation (she can still freeze) an an aura around her that would cool other characters around her (could make them (freezing them quickly), or even make them freeze in their spot if they get too close (hugging distance) She should also be able to handle cold/freezing damage very well, according to the time of day. (stronger defense at night, weaker defense at day.), by not having as high of a chance to "freeze", but not invulnerable to it.

as you can see they are kinda literal opposites of one-another.

i would say -/+ one degree Celsius per second, either hot or cold.
the burn effect or freeze effect should be when they get too close
her insulation levels should be high enough for her to be good, but can still die of cold/hot temps, also, the opposite should be for either form, aka, hot form cant handle hot/summer very well, and cold form cant handle cold/winter very well.

(i am aware that the auras don't affect her, which is a good thing for the character)

Afform is the "cold" character.
sfform is the "hot" character.


However i ran into the following problems:
-it seems that either i do not know, or i cant set a cold aura as one form (with a tag "afform") then the hot aura as the other form (with a tag "sfform")
-Im unsure what are the starter "insulation levels" and what could be possibly recommended as a strong insulation start but not pure immunity (like using MAX TEMP or anything like that.).
-im unsure how to be able to "burn" or "freeze" other characters at hugging distance.

Heres the code that's related to that information:

(the code is cut from the main code because it runs as intended, ergo, the form changes to the proper things (sanity, running, etc) in their proper times of day, and im only trying to seek help with this particular area and not asking for the whole character to be made.)
 

if TheWorld.state.phase == "day" then
        if inst:HasTag("afform") then
        inst.components.sanity.dapperness = TUNING.DAPPERNESS_HUGE
        inst.components.locomotor.runspeed = (TUNING.WILSON_RUN_SPEED * 2.0)
        inst.components.locomotor.walkspeed = (TUNING.WILSON_RUN_SPEED * 2.0)
        inst.components.hunger.hungerrate = 1 * TUNING.WILSON_HUNGER_RATE
        inst.components.combat.damagemultiplier = .6
        inst.components.health.fire_damage_scale = 1
        inst.components.temperature.inherentinsulation = -300
        inst.components.temperature.summerinsulation = 300
		inst.components.heater.heatfn = function() return -500 end
        inst.Light:Enable(false)
            
        elseif inst:HasTag("sfform") then
        inst.components.sanity.dapperness = -TUNING.DAPPERNESS_HUGE
        inst.components.locomotor.runspeed = (TUNING.WILSON_RUN_SPEED * .8)
        inst.components.locomotor.walkspeed = (TUNING.WILSON_RUN_SPEED * .8)
        inst.components.hunger.hungerrate = 1 * TUNING.WILSON_HUNGER_RATE
        inst.components.combat.damagemultiplier = 1.8
        inst.components.health.fire_damage_scale = .2
        inst.components.temperature.inherentinsulation = 300
        inst.components.temperature.summerinsulation = -300
		inst.components.heater.heatfn = function() return 100 end
        inst.Light:Enable(false)
            
        end
        
        
	elseif TheWorld.state.phase == "dusk" then
        if inst:HasTag("afform") then
        inst.components.combat.damagemultiplier = 1
		inst.components.sanity.dapperness = TUNING.DAPPERNESS_SMALL
        inst.components.locomotor.runspeed = (TUNING.WILSON_RUN_SPEED * 1)
        inst.components.locomotor.walkspeed = (TUNING.WILSON_RUN_SPEED * 1)
        inst.components.combat.damagemultiplier = .6
        inst.components.health.fire_damage_scale = 1
        inst.components.temperature.inherentinsulation = -300
        inst.components.temperature.summerinsulation = 300
		inst.components.heater.heatfn = function() return -500 end
		inst.Light:Enable(false)
            
        elseif inst:HasTag("sfform") then
        inst.components.combat.damagemultiplier = 1
		inst.components.sanity.dapperness = TUNING.DAPPERNESS_SMALL
        inst.components.locomotor.runspeed = (TUNING.WILSON_RUN_SPEED * 1)
        inst.components.locomotor.walkspeed = (TUNING.WILSON_RUN_SPEED * 1)
        inst.components.combat.damagemultiplier = 1.8
        inst.components.health.fire_damage_scale = .2
        inst.components.temperature.inherentinsulation = 300
        inst.components.temperature.summerinsulation = -300
		inst.components.heater.heatfn = function() return 100 end
		inst.Light:Enable(false)
        end
        
        
	elseif TheWorld.state.phase == "night" then
		if inst:HasTag("afform") then
        inst.components.sanity.dapperness = -TUNING.DAPPERNESS_HUGE
        inst.components.locomotor.runspeed = (TUNING.WILSON_RUN_SPEED * .8)
        inst.components.locomotor.walkspeed = (TUNING.WILSON_RUN_SPEED * .8)
        inst.components.combat.damagemultiplier = .6
        inst.components.health.fire_damage_scale = 1
        inst.components.temperature.inherentinsulation = -300
        inst.components.temperature.summerinsulation = 300 
		inst.components.heater.heatfn = function() return -500 end
            
        inst.entity:AddLight()
        inst.Light:SetRadius(3)
        inst.Light:SetFalloff(1)
        inst.Light:SetIntensity(0.3)
        inst.Light:SetColour(246/255,237/255,4/255)
	    inst.Light:Enable(true)
            
        elseif inst:HasTag("sfform") then
        inst.components.sanity.dapperness = TUNING.DAPPERNESS_HUGE
        inst.components.locomotor.runspeed = (TUNING.WILSON_RUN_SPEED * 2.0)
        inst.components.locomotor.walkspeed = (TUNING.WILSON_RUN_SPEED * 2.0)
        inst.components.combat.damagemultiplier = 1.8
        inst.components.health.fire_damage_scale = .2
        inst.components.temperature.inherentinsulation = 300
        inst.components.temperature.summerinsulation = -300
		inst.components.heater.heatfn = function() return 100 end
        
        inst.entity:AddLight()
        inst.Light:SetRadius(3)
        inst.Light:SetFalloff(1)
        inst.Light:SetIntensity(0.3)
        inst.Light:SetColour(182/255,101/255,246/255)
	    inst.Light:Enable(true)
        end
	end

local master_postinit = function(inst)
	inst:AddTag("HASHEATER")
	inst:AddComponent("heater")
	inst.components.heater:SetThermics(true, false)
end

i apologize for the thousands of questions regarding this, and i hope anyone can help me with this issue.
Thank you.

Edit: mistakes and making it a bit more easier to read as it can get a bit confusing. also added one more nugget of info i forgot. oops.

-I should deeply thank the forums and the way they archive the issues, since i've never had to make a fourmpost until now, which means you guys do really help ppl out and others that tend not to be much more in the shadows about asking questions, due to whatever reason. i didn't see a double post of this particular issue so..i hope im the only one? maybe. im unsure. but still, thank you all.

Klairixia.

Edited by Klairixia
Link to comment
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
 Share

×
×
  • Create New...