From dd5c6419cb1c1f21f3c0723812bf00531a9e5901 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Sun, 19 Sep 2021 11:06:43 -0800 Subject: [PATCH 1/3] Refactors shared code in suicide() --- code/game/verbs/suicide.dm | 76 +++++++++++--------------------------- 1 file changed, 22 insertions(+), 54 deletions(-) diff --git a/code/game/verbs/suicide.dm b/code/game/verbs/suicide.dm index e4dbea8a09..af09e15e42 100644 --- a/code/game/verbs/suicide.dm +++ b/code/game/verbs/suicide.dm @@ -1,84 +1,52 @@ -/mob/var/suiciding = 0 +/mob/living/var/suiciding = 0 -/mob/living/carbon/human/verb/suicide() /// At best, useful for admins to see if it's being called. - set hidden = 1 - - if (stat == DEAD) - to_chat(src, "You're already dead!") - return - - if (!ticker) - to_chat(src, "You can't commit suicide before the game starts!") - return - - to_chat(src, "No. Adminhelp if there is a legitimate reason, and please review our server rules.") - message_admins("[ckey] has tried to trigger the suicide verb as human, but it is currently disabled.") - -/mob/living/carbon/brain/verb/suicide() +/mob/living/verb/suicide() set hidden = 1 if (stat == 2) to_chat(src, "You're already dead!") - return - + return FALSE if (!ticker) to_chat(src, "You can't commit suicide before the game starts!") - return + return FALSE if (suiciding) to_chat(src, "You're already committing suicide! Be patient!") - return + return FALSE - var/confirm = alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No") + return (alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No") == "Yes") - if(confirm == "Yes") + +/mob/living/carbon/human/suicide() /// At best, useful for admins to see if it's being called. + ..() + to_chat(src, "No. Adminhelp if there is a legitimate reason, and please review our server rules.") + message_admins("[ckey] has tried to trigger the suicide verb as human, but it is currently disabled.") + +/mob/living/carbon/brain/suicide() + if(..()) suiciding = 1 - to_chat(viewers(loc),"[src]'s brain is growing dull and lifeless. It looks like it's lost the will to live.") + visible_message("[src]'s brain is growing dull and lifeless. It looks like it's lost the will to live.") spawn(50) death(0) suiciding = 0 -/mob/living/silicon/ai/verb/suicide() - set hidden = 1 - - if (stat == 2) - to_chat(src, "You're already dead!") - return - - if (suiciding) - 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") +/mob/living/silicon/ai/suicide() + if(..()) suiciding = 1 - to_chat(viewers(src),"[src] is powering down. It looks like they're trying to commit suicide.") + visible_message("[src] is powering down. It looks like they're trying to commit suicide.") //put em at -175 adjustOxyLoss(max(getMaxHealth() * 2 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) updatehealth() -/mob/living/silicon/robot/verb/suicide() - set hidden = 1 - - if (stat == 2) - to_chat(src, "You're already dead!") - return - - if (suiciding) - 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") +/mob/living/silicon/robot/suicide() + if(..()) suiciding = 1 - to_chat(viewers(src),"[src] is powering down. It looks like they're trying to commit suicide.") + visible_message("[src] is powering down. It looks like they're trying to commit suicide.") //put em at -175 adjustOxyLoss(max(getMaxHealth() * 2 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) updatehealth() -/mob/living/silicon/pai/verb/suicide() +/mob/living/silicon/pai/suicide() set category = "pAI Commands" set desc = "Kill yourself and become a ghost (You will receive a confirmation prompt)" set name = "pAI Suicide" From 9c4eceae2b35973a655738f2bb3c355ce469f027 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Sun, 19 Sep 2021 11:31:36 -0800 Subject: [PATCH 2/3] Removes suicide_act() --- .../gamemodes/changeling/powers/armblade.dm | 5 - .../objects/effects/spawners/bombspawner.dm | 107 ------------------ code/game/objects/items.dm | 15 --- code/game/objects/items/toys/mech_toys.dm | 43 ------- code/game/objects/items/weapons/RPD.dm | 7 -- .../items/weapons/material/chainsaw.dm | 5 - .../objects/items/weapons/material/knives.dm | 7 -- .../objects/items/weapons/material/misc.dm | 5 - .../objects/items/weapons/material/shards.dm | 6 - .../objects/items/weapons/material/swords.dm | 12 +- .../objects/items/weapons/melee/energy.dm | 12 -- code/game/objects/items/weapons/melee/misc.dm | 5 - code/game/objects/items/weapons/stunbaton.dm | 5 - .../objects/items/weapons/surgery_tools.dm | 13 --- .../items/weapons/tools/screwdriver.dm | 6 - code/game/objects/items/weapons/traps.dm | 5 - code/game/objects/items/weapons/weaponry.dm | 5 - code/modules/paperwork/pen.dm | 5 - code/modules/power/cable.dm | 8 -- code/modules/power/cell.dm | 7 +- code/modules/virus2/effect.dm | 13 --- 21 files changed, 2 insertions(+), 294 deletions(-) diff --git a/code/game/gamemodes/changeling/powers/armblade.dm b/code/game/gamemodes/changeling/powers/armblade.dm index 4a84fde371..7cf5464e61 100644 --- a/code/game/gamemodes/changeling/powers/armblade.dm +++ b/code/game/gamemodes/changeling/powers/armblade.dm @@ -88,11 +88,6 @@ creator = null ..() -/obj/item/weapon/melee/changeling/suicide_act(mob/user) - var/datum/gender/T = gender_datums[user.get_visible_gender()] - user.visible_message("[user] is impaling [T.himself] with the [src.name]! It looks like [T.he] [T.is] trying to commit suicide.") - return(BRUTELOSS) - /obj/item/weapon/melee/changeling/process() //Stolen from ninja swords. if(!creator || loc != creator || !creator.item_is_in_hands(src)) // Tidy up a bit. diff --git a/code/game/objects/effects/spawners/bombspawner.dm b/code/game/objects/effects/spawners/bombspawner.dm index eb025f9ba4..2bfcb823c8 100644 --- a/code/game/objects/effects/spawners/bombspawner.dm +++ b/code/game/objects/effects/spawners/bombspawner.dm @@ -1,110 +1,3 @@ -/* The old single tank bombs that dont really work anymore -/obj/effect/spawner/bomb - name = "bomb" - icon = 'icons/mob/screen1.dmi' - icon_state = "x" - var/btype = 0 //0 = radio, 1= prox, 2=time - var/explosive = 1 // 0= firebomb - var/btemp = 500 // bomb temperature (degC) - var/active = 0 - -/obj/effect/spawner/bomb/radio - btype = 0 - -/obj/effect/spawner/bomb/proximity - btype = 1 - -/obj/effect/spawner/bomb/timer - btype = 2 - -/obj/effect/spawner/bomb/timer/syndicate - btemp = 450 - -/obj/effect/spawner/bomb/suicide - btype = 3 - -/obj/effect/spawner/bomb/New() - ..() - - switch (src.btype) - // radio - if (0) - var/obj/item/assembly/r_i_ptank/R = new /obj/item/assembly/r_i_ptank(src.loc) - var/obj/item/weapon/tank/phoron/p3 = new /obj/item/weapon/tank/phoron(R) - var/obj/item/device/radio/signaler/p1 = new /obj/item/device/radio/signaler(R) - var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R) - R.part1 = p1 - R.part2 = p2 - R.part3 = p3 - p1.master = R - p2.master = R - p3.master = R - R.status = explosive - p1.b_stat = 0 - p2.secured = 1 - p3.air_contents.temperature = btemp + T0C - - // proximity - if (1) - var/obj/item/assembly/m_i_ptank/R = new /obj/item/assembly/m_i_ptank(src.loc) - var/obj/item/weapon/tank/phoron/p3 = new /obj/item/weapon/tank/phoron(R) - var/obj/item/device/prox_sensor/p1 = new /obj/item/device/prox_sensor(R) - var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R) - R.part1 = p1 - R.part2 = p2 - R.part3 = p3 - p1.master = R - p2.master = R - p3.master = R - R.status = explosive - - p3.air_contents.temperature = btemp + T0C - p2.secured = 1 - - if(src.active) - R.part1.secured = 1 - R.part1.icon_state = text("motion[]", 1) - R.c_state(1, src) - - // timer - if (2) - var/obj/item/assembly/t_i_ptank/R = new /obj/item/assembly/t_i_ptank(src.loc) - var/obj/item/weapon/tank/phoron/p3 = new /obj/item/weapon/tank/phoron(R) - var/obj/item/device/timer/p1 = new /obj/item/device/timer(R) - var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R) - R.part1 = p1 - R.part2 = p2 - R.part3 = p3 - p1.master = R - p2.master = R - p3.master = R - R.status = explosive - - p3.air_contents.temperature = btemp + T0C - p2.secured = 1 - //bombvest - if(3) - var/obj/item/clothing/suit/armor/a_i_a_ptank/R = new /obj/item/clothing/suit/armor/a_i_a_ptank(src.loc) - var/obj/item/weapon/tank/phoron/p4 = new /obj/item/weapon/tank/phoron(R) - var/obj/item/device/healthanalyzer/p1 = new /obj/item/device/healthanalyzer(R) - var/obj/item/device/igniter/p2 = new /obj/item/device/igniter(R) - var/obj/item/clothing/suit/armor/vest/p3 = new /obj/item/clothing/suit/armor/vest(R) - R.part1 = p1 - R.part2 = p2 - R.part3 = p3 - R.part4 = p4 - p1.master = R - p2.master = R - p3.master = R - p4.master = R - R.status = explosive - - p4.air_contents.temperature = btemp + T0C - p2.secured = 1 - - qdel(src) -*/ - /client/proc/spawn_tanktransferbomb() set category = "Debug" set desc = "Spawn a tank transfer valve bomb" diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index bdc76370be..d7ec6181e0 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -172,27 +172,12 @@ switch(severity) if(1.0) qdel(src) - return if(2.0) if (prob(50)) qdel(src) - return if(3.0) if (prob(5)) qdel(src) - return - else - return - -//user: The mob that is suiciding -//damagetype: The type of damage the item will inflict on the user -//BRUTELOSS = 1 -//FIRELOSS = 2 -//TOXLOSS = 4 -//OXYLOSS = 8 -//Output a creative message and then return the damagetype done -/obj/item/proc/suicide_act(mob/user) - return /obj/item/verb/move_to_top() set name = "Move To Top" diff --git a/code/game/objects/items/toys/mech_toys.dm b/code/game/objects/items/toys/mech_toys.dm index e093108519..a1f7d69815 100644 --- a/code/game/objects/items/toys/mech_toys.dm +++ b/code/game/objects/items/toys/mech_toys.dm @@ -64,7 +64,6 @@ * this goes through some of the checks - the toys need to be next to each other to fight! * if it's player vs themself: They need to be able to "control" both mechs (either must be adjacent or using TK). * if it's player vs player: Both players need to be able to "control" their mechs (either must be adjacent or using TK). - * if it's player vs mech (suicide): the mech needs to be in range of the player. * if all the checks are TRUE, it does the sleeps, and returns TRUE. Otherwise, it returns FALSE. * Arguments: * * delay - the amount of time the sleep at the end of the check will sleep for @@ -197,48 +196,6 @@ if(wants_to_battle) wants_to_battle = FALSE to_chat(user, "You get the feeling they don't want to battle.") -/** - * Starts a battle, toy mech vs player. Player... doesn't win. Commented out for now as suicide_act is not physically doable. - */ -/obj/item/toy/mecha/suicide_act(mob/living/carbon/user) - if(in_combat) - to_chat(user, "[src] is in battle, let it finish first.") - return - - var/datum/gender/T = gender_datums[user.get_visible_gender()] - user.visible_message("[user] begins a fight [T.His] can't win with [src]! It looks like [T.His] trying to commit suicide!") - - in_combat = TRUE - sleep(1.5 SECONDS) - for(var/i in 1 to 4) - switch(i) - if(1, 3) - SpinAnimation(5, 0) - playsound(src, 'sound/mecha/mechstep.ogg', 30, TRUE) - user.adjustBruteLoss(25) - if(2) - user.SpinAnimation(5, 0) - playsound(user, 'sound/weapons/smash.ogg', 20, TRUE) - combat_health-- //we scratched it! - if(4) - visible_message(special_attack_cry + "!!") - - if(!combat_sleep(1 SECONDS, null, user)) - visible_message("PATHETIC.") - combat_health = max_combat_health - in_combat = FALSE - return (BRUTELOSS) - - sleep(0.5 SECONDS) - user.adjustBruteLoss(450) - - in_combat = FALSE - visible_message("AN EASY WIN. MY POWER INCREASES.") // steal a soul, become swole - color= "#ff7373" - max_combat_health = round(max_combat_health*1.5 + 0.1) - combat_health = max_combat_health - wins++ - return (BRUTELOSS) /obj/item/toy/mecha/examine() . = ..() diff --git a/code/game/objects/items/weapons/RPD.dm b/code/game/objects/items/weapons/RPD.dm index 3dd7f0cee2..cd4e338abc 100644 --- a/code/game/objects/items/weapons/RPD.dm +++ b/code/game/objects/items/weapons/RPD.dm @@ -62,13 +62,6 @@ qdel_null(tool) return ..() -/obj/item/weapon/pipe_dispenser/suicide_act(mob/user) - var/datum/gender/TU = gender_datums[user.get_visible_gender()] - user.visible_message("[user] points the end of the RPD down [TU.his] throat and presses a button! It looks like [TU.hes] trying to commit suicide...") - playsound(src, 'sound/machines/click.ogg', 50, 1) - playsound(src, 'sound/items/deconstruct.ogg', 50, 1) - return(BRUTELOSS) - /obj/item/weapon/pipe_dispenser/attack_self(mob/user) tgui_interact(user) diff --git a/code/game/objects/items/weapons/material/chainsaw.dm b/code/game/objects/items/weapons/material/chainsaw.dm index 93526c2ac0..3b248558cd 100644 --- a/code/game/objects/items/weapons/material/chainsaw.dm +++ b/code/game/objects/items/weapons/material/chainsaw.dm @@ -117,11 +117,6 @@ if(max_fuel && get_dist(user, src) == 0) . += "The [src] feels like it contains roughtly [get_fuel()] units of fuel left." -/obj/item/weapon/chainsaw/suicide_act(mob/user) - var/datum/gender/TU = gender_datums[user.get_visible_gender()] - to_chat(viewers(user), "[user] is lying down and pulling the chainsaw into [TU.him], it looks like [TU.he] [TU.is] trying to commit suicide!") - return(BRUTELOSS) - /obj/item/weapon/chainsaw/update_icon() if(on) icon_state = "chainsaw1" diff --git a/code/game/objects/items/weapons/material/knives.dm b/code/game/objects/items/weapons/material/knives.dm index 5373bf5526..17cf512927 100644 --- a/code/game/objects/items/weapons/material/knives.dm +++ b/code/game/objects/items/weapons/material/knives.dm @@ -69,13 +69,6 @@ attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") drop_sound = 'sound/items/drop/knife.ogg' -/obj/item/weapon/material/knife/suicide_act(mob/user) - var/datum/gender/TU = gender_datums[user.get_visible_gender()] - to_chat(viewers(user), pick("\The [user] is slitting [TU.his] wrists with \the [src]! It looks like [TU.hes] trying to commit suicide.", \ - "\The [user] is slitting [TU.his] throat with \the [src]! It looks like [TU.hes] trying to commit suicide.", \ - "\The [user] is slitting [TU.his] stomach open with \the [src]! It looks like [TU.hes] trying to commit seppuku.")) - return (BRUTELOSS) - // These no longer inherit from hatchets. /obj/item/weapon/material/knife/tacknife name = "tactical knife" diff --git a/code/game/objects/items/weapons/material/misc.dm b/code/game/objects/items/weapons/material/misc.dm index 73f2c9efd4..d5adac0da0 100644 --- a/code/game/objects/items/weapons/material/misc.dm +++ b/code/game/objects/items/weapons/material/misc.dm @@ -210,11 +210,6 @@ playsound(src, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) return -/obj/item/weapon/material/whip/suicide_act(mob/user) - var/datum/gender/T = gender_datums[user.get_visible_gender()] - user.visible_message(span("danger", "\The [user] [T.is] strangling [T.himself] with \the [src]! It looks like [T.he] [T.is] trying to commit suicide."), span("danger", "You start to strangle yourself with \the [src]!"), span("danger", "You hear the sound of someone choking!")) - return (OXYLOSS) - /obj/item/weapon/material/whip/attack_self(mob/user) user.visible_message("\The [user] cracks \the [src]!") playsound(src, 'sound/effects/snap.ogg', 50, 1) diff --git a/code/game/objects/items/weapons/material/shards.dm b/code/game/objects/items/weapons/material/shards.dm index cbf03b4535..8bd0618307 100644 --- a/code/game/objects/items/weapons/material/shards.dm +++ b/code/game/objects/items/weapons/material/shards.dm @@ -17,12 +17,6 @@ unbreakable = 1 //It's already broken. drops_debris = 0 -/obj/item/weapon/material/shard/suicide_act(mob/user) - var/datum/gender/TU = gender_datums[user.get_visible_gender()] - to_chat(viewers(user), pick("\The [user] is slitting [TU.his] wrists with \the [src]! It looks like [TU.hes] trying to commit suicide.", - "\The [user] is slitting [TU.his] throat with \the [src]! It looks like [TU.hes] trying to commit suicide.")) - return (BRUTELOSS) - /obj/item/weapon/material/shard/set_material(var/new_material) ..(new_material) if(!istype(material)) diff --git a/code/game/objects/items/weapons/material/swords.dm b/code/game/objects/items/weapons/material/swords.dm index 4454b0b066..a486d321f7 100644 --- a/code/game/objects/items/weapons/material/swords.dm +++ b/code/game/objects/items/weapons/material/swords.dm @@ -19,18 +19,8 @@ return 1 return 0 -/obj/item/weapon/material/sword/suicide_act(mob/user) - var/datum/gender/TU = gender_datums[user.get_visible_gender()] - to_chat(viewers(user),"[user] is falling on the [src.name]! It looks like [TU.he] [TU.is] trying to commit suicide.") - return(BRUTELOSS) - /obj/item/weapon/material/sword/katana name = "katana" desc = "Woefully underpowered in D20. This one looks pretty sharp." icon_state = "katana" - slot_flags = SLOT_BELT | SLOT_BACK - -/obj/item/weapon/material/sword/katana/suicide_act(mob/user) - var/datum/gender/TU = gender_datums[user.get_visible_gender()] - visible_message(span("danger", "[user] is slitting [TU.his] stomach open with \the [src.name]! It looks like [TU.hes] trying to commit seppuku."), span("danger", "You slit your stomach open with \the [src.name]!"), span("danger", "You hear the sound of flesh tearing open.")) // gory, but it gets the point across - return(BRUTELOSS) + slot_flags = SLOT_BELT | SLOT_BACK \ No newline at end of file diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index c4025f088a..885e8e36b3 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -117,13 +117,6 @@ add_fingerprint(user) return -/obj/item/weapon/melee/energy/suicide_act(mob/user) - var/datum/gender/TU = gender_datums[user.get_visible_gender()] - if(active) - user.visible_message(pick("\The [user] is slitting [TU.his] stomach open with \the [src]! It looks like [TU.he] [TU.is] trying to commit seppuku.",\ - "\The [user] is falling on \the [src]! It looks like [TU.he] [TU.is] trying to commit suicide.")) - return (BRUTELOSS|FIRELOSS) - /obj/item/weapon/melee/energy/attack(mob/M, mob/user) if(active && use_cell) if(!use_charge(hitcost)) @@ -238,11 +231,6 @@ damtype = BRUTE to_chat(user, "\The [src] is de-energised. It's just a regular axe now.") -/obj/item/weapon/melee/energy/axe/suicide_act(mob/user) - var/datum/gender/TU = gender_datums[user.get_visible_gender()] - visible_message("\The [user] swings \the [src] towards [TU.his] head! It looks like [TU.he] [TU.is] trying to commit suicide.") - return (BRUTELOSS|FIRELOSS) - /obj/item/weapon/melee/energy/axe/charge name = "charge axe" desc = "An energised axe." diff --git a/code/game/objects/items/weapons/melee/misc.dm b/code/game/objects/items/weapons/melee/misc.dm index 781ea5a463..cdd4c5860d 100644 --- a/code/game/objects/items/weapons/melee/misc.dm +++ b/code/game/objects/items/weapons/melee/misc.dm @@ -11,11 +11,6 @@ reach = 2 -/obj/item/weapon/melee/chainofcommand/suicide_act(mob/user) - var/datum/gender/T = gender_datums[user.get_visible_gender()] - user.visible_message(span("danger", "\The [user] [T.is] strangling [T.himself] with \the [src]! It looks like [T.he] [T.is] trying to commit suicide."), span("danger", "You start to strangle yourself with \the [src]!"), span("danger", "You hear the sound of someone choking!")) - return (OXYLOSS) - /obj/item/weapon/melee/umbrella name = "umbrella" desc = "To keep the rain off you. Use with caution on windy days." diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index cd2f7e05af..9d57077995 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -31,11 +31,6 @@ /obj/item/weapon/melee/baton/get_cell() return bcell -/obj/item/weapon/melee/baton/suicide_act(mob/user) - var/datum/gender/TU = gender_datums[user.get_visible_gender()] - user.visible_message("\The [user] is putting the live [name] in [TU.his] mouth! It looks like [TU.he] [TU.is] trying to commit suicide.") - return (FIRELOSS) - /obj/item/weapon/melee/baton/MouseDrop(obj/over_object as obj) if(!canremove) return diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm index a110e80774..31c260c730 100644 --- a/code/game/objects/items/weapons/surgery_tools.dm +++ b/code/game/objects/items/weapons/surgery_tools.dm @@ -73,12 +73,6 @@ attack_verb = list("drilled") drop_sound = 'sound/items/drop/accessory.ogg' -/obj/item/weapon/surgical/surgicaldrill/suicide_act(mob/user) - var/datum/gender/TU = gender_datums[user.get_visible_gender()] - to_chat(viewers(user),pick("\The [user] is pressing \the [src] to [TU.his] temple and activating it! It looks like [TU.hes] trying to commit suicide.", - "\The [user] is pressing \the [src] to [TU.his] chest and activating it! It looks like [TU.hes] trying to commit suicide.")) - return (BRUTELOSS) - /* * Scalpel */ @@ -99,13 +93,6 @@ attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") drop_sound = 'sound/items/drop/knife.ogg' -/obj/item/weapon/surgical/scalpel/suicide_act(mob/user) - var/datum/gender/TU = gender_datums[user.get_visible_gender()] - to_chat(viewers(user),pick("\The [user] is slitting [TU.his] wrists with the [src.name]! It looks like [TU.hes] trying to commit suicide.", \ - "\The [user] is slitting [TU.his] throat with the [src.name]! It looks like [TU.hes] trying to commit suicide.", \ - "\The [user] is slitting [TU.his] stomach open with the [src.name]! It looks like [TU.hes] trying to commit seppuku.")) - return (BRUTELOSS) - /* * Researchable Scalpels */ diff --git a/code/game/objects/items/weapons/tools/screwdriver.dm b/code/game/objects/items/weapons/tools/screwdriver.dm index d1be9f9ae6..11a75c9bac 100644 --- a/code/game/objects/items/weapons/tools/screwdriver.dm +++ b/code/game/objects/items/weapons/tools/screwdriver.dm @@ -24,12 +24,6 @@ tool_qualities = list(TOOL_SCREWDRIVER) var/random_color = TRUE -/obj/item/weapon/tool/screwdriver/suicide_act(mob/user) - var/datum/gender/TU = gender_datums[user.get_visible_gender()] - to_chat(viewers(user), pick("\The [user] is stabbing the [src.name] into [TU.his] temple! It looks like [TU.hes] trying to commit suicide.", \ - "\The [user] is stabbing the [src.name] into [TU.his] heart! It looks like [TU.hes] trying to commit suicide.")) - return(BRUTELOSS) - /obj/item/weapon/tool/screwdriver/New() if(random_color) switch(pick("red","blue","purple","brown","green","cyan","yellow")) diff --git a/code/game/objects/items/weapons/traps.dm b/code/game/objects/items/weapons/traps.dm index d3f9ce5ed2..b6af04f1d8 100644 --- a/code/game/objects/items/weapons/traps.dm +++ b/code/game/objects/items/weapons/traps.dm @@ -22,11 +22,6 @@ var/camo_net = FALSE var/stun_length = 0.25 SECONDS -/obj/item/weapon/beartrap/suicide_act(mob/user) - var/datum/gender/T = gender_datums[user.get_visible_gender()] - to_chat(viewers(user),"[user] is putting the [src.name] on [T.his] head! It looks like [T.hes] trying to commit suicide.") - return (BRUTELOSS) - /obj/item/weapon/beartrap/proc/can_use(mob/user) return (user.IsAdvancedToolUser() && !issilicon(user) && !user.stat && !user.restrained()) diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index be45bfa822..961aa7990e 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -12,11 +12,6 @@ drop_sound = 'sound/items/drop/sword.ogg' pickup_sound = 'sound/items/pickup/sword.ogg' -/obj/item/weapon/nullrod/suicide_act(mob/user) - var/datum/gender/T = gender_datums[user.get_visible_gender()] - to_chat(viewers(user),"[user] is impaling [T.himself] with the [src.name]! It looks like [T.he] [T.is] trying to commit suicide.") - return (BRUTELOSS|FIRELOSS) - /obj/item/weapon/nullrod/attack(mob/M as mob, mob/living/user as mob) //Paste from old-code to decult with a null rod. add_attack_logs(user,M,"Hit with [src] (nullrod)") diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 88e5d1f217..0e7be6d978 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -291,11 +291,6 @@ drop_sound = 'sound/items/drop/gloves.ogg' pickup_sound = 'sound/items/pickup/gloves.ogg' -/obj/item/weapon/pen/crayon/suicide_act(mob/user) - var/datum/gender/TU = gender_datums[user.get_visible_gender()] - to_chat(viewers(user),"[user] is jamming the [src.name] up [TU.his] nose and into [TU.his] brain. It looks like [TU.he] [TU.is] trying to commit suicide.") - return (BRUTELOSS|OXYLOSS) - /obj/item/weapon/pen/crayon/New() name = "[colourName] crayon" diff --git a/code/modules/power/cable.dm b/code/modules/power/cable.dm index 2ac61045dd..291cb7be2b 100644 --- a/code/modules/power/cable.dm +++ b/code/modules/power/cable.dm @@ -520,14 +520,6 @@ var/list/possible_cable_coil_colours = list( uses_charge = 1 charge_costs = list(1) -/obj/item/stack/cable_coil/suicide_act(mob/user) - var/datum/gender/TU = gender_datums[user.get_visible_gender()] - if(locate(/obj/item/weapon/stool) in user.loc) - user.visible_message("[user] is making a noose with the [src.name]! It looks like [TU.he] [TU.is] trying to commit suicide.") - else - user.visible_message("[user] is strangling [TU.himself] with the [src.name]! It looks like [TU.he] [TU.is] trying to commit suicide.") - return(OXYLOSS) - /obj/item/stack/cable_coil/New(loc, length = MAXCOIL, var/param_color = null) ..() src.amount = length diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index 3afc1918f1..1d52a9664e 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -264,9 +264,4 @@ if (1000 to 50000-1) return min(rand(10,20),rand(10,20)) else - return 0 - -/obj/item/weapon/cell/suicide_act(mob/user) - var/datum/gender/TU = gender_datums[user.get_visible_gender()] - to_chat(viewers(user),"\The [user] is licking the electrodes of \the [src]! It looks like [TU.he] [TU.is] trying to commit suicide.") - return (FIRELOSS) \ No newline at end of file + return 0 \ No newline at end of file diff --git a/code/modules/virus2/effect.dm b/code/modules/virus2/effect.dm index dd19e5e3f4..06b172e1fa 100644 --- a/code/modules/virus2/effect.dm +++ b/code/modules/virus2/effect.dm @@ -122,19 +122,6 @@ var/mob/living/carbon/human/h = mob h.monkeyize() -/datum/disease2/effect/suicide - name = "Windpipe Contraction" - stage = 4 - badness = 3 - -/datum/disease2/effect/suicide/activate(var/mob/living/carbon/mob,var/multiplier) - var/datum/gender/TM = gender_datums[mob.get_visible_gender()] - mob.suiciding = 30 - //instead of killing them instantly, just put them at -175 health and let 'em gasp for a while - to_chat(viewers(mob),"[mob.name] is holding [TM.his] breath. It looks like [TM.he] [TM.is] trying to commit suicide.") - mob.adjustOxyLoss(175 - mob.getToxLoss() - mob.getFireLoss() - mob.getBruteLoss() - mob.getOxyLoss()) - mob.updatehealth() - /datum/disease2/effect/killertoxins name = "Autoimmune Response" stage = 4 From d8d9a09b384a7f0bc6aa6918584b0148956c889e Mon Sep 17 00:00:00 2001 From: Atermonera Date: Sun, 19 Sep 2021 17:54:24 -0800 Subject: [PATCH 3/3] Turbo-removes suicide --- code/game/verbs/suicide.dm | 57 +------------------------------------- 1 file changed, 1 insertion(+), 56 deletions(-) diff --git a/code/game/verbs/suicide.dm b/code/game/verbs/suicide.dm index af09e15e42..23181a9fdb 100644 --- a/code/game/verbs/suicide.dm +++ b/code/game/verbs/suicide.dm @@ -3,60 +3,5 @@ /mob/living/verb/suicide() set hidden = 1 - if (stat == 2) - to_chat(src, "You're already dead!") - return FALSE - if (!ticker) - to_chat(src, "You can't commit suicide before the game starts!") - return FALSE - - if (suiciding) - to_chat(src, "You're already committing suicide! Be patient!") - return FALSE - - return (alert("Are you sure you want to commit suicide?", "Confirm Suicide", "Yes", "No") == "Yes") - - -/mob/living/carbon/human/suicide() /// At best, useful for admins to see if it's being called. - ..() to_chat(src, "No. Adminhelp if there is a legitimate reason, and please review our server rules.") - message_admins("[ckey] has tried to trigger the suicide verb as human, but it is currently disabled.") - -/mob/living/carbon/brain/suicide() - if(..()) - suiciding = 1 - visible_message("[src]'s brain is growing dull and lifeless. It looks like it's lost the will to live.") - spawn(50) - death(0) - suiciding = 0 - -/mob/living/silicon/ai/suicide() - if(..()) - suiciding = 1 - visible_message("[src] is powering down. It looks like they're trying to commit suicide.") - //put em at -175 - adjustOxyLoss(max(getMaxHealth() * 2 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) - updatehealth() - -/mob/living/silicon/robot/suicide() - if(..()) - suiciding = 1 - visible_message("[src] is powering down. It looks like they're trying to commit suicide.") - //put em at -175 - adjustOxyLoss(max(getMaxHealth() * 2 - getToxLoss() - getFireLoss() - getBruteLoss() - getOxyLoss(), 0)) - updatehealth() - -/mob/living/silicon/pai/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") - var/obj/item/device/paicard/card = loc - card.removePersonality() - var/turf/T = get_turf_or_move(card.loc) - for (var/mob/M in viewers(T)) - M.show_message("[src] flashes a message across its screen, \"Wiping core files. Please acquire a new personality to continue using pAI device functions.\"", 3, "[src] bleeps electronically.", 2) - death(0) - else - to_chat(src, "Aborting suicide attempt.") + message_admins("[ckey] has tried to trigger the suicide verb, but it is disabled.")