diff --git a/code/modules/mob/living/carbon/human/species_types/ethereal.dm b/code/modules/mob/living/carbon/human/species_types/ethereal.dm index 78433e8dbdad..a1db3d34c6a9 100644 --- a/code/modules/mob/living/carbon/human/species_types/ethereal.dm +++ b/code/modules/mob/living/carbon/human/species_types/ethereal.dm @@ -119,6 +119,7 @@ to_chat(H, "You were interupted!") return ADD_TRAIT(H,TRAIT_IMMOBILIZED,SPECIES_TRAIT) + ADD_TRAIT(H,TRAIT_PUSHIMMUNE,SPECIES_TRAIT) to_chat(H, "You root into the ground and begin to feed.") while(do_after(H, E.root_time, target = H)) @@ -132,10 +133,7 @@ if(stomach.crystal_charge > charge_limit) stomach.crystal_charge = ELZUOSE_CHARGE_FULL H.visible_message("[H] is digging out of the ground.","You finish rooting and begin digging yourself out.","You hear digging.") - if(do_after(H, E.dig_time,target = H)) - to_chat(H, "You finish digging yourself out.") - REMOVE_TRAIT(H,TRAIT_IMMOBILIZED,SPECIES_TRAIT) - return + E.digout(H, E) else to_chat(H, "You can't recieve charge from rooting!") break @@ -151,16 +149,22 @@ H.apply_damage(8,BRUTE,BODY_ZONE_R_LEG) H.say("*scream") REMOVE_TRAIT(H,TRAIT_IMMOBILIZED,SPECIES_TRAIT) + REMOVE_TRAIT(H,TRAIT_PUSHIMMUNE,SPECIES_TRAIT) return - to_chat(H, "Your rooting was interupted and you begin digging yourself out.") - if(do_after(H, E.dig_time,target = H)) - H.visible_message("[H] is digging out of the ground.","You finish rooting and begin digging yourself out.","You hear digging.") - REMOVE_TRAIT(H,TRAIT_IMMOBILIZED,SPECIES_TRAIT) - return + H.visible_message("[H] is digging out of the ground.","Your rooting was interupted and you begin digging yourself out.","You hear digging.") + E.digout(H, E) REMOVE_TRAIT(H,TRAIT_IMMOBILIZED,SPECIES_TRAIT) + REMOVE_TRAIT(H,TRAIT_PUSHIMMUNE,SPECIES_TRAIT) return +/datum/species/elzuose/proc/digout(mob/living/carbon/human/H, datum/species/elzuose/E) + if(do_after(H, E.dig_time,target = H)) + to_chat(H, "You finish digging yourself out.") + REMOVE_TRAIT(H,TRAIT_IMMOBILIZED,SPECIES_TRAIT) + REMOVE_TRAIT(H,TRAIT_PUSHIMMUNE,SPECIES_TRAIT) + return + /datum/action/innate/root/IsAvailable() if(..()) var/mob/living/carbon/human/H = owner