diff --git a/code/datums/diseases/pierrot_throat.dm b/code/datums/diseases/pierrot_throat.dm index 6fb0ac53507..451f9f28dbd 100644 --- a/code/datums/diseases/pierrot_throat.dm +++ b/code/datums/diseases/pierrot_throat.dm @@ -59,5 +59,6 @@ if(prob(5)) affected_mob.say( pick( list("HONK!", "Honk!", "Honk.", "Honk?", "Honk!!", "Honk?!", "Honk...") ) ) - if(!istype(affected_mob.wear_mask, /obj/item/clothing/mask/gas/virusclown_hat)) - affected_mob.equip_to_slot(new /obj/item/clothing/mask/gas/virusclown_hat(src), slot_wear_mask) \ No newline at end of file + if(!istype(affected_mob.wear_mask, /obj/item/clothing/mask/gas/clown_hat/nodrop)) + affected_mob.unEquip(affected_mob.wear_mask, TRUE) + affected_mob.equip_to_slot(new /obj/item/clothing/mask/gas/clown_hat/nodrop(src), slot_wear_mask) \ No newline at end of file diff --git a/code/datums/spells/banana_touch.dm b/code/datums/spells/banana_touch.dm new file mode 100644 index 00000000000..4e2f1d44e51 --- /dev/null +++ b/code/datums/spells/banana_touch.dm @@ -0,0 +1,64 @@ +/obj/effect/proc_holder/spell/targeted/touch/banana + name = "Banana Touch" + desc = "A spell popular at wizard birthday parties, this spell will put on a clown costume on the target, \ + stun them with a loud HONK, and mutate them to make them more entertaining! \ + Warning : Effects are permanent on non-wizards." + hand_path = /obj/item/melee/touch_attack/banana + school = "transmutation" + + charge_max = 300 + clothes_req = 1 + cooldown_min = 100 //50 deciseconds reduction per rank + action_icon_state = "clown" + +/obj/item/melee/touch_attack/banana + name = "banana touch" + desc = "It's time to start clowning around." + catchphrase = "NWOLC YRGNA" + on_use_sound = 'sound/items/AirHorn.ogg' + icon_state = "banana_touch" + item_state = "banana_touch" + +/obj/item/melee/touch_attack/banana/afterattack(atom/target, mob/living/carbon/user, proximity) + if(!proximity || target == user || !ishuman(target) || !iscarbon(user) || user.lying || user.handcuffed) + return + + var/datum/effect_system/smoke_spread/s = new + s.set_up(5, 0, target) + s.start() + + to_chat(user, "HONK") + var/mob/living/carbon/human/H = target + H.bananatouched() + ..() + +/mob/living/carbon/human/proc/bananatouched() + to_chat(src, "HONK") + Weaken(7) + Stun(7) + Stuttering(15) + do_jitter_animation(15) + + if(iswizard(src) || (mind && mind.special_role == SPECIAL_ROLE_WIZARD_APPRENTICE)) //Wizards get non-cursed clown robes and magical mask. + unEquip(shoes, TRUE) + unEquip(wear_mask, TRUE) + unEquip(head, TRUE) + unEquip(wear_suit, TRUE) + equip_to_slot_if_possible(new /obj/item/clothing/head/wizard/clown, slot_head, TRUE, TRUE) + equip_to_slot_if_possible(new /obj/item/clothing/suit/wizrobe/clown, slot_wear_suit, TRUE, TRUE) + equip_to_slot_if_possible(new /obj/item/clothing/shoes/clown_shoes/magical, slot_shoes, TRUE, TRUE) + equip_to_slot_if_possible(new /obj/item/clothing/mask/gas/clownwiz, slot_wear_mask, TRUE, TRUE) + else + qdel(shoes) + qdel(wear_mask) + qdel(w_uniform) + equip_to_slot_if_possible(new /obj/item/clothing/under/rank/clown/nodrop, slot_w_uniform, TRUE, TRUE) + equip_to_slot_if_possible(new /obj/item/clothing/shoes/clown_shoes/nodrop, slot_shoes, TRUE, TRUE) + equip_to_slot_if_possible(new /obj/item/clothing/mask/gas/clown_hat/nodrop, slot_wear_mask, TRUE, TRUE) + dna.SetSEState(CLUMSYBLOCK, TRUE, TRUE) + dna.SetSEState(COMICBLOCK, TRUE, TRUE) + genemutcheck(src, CLUMSYBLOCK, null, MUTCHK_FORCED) + genemutcheck(src, COMICBLOCK, null, MUTCHK_FORCED) + 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(CLUMSYBLOCK) + dna.default_blocks.Add(COMICBLOCK) \ No newline at end of file diff --git a/code/datums/spells/mime_malaise.dm b/code/datums/spells/mime_malaise.dm new file mode 100644 index 00000000000..a5afd26d916 --- /dev/null +++ b/code/datums/spells/mime_malaise.dm @@ -0,0 +1,54 @@ +/obj/effect/proc_holder/spell/targeted/touch/mime_malaise + name = "Mime Malaise" + desc = "A spell popular with theater nerd wizards and contrarian pranksters, this spell will put on a mime costume on the target, \ + stun them so that they may contemplate Art, and silence them. \ + Warning : Effects are permanent on non-wizards." + hand_path = /obj/item/melee/touch_attack/mime_malaise + school = "transmutation" + + charge_max = 300 + clothes_req = 1 + cooldown_min = 100 //50 deciseconds reduction per rank + action_icon_state = "mime" + +/obj/item/melee/touch_attack/mime_malaise + name = "mime hand" + desc = "..." + catchphrase = null + on_use_sound = null + icon_state = "fleshtostone" + item_state = "fleshtostone" + +/obj/item/melee/touch_attack/mime_malaise/afterattack(atom/target, mob/living/carbon/user, proximity) + if(!proximity || target == user || !ishuman(target) || !iscarbon(user) || user.lying || user.handcuffed) + return + + var/datum/effect_system/smoke_spread/s = new + s.set_up(5, 0, target) + s.start() + + var/mob/living/carbon/human/H = target + H.mimetouched() + ..() + +/mob/living/carbon/human/proc/mimetouched() + Weaken(7) + Stun(7) + if(iswizard(src) || (mind && mind.special_role == SPECIAL_ROLE_WIZARD_APPRENTICE)) //Wizards get non-cursed mime outfit. Replace with mime robes if we add those. + unEquip(wear_mask, TRUE) + unEquip(w_uniform, TRUE) + unEquip(wear_suit, TRUE) + equip_to_slot_if_possible(new /obj/item/clothing/mask/gas/mime, slot_wear_mask, TRUE, TRUE) + equip_to_slot_if_possible(new /obj/item/clothing/under/mime, slot_w_uniform, TRUE, TRUE) + equip_to_slot_if_possible(new /obj/item/clothing/suit/suspenders, slot_wear_suit, TRUE, TRUE) + Silence(7) + else + qdel(wear_mask) + qdel(w_uniform) + qdel(wear_suit) + equip_to_slot_if_possible(new /obj/item/clothing/mask/gas/mime/nodrop, slot_wear_mask, TRUE, TRUE) + equip_to_slot_if_possible(new /obj/item/clothing/under/mime/nodrop, slot_w_uniform, TRUE, TRUE) + equip_to_slot_if_possible(new /obj/item/clothing/suit/suspenders/nodrop, slot_wear_suit, TRUE, TRUE) + dna.SetSEState(MUTEBLOCK , TRUE, TRUE) + genemutcheck(src, MUTEBLOCK , null, MUTCHK_FORCED) + dna.default_blocks.Add(MUTEBLOCK) \ No newline at end of file diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index 50a427ae70c..4193ad7b751 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -116,6 +116,18 @@ log_name = "CC" category = "Offensive" +/datum/spellbook_entry/banana_touch + name = "Banana Touch" + spell_type = /obj/effect/proc_holder/spell/targeted/touch/banana + log_name = "BT" + cost = 1 + +/datum/spellbook_entry/mime_malaise + name = "Mime Malaise" + spell_type = /obj/effect/proc_holder/spell/targeted/touch/mime_malaise + log_name = "MI" + cost = 1 + /datum/spellbook_entry/horseman name = "Curse of the Horseman" spell_type = /obj/effect/proc_holder/spell/targeted/horsemask diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index db7295809b1..8956a456166 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -140,11 +140,7 @@ flags_inv = HIDEEARS | HIDEEYES magical = TRUE -/obj/item/clothing/mask/gas/virusclown_hat - name = "clown wig and mask" - desc = "A true prankster's facial attire. A clown is incomplete without his wig and mask." - icon_state = "clown" - item_state = "clown_hat" +/obj/item/clothing/mask/gas/clown_hat/nodrop flags = NODROP /obj/item/clothing/mask/gas/mime @@ -154,6 +150,9 @@ item_state = "mime" burn_state = FLAMMABLE +/obj/item/clothing/mask/gas/mime/nodrop + flags = NODROP + /obj/item/clothing/mask/gas/monkeymask name = "monkey mask" desc = "A mask used when acting as a monkey." diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 3a94118e538..bc7d0d6c701 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -88,6 +88,9 @@ to_chat(user, "You switch on the waddle dampeners!") enabled_waddle = FALSE +/obj/item/clothing/shoes/clown_shoes/nodrop + flags = NODROP + /obj/item/clothing/shoes/clown_shoes/magical name = "magical clown shoes" desc = "Standard-issue shoes of the wizarding class clown. Damn they're huge! And powerful! Somehow." diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index abc5809f0e2..87b30fe01dc 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -30,7 +30,7 @@ "Vox" = 'icons/mob/species/vox/suit.dmi' ) -//Botonist +//Botanist /obj/item/clothing/suit/apron name = "apron" desc = "A basic blue apron." @@ -364,6 +364,9 @@ "Vox" = 'icons/mob/species/vox/suit.dmi' ) +/obj/item/clothing/suit/suspenders/nodrop + flags = NODROP + // Surgeon /obj/item/clothing/suit/apron/surgical name = "surgical apron" @@ -371,7 +374,7 @@ icon_state = "surgical" item_state = "surgical" allowed = list(/obj/item/scalpel, /obj/item/surgical_drapes, /obj/item/cautery, /obj/item/hemostat, /obj/item/retractor) - + //Research Director /obj/item/clothing/suit/mantle/labcoat name = "research director's mantle" diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm index 6bfd40ad0ad..81c6d15562a 100644 --- a/code/modules/clothing/under/jobs/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian.dm @@ -88,6 +88,9 @@ item_state = "sexyclown" item_color = "sexyclown" +/obj/item/clothing/under/rank/clown/nodrop + flags = NODROP + /obj/item/clothing/under/rank/head_of_personnel desc = "It's a jumpsuit worn by someone who works in the position of \"Head of Personnel\"." name = "head of personnel's jumpsuit" @@ -208,6 +211,8 @@ item_color = "mime" flags_size = ONESIZEFITSALL +/obj/item/clothing/under/mime/nodrop + flags = NODROP /obj/item/clothing/under/rank/miner desc = "It's a snappy jumpsuit with a sturdy set of overalls. It is very dirty." diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi index 03f57f19a92..10eef3b0337 100644 Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi index b11f98e74ed..926e04b28bf 100644 Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index 03f835232ac..6464b5787fe 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/paradise.dme b/paradise.dme index 8f24c8a71ff..03edc0adbcf 100644 --- a/paradise.dme +++ b/paradise.dme @@ -359,6 +359,7 @@ #include "code\datums\ruins\lavaland.dm" #include "code\datums\ruins\space.dm" #include "code\datums\spells\area_teleport.dm" +#include "code\datums\spells\banana_touch.dm" #include "code\datums\spells\bloodcrawl.dm" #include "code\datums\spells\chaplain.dm" #include "code\datums\spells\charge.dm" @@ -382,6 +383,7 @@ #include "code\datums\spells\lightning.dm" #include "code\datums\spells\magnet.dm" #include "code\datums\spells\mime.dm" +#include "code\datums\spells\mime_malaise.dm" #include "code\datums\spells\mind_transfer.dm" #include "code\datums\spells\night_vision.dm" #include "code\datums\spells\projectile.dm"