mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 03:57:13 +01:00
Feature: Clown recycler, a new Cmag effect (#28233)
* banana touched recycler * 2 returns * droppable clothing * no more clown genes * foghorn sound effect * ITS HARMLESS * review * Update code/datums/spells/banana_touch.dm Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com> Signed-off-by: Toastical <vnndvp@gmail.com> * Update code/datums/spells/banana_touch.dm oh theyre 2 Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com> Signed-off-by: Toastical <vnndvp@gmail.com> --------- Signed-off-by: Toastical <vnndvp@gmail.com> Co-authored-by: Toastical <toastical@toaster.com> Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
This commit is contained in:
co-authored by
Luc
Toastical
parent
7da09f5e72
commit
404f11fa4c
@@ -72,3 +72,37 @@
|
||||
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, "<font color='red' size='6'>HONK</font>")
|
||||
Weaken(14 SECONDS)
|
||||
Stuttering(30 SECONDS)
|
||||
do_jitter_animation(30 SECONDS)
|
||||
|
||||
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()
|
||||
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)
|
||||
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)
|
||||
internal = internal_tank
|
||||
|
||||
|
||||
@@ -49,7 +49,10 @@
|
||||
. = ..()
|
||||
. += "<span class='notice'>The power light is [(stat & NOPOWER) ? "<b>off</b>" : "<b>on</b>"]."
|
||||
. += "The operation light is [emergency_mode ? "<b>off</b>. [src] has detected a forbidden object with its sensors, and has shut down temporarily." : "<b>on</b>. [src] is active."]"
|
||||
. += "The safety sensor light is [emagged ? "<b>off</b>!" : "<b>on</b>."]</span>"
|
||||
if(HAS_TRAIT(src, TRAIT_CMAGGED))
|
||||
. += "The safety sensor light is <font color=red>R</font><font color=green>G</font><font color=blue>B</font>.</span>"
|
||||
else
|
||||
. += "The safety sensor light is [emagged ? "<b>off</b>!" : "<b>on</b>."]</span>"
|
||||
. += "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, "<span class='warning'>The board is completely fried.</span>")
|
||||
return FALSE
|
||||
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, "<span class='notice'>You use the jestographic sequencer on [src].</span>")
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/recycler/emag_act(mob/user)
|
||||
if(HAS_TRAIT(src, TRAIT_CMAGGED))
|
||||
to_chat(user, "<span class='warning'>The access panel is coated in yellow ooze...</span>")
|
||||
return FALSE
|
||||
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,15 @@
|
||||
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
|
||||
playsound(src, 'sound/items/AirHorn.ogg', 100, TRUE, -1)
|
||||
victim.bananatouched_harmless()
|
||||
|
||||
/obj/machinery/recycler/proc/crush_living(mob/living/L)
|
||||
|
||||
L.loc = loc
|
||||
|
||||
Reference in New Issue
Block a user