diff --git a/code/_globalvars/arcade.dm b/code/_globalvars/arcade.dm index 4143ce5fa76..9803178a886 100644 --- a/code/_globalvars/arcade.dm +++ b/code/_globalvars/arcade.dm @@ -61,6 +61,7 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list( /obj/item/toy/plush/abductor = 2, /obj/item/toy/plush/abductor/agent = 2, /obj/item/toy/plush/shark = 2, + /obj/item/toy/plush/monkey = 2, /obj/item/storage/belt/military/snack/full = 2, /obj/item/toy/brokenradio = 2, /obj/item/toy/braintoy = 2, diff --git a/code/datums/components/crafting/entertainment.dm b/code/datums/components/crafting/entertainment.dm index 84d495d7539..42dfd43f13b 100644 --- a/code/datums/components/crafting/entertainment.dm +++ b/code/datums/components/crafting/entertainment.dm @@ -37,6 +37,16 @@ ) category = CAT_ENTERTAINMENT +/datum/crafting_recipe/monkeyplush + name = "Monkey Plushie" + result = /obj/item/toy/plush/monkey + reqs = list( + /obj/item/clothing/mask/gas/monkeymask = 1, + /obj/item/clothing/suit/costume/monkeysuit = 1, + /obj/item/grown/cotton = 10, + ) + category = CAT_ENTERTAINMENT + /datum/crafting_recipe/mixedbouquet name = "Mixed bouquet" result = /obj/item/bouquet diff --git a/code/game/objects/effects/spawners/random/entertainment.dm b/code/game/objects/effects/spawners/random/entertainment.dm index ce0dddb5314..7d067a16464 100644 --- a/code/game/objects/effects/spawners/random/entertainment.dm +++ b/code/game/objects/effects/spawners/random/entertainment.dm @@ -254,6 +254,7 @@ /obj/item/toy/plush/moth, /obj/item/toy/plush/pkplush, /obj/item/toy/plush/horse, + /obj/item/toy/plush/monkey, ) /obj/effect/spawner/random/entertainment/plushie_delux @@ -280,6 +281,7 @@ /obj/item/toy/plush/abductor/agent = 3, /obj/item/toy/plush/shark = 3, /obj/item/toy/plush/unicorn = 3, + /obj/item/toy/plush/monkey = 3, // super rare plushies /obj/item/toy/plush/bubbleplush = 2, /obj/item/toy/plush/ratplush = 2, diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index d765951a311..8fd1f2e5e6b 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -842,3 +842,48 @@ icon_state = "unicorn" attack_verb_continuous = list("whinnies", "gallops", "prances", "magicks") attack_verb_simple = list("whinny", "gallop", "prance", "magick") + +/obj/item/toy/plush/monkey + name = "monkey plushie" + desc = "The tag reads: 'Oop eek! I'm a chimpanzee!', with 'Now in JUMBO SIZE!' on the flipside." + w_class = WEIGHT_CLASS_BULKY + throw_range = 2 + throw_speed = 1 + icon_state = "monkey" + inhand_icon_state = null + attack_verb_continuous = list("Oops", "Eeks") + attack_verb_simple = list("Oop", "Eek") + squeak_override = list(SFX_SCREECH=1) + /// if the monkey ate a mimana and has changed nationality + var/french = FALSE + +/obj/item/toy/plush/monkey/item_interaction(mob/living/feeder, obj/item/food/grown/banana/nana, list/modifiers) + if(!istype(nana)) + return ..() + nana.forceMove(src) // go into the cotton stomach + to_chat(feeder, span_notice("You hand over the [nana] to [src] and watch as it eats...")) + playsound(src, 'sound/items/eatfood.ogg', 75, TRUE) + addtimer(CALLBACK(src, PROC_REF(eat), feeder, nana), 3 SECONDS) + return ITEM_INTERACT_SUCCESS + +/obj/item/toy/plush/monkey/proc/eat(mob/living/feeder, obj/item/food/grown/banana/nana) + if(istype(nana, /obj/item/food/grown/banana/bluespace)) + do_teleport(src, get_turf(src), 15, channel = TELEPORT_CHANNEL_BLUESPACE) + else if(istype(nana, /obj/item/food/grown/banana/mime) && !french) + name = "peluche de singe" + desc = "L'étiquette indique: 'Oop eek! Je suis un chimpanzé!', avec 'Maintenant en TAILLE JUMBO!' sur l'autre face." + french = TRUE + // throw the peel at a random mob, or a random turf if there are none + var/obj/item/grown/bananapeel/peel = new nana.trash_type(get_turf(src)) + var/list/oviewers = oviewers(peel.throw_range, src) + var/throw_src = src + // if a player holds the plushie, the throw source will be the player + if(isliving(loc)) + oviewers = oviewers(loc) + throw_src = loc + if(oviewers.len > 0 && (locate(feeder) in oviewers)) + oviewers -= feeder // remove feeder from targetables + peel.throw_at(oviewers.len == 0 ? get_ranged_target_turf(throw_src, pick(GLOB.alldirs), peel.throw_range) : pick(oviewers), peel.throw_range, peel.throw_speed, quickstart = FALSE) + playsound(src, 'sound/mobs/non-humanoids/gorilla/gorilla.ogg', 100, FALSE) + spasm_animation(5 SECONDS) + qdel(nana) diff --git a/icons/obj/toys/plushes.dmi b/icons/obj/toys/plushes.dmi index 851a4500f34..697a537a32e 100644 Binary files a/icons/obj/toys/plushes.dmi and b/icons/obj/toys/plushes.dmi differ