diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index f2e006e24c8..1fbcb942248 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -995,6 +995,47 @@ name = "tuxedo cat plushie" icon_state = "tuxedocat" +/obj/item/toy/plushie/greyplushie + name = "grey plushie" + desc = "A plushie of a grey wearing a sweatshirt. As a part of the 'The Alien' series, the doll features a sweater, an oversized head, and cartoonish eyes." + icon_state = "plushie_grey" + item_state = "plushie_grey" + var/hug_cooldown = FALSE //Defaults the plushie to being off coolodown. Sets the hug_cooldown var. + var/scream_cooldown = FALSE //Defaults the plushie to being off cooldown. Sets the scream_cooldown var. + var/singed = FALSE + +/obj/item/toy/plushie/greyplushie/water_act(volume, temperature, source, method = REAGENT_TOUCH) //If water touches the plushie the following code executes. + . = ..() + if(scream_cooldown) + return + scream_cooldown = TRUE //water_act executes the scream_cooldown var, setting it on cooldown. + addtimer(CALLBACK(src, .proc/reset_screamdown), 30 SECONDS) //After 30 seconds the reset_coolodown() proc will execute, resetting the cooldown. Hug interaction is unnaffected by this. + playsound(src, 'sound/goonstation/voice/male_scream.ogg', 10, FALSE)//If the plushie gets wet it screams and "AAAAAH!" appears in chat. + visible_message("AAAAAAH!") + if(singed) + return + singed = TRUE + icon_state = "grey_singed" + item_state = "grey_singed"//If the plushie gets wet the sprite changes to a singed version. + desc = "A ruined plushie of a grey. It looks like someone ran it under some water." + +/obj/item/toy/plushie/greyplushie/proc/reset_screamdown() + scream_cooldown = FALSE //Resets the scream interaction cooldown. + +/obj/item/toy/plushie/greyplushie/proc/reset_hugdown() + hug_cooldown = FALSE //Resets the hug interaction cooldown. + +/obj/item/toy/plushie/greyplushie/attack_self(mob/user)//code for talking when hugged. + . = ..() + if(hug_cooldown) + return + hug_cooldown = TRUE + addtimer(CALLBACK(src, .proc/reset_hugdown), 5 SECONDS) //Hug interactions only put the plushie on a 5 second cooldown. + if(singed)//If the plushie is water damaged it'll say Ow instead of talking in wingdings. + visible_message("Ow...") + else//If the plushie has not touched water they'll say Greetings in wingdings. + visible_message("☝︎❒︎♏︎♏︎⧫︎♓︎■︎♑︎⬧︎📬︎") + /obj/item/toy/plushie/voxplushie name = "vox plushie" desc = "A stitched-together vox, fresh from the skipjack. Press its belly to hear it skree!" diff --git a/code/modules/client/preference/loadout/loadout_general.dm b/code/modules/client/preference/loadout/loadout_general.dm index 56c28df62fe..ee8555d6d85 100644 --- a/code/modules/client/preference/loadout/loadout_general.dm +++ b/code/modules/client/preference/loadout/loadout_general.dm @@ -81,6 +81,10 @@ display_name = "Carp plushie" path = /obj/item/toy/carpplushie +/datum/gear/greyplushie + display_name = "Grey Plushie" + path = /obj/item/toy/plushie/greyplushie + /datum/gear/sechud display_name = "Classic security HUD" path = /obj/item/clothing/glasses/hud/security diff --git a/icons/obj/toy.dmi b/icons/obj/toy.dmi index c51d2903b14..ad8445ca9c4 100644 Binary files a/icons/obj/toy.dmi and b/icons/obj/toy.dmi differ