mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-19 18:18:41 +01:00
Clean up diona-specific stuff in life()
This commit is contained in:
@@ -850,28 +850,6 @@
|
||||
if(status_flags & GODMODE)
|
||||
return 0 //godmode
|
||||
|
||||
var/obj/item/organ/internal/diona/node/light_organ = locate() in internal_organs
|
||||
|
||||
if(!isSynthetic())
|
||||
if(light_organ && !light_organ.is_broken())
|
||||
var/light_amount = 0 //how much light there is in the place, affects receiving nutrition and healing
|
||||
if(isturf(loc)) //else, there's considered to be no light
|
||||
var/turf/T = loc
|
||||
light_amount = T.get_lumcount() * 10
|
||||
nutrition += light_amount
|
||||
traumatic_shock -= light_amount
|
||||
|
||||
if(species.flags & IS_PLANT)
|
||||
if(nutrition > 450)
|
||||
nutrition = 450
|
||||
|
||||
if(light_amount >= 3) //if there's enough light, heal
|
||||
adjustBruteLoss(-(round(light_amount/2)))
|
||||
adjustFireLoss(-(round(light_amount/2)))
|
||||
adjustToxLoss(-(light_amount))
|
||||
adjustOxyLoss(-(light_amount))
|
||||
//TODO: heal wounds, heal broken limbs.
|
||||
|
||||
if(species.light_dam)
|
||||
var/light_amount = 0
|
||||
if(isturf(loc))
|
||||
@@ -899,14 +877,6 @@
|
||||
if(overeatduration > 1)
|
||||
overeatduration -= 2 //doubled the unfat rate
|
||||
|
||||
if(!isSynthetic() && (species.flags & IS_PLANT) && (!light_organ || light_organ.is_broken()))
|
||||
if(nutrition < 200)
|
||||
take_overall_damage(2,0)
|
||||
|
||||
//traumatic_shock is updated every tick, incrementing that is pointless - shock_stage is the counter.
|
||||
//Not that it matters much for diona, who have NO_PAIN.
|
||||
shock_stage++
|
||||
|
||||
// TODO: stomach and bloodstream organ.
|
||||
if(!isSynthetic())
|
||||
handle_trace_chems()
|
||||
|
||||
@@ -405,3 +405,33 @@
|
||||
qdel(D)
|
||||
|
||||
H.visible_message("<span class='danger'>\The [H] splits apart with a wet slithering noise!</span>")
|
||||
|
||||
/datum/species/diona/handle_environment_special(var/mob/living/carbon/human/H)
|
||||
if(H.inStasisNow())
|
||||
return
|
||||
|
||||
var/obj/item/organ/internal/diona/node/light_organ = locate() in H.internal_organs
|
||||
|
||||
if(light_organ && !light_organ.is_broken())
|
||||
var/light_amount = 0 //how much light there is in the place, affects receiving nutrition and healing
|
||||
if(isturf(H.loc)) //else, there's considered to be no light
|
||||
var/turf/T = H.loc
|
||||
light_amount = T.get_lumcount() * 10
|
||||
H.nutrition += light_amount
|
||||
H.shock_stage -= light_amount
|
||||
|
||||
if(H.nutrition > 450)
|
||||
H.nutrition = 450
|
||||
if(light_amount >= 3) //if there's enough light, heal
|
||||
H.adjustBruteLoss(-(round(light_amount/2)))
|
||||
H.adjustFireLoss(-(round(light_amount/2)))
|
||||
H.adjustToxLoss(-(light_amount))
|
||||
H.adjustOxyLoss(-(light_amount))
|
||||
//TODO: heal wounds, heal broken limbs.
|
||||
|
||||
else if(H.nutrition < 200)
|
||||
H.take_overall_damage(2,0)
|
||||
|
||||
//traumatic_shock is updated every tick, incrementing that is pointless - shock_stage is the counter.
|
||||
//Not that it matters much for diona, who have NO_PAIN.
|
||||
H.shock_stage++
|
||||
|
||||
Reference in New Issue
Block a user