Merge pull request #11151 from Fox-McCloud/suicide-refactor

Suicide Refactor
This commit is contained in:
variableundefined
2019-03-29 20:49:18 +08:00
committed by GitHub
43 changed files with 138 additions and 95 deletions
+26 -4
View File
@@ -52,6 +52,9 @@
/mob/living/carbon/human/verb/suicide()
set hidden = 1
be_suicidal()
/mob/living/carbon/human/proc/be_suicidal(forced = FALSE)
if(stat == DEAD)
to_chat(src, "You're already dead!")
return
@@ -69,20 +72,39 @@
to_chat(src, "You're already committing suicide! Be patient!")
return
var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No")
if(confirm == "Yes")
suiciding = 1
var/confirm = null
if(!forced)
confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No")
if(forced || (confirm == "Yes"))
suiciding = TRUE
var/obj/item/held_item = get_active_hand()
if(held_item)
var/damagetype = held_item.suicide_act(src)
if(damagetype)
if(damagetype & SHAME)
adjustStaminaLoss(200)
suiciding = 0
suiciding = FALSE
return
if(damagetype & OBLITERATION) // Does it gib or something? Don't deal damage
return
do_suicide(damagetype, held_item)
return
else
for(var/obj/O in orange(1, src))
if(O.suicidal_hands)
continue
var/damagetype = O.suicide_act(src)
if(damagetype)
if(damagetype & SHAME)
adjustStaminaLoss(200)
suiciding = FALSE
return
if(damagetype & OBLITERATION)
return
do_suicide(damagetype, O)
return
to_chat(viewers(src), "<span class='danger'>[src] [replacetext(pick(dna.species.suicide_messages), "their", p_their())] It looks like [p_theyre()] trying to commit suicide.</span>")
do_suicide(0)