diff --git a/code/WorkInProgress/Cael_Aislinn/Tajara/examine.dm b/code/WorkInProgress/Cael_Aislinn/Tajara/examine.dm
index 9a023031fbb..e6387d3ba67 100644
--- a/code/WorkInProgress/Cael_Aislinn/Tajara/examine.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Tajara/examine.dm
@@ -175,9 +175,6 @@
else if(src.jitteriness >= 100)
msg += "[t_He] [t_is] twitching ever so slightly.\n"
- if (src.suiciding)
- msg += "[t_He] [t_has] bitten off [t_his] own tongue and [t_has] suffered major bloodloss!\n"
-
var/distance = get_dist(usr,src)
if(istype(usr, /mob/dead/observer) || usr.stat == 2) // ghosts can see anything
distance = 1
diff --git a/code/game/verbs/suicide.dm b/code/game/verbs/suicide.dm
index 424bb8d7e48..064ef85cce8 100644
--- a/code/game/verbs/suicide.dm
+++ b/code/game/verbs/suicide.dm
@@ -20,7 +20,7 @@
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."
+ src << "No. Adminhelp if there is a legitimate reason."
return
if (suiciding)
@@ -33,12 +33,34 @@
src << "The alien inside you forces you to breathe, preventing you from suiciding."
return
+ if(mutantrace == "trappedsoul")
+ src << "You are already dead, your soul trapped and contained!"
+ 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 [src] is attempting to bite \his tongue. It looks like \he's trying to commit suicide."
- adjustOxyLoss(max(175 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0))
+
+ if(mind.special_role == "Syndicate" || mind.special_role == "traitor" || mind.special_role == "Head Revolutionary")
+ viewers(src) << "\red [src] appears to be shifting \his tongue about in \his mouth frantically!"
+ src << "\red You hear a muffled pop and poison starts burning your mouth. Everything fades to black."
+ toxloss = max(175 - getOxyLoss() - getFireLoss() - getBruteLoss(), getToxLoss())
+
+ else if (mind.special_role == "Wizard")
+ viewers(src) << "\red [src] mutters a chant under \his breath hurriedly and bursts into flames immediately after!"
+ src << "\red An intense heat builds up as you chant under your breath, releasing the energy in a white-hot blaze as you finish."
+ fireloss = max(175 - getOxyLoss() - getToxLoss() - getBruteLoss(), getFireLoss())
+
+ else if (mind.special_role == "Cultist")
+ viewers(src) << "\red [src] mutters a prayer hastly and falls to the ground!"
+ src << "\red You mutter a prayer hastly and feel your body become heavier."
+ oxyloss = max(175 - getToxLoss() - getFireLoss() - getBruteLoss(), getOxyLoss())
+
+ else if (mind.special_role == "Changeling")
+ viewers(src) << "\red [src] extends its proboscis and stabs itself in the chest!"
+ src << "\red You extend your proboscis and stab yourself in the chest."
+ bruteloss = max(175 - getToxLoss() - getFireLoss() - getOxyLoss(), getBruteLoss())
+
updatehealth()
/mob/living/carbon/brain/verb/suicide()
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index b108669b3b9..1b1e2e182bd 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -175,9 +175,6 @@
else if(src.jitteriness >= 100)
msg += "[t_He] [t_is] twitching ever so slightly.\n"
- if (src.suiciding)
- msg += "[t_He] [t_has] bitten off [t_his] own tongue and [t_has] suffered major bloodloss!\n"
-
var/distance = get_dist(usr,src)
if(istype(usr, /mob/dead/observer) || usr.stat == 2) // ghosts can see anything
distance = 1