From caed8c2588bb6532421fa1edcb9cf57e06e21bce Mon Sep 17 00:00:00 2001 From: Toastical Date: Mon, 3 Feb 2025 16:07:06 +0200 Subject: [PATCH 1/9] banana touched recycler --- code/datums/spells/banana_touch.dm | 19 ++++++++++++++++++ code/game/machinery/recycler.dm | 31 ++++++++++++++++++++++++++++-- 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/code/datums/spells/banana_touch.dm b/code/datums/spells/banana_touch.dm index 165ba07208ef..e16a61735440 100644 --- a/code/datums/spells/banana_touch.dm +++ b/code/datums/spells/banana_touch.dm @@ -72,3 +72,22 @@ if(!(iswizard(src) || (mind && mind.special_role == SPECIAL_ROLE_WIZARD_APPRENTICE))) //Mutations are permanent on non-wizards. Can still be removed by genetics fuckery but not mutadone. dna.default_blocks.Add(GLOB.clumsyblock) dna.default_blocks.Add(GLOB.comicblock) + +/// Like bananatouched, but intended to be used for funny one-off scenarios which aren't meant to permanently cripple someone's round. +/mob/living/carbon/human/proc/bananatouched_harmless() + to_chat(src, "HONK") + Weaken(14 SECONDS) + Stuttering(30 SECONDS) + do_jitter_animation(30 SECONDS) + + drop_item_to_ground(shoes, force = TRUE) + drop_item_to_ground(wear_mask, force = TRUE) + drop_item_to_ground(w_uniform, force = TRUE) + equip_to_slot_if_possible(new /obj/item/clothing/under/rank/civilian/clown/nodrop, ITEM_SLOT_JUMPSUIT, TRUE, TRUE) + equip_to_slot_if_possible(new /obj/item/clothing/shoes/clown_shoes/nodrop, ITEM_SLOT_SHOES, TRUE, TRUE) + equip_to_slot_if_possible(new /obj/item/clothing/mask/gas/clown_hat/nodrop, ITEM_SLOT_MASK, TRUE, TRUE) + + dna.SetSEState(GLOB.clumsyblock, TRUE, TRUE) + dna.SetSEState(GLOB.comicblock, TRUE, TRUE) + singlemutcheck(src, GLOB.clumsyblock, MUTCHK_FORCED) + singlemutcheck(src, GLOB.comicblock, MUTCHK_FORCED) diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index f6a7070cbfa2..8a68ec820323 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -49,7 +49,10 @@ . = ..() . += "The power light is [(stat & NOPOWER) ? "off" : "on"]." . += "The operation light is [emergency_mode ? "off. [src] has detected a forbidden object with its sensors, and has shut down temporarily." : "on. [src] is active."]" - . += "The safety sensor light is [emagged ? "off!" : "on."]" + if(HAS_TRAIT(src, TRAIT_CMAGGED)) + . += "The safety sensor light is RGB." + else + . += "The safety sensor light is [emagged ? "off!" : "on."]" . += "The recycler current accepts items from [dir2text(eat_dir)]." /obj/machinery/recycler/power_change() @@ -77,9 +80,23 @@ if(default_unfasten_wrench(user, I, time = 6 SECONDS)) return TRUE - +/obj/machinery/recycler/cmag_act(mob/user) + if(emagged) + to_chat(user, "The board is completely fried.") + return + if(!HAS_TRAIT(src, TRAIT_CMAGGED)) + ADD_TRAIT(src, TRAIT_CMAGGED, CLOWN_EMAG) + if(emergency_mode) + emergency_mode = FALSE + update_icon(UPDATE_ICON_STATE) + playsound(src, "sparks", 75, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) + to_chat(user, "You use the jestographic sequencer on [src].") + return TRUE /obj/machinery/recycler/emag_act(mob/user) + if(HAS_TRAIT(src, TRAIT_CMAGGED)) + to_chat(user, "The access panel is coated in yellow ooze...") + return if(!emagged) emagged = TRUE if(emergency_mode) @@ -127,6 +144,8 @@ else if(isliving(AM)) if(emagged) crush_living(AM) + else if(HAS_TRAIT(src, TRAIT_CMAGGED)) + bananafication(AM) else emergency_stop(AM) else if(isitem(AM)) @@ -165,6 +184,14 @@ emergency_mode = FALSE update_icon(UPDATE_ICON_STATE) +/obj/machinery/recycler/proc/bananafication(mob/living/L) + L.loc = loc + if(!iscarbon(L)) + playsound(loc, 'sound/machines/buzz-sigh.ogg', 50, 0) + return + var/mob/living/carbon/human/victim = L + victim.bananatouched_harmless() + /obj/machinery/recycler/proc/crush_living(mob/living/L) L.loc = loc From 9e2e2de7381d0ef07beeb10e66c8a1690b04c6bf Mon Sep 17 00:00:00 2001 From: Toastical Date: Mon, 3 Feb 2025 16:19:01 +0200 Subject: [PATCH 2/9] 2 returns --- code/game/machinery/recycler.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index 8a68ec820323..e6e453ca9436 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -83,7 +83,7 @@ /obj/machinery/recycler/cmag_act(mob/user) if(emagged) to_chat(user, "The board is completely fried.") - return + return FALSE if(!HAS_TRAIT(src, TRAIT_CMAGGED)) ADD_TRAIT(src, TRAIT_CMAGGED, CLOWN_EMAG) if(emergency_mode) @@ -96,7 +96,7 @@ /obj/machinery/recycler/emag_act(mob/user) if(HAS_TRAIT(src, TRAIT_CMAGGED)) to_chat(user, "The access panel is coated in yellow ooze...") - return + return FALSE if(!emagged) emagged = TRUE if(emergency_mode) From bf982a4ea208cac12e63b1f9bda78f65dbd1d65d Mon Sep 17 00:00:00 2001 From: Toastical Date: Mon, 3 Feb 2025 20:52:29 +0200 Subject: [PATCH 3/9] droppable clothing --- code/datums/spells/banana_touch.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/datums/spells/banana_touch.dm b/code/datums/spells/banana_touch.dm index e16a61735440..84a8a55e56cb 100644 --- a/code/datums/spells/banana_touch.dm +++ b/code/datums/spells/banana_touch.dm @@ -83,9 +83,9 @@ drop_item_to_ground(shoes, force = TRUE) drop_item_to_ground(wear_mask, force = TRUE) drop_item_to_ground(w_uniform, force = TRUE) - equip_to_slot_if_possible(new /obj/item/clothing/under/rank/civilian/clown/nodrop, ITEM_SLOT_JUMPSUIT, TRUE, TRUE) - equip_to_slot_if_possible(new /obj/item/clothing/shoes/clown_shoes/nodrop, ITEM_SLOT_SHOES, TRUE, TRUE) - equip_to_slot_if_possible(new /obj/item/clothing/mask/gas/clown_hat/nodrop, ITEM_SLOT_MASK, TRUE, TRUE) + equip_to_slot_if_possible(new /obj/item/clothing/under/rank/civilian/clown, ITEM_SLOT_JUMPSUIT, TRUE, TRUE) + equip_to_slot_if_possible(new /obj/item/clothing/shoes/clown_shoes, ITEM_SLOT_SHOES, TRUE, TRUE) + equip_to_slot_if_possible(new /obj/item/clothing/mask/gas/clown_hat, ITEM_SLOT_MASK, TRUE, TRUE) dna.SetSEState(GLOB.clumsyblock, TRUE, TRUE) dna.SetSEState(GLOB.comicblock, TRUE, TRUE) From c74eab526013e38be976cd83fdb65ce1f002bf1e Mon Sep 17 00:00:00 2001 From: Toastical Date: Mon, 3 Feb 2025 20:55:35 +0200 Subject: [PATCH 4/9] no more clown genes --- code/datums/spells/banana_touch.dm | 5 ----- 1 file changed, 5 deletions(-) diff --git a/code/datums/spells/banana_touch.dm b/code/datums/spells/banana_touch.dm index 84a8a55e56cb..11866b1ebded 100644 --- a/code/datums/spells/banana_touch.dm +++ b/code/datums/spells/banana_touch.dm @@ -86,8 +86,3 @@ equip_to_slot_if_possible(new /obj/item/clothing/under/rank/civilian/clown, ITEM_SLOT_JUMPSUIT, TRUE, TRUE) equip_to_slot_if_possible(new /obj/item/clothing/shoes/clown_shoes, ITEM_SLOT_SHOES, TRUE, TRUE) equip_to_slot_if_possible(new /obj/item/clothing/mask/gas/clown_hat, ITEM_SLOT_MASK, TRUE, TRUE) - - dna.SetSEState(GLOB.clumsyblock, TRUE, TRUE) - dna.SetSEState(GLOB.comicblock, TRUE, TRUE) - singlemutcheck(src, GLOB.clumsyblock, MUTCHK_FORCED) - singlemutcheck(src, GLOB.comicblock, MUTCHK_FORCED) From 49c070a1b2a71dbd6278feed96b3d35c2b5c176f Mon Sep 17 00:00:00 2001 From: Toastical Date: Mon, 3 Feb 2025 21:24:14 +0200 Subject: [PATCH 5/9] foghorn sound effect --- code/game/machinery/recycler.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index e6e453ca9436..73de1a609e01 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -190,7 +190,8 @@ playsound(loc, 'sound/machines/buzz-sigh.ogg', 50, 0) return var/mob/living/carbon/human/victim = L - victim.bananatouched_harmless() + playsound(src, 'sound/items/AirHorn.ogg', 100, TRUE, -1) + victim.bananatouched() /obj/machinery/recycler/proc/crush_living(mob/living/L) From eb7c6ce34de9cdefd86060fa1fbd03662e1c3a0d Mon Sep 17 00:00:00 2001 From: Toastical Date: Mon, 3 Feb 2025 21:27:12 +0200 Subject: [PATCH 6/9] ITS HARMLESS --- code/game/machinery/recycler.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index 73de1a609e01..0d7c47d3048a 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -191,7 +191,7 @@ return var/mob/living/carbon/human/victim = L playsound(src, 'sound/items/AirHorn.ogg', 100, TRUE, -1) - victim.bananatouched() + victim.bananatouched_harmless() /obj/machinery/recycler/proc/crush_living(mob/living/L) From 8c56a02c96cb036c251edf7cdf328f0b92f6cd15 Mon Sep 17 00:00:00 2001 From: Toastical Date: Thu, 6 Feb 2025 15:02:56 +0200 Subject: [PATCH 7/9] review --- code/datums/spells/banana_touch.dm | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/code/datums/spells/banana_touch.dm b/code/datums/spells/banana_touch.dm index 11866b1ebded..d66ce2f3eb2d 100644 --- a/code/datums/spells/banana_touch.dm +++ b/code/datums/spells/banana_touch.dm @@ -80,9 +80,29 @@ Stuttering(30 SECONDS) do_jitter_animation(30 SECONDS) + var/obj/item/tank/internal_tank = src.internal + var/obj/item/clothing/mask/gas/clown_hat/clown_mask = new() + var/obj/item/clothing/under/rank/civilian/clown/clown_suit = new() + var/obj/item/clothing/shoes/clown_shoes/clown_shoes = new() + clown_mask.flags |= DROPDEL + clown_suit.flags |= DROPDEL + clown_shoes.flags |= DROPDEL + drop_item_to_ground(shoes, force = TRUE) drop_item_to_ground(wear_mask, force = TRUE) drop_item_to_ground(w_uniform, force = TRUE) - equip_to_slot_if_possible(new /obj/item/clothing/under/rank/civilian/clown, ITEM_SLOT_JUMPSUIT, TRUE, TRUE) - equip_to_slot_if_possible(new /obj/item/clothing/shoes/clown_shoes, ITEM_SLOT_SHOES, TRUE, TRUE) - equip_to_slot_if_possible(new /obj/item/clothing/mask/gas/clown_hat, ITEM_SLOT_MASK, TRUE, TRUE) + if(isplasmaman(src)) + drop_item_to_ground(head, force = TRUE) + var/obj/item/clothing/head/helmet/space/plasmaman/clown/clown_helmet = new() + clown_suit = new /obj/item/clothing/under/plasmaman/clown + clown_helmet.flags |= DROPDEL + clown_suit.flags |= DROPDEL + equip_to_slot_if_possible(clown_helmet, ITEM_SLOT_HEAD, TRUE, TRUE) + equip_to_slot_if_possible(clown_suit, ITEM_SLOT_JUMPSUIT, TRUE, TRUE) + equip_to_slot_if_possible(clown_shoes, ITEM_SLOT_SHOES, TRUE, TRUE) + equip_to_slot_if_possible(clown_mask, ITEM_SLOT_MASK, TRUE, TRUE) + + // Re-equips the internal tank if present + equip_to_appropriate_slot(internal_tank) + src.internal = internal_tank + From 9e4959c7c6902f2dc2c0c6230a30fb0b8813fe92 Mon Sep 17 00:00:00 2001 From: Toastical Date: Fri, 7 Feb 2025 00:24:10 +0200 Subject: [PATCH 8/9] Update code/datums/spells/banana_touch.dm Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com> Signed-off-by: Toastical --- code/datums/spells/banana_touch.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/spells/banana_touch.dm b/code/datums/spells/banana_touch.dm index d66ce2f3eb2d..512984eec7e9 100644 --- a/code/datums/spells/banana_touch.dm +++ b/code/datums/spells/banana_touch.dm @@ -104,5 +104,5 @@ // Re-equips the internal tank if present equip_to_appropriate_slot(internal_tank) - src.internal = internal_tank + internal = internal_tank From a48029ce1ac858a733e909e8959861675dae5256 Mon Sep 17 00:00:00 2001 From: Toastical Date: Fri, 7 Feb 2025 00:24:39 +0200 Subject: [PATCH 9/9] Update code/datums/spells/banana_touch.dm oh theyre 2 Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com> Signed-off-by: Toastical --- code/datums/spells/banana_touch.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/spells/banana_touch.dm b/code/datums/spells/banana_touch.dm index 512984eec7e9..6fa785eb31aa 100644 --- a/code/datums/spells/banana_touch.dm +++ b/code/datums/spells/banana_touch.dm @@ -80,7 +80,7 @@ Stuttering(30 SECONDS) do_jitter_animation(30 SECONDS) - var/obj/item/tank/internal_tank = src.internal + var/obj/item/tank/internal_tank = internal var/obj/item/clothing/mask/gas/clown_hat/clown_mask = new() var/obj/item/clothing/under/rank/civilian/clown/clown_suit = new() var/obj/item/clothing/shoes/clown_shoes/clown_shoes = new()