From b8dae820986770fd63010e9a138ee22cf367b985 Mon Sep 17 00:00:00 2001 From: swindly Date: Fri, 10 Nov 2017 18:23:01 -0500 Subject: [PATCH 1/4] adds suicide_act()s --- code/game/gamemodes/miniantags/revenant/revenant.dm | 4 ++++ code/game/gamemodes/nuclear/nuclearbomb.dm | 11 +++++++++++ code/game/objects/items/bodybag.dm | 10 ++++++++++ code/game/objects/items/dice.dm | 8 ++++++++ code/game/objects/items/stacks/medical.dm | 4 ++++ code/game/objects/items/storage/firstaid.dm | 4 ++++ code/game/objects/items/theft_tools.dm | 4 ++++ code/game/objects/items/weaponry.dm | 2 +- code/modules/hydroponics/grown/melon.dm | 7 +++++++ 9 files changed, 53 insertions(+), 1 deletion(-) diff --git a/code/game/gamemodes/miniantags/revenant/revenant.dm b/code/game/gamemodes/miniantags/revenant/revenant.dm index 04a5f4d2be1..7c26a0595fe 100644 --- a/code/game/gamemodes/miniantags/revenant/revenant.dm +++ b/code/game/gamemodes/miniantags/revenant/revenant.dm @@ -411,6 +411,10 @@ revenant = null qdel(src) +/obj/item/ectoplasm/revenant/suicide_act(mob/user) + user.visible_message("[user] is inhaling [src]! It looks like [user.p_theyre()] trying to visit the shadow realm!") + return (OXYLOSS) + /obj/item/ectoplasm/revenant/Destroy() if(!QDELETED(revenant)) qdel(revenant) diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index 3ac0f7b29b8..adf2e92ff83 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -561,3 +561,14 @@ This is here to make the tiles around the station mininuke change when it's arme name = "cheap plastic imitation of the nuclear authentication disk" desc = "Broken dreams and a faint odor of cheese." icon_state = "nucleardisk" + +/obj/item/disk/fakenucleardisk/suicide_act(mob/user) + user.visible_message("[user] is pretending to go delta! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(user.loc, 'sound/machines/alarm.ogg', 50, -1, 1) + for(var/i in 1 to 100) + addtimer(CALLBACK(user, /atom/proc/add_atom_colour, (i % 2)? "#00FF00" : "#FF0000", ADMIN_COLOUR_PRIORITY), i) + addtimer(CALLBACK(user, /atom/proc/remove_atom_colour, ADMIN_COLOUR_PRIORITY), 101) + addtimer(CALLBACK(user, /atom/proc/visible_message, "[user] was destroyed by the nuclear blast!"), 101) + addtimer(CALLBACK(user, /mob/living/proc/adjustOxyLoss, 200), 101) + addtimer(CALLBACK(user, /mob/proc/death, 0), 101) + return MANUAL_SUICIDE \ No newline at end of file diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index 7c0757b061f..eb0ac441b5a 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -21,6 +21,16 @@ R.add_fingerprint(user) qdel(src) +/obj/item/bodybag/suicide_act(mob/user) + if(isopenturf(user.loc)) + user.visible_message("[user] is crawling into [src]! It looks like [user.p_theyre()] trying to commit suicide!") + var/obj/structure/closet/body_bag/R = new unfoldedbag_path(user.loc) + R.add_fingerprint(user) + qdel(src) + user.forceMove(R) + playsound(loc, 'sound/items/zip.ogg', 15, 1, -3) + return (OXYLOSS) + ..() // Bluespace bodybag diff --git a/code/game/objects/items/dice.dm b/code/game/objects/items/dice.dm index 7cf88e77ef5..4fe27d13201 100644 --- a/code/game/objects/items/dice.dm +++ b/code/game/objects/items/dice.dm @@ -30,6 +30,10 @@ if(special_die == "100") new /obj/item/dice/d100(src) +/obj/item/storage/pill_bottle/dice/suicide_act(mob/user) + user.visible_message("[user] is gambling with death! It looks like [user.p_theyre()] trying to commit suicide!") + return (OXYLOSS) + /obj/item/dice //depreciated d6, use /obj/item/dice/d6 if you actually want a d6 name = "die" desc = "A die with six sides. Basic and servicable." @@ -47,6 +51,10 @@ update_icon() ..() +/obj/item/dice/suicide_act(mob/user) + user.visible_message("[user] is gambling with death! It looks like [user.p_theyre()] trying to commit suicide!") + return (OXYLOSS) + /obj/item/dice/d1 name = "d1" desc = "A die with one side. Deterministic!" diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 6c073f4b69c..8db91578f5f 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -113,6 +113,10 @@ origin_tech = "biotech=2" self_delay = 20 +/obj/item/stack/medical/bruise_pack/suicide_act(mob/user) + user.visible_message("[user] is bludgeoning [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") + return (BRUTELOSS) + /obj/item/stack/medical/gauze name = "medical gauze" desc = "A roll of elastic cloth that is extremely effective at stopping bleeding, but does not heal wounds." diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm index 4dc90de6bec..2b7a1695cd2 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -167,6 +167,10 @@ usr.s_active.close(usr) src.show_to(usr) +/obj/item/storage/pill_bottle/suicide_act(mob/user) + user.visible_message("[user] is trying to get the cap off [src]! It looks like [user.p_theyre()] trying to commit suicide!") + return (TOXLOSS) + /obj/item/storage/pill_bottle/charcoal name = "bottle of charcoal pills" desc = "Contains pills used to counter toxins." diff --git a/code/game/objects/items/theft_tools.dm b/code/game/objects/items/theft_tools.dm index 6795c4d58bf..0f8b9fee9eb 100644 --- a/code/game/objects/items/theft_tools.dm +++ b/code/game/objects/items/theft_tools.dm @@ -34,6 +34,10 @@ cooldown = world.time flick(pulseicon, src) radiation_pulse(src, 400, 2) + +/obj/item/nuke_core/suicide_act(mob/user) + user.visible_message("[user] is rubbing [src] against [user.p_them()]self! It looks like [user.p_theyre()] trying to commit suicide!") + return (TOXLOSS) //nuke core box, for carrying the core /obj/item/nuke_core_container diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index 419a8b706dc..ea1f6b00831 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -398,7 +398,7 @@ icon_state = "ectoplasm" /obj/item/ectoplasm/suicide_act(mob/user) - user.visible_message("[user] is inhaling [src]! It looks like [user.p_theyre()] trying to visit the astral plane.") + user.visible_message("[user] is inhaling [src]! It looks like [user.p_theyre()] trying to visit the astral plane!") return (OXYLOSS) /obj/item/mounted_chainsaw diff --git a/code/modules/hydroponics/grown/melon.dm b/code/modules/hydroponics/grown/melon.dm index 027832de5e8..1f142c3d2f8 100644 --- a/code/modules/hydroponics/grown/melon.dm +++ b/code/modules/hydroponics/grown/melon.dm @@ -14,6 +14,13 @@ mutatelist = list(/obj/item/seeds/watermelon/holy) reagents_add = list("water" = 0.2, "vitamin" = 0.04, "nutriment" = 0.2) +/obj/item/seeds/watermelon/suicide_act(mob/user) + user.visible_message("[user] is swallowing [src]! It looks like [user.p_theyre()] trying to commit suicide!") + user.gib() + new product(loc) + qdel(src) + return (BRUTELOSS) + /obj/item/reagent_containers/food/snacks/grown/watermelon seed = /obj/item/seeds/watermelon name = "watermelon" From f7966deae47f94733554c610643bae2f0c15d4b4 Mon Sep 17 00:00:00 2001 From: swindly Date: Tue, 5 Dec 2017 17:57:08 -0500 Subject: [PATCH 2/4] makes residue scatter on suicide, makes fake disk suicide less interesting, makes melon seeds manual suicide --- code/game/gamemodes/miniantags/revenant/revenant.dm | 1 + code/game/gamemodes/nuclear/nuclearbomb.dm | 5 +---- code/modules/hydroponics/grown/melon.dm | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/code/game/gamemodes/miniantags/revenant/revenant.dm b/code/game/gamemodes/miniantags/revenant/revenant.dm index 7c26a0595fe..727203b1503 100644 --- a/code/game/gamemodes/miniantags/revenant/revenant.dm +++ b/code/game/gamemodes/miniantags/revenant/revenant.dm @@ -413,6 +413,7 @@ /obj/item/ectoplasm/revenant/suicide_act(mob/user) user.visible_message("[user] is inhaling [src]! It looks like [user.p_theyre()] trying to visit the shadow realm!") + scatter() return (OXYLOSS) /obj/item/ectoplasm/revenant/Destroy() diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index adf2e92ff83..ee0dbffc8dd 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -564,10 +564,7 @@ This is here to make the tiles around the station mininuke change when it's arme /obj/item/disk/fakenucleardisk/suicide_act(mob/user) user.visible_message("[user] is pretending to go delta! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(user.loc, 'sound/machines/alarm.ogg', 50, -1, 1) - for(var/i in 1 to 100) - addtimer(CALLBACK(user, /atom/proc/add_atom_colour, (i % 2)? "#00FF00" : "#FF0000", ADMIN_COLOUR_PRIORITY), i) - addtimer(CALLBACK(user, /atom/proc/remove_atom_colour, ADMIN_COLOUR_PRIORITY), 101) + playsound(user.loc, 'sound/machines/alarm.ogg', 30, -1, 1) addtimer(CALLBACK(user, /atom/proc/visible_message, "[user] was destroyed by the nuclear blast!"), 101) addtimer(CALLBACK(user, /mob/living/proc/adjustOxyLoss, 200), 101) addtimer(CALLBACK(user, /mob/proc/death, 0), 101) diff --git a/code/modules/hydroponics/grown/melon.dm b/code/modules/hydroponics/grown/melon.dm index 1f142c3d2f8..bac5143df5d 100644 --- a/code/modules/hydroponics/grown/melon.dm +++ b/code/modules/hydroponics/grown/melon.dm @@ -19,7 +19,7 @@ user.gib() new product(loc) qdel(src) - return (BRUTELOSS) + return MANUAL_SUICIDE /obj/item/reagent_containers/food/snacks/grown/watermelon seed = /obj/item/seeds/watermelon From 94f83561a87c9902ce1561771fc2422990161d48 Mon Sep 17 00:00:00 2001 From: swindly Date: Thu, 7 Dec 2017 16:27:29 -0500 Subject: [PATCH 3/4] fixes suicide acts --- code/game/gamemodes/nuclear/nuclearbomb.dm | 26 +++++++++++++--------- code/game/objects/items/bodybag.dm | 2 +- code/modules/hydroponics/grown/melon.dm | 2 +- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index ee0dbffc8dd..e0b83b6ac04 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -548,14 +548,17 @@ This is here to make the tiles around the station mininuke change when it's arme /obj/item/disk/nuclear/suicide_act(mob/user) user.visible_message("[user] is going delta! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(user.loc, 'sound/machines/alarm.ogg', 50, -1, 1) + playsound(src, 'sound/machines/alarm.ogg', 50, -1, 1) for(var/i in 1 to 100) addtimer(CALLBACK(user, /atom/proc/add_atom_colour, (i % 2)? "#00FF00" : "#FF0000", ADMIN_COLOUR_PRIORITY), i) - addtimer(CALLBACK(user, /atom/proc/remove_atom_colour, ADMIN_COLOUR_PRIORITY), 101) - addtimer(CALLBACK(user, /atom/proc/visible_message, "[user] was destroyed by the nuclear blast!"), 101) - addtimer(CALLBACK(user, /mob/living/proc/adjustOxyLoss, 200), 101) - addtimer(CALLBACK(user, /mob/proc/death, 0), 101) + addtimer(CALLBACK(src, .proc/manual_suicide, user), 101) return MANUAL_SUICIDE + +/obj/item/disk/nuclear/proc/manual_suicide(mob/living/user) + user.remove_atom_colour(ADMIN_COLOUR_PRIORITY) + user.visible_message("[user] was destroyed by the nuclear blast!") + user.adjustOxyLoss(200) + user.death(0) /obj/item/disk/fakenucleardisk name = "cheap plastic imitation of the nuclear authentication disk" @@ -564,8 +567,11 @@ This is here to make the tiles around the station mininuke change when it's arme /obj/item/disk/fakenucleardisk/suicide_act(mob/user) user.visible_message("[user] is pretending to go delta! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(user.loc, 'sound/machines/alarm.ogg', 30, -1, 1) - addtimer(CALLBACK(user, /atom/proc/visible_message, "[user] was destroyed by the nuclear blast!"), 101) - addtimer(CALLBACK(user, /mob/living/proc/adjustOxyLoss, 200), 101) - addtimer(CALLBACK(user, /mob/proc/death, 0), 101) - return MANUAL_SUICIDE \ No newline at end of file + playsound(src, 'sound/machines/alarm.ogg', 30, -1, 1) + addtimer(CALLBACK(src, .proc/manual_suicide, user), 101) + return MANUAL_SUICIDE + +/obj/item/disk/fakenucleardisk/proc/manual_suicide(mob/living/user) + user.visible_message("[user] was destroyed by the nuclear blast!") + user.adjustOxyLoss(200) + user.death(0) \ No newline at end of file diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index eb0ac441b5a..38e371aa8ca 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -28,7 +28,7 @@ R.add_fingerprint(user) qdel(src) user.forceMove(R) - playsound(loc, 'sound/items/zip.ogg', 15, 1, -3) + playsound(src, 'sound/items/zip.ogg', 15, 1, -3) return (OXYLOSS) ..() diff --git a/code/modules/hydroponics/grown/melon.dm b/code/modules/hydroponics/grown/melon.dm index bac5143df5d..5e64d716ec5 100644 --- a/code/modules/hydroponics/grown/melon.dm +++ b/code/modules/hydroponics/grown/melon.dm @@ -17,7 +17,7 @@ /obj/item/seeds/watermelon/suicide_act(mob/user) user.visible_message("[user] is swallowing [src]! It looks like [user.p_theyre()] trying to commit suicide!") user.gib() - new product(loc) + new product(drop_location()) qdel(src) return MANUAL_SUICIDE From 545a5b56dc1d00b1764439fc8356371bd2d5ae94 Mon Sep 17 00:00:00 2001 From: swindly Date: Thu, 7 Dec 2017 20:36:13 -0500 Subject: [PATCH 4/4] fixes disk suicide --- code/game/gamemodes/nuclear/nuclearbomb.dm | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index e0b83b6ac04..02effb04929 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -554,7 +554,7 @@ This is here to make the tiles around the station mininuke change when it's arme addtimer(CALLBACK(src, .proc/manual_suicide, user), 101) return MANUAL_SUICIDE -/obj/item/disk/nuclear/proc/manual_suicide(mob/living/user) +/obj/item/disk/proc/manual_suicide(mob/living/user) user.remove_atom_colour(ADMIN_COLOUR_PRIORITY) user.visible_message("[user] was destroyed by the nuclear blast!") user.adjustOxyLoss(200) @@ -569,9 +569,4 @@ This is here to make the tiles around the station mininuke change when it's arme user.visible_message("[user] is pretending to go delta! It looks like [user.p_theyre()] trying to commit suicide!") playsound(src, 'sound/machines/alarm.ogg', 30, -1, 1) addtimer(CALLBACK(src, .proc/manual_suicide, user), 101) - return MANUAL_SUICIDE - -/obj/item/disk/fakenucleardisk/proc/manual_suicide(mob/living/user) - user.visible_message("[user] was destroyed by the nuclear blast!") - user.adjustOxyLoss(200) - user.death(0) \ No newline at end of file + return MANUAL_SUICIDE \ No newline at end of file