diff --git a/code/game/objects/items/toys/toys_vr.dm b/code/game/objects/items/toys/toys_vr.dm index 6ad3f8996c9..aa5e2b97d66 100644 --- a/code/game/objects/items/toys/toys_vr.dm +++ b/code/game/objects/items/toys/toys_vr.dm @@ -130,6 +130,7 @@ * Fake gun * 2 * Toy chainsaw * Random tabletop miniature spawner +* snake popper */ /obj/item/toy/plushie/ipc @@ -240,12 +241,23 @@ /obj/item/toy/plushie/marketable_pip/proc/cooldownreset() cooldown = 0 - /obj/item/toy/plushie/moth name = "moth plushie" desc = "A cute plushie of cartoony moth. It's ultra fluffy but leaves dust everywhere." icon = 'icons/obj/toy_vr.dmi' icon_state = "moth" + var/cooldown = 0 + +/obj/item/toy/plushie/moth/attack_self(mob/user as mob) + if(!cooldown) + playsound(user, 'sound/voice/moth/scream_moth.ogg', 10, 0) + src.visible_message("Aaaaaaa.") + cooldown = 1 + addtimer(CALLBACK(src, .proc/cooldownreset), 50) + return ..() + +/obj/item/toy/plushie/moth/proc/cooldownreset() + cooldown = 0 /obj/item/toy/plushie/crab name = "crab plushie" @@ -523,7 +535,7 @@ O.forceMove(src) stored_minature = O else - user.visible_message("You stop feedeeding \the [O] into \the [src].","[user] stops feeding \the [O] into \the [src]!/span>") + user.visible_message("You stop feeding \the [O] into \the [src].","[user] stops feeding \the [O] into \the [src]!/span>") else ..() @@ -614,6 +626,7 @@ playsound(src, 'sound/effects/snap.ogg', 50, 1) user.visible_message("[src] goes off!") shake_camera(user, 2, 1) + user.Stun(1) post_shot(user) return TRUE else @@ -675,5 +688,66 @@ icon = 'icons/obj/toy.dmi' icon_state = "aliencharacter" -/obj/random/mech_toy/item_to_spawn() +/obj/random/miniature/item_to_spawn() return pick(typesof(/obj/item/toy/character)) + +/obj/item/toy/snake_popper + name = "bread tube" + desc = "Bread in a tube. Chewy...and surprisingly tasty." + description_fluff = "This is the product that brought Centauri Provisions into the limelight. A product of the earliest extrasolar colony of Heaven, the Bread Tube, while bland, contains all the nutrients a spacer needs to get through the day and is decidedly edible when compared to some of its competitors. Due to the high-fructose corn syrup content of NanoTrasen's own-brand bread tubes, many jurisdictions classify them as a confectionary." + icon = 'icons/obj/toy_vr.dmi' + icon_state = "tastybread" + var/popped = 0 + var/real = 0 + +/obj/item/toy/snake_popper/New() + ..() + if(prob(0.1)) + real = 1 + +/obj/item/toy/snake_popper/attack_self(mob/user as mob) + if(!popped) + to_chat(user, "A snake popped out of [src]!") + if(real == 0) + var/obj/item/toy/C = new /obj/item/toy/plushie/snakeplushie(get_turf(loc)) + C.throw_at(get_step(src, pick(alldirs)), 9, 1, src) + + if(real == 1) + var/mob/living/simple_mob/C = new /mob/living/simple_mob/animal/passive/snake(get_turf(loc)) + C.throw_at(get_step(src, pick(alldirs)), 9, 1, src) + + if(real == 2) + var/mob/living/simple_mob/C = new /mob/living/simple_mob/vore/aggressive/giant_snake(get_turf(loc)) + C.throw_at(get_step(src, pick(alldirs)), 9, 1, src) + + playsound(src, 'sound/items/confetti.ogg', 50, 0) + icon_state = "tastybread_popped" + popped = 1 + user.Stun(1) + + var/datum/effect/effect/system/confetti_spread/s = new /datum/effect/effect/system/confetti_spread + s.set_up(5, 1, src) + s.start() + + +/obj/item/toy/snake_popper/attackby(obj/O, mob/user, params) + if(istype(O, /obj/item/toy/plushie/snakeplushie)) + if(popped) + qdel(O) + popped = 0 + icon_state = "tastybread" + +/obj/item/toy/snake_popper/attack(mob/living/M as mob, mob/user as mob) + if(istype(M,/mob/living/carbon/human) || !real) + var/obj/item/toy/C = new /obj/item/toy/plushie/snakeplushie(get_turf(loc)) + playsound(C, 'sound/items/confetti.ogg', 50, 0) + popped = 1 + icon_state = "tastybread_popped" + M.Stun(1) + C.throw_at(get_step(src, pick(alldirs)), 9, 1, src) + +/obj/item/toy/snake_popper/emag_act(remaining_charges, mob/user) + if(real != 2) + real = 2 + to_chat(user, "You short out the bluespace refill system of [src].") + diff --git a/icons/obj/toy_vr.dmi b/icons/obj/toy_vr.dmi index 673e0843b2e..3ad106945b6 100644 Binary files a/icons/obj/toy_vr.dmi and b/icons/obj/toy_vr.dmi differ diff --git a/sound/voice/moth/scream_moth.ogg b/sound/voice/moth/scream_moth.ogg new file mode 100644 index 00000000000..482086fb630 Binary files /dev/null and b/sound/voice/moth/scream_moth.ogg differ