mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-09 16:14:13 +00:00
Changeling Rapid Regen buff (#32717)
* fixes * tags * Update rapidregen.dm * Update rapidregen.dm * Update rapidregen.dm * Update rapidregen.dm * Update rapidregen.dm * Update rapidregen.dm
This commit is contained in:
@@ -558,6 +558,11 @@ Thanks.
|
||||
locked_to.unbuckle()
|
||||
locked_to = initial(src.locked_to)
|
||||
*/
|
||||
if(istype(src, /mob/living/carbon))
|
||||
var/mob/living/carbon/C = src
|
||||
dead_mob_list -= C
|
||||
living_mob_list |= list(C)
|
||||
|
||||
if(istype(src, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = src
|
||||
H.timeofdeath = 0
|
||||
|
||||
@@ -1,26 +1,41 @@
|
||||
/spell/changeling/rapidregen
|
||||
name = "Rapid Regeneration (30)"
|
||||
name = "Rapid Regeneration (40)"
|
||||
desc = "We evolve the ability to rapidly regenerate, negating the need for stasis."
|
||||
abbreviation = "RR"
|
||||
hud_state = "rapidregen"
|
||||
|
||||
spell_flags = NEEDSHUMAN
|
||||
spell_flags = NEEDSHUMAN | STATALLOWED
|
||||
|
||||
chemcost = 30
|
||||
charge_max = 100 SECONDS
|
||||
cooldown_min = 100 SECONDS
|
||||
|
||||
/spell/changeling/rapidregen/cast(var/list/targets, var/mob/living/carbon/human/user)
|
||||
chemcost = 40
|
||||
|
||||
var/mob/living/carbon/human/C = user
|
||||
..()
|
||||
/spell/changeling/rapidregen/cast_check(skipcharge = 0, var/mob/user = usr)
|
||||
. = ..()
|
||||
if (!.)
|
||||
return FALSE
|
||||
if(user.mind && user.mind.suiciding) //no reviving from suicides
|
||||
to_chat(user, "<span class='warning'>Why would we wish to regenerate if we have already committed suicide?</span>")
|
||||
return FALSE
|
||||
if(M_HUSK in user.mutations)
|
||||
to_chat(user, "<span class='warning'>We can not regenerate from this. There is not enough left to regenerate.</span>")
|
||||
return FALSE
|
||||
if(inuse)
|
||||
return FALSE
|
||||
if(!istype(usr, /mob/living/carbon/))
|
||||
return
|
||||
|
||||
/spell/changeling/rapidregen/cast(var/list/targets, var/mob/living/carbon/C)
|
||||
for(var/i = 0, i<10,i++)
|
||||
if(C)
|
||||
C.adjustBruteLoss(-10)
|
||||
C.adjustToxLoss(-10)
|
||||
C.adjustOxyLoss(-10)
|
||||
C.adjustFireLoss(-10)
|
||||
C.adjustBruteLoss(-5)
|
||||
C.adjustToxLoss(-5)
|
||||
C.adjustOxyLoss(-5)
|
||||
C.adjustFireLoss(-5)
|
||||
sleep(10)
|
||||
|
||||
C.rejuvenate(0)
|
||||
feedback_add_details("changeling_powers","RR")
|
||||
..()
|
||||
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
if (!.)
|
||||
return FALSE
|
||||
if(user.mind && user.mind.suiciding) //no reviving from suicides
|
||||
to_chat(user, "<span class='warning'>Why would we wish to regenerate if we have already committed suicide?")
|
||||
to_chat(user, "<span class='warning'>Why would we wish to regenerate if we have already committed suicide?</span>")
|
||||
return FALSE
|
||||
if(M_HUSK in user.mutations)
|
||||
to_chat(user, "<span class='warning'>We can not regenerate from this. There is not enough left to regenerate.</span>")
|
||||
@@ -47,6 +47,8 @@
|
||||
|
||||
feedback_add_details("changeling_powers","FD")
|
||||
|
||||
..()
|
||||
|
||||
/datum/action/lingrevive
|
||||
name = "Return to Life"
|
||||
desc = "Regenerate your body and continue to spread."
|
||||
@@ -57,19 +59,12 @@
|
||||
var/datum/role/changeling/changeling = owner.mind.GetRole(CHANGELING)
|
||||
var/mob/living/carbon/C = owner
|
||||
|
||||
dead_mob_list -= C
|
||||
living_mob_list |= list(C)
|
||||
C.stat = CONSCIOUS
|
||||
C.tod = null
|
||||
C.rejuvenate(0)
|
||||
C.visible_message("<span class='warning'>[owner] appears to wake from the dead, having healed all wounds.</span>")
|
||||
C.status_flags &= ~(FAKEDEATH)
|
||||
C.update_canmove()
|
||||
if(M_HUSK in C.mutations) //Yes you can regenerate from being husked if you played dead beforehand, but unless you find a new body, you can not regenerate again.
|
||||
to_chat(C, "<span class='notice'>This host body has become corrupted, either through a mishap, or betrayal by a member of the hivemind. We must find a new form, lest we lose ourselves to the void and become dust.</span>")
|
||||
if(C.dna in changeling.absorbed_dna)
|
||||
changeling.absorbed_dna.Remove(C.dna)
|
||||
C.regenerate_icons()
|
||||
feedback_add_details("changeling_powers","RJ")
|
||||
Remove(owner)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user