diff --git a/code/game/objects/effects/decals/Cleanable/misc.dm b/code/game/objects/effects/decals/Cleanable/misc.dm index 84f228c6ab..e68ce7aa4e 100644 --- a/code/game/objects/effects/decals/Cleanable/misc.dm +++ b/code/game/objects/effects/decals/Cleanable/misc.dm @@ -128,3 +128,17 @@ icon = 'icons/effects/blood.dmi' icon_state = "mfloor1" random_icon_states = list("mfloor1", "mfloor2", "mfloor3", "mfloor4", "mfloor5", "mfloor6", "mfloor7") + +/obj/effect/decal/cleanable/confetti + name = "confetti" + desc = "Tiny bits of colored paper thrown about for the janitor to enjoy!" + gender = PLURAL + density = FALSE + anchored = TRUE + icon = 'icons/effects/effects.dmi' + icon_state = "confetti" + +/obj/effect/decal/cleanable/confetti/attack_hand(mob/user) + to_chat(user, "You start to meticulously pick up the confetti.") + if(do_after(user, 60)) + qdel(src) diff --git a/code/game/objects/items/toys/toys_vr.dm b/code/game/objects/items/toys/toys_vr.dm index db7dc423a3..2fca91a496 100644 --- a/code/game/objects/items/toys/toys_vr.dm +++ b/code/game/objects/items/toys/toys_vr.dm @@ -22,6 +22,7 @@ * Professor Who universal ID * Professor Who sonic driver * Action figures + * Desk toys */ @@ -969,3 +970,114 @@ icon = 'icons/obj/toy_vr.dmi' icon_state = "prisoner" toysay = "I did not hit her! I did not!" + +/obj/item/toy/figure/error + name = "completely glitched action figure" + desc = "A \"Space Life\" brand... wait, what the hell is this thing? It seems to be requesting the sweet release of death." + icon = 'icons/obj/toy_vr.dmi' + icon_state = "glitched" + toysay = "AaAAaAAAaAaaaAAA!!!!!" + +/* + * Desk toys + */ +/obj/item/weapon/toy/desk + icon = 'icons/obj/toy_vr.dmi' + var/on = FALSE + var/activation_sound = 'sound/machines/click.ogg' + +/obj/item/weapon/toy/desk/update_icon() + if(on) + icon_state = "[initial(icon_state)]-on" + else + icon_state = "[initial(icon_state)]" + +/obj/item/weapon/toy/desk/proc/activate(mob/user as mob) + on = !on + playsound(src.loc, activation_sound, 75, 1) + update_icon() + return 1 + +/obj/item/weapon/toy/desk/attack_self(mob/user) + activate(user) + +/obj/item/weapon/toy/desk/AltClick(mob/user) + activate(user) + +/obj/item/weapon/toy/desk/MouseDrop(mob/user as mob) // Code from Paper bin, so you can still pick up the deck + if((user == usr && (!( usr.restrained() ) && (!( usr.stat ) && (usr.contents.Find(src) || in_range(src, usr)))))) + if(!istype(usr, /mob/living/simple_mob)) + if( !usr.get_active_hand() ) //if active hand is empty + var/mob/living/carbon/human/H = user + var/obj/item/organ/external/temp = H.organs_by_name["r_hand"] + + if (H.hand) + temp = H.organs_by_name["l_hand"] + if(temp && !temp.is_usable()) + to_chat(user,"You try to move your [temp.name], but cannot!") + return + + to_chat(user,"You pick up [src].") + user.put_in_hands(src) + + return + +/obj/item/weapon/toy/desk/newtoncradle + name = "\improper Newton's cradle" + desc = "A ancient 21th century super-weapon model demonstrating that Sir Isaac Newton is the deadliest sonuvabitch in space." + description_fluff = "Aside from car radios, Eridanian Dregs are reportedly notorious for stealing these things. It is often \ + theorized that the very same ball bearings are used in black-market cybernetics." + icon_state = "newtoncradle" + +/obj/item/weapon/toy/desk/fan + name = "office fan" + desc = "Your greatest fan." + description_fluff = "For weeks, the atmospherics department faced a conundrum on how to lower temperatures in a localized \ + area through complicated pipe channels and ventilation systems. The problem was promptly solved by ordering several desk fans." + icon_state = "fan" + +/obj/item/weapon/toy/desk/officetoy + name = "office toy" + desc = "A generic microfusion powered office desk toy. Only generates magnetism and ennui." + description_fluff = "The mechanism inside is a Hephasteus trade secret. No peeking!" + icon_state = "desktoy" + +/obj/item/weapon/toy/desk/dippingbird + name = "dipping bird toy" + desc = "Engineers marvel at this scale model of a primitive thermal engine. It's highly debated why the majority of owners \ + were in low-level bureaucratic jobs." + description_fluff = "One of the key essentials for every Eridanian suit - it's practically a rite of passage to own one \ + of these things." + icon_state = "dippybird" + +/obj/item/weapon/toy/desk/stellardelight + name = "\improper Stellar Delight model" + desc = "A scale model of the Stellar Delight. Includes flashing lights!" + icon_state = "stellar_delight" + +/* + * Party popper + */ +/obj/item/weapon/toy/partypopper + name = "party popper" + desc = "Instructions : Aim away from face. Wait for appropriate timing. Pull cord, enjoy confetti." + icon = 'icons/obj/toy_vr.dmi' + icon_state = "partypopper" + w_class = ITEMSIZE_TINY + drop_sound = 'sound/items/drop/cardboardbox.ogg' + pickup_sound = 'sound/items/pickup/cardboardbox.ogg' + +/obj/item/weapon/toy/partypopper/attack_self(mob/user as mob) + if(icon_state == "partypopper") + user.visible_message("[user] pulls on the string, releasing a burst of confetti!", "You pull on the string, releasing a burst of confetti!") + playsound(src, 'sound/effects/snap.ogg', 50, TRUE) + var/datum/effect/effect/system/confetti_spread/s = new /datum/effect/effect/system/confetti_spread + s.set_up(5, 1, src) + s.start() + icon_state = "partypopper_e" + var/turf/T = get_step(src, user.dir) + if(!turf_clear(T)) + T = get_turf(src) + new /obj/effect/decal/cleanable/confetti(T) + else + to_chat(user, "The [src] is already spent!") \ No newline at end of file diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index f71ea2a829..cea0d0c58f 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ diff --git a/icons/obj/toy_vr.dmi b/icons/obj/toy_vr.dmi index 9b3ca4d9d0..6df7d6ff3b 100644 Binary files a/icons/obj/toy_vr.dmi and b/icons/obj/toy_vr.dmi differ diff --git a/icons/obj/vending.dmi b/icons/obj/vending.dmi index 91285fd3a1..99c9ac9925 100755 Binary files a/icons/obj/vending.dmi and b/icons/obj/vending.dmi differ diff --git a/maps/stellardelight/stellar_delight2.dmm b/maps/stellardelight/stellar_delight2.dmm index d89c8acf3d..71d259fba3 100644 --- a/maps/stellardelight/stellar_delight2.dmm +++ b/maps/stellardelight/stellar_delight2.dmm @@ -12576,6 +12576,10 @@ /obj/machinery/atmospherics/unary/vent_pump/on{ dir = 4 }, +/obj/item/weapon/toy/desk/stellardelight{ + pixel_x = -11; + pixel_y = -8 + }, /turf/simulated/floor/carpet/sblucarpet, /area/stellardelight/deck2/briefingroom) "CL" = (