mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-25 22:19:30 +01:00
Bureaucratic Goat 2: the Reckoning (#5226)
## About The Pull Request Credit to Seijan-Etroix for helping **_a lot_** with the design. I have resprited and recoded the Bureaucratic goat's plush, my very first PR. Now, the plushie has two secret functions: one which allows the plushie to pull back its shirt and reveal its belly (exactly like #5188) and another which simply allows the plushie to eat paper/documents and act as a folder. It also comes with its own custom sound. <img width="320" height="320" alt="tianplush-export" src="https://github.com/user-attachments/assets/5b6a5556-a1a7-4b8d-ba0f-1fe197dfe746" /> ## Why It's Good For The Game I'm better at coding and spriting now! ## Proof Of Testing <details> <summary>Screenshots/Videos</summary> <img width="170" height="120" alt="image" src="https://github.com/user-attachments/assets/3f280207-8767-496d-8885-29dbf73652b7" /> <img width="352" height="164" alt="image" src="https://github.com/user-attachments/assets/7ddccc27-0aa4-4e30-8b73-2f538388352c" /> </details> ## Changelog 🆑 add: Added new folder functionality to the Bureaucratic Goat plush, as well as a revealable tummy. image: Updated the sprite of the Bureaucratic Goat plush. /🆑
This commit is contained in:
@@ -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 ..()
|
||||
|
||||
|
||||
@@ -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.<br><br><span style=color:#6685F5><i>A tag on the back reads 'Comfort provided under official licence.'</i></span>"
|
||||
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 ..()
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 72 KiB |
Binary file not shown.
Reference in New Issue
Block a user