mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-27 14:07:51 +01:00
Merge pull request #11151 from Fox-McCloud/suicide-refactor
Suicide Refactor
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user