diff --git a/code/game/dna.dm b/code/game/dna.dm
index 162fa77b43c..4d1f23c3a0d 100644
--- a/code/game/dna.dm
+++ b/code/game/dna.dm
@@ -576,13 +576,13 @@
//G = null
// search for ghosts, if the corpse is empty and the scanner is connected to a cloner
- if(locate(/obj/machinery/computer/cloning, get_step(src, EAST)))
-
- if (!M.client)
- for(var/mob/dead/observer/ghost in world)
- if(ghost.corpse == M && ghost.client)
- ghost << "Your corpse has been placed into a cloning scanner. Return to your body if you want to be ressurected/cloned! (Verbs -> Ghost -> Re-enter corpse)"
- break
+// if(locate(/obj/machinery/computer/cloning, get_step(src, EAST)))
+//
+// if (!M.client)
+// for(var/mob/dead/observer/ghost in world)
+// if(ghost.corpse == M && ghost.client)
+// ghost << "Your corpse has been placed into a cloning scanner. Return to your body if you want to be ressurected/cloned! (Verbs -> Ghost -> Re-enter corpse)"
+// break
del(G)
return
diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index b5f14893e9a..22ab01630dd 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -285,7 +285,9 @@
//Look for that player! They better be dead!
if(C)
var/mob/selected = find_dead_player("[C.fields["ckey"]]")
-
+ var/answer = alert(selected,"Do you want to return to life?","Cloning","Yes","No")
+ if(answer == "No")
+ selected = null
//Can't clone without someone to clone. Or a pod. Or if the pod is busy. Or full of gibs.
if ((!selected) || (!src.pod1) || (src.pod1.occupant) || (src.pod1.mess) || !config.revival_cloning)
src.temp = "Unable to initiate cloning cycle." // most helpful error message in THE HISTORY OF THE WORLD
@@ -309,9 +311,9 @@
if (subject.brain_op_stage == 4.0)
src.temp = "Error: No signs of intelligence detected."
return
- if (subject.suiciding == 1)
- src.temp = "Error: Subject's brain is not responding to scanning stimuli."
- return
+// if (subject.suiciding == 1)
+// src.temp = "Error: Subject's brain is not responding to scanning stimuli."
+// return
if ((!subject.ckey) || (!subject.client))
src.temp = "Error: Mental interface failure."
return
@@ -394,6 +396,11 @@
if (M.ckey == find_key)
selected = M
break
+ if(!selected) //Search for a ghost if dead body with client isn't found.
+ for(var/mob/dead/observer/ghost in world)
+ if (ghost.corpse.mind.key == find_key)
+ selected = ghost
+ break
return selected
//Disk stuff.
diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm
index d3369524cd0..27d7b0bf045 100644
--- a/code/game/objects/items/weapons/surgery_tools.dm
+++ b/code/game/objects/items/weapons/surgery_tools.dm
@@ -788,6 +788,12 @@ CIRCULAR SAW
var/datum/organ/external/S = H.organs["head"]
if(S.destroyed)
return
+ for(var/mob/O in viewers(H, null))
+ O.show_message(text("\red [H] gets \his [S.display_name] sawed at with [src] by [user].... It looks like [user] is trying to cut it off!"), 1)
+ if(!do_after(rand(50,70)))
+ for(var/mob/O in viewers(H, null))
+ O.show_message(text("\red [user] tried to cut [H]'s [S.display_name] off with [src], but failed."), 1)
+ return
for(var/mob/O in viewers(H, null))
O.show_message(text("\red [H] gets \his [S.display_name] sawed off with [src] by [user]."), 1)
S.destroyed = 1
@@ -873,6 +879,12 @@ CIRCULAR SAW
var/datum/organ/external/S = H.organs[user.zone_sel.selecting]
if(S.destroyed)
return
+ for(var/mob/O in viewers(H, null))
+ O.show_message(text("\red [H] gets \his [S.display_name] sawed at with [src] by [user].... It looks like [user] is trying to cut it off!"), 1)
+ if(!do_after(rand(20,80)))
+ for(var/mob/O in viewers(H, null))
+ O.show_message(text("\red [user] tried to cut [H]'s [S.display_name] off with [src], but failed."), 1)
+ return
for(var/mob/O in viewers(H, null))
O.show_message(text("\red [H] gets \his [S.display_name] sawed off with [src] by [user]."), 1)
S.destroyed = 1
diff --git a/code/game/verbs/suicide.dm b/code/game/verbs/suicide.dm
index f040ac3fe2b..45ea96e1a7d 100644
--- a/code/game/verbs/suicide.dm
+++ b/code/game/verbs/suicide.dm
@@ -12,6 +12,7 @@
return
if (mind.special_role != "Syndicate")
+ 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
@@ -26,6 +27,7 @@
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."
@@ -50,6 +52,7 @@
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 [src]'s brain is growing dull and lifeless. It looks like it's trying to commit suicide. Somehow."
oxyloss = max(175 - getToxLoss() - getFireLoss() - getBruteLoss(), getOxyLoss())
@@ -75,6 +78,7 @@
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 [src] is attempting to bite \his tongue. It looks like \he's trying to commit suicide."
@@ -95,6 +99,7 @@
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 [src] is powering down. It looks like \he's trying to commit suicide."
//put em at -175
@@ -115,6 +120,7 @@
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 [src] is powering down. It looks like \he's trying to commit suicide."
//put em at -175
@@ -127,6 +133,7 @@
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)
@@ -150,6 +157,7 @@
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 [src] is thrashing wildly! It looks like \he's trying to commit suicide."
//put em at -175
@@ -170,6 +178,7 @@
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())
diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm
index a6436adf203..d5f34ee370b 100644
--- a/code/modules/admin/verbs/adminhelp.dm
+++ b/code/modules/admin/verbs/adminhelp.dm
@@ -17,6 +17,7 @@
M << "\blue HELP: [key_name(src, M)] (PP) (VV) (SM) (JMP) (CA): [msg]"
usr << "Your message has been broadcast to administrators."
+ send2adminirc("#bs12admin","HELP: [src.key]: [msg]")
log_admin("HELP: [key_name(src)]: [msg]")
if(tension_master)
tension_master.new_adminhelp()