diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 838019ef1e9..5108ba6efdf 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -382,7 +382,7 @@ return UI_CLOSE if(!user.can_read(src)) return UI_CLOSE - if(in_contents_of(/obj/machinery/door/airlock) || in_contents_of(/obj/item/clipboard) || in_contents_of(/obj/item/folder)) + if(in_contents_of(/obj/machinery/door/airlock) || in_contents_of(/obj/item/clipboard) || in_contents_of(/obj/item/folder) || in_contents_of(/obj/item/toy/plush/tian_plush)) //BUBBER EDIT - /obj/item/toy/plush/tian_plush return UI_INTERACTIVE return ..() diff --git a/modular_zubbers/code/game/objects/items/plushes.dm b/modular_zubbers/code/game/objects/items/plushes.dm index 8bb325a7682..6886a8054a5 100644 --- a/modular_zubbers/code/game/objects/items/plushes.dm +++ b/modular_zubbers/code/game/objects/items/plushes.dm @@ -320,16 +320,6 @@ icon_state = "lazy_synth" squeak_override = list('modular_zubbers/sound/misc/squeakle.ogg' = 1) - -/obj/item/toy/plush/tian_plush - name = "bureaucratic goat plush" - desc = "A big, soft plush of a goat-carp creature, that clearly hasn't slept in a lot. It has a faint smell of ink and weed." - attack_verb_continuous = list("chomps", "nibbles", "gnashes", "bites") - attack_verb_simple = list("gnashes") - icon = 'modular_zubbers/icons/obj/toys/plushes.dmi' - icon_state = "tian_plush" - squeak_override = list('modular_skyrat/modules/emotes/sound/voice/baa.ogg' = 1) - /obj/item/toy/plush/goatplushie name = "strange goat plushie" icon = 'modular_zubbers/icons/obj/toys/plushes.dmi' @@ -494,3 +484,125 @@ icon_state = "myrthel-plush" update_light() return ..() + +// Plushie coded and sprited by Mathilde. +// Props to Seijan-Etroix for helping with the design! +/obj/item/toy/plush/tian_plush + name = "bureaucratic goat plush" + desc = "A giant, weighted plushie of a goat-carp bureaucrat, who seems to be very hungry for paper(work). It's nearly impossible to get your arms all the way around her.

A tag on the back reads 'Comfort provided under official licence.'" + attack_verb_continuous = list("stomps", "smothers", "buries", "squishes", "nibbles", "gnashes", "flattens", "pummels", "chomps") + attack_verb_simple = list("stomp", "smother", "bury", "squish", "nibble", "gnash", "flatten", "pummel", "chomp") + icon = 'modular_zubbers/icons/obj/toys/plushes.dmi' + icon_state = "tianplush" + gender = FEMALE + squeak_override = list('modular_zubbers/sound/misc/meatybaa.ogg'=1) + var/shirt = TRUE + + var/bg_color = "#9b2e8c" + var/static/list/folder_insertables = typecacheof(list( + /obj/item/paper, + /obj/item/photo, + /obj/item/documents, + /obj/item/paperwork, + )) + +/obj/item/toy/plush/tian_plush/interact(mob/user) + return + +/obj/item/toy/plush/tian_plush/attack_self_secondary(mob/user, modifiers) + . = ..() + if(.) + return + add_fingerprint(user) + ui_interact(user) + return TRUE + +/obj/item/toy/plush/tian_plush/attack_hand_secondary(mob/user, list/modifiers) + . = ..() + if(. == SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN) + return + add_fingerprint(user) + ui_interact(user) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + +//Plot armour +/obj/item/toy/plush/tian_plush/attackby(obj/item/I, mob/living/user, list/modifiers, list/attack_modifiers) + if(I.get_sharpness()) + to_chat(user, span_notice("[I] just bounces off!")) + return + return ..() + +//The plushie works exactly like a folder +/obj/item/toy/plush/tian_plush/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(is_type_in_typecache(tool, folder_insertables)) + if(!user.transferItemToLoc(tool, src, silent = FALSE)) + return ITEM_INTERACT_BLOCKING + balloon_alert(user, "nom!") + return ITEM_INTERACT_SUCCESS + return NONE + +/obj/item/toy/plush/tian_plush/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) + if(!is_type_in_typecache(interacting_with, folder_insertables)) + return NONE + var/obj/item/item_to_insert = interacting_with + if(item_to_insert.loc == user) + if(!user.transferItemToLoc(item_to_insert, src, silent = TRUE)) + return ITEM_INTERACT_BLOCKING + else + item_to_insert.do_pickup_animation(src) + item_to_insert.forceMove(src) + playsound(src, item_to_insert.pickup_sound, PICKUP_SOUND_VOLUME, item_to_insert.sound_vary, ignore_walls = FALSE) + balloon_alert(user, "nom!") + return ITEM_INTERACT_SUCCESS + +/obj/item/toy/plush/tian_plush/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "Folder") + ui.open() + +/obj/item/toy/plush/tian_plush/ui_data(mob/user) + var/list/data = list() + data["bg_color"] = "[bg_color]" + data["folder_name"] = "[name]" + + data["contents"] = list() + data["contents_ref"] = list() + for(var/Content in src) + data["contents"] += "[Content]" + data["contents_ref"] += "[REF(Content)]" + + return data + +/obj/item/toy/plush/tian_plush/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + + if(usr.stat != CONSCIOUS || HAS_TRAIT(usr, TRAIT_HANDS_BLOCKED)) + return + + switch(action) + if("remove") + var/obj/item/Item = locate(params["ref"]) in src + if(istype(Item)) + Item.forceMove(usr.loc) + usr.put_in_hands(Item) + to_chat(usr, span_notice("You remove [Item] from [src].")) + . = TRUE + if("examine") + var/obj/item/Item = locate(params["ref"]) in src + if(istype(Item)) + usr.examinate(Item) + . = TRUE +//Belly +/obj/item/toy/plush/tian_plush/click_alt(mob/user) + shirt = !shirt + if(!shirt) + balloon_alert(user, "tummy shown...") + icon_state = "tianplush-alt" + + else + balloon_alert(user, "tummy tucked away...") + icon_state = "tianplush" + return ..() diff --git a/modular_zubbers/icons/obj/toys/plushes.dmi b/modular_zubbers/icons/obj/toys/plushes.dmi index af20624458f..13c4c9c64a1 100644 Binary files a/modular_zubbers/icons/obj/toys/plushes.dmi and b/modular_zubbers/icons/obj/toys/plushes.dmi differ diff --git a/modular_zubbers/sound/misc/meatybaa.ogg b/modular_zubbers/sound/misc/meatybaa.ogg new file mode 100644 index 00000000000..0ee21a3a517 Binary files /dev/null and b/modular_zubbers/sound/misc/meatybaa.ogg differ