From 4208d6ea5f0fa3c9605381d116fe567471c9d73a Mon Sep 17 00:00:00 2001 From: deathride58 Date: Fri, 3 Aug 2018 22:29:19 -0400 Subject: [PATCH] Adds boombox donor item for Raiq/chefferz (#7368) --- .../code/game/objects/items/boombox.dm | 61 ++++++++++++++++++ .../code/modules/client/loadout/__donator.dm | 7 ++ modular_citadel/icons/obj/boombox.dmi | Bin 0 -> 1091 bytes tgstation.dme | 1 + 4 files changed, 69 insertions(+) create mode 100644 modular_citadel/code/game/objects/items/boombox.dm create mode 100644 modular_citadel/icons/obj/boombox.dmi diff --git a/modular_citadel/code/game/objects/items/boombox.dm b/modular_citadel/code/game/objects/items/boombox.dm new file mode 100644 index 0000000000..10d12f1973 --- /dev/null +++ b/modular_citadel/code/game/objects/items/boombox.dm @@ -0,0 +1,61 @@ +/obj/item/boombox + name = "boombox" + desc = "A dusty, gray, bulky, battery-powered, auto-looping stereo cassette player. An ancient relic from prehistoric times on that one planet with humans and stuff. Yeah, that one." + icon = 'modular_citadel/icons/obj/boombox.dmi' + icon_state = "raiqbawks_off"//PLACEHOLDER UNTIL SOMEONE SPRITES PLAIN NON-FANCY BOOMBOXES + w_class = WEIGHT_CLASS_NORMAL + force = 3 + var/baseiconstate = "raiqbawks" + var/boomingandboxing = FALSE + var/list/availabletrackids + +/obj/item/boombox/attack_self(mob/user) + . = ..() + if(boomingandboxing) + SSjukeboxes.removejukebox(SSjukeboxes.findjukeboxindex(src)) + boomingandboxing = FALSE + to_chat(user, "You flip a switch on [src], and the music immediately stops.") + update_icon() + return + if(!availabletrackids || !availabletrackids.len) + to_chat(user, "[src] flashes as you prod it senselessly. It doesn't have any songs stored on it.") + return + if(!boomingandboxing) + var/list/tracklist = list() + for(var/datum/track/S in SSjukeboxes.songs) + if(istype(S) && S.song_associated_id in availabletrackids) + tracklist[S.song_name] = S + var/selected = input(user, "Play song", "Track:") as null|anything in tracklist + if(QDELETED(src) || !selected || !istype(tracklist[selected], /datum/track)) + return + var/jukeboxslottotake = SSjukeboxes.addjukebox(src, tracklist[selected]) + if(jukeboxslottotake) + boomingandboxing = TRUE + update_icon() + +/obj/item/boombox/Destroy(mob/user) + SSjukeboxes.removejukebox(SSjukeboxes.findjukeboxindex(src)) + . = ..() + +/obj/item/boombox/update_icon() + icon_state = "[baseiconstate]_[boomingandboxing ? "on" : "off"]" + return + +/obj/item/boombox/raiq + name = "Miami Boomer" + desc = "A shiny, fashionable boombox filled to the brim with neon lights, synthesizers, gang violence, and broken R keys. A worn-out sticker on the back states \"Includes three kickin' beats!\"" + icon_state = "raiqbawks_off" + baseiconstate = "raiqbawks" + availabletrackids = list("hotline.ogg","chiptune.ogg","genesis.ogg") + +/obj/item/boombox/raiq/update_icon() + . = ..() + if(boomingandboxing) + START_PROCESSING(SSobj, src) + else + STOP_PROCESSING(SSobj, src) + set_light(0) + +/obj/item/boombox/raiq/process() + set_light(5,0.95,pick("#d87aff","#7a7aff","#89ecff","#b88eff","#ff59ad")) + return diff --git a/modular_citadel/code/modules/client/loadout/__donator.dm b/modular_citadel/code/modules/client/loadout/__donator.dm index ea75fe449f..9d28dd8749 100644 --- a/modular_citadel/code/modules/client/loadout/__donator.dm +++ b/modular_citadel/code/modules/client/loadout/__donator.dm @@ -314,6 +314,13 @@ datum/gear/darksabresheath path = /obj/item/clothing/shoes/lucky ckeywhitelist = list("donaldtrumpthecommunist") +/datum/gear/raiqbawks + name = "Miami Boombox" + category = SLOT_HANDS + cost = 2 + path = /obj/item/boombox/raiq + ckeywhitelist = list("chefferz") + /datum/gear/m41 name = "Toy M41" category = SLOT_IN_BACKPACK diff --git a/modular_citadel/icons/obj/boombox.dmi b/modular_citadel/icons/obj/boombox.dmi new file mode 100644 index 0000000000000000000000000000000000000000..c68b8ced407e05f04870a7a1156350a964294178 GIT binary patch literal 1091 zcmV-J1ibr+P)U_UifJvBc- zH$y%&RCZ{@QAuoOC5uEqM@T_TJ26K%Bt17PH&RblQcqYyI!01YS4JyRK`Tm031v?! zUsh6CVPIuXEM8d`gI5`UUORGS36E7XWoKq(tp#T5?0d!JMQvg8b z*k%9#0Ec>1Sad{Xb7OL8aCB*JZU6vyoKseCa&`CgQ*iP1OFR`b%*up4N|rL5rU=K^*v0K!EwJ;wCR`Tzg|Wl2Oq zR9J=WR%vt7Fch?$3NV)>%nd3wmg5khX`$h0fi^(faI_Tu|BvD6c=Cmv@Dav49>;I@ z&02Ciej5Y>{tu9_6J#xYw9$zXS*-^l?Y;vISL?a~tf)RpXIr8{udW*?g=;uGT!{v~ zy1m1nQLdmzhXyk00I>#Sbm8Kqrlu)UZXts85P~Zt#8GYqm#0y@C=PEZp1fl)pbJ|9XfQoHjbDOoD0DsT^UQO-@bGA-hI${3@V&JH0^TwYi|H$O9!GfkeO1Mga&AV6V_;;%a#sAX`u2X$rVk<1}WAp1JqjvR27AyBps)K zaY}6M4YVH^mbxRn0X&o>p(G?J0iK0^MmwpRSiFne?2a{O%e4qzSQ`b}_A8?ZoCY;AH z=M$3;c$p6<%`_vkJTHno&-CEcR68F)xPXw+&IeAHN+pR>vZ2E+pTM-9R_FgyAfBzC z51wz$X0xsBa{fNU>)=^IPD^#;B9A&`6fFs=9Z-r@X5 z;yoJl=ZA`coBu6?{`?SpI5=D^79S5j;rvJ9v)@8*eh7|^PnOH&$(OG<|G#~Agfm!? zAA<1o?8o`}*=afdkwAm~`~V$4Aus%@zN(h+dIvhbkpun~zX7xxX@-FbF+~6X002ov JPDHLkV1iR%-r4{F literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index 69c9fbb3de..1a393c172e 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2720,6 +2720,7 @@ #include "modular_citadel\code\game\objects\effects\temporary_visuals\projectiles\muzzle.dm" #include "modular_citadel\code\game\objects\effects\temporary_visuals\projectiles\tracer.dm" #include "modular_citadel\code\game\objects\items\balls.dm" +#include "modular_citadel\code\game\objects\items\boombox.dm" #include "modular_citadel\code\game\objects\items\handcuffs.dm" #include "modular_citadel\code\game\objects\items\holy_weapons.dm" #include "modular_citadel\code\game\objects\items\honk.dm"