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:
adacovsk
2022-06-06 22:41:26 -04:00
committed by GitHub
parent ae602a8ec9
commit 15c218c783
3 changed files with 34 additions and 19 deletions

View File

@@ -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

View File

@@ -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")
..()

View File

@@ -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)