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"