mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
Merge pull request #5290 from Wizardcrying/chokepoints
Sets suiciding to 0 upon calling rejuvenate/anything that uses it
This commit is contained in:
@@ -517,56 +517,7 @@
|
|||||||
living_mob_list |= list(C)
|
living_mob_list |= list(C)
|
||||||
C.stat = CONSCIOUS
|
C.stat = CONSCIOUS
|
||||||
C.tod = null
|
C.tod = null
|
||||||
C.setToxLoss(0)
|
C.revive(0)
|
||||||
C.setOxyLoss(0)
|
|
||||||
C.setCloneLoss(0)
|
|
||||||
C.setBrainLoss(0)
|
|
||||||
C.SetParalysis(0)
|
|
||||||
C.SetStunned(0)
|
|
||||||
C.SetWeakened(0)
|
|
||||||
C.radiation = 0
|
|
||||||
C.heal_overall_damage(C.getBruteLoss(), C.getFireLoss())
|
|
||||||
C.reagents.clear_reagents()
|
|
||||||
C.germ_level = 0
|
|
||||||
C.next_pain_time = 0
|
|
||||||
C.traumatic_shock = 0
|
|
||||||
if(ishuman(C))
|
|
||||||
var/mob/living/carbon/human/H = C
|
|
||||||
H.timeofdeath = 0
|
|
||||||
H.vessel.reagent_list = list()
|
|
||||||
H.vessel.add_reagent("blood",560)
|
|
||||||
H.shock_stage = 0
|
|
||||||
spawn(1)
|
|
||||||
H.fixblood()
|
|
||||||
for(var/organ_name in H.organs_by_name)
|
|
||||||
var/datum/organ/external/O = H.organs_by_name[organ_name]
|
|
||||||
for(var/obj/item/weapon/shard/shrapnel/s in O.implants)
|
|
||||||
if(istype(s))
|
|
||||||
O.implants -= s
|
|
||||||
H.contents -= s
|
|
||||||
qdel(s)
|
|
||||||
O.amputated = 0
|
|
||||||
O.brute_dam = 0
|
|
||||||
O.burn_dam = 0
|
|
||||||
O.damage_state = "00"
|
|
||||||
O.germ_level = 0
|
|
||||||
O.hidden = null
|
|
||||||
O.number_wounds = 0
|
|
||||||
O.open = 0
|
|
||||||
O.perma_injury = 0
|
|
||||||
O.stage = 0
|
|
||||||
O.status = 0
|
|
||||||
O.trace_chemicals = list()
|
|
||||||
O.wounds = list()
|
|
||||||
O.wound_update_accuracy = 1
|
|
||||||
for(var/organ_name in H.internal_organs_by_name)
|
|
||||||
var/datum/organ/internal/IO = H.internal_organs_by_name[organ_name]
|
|
||||||
IO.damage = 0
|
|
||||||
IO.trace_chemicals.len = 0
|
|
||||||
IO.germ_level = 0
|
|
||||||
IO.status = 0
|
|
||||||
IO.robotic = 0
|
|
||||||
H.updatehealth()
|
|
||||||
C << "<span class='notice'>We have regenerated.</span>"
|
C << "<span class='notice'>We have regenerated.</span>"
|
||||||
C.visible_message("<span class='warning'>[src] appears to wake from the dead, having healed all wounds.</span>")
|
C.visible_message("<span class='warning'>[src] appears to wake from the dead, having healed all wounds.</span>")
|
||||||
C.status_flags &= ~(FAKEDEATH)
|
C.status_flags &= ~(FAKEDEATH)
|
||||||
@@ -584,6 +535,10 @@
|
|||||||
if(!changeling) return
|
if(!changeling) return
|
||||||
|
|
||||||
var/mob/living/carbon/C = src
|
var/mob/living/carbon/C = src
|
||||||
|
if(C.suiciding)
|
||||||
|
C << "<span class='warning'>Why would we wish to regenerate if we have already committed suicide?"
|
||||||
|
return
|
||||||
|
|
||||||
if(!C.stat && alert("Are we sure we wish to fake our death?",,"Yes","No") == "No")//Confirmation for living changelings if they want to fake their death
|
if(!C.stat && alert("Are we sure we wish to fake our death?",,"Yes","No") == "No")//Confirmation for living changelings if they want to fake their death
|
||||||
return
|
return
|
||||||
C << "<span class='notice'>We will attempt to regenerate our form.</span>"
|
C << "<span class='notice'>We will attempt to regenerate our form.</span>"
|
||||||
|
|||||||
@@ -198,6 +198,7 @@
|
|||||||
|
|
||||||
for(var/mob/living/M in orange(src,3))
|
for(var/mob/living/M in orange(src,3))
|
||||||
M.revive(1)
|
M.revive(1)
|
||||||
|
M.suiciding = 0
|
||||||
M << "<span class='notice'>THE ADMINBUS IS LOVE. THE ADMINBUS IS LIFE.</span>"
|
M << "<span class='notice'>THE ADMINBUS IS LOVE. THE ADMINBUS IS LIFE.</span>"
|
||||||
sleep(2)
|
sleep(2)
|
||||||
update_rearview()
|
update_rearview()
|
||||||
|
|||||||
@@ -1452,7 +1452,7 @@
|
|||||||
if(config.allow_admin_rev)
|
if(config.allow_admin_rev)
|
||||||
L.revive(0)
|
L.revive(0)
|
||||||
message_admins("<span class='warning'>Admin [key_name_admin(usr)] healed / revived [key_name_admin(L)]!</span>", 1)
|
message_admins("<span class='warning'>Admin [key_name_admin(usr)] healed / revived [key_name_admin(L)]!</span>", 1)
|
||||||
log_admin("[key_name(usr)] healed / Rrvived [key_name(L)]")
|
log_admin("[key_name(usr)] healed / revived [key_name(L)]")
|
||||||
else
|
else
|
||||||
usr << "Admin Rejuvinates have been disabled"
|
usr << "Admin Rejuvinates have been disabled"
|
||||||
|
|
||||||
|
|||||||
@@ -576,6 +576,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
|||||||
return
|
return
|
||||||
if(config.allow_admin_rev)
|
if(config.allow_admin_rev)
|
||||||
M.revive(0)
|
M.revive(0)
|
||||||
|
M.suiciding = 0
|
||||||
|
|
||||||
log_admin("[key_name(usr)] healed / revived [key_name(M)]")
|
log_admin("[key_name(usr)] healed / revived [key_name(M)]")
|
||||||
message_admins("<span class='warning'>Admin [key_name_admin(usr)] healed / revived [key_name_admin(M)]!</span>", 1)
|
message_admins("<span class='warning'>Admin [key_name_admin(usr)] healed / revived [key_name_admin(M)]!</span>", 1)
|
||||||
|
|||||||
@@ -378,7 +378,13 @@
|
|||||||
/mob/living/proc/restore_all_organs()
|
/mob/living/proc/restore_all_organs()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
/*
|
||||||
|
NOTE TO ANYONE MAKING A PROC THAT USES REVIVE/REJUVENATE:
|
||||||
|
If the proc calling either of these is:
|
||||||
|
-meant to be an admin/overpowered revival proc, make sure you set suiciding = 0
|
||||||
|
-meant to be something that a player uses to heal/revive themself or others, check if suiciding = 1 and prevent them from reviving if true.
|
||||||
|
Thanks.
|
||||||
|
*/
|
||||||
|
|
||||||
/mob/living/proc/revive(animation = 0)
|
/mob/living/proc/revive(animation = 0)
|
||||||
rejuvenate(animation)
|
rejuvenate(animation)
|
||||||
|
|||||||
Reference in New Issue
Block a user