diff --git a/_maps/RandomRuins/SpaceRuins/scp_294.dmm b/_maps/RandomRuins/SpaceRuins/scp_294.dmm new file mode 100644 index 0000000000..2808146f3e --- /dev/null +++ b/_maps/RandomRuins/SpaceRuins/scp_294.dmm @@ -0,0 +1,670 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/turf/template_noop, +/area/template_noop) +"ab" = ( +/turf/closed/wall/r_wall, +/area/ruin/space/has_grav/powered/scp_294) +"ac" = ( +/obj/structure/lattice, +/turf/template_noop, +/area/space/nearstation) +"ad" = ( +/turf/open/floor/plating/airless{ + icon_state = "platingdmg2" + }, +/area/ruin/space/has_grav/powered/scp_294) +"ae" = ( +/obj/structure/lattice, +/obj/item/soap, +/turf/template_noop, +/area/space/nearstation) +"af" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 14 + }, +/obj/structure/mirror{ + pixel_x = 24 + }, +/turf/open/floor/plasteel/freezer/airless, +/area/ruin/space/has_grav/powered/scp_294) +"ag" = ( +/obj/machinery/light/small, +/turf/open/floor/plasteel/freezer/airless, +/area/ruin/space/has_grav/powered/scp_294) +"ah" = ( +/turf/open/floor/plasteel/freezer/airless, +/area/ruin/space/has_grav/powered/scp_294) +"ai" = ( +/obj/machinery/door/airlock{ + name = "Bathroom" + }, +/turf/open/floor/plasteel/freezer/airless, +/area/ruin/space/has_grav/powered/scp_294) +"aj" = ( +/obj/machinery/porta_turret/syndicate/energy/heavy{ + desc = "An energy blaster auto-turret designed to contain and terminate in case of a breach in security."; + faction = "scp"; + mode = 1; + name = "emergency containment breach turret" + }, +/obj/effect/turf_decal/box, +/turf/open/floor/plasteel/dark{ + initial_gas_mix = "TEMP=2.7" + }, +/area/ruin/space/has_grav/powered/scp_294) +"ak" = ( +/obj/effect/turf_decal/tile/beige/corner{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/spawner/trap, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"al" = ( +/obj/structure/table, +/obj/machinery/microwave, +/obj/effect/turf_decal/tile/beige/side{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"am" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/beige/side{ + dir = 1 + }, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"an" = ( +/obj/effect/turf_decal/tile/beige/side{ + dir = 1 + }, +/obj/machinery/chem_dispenser/scp_294, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"ao" = ( +/obj/effect/turf_decal/tile/beige/side{ + dir = 1 + }, +/obj/machinery/vending/snack, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"ap" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/beige/side{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"aq" = ( +/obj/effect/turf_decal/tile/beige/corner{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/spawner/trap, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"ar" = ( +/obj/effect/turf_decal/tile/beige/corner{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"as" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/effect/turf_decal/tile/beige/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"at" = ( +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"au" = ( +/obj/effect/mob_spawn/human/corpse/nanotrasensoldier{ + id_job = "Level Three Clearance Guard"; + name = "Clearance Level Three Officer"; + oxy_damage = 136 + }, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/turf_decal/tile/beige/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"av" = ( +/obj/effect/turf_decal/tile/beige/corner{ + dir = 5 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"aw" = ( +/obj/structure/lattice, +/obj/item/shard, +/turf/template_noop, +/area/space/nearstation) +"ax" = ( +/obj/effect/turf_decal/tile/beige/side{ + dir = 8 + }, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"ay" = ( +/obj/effect/mob_spawn/human/corpse/nanotrasensoldier{ + id_job = "Level Three Clearance Guard"; + name = "Clearance Level Three Officer"; + oxy_damage = 136 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"az" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"aA" = ( +/obj/effect/turf_decal/tile/beige/corner{ + dir = 9 + }, +/mob/living/simple_animal/hostile/mimic{ + faction = list("mimic","scp") + }, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"aB" = ( +/obj/effect/turf_decal/tile/beige/side{ + dir = 1 + }, +/obj/effect/spawner/trap, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"aC" = ( +/obj/effect/turf_decal/tile/beige/corner{ + dir = 5 + }, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"aD" = ( +/obj/item/trash/plate, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"aE" = ( +/obj/effect/turf_decal/tile/beige/side{ + dir = 4 + }, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"aF" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/powered/scp_294) +"aG" = ( +/obj/structure/girder, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/powered/scp_294) +"aH" = ( +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/powered/scp_294) +"aI" = ( +/obj/structure/fluff/broken_flooring{ + icon_state = "corner"; + dir = 8 + }, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/powered/scp_294) +"aJ" = ( +/obj/structure/table, +/obj/item/trash/sosjerky, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"aK" = ( +/obj/item/chair, +/obj/effect/turf_decal/tile/beige/side{ + dir = 8 + }, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"aL" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/turf_decal/tile/beige/side{ + dir = 4 + }, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"aM" = ( +/obj/structure/table, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"aN" = ( +/obj/effect/turf_decal/tile/beige/side{ + dir = 4 + }, +/obj/structure/chair/office{ + dir = 8 + }, +/obj/item/shard, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"aO" = ( +/obj/item/stack/rods, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/powered/scp_294) +"aP" = ( +/obj/structure/fluff/broken_flooring{ + icon_state = "plating"; + name = "broken plating" + }, +/obj/structure/lattice, +/turf/template_noop, +/area/space/nearstation) +"aQ" = ( +/obj/structure/table_frame, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"aR" = ( +/turf/open/floor/plating/airless{ + icon_state = "platingdmg1" + }, +/area/ruin/space/has_grav/powered/scp_294) +"aS" = ( +/obj/item/stack/tile/plasteel, +/mob/living/simple_animal/hostile/mimic{ + faction = list("mimic","scp") + }, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"aT" = ( +/obj/structure/grille/broken, +/obj/item/stack/rods, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg1" + }, +/area/ruin/space/has_grav/powered/scp_294) +"aU" = ( +/obj/item/shard, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg1" + }, +/area/ruin/space/has_grav/powered/scp_294) +"aV" = ( +/obj/structure/lattice, +/obj/structure/fluff/broken_flooring{ + icon_state = "singular" + }, +/turf/template_noop, +/area/space/nearstation) +"aW" = ( +/obj/item/trash/cheesie, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/powered/scp_294) +"aX" = ( +/obj/effect/turf_decal/tile/beige/side{ + dir = 4 + }, +/obj/item/chair, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"aY" = ( +/obj/item/stack/sheet/metal, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"aZ" = ( +/obj/effect/mob_spawn/human/corpse/assistant, +/obj/structure/table_frame, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"ba" = ( +/obj/structure/grille/broken, +/obj/item/shard, +/obj/item/stack/rods, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg1" + }, +/area/ruin/space/has_grav/powered/scp_294) +"bb" = ( +/obj/item/stack/rods, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg1" + }, +/area/ruin/space/has_grav/powered/scp_294) +"bc" = ( +/obj/item/stack/tile/plasteel, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/powered/scp_294) +"bd" = ( +/obj/structure/lattice, +/obj/structure/fluff/broken_flooring{ + icon_state = "singular"; + dir = 4 + }, +/turf/template_noop, +/area/space/nearstation) +"be" = ( +/obj/structure/fluff/broken_flooring{ + icon_state = "pile"; + dir = 4 + }, +/turf/template_noop, +/area/template_noop) +"bf" = ( +/obj/item/trash/chips, +/turf/template_noop, +/area/template_noop) +"bg" = ( +/obj/effect/spawner/trap, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg2" + }, +/area/ruin/space/has_grav/powered/scp_294) +"bi" = ( +/obj/effect/spawner/trap, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) +"bj" = ( +/obj/effect/spawner/trap, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/powered/scp_294) +"bk" = ( +/obj/structure/table_frame, +/obj/effect/spawner/trap, +/turf/open/floor/plasteel/airless, +/area/ruin/space/has_grav/powered/scp_294) + +(1,1,1) = {" +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +aa +aa +aa +aa +"} +(2,1,1) = {" +aa +aa +aa +aa +aa +ac +ac +aa +aa +aa +aa +aa +aa +aa +"} +(3,1,1) = {" +aa +aa +aa +ab +ab +ab +ab +aG +ac +aV +aa +aa +aa +aa +"} +(4,1,1) = {" +aa +aa +aa +ab +aj +ar +ax +bj +aP +ac +aa +aa +aa +be +"} +(5,1,1) = {" +aa +aa +ac +ab +ak +as +ay +aI +aH +ac +ac +ac +aa +aa +"} +(6,1,1) = {" +aa +ac +ac +ab +al +at +az +aJ +aQ +bj +ad +aa +aa +bf +"} +(7,1,1) = {" +ab +ab +ab +ab +am +at +aA +aK +aR +aR +ac +ac +aa +aa +"} +(8,1,1) = {" +ac +ac +ad +ab +an +at +aB +at +aS +aW +aH +aP +aa +aa +"} +(9,1,1) = {" +aa +ae +ac +ab +ao +at +aC +aL +aE +aX +aE +ad +bg +aa +"} +(10,1,1) = {" +ac +bg +ag +ab +ap +bi +az +aM +bk +aY +bc +aR +bd +ac +"} +(11,1,1) = {" +bg +af +ah +ai +aq +au +aD +aM +aM +aZ +aR +ad +aa +aa +"} +(12,1,1) = {" +ab +ab +ab +ab +aj +av +aE +aN +aH +ad +aH +ac +aa +aa +"} +(13,1,1) = {" +aa +aa +aa +ab +ab +ab +aF +aO +aT +ba +ab +ab +aa +aa +"} +(14,1,1) = {" +aa +aa +aa +aa +ac +ac +ac +ad +aU +bb +ac +ac +aa +aa +"} +(15,1,1) = {" +aa +aa +aa +aa +aa +aw +ac +ac +bg +ac +aa +ac +aa +aa +"} +(16,1,1) = {" +aa +aa +aa +aa +aa +aa +ac +aa +aa +aw +aa +aa +aa +aa +"} +(17,1,1) = {" +aa +aa +aa +aa +aa +aa +aa +aa +aa +ac +aa +aa +aa +aa +"} diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm index 1bf619735c..eed23e0711 100644 --- a/code/datums/ruins/space.dm +++ b/code/datums/ruins/space.dm @@ -269,9 +269,15 @@ name = "Whiteship Dock" description = "An abandoned but functional vessel parked in deep space, ripe for the taking." +/datum/map_template/ruin/space/scp_294 + id = "scp_294" + suffix = "scp_294.dmm" + name = "SCP-294 Containment" + description = "An abandoned asteroid base that contains several EMP-proof turrets, and a valuable artifact. Should you get past the heavy laser turrets, a valuable treasure awaits." + /datum/map_template/ruin/space/cat_experiments id = "meow" suffix = "mrow_thats_right.dmm" name = "Feline-Human Combination Den" description = "With heated debates over the legality of the catperson and their status in the workforce, there's always a place for the blackmarket to slip in for some cash. Whether the results \ - are morally sound or not is another issue entirely." + are morally sound or not is another issue entirely." \ No newline at end of file diff --git a/code/game/area/areas/ruins/space.dm b/code/game/area/areas/ruins/space.dm index 32c8020e6d..0f57c0ce3b 100644 --- a/code/game/area/areas/ruins/space.dm +++ b/code/game/area/areas/ruins/space.dm @@ -462,4 +462,8 @@ /area/ruin/space/has_grav/listeningstation name = "Listening Post" + icon_state = "yellow" + +/area/ruin/space/has_grav/powered/scp_294 + name = "Abandoned SCP-294 Containment" icon_state = "yellow" \ No newline at end of file diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 99b951c32c..2a483cdf6e 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -592,6 +592,7 @@ lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg' desc = "An energy blaster auto-turret." + /obj/machinery/porta_turret/syndicate/setup() return diff --git a/code/game/objects/effects/spawners/traps.dm b/code/game/objects/effects/spawners/traps.dm new file mode 100644 index 0000000000..82cfe89662 --- /dev/null +++ b/code/game/objects/effects/spawners/traps.dm @@ -0,0 +1,10 @@ +/obj/effect/spawner/trap + name = "random trap" + icon = 'icons/obj/hand_of_god_structures.dmi' + icon_state = "trap_rand" + +/obj/effect/spawner/trap/Initialize(mapload) + ..() + var/new_type = pick(subtypesof(/obj/structure/trap) - typesof(/obj/structure/trap/ctf)) + new new_type(get_turf(src)) + return INITIALIZE_HINT_QDEL \ No newline at end of file diff --git a/code/game/turfs/simulated/floor/plasteel_floor.dm b/code/game/turfs/simulated/floor/plasteel_floor.dm index 06a257686b..0de40d179e 100644 --- a/code/game/turfs/simulated/floor/plasteel_floor.dm +++ b/code/game/turfs/simulated/floor/plasteel_floor.dm @@ -318,6 +318,8 @@ /turf/open/floor/plasteel/freezer icon_state = "freezerfloor" +/turf/open/floor/plasteel/freezer/airless + initial_gas_mix = "TEMP=2.7" /turf/open/floor/plasteel/bar icon_state = "bar" diff --git a/code/modules/reagents/chemistry/machinery/scp_294.dm b/code/modules/reagents/chemistry/machinery/scp_294.dm new file mode 100644 index 0000000000..75f62dd4d1 --- /dev/null +++ b/code/modules/reagents/chemistry/machinery/scp_294.dm @@ -0,0 +1,84 @@ +////////////////////////////////////////// +// SCP 294 // +// // +// This is a child of a chemistry // +// dispenser. Info of how it works at // +// http://www.scp-wiki.net/scp-294 // +// // +////////////////////////////////////////// + +/obj/machinery/chem_dispenser/scp_294 + name = "\improper strange coffee machine" + desc = "It appears to be a standard coffee vending machine, the only noticeable difference being an entry touchpad with buttons corresponding to a Galactic Common QWERTY keyboard." + icon = 'icons/obj/scp.dmi' + icon_state = "294_bottom" + amount = 10 + resistance_flags = INDESTRUCTIBLE | FIRE_PROOF | ACID_PROOF | LAVA_PROOF + var/static/list/shortcuts = list( + "meth" = "methamphetamine", + "tricord" = "tricordrazine" + ) + var/mutable_appearance/top_overlay + +/obj/machinery/chem_dispenser/scp_294/Initialize() + . = ..() + GLOB.poi_list += src + top_overlay = mutable_appearance(icon, "294_top", layer = ABOVE_MOB_LAYER) + add_overlay(top_overlay) + +/obj/machinery/chem_dispenser/scp_294/Destroy() + . = ..() + GLOB.poi_list -= src + QDEL_NULL(top_overlay) + +/obj/machinery/chem_dispenser/scp_294/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \ + datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "scp_294", name, 390, 315, master_ui, state) + ui.open() + +/obj/machinery/chem_dispenser/scp_294/ui_act(action, params) + if(..()) + return + switch(action) + if("ejectBeaker") + if(beaker) + beaker.forceMove(drop_location()) + if(Adjacent(usr) && !issilicon(usr)) + usr.put_in_hands(beaker) + beaker = null + cut_overlays() + . = TRUE + if("input") + var/input_reagent = replacetext(lowertext(input("Enter the name of any liquid", "Input") as text), " ", "") //95% of the time, the reagent id is a lowercase/no spaces version of the name + if(shortcuts[input_reagent]) + input_reagent = shortcuts[input_reagent] + else + input_reagent = find_reagent(input_reagent) + if(!input_reagent || !GLOB.chemical_reagents_list[input_reagent]) + say("OUT OF RANGE") + return + else + if(!beaker) + return + else if(!beaker.reagents && !QDELETED(beaker)) + beaker.create_reagents(beaker.volume) + beaker.reagents.add_reagent(input_reagent, 10) + if("makecup") + if(beaker) + return + beaker = new /obj/item/reagent_containers/food/drinks/sillycup(src) + visible_message("[src] dispenses a small, paper cup.") + +/obj/machinery/chem_dispenser/scp_294/proc/find_reagent(input) + . = FALSE + if(GLOB.chemical_reagents_list[input]) //prefer IDs! + var/datum/reagent/R = GLOB.chemical_reagents_list[input] + if(R.can_synth) + return input + else + for(var/X in GLOB.chemical_reagents_list) + var/datum/reagent/R = GLOB.chemical_reagents_list[X] + if(R.can_synth && input == replacetext(lowertext(R.name), " ", "")) + return X \ No newline at end of file diff --git a/icons/obj/hand_of_god_structures.dmi b/icons/obj/hand_of_god_structures.dmi index 8ec5c7e005..4f18b2e68d 100644 Binary files a/icons/obj/hand_of_god_structures.dmi and b/icons/obj/hand_of_god_structures.dmi differ diff --git a/icons/obj/scp.dmi b/icons/obj/scp.dmi new file mode 100644 index 0000000000..4dfc4f1627 Binary files /dev/null and b/icons/obj/scp.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 6344f71e12..7926d78773 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -715,6 +715,7 @@ #include "code\game\objects\effects\spawners\gibspawner.dm" #include "code\game\objects\effects\spawners\lootdrop.dm" #include "code\game\objects\effects\spawners\structure.dm" +#include "code\game\objects\effects\spawners\traps.dm" #include "code\game\objects\effects\spawners\vaultspawner.dm" #include "code\game\objects\effects\spawners\xeno_egg_delivery.dm" #include "code\game\objects\effects\temporary_visuals\clockcult.dm" @@ -2244,6 +2245,7 @@ #include "code\modules\reagents\chemistry\machinery\chem_master.dm" #include "code\modules\reagents\chemistry\machinery\pandemic.dm" #include "code\modules\reagents\chemistry\machinery\reagentgrinder.dm" +#include "code\modules\reagents\chemistry\machinery\scp_294.dm" #include "code\modules\reagents\chemistry\machinery\smoke_machine.dm" #include "code\modules\reagents\chemistry\reagents\alcohol_reagents.dm" #include "code\modules\reagents\chemistry\reagents\blob_reagents.dm" diff --git a/tgui/package-lock.json b/tgui/package-lock.json index 295a8cf315..5dba1c0774 100644 --- a/tgui/package-lock.json +++ b/tgui/package-lock.json @@ -260,9 +260,9 @@ "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=" }, "async-done": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.2.3.tgz", - "integrity": "sha1-bHq8fWHKJ/5vHyujIG6prmCkOYM=", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.2.4.tgz", + "integrity": "sha512-mxc+yISkb0vjsuvG3dJCIZXzRWjKndQ9Zo9zNDJ1K2wh9eP0E0oGmOWm+4cFOvW4dA0tGFImTW5tQJHCtn1kIQ==", "requires": { "end-of-stream": "1.4.0", "once": "1.4.0", @@ -280,7 +280,7 @@ "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", "requires": { - "async-done": "1.2.3" + "async-done": "1.2.4" } }, "atob": { @@ -1251,7 +1251,7 @@ "array-each": "1.0.1", "array-initial": "1.1.0", "array-last": "1.3.0", - "async-done": "1.2.3", + "async-done": "1.2.4", "async-settle": "1.0.0", "now-and-later": "2.0.0" } @@ -1267,7 +1267,7 @@ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { "cache-base": "1.0.1", - "class-utils": "0.3.5", + "class-utils": "0.3.6", "component-emitter": "1.2.1", "define-property": "1.0.0", "isobject": "3.0.1", @@ -1929,6 +1929,7 @@ "requires": { "anymatch": "1.3.2", "async-each": "1.0.1", + "fsevents": "1.1.3", "glob-parent": "2.0.0", "inherits": "2.0.3", "is-binary-path": "1.0.1", @@ -1955,14 +1956,13 @@ } }, "class-utils": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.5.tgz", - "integrity": "sha1-F+eTEDdQ+WJ7IXbqNM/RtWWQPIA=", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { "arr-union": "3.1.0", "define-property": "0.2.5", "isobject": "3.0.1", - "lazy-cache": "2.0.2", "static-extend": "0.1.2" }, "dependencies": { @@ -2352,7 +2352,7 @@ "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "requires": { - "es5-ext": "0.10.37" + "es5-ext": "0.10.38" } }, "date-now": { @@ -2569,9 +2569,9 @@ } }, "es5-ext": { - "version": "0.10.37", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.37.tgz", - "integrity": "sha1-DudB0Ui4AGm6J9AgOTdWryV978M=", + "version": "0.10.38", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.38.tgz", + "integrity": "sha512-jCMyePo7AXbUESwbl8Qi01VSH2piY9s/a3rSU/5w/MlTIx8HPL1xn2InGN8ejt/xulcJgnTO7vqNtOAxzYd2Kg==", "requires": { "es6-iterator": "2.0.3", "es6-symbol": "3.1.1" @@ -2583,7 +2583,7 @@ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "requires": { "d": "1.0.0", - "es5-ext": "0.10.37", + "es5-ext": "0.10.38", "es6-symbol": "3.1.1" } }, @@ -2598,7 +2598,7 @@ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "requires": { "d": "1.0.0", - "es5-ext": "0.10.37" + "es5-ext": "0.10.38" } }, "es6-weak-map": { @@ -2607,7 +2607,7 @@ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "requires": { "d": "1.0.0", - "es5-ext": "0.10.37", + "es5-ext": "0.10.38", "es6-iterator": "2.0.3", "es6-symbol": "3.1.1" } @@ -2828,7 +2828,7 @@ "requires": { "detect-file": "1.0.0", "is-glob": "3.1.0", - "micromatch": "3.1.4", + "micromatch": "3.1.5", "resolve-dir": "1.0.1" }, "dependencies": { @@ -2885,9 +2885,9 @@ } }, "extglob": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.3.tgz", - "integrity": "sha512-AyptZexgu7qppEPq59DtN/XJGZDrLcVxSHai+4hdgMMS9EpF4GBvygcWWApno8lL9qSjVpYt7Raao28qzJX1ww==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "requires": { "array-unique": "0.3.2", "define-property": "1.0.0", @@ -3005,19 +3005,19 @@ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" }, "micromatch": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.4.tgz", - "integrity": "sha512-kFRtviKYoAJT+t7HggMl0tBFGNAKLw/S7N+CO9qfEQyisob1Oy4pao+geRbkyeEd+V9aOkvZ4mhuyPvI/q9Sfg==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.5.tgz", + "integrity": "sha512-ykttrLPQrz1PUJcXjwsTUjGoPJ64StIGNE2lGVD1c9CuguJ+L7/navsE8IcDNndOoCMvYV0qc/exfVbMHkUhvA==", "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", "braces": "2.3.0", "define-property": "1.0.0", "extend-shallow": "2.0.1", - "extglob": "2.0.3", + "extglob": "2.0.4", "fragment-cache": "0.2.1", "kind-of": "6.0.2", - "nanomatch": "1.2.6", + "nanomatch": "1.2.7", "object.pick": "1.3.0", "regex-not": "1.0.0", "snapdragon": "0.8.1", @@ -3114,6 +3114,795 @@ "map-cache": "0.2.2" } }, + "fsevents": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", + "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", + "optional": true, + "requires": { + "nan": "2.8.0", + "node-pre-gyp": "0.6.39" + }, + "dependencies": { + "abbrev": { + "version": "1.1.0", + "bundled": true, + "optional": true + }, + "ajv": { + "version": "4.11.8", + "bundled": true, + "optional": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "optional": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.2.9" + } + }, + "asn1": { + "version": "0.2.3", + "bundled": true, + "optional": true + }, + "assert-plus": { + "version": "0.2.0", + "bundled": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "bundled": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "bundled": true, + "optional": true + }, + "aws4": { + "version": "1.6.0", + "bundled": true, + "optional": true + }, + "balanced-match": { + "version": "0.4.2", + "bundled": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "bundled": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "block-stream": { + "version": "0.0.9", + "bundled": true, + "requires": { + "inherits": "2.0.3" + } + }, + "boom": { + "version": "2.10.1", + "bundled": true, + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.7", + "bundled": true, + "requires": { + "balanced-match": "0.4.2", + "concat-map": "0.0.1" + } + }, + "buffer-shims": { + "version": "1.0.0", + "bundled": true + }, + "caseless": { + "version": "0.12.0", + "bundled": true, + "optional": true + }, + "co": { + "version": "4.6.0", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "combined-stream": { + "version": "1.0.5", + "bundled": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true + }, + "cryptiles": { + "version": "2.0.5", + "bundled": true, + "requires": { + "boom": "2.10.1" + } + }, + "dashdash": { + "version": "1.14.1", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "debug": { + "version": "2.6.8", + "bundled": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "optional": true + }, + "delayed-stream": { + "version": "1.0.0", + "bundled": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "ecc-jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "extend": { + "version": "3.0.1", + "bundled": true, + "optional": true + }, + "extsprintf": { + "version": "1.0.2", + "bundled": true + }, + "forever-agent": { + "version": "0.6.1", + "bundled": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "bundled": true, + "optional": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.15" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true + }, + "fstream": { + "version": "1.0.11", + "bundled": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } + }, + "fstream-ignore": { + "version": "1.0.5", + "bundled": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "inherits": "2.0.3", + "minimatch": "3.0.4" + } + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "1.1.1", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } + }, + "getpass": { + "version": "0.1.7", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "bundled": true + }, + "har-schema": { + "version": "1.0.5", + "bundled": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "bundled": true, + "optional": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "hawk": { + "version": "3.1.3", + "bundled": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "hoek": { + "version": "2.16.3", + "bundled": true + }, + "http-signature": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.0", + "sshpk": "1.13.0" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.4", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "isarray": { + "version": "1.0.0", + "bundled": true + }, + "isstream": { + "version": "0.1.2", + "bundled": true, + "optional": true + }, + "jodid25519": { + "version": "1.0.2", + "bundled": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "jsbn": { + "version": "0.1.1", + "bundled": true, + "optional": true + }, + "json-schema": { + "version": "0.2.3", + "bundled": true, + "optional": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "bundled": true, + "optional": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "bundled": true, + "optional": true + }, + "jsonify": { + "version": "0.0.0", + "bundled": true, + "optional": true + }, + "jsprim": { + "version": "1.4.0", + "bundled": true, + "optional": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.0.2", + "json-schema": "0.2.3", + "verror": "1.3.6" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "mime-db": { + "version": "1.27.0", + "bundled": true + }, + "mime-types": { + "version": "2.1.15", + "bundled": true, + "requires": { + "mime-db": "1.27.0" + } + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "node-pre-gyp": { + "version": "0.6.39", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "1.0.2", + "hawk": "3.1.3", + "mkdirp": "0.5.1", + "nopt": "4.0.1", + "npmlog": "4.1.0", + "rc": "1.2.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "tar-pack": "3.4.0" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } + }, + "npmlog": { + "version": "4.1.0", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "oauth-sign": { + "version": "0.8.2", + "bundled": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.4", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true + }, + "performance-now": { + "version": "0.2.0", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "1.0.7", + "bundled": true + }, + "punycode": { + "version": "1.4.1", + "bundled": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.1", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.2.9", + "bundled": true, + "requires": { + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.1", + "util-deprecate": "1.0.2" + } + }, + "request": { + "version": "2.81.0", + "bundled": true, + "optional": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.15", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.0.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.0.1" + } + }, + "rimraf": { + "version": "2.6.1", + "bundled": true, + "requires": { + "glob": "7.1.2" + } + }, + "safe-buffer": { + "version": "5.0.1", + "bundled": true + }, + "semver": { + "version": "5.3.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "sntp": { + "version": "1.0.9", + "bundled": true, + "requires": { + "hoek": "2.16.3" + } + }, + "sshpk": { + "version": "1.13.0", + "bundled": true, + "optional": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jodid25519": "1.0.2", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "bundled": true, + "optional": true + } + } + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "stringstream": { + "version": "0.0.5", + "bundled": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "2.2.1", + "bundled": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "tar-pack": { + "version": "3.4.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "2.6.8", + "fstream": "1.0.11", + "fstream-ignore": "1.0.5", + "once": "1.4.0", + "readable-stream": "2.2.9", + "rimraf": "2.6.1", + "tar": "2.2.1", + "uid-number": "0.0.6" + } + }, + "tough-cookie": { + "version": "2.3.2", + "bundled": true, + "optional": true, + "requires": { + "punycode": "1.4.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "bundled": true, + "optional": true + }, + "uid-number": { + "version": "0.0.6", + "bundled": true, + "optional": true + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true + }, + "uuid": { + "version": "3.0.1", + "bundled": true, + "optional": true + }, + "verror": { + "version": "1.3.6", + "bundled": true, + "optional": true, + "requires": { + "extsprintf": "1.0.2" + } + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "optional": true, + "requires": { + "string-width": "1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + } + } + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -3227,7 +4016,7 @@ "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-3.2.0.tgz", "integrity": "sha1-/8Gi09B3g7Zy9eIXmaTQs/7ZLa8=", "requires": { - "async-done": "1.2.3", + "async-done": "1.2.4", "chokidar": "1.7.0", "lodash.debounce": "4.0.8", "object.defaults": "1.1.0" @@ -4717,10 +5506,16 @@ "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.0.tgz", "integrity": "sha1-WzLqB+tDyd7WEwQ0z5JvRrKn/U0=" }, + "nan": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz", + "integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo=", + "optional": true + }, "nanomatch": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.6.tgz", - "integrity": "sha512-WJ6XTCbvWXUFPbi/bDwKcYkCeOGUHzaJj72KbuPqGn78Ba/F5Vu26Zlo6SuMQbCIst1RGKL1zfWBCOGAlbRLAg==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.7.tgz", + "integrity": "sha512-/5ldsnyurvEw7wNpxLFgjVvBLMta43niEYOy0CJ4ntcYSbx6bugRUTQeFb4BR/WanEL1o3aQgHuVLHQaB6tOqg==", "requires": { "arr-diff": "4.0.0", "array-unique": "0.3.2", diff --git a/tgui/src/interfaces/scp_294.ract b/tgui/src/interfaces/scp_294.ract new file mode 100644 index 0000000000..e2b36785a2 --- /dev/null +++ b/tgui/src/interfaces/scp_294.ract @@ -0,0 +1,21 @@ + + + Eject + Input + Create Cup + + + + + {{#if data.isBeakerLoaded}} + {{Math.round(adata.beakerCurrentVolume)}}/{{data.beakerMaxVolume}} Units + {{#each adata.beakerContents}} + {{Math.fixed(volume, 2)}} units of {{name}}
+ {{else}} + Recipient Empty + {{/each}} + {{else}} + No Recipient + {{/if}} +
+
\ No newline at end of file