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()