Files
Paradise/code/game/verbs/suicide.dm
Ren Erthilo 946464432c TG: Soul Stones can now summon Shades.
Soul Stones can now capture Shades (which heals them)

Soul Stones capturing a soul will now be imprinted with that shade, and be
unable to capture new souls/other shades

Added ectoplasm object/sprites. As of now it has no uses.

Shades now delete on death and leave ectoplasm behind.

Soulstones can be bought with the wizards spellbook (as a set of six) and from
the cultist supply talisman.

The Chaplain has a single soulstone in his office (mostly for testing/so it will
get used often and I can get feedback)

Speaking of items on the map for testing, Reactive Teleport Armour no longer
spawns in the RD's office (because Urist will murder me if I have to retarded
test items out at once)

Removed some no longer needed code regarding soulstones from the suicide verb.

Updated the changelog r2821
2012-03-26 18:09:35 +01:00

195 lines
5.9 KiB
Plaintext

/mob/var/suiciding = 0
/mob/living/carbon/human/verb/suicide()
set hidden = 1
if (stat == 2)
src << "You're already dead!"
return
if (!ticker)
src << "You can't commit suicide before the game starts!"
return
var/permitted = 0
var/list/allowed = list("Syndicate","traitor","Wizard","Head Revolutionary","Cultist","Changeling")
for(var/T in allowed)
if(mind.special_role == T)
permitted = 1
break
if(!permitted)
message_admins("[ckey] has tried to suicide, but they were not permitted due to not being antagonist as human.", 1)
src << "No. Adminhelp if there is a legitimate reason."
return
if (suiciding)
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(alien_egg_flag)
src << "The alien inside you forces you to breathe, preventing you from suiciding."
return
if(confirm == "Yes")
message_admins("[ckey] has suicided.", 1)
suiciding = 1
//instead of killing them instantly, just put them at -175 health and let 'em gasp for a while
viewers(src) << "\red <b>[src] is attempting to bite \his tongue. It looks like \he's trying to commit suicide.</b>"
adjustOxyLoss(max(175 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0))
updatehealth()
/mob/living/carbon/brain/verb/suicide()
set hidden = 1
if (stat == 2)
src << "You're already dead!"
return
if (!ticker)
src << "You can't commit suicide before the game starts!"
return
if (suiciding)
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")
message_admins("[ckey] has suicided.", 1)
suiciding = 1
viewers(loc) << "\red <b>[src]'s brain is growing dull and lifeless. It looks like it's lost the will to live.</b>"
spawn(50)
death(0)
suiciding = 0
/mob/living/carbon/monkey/verb/suicide()
set hidden = 1
if (stat == 2)
src << "You're already dead!"
return
if (!ticker)
src << "You can't commit suicide before the game starts!"
return
if (suiciding)
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")
message_admins("[ckey] has suicided.", 1)
suiciding = 1
//instead of killing them instantly, just put them at -175 health and let 'em gasp for a while
viewers(src) << "\red <b>[src] is attempting to bite \his tongue. It looks like \he's trying to commit suicide.</b>"
adjustOxyLoss(max(175 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0))
updatehealth()
/mob/living/silicon/ai/verb/suicide()
set hidden = 1
if (stat == 2)
src << "You're already dead!"
return
if (suiciding)
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")
message_admins("[ckey] has suicided.", 1)
suiciding = 1
viewers(src) << "\red <b>[src] is powering down. It looks like \he's trying to commit suicide.</b>"
//put em at -175
adjustOxyLoss(max(175 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0))
updatehealth()
/mob/living/silicon/robot/verb/suicide()
set hidden = 1
if (stat == 2)
src << "You're already dead!"
return
if (suiciding)
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")
message_admins("[ckey] has suicided.", 1)
suiciding = 1
viewers(src) << "\red <b>[src] is powering down. It looks like \he's trying to commit suicide.</b>"
//put em at -175
adjustOxyLoss(max(475 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0))
updatehealth()
/mob/living/silicon/pai/verb/suicide()
set category = "pAI Commands"
set desc = "Kill yourself and become a ghost (You will receive a confirmation prompt)"
set name = "pAI Suicide"
var/answer = input("REALLY kill yourself? This action can't be undone.", "Suicide", "No") in list ("Yes", "No")
if(answer == "Yes")
message_admins("[ckey] has suicided.", 1)
var/obj/item/device/paicard/card = loc
card.pai = null
var/turf/T = get_turf_or_move(card.loc)
for (var/mob/M in viewers(T))
M.show_message("\blue [src] flashes a message across its screen, \"Wiping core files. Please acquire a new personality to continue using pAI device functions.\"", 3, "\blue [src] bleeps electronically.", 2)
death(0)
else
src << "Aborting suicide attempt."
/mob/living/carbon/alien/humanoid/verb/suicide()
set hidden = 1
if (stat == 2)
src << "You're already dead!"
return
if (suiciding)
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")
message_admins("[ckey] has suicided.", 1)
suiciding = 1
viewers(src) << "\red <b>[src] is thrashing wildly! It looks like \he's trying to commit suicide.</b>"
//put em at -175
adjustOxyLoss(max(100 - getFireLoss() - getBruteLoss() - getOxyLoss(), 0))
updatehealth()
/mob/living/carbon/metroid/verb/suicide()
set hidden = 1
if (stat == 2)
src << "You're already dead!"
return
if (suiciding)
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")
message_admins("[ckey] has suicided.", 1)
suiciding = 1
setOxyLoss(100)
adjustBruteLoss(100 - getBruteLoss())
setToxLoss(100)
setCloneLoss(100)
updatehealth()