diff --git a/_maps/RandomRuins/SpaceRuins/skelter.dmm b/_maps/RandomRuins/SpaceRuins/skelter.dmm index f6e6584f10..f6e56a6348 100644 --- a/_maps/RandomRuins/SpaceRuins/skelter.dmm +++ b/_maps/RandomRuins/SpaceRuins/skelter.dmm @@ -1529,6 +1529,7 @@ icon_state = "warningline"; dir = 1 }, +/obj/item/paper/fluff/ruins/skelter/cloner, /turf/open/floor/plasteel, /area/ruin/space/has_grav/skelter/med) "dJ" = ( @@ -2485,10 +2486,13 @@ /turf/open/floor/plating, /area/ruin/space/has_grav/skelter/engine/powerstorage) "fR" = ( -/obj/structure/cable{ - icon_state = "2-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/obj/item/ammo_casing/c45, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/item/kitchen/knife/combat, /turf/open/floor/plating, /area/ruin/space/has_grav/skelter/engine/powerstorage) "fS" = ( @@ -2826,10 +2830,12 @@ /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/skelter/sec) "gI" = ( -/obj/structure/rack, -/obj/item/gun/ballistic/automatic/pistol/m1911, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/skelter/sec) +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/item/ammo_casing/c10mm, +/turf/open/floor/plating, +/area/ruin/space/has_grav/skelter/engine/powerstorage) "gJ" = ( /obj/machinery/power/terminal{ dir = 1 @@ -3285,17 +3291,10 @@ /turf/open/floor/plasteel/showroomfloor, /area/ruin/space/has_grav/skelter/comms) "hJ" = ( -/obj/effect/turf_decal/trimline/blue/line, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/item/ammo_casing/c45, -/turf/open/floor/plasteel/showroomfloor, -/area/ruin/space/has_grav/skelter/comms) +/obj/structure/rack, +/obj/item/ammo_box/magazine/m10mm, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) "hK" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ icon_state = "trimline_fill"; @@ -3843,19 +3842,10 @@ /turf/open/floor/plasteel/showroomfloor, /area/ruin/space/has_grav/skelter/comms) "iP" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag, -/turf/open/floor/plasteel/showroomfloor, -/area/ruin/space/has_grav/skelter/comms) +/obj/structure/rack, +/obj/item/gun/ballistic/automatic/pistol, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) "iQ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/mineral/titanium, @@ -3934,17 +3924,15 @@ /turf/open/floor/plasteel/showroomfloor, /area/ruin/space/has_grav/skelter/comms) "iX" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ +/obj/effect/turf_decal/trimline/blue/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/item/ammo_casing/c45, +/obj/item/ammo_casing/c10mm, /turf/open/floor/plasteel/showroomfloor, /area/ruin/space/has_grav/skelter/comms) "iY" = ( @@ -4149,16 +4137,39 @@ /turf/open/floor/carpet, /area/ruin/space/has_grav/skelter/admin) "jv" = ( -/obj/structure/rack, -/obj/item/ammo_box/magazine/m45, -/turf/open/floor/plasteel/dark, -/area/ruin/space/has_grav/skelter/sec) +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/item/gun/ballistic/automatic/pistol/no_mag, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) "jw" = ( /turf/open/space/basic, /area/space/nearstation) "jx" = ( /turf/open/space/basic, /area/template_noop) +"jy" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/item/ammo_casing/c10mm, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/comms) (1,1,1) = {" ah @@ -4479,7 +4490,7 @@ eW cF fN gj -jv +hJ gl hw hU @@ -4539,7 +4550,7 @@ eX fx fN gj -gI +iP gl hx hx @@ -4657,7 +4668,7 @@ dI bI fc fA -fR +gI go gL iC @@ -4715,7 +4726,7 @@ bI bI bI eA -fd +fR fA fA fA @@ -4991,10 +5002,10 @@ ju gw dO hk -hJ +iX ij iF -iP +jv iW jh jl @@ -5025,7 +5036,7 @@ hK ii jm jn -iX +jy ii jl ah diff --git a/_maps/map_files/LambdaStation/dorms.dmm b/_maps/map_files/LambdaStation/dorms.dmm index e5003965ed..a38d2b9e1d 100644 --- a/_maps/map_files/LambdaStation/dorms.dmm +++ b/_maps/map_files/LambdaStation/dorms.dmm @@ -25,6 +25,9 @@ /obj/structure/closet, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) +"ae" = ( +/turf/open/floor/wood, +/area/hydroponics/garden/monastery) "af" = ( /obj/effect/landmark/carpspawn, /turf/open/space/basic, @@ -216,9 +219,6 @@ }, /turf/open/floor/plasteel, /area/gateway) -"ay" = ( -/turf/closed/wall/r_wall, -/area/construction/mining/aux_base) "az" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, @@ -386,16 +386,6 @@ "aT" = ( /turf/closed/wall/r_wall, /area/chapel/main) -"aU" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) "aV" = ( /obj/structure/cable{ icon_state = "4-8" @@ -577,6 +567,13 @@ }, /turf/open/floor/plating, /area/hydroponics/garden/abandoned) +"br" = ( +/obj/structure/table, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) "bu" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -600,6 +597,10 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/central) +"bv" = ( +/obj/structure/railing, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) "bw" = ( /obj/structure/cable{ icon_state = "2-8" @@ -775,6 +776,15 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) +"bN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/maintenance/central) "bO" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 @@ -804,6 +814,15 @@ /obj/machinery/light, /turf/open/floor/carpet, /area/chapel/main) +"bT" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) "bU" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -926,6 +945,21 @@ /obj/item/clothing/mask/horsehead, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) +"cp" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/holopad, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/recreation) "cq" = ( /turf/open/space, /area/space) @@ -1006,6 +1040,7 @@ dir = 4 }, /obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass, /turf/open/floor/plasteel, /area/hallway/secondary/service) "cC" = ( @@ -1090,14 +1125,14 @@ icon_state = "L6"; layer = 2.04 }, -/mob/living/simple_animal/bot/medbot{ - auto_patrol = 1; - name = "Dr. Heals" - }, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=dorms9"; location = "dorms8" }, +/mob/living/simple_animal/bot/medbot{ + auto_patrol = 1; + name = "Dr. Heals" + }, /turf/open/floor/plasteel, /area/hallway/primary/central) "cN" = ( @@ -1116,6 +1151,14 @@ /obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) +"cO" = ( +/turf/closed/mineral{ + baseturfs = /turf/open/floor/plating/asteroid; + initial_gas_mix = "o2=22;n2=82;TEMP=293.15"; + name = "asteroid"; + turf_type = /turf/open/floor/plating/asteroid + }, +/area/space) "cP" = ( /obj/item/kirbyplants/random, /turf/open/floor/plasteel, @@ -1197,6 +1240,14 @@ }, /turf/open/floor/wood, /area/crew_quarters/dorms) +"db" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/crew_quarters/fitness/pool) "dc" = ( /obj/effect/landmark/blobstart, /turf/open/floor/plating, @@ -1226,10 +1277,6 @@ }, /turf/open/floor/plating/airless, /area/space/nearstation) -"di" = ( -/obj/docking_port/stationary/public_mining_dock, -/turf/open/floor/plating, -/area/construction/mining/aux_base) "dk" = ( /obj/machinery/door/airlock/public/glass{ name = "Public Minning Access" @@ -1303,6 +1350,12 @@ }, /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet) +"ds" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) "dt" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -1362,6 +1415,10 @@ }, /turf/open/floor/wood, /area/crew_quarters/dorms) +"dB" = ( +/obj/structure/railing, +/turf/open/floor/plating, +/area/maintenance/central) "dC" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -1426,13 +1483,6 @@ }, /turf/open/floor/wood, /area/maintenance/bar) -"dK" = ( -/obj/machinery/door/airlock/external{ - name = "Construction Zone" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/construction/mining/aux_base) "dM" = ( /obj/machinery/vending/autodrobe, /turf/open/floor/wood, @@ -1522,6 +1572,10 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, /turf/open/floor/plasteel, /area/hallway/secondary/service) +"ea" = ( +/obj/machinery/light/floor, +/turf/open/floor/wood, +/area/hydroponics/garden/monastery) "eb" = ( /obj/structure/cable{ icon_state = "1-2" @@ -1954,12 +2008,6 @@ /obj/machinery/airalarm/directional/west, /turf/open/floor/carpet, /area/chapel/office) -"fn" = ( -/obj/machinery/computer/camera_advanced/base_construction{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) "fo" = ( /obj/effect/turf_decal/vg_decals/department/sec, /obj/effect/turf_decal/tile/neutral, @@ -2178,10 +2226,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/crew_quarters/locker) -"fR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer1, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) "fS" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, @@ -2378,6 +2422,14 @@ }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) +"go" = ( +/obj/machinery/camera/autoname, +/obj/structure/railing{ + icon_state = "railing"; + dir = 8 + }, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) "gp" = ( /obj/effect/turf_decal/vg_decals/department/sci, /obj/effect/turf_decal/tile/neutral, @@ -2427,6 +2479,9 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer1{ dir = 4 }, +/obj/machinery/light{ + dir = 8 + }, /turf/open/floor/plasteel, /area/hydroponics/garden/monastery) "gw" = ( @@ -2486,6 +2541,11 @@ "gI" = ( /turf/open/floor/plating, /area/maintenance/bar) +"gJ" = ( +/obj/structure/closet, +/obj/structure/railing/corner, +/turf/open/floor/plating, +/area/maintenance/central) "gK" = ( /obj/structure/table, /obj/machinery/camera{ @@ -2509,6 +2569,14 @@ }, /turf/open/floor/wood, /area/maintenance/bar) +"gO" = ( +/obj/machinery/space_heater, +/obj/structure/railing/corner{ + icon_state = "railing_corner"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/central) "gP" = ( /obj/machinery/light/small{ dir = 8; @@ -2560,14 +2628,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/crew_quarters/bar) -"gV" = ( -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/pipe_dispenser, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) "gX" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ @@ -2754,6 +2814,16 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) +"hv" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Aux Base Maintenance"; + req_access_txt = "48" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/central) "hw" = ( /obj/structure/chair/stool, /obj/structure/cable{ @@ -2937,13 +3007,6 @@ icon_state = "wood-broken6" }, /area/maintenance/bar) -"hW" = ( -/obj/machinery/computer/shuttle/mining{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) "hX" = ( /obj/structure/closet/firecloset, /obj/effect/turf_decal/bot, @@ -2976,13 +3039,6 @@ /obj/effect/spawner/lootdrop/glowstick, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) -"ic" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) "id" = ( /obj/structure/chair/sofa/corp/corner{ dir = 4 @@ -2996,35 +3052,6 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/cafeteria) -"if" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "aux_base_shutters"; - name = "Public Shutters Control"; - pixel_y = -24; - req_one_access_txt = "32;47;48" - }, -/obj/machinery/camera{ - c_tag = "Auxillary Base Construction"; - dir = 10 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) -"ig" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) "ih" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/airlock/external{ @@ -3091,30 +3118,10 @@ }, /turf/open/floor/plasteel/grimy, /area/chapel/office) -"iq" = ( -/obj/machinery/computer/security/telescreen{ - desc = "Used for the Auxillary Mining Base."; - dir = 1; - name = "Auxillary Base Monitor"; - network = list("auxbase"); - pixel_y = -28 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) "ir" = ( /obj/item/coin/silver, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) -"is" = ( -/obj/machinery/light, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) "it" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/structure/cable{ @@ -3218,17 +3225,6 @@ }, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) -"iH" = ( -/obj/machinery/power/apc{ - areastring = "/area/construction/mining/aux_base"; - name = "Auxillary Base Construction APC"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) "iI" = ( /obj/structure/table, /obj/item/stack/sheet/plasteel{ @@ -3733,6 +3729,13 @@ }, /turf/open/floor/carpet, /area/chapel/office) +"jO" = ( +/obj/machinery/light/small{ + dir = 8; + pixel_x = 5 + }, +/turf/open/floor/plating, +/area/maintenance/central) "jP" = ( /obj/item/storage/bag/plants/portaseeder, /obj/item/storage/bag/plants/portaseeder, @@ -3860,14 +3863,6 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) -"kc" = ( -/obj/machinery/door/poddoor/shutters{ - id = "aux_base_shutters"; - name = "Auxillary Base Shutters" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) "kd" = ( /obj/structure/cable{ icon_state = "0-2" @@ -3982,21 +3977,6 @@ /obj/item/organ/heart, /turf/open/floor/carpet, /area/chapel/office) -"kp" = ( -/obj/machinery/door/airlock/engineering{ - name = "Auxillary Base Construction"; - req_one_access_txt = "32;47;48" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) "kq" = ( /obj/effect/turf_decal/bot_white/left, /obj/effect/turf_decal/tile/neutral{ @@ -4099,24 +4079,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/central) -"kC" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "aux_base_shutters"; - name = "Public Shutters Control"; - pixel_y = 24; - req_one_access_txt = "32;47;48" - }, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 6 - }, -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) "kD" = ( /obj/effect/turf_decal/tile/green{ dir = 8 @@ -4141,24 +4103,6 @@ /obj/machinery/vending/snack/random, /turf/open/floor/plasteel/dark, /area/crew_quarters/fitness/recreation) -"kK" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) "kL" = ( /obj/structure/table, /obj/item/extinguisher/mini, @@ -4444,27 +4388,6 @@ }, /turf/open/floor/plasteel, /area/hydroponics/garden/monastery) -"lu" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/central) "lv" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, @@ -4558,6 +4481,14 @@ icon_state = "wood-broken3" }, /area/maintenance/bar) +"lJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/central) "lK" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 @@ -4843,6 +4774,12 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/central) +"ms" = ( +/turf/open/floor/plating, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/maintenance/central) "mt" = ( /obj/structure/sign/poster/contraband/random{ pixel_x = -32 @@ -4858,6 +4795,13 @@ }, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) +"mv" = ( +/obj/machinery/computer/shuttle/mining, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) "mw" = ( /obj/structure/lattice/catwalk, /obj/item/stack/cable_coil, @@ -4925,6 +4869,10 @@ /obj/item/toy/cards/deck, /turf/open/floor/wood, /area/maintenance/bar) +"mI" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/central) "mK" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -5349,10 +5297,6 @@ }, /turf/open/floor/carpet, /area/chapel/office) -"nH" = ( -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel, -/area/hydroponics/garden/monastery) "nI" = ( /obj/machinery/door/airlock/maintenance{ req_one_access_txt = "12;5;39;6" @@ -5648,6 +5592,13 @@ }, /turf/open/floor/plating, /area/maintenance/solars/starboard) +"oy" = ( +/obj/structure/railing{ + icon_state = "railing"; + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/central) "oA" = ( /obj/structure/bodycontainer/morgue{ dir = 1 @@ -6183,6 +6134,13 @@ /obj/effect/turf_decal/tile/green, /turf/open/floor/plasteel, /area/hallway/primary/central) +"pS" = ( +/obj/effect/spawner/lootdrop/glowstick, +/turf/open/floor/plating, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/maintenance/central) "pT" = ( /obj/structure/cable{ icon_state = "1-2" @@ -6579,6 +6537,9 @@ }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) +"qO" = ( +/turf/open/transparent/openspace, +/area/maintenance/central) "qP" = ( /obj/effect/spawner/lootdrop/glowstick, /turf/open/floor/plating, @@ -6786,6 +6747,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/plasteel/white, /area/medical/medbay/zone2) +"rC" = ( +/obj/machinery/biogenerator, +/turf/open/floor/wood, +/area/hydroponics/garden/monastery) "rD" = ( /obj/structure/lattice, /turf/open/space/basic, @@ -6815,6 +6780,9 @@ dir = 4; layer = 3.2 }, +/obj/structure/curtain{ + icon_state = "closed" + }, /turf/open/floor/mineral/titanium/blue, /area/crew_quarters/dorms) "rH" = ( @@ -7088,6 +7056,13 @@ }, /turf/open/floor/plasteel, /area/hydroponics) +"sn" = ( +/obj/structure/railing/corner{ + icon_state = "railing_corner"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/central) "so" = ( /obj/structure/cable{ icon_state = "1-2" @@ -7103,6 +7078,16 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/cafeteria) +"sq" = ( +/turf/closed/wall, +/area/asteroid/nearstation) +"sr" = ( +/obj/structure/railing/corner{ + icon_state = "railing_corner"; + dir = 4 + }, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) "ss" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 1 @@ -7556,6 +7541,14 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/bar) +"tw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/central) "tx" = ( /obj/effect/turf_decal/plaque{ icon_state = "L13"; @@ -7807,13 +7800,6 @@ /obj/structure/pool/Lboard, /turf/open/pool, /area/crew_quarters/fitness/pool) -"ui" = ( -/obj/machinery/light/floor, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/hydroponics/garden/monastery) "uj" = ( /turf/open/floor/plasteel, /area/crew_quarters/locker) @@ -7974,6 +7960,10 @@ icon_state = "panelscorched" }, /area/maintenance/department/crew_quarters/dorms) +"uH" = ( +/obj/structure/railing/corner, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) "uI" = ( /obj/effect/decal/cleanable/blood/old, /turf/open/floor/plating, @@ -7985,6 +7975,9 @@ /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, +/obj/machinery/light{ + dir = 8 + }, /turf/open/floor/plasteel, /area/hydroponics/garden/monastery) "uK" = ( @@ -8680,6 +8673,9 @@ }, /turf/open/floor/plasteel/white, /area/medical/medbay/zone2) +"ww" = ( +/turf/closed/wall, +/area/construction/mining/aux_base) "wx" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/sink{ @@ -9100,6 +9096,10 @@ }, /turf/open/floor/plasteel/dark, /area/chapel/main) +"xN" = ( +/obj/machinery/seed_extractor, +/turf/open/floor/wood, +/area/hydroponics/garden/monastery) "xO" = ( /obj/machinery/door/airlock/external{ name = "Solar Maintenance"; @@ -9862,9 +9862,6 @@ }, /turf/open/floor/plating, /area/maintenance/central) -"zG" = ( -/turf/closed/wall/r_wall, -/area/asteroid/nearstation) "zH" = ( /obj/machinery/vending/wallmed{ pixel_x = -28 @@ -10126,6 +10123,14 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) +"An" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/structure/railing/corner, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) "Ao" = ( /turf/closed/wall, /area/tcommsat/chamber) @@ -10172,6 +10177,13 @@ /obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/hallway/secondary/service) +"Ax" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/wood, +/area/hydroponics/garden/monastery) "Ay" = ( /obj/machinery/vending/wardrobe/bar_wardrobe, /turf/open/floor/wood, @@ -10406,10 +10418,6 @@ "Be" = ( /turf/closed/wall, /area/storage/tools) -"Bf" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/hydroponics/garden/monastery) "Bg" = ( /obj/structure/cable{ icon_state = "1-2" @@ -10593,9 +10601,6 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) -"BB" = ( -/turf/closed/wall/r_wall, -/area/crew_quarters/dorms) "BC" = ( /obj/structure/chair{ dir = 4 @@ -10606,6 +10611,9 @@ /obj/structure/dresser, /turf/open/floor/wood, /area/crew_quarters/dorms) +"BE" = ( +/turf/open/transparent/openspace, +/area/construction/mining/aux_base) "BF" = ( /obj/effect/turf_decal/loading_area, /turf/open/floor/plasteel, @@ -10798,6 +10806,14 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) +"Ci" = ( +/obj/structure/closet/toolcloset, +/obj/machinery/light/small{ + dir = 8; + pixel_x = 5 + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) "Ck" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -11099,15 +11115,15 @@ /area/crew_quarters/kitchen) "Da" = ( /obj/effect/decal/cleanable/dirt, -/mob/living/simple_animal/hostile/lizard{ - name = "Wags-His-Tail"; - real_name = "Wags-His-Tail" - }, /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk, +/mob/living/simple_animal/hostile/lizard{ + name = "Wags-His-Tail"; + real_name = "Wags-His-Tail" + }, /turf/open/floor/plating, /area/janitor) "Dc" = ( @@ -11256,6 +11272,10 @@ /obj/machinery/light, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/cafeteria) +"Dz" = ( +/obj/structure/railing/corner, +/turf/open/floor/plating, +/area/maintenance/central) "DB" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -12018,6 +12038,14 @@ }, /turf/open/floor/plasteel/dark, /area/chapel/main) +"Fi" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/obj/structure/flora/grass/jungle, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) "Fk" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -12100,6 +12128,13 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/service) +"Fw" = ( +/obj/structure/railing{ + icon_state = "railing"; + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/central) "Fx" = ( /obj/structure/girder, /obj/structure/grille, @@ -12236,6 +12271,10 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/central) +"FP" = ( +/obj/machinery/computer/camera_advanced/base_construction, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) "FQ" = ( /obj/item/storage/box/bodybags{ pixel_y = 5 @@ -13156,6 +13195,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/door/airlock/public/glass, /turf/open/floor/plasteel, /area/hallway/secondary/service) "Il" = ( @@ -13614,6 +13654,16 @@ }, /turf/open/floor/plasteel, /area/janitor) +"IY" = ( +/obj/structure/railing{ + icon_state = "railing"; + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) "IZ" = ( /obj/machinery/light{ dir = 4; @@ -13705,6 +13755,11 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/bar) +"Jn" = ( +/obj/structure/flora/tree/jungle/small, +/obj/structure/railing, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) "Jo" = ( /obj/effect/turf_decal/trimline/neutral/filled/corner{ dir = 4 @@ -13764,7 +13819,6 @@ /turf/open/floor/carpet, /area/chapel/main) "Jz" = ( -/obj/structure/curtain, /turf/open/floor/mineral/titanium/blue, /area/crew_quarters/dorms) "JA" = ( @@ -13947,6 +14001,13 @@ /obj/item/hand_labeler, /turf/open/floor/plasteel, /area/vacant_room/commissary) +"JT" = ( +/obj/docking_port/stationary/public_mining_dock{ + icon_state = "pinonfar"; + dir = 2 + }, +/turf/open/floor/plating, +/area/construction/mining/aux_base) "JU" = ( /obj/structure/chair/office/dark, /turf/open/floor/carpet/blue, @@ -14136,6 +14197,12 @@ }, /turf/open/floor/plating, /area/maintenance/central) +"Ky" = ( +/obj/machinery/door/airlock/external{ + name = "Construction Zone" + }, +/turf/open/floor/plating, +/area/construction/mining/aux_base) "KB" = ( /obj/machinery/door/airlock/maintenance{ name = "Janitor Maintenance"; @@ -14353,6 +14420,13 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel/white, /area/crew_quarters/kitchen) +"KX" = ( +/obj/structure/railing/corner{ + icon_state = "railing_corner"; + dir = 1 + }, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) "KZ" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -14392,6 +14466,13 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/service) +"Le" = ( +/obj/structure/railing{ + icon_state = "railing"; + dir = 5 + }, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) "Lf" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ dir = 8 @@ -14409,6 +14490,25 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) +"Lg" = ( +/obj/structure/railing{ + icon_state = "railing"; + dir = 8 + }, +/obj/machinery/power/apc{ + areastring = "/area/hallway/secondary/construction"; + dir = 1; + name = "Auxiliary Construction Zone APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) "Lh" = ( /obj/machinery/airalarm/directional/west, /obj/machinery/seed_extractor, @@ -14775,6 +14875,10 @@ }, /turf/open/floor/plasteel/dark, /area/chapel/office) +"Mb" = ( +/obj/structure/flora/grass/jungle, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) "Mc" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -15371,6 +15475,17 @@ }, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) +"NG" = ( +/obj/structure/railing{ + icon_state = "railing"; + dir = 9 + }, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) +"NH" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/plating, +/area/maintenance/solars/starboard/fore) "NI" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 4 @@ -15937,6 +16052,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/plasteel/chapel, /area/chapel/main) +"Pl" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass, +/turf/open/floor/plasteel, +/area/hallway/secondary/service) "Pm" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 6 @@ -16238,6 +16358,9 @@ dir = 8; layer = 3.2 }, +/obj/structure/curtain{ + icon_state = "closed" + }, /turf/open/floor/mineral/titanium/blue, /area/crew_quarters/dorms) "PY" = ( @@ -16328,6 +16451,15 @@ }, /turf/open/floor/plasteel/dark, /area/gateway) +"Qj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/central) "Ql" = ( /obj/machinery/light/small/built, /turf/open/floor/plating, @@ -16389,11 +16521,6 @@ /obj/machinery/camera/autoname, /turf/open/floor/plasteel/dark, /area/chapel/main) -"Qw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plating, -/area/hallway/secondary/construction) "Qx" = ( /obj/structure/table, /obj/item/reagent_containers/food/condiment/peppermill{ @@ -16457,9 +16584,6 @@ }, /turf/open/floor/carpet, /area/crew_quarters/theatre) -"QE" = ( -/turf/closed/wall/r_wall, -/area/hydroponics/garden/monastery) "QH" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/effect/turf_decal/tile/neutral, @@ -16596,6 +16720,13 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) +"QT" = ( +/obj/structure/railing{ + icon_state = "railing"; + dir = 8 + }, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) "QU" = ( /turf/open/floor/wood, /area/crew_quarters/bar) @@ -16754,10 +16885,21 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/kitchen) +"Rv" = ( +/obj/structure/flora/grass/jungle/b, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) "Rw" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/gateway) +"Rx" = ( +/obj/structure/railing/corner{ + icon_state = "railing_corner"; + dir = 8 + }, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) "Ry" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 @@ -16784,6 +16926,13 @@ }, /turf/open/floor/plasteel, /area/gateway) +"RA" = ( +/obj/structure/railing{ + icon_state = "railing"; + dir = 4 + }, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) "RB" = ( /obj/machinery/atmospherics/pipe/layer_manifold{ dir = 4 @@ -17002,6 +17151,12 @@ /obj/machinery/camera/autoname, /turf/open/floor/plasteel, /area/hallway/secondary/service) +"Sa" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) "Sc" = ( /obj/machinery/cryopod{ dir = 8 @@ -17367,6 +17522,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/crew_quarters/bar) +"Tc" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/hydroponics/garden/monastery) "Td" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -17825,7 +17985,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/vg_decals/numbers/two, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) "Ui" = ( @@ -17900,6 +18059,14 @@ }, /turf/open/floor/plasteel/freezer, /area/crew_quarters/toilet) +"Up" = ( +/obj/structure/table, +/obj/item/pipe_dispenser, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/construction/mining/aux_base) "Ur" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/effect/turf_decal/tile/neutral, @@ -18195,6 +18362,17 @@ /obj/structure/kitchenspike, /turf/open/floor/plasteel/freezer, /area/crew_quarters/kitchen) +"Vd" = ( +/obj/machinery/hydroponics/soil, +/turf/open/floor/grass, +/area/hydroponics/garden/monastery) +"Vf" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/central) "Vg" = ( /mob/living/simple_animal/hostile/retaliate/goat{ name = "Pete" @@ -18408,6 +18586,15 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/bar) +"VA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plating, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/maintenance/central) "VB" = ( /obj/structure/window/reinforced{ dir = 4 @@ -18458,8 +18645,8 @@ /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) "VH" = ( -/mob/living/simple_animal/crab/Coffee, /obj/machinery/camera/autoname, +/mob/living/simple_animal/crab/Coffee, /turf/open/floor/plating/beach/sand, /area/crew_quarters/fitness/pool) "VI" = ( @@ -18521,6 +18708,7 @@ pixel_y = 32 }, /obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass, /turf/open/floor/plasteel, /area/hallway/secondary/service) "VR" = ( @@ -18608,10 +18796,6 @@ }, /turf/open/floor/wood, /area/crew_quarters/dorms) -"Wa" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/construction/mining/aux_base) "Wb" = ( /obj/effect/landmark/start/mime, /turf/open/floor/carpet, @@ -19007,9 +19191,6 @@ }, /turf/open/floor/plating, /area/maintenance/solars/starboard) -"Xc" = ( -/turf/open/floor/plating/airless, -/area/asteroid/nearstation) "Xd" = ( /obj/effect/landmark/xeno_spawn, /turf/open/floor/wood, @@ -45997,7 +46178,7 @@ qo qo qo qo -qo +sq qo qo qo @@ -46797,7 +46978,7 @@ Xh qo qo qo -qo +sq qo qo qo @@ -47577,7 +47758,7 @@ qo qo qo qo -qo +sq UX UX UX @@ -47817,7 +47998,7 @@ Xh Xh Xh Xh -qo +sq qo qo qo @@ -48066,7 +48247,7 @@ qo qo qo qo -qo +sq qo qo qo @@ -48609,7 +48790,7 @@ qo qo qo qo -qo +sq Xh Xh Xh @@ -50186,7 +50367,7 @@ lO Fo Fo pW -qo +sq Xh Xh Xh @@ -51709,7 +51890,7 @@ qo FN FN qo -qo +sq UX UX UX @@ -53186,7 +53367,7 @@ fl fl fl fl -KN +fl Xx Xx Xx @@ -53256,7 +53437,7 @@ qo qo qo Xh -Xc +sq qo qo qo @@ -53443,7 +53624,7 @@ Gy BU gk aM -KN +fl Xx Xx Xx @@ -53513,7 +53694,7 @@ qo qo qo qo -gx +qo qo qo qo @@ -53700,7 +53881,7 @@ qS ZG Bs Bs -KN +fl Xx Xx Xx @@ -53957,7 +54138,7 @@ ln SA Bs Bs -KN +fl Xx Xx Xx @@ -54214,42 +54395,42 @@ PO PO PO Bs -KN +fl Xx Xx Xx +cn JV JV JV JV +cn JV JV JV JV +cn +JV +JV +JV +cn +JV +JV +cn +JV +JV +JV +cn JV JV JV JV +cn JV JV JV JV -JV -JV -JV -JV -JV -JV -JV -JV -JV -JV -JV -JV -JV -JV -JV -JV +cn Xx Xx Xx @@ -54471,11 +54652,11 @@ fl fl fl rl -KN -KN -KN -KN -QE +fl +fl +fl +fl +cn Iz Iz OR @@ -54504,7 +54685,7 @@ Iz Iz OR Iz -Iz +Rv Iz JV Xx @@ -54734,11 +54915,11 @@ Bs PW cn Iz +Mb Iz -Iz -Iz -Iz -Iz +Vd +ae +Vd Iz Iz Iz @@ -54748,6 +54929,7 @@ uM Iz Iz Iz +Mb Iz Iz Iz @@ -54755,11 +54937,10 @@ Iz Iz Iz Iz +uM Iz -Iz -Iz -Iz -Iz +Mb +Rv Iz Iz Iz @@ -54989,20 +55170,20 @@ pK pK pK Bs -cn +fN PE uM Iz +Vd +ae +Vd +Iz +Sd Iz Iz Iz Iz -Iz -Iz -Iz -Iz -Iz -Iz +Mb Iz Iz Iz @@ -55016,7 +55197,7 @@ Iz Iz Iz Iz -Iz +Mb Iz uM Yz @@ -55250,12 +55431,9 @@ cn Iz Iz Iz -Iz -Iz -Iz -Iz -Iz -Sd +Vd +ae +Vd Iz Iz Iz @@ -55271,6 +55449,9 @@ Iz Iz Iz Iz +Rv +Iz +Iz Iz Iz Sd @@ -55282,9 +55463,9 @@ Xx Xx Xx Xx -BB -BB -BB +Sz +Sz +Sz sC sC AE @@ -55504,25 +55685,26 @@ Bh pK Bs cn +rC +ae Iz +Vd +ae +Vd Iz -Iz -Iz -Iz -Iz +cn qn Iz Iz Iz Iz Iz -Iz -Iz Sd Iz Iz Iz Iz +Mb Iz Iz Iz @@ -55533,13 +55715,12 @@ Iz Iz Iz Iz -Iz -JV +cn Xx Xx Xx Xx -BB +Sz jf rG WM @@ -55761,16 +55942,16 @@ lG pK Bs cn +xN +ae Iz -Iz -Iz -Sd -Iz -Iz +Vd +ae +Vd Iz pq Iz -Iz +uM Iz Iz pq @@ -55796,7 +55977,7 @@ Xx Xx Xx Xx -BB +Sz KS Jz WM @@ -55806,7 +55987,7 @@ eJ qM FA FA -FA +db FA FA FA @@ -56018,14 +56199,11 @@ lZ pK Bs cn -PE -Iz -Iz -Iz -Iz -Iz -Iz -Iz +Ax +ae +Iz +Iz +ae Iz Iz Iz @@ -56033,6 +56211,9 @@ Iz Iz Iz Iz +ae +ae +ae Iz Iz uM @@ -56051,9 +56232,9 @@ Sd JV Xx Xx -BB -BB -BB +Sz +Sz +Sz ke Sz WM @@ -56275,40 +56456,40 @@ FC pK Bs cn -Iz -Iz -Iz -Iz -Iz -Iz -Iz -Iz -uM -Iz -Iz -Iz -Iz +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae Sd -Iz -Iz -Iz -Iz -Iz -Iz -Iz -Iz -Iz -Iz -Iz -Iz -Iz -Iz -Iz +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae aE JV Xx Xx -BB +Sz IQ zj zj @@ -56544,13 +56725,13 @@ Iz Iz Iz Iz +ae +ae +ae Iz Iz -Iz -Iz -Iz -Iz -Iz +ae +ae Iz Iz Iz @@ -56562,10 +56743,10 @@ Iz Iz Iz Iz -JV +cn Xx Xx -BB +Sz fP FM yg @@ -56798,6 +56979,7 @@ Iz Iz Iz Iz +Mb Iz Iz Iz @@ -56805,11 +56987,10 @@ Iz Iz Iz Iz -Iz -Iz -Iz +ae +ae Sd -Iz +Rv Iz Iz Iz @@ -56822,7 +57003,7 @@ Yz JV Xx Xx -BB +Sz SX zj lo @@ -57053,7 +57234,7 @@ Iz Iz Iz Iz -Iz +Mb Iz Iz Iz @@ -57063,8 +57244,8 @@ uM Iz Iz Iz -pq -Iz +ea +ae Iz Iz Iz @@ -57074,12 +57255,12 @@ Iz Iz Iz Iz -Iz -Iz +Mb +Rv JV Xx Xx -BB +Sz kh zj lo @@ -57318,13 +57499,13 @@ uM Iz Iz Iz +Mb Iz +ae +ae Iz -Iz -Iz -Iz -Iz -Iz +Mb +Rv Iz Iz Iz @@ -57336,7 +57517,7 @@ Iz JV Xx Xx -BB +Sz zj JZ DJ @@ -57562,12 +57743,23 @@ ZX cn Iz Iz -DN +Fi Iz Iz Iz Iz -DN +An +RA +sr +Iz +Iz +ga +Iz +Iz +Iz +Iz +ae +ae Iz Iz Iz @@ -57576,24 +57768,13 @@ ga Iz Iz Iz -Iz -Iz -Iz -Iz -Iz -Iz -Iz -ga -Iz -Iz -Iz -Iz +Mb Iz Iz JV Xx Xx -BB +Sz BD lc Kt @@ -57816,41 +57997,41 @@ pK ra OA OA -Vh -Vh -Vh -Vh -Vh -Vh +OA +Tl +Tl +Tl +Tl +Tl OA OA OA dV -Iz -Iz -Iz -Bf +Le +RA +RA +cn Iz Iz Iz Iz +ae +ae Iz Iz Iz Iz -Iz -Iz -Bf -Iz -Iz -Iz -Iz -Iz -Iz -JV +cn +RA +RA +RA +RA +RA +RA +cn wq wq -BB +Sz Sz Sz nt @@ -58083,25 +58264,25 @@ vf PH mK wf -ui +mj mj mj uJ mj lt -ui +mj mj CY mj mj -ui +mj mj mj gv mj mj mj -ui +mj mj iy eB @@ -58349,9 +58530,9 @@ gT eE eE Ud -Yh -iV eE +iV +Yh eE eE gT @@ -58600,18 +58781,18 @@ zB zB zB hL -zB +bT zB zB zB zB kN -oe +zB hL +oe zB zB -zB -zB +bT zB zB zB @@ -58853,32 +59034,32 @@ PD Ej aA OA -qn +go +QT +QT +QT +cn Iz Iz Iz Iz Iz -Iz -Iz -Yd pq +Yd fK Iz Iz -Iz -Iz -Iz -Iz -Iz -Iz -Iz -Iz -Iz -JV +cn +QT +QT +QT +QT +QT +QT +cn wq wq -BB +Sz Sz Sz te @@ -59114,6 +59295,8 @@ Iz Iz Iz Iz +OR +Iz Iz Iz Iz @@ -59123,9 +59306,7 @@ Yd fK Iz Iz -Iz -Iz -Iz +OR Iz Iz Iz @@ -59135,7 +59316,7 @@ Iz JV Xx Xx -BB +Sz BD JB Ab @@ -59374,14 +59555,14 @@ Iz pq Iz Iz +Sd +Rv Iz Yd Yd fK Iz Iz -Iz -Iz pq Iz Sd @@ -59392,7 +59573,7 @@ Iz JV Xx Xx -BB +Sz zj FM Lb @@ -59630,26 +59811,26 @@ Iz Iz Iz Iz -Sd +Iz +Iz +Iz Iz Yd OX jJ Iz -Iz -Iz Sd Iz Iz Iz Iz -Iz -Iz +Rv +Mb Iz JV Xx Xx -BB +Sz SX zj DP @@ -59885,10 +60066,12 @@ Iz Iz Iz Iz -Iz -Iz -Iz -Iz +Rv +uH +RA +RA +RA +sr Yd Yd Yd @@ -59900,13 +60083,11 @@ Iz Iz Iz Iz -Iz -Iz Yz JV Xx Xx -BB +Sz kh JZ oC @@ -60140,15 +60321,17 @@ vP Tl Iz Iz +Mb Iz Iz -Iz -Iz -Iz -Iz -Yd +bv +aZ +aZ +aZ +Le pq Yd +Yd Iz Iz Iz @@ -60158,12 +60341,10 @@ Iz Iz Iz Iz -Iz -Iz -JV +cn Xx Xx -BB +Sz fP zj zj @@ -60397,22 +60578,22 @@ vP Tl Iz Iz -Iz +Mb Iz pq -Iz -Iz -Bf -Yd +bv +aZ +aZ +aZ aZ Yd -Iz -Iz +Yd +Yd Iz Iz oF Iz -Iz +Mb Iz Iz uM @@ -60420,7 +60601,7 @@ Iz JV Xx Xx -BB +Sz IQ zj zj @@ -60657,14 +60838,14 @@ Iz Iz Iz Iz -Iz -Yz -Bf -nH +bv +aZ +aZ +aZ aZ Yd -Iz -Iz +Tc +Yd Iz Iz Sd @@ -60677,8 +60858,8 @@ aE JV Xx Xx -BB -BB +Sz +Sz ke Sz Sz @@ -60700,7 +60881,7 @@ Dk VI VI VI -VI +cp uC VI VI @@ -60896,7 +61077,7 @@ KG RN YL Rf -oQ +CA yo yo Rk @@ -60914,14 +61095,14 @@ Iz Iz Iz Iz -uM -Iz -Bf -Yd +Jn +aZ +aZ +aZ aZ Yd -Iz -Iz +Yd +Yd Iz Iz Iz @@ -60935,7 +61116,7 @@ JV Xx Xx Xx -BB +Sz KS Jz Sz @@ -61171,14 +61352,14 @@ Iz Iz Sd Iz -Iz -Iz -Iz -Yd +bv +aZ +aZ +aZ +NG pq Yd -Iz -Iz +Yd Iz Iz Iz @@ -61188,11 +61369,11 @@ Iz Iz Iz Iz -JV +cn Xx Xx Xx -BB +Sz yv PX Sz @@ -61428,33 +61609,33 @@ Iz Iz Iz Iz +Rx +QT +QT +QT +KX +Iz +Iz +Iz +Rv Iz Iz Iz Iz Iz -Iz -Iz -Iz -Iz -Iz -Iz -Iz -Iz -Iz -Iz +Mb Iz Yz JV Xx Xx Xx -BB -BB -BB -BB -zG -BB +Sz +Sz +Sz +Sz +sq +Sz Sz Sz kY @@ -61693,7 +61874,7 @@ Sd Iz Iz Iz -Iz +Rv Iz Iz Iz @@ -61709,9 +61890,9 @@ Xx qo qo qo -zG +sq uX -BB +Sz yL lE lE @@ -61966,7 +62147,7 @@ pW pW pW qo -zG +sq uX Vi fp @@ -62197,7 +62378,7 @@ OA Iz Iz Iz -Iz +Mb DN Pa Iz @@ -62223,7 +62404,7 @@ iT xe pW qo -zG +sq uX Vi It @@ -62453,34 +62634,34 @@ vP OA fN cn -QE -JV -JV -JV -JV +cn JV JV JV JV +cn JV JV JV JV +cn JV JV JV JV +cn JV JV JV JV +cn Xx pW ir po pW pW -dw +pW uX Vi YC @@ -62710,7 +62891,7 @@ Wj OA Pu Bs -KN +fl Xx Xx Xx @@ -62737,9 +62918,9 @@ pY Fo YP Fo -dw +pW uX -BB +Sz Sc Sc Sc @@ -62966,10 +63147,10 @@ mg bD Go TJ -Bs -KN -Xx -Xx +gJ +fl +fl +fl Xx Xx Xx @@ -62994,9 +63175,9 @@ pW pW pW Fo -dw -dw -BB +pW +pW +Sz Sz Sz Sz @@ -63185,7 +63366,7 @@ qo qo qo qo -qo +fl fl Bs OA @@ -63223,10 +63404,10 @@ hd vP OA Yt -ZX -KN -Xx -Xx +dB +qO +ms +fl Xx Xx Xx @@ -63442,10 +63623,10 @@ qo qo qo qo -qo fl Bs Bs +mI OA oR lk @@ -63479,11 +63660,11 @@ He hd vP OA -Yt +tw +sn +Fw Bs -KN -Xx -Xx +fl Xx Xx Xx @@ -63696,12 +63877,12 @@ qo FN qo qo -qo fl fl fl fl Bs +Bs tP OA PD @@ -63737,10 +63918,10 @@ uc vP OA Yt -nN -KN -Xx -Xx +Dz +oy +Bs +fl Xx Xx Xx @@ -63953,12 +64134,12 @@ qo FN FN qo -qo fl CH JX fl Bs +fl OA OA Qr @@ -63994,10 +64175,10 @@ hd Fa OA Yt -Bs -KN -Xx -Xx +dB +qO +fl +fl Xx Xx Xx @@ -64210,13 +64391,13 @@ qo FN FN qo -qo fl fv Li rl BW -OA +dB +Wq Wq gp jx @@ -64251,9 +64432,9 @@ jH vP OA Yt -Bs -KN -Xx +dB +qO +fl Xx Xx Xx @@ -64281,7 +64462,7 @@ qo qo qo qo -dw +pW Uk rV pW @@ -64467,13 +64648,13 @@ qo qo FN qo -qo fl kL DQ fl Bs -OA +dB +Wq Wq fo RR @@ -64508,10 +64689,10 @@ MO vP OA Yt -cx -KN -KN -KN +gO +fl +fl +fl qo qo qo @@ -64724,13 +64905,13 @@ FN qo FN qo -qo fl fl fl fl Bs -OA +dB +Wq Wq OG mA @@ -64981,12 +65162,12 @@ qo FN FN qo -qo fl um um fl Bs +fl OA OA Bu @@ -65027,7 +65208,7 @@ PI PI PI PI -PI +lJ PI Of oP @@ -65238,13 +65419,13 @@ FN FN FN qo -qo fl Bs kA rl BW Bs +Bs OA PD lk @@ -65495,12 +65676,12 @@ qo qo qo qo -qo fl fl fl fl PW +PW Bs OA PD @@ -65755,7 +65936,7 @@ qo qo qo qo -qo +fl fl ZX kA @@ -66012,7 +66193,7 @@ qo qo qo qo -qo +fl fl PW Bs @@ -66058,7 +66239,7 @@ Um Rz yr gf -Yt +bN fl qo qo @@ -66260,19 +66441,19 @@ FN qo qo qo -ay -ay -ay -ay -ay -ay -ay -ay -ay -ay -ay -ay -ay +FN +qo +qo +qo +qo +FN +qo +qo +qo +fl +Bs +Bs +fl OA oR lk @@ -66517,19 +66698,19 @@ FN qo qo qo -ay -bb -bb -bb -bb -bb -bb -bb -bb -bb -dt -fn -hW +FN +qo +qo +qo +qo +FN +qo +qo +qo +fl +Bs +Bs +fl OA cJ ij @@ -66773,21 +66954,21 @@ FN qo qo qo +FN qo -ay -bb -bb -bb -bb -bb -bb -bb -bb -bb -dt -fO -Wa -kc +qo +qo +qo +qo +FN +qo +qo +qo +fl +Bs +Bs +fl +OA PG MJ pg @@ -67031,21 +67212,21 @@ qo qo qo qo -ay -bb -bb -bb -bb -bb -bb -bb -bb -bb -dt -fO -ic -kc -aU +qo +FN +FN +qo +FN +qo +qo +qo +qo +fl +Bs +Bs +fl +OA +PD lk pg Gx @@ -67287,22 +67468,22 @@ FN qo qo qo +FN +FN qo -ay -bb -bb -bb -bb -bb -bb -bb -bb -bb -dt -LK -if +FN +FN +qo +qo +qo +qo +qo +fl +PW +Bs +fl OA -kC +PD lk pg rN @@ -67544,23 +67725,23 @@ FN qo qo qo +FN qo -ay -bb -bb -bb -bb -bF -bb -bb -bb -di -dK -fR -ig -kp -kK -lu +qo +qo +qo +FN +qo +qo +qo +qo +fl +Bs +Bs +fl +OA +PD +Fd pg ID OA @@ -67801,22 +67982,22 @@ FN FN qo qo +FN +FN qo -ay -bb -bb -bb -bb -bb -bb -bb -bb -bb -dt -fO -iq +qo +qo +FN +qo +qo +qo +qo +fl +fl +Bs +fl OA -mq +PD Fd pg ew @@ -68058,20 +68239,20 @@ FN qo qo qo +FN qo -ay -bb -bb -bb -bb -bb -bb -bb -bb -bb -dt -gi -is +qo +qo +qo +qo +qo +qo +qo +qo +fl +Bs +mI +fl OA ml Fd @@ -68105,7 +68286,7 @@ PD MW vP OA -qP +pS Bs Bs Bs @@ -68314,21 +68495,21 @@ qo qo FN qo +FN qo qo -ay -bb -bb -bb -bb -bb -bb -bb -bb -bb -dt -gj -iH +qo +FN +qo +qo +qo +qo +qo +qo +fl +Bs +PW +fl OA PD wh @@ -68573,19 +68754,19 @@ FN qo qo qo -ay -bb -bb -bb -bb -bb -bb -bb -bb -bb -dt -gV -iI +qo +qo +FN +FN +qo +FN +qo +qo +qo +fl +Bs +Bs +fl OA TW XN @@ -68604,7 +68785,7 @@ Je YX uw Tl -Av +Pl Ik OA OA @@ -68830,19 +69011,19 @@ qo qo qo qo -ay -ay -ay -ay -ay -ay -ay -ay -ay -ay -ay -ay -ay +qo +ct +ct +ct +ct +ct +ct +ct +ct +ct +Bs +Bs +fl OA PD Fd @@ -68881,7 +69062,7 @@ fl er JX rl -BW +VA fl qo qo @@ -69096,7 +69277,7 @@ fD mh Cu bA -fl +ct oE tT fq @@ -69610,7 +69791,7 @@ Ew du vl lA -fl +ct Yt fl qo @@ -69864,10 +70045,10 @@ hX HB HB wc -Qw +HB vl YT -fl +ct Yt fl qo @@ -70381,7 +70562,7 @@ CO FJ ur fg -fl +ct Yt fl qo @@ -70887,7 +71068,7 @@ YV IB PI Fr -oP +Vf fl jS fl @@ -71153,8 +71334,8 @@ fl fl fl fl -fl -fl +Bs +Bs Yt gw gw @@ -71394,7 +71575,7 @@ yM zh Dv GQ -Jg +NH Sx UV PI @@ -71409,9 +71590,9 @@ gH fl qo qo -qo -qo fl +fl +Bs jk PI oP @@ -71667,13 +71848,13 @@ fl qo qo qo -qo +fl fl Fz -fl +Bs Yt fl -qo +fl fl Yt fl @@ -71929,9 +72110,9 @@ fl fl fl Yt -fl -fl -fl +Bs +jO +Bs Yt fl fl @@ -72188,7 +72369,7 @@ fl fC PI PI -PI +Qj gH fl qo @@ -72445,7 +72626,7 @@ fl fl fl fl -fl +Yt fl fl qo @@ -72700,10 +72881,10 @@ qo qo qo qo -qo -qo -qo -qo +fl +Bs +Yt +fl qo qo qo @@ -72957,10 +73138,10 @@ qo qo qo qo -qo -qo -qo -qo +fl +Bs +Yt +fl qo qo qo @@ -73214,9 +73395,9 @@ FN qo qo qo -qo -qo -qo +fl +Bs +Yt qo qo qo @@ -73472,9 +73653,9 @@ FN qo FN qo -qo -FN -FN +Bs +Yt +fl qo qo qo @@ -73729,9 +73910,9 @@ FN FN qo FN -qo -FN -FN +Bs +Yt +fl FN qo qo @@ -73985,10 +74166,10 @@ qo FN qo qo -FN qo -FN -FN +Bs +Yt +fl FN qo qo @@ -74242,10 +74423,10 @@ FN FN qo FN -FN -FN -FN qo +Bs +Yt +fl qo qo qo @@ -74500,9 +74681,9 @@ qo qo qo qo -qo -FN -qo +Bs +Yt +fl qo qo qo @@ -74756,9 +74937,9 @@ qo FN qo FN -qo -qo -qo +fl +Bs +Yt qo FN qo @@ -75013,10 +75194,10 @@ qo qo qo qo -FN -qo -FN -qo +fl +Bs +Yt +fl FN qo FN @@ -75270,10 +75451,10 @@ qo FN qo qo -FN -qo -qo -qo +fl +Bs +Yt +fl qo qo qo @@ -75284,7 +75465,7 @@ qo FN qo qo -Xh +cO KN DZ KN @@ -75525,23 +75706,23 @@ FN qo FN qo -qo -qo -FN -FN -FN -qo -FN -qo -qo -qo -qo -FN -qo -FN -qo -qo -Xh +ww +ww +ww +ww +hv +ww +ww +ww +ww +ww +ww +ww +ww +ww +ww +ww +ww UX LU UX @@ -75782,23 +75963,23 @@ qo FN qo FN -FN -qo -qo -qo -FN -FN -FN -qo -qo -qo -qo -qo -qo -FN -qo -Xh -Xh +ww +BE +BE +BE +ds +Ci +dt +bb +bb +bb +bb +bb +bb +bb +bb +bb +ww Xh LU Xh @@ -76039,25 +76220,25 @@ qo qo FN FN -qo -qo -qo -FN -qo -qo -qo -qo -qo -FN -qo -qo -FN -qo -qo -Xh -Xh -Xh +ww +Lg +IY +IY +Sa +LK +dt +bb +bb +bb +bb +bb +bb +bb +bb +bb +ww Xh +LU Xh Xh qo @@ -76296,25 +76477,25 @@ FN qo qo qo -qo -qo -qo -qo -qo -qo -FN -qo -qo -qo -qo -FN -qo -qo -qo -Xh -Xh -Xh +ww +ww +ww +gj +fO +fO +dt +bb +bb +bb +bb +bb +bb +bb +bb +bb +ww Xh +LU Xh Xh qo @@ -76555,23 +76736,23 @@ FN qo FN qo -FN -qo -qo -qo -qo -qo -FN -qo -qo -qo -FN -qo -qo -Xh -Xh -Xh +ww +FP +fO +fO +dt +bb +bb +bb +bb +bb +bb +bb +bb +bb +ww Xh +LU Xh Xh qo @@ -76812,23 +76993,23 @@ qo qo qo FN -qo -qo -qo -qo -qo -qo -qo -qo -qo -qo -qo -qo -qo -Xh -Xh -Xh +ww +mv +fO +fO +Ky +JT +bb +bb +bb +bF +bb +bb +bb +bb +ww Xh +LU Xh Xh qo @@ -77069,23 +77250,23 @@ qo qo qo FN -FN -qo -FN -qo -FN -qo -qo -qo -FN -FN -qo -qo -qo -Xh -Xh -Xh +ww +gi +fO +fO +dt +bb +bb +bb +bb +bb +bb +bb +bb +bb +ww Xh +LU Xh Xh qo @@ -77326,26 +77507,26 @@ qo qo FN qo -qo -qo -qo -qo -qo -qo -qo -qo -qo -qo -qo -qo -qo -Xh -Xh -Xh -Xh -Xh -Xh -qo +ww +fO +fO +fO +dt +bb +bb +bb +bb +bb +bb +bb +bb +bb +ww +UX +LU +UX +UX +ww qo qo qo @@ -77583,23 +77764,23 @@ qo qo qo qo -qo -qo -qo -qo -qo -qo -qo -qo -qo -qo -qo -qo -qo -Xh -Xh -Xh +ww +br +Up +iI +dt +bb +bb +bb +bb +bb +bb +bb +bb +bb +ww Xh +LU Xh Xh qo @@ -77840,21 +78021,21 @@ Xh qo qo qo -qo -qo -qo -qo -qo -qo -qo -qo -qo -qo -qo -qo -qo -Xh -Xh +ww +ww +ww +ww +ww +bb +bb +bb +bb +bb +bb +bb +bb +bb +ww Xh Xh Xh @@ -78101,17 +78282,17 @@ Xh Xh Xh Xh -Xh -Xh -Xh -Xh -Xh -Xh -Xh -Xh -Xh -Xh -Xh +ww +ww +ww +ww +ww +ww +ww +ww +ww +ww +ww Xh Xh Xh diff --git a/_maps/map_files/LambdaStation/lambda.dmm b/_maps/map_files/LambdaStation/lambda.dmm index fdcc0fa7c1..a0d54edb91 100644 --- a/_maps/map_files/LambdaStation/lambda.dmm +++ b/_maps/map_files/LambdaStation/lambda.dmm @@ -11825,8 +11825,8 @@ dir = 8 }, /obj/effect/turf_decal/tile/neutral, -/mob/living/simple_animal/hostile/retaliate/bat/secbat, /obj/effect/turf_decal/loading_area/red, +/mob/living/simple_animal/hostile/retaliate/bat/secbat, /turf/open/floor/plasteel/dark, /area/security/brig) "avX" = ( @@ -21222,9 +21222,6 @@ }, /turf/open/floor/plasteel, /area/quartermaster/miningoffice) -"aMg" = ( -/turf/closed/wall/r_wall, -/area/quartermaster/miningoffice) "aMh" = ( /turf/closed/wall/r_wall, /area/crew_quarters/heads/captain/private) @@ -23448,11 +23445,14 @@ /turf/open/floor/plasteel, /area/quartermaster/storage) "aQy" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Mining Maintenance"; - req_access_txt = "48" +/obj/machinery/door/airlock/engineering{ + name = "Auxillary Base Construction"; + req_one_access_txt = "32;47;48" }, -/turf/open/floor/plating, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ + dir = 4 + }, +/turf/open/floor/plasteel, /area/quartermaster/miningoffice) "aQz" = ( /turf/closed/wall, @@ -23735,12 +23735,6 @@ "aRj" = ( /turf/open/floor/plating, /area/maintenance/department/cargo) -"aRk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/department/cargo) "aRl" = ( /obj/structure/cable{ icon_state = "4-8" @@ -23752,10 +23746,6 @@ }, /turf/open/floor/plating, /area/maintenance/fore) -"aRm" = ( -/obj/structure/sign/warning/vacuum/external, -/turf/closed/wall/r_wall, -/area/maintenance/department/cargo) "aRn" = ( /obj/structure/cable{ icon_state = "4-8" @@ -24108,12 +24098,6 @@ }, /turf/open/floor/plasteel, /area/quartermaster/storage) -"aSm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/department/cargo) "aSn" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -24128,15 +24112,6 @@ /obj/effect/decal/cleanable/blood/old, /turf/open/floor/plating, /area/maintenance/fore) -"aSo" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/department/cargo) "aSp" = ( /obj/structure/lattice/catwalk, /turf/open/space, @@ -27268,6 +27243,9 @@ name = "Bridge"; req_access_txt = "19" }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/hallway/secondary/command) "baa" = ( @@ -37337,6 +37315,9 @@ req_access_txt = "19" }, /obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bAH" = ( @@ -37882,6 +37863,9 @@ dir = 4 }, /obj/effect/turf_decal/tile/neutral, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/hallway/secondary/command) "bCA" = ( @@ -37896,6 +37880,9 @@ name = "Command Hallway"; req_access_txt = "19" }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, /turf/open/floor/plasteel, /area/hallway/secondary/command) "bCB" = ( @@ -46902,10 +46889,6 @@ }, /turf/open/floor/plating, /area/maintenance/disposal) -"cat" = ( -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/plating, -/area/maintenance/department/cargo) "cau" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -49432,15 +49415,6 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/starboard) -"chE" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, -/obj/item/storage/toolbox/emergency, -/turf/open/floor/plating, -/area/maintenance/department/cargo) "chG" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -55016,8 +54990,9 @@ "cxw" = ( /obj/machinery/power/apc{ areastring = "/area/construction"; + dir = 1; name = "Construction Area APC"; - pixel_y = -24 + pixel_y = 24 }, /obj/structure/cable{ icon_state = "0-4" @@ -59865,6 +59840,9 @@ /area/medical/abandoned) "cMq" = ( /obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/central/secondary) "cMr" = ( @@ -63507,13 +63485,6 @@ }, /turf/open/floor/plating/airless, /area/engine/engineering) -"dRD" = ( -/obj/machinery/status_display/ai{ - pixel_y = 32 - }, -/obj/machinery/vending/cigarette, -/turf/open/floor/plasteel/grimy, -/area/hallway/primary/aft) "dRM" = ( /obj/structure/cable{ icon_state = "1-4" @@ -64284,6 +64255,9 @@ }, /turf/open/floor/plasteel, /area/engine/break_room) +"eYV" = ( +/turf/open/floor/plasteel, +/area/maintenance/department/cargo) "eZq" = ( /obj/machinery/gravity_generator/main/station, /obj/effect/turf_decal/bot_white, @@ -64413,10 +64387,6 @@ /obj/structure/chair, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) -"fqq" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/grimy, -/area/hallway/primary/aft) "fqL" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ @@ -64948,6 +64918,10 @@ }, /turf/open/floor/plasteel/grimy, /area/tcommsat/computer) +"gbW" = ( +/obj/structure/stairs/south, +/turf/open/floor/plasteel, +/area/maintenance/department/cargo) "gcM" = ( /obj/effect/turf_decal/tile/red{ dir = 8 @@ -65849,11 +65823,9 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "hDs" = ( -/obj/structure/chair/comfy/brown{ - dir = 8 - }, -/turf/open/floor/plasteel/grimy, -/area/hallway/primary/aft) +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/department/medical) "hEj" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -65961,12 +65933,6 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/aft) -"hTm" = ( -/obj/structure/chair/comfy/brown{ - dir = 4 - }, -/turf/open/floor/plasteel/grimy, -/area/hallway/primary/aft) "hVb" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible{ dir = 1 @@ -66553,6 +66519,10 @@ }, /turf/open/space/basic, /area/space/nearstation) +"jjQ" = ( +/obj/effect/spawner/lootdrop/crate_spawner, +/turf/open/floor/plating, +/area/maintenance/department/medical) "jld" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ @@ -67036,12 +67006,16 @@ /turf/open/floor/plating/airless, /area/engine/atmos) "kgv" = ( -/obj/structure/table, -/obj/item/flashlight/lamp/green{ - pixel_y = 3 +/obj/structure/railing{ + icon_state = "railing"; + dir = 4 }, -/turf/open/floor/plasteel/grimy, -/area/hallway/primary/aft) +/obj/structure/railing{ + icon_state = "railing"; + dir = 8 + }, +/turf/open/floor/plasteel/stairs/old, +/area/maintenance/department/medical) "khi" = ( /obj/machinery/light{ dir = 4; @@ -67431,10 +67405,6 @@ }, /turf/open/floor/plating, /area/maintenance/port) -"leD" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/carpet, -/area/hallway/primary/aft) "lfg" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -68436,15 +68406,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/closed/wall, /area/maintenance/disposal/incinerator) -"nab" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/department/cargo) "nek" = ( /obj/docking_port/stationary{ dir = 8; @@ -69505,6 +69466,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/open/floor/plating, /area/maintenance/aft) +"peD" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/maintenance/department/cargo) "pgc" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ @@ -69944,13 +69911,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/plasteel/white, /area/medical/medbay/lobby) -"pXR" = ( -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/obj/machinery/vending/coffee, -/turf/open/floor/plasteel/grimy, -/area/hallway/primary/aft) "pXT" = ( /obj/machinery/light{ dir = 4 @@ -70170,8 +70130,11 @@ }, /area/maintenance/department/electrical) "qIN" = ( -/turf/open/floor/carpet, -/area/hallway/primary/aft) +/turf/open/floor/plating, +/turf/open/floor/plating{ + icon_state = "platingdmg2" + }, +/area/maintenance/department/medical) "qLB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /turf/closed/wall/r_wall, @@ -70312,6 +70275,17 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) +"rcP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/department/medical) "rcU" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{ dir = 4 @@ -70668,6 +70642,13 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/foyer) +"rMw" = ( +/obj/machinery/door/airlock/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/central/secondary) "rNH" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/general/visible{ @@ -70949,10 +70930,12 @@ /turf/closed/wall, /area/maintenance/starboard/aft) "sHs" = ( -/obj/machinery/vending/snack/random, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel/grimy, -/area/hallway/primary/aft) +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/department/medical) "sJs" = ( /obj/structure/cable{ icon_state = "1-2" @@ -71043,14 +71026,6 @@ }, /turf/open/space, /area/solar/starboard/aft) -"sYf" = ( -/obj/item/kirbyplants/random, -/obj/machinery/light{ - dir = 4; - light_color = "#e8eaff" - }, -/turf/open/floor/plasteel/grimy, -/area/hallway/primary/aft) "sYO" = ( /obj/structure/window/reinforced/spawner/north, /obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ @@ -71125,12 +71100,17 @@ /turf/open/floor/carpet, /area/hallway/secondary/entry) "tcW" = ( -/obj/item/kirbyplants/random, -/obj/machinery/light{ +/obj/structure/stairs/west, +/obj/structure/railing{ + icon_state = "railing"; + dir = 4 + }, +/obj/structure/railing{ + icon_state = "railing"; dir = 8 }, -/turf/open/floor/plasteel/grimy, -/area/hallway/primary/aft) +/turf/open/floor/plating, +/area/maintenance/department/medical) "tdt" = ( /obj/machinery/power/port_gen/pacman, /turf/open/floor/plating, @@ -71621,11 +71601,6 @@ }, /turf/open/floor/plasteel, /area/security/prison) -"uaS" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/snacks/chips, -/turf/open/floor/plasteel/grimy, -/area/hallway/primary/aft) "ubl" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ @@ -71756,10 +71731,6 @@ /obj/item/flashlight/lamp, /turf/open/floor/carpet/orange, /area/crew_quarters/heads/chief/private) -"uqr" = ( -/obj/machinery/holopad, -/turf/open/floor/carpet, -/area/hallway/primary/aft) "urx" = ( /obj/structure/flora/ausbushes/fullgrass, /obj/structure/flora/rock/jungle, @@ -71781,9 +71752,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/hallway/primary/aft) -"usZ" = ( -/turf/open/floor/plasteel/grimy, -/area/hallway/primary/aft) "utp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ @@ -71826,6 +71794,13 @@ }, /turf/open/floor/plasteel, /area/engine/break_room) +"uyX" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Aux Base Maintenance"; + req_access_txt = "48" + }, +/turf/open/floor/plating, +/area/maintenance/department/cargo) "uBL" = ( /obj/structure/cable{ icon_state = "4-8" @@ -73132,6 +73107,9 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/fore) +"xbr" = ( +/turf/closed/wall/r_wall, +/area/space/nearstation) "xfQ" = ( /obj/machinery/atmospherics/pipe/manifold/green/visible{ dir = 4 @@ -73527,10 +73505,6 @@ "ycq" = ( /turf/open/floor/engine/plasma, /area/engine/atmos) -"yeB" = ( -/obj/structure/table, -/turf/open/floor/plasteel/grimy, -/area/hallway/primary/aft) "yfq" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -105141,7 +105115,7 @@ bpg cDz aSt biL -cMq +rMw biL biL biL @@ -115949,7 +115923,7 @@ cVr cVr cVr cVr -cVt +rcP bDx bDx bDx @@ -116464,12 +116438,12 @@ ctY cxq cza cBF -boU -boU -boU -boU -boU -boU +bDx +bDx +aaA +bDx +aaA +aaA boU bZM ccx @@ -116721,13 +116695,13 @@ cuc cxC cVr cBI -boU +bpw +kgv kgv -hTm tcW -hTm -yeB -bIL +bDx +aaA +boU bZT ccB cgC @@ -116978,13 +116952,13 @@ cud cxD cVr cVt +bqa +bpw +bpw +bRI +bDx +aaA boU -pXR -qIN -qIN -qIN -usZ -bIL luG cdM hST @@ -117235,13 +117209,13 @@ cue cxE cVr cVt -boU +bpw sHs qIN -uqr -leD -usZ -fqq +aaA +aaA +aaA +boU cgY cWO cAj @@ -117492,13 +117466,13 @@ cVr cVr cVr cVt +bpw +bpw +bpw +jjQ +aaA +aaA boU -dRD -qIN -qIN -qIN -usZ -fqq cgY cWO sNh @@ -117749,13 +117723,13 @@ cuS cxS cVr cBK +bhg +biZ +hDs +bDx +aaA +aaA boU -yeB -hDs -sYf -hDs -uaS -bIL mdh cWO cgK @@ -118006,12 +117980,12 @@ cud cxT cVr cVt -boU -boU -boU -boU -boU -boU +bpw +bDx +bDx +aaA +aaA +aaA boU bZX cWO @@ -118263,7 +118237,7 @@ cuc cxC cVr cVt -aaA +bpw aaA aaA aaA @@ -118520,7 +118494,7 @@ ctY cxU cza cBF -aaA +bpw aaA aaA aaA @@ -118779,7 +118753,7 @@ cVr cVt bDx aaA -aco +aaA aaA aaA boU @@ -128253,7 +128227,7 @@ aOD aPv aPF aMe -cat +aRj aRj aRj aRj @@ -128510,7 +128484,7 @@ aNX aNa aPG aMe -cQS +aRj aRj aQz aQz @@ -128767,23 +128741,23 @@ aOa aNa aPH aMe -aRj aQz +uyX aQz aaA -aaR -aaR -aaR -aaR -aaA -aaA -aaA -aaA -aaA -aco aaA aaA aaA +aac +aaa +aaa +aaa +aaa +aac +aaa +aaa +aaa +aaa aab bjw bkJ @@ -129024,25 +128998,25 @@ aNZ aNa cLS aMe -aRj -lQP +eYV +eYV +aQz +aQz +aQz aQz -aaR -aaR -aaR -aaR -aaR aaA -aaA -aco -aaA -aaA -aaA -aaA -cce -aaA -aaa -aaa +xbr +aac +aac +aac +aac +xbr +aac +aac +aac +aac +xbr +aac aac aaa aab @@ -129281,24 +129255,24 @@ aNZ aOO aQp aQy -aRk -aRj +eYV +eYV +peD +eYV +gbW aQz -aaR -aaR -aaR aaA -aaR -aaA -aaA -aaA -aaA -aab -aab -aab aac +aaa +aaa +aaa +aab +aab +aab +aab aab aaa +aac aaa aac aaa @@ -129538,24 +129512,24 @@ aPy aNa aQq aMe -bIH -aRj aQz -aaR +aQz +aQz +aQz +aQz +aQz aaA -aaA -aaA -aaA -aaA -aaA -aab -aab -aaa -aaa -aaa aac -aaa -aaa +aab +aab +aab +aab +aab +aab +aab +aab +aab +aac aaa aac aaa @@ -129795,25 +129769,25 @@ aOb aNa aQq aMe -bIH -aRj -aQz -aaR -aaA -aco aaA aaA aaA aaA -aaa -aaa -aaa -aaa -aaa +aaA +aaA +aaA aac aaa aaa aaa +aab +aab +aab +aab +aab +aaa +aac +aaa aac aaa aab @@ -130046,31 +130020,31 @@ aMd aMd aMd aMd -aMg +aMe aLo aOE aPw aQr aMe -aRj -cQS -aQz -aaR aaA aaA aaA aaA +aaA +aaA +aaA +aac +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aac aab -aab -aaa -aaa -aaa -aab -aaa -aac -aac -aac -aac aac aac aav @@ -130303,31 +130277,31 @@ aav aab aab aab -aMg -aMg -aMg -aMg -aMg -aMg -aRj -aRj -aQA -aaR +aMe +aMe +aMe +aMe +aMe +aMe aaA aaA aaA aaA +aaA +aaA +aaA +xbr aaa aaa aaa -aab -aab -aab -aab -aab -aab -aab -aab +aaa +aaa +aaa +aaa +aaa +aaa +xbr +aac aac aab aab @@ -130565,15 +130539,15 @@ aaA aaA aaA aaA -aQA -chE -aSm -aQA +aaA +aaA +aaA +aaA aaA aaA aab aab -aab +aac aaa aaa aaa @@ -130582,8 +130556,8 @@ aab aab aab aab -aab -aab +aaa +aac aaa aac aaa @@ -130822,25 +130796,25 @@ aab aaA aaA aaA -aQA -aRm -aSo -aQA +aaA +aaA +aaA +aaA aaA aab aaa aaa +aac aaa aaa aaa +aab +aab +aab +aab +aab aaa -aab -aab -aab -aab -aab -aab -aab +aac aaa aac aaa @@ -131080,24 +131054,24 @@ aab aab aaA aaA -aQA -aRj -aQA +aaA +aaA +aaA aaA aaa aaa aaa +aac aaa aaa aaa aaa -aab -aab -aab -aab -aab -aab -aab +aaa +aaa +aaa +aaa +aaa +aac aaa aac aaa @@ -131335,12 +131309,16 @@ aaa aaa aaa aaa +aaa +aaa +aaa +aaa +aaa aab -aab -aQA -aRj -aQA -aab +aaa +aaa +aaa +aac aaa aaa aaa @@ -131348,13 +131326,9 @@ aaa aaa aaa aaa -aab -aab -aab -aab -aab -aab -aab +aaa +aaa +aac aaa aac aac @@ -131593,10 +131567,6 @@ aaa aaa aaa aaa -aab -aQA -nab -aQA aaa aaa aaa @@ -131605,14 +131575,18 @@ aaa aaa aaa aaa -aab -aab -aab -aab -aab -aaa -aaa -aaa +xbr +aac +aac +aac +aac +xbr +aac +aac +aac +aac +xbr +aac aac aaa aaa @@ -131847,13 +131821,13 @@ aaa aaa aaa aab -aab -aab -aab aaa -aav -acv -aac +aaa +aaa +aaa +aab +aab +aab aaa aaa aaa @@ -132109,7 +132083,7 @@ aab aab aab aaa -aSp +aaa aaa aab aab diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index a3e5423753..1d47549685 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -63,6 +63,10 @@ #define CONTRACT_UPLINK_PAGE_CONTRACTS "CONTRACTS" #define CONTRACT_UPLINK_PAGE_HUB "HUB" +//Lingblood stuff +#define LINGBLOOD_DETECTION_THRESHOLD 1 +#define LINGBLOOD_EXPLOSION_MULT 2 +#define LINGBLOOD_EXPLOSION_THRESHOLD (LINGBLOOD_DETECTION_THRESHOLD * LINGBLOOD_EXPLOSION_MULT) //Hey, important to note here: the explosion threshold is explicitly more than, rather than more than or equal to. This stops a single loud ability from triggering the explosion threshold. ///Heretics -- #define IS_HERETIC(mob) (mob.mind?.has_antag_datum(/datum/antagonist/heretic)) diff --git a/code/__DEFINES/citadel_defines.dm b/code/__DEFINES/citadel_defines.dm index 0bdf27452b..923355b340 100644 --- a/code/__DEFINES/citadel_defines.dm +++ b/code/__DEFINES/citadel_defines.dm @@ -106,5 +106,11 @@ //belly sound pref things #define NORMIE_HEARCHECK 4 +//icon states for the default eyes and for a state for no eye +#define DEFAULT_EYES_TYPE "normal" +#define DEFAULT_LEFT_EYE_STATE "normal_left_eye" +#define DEFAULT_RIGHT_EYE_STATE "normal_right_eye" +#define DEFAULT_NO_EYE_STATE "no_eye" + //special species definitions #define MINIMUM_MUTANT_COLOR "#202020" //this is how dark players mutant parts and skin can be diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index 4723577fad..90864cf359 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -1186,6 +1186,8 @@ GLOBAL_DATUM_INIT(dummySave, /savefile, new("tmp/dummySave.sav")) //Cache of ico SSassets.transport.register_asset(key, I) for (var/thing2 in targets) SSassets.transport.send_assets(thing2, key) + if(sourceonly) + return SSassets.transport.get_asset_url(key) return "" diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index ae0f5201f9..44973327f0 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -287,3 +287,6 @@ GLOBAL_LIST_INIT(prosthetic_limb_types, list("xion","bishop","cybersolutions","g //body ids that have non-gendered bodyparts GLOBAL_LIST_INIT(nongendered_limb_types, list("fly", "zombie" ,"synth", "shadow", "cultgolem", "agent", "plasmaman", "clockgolem", "clothgolem")) + +//list of eye types, corresponding to a respective left and right icon state for the set of eyes +GLOBAL_LIST_INIT(eye_types, list("normal", "insect", "moth", "double", "double2", "double3", "cyclops")) diff --git a/code/controllers/subsystem/dcs.dm b/code/controllers/subsystem/dcs.dm index b42c6ed79d..b76c3529ff 100644 --- a/code/controllers/subsystem/dcs.dm +++ b/code/controllers/subsystem/dcs.dm @@ -1,6 +1,7 @@ PROCESSING_SUBSYSTEM_DEF(dcs) name = "Datum Component System" flags = SS_NO_INIT + wait = 1 SECONDS var/list/elements_by_type = list() diff --git a/code/controllers/subsystem/economy.dm b/code/controllers/subsystem/economy.dm index 078d122aa6..47b00d1125 100644 --- a/code/controllers/subsystem/economy.dm +++ b/code/controllers/subsystem/economy.dm @@ -60,9 +60,9 @@ SUBSYSTEM_DEF(economy) secmedsrv_payout() // Payout based on crew safety, health, and mood. civ_payout() // Payout based on ??? Profit car_payout() // Cargo's natural gain in the cash moneys. - for(var/A in bank_accounts) - var/datum/bank_account/B = A - B.payday(1) + for(var/account in bank_accounts) + var/datum/bank_account/bank_account = account + bank_account.payday(1) /datum/controller/subsystem/economy/proc/get_dep_account(dep_id) diff --git a/code/controllers/subsystem/events.dm b/code/controllers/subsystem/events.dm index 2e4e728191..9bc8a631c1 100644 --- a/code/controllers/subsystem/events.dm +++ b/code/controllers/subsystem/events.dm @@ -100,7 +100,7 @@ SUBSYSTEM_DEF(events) // REEEEEEEEE /client/proc/forceEvent() set name = "Trigger Event" - set category = "Fun" + set category = "Admin.Events" if(!holder ||!check_rights(R_FUN)) return diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index 7eaec101a3..a1bd718946 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -665,7 +665,7 @@ SUBSYSTEM_DEF(job) message_admins(msg) CRASH(msg) -/datum/controller/subsystem/job/proc/equip_loadout(mob/dead/new_player/N, mob/living/M, equipbackpackstuff, bypass_prereqs = FALSE) +/datum/controller/subsystem/job/proc/equip_loadout(mob/dead/new_player/N, mob/living/M, equipbackpackstuff, bypass_prereqs = FALSE, can_drop = TRUE) var/mob/the_mob = N if(!the_mob) the_mob = M // cause this doesn't get assigned if player is a latejoiner @@ -699,9 +699,15 @@ SUBSYSTEM_DEF(job) var/mob/living/carbon/C = M var/obj/item/storage/backpack/B = C.back if(!B || !SEND_SIGNAL(B, COMSIG_TRY_STORAGE_INSERT, I, null, TRUE, TRUE)) // Otherwise, try to put it in the backpack, for carbons. - I.forceMove(get_turf(C)) + if(can_drop) + I.forceMove(get_turf(C)) + else + qdel(I) else if(!M.equip_to_slot_if_possible(I, SLOT_IN_BACKPACK, disable_warning = TRUE, bypass_equip_delay_self = TRUE)) // Otherwise, try to put it in the backpack - I.forceMove(get_turf(M)) // If everything fails, just put it on the floor under the mob. + if(can_drop) + I.forceMove(get_turf(M)) // If everything fails, just put it on the floor under the mob. + else + qdel(I) /datum/controller/subsystem/job/proc/FreeRole(rank) if(!rank) diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 617004646a..2ea3b29c91 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -447,7 +447,7 @@ GLOBAL_LIST_EMPTY(the_station_areas) //Manual loading of away missions. /client/proc/admin_away() set name = "Load Away Mission / Virtual Reality" - set category = "Fun" + set category = "Admin.Events" if(!holder ||!check_rights(R_FUN)) return diff --git a/code/controllers/subsystem/statpanel.dm b/code/controllers/subsystem/statpanel.dm index cf7d4ba533..161fd92f77 100644 --- a/code/controllers/subsystem/statpanel.dm +++ b/code/controllers/subsystem/statpanel.dm @@ -27,28 +27,6 @@ SUBSYSTEM_DEF(statpanels) var/ETA = SSshuttle.emergency.getModeStr() if(ETA) global_data += "[ETA] [SSshuttle.emergency.getTimerStr()]" -/* Please fix - if(SSvote.mode) - var/static/list/supported = list(PLURALITY_VOTING, APPROVAL_VOTING) - global_data += "Vote active!, There is currently a vote running. Question: [SSvote.question]" - if(!(SSvote.vote_system in supported)) - global_data += ", The current vote system is not supported by statpanel rendering. Please vote manually by opening the vote popup using the action button or chat link." - return - global_data += "Time Left:, [round(SSvote.end_time - world.time)] seconds" - - global_data += "Choices:" - for(var/i in 1 to SSvote.choice_statclicks.len) - var/choice = SSvote.choice_statclicks[i] - var/ivotedforthis = FALSE - if(usr.ckey) - switch(SSvote.vote_system) - if(APPROVAL_VOTING) - ivotedforthis = SSvote.voted[usr.ckey] && (i in SSvote.voted[usr.ckey]) - if(PLURALITY_VOTING) - ivotedforthis = SSvote.voted[usr.ckey] == i - - global_data += (ivotedforthis? "\[X\]" : "\[ \]", SSvote.choice_statclicks[choice]) -*/ encoded_global_data = url_encode(json_encode(global_data)) src.currentrun = GLOB.clients.Copy() @@ -63,6 +41,31 @@ SUBSYSTEM_DEF(statpanels) var/ping_str = url_encode("Ping: [round(target.lastping, 1)]ms (Average: [round(target.avgping, 1)]ms)") var/other_str = url_encode(json_encode(target.mob.get_status_tab_items())) target << output("[encoded_global_data];[ping_str];[other_str]", "statbrowser:update") + if(SSvote.mode) + var/list/vote_arry = list( + list("Vote active!", "There is currently a vote running. Question: [SSvote.question]") + ) //see the MC on how this works. + if(!(SSvote.vote_system in list(PLURALITY_VOTING, APPROVAL_VOTING))) + vote_arry[++vote_arry.len] += list("STATPANEL VOTING DISABLED!", "The current vote system is not supported by statpanel rendering. Please vote manually by opening the vote popup using the action button or chat link.", "disabled") + //does not return. + else + vote_arry[++vote_arry.len] += list("Time Left:", " [round(SSvote.end_time - world.time)] seconds") + vote_arry[++vote_arry.len] += list("Choices:", "") + for(var/choice in SSvote.choice_statclicks) + var/choice_id = SSvote.choice_statclicks[choice] + var/ivotedforthis = FALSE + if(target.ckey) + switch(SSvote.vote_system) + if(APPROVAL_VOTING) + ivotedforthis = SSvote.voted[target.ckey] && (text2num(choice_id) in SSvote.voted[usr.ckey]) + if(PLURALITY_VOTING) + ivotedforthis = (SSvote.voted[target.ckey] == text2num(choice_id)) + vote_arry[++vote_arry.len] += list(ivotedforthis ? "\[X\]" : "\[ \]", choice, "[REF(SSvote)];vote=[choice_id];statpannel=1") + var/vote_str = url_encode(json_encode(vote_arry)) + target << output("[vote_str]", "statbrowser:update_voting") + else + var/null_bullet = url_encode(json_encode(list(list(null)))) + target << output("[null_bullet]", "statbrowser:update_voting") if(!target.holder) target << output("", "statbrowser:remove_admin_tabs") else diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index a93aff7d2b..06b76718c1 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -16,6 +16,7 @@ SUBSYSTEM_DEF(vote) var/question = null var/list/choices = list() /// List of choice = object for statclick objects for statpanel voting + /// statclick rework? 2: list("name"="id") var/list/choice_statclicks = list() var/list/scores = list() var/list/choice_descs = list() // optional descriptions @@ -49,34 +50,6 @@ SUBSYSTEM_DEF(vote) client_popup.open(0) next_pop = world.time+VOTE_COOLDOWN -/** - * Renders a statpanel. Directly uses statpanel/stat calls since this is called from base of mob/Stat(). - */ -/datum/controller/subsystem/vote/proc/render_statpanel(mob/M) - if(!mode) // check if vote is running - return - if(!statpanel("Status")) // don't bother if they're not focused on this panel - return - var/static/list/supported = list(PLURALITY_VOTING, APPROVAL_VOTING) - stat("Vote active!", "There is currently a vote running. Question: [question]") - if(!(vote_system in supported)) - stat("", "The current vote system is not supported by statpanel rendering. Please vote manually by opening the vote popup using the action button or chat link.") - return - stat("Time Left:", "[round(end_time - world.time)] seconds") - stat(null, null) - stat("Choices:", null) - stat(null, null) - for(var/i in 1 to choice_statclicks.len) - var/choice = choice_statclicks[i] - var/ivotedforthis = FALSE - switch(vote_system) - if(APPROVAL_VOTING) - ivotedforthis = voted[usr.ckey] && (i in voted[usr.ckey]) - if(PLURALITY_VOTING) - ivotedforthis = voted[usr.ckey] == i - stat(ivotedforthis? "\[X\]" : "\[ \]", choice_statclicks[choice]) - stat(null, null) - /datum/controller/subsystem/vote/proc/reset() initiator = null end_time = 0 @@ -87,26 +60,10 @@ SUBSYSTEM_DEF(vote) voted.Cut() voting.Cut() scores.Cut() - cleanup_statclicks() + choice_statclicks = list() display_votes = initial(display_votes) //CIT CHANGE - obfuscated votes remove_action_buttons() -/datum/controller/subsystem/vote/proc/cleanup_statclicks() - for(var/choice in choice_statclicks) - qdel(choice_statclicks[choice]) - choice_statclicks = list() - -/obj/effect/statclick/vote - name = "ERROR" - var/choice - -/obj/effect/statclick/vote/Click() - SSvote.submit_vote(choice) - -/obj/effect/statclick/vote/New(loc, choice, name) - src.choice = choice - src.name = name - /datum/controller/subsystem/vote/proc/get_result() //get the highest number of votes var/greatest_votes = 0 @@ -582,10 +539,10 @@ SUBSYSTEM_DEF(vote) to_chat(world, "\n[text]\nType vote or click here to place your votes.\nYou have [DisplayTimeText(vp)] to vote.") end_time = started_time+vp // generate statclick list - cleanup_statclicks() + choice_statclicks = list() for(var/i in 1 to choices.len) var/choice = choices[i] - choice_statclicks[choice] = new /obj/effect/statclick/vote(null, i, choice) + choice_statclicks[choice] = "[i]" // for(var/c in GLOB.clients) SEND_SOUND(c, sound('sound/misc/server-ready.ogg')) @@ -785,7 +742,8 @@ SUBSYSTEM_DEF(vote) submit_vote(round(text2num(href_list["vote"])),round(text2num(href_list["score"]))) else submit_vote(round(text2num(href_list["vote"]))) - usr.vote() + if(!href_list["statpannel"]) + usr.vote() /datum/controller/subsystem/vote/proc/remove_action_buttons() for(var/v in generated_actions) diff --git a/code/datums/explosion.dm b/code/datums/explosion.dm index 246226ceba..ca65186063 100644 --- a/code/datums/explosion.dm +++ b/code/datums/explosion.dm @@ -89,6 +89,8 @@ GLOBAL_LIST_EMPTY(explosions) if(adminlog) message_admins("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in [ADMIN_VERBOSEJMP(epicenter)]") log_game("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in [loc_name(epicenter)]") + + deadchat_broadcast("An explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) has occured at ([get_area(epicenter)])", turf_target = get_turf(epicenter)) var/x0 = epicenter.x var/y0 = epicenter.y diff --git a/code/game/machinery/announcement_system.dm b/code/game/machinery/announcement_system.dm index 1b1fa949a2..da82b0afc7 100644 --- a/code/game/machinery/announcement_system.dm +++ b/code/game/machinery/announcement_system.dm @@ -18,9 +18,10 @@ GLOBAL_LIST_EMPTY(announcement_systems) var/obj/item/radio/headset/radio var/arrival = "%PERSON has signed up as %RANK" - var/arrivalToggle = 1 + var/arrivalToggle = TRUE var/newhead = "%PERSON, %RANK, is the department head." - var/newheadToggle = 1 + var/newheadToggle = TRUE + var/cryostorage = "%PERSON, %RANK, has been moved into cryogenic storage." // this shouldnt be changed var/greenlight = "Light_Green" var/pinklight = "Light_Pink" @@ -84,6 +85,8 @@ GLOBAL_LIST_EMPTY(announcement_systems) message = CompileText(arrival, user, rank) else if(message_type == "NEWHEAD" && newheadToggle) message = CompileText(newhead, user, rank) + else if(message_type == "CRYOSTORAGE") + message = CompileText(cryostorage, user, rank) else if(message_type == "ARRIVALS_BROKEN") message = "The arrivals shuttle has been damaged. Docking for repairs..." diff --git a/code/game/objects/empulse.dm b/code/game/objects/empulse.dm index 235fbf6a9f..c467cbd4e8 100644 --- a/code/game/objects/empulse.dm +++ b/code/game/objects/empulse.dm @@ -10,6 +10,7 @@ if(log) message_admins("EMP with power [power], max distance [max_distance] in area [epicenter.loc.name] ") log_game("EMP with power [power], max distance [max_distance] in area [epicenter.loc.name] ") + deadchat_broadcast("EMP with power ([power]), max distance ([max_distance]) in [epicenter.loc.name]", turf_target = epicenter) if(power > 100) new /obj/effect/temp_visual/emp/pulse(epicenter) diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm index e7cf8defc9..e2e0779b53 100644 --- a/code/game/objects/items/kitchen.dm +++ b/code/game/objects/items/kitchen.dm @@ -165,6 +165,30 @@ throwforce = 15 bayonet = TRUE +/obj/item/kitchen/knife/combat/survival/knuckledagger + name = "survival dagger" + icon_state = "glaive-dagger" + desc = "An enhanced hunting grade survival dagger, with a bright light and a handguard that makes it better for efficient butchery." + actions_types = list(/datum/action/item_action/toggle_light) + var/light_on = FALSE + var/brightness_on = 7 + +/obj/item/kitchen/knife/combat/survival/knuckledagger/Initialize() + . = ..() + AddComponent(/datum/component/butchering, 50, 120, 5) // it's good for butchering stuff + +/obj/item/kitchen/knife/combat/survival/knuckledagger/ui_action_click(mob/user, actiontype) + light_on = !light_on + playsound(user, 'sound/weapons/empty.ogg', 100, TRUE) + update_brightness(user) + update_icon() + +/obj/item/kitchen/knife/combat/survival/knuckledagger/proc/update_brightness(mob/user = null) + if(light_on) + set_light(brightness_on) + else + set_light(0) + /obj/item/kitchen/knife/combat/bone name = "bone dagger" item_state = "bone_dagger" @@ -222,10 +246,10 @@ /* Trays moved to /obj/item/storage/bag */ /obj/item/kitchen/knife/scimitar - name = "Scimitar knife" + name = "scimitar knife" desc = "A knife used to cleanly butcher. Its razor-sharp edge has been honed for butchering, but has been poorly maintained over the years." attack_verb = list("cleaved", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") -/obj/item/kitchen/knife/scimiar/Initialize() +/obj/item/kitchen/knife/scimitar/Initialize() . = ..() AddComponent(/datum/component/butchering, 90 - force, 100, force - 60) //bonus chance increases depending on force diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 91ffae9cb1..0f338383c0 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -214,7 +214,7 @@ /obj/item/stack/tile/carpet/arcade name = "arcade carpet" icon_state = "tile-carpet-arcade" - turf_type = /turf/open/floor + turf_type = /turf/open/floor/carpet/arcade tableVariant = null /obj/item/stack/tile/carpet/blackred diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm index 1e278a9f88..d996f86df7 100644 --- a/code/game/objects/structures/holosign.dm +++ b/code/game/objects/structures/holosign.dm @@ -98,6 +98,10 @@ /obj/structure/holosign/barrier/firelock/BlockSuperconductivity() return TRUE +/obj/structure/holosign/barrier/firelock/Initialize() + . = ..() + air_update_turf(TRUE) + /obj/structure/holosign/barrier/combifan name = "holo combifan" desc = "A holographic barrier resembling a blue-accented tiny fan. Though it does not prevent solid objects from passing through, gas and temperature changes are kept out." diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 2745c2dc70..5fc105781d 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -12,7 +12,7 @@ ///////////////////////////////////////////////////////////////////////////////////////////////Panels /datum/admins/proc/show_player_panel(mob/M in GLOB.mob_list) - set category = "Admin" + set category = "Admin.Game" set name = "Show Player Panel" set desc="Edit player (respawn, ban, heal, etc)" @@ -219,7 +219,7 @@ /datum/admins/proc/access_news_network() //MARKER - set category = "Fun" + set category = "Admin.Events" set name = "Access Newscaster Network" set desc = "Allows you to view, add and edit news feeds." diff --git a/code/modules/admin/admin_investigate.dm b/code/modules/admin/admin_investigate.dm index 7e5c104d90..52be445120 100644 --- a/code/modules/admin/admin_investigate.dm +++ b/code/modules/admin/admin_investigate.dm @@ -6,7 +6,7 @@ /client/proc/investigate_show() set name = "Investigate" - set category = "Admin" + set category = "Admin.Game" if(!holder) return diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index c0a29f0854..bbb35c4650 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -349,7 +349,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) /client/proc/admin_ghost() - set category = "Admin" + set category = "Admin.Game" set name = "Aghost" if(!holder) return FALSE @@ -380,7 +380,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) /client/proc/invisimin() set name = "Invisimin" - set category = "Admin" + set category = "Admin.Game" set desc = "Toggles ghost-like invisibility (Don't abuse this)" if(holder && mob) if(mob.invisibility == INVISIBILITY_OBSERVER) @@ -392,7 +392,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) /client/proc/check_antagonists() set name = "Check Antagonists" - set category = "Admin" + set category = "Admin.Game" if(holder) holder.check_antagonists() log_admin("[key_name(usr)] checked antagonists.") //for tsar~ @@ -412,14 +412,14 @@ GLOBAL_PROTECT(admin_verbs_hideable) /client/proc/game_panel() set name = "Game Panel" - set category = "Admin" + set category = "Admin.Game" if(holder) holder.Game() SSblackbox.record_feedback("tally", "admin_verb", 1, "Game Panel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/secrets() set name = "Secrets" - set category = "Admin" + set category = "Admin.Game" if (holder) holder.Secrets() SSblackbox.record_feedback("tally", "admin_verb", 1, "Secrets Panel") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -473,7 +473,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) SSblackbox.record_feedback("tally", "admin_verb", 1, "Stealth Mode") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/drop_bomb() - set category = "Special Verbs" + set category = "Admin.Fun" set name = "Drop Bomb" set desc = "Cause an explosion of varying strength at your location." @@ -515,7 +515,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) SSblackbox.record_feedback("tally", "admin_verb", 1, "Drop Bomb") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/drop_dynex_bomb() - set category = "Special Verbs" + set category = "Admin.Fun" set name = "Drop DynEx Bomb" set desc = "Cause an explosion of varying strength at your location." @@ -562,7 +562,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) message_admins("[key_name_admin(usr)] has modified Dynamic Explosion Scale: [ex_scale]") /client/proc/give_spell(mob/T in GLOB.mob_list) - set category = "Fun" + set category = "Admin.Fun" set name = "Give Spell" set desc = "Gives a spell to a mob." @@ -586,7 +586,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) message_admins("Spells given to mindless mobs will not be transferred in mindswap or cloning!") /client/proc/remove_spell(mob/T in GLOB.mob_list) - set category = "Fun" + set category = "Admin.Fun" set name = "Remove Spell" set desc = "Remove a spell from the selected mob." @@ -599,7 +599,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) SSblackbox.record_feedback("tally", "admin_verb", 1, "Remove Spell") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/give_disease(mob/living/T in GLOB.mob_living_list) - set category = "Fun" + set category = "Admin.Fun" set name = "Give Disease" set desc = "Gives a Disease to a mob." if(!istype(T)) @@ -614,7 +614,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) message_admins("[key_name_admin(usr)] gave [key_name(T)] the disease [D].") /client/proc/object_say(obj/O in world) - set category = "Special Verbs" + set category = "Admin.Events" set name = "OSay" set desc = "Makes an object say something." var/message = input(usr, "What do you want the message to be?", "Make Sound") as text | null @@ -626,7 +626,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) SSblackbox.record_feedback("tally", "admin_verb", 1, "Object Say") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/togglebuildmodeself() set name = "Toggle Build Mode Self" - set category = "Special Verbs" + set category = "Admin.Events" if (!(holder.rank.rights & R_BUILDMODE)) return if(src.mob) @@ -635,7 +635,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) /client/proc/check_ai_laws() set name = "Check AI Laws" - set category = "Admin" + set category = "Admin.Game" if(holder) src.holder.output_ai_laws() @@ -718,7 +718,7 @@ GLOBAL_PROTECT(admin_verbs_hideable) /client/proc/toggle_AI_interact() set name = "Toggle Admin AI Interact" - set category = "Admin" + set category = "Admin.Game" set desc = "Allows you to interact with most machines as an AI would as a ghost" AI_Interact = !AI_Interact diff --git a/code/modules/admin/adminmenu.dm b/code/modules/admin/adminmenu.dm index 64ce5987cf..b7d85ccff5 100644 --- a/code/modules/admin/adminmenu.dm +++ b/code/modules/admin/adminmenu.dm @@ -5,7 +5,7 @@ /datum/verbs/menu/Admin/verb/playerpanel() set name = "Player Panel" set desc = "Player Panel" - set category = "Admin" + set category = "Admin.Game" if(usr.client.holder) usr.client.holder.player_panel_new() SSblackbox.record_feedback("tally", "admin_verb", 1, "Player Panel New") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/admin/verbs/adminjump.dm b/code/modules/admin/verbs/adminjump.dm index 257c1d275a..ef56b4cd2a 100644 --- a/code/modules/admin/verbs/adminjump.dm +++ b/code/modules/admin/verbs/adminjump.dm @@ -1,7 +1,7 @@ /client/proc/jumptoarea(area/A in GLOB.sortedAreas) set name = "Jump to Area" set desc = "Area to jump to" - set category = "Admin" + set category = "Admin.Game" if(!src.holder) to_chat(src, "Only administrators may use this command.", confidential = TRUE) return @@ -28,7 +28,7 @@ /client/proc/jumptoturf(turf/T in world) set name = "Jump to Turf" - set category = "Admin" + set category = "Admin.Game" if(!src.holder) to_chat(src, "Only administrators may use this command.", confidential = TRUE) return @@ -40,7 +40,7 @@ return /client/proc/jumptomob(mob/M in GLOB.mob_list) - set category = "Admin" + set category = "Admin.Game" set name = "Jump to Mob" if(!src.holder) @@ -59,7 +59,7 @@ to_chat(A, "This mob is not located in the game world.", confidential = TRUE) /client/proc/jumptocoord(tx as num, ty as num, tz as num) - set category = "Admin" + set category = "Admin.Game" set name = "Jump to Coordinate" if (!holder) @@ -74,7 +74,7 @@ message_admins("[key_name_admin(usr)] jumped to coordinates [tx], [ty], [tz]") /client/proc/jumptokey() - set category = "Admin" + set category = "Admin.Game" set name = "Jump to Key" if(!src.holder) @@ -97,7 +97,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Jump To Key") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/Getmob(mob/M in GLOB.mob_list - GLOB.dummy_mob_list) - set category = "Admin" + set category = "Admin.Game" set name = "Get Mob" set desc = "Mob to teleport" if(!src.holder) @@ -113,7 +113,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Get Mob") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/Getkey() - set category = "Admin" + set category = "Admin.Game" set name = "Get Key" set desc = "Key to teleport" @@ -141,7 +141,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Get Key") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/sendmob(mob/M in sortmobs()) - set category = "Admin" + set category = "Admin.Game" set name = "Send Mob" if(!src.holder) to_chat(src, "Only administrators may use this command.", confidential = TRUE) diff --git a/code/modules/admin/verbs/borgpanel.dm b/code/modules/admin/verbs/borgpanel.dm index be22c889f0..4b60ecc0ff 100644 --- a/code/modules/admin/verbs/borgpanel.dm +++ b/code/modules/admin/verbs/borgpanel.dm @@ -1,5 +1,5 @@ /datum/admins/proc/open_borgopanel(borgo in GLOB.silicon_mobs) - set category = "Admin" + set category = "Admin.Game" set name = "Show Borg Panel" set desc = "Show borg panel" diff --git a/code/modules/admin/verbs/cinematic.dm b/code/modules/admin/verbs/cinematic.dm index 9b27a8d8e9..123e9877f7 100644 --- a/code/modules/admin/verbs/cinematic.dm +++ b/code/modules/admin/verbs/cinematic.dm @@ -1,6 +1,6 @@ /client/proc/cinematic() set name = "cinematic" - set category = "Fun" + set category = "Admin.Fun" set desc = "Shows a cinematic." // Intended for testing but I thought it might be nice for events on the rare occasion Feel free to comment it out if it's not wanted. set hidden = 1 if(!SSticker) diff --git a/code/modules/admin/verbs/deadsay.dm b/code/modules/admin/verbs/deadsay.dm index 66acc0f667..e3937e19b6 100644 --- a/code/modules/admin/verbs/deadsay.dm +++ b/code/modules/admin/verbs/deadsay.dm @@ -1,5 +1,5 @@ /client/proc/dsay(msg as text) - set category = "Special Verbs" + set category = "Admin.Game" set name = "Dsay" set hidden = 1 if(!holder) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 5bb8c4ff15..f73ecf10d4 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -27,7 +27,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Air Status In Location") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_robotize(mob/M in GLOB.mob_list) - set category = "Fun" + set category = "Admin.Fun" set name = "Make Robot" if(!SSticker.HasRoundStarted()) @@ -43,7 +43,7 @@ alert("Invalid mob") /client/proc/cmd_admin_blobize(mob/M in GLOB.mob_list) - set category = "Fun" + set category = "Admin.Fun" set name = "Make Blob" if(!SSticker.HasRoundStarted()) @@ -58,7 +58,7 @@ /client/proc/cmd_admin_animalize(mob/M in GLOB.mob_list) - set category = "Fun" + set category = "Admin.Fun" set name = "Make Simple Animal" if(!SSticker.HasRoundStarted()) @@ -79,7 +79,7 @@ /client/proc/makepAI(turf/T in GLOB.mob_list) - set category = "Fun" + set category = "Admin.Fun" set name = "Make pAI" set desc = "Specify a location to spawn a pAI device, then specify a key to play that pAI" @@ -106,7 +106,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Make pAI") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_alienize(mob/M in GLOB.mob_list) - set category = "Fun" + set category = "Admin.Fun" set name = "Make Alien" if(!SSticker.HasRoundStarted()) @@ -121,7 +121,7 @@ alert("Invalid mob") /client/proc/cmd_admin_slimeize(mob/M in GLOB.mob_list) - set category = "Fun" + set category = "Admin.Fun" set name = "Make slime" if(!SSticker.HasRoundStarted()) @@ -211,7 +211,7 @@ message_admins("[key_name_admin(usr)] has granted [M.key] full access.") /client/proc/cmd_assume_direct_control(mob/M in GLOB.mob_list) - set category = "Admin" + set category = "Admin.Game" set name = "Assume direct control" set desc = "Direct intervention" @@ -229,6 +229,33 @@ qdel(adminmob) SSblackbox.record_feedback("tally", "admin_verb", 1, "Assume Direct Control") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! +/client/proc/cmd_give_direct_control(mob/M in GLOB.mob_list) + set category = "Admin.Game" + set name = "Give direct control" + + if(!M) + return + if(M.ckey) + if(alert("This mob is being controlled by [M.key]. Are you sure you wish to give someone else control of it? [M.key] will be made a ghost.",,"Yes","No") != "Yes") + return + var/client/newkey = input(src, "Pick the player to put in control.", "New player") as null|anything in sortList(GLOB.clients) + var/mob/oldmob = newkey.mob + var/delmob = FALSE + if((isobserver(oldmob) || alert("Do you want to delete [newkey]'s old mob?","Delete?","Yes","No") != "No")) + delmob = TRUE + if(!M || QDELETED(M)) + to_chat(usr, "The target mob no longer exists, aborting.") + return + if(M.ckey) + M.ghostize(FALSE) + M.ckey = newkey.key + M.client?.init_verbs() + if(delmob) + qdel(oldmob) + message_admins("[key_name_admin(usr)] gave away direct control of [M] to [newkey].") + log_admin("[key_name(usr)] gave away direct control of [M] to [newkey].") + SSblackbox.record_feedback("tally", "admin_verb", 1, "Give Direct Control") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + /client/proc/cmd_admin_test_atmos_controllers() set category = "Mapping" set name = "Test Atmos Monitoring Consoles" @@ -455,7 +482,7 @@ cmd_admin_areatest(FALSE) /client/proc/cmd_admin_dress(mob/M in GLOB.mob_list) - set category = "Fun" + set category = "Admin.Events" set name = "Select equipment" if(!(ishuman(M) || isobserver(M))) alert("Invalid mob") diff --git a/code/modules/admin/verbs/dice.dm b/code/modules/admin/verbs/dice.dm index 5b0a15257e..f033351f96 100644 --- a/code/modules/admin/verbs/dice.dm +++ b/code/modules/admin/verbs/dice.dm @@ -1,5 +1,5 @@ /client/proc/roll_dices() - set category = "Fun" + set category = "Admin.Fun" set name = "Roll Dice" if(!check_rights(R_FUN)) return diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 7675f858ee..2379ee22bc 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -1,7 +1,7 @@ /client/proc/one_click_antag() set name = "Create Antagonist" set desc = "Auto-create an antagonist of your choice" - set category = "Admin" + set category = "Admin.Events" if(holder) holder.one_click_antag() diff --git a/code/modules/admin/verbs/playsound.dm b/code/modules/admin/verbs/playsound.dm index fc2ba55f54..6e188a6c7a 100644 --- a/code/modules/admin/verbs/playsound.dm +++ b/code/modules/admin/verbs/playsound.dm @@ -1,5 +1,5 @@ /client/proc/play_sound(S as sound) - set category = "Fun" + set category = "Admin.Fun" set name = "Play Global Sound" if(!check_rights(R_SOUNDS)) return @@ -42,7 +42,7 @@ /client/proc/play_local_sound(S as sound) - set category = "Fun" + set category = "Admin.Fun" set name = "Play Local Sound" if(!check_rights(R_SOUNDS)) return @@ -53,7 +53,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Play Local Sound") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/play_web_sound() - set category = "Fun" + set category = "Admin.Fun" set name = "Play Internet Sound" if(!check_rights(R_SOUNDS)) return @@ -136,7 +136,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Play Internet Sound") /client/proc/manual_play_web_sound() - set category = "Fun" + set category = "Admin.Fun" set name = "Manual Play Internet Sound" if(!check_rights(R_SOUNDS)) return @@ -182,7 +182,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Manual Play Internet Sound") /client/proc/set_round_end_sound(S as sound) - set category = "Fun" + set category = "Admin.Fun" set name = "Set Round End Sound" if(!check_rights(R_SOUNDS)) return diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index bd12070981..2b8e963f4e 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -20,7 +20,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Drop Everything") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_subtle_message(mob/M in GLOB.mob_list) - set category = "Special Verbs" + set category = "Admin.Events" set name = "Subtle Message" if(!ismob(M)) @@ -46,7 +46,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Subtle Message") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_headset_message(mob/M in GLOB.mob_list) - set category = "Special Verbs" + set category = "Admin.Events" set name = "Headset Message" admin_headset_message(M) @@ -128,7 +128,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Modify Antagonist Reputation") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_world_narrate() - set category = "Special Verbs" + set category = "Admin.Events" set name = "Global Narrate" if(!check_rights(R_ADMIN)) @@ -144,7 +144,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Global Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_direct_narrate(mob/M) - set category = "Special Verbs" + set category = "Admin.Events" set name = "Direct Narrate" if(!check_rights(R_ADMIN)) @@ -169,7 +169,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Direct Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_local_narrate(atom/A) - set category = "Special Verbs" + set category = "Admin.Events" set name = "Local Narrate" if(!check_rights(R_ADMIN)) @@ -190,7 +190,7 @@ SSblackbox.record_feedback("tally", "admin_verb", 1, "Local Narrate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_godmode(mob/M in GLOB.mob_list) - set category = "Special Verbs" + set category = "Admin.Game" set name = "Godmode" if(!check_rights(R_ADMIN)) return @@ -335,7 +335,7 @@ Works kind of like entering the game with a new character. Character receives a Traitors and the like can also be revived with the previous role mostly intact. /N */ /client/proc/respawn_character() - set category = "Special Verbs" + set category = "Admin.Game" set name = "Respawn Character" set desc = "Respawn a person that has been gibbed/dusted/killed. They must be a ghost for this to work and preferably should not have a body to go back into." if(!check_rights(R_ADMIN)) @@ -503,7 +503,7 @@ Traitors and the like can also be revived with the previous role mostly intact. return new_character /client/proc/cmd_admin_add_freeform_ai_law() - set category = "Fun" + set category = "Admin.Events" set name = "Add Custom AI law" if(!check_rights(R_ADMIN)) @@ -546,7 +546,7 @@ Traitors and the like can also be revived with the previous role mostly intact. SSblackbox.record_feedback("tally", "admin_verb", 1, "Rejuvinate") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_create_centcom_report() - set category = "Special Verbs" + set category = "Admin.Events" set name = "Create Command Report" if(!check_rights(R_ADMIN)) @@ -572,7 +572,7 @@ Traitors and the like can also be revived with the previous role mostly intact. SSblackbox.record_feedback("tally", "admin_verb", 1, "Create Command Report") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_change_command_name() - set category = "Special Verbs" + set category = "Admin.Events" set name = "Change Command Name" if(!check_rights(R_ADMIN)) @@ -595,7 +595,7 @@ Traitors and the like can also be revived with the previous role mostly intact. admin_delete(A) /client/proc/cmd_admin_list_open_jobs() - set category = "Admin" + set category = "Admin.Game" set name = "Manage Job Slots" if(!check_rights(R_ADMIN)) @@ -604,7 +604,7 @@ Traitors and the like can also be revived with the previous role mostly intact. SSblackbox.record_feedback("tally", "admin_verb", 1, "Manage Job Slots") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_explosion(atom/O as obj|mob|turf in world) - set category = "Special Verbs" + set category = "Admin.Fun" set name = "Explosion" if(!check_rights(R_ADMIN)) @@ -640,7 +640,7 @@ Traitors and the like can also be revived with the previous role mostly intact. return /client/proc/cmd_admin_emp(atom/O as obj|mob|turf in world) - set category = "Special Verbs" + set category = "Admin.Fun" set name = "EM Pulse" if(!check_rights(R_ADMIN)) @@ -656,7 +656,7 @@ Traitors and the like can also be revived with the previous role mostly intact. SSblackbox.record_feedback("tally", "admin_verb", 1, "EM Pulse") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_gib(mob/M in GLOB.mob_list) - set category = "Special Verbs" + set category = "Admin.Fun" set name = "Gib" if(!check_rights(R_ADMIN)) @@ -683,7 +683,7 @@ Traitors and the like can also be revived with the previous role mostly intact. /client/proc/cmd_admin_gib_self() set name = "Gibself" - set category = "Fun" + set category = "Admin.Fun" var/confirm = alert(src, "You sure?", "Confirm", "Yes", "No") if(confirm == "Yes") @@ -702,7 +702,7 @@ Traitors and the like can also be revived with the previous role mostly intact. SSblackbox.record_feedback("tally", "admin_verb", 1, "Check Contents") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/toggle_view_range() - set category = "Special Verbs" + set category = "Admin.Game" set name = "Change View Range" set desc = "switches between 1x and custom views" @@ -717,8 +717,7 @@ Traitors and the like can also be revived with the previous role mostly intact. SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Change View Range", "[view]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/admin_call_shuttle() - - set category = "Admin" + set category = "Admin.Events" set name = "Call Shuttle" if(EMERGENCY_AT_LEAST_DOCKED) @@ -738,7 +737,7 @@ Traitors and the like can also be revived with the previous role mostly intact. return /client/proc/admin_cancel_shuttle() - set category = "Admin" + set category = "Admin.Events" set name = "Cancel Shuttle" if(!check_rights(0)) return @@ -754,9 +753,51 @@ Traitors and the like can also be revived with the previous role mostly intact. message_admins("[key_name_admin(usr)] admin-recalled the emergency shuttle.") return +/* +/client/proc/admin_disable_shuttle() + set category = "Admin.Events" + set name = "Disable Shuttle" + if(!check_rights(R_ADMIN)) + return + if(SSshuttle.emergency.mode == SHUTTLE_DISABLED) + to_chat(usr, "Error, shuttle is already disabled.") + return + if(alert(src, "You sure?", "Confirm", "Yes", "No") != "Yes") + return + message_admins("[key_name_admin(usr)] disabled the shuttle.") + SSshuttle.lastMode = SSshuttle.emergency.mode + SSshuttle.lastCallTime = SSshuttle.emergency.timeLeft(1) + SSshuttle.adminEmergencyNoRecall = TRUE + SSshuttle.emergency.setTimer(0) + SSshuttle.emergency.mode = SHUTTLE_DISABLED + priority_announce("Warning: Emergency Shuttle uplink failure, shuttle disabled until further notice.", "Emergency Shuttle Uplink Alert", 'sound/misc/announce_dig.ogg') + +/client/proc/admin_enable_shuttle() + set category = "Admin - Events" + set category = "Admin.Events" + set name = "Enable Shuttle" + + if(!check_rights(R_ADMIN)) + return + if(SSshuttle.emergency.mode != SHUTTLE_DISABLED) + to_chat(usr, "Error, shuttle not disabled.") + return + if(alert(src, "You sure?", "Confirm", "Yes", "No") != "Yes") + return + message_admins("[key_name_admin(usr)] enabled the emergency shuttle.") + SSshuttle.adminEmergencyNoRecall = FALSE + SSshuttle.emergencyNoRecall = FALSE + if(SSshuttle.lastMode == SHUTTLE_DISABLED) //If everything goes to shit, fix it. + SSshuttle.lastMode = SHUTTLE_IDLE + SSshuttle.emergency.mode = SSshuttle.lastMode + if(SSshuttle.lastCallTime < 10 SECONDS && SSshuttle.lastMode != SHUTTLE_IDLE) + SSshuttle.lastCallTime = 10 SECONDS //Make sure no insta departures. + SSshuttle.emergency.setTimer(SSshuttle.lastCallTime) + priority_announce("Warning: Emergency Shuttle uplink reestablished, shuttle enabled.", "Emergency Shuttle Uplink Alert", 'sound/misc/announce_dig.ogg') +*/ /client/proc/everyone_random() - set category = "Fun" + set category = "Admin.Fun" set name = "Make Everyone Random" set desc = "Make everyone have a random appearance. You can only use this before rounds!" @@ -817,7 +858,7 @@ Traitors and the like can also be revived with the previous role mostly intact. SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle nuke disk stationary admin logging", "[current_state ? "Enabled" : "Disabled"]")) /client/proc/admin_change_sec_level() - set category = "Special Verbs" + set category = "Admin.Events" set name = "Set Security Level" set desc = "Changes the security level. Announcement only, i.e. setting to Delta won't activate nuke" @@ -834,7 +875,7 @@ Traitors and the like can also be revived with the previous role mostly intact. /client/proc/toggle_nuke(obj/machinery/nuclearbomb/N in GLOB.nuke_list) set name = "Toggle Nuke" - set category = "Fun" + set category = "Admin.Events" set popup_menu = 0 if(!check_rights(R_DEBUG)) return @@ -1029,7 +1070,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits usr << browse(dat, "window=dressup;size=550x600") /client/proc/toggle_combo_hud() - set category = "Admin" + set category = "Admin.Game" set name = "Toggle Combo HUD" set desc = "Toggles the Admin Combo HUD (antag, sci, med, eng)" @@ -1064,7 +1105,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits /client/proc/run_weather() - set category = "Fun" + set category = "Admin.Events" set name = "Run Weather" set desc = "Triggers a weather on the z-level you choose." @@ -1088,7 +1129,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits SSblackbox.record_feedback("tally", "admin_verb", 1, "Run Weather") /client/proc/mass_zombie_infection() - set category = "Fun" + set category = "Admin.Fun" set name = "Mass Zombie Infection" set desc = "Infects all humans with a latent organ that will zombify \ them on death." @@ -1108,7 +1149,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits SSblackbox.record_feedback("tally", "admin_verb", 1, "Mass Zombie Infection") /client/proc/mass_zombie_cure() - set category = "Fun" + set category = "Admin.Fun" set name = "Mass Zombie Cure" set desc = "Removes the zombie infection from all humans, returning them to normal." if(!check_rights(R_ADMIN)) @@ -1126,7 +1167,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits SSblackbox.record_feedback("tally", "admin_verb", 1, "Mass Zombie Cure") /client/proc/polymorph_all() - set category = "Fun" + set category = "Admin.Fun" set name = "Polymorph All" set desc = "Applies the effects of the bolt of change to every single mob." @@ -1216,7 +1257,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggled Hub Visibility", "[GLOB.hub_visibility ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /client/proc/cmd_admin_toggle_fov() - set category = "Fun" + set category = "Admin.Fun" set name = "Enable/Disable Field of Vision" var/static/busy_toggling_fov = FALSE @@ -1269,7 +1310,7 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits /client/proc/smite(mob/living/carbon/human/target as mob) set name = "Smite" - set category = "Fun" + set category = "Admin.Fun" if(!check_rights(R_ADMIN) || !check_rights(R_FUN)) return diff --git a/code/modules/admin/verbs/shuttlepanel.dm b/code/modules/admin/verbs/shuttlepanel.dm index a80eafae02..7552936136 100644 --- a/code/modules/admin/verbs/shuttlepanel.dm +++ b/code/modules/admin/verbs/shuttlepanel.dm @@ -1,5 +1,5 @@ /datum/admins/proc/open_shuttlepanel() - set category = "Admin" + set category = "Admin.Events" set name = "Shuttle Manipulator" set desc = "Opens the shuttle manipulator UI." diff --git a/code/modules/admin/verbs/tripAI.dm b/code/modules/admin/verbs/tripAI.dm index 7742d6ea66..fc4270dd1b 100644 --- a/code/modules/admin/verbs/tripAI.dm +++ b/code/modules/admin/verbs/tripAI.dm @@ -1,5 +1,5 @@ /client/proc/triple_ai() - set category = "Fun" + set category = "Admin.Events" set name = "Create AI Triumvirate" if(SSticker.current_state > GAME_STATE_PREGAME) diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm index 242538a1e5..8f4e7ef3d6 100644 --- a/code/modules/antagonists/changeling/changeling.dm +++ b/code/modules/antagonists/changeling/changeling.dm @@ -38,8 +38,9 @@ var/mimicing = "" var/canrespec = 0 var/changeling_speak = 0 - var/loudfactor = 0 //Used for blood tests. At 4, blood tests will succeed. At 10, blood tests will result in an explosion. - var/bloodtestwarnings = 0 //Used to track if the ling has been notified that they will pass blood tests. + var/loudfactor = 0 //Used for blood tests. This is is the average loudness of the ling's abilities calculated with the below two vars + var/loudtotal = 0 //Used to keep track of the sum of the ling's loudness + var/totalpurchases = 0 //Used to keep track of how many purchases the ling's made after free abilities have been added var/datum/dna/chosen_dna var/obj/effect/proc_holder/changeling/sting/chosen_sting var/datum/cellular_emporium/cellular_emporium @@ -139,8 +140,6 @@ /datum/antagonist/changeling/proc/reset_powers() if(purchasedpowers) remove_changeling_powers() - loudfactor = 0 - bloodtestwarnings = 0 //Repurchase free powers. for(var/path in all_powers) var/obj/effect/proc_holder/changeling/S = new path() @@ -148,6 +147,9 @@ if(!has_sting(S)) purchasedpowers += S S.on_purchase(owner.current,TRUE) + loudfactor = 0 + loudtotal = 0 + totalpurchases = 0 /datum/antagonist/changeling/proc/has_sting(obj/effect/proc_holder/changeling/power) for(var/obj/effect/proc_holder/changeling/P in purchasedpowers) @@ -192,13 +194,18 @@ geneticpoints -= thepower.dna_cost purchasedpowers += thepower thepower.on_purchase(owner.current) - loudfactor += thepower.loudness - if(loudfactor >= 4 && !bloodtestwarnings) - to_chat(owner.current, "Our blood is growing flammable. Our blood will react violently to heat.") - bloodtestwarnings = 1 - if(loudfactor >= 10 && bloodtestwarnings < 2) - to_chat(owner.current, "Our blood has grown extremely flammable. Our blood will react explosively to heat.") - bloodtestwarnings = 2 + loudtotal += thepower.loudness + totalpurchases++ + var/oldloudness = loudfactor + loudfactor = loudtotal/max(totalpurchases,1) + if(loudfactor >= LINGBLOOD_DETECTION_THRESHOLD && oldloudness < LINGBLOOD_DETECTION_THRESHOLD) + to_chat(owner.current, "Our blood has grown flammable. Our blood will now react violently to heat.") + else if(loudfactor < LINGBLOOD_DETECTION_THRESHOLD && oldloudness >= LINGBLOOD_DETECTION_THRESHOLD) + to_chat(owner.current, "Our blood has stabilized, and will no longer react violently to heat.") + if(loudfactor > LINGBLOOD_EXPLOSION_THRESHOLD && oldloudness <= LINGBLOOD_EXPLOSION_THRESHOLD) + to_chat(owner.current, "Our blood has grown extremely flammable. Our blood will now react explosively to heat.") + else if(loudfactor <= LINGBLOOD_EXPLOSION_THRESHOLD && oldloudness > LINGBLOOD_EXPLOSION_THRESHOLD) + to_chat(owner.current, "Our blood has slightly stabilized, and will no longer explode when exposed to heat.") /datum/antagonist/changeling/proc/readapt() if(!ishuman(owner.current)) diff --git a/code/modules/cargo/centcom_podlauncher.dm b/code/modules/cargo/centcom_podlauncher.dm index b7eac1e591..354df5f592 100644 --- a/code/modules/cargo/centcom_podlauncher.dm +++ b/code/modules/cargo/centcom_podlauncher.dm @@ -12,7 +12,7 @@ /client/proc/centcom_podlauncher() //Creates a verb for admins to open up the ui set name = "Config/Launch Supplypod" set desc = "Configure and launch a CentCom supplypod full of whatever your heart desires!" - set category = "Admin" + set category = "Admin.Events" var/datum/centcom_podlauncher/plaunch = new(usr)//create the datum plaunch.ui_interact(usr)//datum has a tgui component, here we open the window diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index acff128f2b..e537b82835 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -112,6 +112,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/use_custom_skin_tone = FALSE var/left_eye_color = "000000" //Eye color var/right_eye_color = "000000" + var/eye_type = DEFAULT_EYES_TYPE //Eye type var/split_eye_colors = FALSE var/datum/species/pref_species = new /datum/species/human() //Mutant race var/list/features = list("mcolor" = "FFFFFF", @@ -301,7 +302,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) /datum/preferences/proc/ShowChoices(mob/user) if(!user || !user.client) return - update_preview_icon(current_tab != 2) + update_preview_icon(current_tab) var/list/dat = list("
") dat += "Character Settings" @@ -506,21 +507,28 @@ GLOBAL_LIST_EMPTY(preferences_datums) if (CONFIG_GET(number/body_size_min) != CONFIG_GET(number/body_size_max)) dat += "Sprite Size: [features["body_size"]*100]%
" - if((EYECOLOR in pref_species.species_traits) && !(NOEYES in pref_species.species_traits)) - if(!use_skintones && !mutant_colors) - dat += APPEARANCE_CATEGORY_COLUMN - if(left_eye_color != right_eye_color) - split_eye_colors = TRUE - dat += "

Heterochromia

" - dat += "[split_eye_colors ? "Enabled" : "Disabled"]" - if(!split_eye_colors) - dat += "

Eye Color

" - dat += "    Change" - else - dat += "

Left Eye Color

" - dat += "    Change" - dat += "

Right Eye Color

" - dat += "    Change
" + if(!(NOEYES in pref_species.species_traits)) + dat += "

Eye Type

" + dat += "[eye_type]
" + if((EYECOLOR in pref_species.species_traits)) + if(!use_skintones && !mutant_colors) + dat += APPEARANCE_CATEGORY_COLUMN + if(left_eye_color != right_eye_color) + split_eye_colors = TRUE + dat += "

Heterochromia

" + dat += "[split_eye_colors ? "Enabled" : "Disabled"]" + if(!split_eye_colors) + dat += "

Eye Color

" + dat += "    Change" + dat += "" + else + dat += "

Left Eye Color

" + dat += "    Change" + dat += "

Right Eye Color

" + dat += "    Change
" + dat += "" + else if(use_skintones || mutant_colors) + dat += "" dat += "

Speech preferences

" dat += "Custom Speech Verb:
" @@ -1708,6 +1716,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(new_eyes) right_eye_color = sanitize_hexcolor(new_eyes, 6) + if("eye_type") + var/new_eye_type = input(user, "Choose your character's eye type.", "Character Preference") as null|anything in GLOB.eye_types + if(new_eye_type) + eye_type = new_eye_type + if("toggle_split_eyes") split_eye_colors = !split_eye_colors right_eye_color = left_eye_color @@ -1741,6 +1754,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(features["mcolor3"] == "#000000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#202020")[3])) features["mcolor3"] = pref_species.default_color + //switch to the type of eyes the species uses + eye_type = pref_species.eye_type + if("custom_species") var/new_species = reject_bad_name(input(user, "Choose your species subtype, if unique. This will show up on examinations and health scans. Do not abuse this:", "Character Preference", custom_species) as null|text) if(new_species) @@ -2813,6 +2829,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.dna.features = features.Copy() character.set_species(chosen_species, icon_update = FALSE, pref_load = TRUE) + character.dna.species.eye_type = eye_type if(chosen_limb_id && (chosen_limb_id in character.dna.species.allowed_limb_ids)) character.dna.species.mutant_bodyparts["limbs_id"] = chosen_limb_id character.dna.real_name = character.real_name diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 54d1d62037..11eaaaecb0 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -5,7 +5,7 @@ // You do not need to raise this if you are adding new values that have sane defaults. // Only raise this value when changing the meaning/format/name/layout of an existing value // where you would want the updater procs below to run -#define SAVEFILE_VERSION_MAX 36 +#define SAVEFILE_VERSION_MAX 37 /* SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn @@ -204,10 +204,19 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car if(S["species"] == "lizard") features["mam_snouts"] = features["snout"] - if(current_version < 36) + if(current_version < 36) //introduction of heterochromia left_eye_color = S["eye_color"] right_eye_color = S["eye_color"] + if(current_version < 37) //introduction of chooseable eye types/sprites + if(S["species"] == "insect") + left_eye_color = "#000000" + right_eye_color = "#000000" + if(chosen_limb_id == "moth" || chosen_limb_id == "moth_not_greyscale") //these actually have slightly different eyes! + eye_type = "moth" + else + eye_type = "insect" + /datum/preferences/proc/load_path(ckey,filename="preferences.sav") if(!ckey) return @@ -520,6 +529,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["age"] >> age S["hair_color"] >> hair_color S["facial_hair_color"] >> facial_hair_color + S["eye_type"] >> eye_type S["left_eye_color"] >> left_eye_color S["right_eye_color"] >> right_eye_color S["use_custom_skin_tone"] >> use_custom_skin_tone @@ -710,6 +720,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car age = sanitize_integer(age, AGE_MIN, AGE_MAX, initial(age)) hair_color = sanitize_hexcolor(hair_color, 6, FALSE) facial_hair_color = sanitize_hexcolor(facial_hair_color, 6, FALSE) + eye_type = sanitize_inlist(eye_type, GLOB.eye_types, DEFAULT_EYES_TYPE) left_eye_color = sanitize_hexcolor(left_eye_color, 6, FALSE) right_eye_color = sanitize_hexcolor(right_eye_color, 6, FALSE) @@ -840,6 +851,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["age"] , age) WRITE_FILE(S["hair_color"] , hair_color) WRITE_FILE(S["facial_hair_color"] , facial_hair_color) + WRITE_FILE(S["eye_type"] , eye_type) WRITE_FILE(S["left_eye_color"] , left_eye_color) WRITE_FILE(S["right_eye_color"] , right_eye_color) WRITE_FILE(S["use_custom_skin_tone"] , use_custom_skin_tone) diff --git a/code/modules/client/preferences_toggles.dm b/code/modules/client/preferences_toggles.dm index c8ac4826ea..fde9a3e8d5 100644 --- a/code/modules/client/preferences_toggles.dm +++ b/code/modules/client/preferences_toggles.dm @@ -385,7 +385,7 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS //Admin Preferences /client/proc/toggleadminhelpsound() set name = "Hear/Silence Adminhelps" - set category = "Preferences" + set category = "Preferences.Admin" set desc = "Toggle hearing a notification when admin PMs are received" if(!holder) return @@ -396,7 +396,7 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS /client/proc/toggleannouncelogin() set name = "Do/Don't Announce Login" - set category = "Preferences" + set category = "Preferences.Admin" set desc = "Toggle if you want an announcement to admins when you login during a round" if(!holder) return @@ -407,7 +407,7 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS /client/proc/toggle_hear_radio() set name = "Show/Hide Radio Chatter" - set category = "Preferences" + set category = "Preferences.Admin" set desc = "Toggle seeing radiochatter from nearby radios and speakers" if(!holder) return @@ -418,7 +418,7 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS /client/proc/deadchat() set name = "Show/Hide Deadchat" - set category = "Preferences" + set category = "Preferences.Admin" set desc ="Toggles seeing deadchat" prefs.chat_toggles ^= CHAT_DEAD prefs.save_preferences() @@ -427,7 +427,7 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS /client/proc/toggleprayers() set name = "Show/Hide Prayers" - set category = "Preferences" + set category = "Preferences.Admin" set desc = "Toggles seeing prayers" prefs.chat_toggles ^= CHAT_PRAYER prefs.save_preferences() diff --git a/code/modules/client/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm index dd1ebd74f9..5a8325fd64 100644 --- a/code/modules/client/verbs/ooc.dm +++ b/code/modules/client/verbs/ooc.dm @@ -111,16 +111,16 @@ GLOBAL_VAR_INIT(normal_ooc_colour, "#002eb8") /client/proc/set_ooc(newColor as color) set name = "Set Player OOC Color" set desc = "Modifies player OOC Color" - set category = "Fun" + set category = "Admin.Fun" GLOB.OOC_COLOR = sanitize_ooccolor(newColor) /client/proc/reset_ooc() set name = "Reset Player OOC Color" set desc = "Returns player OOC Color to default" - set category = "Fun" + set category = "Admin.Fun" GLOB.OOC_COLOR = null -/client/verb/colorooc() +/client/verb/colorooc() //this is admin and people who bought byond. set name = "Set Your OOC Color" set category = "Preferences" diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 3774ce575f..e19a0538fc 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -190,7 +190,7 @@ /obj/item/clothing/head/wig name = "wig" desc = "A bunch of hair without a head attached." - icon = 'icons/mob/human_face.dmi' // default icon for all hairs + icon = 'icons/mob/hair.dmi' // default icon for all hairs icon_state = "hair_vlong" flags_inv = HIDEHAIR color = "#000" diff --git a/code/modules/holiday/halloween/bartholomew.dm b/code/modules/holiday/halloween/bartholomew.dm index c9a4a946a3..117e03c357 100644 --- a/code/modules/holiday/halloween/bartholomew.dm +++ b/code/modules/holiday/halloween/bartholomew.dm @@ -130,9 +130,13 @@ /obj/item/reagent_containers/pill = 2, /obj/item/clothing/shoes = 8, /obj/item/clothing/head = 3, - /obj/item/reagent_containers/food/snacks = 3, + /obj/item/reagent_containers/food/snacks = 5, /obj/item/reagent_containers/syringe/dart = 2, - /obj/item/reagent_containers/food/drinks/soda_cans = 5) + /obj/item/reagent_containers/food/drinks/soda_cans = 5, + /obj/item/reagent_containers/food/drinks/drinkingglass = 4, + /obj/item/reagent_containers/food/drinks = 6, + /obj/item/reagent_containers/food/snacks/grown/apple = 1, + /obj/item/reagent_containers/food/snacks/grown/banana = 2) if(length >= 5) return TRUE //var/metalist = pickweight(GLOB.maintenance_loot) diff --git a/code/modules/holiday/halloween/jacqueen.dm b/code/modules/holiday/halloween/jacqueen.dm index 573b04a296..16151c4191 100644 --- a/code/modules/holiday/halloween/jacqueen.dm +++ b/code/modules/holiday/halloween/jacqueen.dm @@ -48,8 +48,8 @@ var/progression = list() //Keep track of where people are in the story. var/active = TRUE //Turn this to false to keep normal mob behavour var/cached_z - /// I'm busy chatting, don't move. - var/busy_chatting = FALSE + /// I'm busy, don't move. + var/busy = FALSE /mob/living/simple_animal/jacq/Initialize() ..() @@ -68,11 +68,14 @@ playsound(loc, 'sound/spookoween/ahaha.ogg', 100, 0.25) var/mob/living/simple_animal/jacq/Jacq = new src.type(loc) Jacq.progression = progression + if(ckey) //transfer over any ghost posessions + Jacq.key = key ..() /mob/living/simple_animal/jacq/death() //What is alive may never die visible_message("[src] cackles, \"You'll nae get rid a me that easily!\"") playsound(loc, 'sound/spookoween/ahaha.ogg', 100, 0.25) + fully_heal(FALSE) health = 25 poof() @@ -81,9 +84,9 @@ say("Hello there [gender_check(M)]!") return ..() if(!ckey) - busy_chatting = FALSE + stopmove() chit_chat(M) - busy_chatting = TRUE + canmove() ..() /mob/living/simple_animal/jacq/attack_paw(mob/living/carbon/monkey/M) @@ -91,11 +94,28 @@ say("Hello there [gender_check(M)]!") return ..() if(!ckey) - busy_chatting = FALSE + stopmove() chit_chat(M) - busy_chatting = TRUE + canmove() ..() +/mob/living/simple_animal/jacq/proc/canmove() + busy = FALSE + update_mobility() + +/mob/living/simple_animal/jacq/proc/stopmove() + if(ckey) //if someone is in her, don't disable her movement! + canmove() + return + busy = TRUE + update_mobility() + +/mob/living/simple_animal/jacq/proc/jacqrunes(message, mob/living/carbon/C) //Displays speechtext over Jacq for the user only. + var/atom/hearer = C + var/list/spans = list("spooky") + new /datum/chatmessage(message, src, hearer, spans) + + /mob/living/simple_animal/jacq/proc/poof() last_poof = world.realtime var/datum/reagents/R = new/datum/reagents(100)//Hey, just in case. @@ -104,7 +124,7 @@ s.set_up(R, 0, loc) s.start() visible_message("[src] disappears in a puff of smoke!") - busy_chatting = TRUE + canmove() health = 25 //Try to go to populated areas @@ -120,7 +140,7 @@ continue targets += H - if(!targets) + if(!targets.len) targets = GLOB.generic_event_spawns for(var/i in 1 to 6) //Attempts a jump up to 6 times. @@ -151,14 +171,16 @@ if(!progression["[C.real_name]"] || !(progression["[C.real_name]"] & JACQ_HELLO)) visible_message("[src] smiles ominously at [C], \"Well halo there [gender]! Ah'm Jacqueline, tae great Pumpqueen, great tae meet ye.\"") + jacqrunes("Well halo there [gender]! Ah'm Jacqueline, tae great Pumpqueen, great tae meet ye.", C) sleep(20) visible_message("[src] continues, \"Ah'm sure yae well stunned, but ah've got nae taem fer that. Ah'm after the candies around this station. If yae get mae enoof o the wee buggers, Ah'll give ye a treat, or if yae feeling bold, Ah ken trick ye instead.\" giving [C] a wide grin.") + jacqrunes("Ah'm sure yae well stunned, but ah've got nae taem fer that. Ah'm after the candies around this station. If yae get mae enoof o the wee buggers, Ah'll give ye a treat, or if yae feeling bold, Ah ken trick ye instead.", C) if(!progression["[C.real_name]"]) progression["[C.real_name]"] = NONE //TO MAKE SURE THAT THE LIST ENTRY EXISTS. progression["[C.real_name]"] = progression["[C.real_name]"] | JACQ_HELLO - var/choices = list("Trick", "Treat", "How do I get candies?") + var/choices = list("Trick", "Treat", "How do I get candies?", "Do I know you from somewhere?") var/choice = input(C, "Trick or Treat?", "Trick or Treat?") in choices switch(choice) if("Trick") @@ -168,14 +190,20 @@ if(check_candies(C)) treat(C, gender) else - visible_message("[src] raises an eyebrow, \"You've nae got any candies Ah want! They're the orange round ones, now bugger off an go get em first.\"") + visible_message("[src] raises aneyebrow, \"You've nae got any candies Ah want! They're the orange round ones, now bugger off an go get em first.\"") + jacqrunes("You've nae got any candies Ah want! They're the orange round ones, now bugger off an go get em first.", C) return if("How do I get candies?") visible_message("[src] says, \"Gae find my familiar; Bartholomew. Ee's tendin the cauldron which ken bring oot t' magic energy in items scattered aroond. Knowing him, ee's probably gone tae somewhere with books.\"") + jacqrunes("Gae find my familiar; Bartholomew. Ee's tendin the cauldron which ken bring oot t' magic energy in items scattered aroond. Knowing him, ee's probably gone tae somewhere with books.", C) return + if("Do I know you from somewhere?") + visible_message("[src] says, \"Aye ye micht dae, ah was kicking aboot round 'ere aboot a year ago when ah had a wee... altercation wit the witch academy n' ran oot here tae crash oan me sis's floor. Course she pushed me tae git it a' sorted oot lik', bit nae before ah hud a wee bit o' fun oan this station. Or maybe ye jest recognise me ma's prized pumpkin atop me nonce.\"") + jacqrunes("Aye ye micht dae, ah was kicking aboot round 'ere aboot a year ago when ah had a wee... altercation wit the witch academy n' ran oot here tae crash oan me sis's floor. Course she pushed me tae git it a' sorted oot lik', bit nae before ah hud a wee bit o' fun oan this station. Or maybe ye jest recognise me ma's prized pumpkin atop me nonce.", C) /mob/living/simple_animal/jacq/proc/treat(mob/living/carbon/C, gender) visible_message("[src] gives off a glowing smile, \"What ken Ah offer ye? I can magic up an object, a potion or a plushie fer ye.\"") + jacqrunes("What ken Ah offer ye? I can magic up an object, a potion or a plushie fer ye.", C) var/choices_reward = list("Object - 3 candies", "Potion - 2 candies", "Jacqueline Tracker - 2 candies", "Plushie - 1 candy", "Can I get to know you instead?", "Become a pumpkinhead dullahan (perma) - 4 candies") var/choice_reward = input(usr, "Trick or Treat?", "Trick or Treat?") in choices_reward @@ -184,8 +212,10 @@ if("Become a pumpkinhead dullahan (perma) - 4 candies") if(!take_candies(C, 4)) visible_message("[src] raises an eyebrown, \"It's 4 candies for that [gender]! Thems the rules!\"") + jacqrunes("It's 4 candies for that [gender]! Thems the rules!", C) return visible_message("[src] waves their arms around, \"Off comes your head, a pumpkin taking it's stead!\"") + jacqrunes("Off comes your head, a pumpkin taking it's stead!", C) C.reagents.add_reagent(/datum/reagent/mutationtoxin/pumpkinhead, 5) sleep(20) poof() @@ -194,6 +224,7 @@ if("Object - 3 candies") if(!take_candies(C, 3)) visible_message("[src] raises an eyebrown, \"It's 3 candies per trinket [gender]! Thems the rules!\"") + jacqrunes("It's 3 candies per trinket [gender]! Thems the rules!", C) return var/new_obj = pick(subtypesof(/obj)) @@ -203,36 +234,43 @@ var/reward = new new_obj(C.loc) C.put_in_hands(reward) visible_message("[src] waves her hands, magicking up a [reward] from thin air, \"There ye are [gender], enjoy! \"") + jacqrunes("There ye are [gender], enjoy!", C) sleep(20) poof() return if("Potion - 2 candies") if(!take_candies(C, 2)) visible_message("[src] raises an eyebrow, \"It's 2 candies per potion [gender]! Thems the rules!\"") + jacqrunes("It's 2 candies per potion [gender]! Thems the rules!", C) return var/reward = new /obj/item/reagent_containers/potion_container(C.loc) C.put_in_hands(reward) visible_message("[src] waves her hands, magicking up a [reward] from thin air, \"There ye are [gender], enjoy! \"") + jacqrunes("There ye are [gender], enjoy!", C) sleep(20) poof() return if("Plushie - 1 candy") if(!take_candies(C, 1)) visible_message("[src] raises an eyebrow, \"It's 1 candy per plushie [gender]! Thems the rules!\"") + jacqrunes("It's 1 candy per plushie [gender]! Thems the rules!", C) return new /obj/item/toy/plush/random(C.loc) visible_message("[src] waves her hands, magicking up a plushie from thin air, \"There ye are [gender], enjoy! \"") + jacqrunes("There ye are [gender], enjoy!", C) sleep(20) poof() return if("Jacqueline Tracker - 2 candies") if(!take_candies(C, 2)) visible_message("[src] raises an eyebrow, \"It's 1 candy per plushie [gender]! Thems the rules!\"") + jacqrunes("It's 1 candy per plushie [gender]! Thems the rules!", C) return new /obj/item/pinpointer/jacq(C.loc) visible_message("[src] waves her hands, magicking up a tracker from thin air, \"Feels weird to magic up a tracker fer meself but, here ye are [gender], enjoy! \"") + jacqrunes("Feels weird to magic up a tracker fer meself but, here ye are [gender], enjoy!", C) sleep(20) poof() return @@ -252,7 +290,7 @@ choices += "What is that on your head?" if(!(progression["[C.real_name]"] & JACQ_EXPELL)) if(progression["[C.real_name]"] & JACQ_WITCH) - choices += "So you got ex-spell-ed?" + choices += "What is it like being a witch?" else choices += "Are you a witch?" @@ -270,47 +308,79 @@ //If you've nothing to ask if(!LAZYLEN(choices)) visible_message("[src] sighs, \"Ah'm all questioned oot fer noo, [gender].\"") + jacqrunes("Ah'm all questioned oot fer noo, [gender]", C) return //Otherwise, lets go! visible_message("[src] says, \"A question? Sure, it'll cost you a candy though!\"") + jacqrunes("A question? Sure, it'll cost you a candy though!", C) choices += "Nevermind" //Candies for chitchats var/choice = input(C, "What do you want to ask?", "What do you want to ask?") in choices if(!take_candies(C, 1)) visible_message("[src] raises an eyebrow, \"It's a candy per question [gender]! Thems the rules!\"") + jacqrunes("It's a candy per question [gender]! Thems the rules!", C) return //Talking switch(choice) if("Why do you want the candies?") visible_message("[src] says, \"Ave ye tried them? They're full of all sorts of reagents. Ah'm after them so ah ken magic em up an hopefully find rare stuff fer me brews. Honestly it's a lot easier magicking up tatt fer ye lot than runnin aroond on me own like. I'd ask me familiars but most a my familiars are funny fellows 'n constantly bugger off on adventures when given simple objectives like; Go grab me a tea cake or watch over me cauldron. Ah mean, ye might run into Bartholomew my cat. Ee's supposed tae be tending my cauldron, but I've nae idea where ee's got tae.\"") + jacqrunes("Ave ye tried them? They're full of all sorts of reagents. Ah'm after them so ah ken magic em up an hopefully find rare stuff fer me brews. Honestly it's a lot easier magicking up tatt fer ye lot than runnin aroond on me own like. I'd ask me familiars but most a my familiars are funny fellows 'n constantly bugger off on adventures when given simple objectives like; Go grab me a tea cake or watch over me cauldron. Ah mean, ye might run into Bartholomew my cat. Ee's supposed tae be tending my cauldron, but I've nae idea where ee's got tae.", C) progression["[C.real_name]"] = progression["[C.real_name]"] | JACQ_CANDIES sleep(30) if("You really came all this way for candy?") - visible_message("[src] l ooks tae the side sheepishly, \"Aye, well, tae be honest, Ah'm here tae see me sis, but dunnae let her knew that. She's an alchemist too like, but she dunnae use a caldron like mae, she buggered off like tae her posh ivory tower tae learn bloody chemistry instead!\" [src] scowls, \"She's tae black sheep o' the family too, so we dunnae see eye tae eye sometimes on alchemy. Ah mean, she puts moles in her brews! Ye dunnae put moles in yer brews! Yae threw your brews at tae wee bastards an blew em up!\" [src] sighs, \"But she's a heart o gold so.. Ah wanted tae see her an check up oon her, make sure she's okay.\"") + visible_message("[src] looks to the side sheepishly, \"Aye, well, tae be honest, Ah'm here tae see me sis, but dunnae let her knew that. She's an alchemist too like, but she dunnae use a caldron like mae, she buggered off like tae her posh ivory tower tae learn bloody chemistry instead!\" [src] scowls, \"She's tae black sheep o' the family too, so we dunnae see eye tae eye sometimes on alchemy. Ah mean, she puts moles in her brews! Ye dunnae put moles in yer brews! Yae threw your brews at tae wee bastards an blew em up!\" [src] sighs, \"But she's a heart o gold so.. Ah wanted tae see her an check up oon her, make sure she's okay.\"") + jacqrunes("Aye, well, tae be honest, Ah'm here tae see me sis, but dunnae let her knew that. She's an alchemist too like, but she dunnae use a caldron like mae, she buggered off like tae her posh ivory tower tae learn bloody chemistry instead", C) progression["[C.real_name]"] = progression["[C.real_name]"] | JACQ_FAR - sleep(30) + sleep(10) + jacqrunes("She's tae black sheep o' the family too, so we dunnae see eye tae eye sometimes on alchemy. Ah mean, she puts moles in her brews! Ye dunnae put moles in yer brews! Yae threw your brews at tae wee bastards an blew em up!", C) + sleep(10) + jacqrunes("But she's a heart o gold so.. Ah wanted tae see her an check up oon her, make sure she's okay.", C) + sleep(10) if("What is that on your head?") - visible_message("[src] pats the pumpkin atop her head, \"This thing? This ain't nae ordinary pumpkin! Me Ma grew this monster ooer a year o love, dedication an hard work. Honestly it felt like she loved this thing more than any of us, which Ah knew ain't true an it's not like she was hartless or anything but.. well, we had a falling oot when Ah got back home with all me stuff in tow. An all she had done is sent me owl after owl over t' last year aboot this bloody pumpkin and ah had enough. So ah took it, an put it on me head. You know, as ye do. Ah am the great Pumpqueen after all, Ah deserve this.\"") + visible_message("[src] pats the pumpkin atop her head, \"This thing? This ain't nae ordinary pumpkin! Me Ma grew this monster ooer a year o love, dedication an hard work. Honestly I got bloody sick o'er harpin' on aboot it, all she had done is sent me owl after owl over aboot this bloody pumpkin since i left the nest and ah had enough after a ... mild altercation like. So I nabbed it last halloween. Caught bloody hell fer it ah did, course me sis talked to me ma and, well, simmered her doon. We've all but made up noo, but seein' as ah'm the great Pumpqueen after all, I cannae be seen withoot it like.\"") + jacqrunes("This thing? This ain't nae ordinary pumpkin! Me Ma grew this monster ooer a year o love, dedication an hard work. Honestly I got bloody sick o'er harpin' on aboot it, all she had done is sent me owl after owl over aboot this bloody pumpkin since i left the nest and ah had enough after a ... mild altercation like. So I nabbed it last halloween. Caught bloody hell fer it ah did, course me sis talked to me ma and, well, simmered her doon. We've all but made up noo, but seein' as ah'm the great Pumpqueen after all, I cannae be seen withoot it like.", C) progression["[C.real_name]"] = progression["[C.real_name]"] | JACQ_HEAD sleep(30) + //Year 1 answer: for anyone who is interested! + /*This thing? This ain't nae ordinary pumpkin! Me Ma grew this monster ooer a year o love, dedication an hard work. Honestly it felt like she loved this thing more than any of us, which Ah knew ain't true an it's not like she was hartless or anything but.. well, we had a falling oot when Ah got back home with all me stuff in tow. An all she had done is sent me owl after owl over t' last year aboot this bloody pumpkin and ah had enough. So ah took it, an put it on me head. You know, as ye do. Ah am the great Pumpqueen after all, Ah deserve this.*/ + if("Are you a witch?") - visible_message("[src] grumbles, \"If ye must know, Ah got kicked oot of the witch academy fer being too much of a \"loose cannon\". A bloody loose cannon? Nae they were just pissed off Ah had the brass tae proclaim myself as the Pumpqueen! And also maybe the time Ah went and blew up one of the towers by trying tae make a huge batch of astrogen might've had something tae do with it. Ah mean it would've worked fine if the cauldrons weren't so shite and were actually upgraded by the faculty. So technically no, I'm not a witch.\"") + visible_message("[src] smirks, \"Weel, after getting kicked oot over a very minor explosion last year, ah wis able tae git back in 'n' finish me witching degree thanks tae me sis! 'twas bloody brutal finishing th' degree though, ah will tell ye, ye take a peek o'er at t' other witches all prim 'n' proper like 'n' it gets in yer heid, ye'r nae as guid. But ah bloody well ended up summoning Nar'Sie last year for the lot o' yous. Aye a'm a loose cannon - but ah get results.\" thumping her chest with pride as she finishes speaking.") + jacqrunes("Weel, after getting kicked oot over a very minor explosion last year, ah wis able tae git back in 'n' finish me witching degree thanks tae me sis! 'twas bloody brutal finishing th' degree though, ah will tell ye, ye take a peek o'er at t' other witches all prim 'n' proper like 'n' it gets in yer heid, ye'r nae as guid. But ah bloody well ended up summoning Nar'Sie last year for the lot o' yous. Aye a'm a loose cannon - but ah get results." , C) progression["[C.real_name]"] = progression["[C.real_name]"] | JACQ_WITCH sleep(30) - if("So you got ex-spell-ed?") - visible_message("[src] Gives you a blank look at the pun, before continuing, \"Not quite, Ah know Ah ken get back into the academy, it's only an explosion, they happen all the time, but, tae be fair it's my fault that things came tae their explosive climax. You don't know what it's like when you're after a witch doctorate, everyone else is doing well, everyone's making new spells and the like, and I'm just good at making explosions really, or fireworks. So, Ah did something Ah knew was dangerous, because Ah had tae do something tae stand oot, but Ah know this life ain't fer me, Ah don't want tae be locked up in dusty towers, grinding reagent after reagent together, trying tae find new reactions, some of the wizards in there haven't left fer years. Ah want tae live, Ah want tae fly around on a broom, turn people into cats fer a day and disappear cackling! That's what got me into witchcraft!\" she throws her arms up in the arm, spinning the pumpkin upon her head slightly. She carefully spins it back to face you, giving oot a soft sigh, \"Ah know my mother's obsession with this dumb thing on my head is just her trying tae fill the void of me and my sis moving oot, and it really shouldn't be on my head. And Ah know that I'm really here tae get help from my sis.. She's the sensible one, and she gives good hugs.\"") - sleep(30) + //Year 1 answer for anyone who is interested: + /* Are you a witch? + If ye must know, Ah got kicked oot of the witch academy fer being too much of a \"loose cannon\". A bloody loose cannon? Nae they were just pissed off Ah had the brass tae proclaim myself as the Pumpqueen! And also maybe the time Ah went and blew up one of the towers by trying tae make a huge batch of astrogen might've had something tae do with it. Ah mean it would've worked fine if the cauldrons weren't so shite and were actually upgraded by the faculty. So technically no, I'm not a witch.*/ + + if("What is it like being a witch?") //What is it like being a witch? + + visible_message("[src] says, \"Tae be honest, ah dunnae. Ah mean ah have a piece o’ paper that implies that a’m, ‘n’ a few folk who seem keen in shoving me back in their magic tower, but I don’t know if that’s fer me really.\" she gives the back of her pumpkin a quick scratch as she continues \"What draws me tae witchcraft is the chaos, ah live tae see th’ utter madness that comes fae the spells ah cast ‘n’ th’ like, ‘n’ ah know you do tae, it’s why you’re ‘ere, aye? Ah kin conjure some utterly chaotic things, and ah love tae do it, just tae see what I’ll git! It’s why visiting here is so fun, ye wee lot scurrying about, getting me candies, hoping I’ll conjure up something utterly chaotic!\" she throws her arms up in the arm with a laugh, spinning the pumpkin upon her head slightly. She carefully spins it back to face you, \"But o’ course life ain’t that easy, ye can’t just go around being a pure agent o’ chaos, ‘n’ ah feel like the reality o’ the world be trying tae dull me, to shove me in a boring dusty auld room where ah spend t’ rest o’ me days researching some boggin’ magic till ah die. Ah want tae bloody well change t’ world, ah want to do something that leaves an impact, but ah dunnae want t’ kill people doing it.\" she gives out a soft sigh, \"Who knows, maybe I’ll bugger off ‘n’ make some pumkinmobiles or something daft like that.\" ") + jacqrunes("Tae be honest, ah dunnae. Ah mean ah have a piece o’ paper that implies that a’m, ‘n’ a few folk who seem keen in shoving me back in their magic tower, but I don’t know if that’s fer me really." , C) + sleep(10) + jacqrunes("What draws me tae witchcraft is the chaos, ah live tae see th’ utter madness that comes fae the spells ah cast ‘n’ th’ like, ‘n’ ah know you do tae, it’s why you’re ‘ere, aye? Ah kin conjure some utterly chaotic things, and ah love tae do it, just tae see what I’ll git! It’s why visiting here is so fun, ye wee lot scurrying about, getting me candies, hoping I’ll conjure up something utterly chaotic!" , C) + sleep(10) + jacqrunes("But o’ course life ain’t that easy, ye can’t just go around being a pure agent o’ chaos, ‘n’ ah feel like the reality o’ the world be trying tae dull me, to shove me in a boring dusty auld room where ah spend t’ rest o’ me days researching some boggin’ magic till ah die. Ah want tae bloody well change t’ world, ah want to do something that leaves an impact, but ah dunnae want t’ kill people doing it.", C) + sleep(10) + jacqrunes("Who knows, maybe I’ll bugger off ‘n’ make some pumkinmobiles or something daft like that.", C) + sleep(25) visible_message("[src] says, \"Thanks [C], Ah guess Ah didn't realise Ah needed someone tae talk tae but, I'm glad ye spent all your candies talking tae me. Funny how things seem much worse in yer head.\"") + jacqrunes("Thanks [C], Ah guess Ah didn't realise Ah needed someone tae talk tae but, I'm glad ye spent all your candies talking tae me. Funny how things seem much worse in yer head." , C) progression["[C.real_name]"] = progression["[C.real_name]"] | JACQ_EXPELL sleep(30) + //Year 1 answer for anyone who is interested: + /*"So you got ex-spell-ed?" + Gives you a blank look at the pun, before continuing, \"Not quite, Ah know Ah ken get back into the academy, it's only an explosion, they happen all the time, but, tae be fair it's my fault that things came tae their explosive climax. You don't know what it's like when you're after a witch doctorate, everyone else is doing well, everyone's making new spells and the like, and I'm just good at making explosions really, or fireworks. So, Ah did something Ah knew was dangerous, because Ah had tae do something tae stand oot, but Ah know this life ain't fer me, Ah don't want tae be locked up in dusty towers, grinding reagent after reagent together, trying tae find new reactions, some of the wizards in there haven't left fer years. Ah want tae live, Ah want tae fly around on a broom, turn people into cats fer a day and disappear cackling! That's what got me into witchcraft!\" she throws her arms up in the arm, spinning the pumpkin upon her head slightly. She carefully spins it back to face you, giving oot a soft sigh, \"Ah know my mother's obsession with this dumb thing on my head is just her trying tae fill the void of me and my sis moving oot, and it really shouldn't be on my head. And Ah know that I'm really here tae get help from my sis.. She's the sensible one, and she gives good hugs. + */ + if("Can I take you out on a date?") visible_message("[src] blushes, \"...You want tae ask me oot on a date? Me? After all that nonsense Ah just said? It seems a waste of a candy honestly.\"") - //progression["[C.real_name]"] = progression["[C.real_name]"] | JACQ_DATE + jacqrunes("...You want tae ask me oot on a date? Me? After all that nonsense Ah just said? It seems a waste of a candy honestly." , C) visible_message("[src] looks to the side, deep in thought.") dating_start(C, gender) @@ -328,15 +398,18 @@ switch(option) if(1) visible_message("[src] waves their arms around, \"Hocus pocus, making friends is now your focus!\"") + jacqrunes("Hocus pocus, making friends is now your focus!", C) var/message = pick("make a tasty sandwich for", "compose a poem for", "aquire a nice outfit to give to", "strike up a conversation about pumpkins with", "write a letter and deliver it to", "give a nice hat to") var/mob/living/L2 = pick(GLOB.player_list) message += " [L2.name]." to_chat(C, " You feel an overwhelming desire to [message]") if(2) visible_message("[src] waves their arms around, \"If only you had a better upbringing, your ears are now full of my singing!\"") - C.client.tgui_panel?.play_music("https://puu.sh/ExBbv.mp4") + jacqrunes("If only you had a better upbringing, your ears are now full of my singing!", C) + C.client.tgui_panel?.play_music("https://katlin.dog/v/spooky.mp4") if(3) visible_message("[src] waves their arms around, \"You're cute little bumpkin, On your head is a pumpkin!\"") + jacqrunes("You're cute little bumpkin, On your head is a pumpkin!", C) if(C.head) var/obj/item/W = C.head C.dropItemToGround(W, TRUE) @@ -344,12 +417,15 @@ C.equip_to_slot(jaqc_latern, SLOT_HEAD, 1, 1) if(4) visible_message("[src] waves their arms around, \"In your body there's something amiss, you'll find it's a chem made by my sis!\"") + jacqrunes("In your body there's something amiss, you'll find it's a chem made by my sis!", C) C.reagents.add_reagent(/datum/reagent/fermi/eigenstate, 30) if(5) visible_message("[src] waves their arms around, \"A new familiar for me, and you'll see it's thee!\"") - C.reagents.add_reagent("secretcatchem", 30) + jacqrunes("A new familiar for me, and you'll see it's thee!", C) + C.reagents.add_reagent(/datum/reagent/fermi/secretcatchem, 30) if(6) visible_message("[src] waves their arms around, \"While you may not be a ghost, for this sheet you'll always be it's host.\"") + jacqrunes("While you may not be a ghost, for this sheet you'll always be it's host.", C) var/mob/living/carbon/human/H = C if(H.wear_suit) var/obj/item/W = H.wear_suit @@ -370,22 +446,30 @@ message_admins("[C2]/[C2.key] has agreed to go on a date with [C] as Jacqueline.") log_game("HALLOWEEN: [C2]/[C2.key] has agreed to go on a date with [C] as Jacqueline") to_chat(src, "You are Jacqueline the great pumpqueen, witch Extraordinaire! You're a very Scottish lass with a kind heart, but also a little crazy. You also blew up the wizarding school and you're suspended for a while, so you visited the station before heading home. On your head lies the prize pumpkin of your Mother's pumpkin patch. You're currently on a date with [C] and well, I didn't think anyone would get this far. Please be good so I can do events like this in the future. ") - return + canmove() + return TRUE else candies =- C2 visible_message("[src] looks to the side, \"Look, Ah like ye but, Ah don't think Ah can right now. If ye can't tell, the stations covered in volatile candies, I've a few other laddies and lassies running after me treats, and tae top it all off, I've the gods breathing down me neck, watching every treat Ah make fer the lot of yous.\" she sighs, \"But that's not a no, right? That's.. just a nae right noo.\"") + jacqrunes("Look, Ah like ye but, Ah don't think Ah can right now. If ye can't tell, the stations covered in volatile candies, I've a few other laddies and lassies running after me treats, and tae top it all off, I've the gods breathing down me neck, watching every treat Ah make fer the lot of yous.", C) sleep(20) + jacqrunes("But that's not a no, right? That's.. just a nae right noo.", C) visible_message("[src] takes off the pumpkin on her head, a rich blush on her cheeks. She leans over planting a kiss upon your forehead quickly befere popping the pumpkin back on her head.") - sleep(10) + sleep(20) visible_message("[src] waves their arms around, \"There, that aught tae be worth a candy.\"") + jacqrunes("There, that aught tae be worth a candy.", C) sleep(20) poof() /mob/living/simple_animal/jacq/update_mobility() . = ..() - if(busy_chatting) + if(busy) DISABLE_BITFIELD(., MOBILITY_MOVE) - mobility_flags = . + else + ENABLE_BITFIELD(., MOBILITY_MOVE) + mobility_flags = . + + /obj/item/clothing/head/hardhat/pumpkinhead/jaqc name = "Jacq o' latern" diff --git a/code/modules/hydroponics/grown/grass_carpet.dm b/code/modules/hydroponics/grown/grass_carpet.dm index e6fd991169..51e94afb3c 100644 --- a/code/modules/hydroponics/grown/grass_carpet.dm +++ b/code/modules/hydroponics/grown/grass_carpet.dm @@ -50,7 +50,7 @@ plantname = "Fairygrass" product = /obj/item/reagent_containers/food/snacks/grown/grass/fairy icon_grow = "fairygrass-grow" - icon_dead = "fairygrass-dead" + icon_dead = "grass-dead" genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/glow/blue) mutatelist = list (/obj/item/seeds/grass/carpet) reagents_add = list(/datum/reagent/consumable/nutriment = 0.02, /datum/reagent/hydrogen = 0.05, /datum/reagent/drug/space_drugs = 0.15) diff --git a/code/modules/hydroponics/grown/mushrooms.dm b/code/modules/hydroponics/grown/mushrooms.dm index 80ba6b7375..e6d2484632 100644 --- a/code/modules/hydroponics/grown/mushrooms.dm +++ b/code/modules/hydroponics/grown/mushrooms.dm @@ -193,6 +193,8 @@ growthstages = 3 genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism) growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' + icon_grow = "chanter-grow" + icon_dead = "chanter-dead" reagents_add = list(/datum/reagent/consumable/nutriment = 0.1) mutatelist = list(/obj/item/seeds/chanterelle/jupitercup) diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index d6022c1345..aa8a7b60c2 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -285,7 +285,7 @@ else plant_overlay.icon_state = myseed.icon_harvest else - var/t_growthstate = min(round((age / myseed.maturation) * myseed.growthstages), myseed.growthstages) + var/t_growthstate = clamp(round((age / myseed.maturation) * myseed.growthstages), 1, myseed.growthstages) plant_overlay.icon_state = "[myseed.icon_grow][t_growthstate]" add_overlay(plant_overlay) diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm index c69e990033..30a933db39 100644 --- a/code/modules/mining/equipment/survival_pod.dm +++ b/code/modules/mining/equipment/survival_pod.dm @@ -11,8 +11,8 @@ /obj/item/survivalcapsule name = "bluespace shelter capsule" desc = "An emergency shelter stored within a pocket of bluespace." - icon_state = "capsule" icon = 'icons/obj/mining.dmi' + icon_state = "capsule" w_class = WEIGHT_CLASS_TINY var/template_id = "shelter_alpha" var/datum/map_template/shelter/template @@ -72,9 +72,10 @@ /obj/item/survivalcapsule/luxury name = "luxury bluespace shelter capsule" desc = "An exorbitantly expensive luxury suite stored within a pocket of bluespace." + icon_state = "capsule-lux" template_id = "shelter_beta" -/obj/item/survivalcapsule/luxuryelite +/obj/item/survivalcapsule/luxury/elitebar name = "luxury elite bar capsule" desc = "A luxury bar in a capsule. Bartender required and not included." template_id = "shelter_charlie" diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index b368313400..101b7adafc 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -42,7 +42,7 @@ new /datum/data/mining_equipment("Fulton Pack", /obj/item/extraction_pack, 1000), new /datum/data/mining_equipment("Lazarus Injector", /obj/item/lazarus_injector, 1000), new /datum/data/mining_equipment("Silver Pickaxe", /obj/item/pickaxe/silver, 1000), - new /datum/data/mining_equipment("Mining Conscription Kit", /obj/item/storage/backpack/duffelbag/mining_conscript, 1000), + new /datum/data/mining_equipment("Mining Conscription Kit", /obj/item/storage/backpack/duffelbag/mining/conscript, 1000), new /datum/data/mining_equipment("1000 Point Transfer Card", /obj/item/card/mining_point_card/mp1000, 1000), new /datum/data/mining_equipment("1500 Point Transfer Card", /obj/item/card/mining_point_card/mp1500, 1500), new /datum/data/mining_equipment("2000 Point Transfer Card", /obj/item/card/mining_point_card/mp2000, 2000), @@ -55,7 +55,7 @@ new /datum/data/mining_equipment("Jump Boots", /obj/item/clothing/shoes/bhop, 2500), new /datum/data/mining_equipment("Ice hiking boots", /obj/item/clothing/shoes/winterboots/ice_boots, 2500), new /datum/data/mining_equipment("Luxury Shelter Capsule", /obj/item/survivalcapsule/luxury, 3000), - new /datum/data/mining_equipment("Luxury Bar Capsule", /obj/item/survivalcapsule/luxuryelite, 10000), + new /datum/data/mining_equipment("Luxury Bar Capsule", /obj/item/survivalcapsule/luxury/elitebar, 10000), new /datum/data/mining_equipment("Nanotrasen Minebot", /mob/living/simple_animal/hostile/mining_drone, 800), new /datum/data/mining_equipment("Minebot Melee Upgrade", /obj/item/mine_bot_upgrade, 400), new /datum/data/mining_equipment("Minebot Armor Upgrade", /obj/item/mine_bot_upgrade/health, 400), @@ -70,9 +70,10 @@ new /datum/data/mining_equipment("KA Damage Increase", /obj/item/borg/upgrade/modkit/damage, 1000), new /datum/data/mining_equipment("KA Cooldown Decrease", /obj/item/borg/upgrade/modkit/cooldown, 1000), new /datum/data/mining_equipment("KA AoE Damage", /obj/item/borg/upgrade/modkit/aoe/mobs, 2000), - new /datum/data/mining_equipment("Miner Full Replacement", /obj/item/storage/backpack/duffelbag/mining_cloned, 3000), + new /datum/data/mining_equipment("Miner Full Replacement", /obj/item/storage/backpack/duffelbag/mining/cloned, 3000), new /datum/data/mining_equipment("Premium Accelerator", /obj/item/gun/energy/kinetic_accelerator/premiumka, 8000), - new /datum/data/mining_equipment("Kinetic Glaive", /obj/item/kinetic_crusher/glaive, 2250), + new /datum/data/mining_equipment("Kinetic Glaive Kit", /obj/item/storage/backpack/duffelbag/mining/glaivekit, 2250), + new /datum/data/mining_equipment("Survival Dagger", /obj/item/kitchen/knife/combat/survival/knuckledagger, 550), new /datum/data/mining_equipment("Kinetic Destroyer", /obj/item/kinetic_crusher/premiumcrusher, 12000), //boop ) @@ -223,7 +224,7 @@ new /obj/item/extinguisher/mini(drop_location) new /obj/item/kinetic_crusher(drop_location) if("Mining Conscription Kit") - new /obj/item/storage/backpack/duffelbag/mining_conscript(drop_location) + new /obj/item/storage/backpack/duffelbag/mining/conscript(drop_location) SSblackbox.record_feedback("tally", "mining_voucher_redeemed", 1, selection) qdel(voucher) @@ -329,11 +330,11 @@ to_chat(user, "You upgrade [I] with mining access.") qdel(src) -/obj/item/storage/backpack/duffelbag/mining_conscript +/obj/item/storage/backpack/duffelbag/mining/conscript name = "mining conscription kit" desc = "A kit containing everything a crewmember needs to support a shaft miner in the field." -/obj/item/storage/backpack/duffelbag/mining_conscript/PopulateContents() +/obj/item/storage/backpack/duffelbag/mining/conscript/PopulateContents() new /obj/item/pickaxe/mini(src) new /obj/item/clothing/glasses/meson(src) new /obj/item/t_scanner/adv_mining_scanner/lesser(src) @@ -348,11 +349,11 @@ //CITADEL ADDITIONS BELOW -/obj/item/storage/backpack/duffelbag/mining_cloned +/obj/item/storage/backpack/duffelbag/mining/cloned name = "mining replacement kit" - desc = "A large bag that has advance tools and a spare jumpsuit, boots, and gloves for a newly cloned miner to get back in the field. Even has a new ID!" + desc = "A large bag that has advanced tools and a spare jumpsuit, boots, and gloves for a newly cloned miner to get back in the field. Even has a new ID!" -/obj/item/storage/backpack/duffelbag/mining_cloned/PopulateContents() +/obj/item/storage/backpack/duffelbag/mining/cloned/PopulateContents() new /obj/item/pickaxe/mini(src) new /obj/item/clothing/under/rank/cargo/miner/lavaland(src) new /obj/item/clothing/shoes/workboots/mining(src) @@ -370,6 +371,12 @@ new /obj/item/storage/bag/ore(src) new /obj/item/clothing/glasses/meson/prescription(src) +/obj/item/storage/backpack/duffelbag/mining/glaivekit + +/obj/item/storage/backpack/duffelbag/mining/glaivekit/PopulateContents() + new /obj/item/kinetic_crusher/glaive(src) + new /obj/item/kitchen/knife/combat/survival/knuckledagger(src) + /obj/machinery/mineral/equipment_vendor/proc/RedeemSVoucher(obj/item/suit_voucher/voucher, mob/redeemer) var/items = list( "Exo-suit" = image(icon = 'icons/obj/clothing/suits.dmi', icon_state = "exo"), "SEVA suit" = image(icon = 'icons/obj/clothing/suits.dmi', icon_state = "seva")) diff --git a/code/modules/mob/dead/new_player/preferences_setup.dm b/code/modules/mob/dead/new_player/preferences_setup.dm index c3c0787aa8..2e1ffe718f 100644 --- a/code/modules/mob/dead/new_player/preferences_setup.dm +++ b/code/modules/mob/dead/new_player/preferences_setup.dm @@ -26,7 +26,8 @@ features = random_features(pref_species?.id, gender) age = rand(AGE_MIN,AGE_MAX) -/datum/preferences/proc/update_preview_icon(equip_job = TRUE) +/datum/preferences/proc/update_preview_icon(current_tab) + var/equip_job = (current_tab != 2) // Determine what job is marked as 'High' priority, and dress them up as such. var/datum/job/previewJob = get_highest_job() @@ -45,9 +46,13 @@ mannequin.add_overlay(mutable_appearance('modular_citadel/icons/ui/backgrounds.dmi', bgstate, layer = SPACE_LAYER)) copy_to(mannequin, initial_spawn = TRUE) - if(previewJob && equip_job) - mannequin.job = previewJob.title - previewJob.equip(mannequin, TRUE, preference_source = parent) + if(current_tab == 3) + //give it its loadout if not on the appearance tab + SSjob.equip_loadout(parent.mob, mannequin, FALSE, bypass_prereqs = TRUE, can_drop = FALSE) + else + if(previewJob && equip_job) + mannequin.job = previewJob.title + previewJob.equip(mannequin, TRUE, preference_source = parent) COMPILE_OVERLAYS(mannequin) parent.show_character_previews(new /mutable_appearance(mannequin)) diff --git a/code/modules/mob/dead/new_player/sprite_accessories/hair_face.dm b/code/modules/mob/dead/new_player/sprite_accessories/hair_face.dm index a07fdaa5d3..23b1f87bd2 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/hair_face.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/hair_face.dm @@ -2,7 +2,7 @@ // Facial Hair Definitions // ///////////////////////////// /datum/sprite_accessory/facial_hair - icon = 'icons/mob/human_face.dmi' + icon = 'icons/mob/hair.dmi' gender = MALE // barf (unless you're a dorf, dorfs dig chix w/ beards :P) // please make sure they're sorted alphabetically and categorized diff --git a/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm b/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm index 8e4e6ad617..55ab18c20c 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm @@ -2,7 +2,7 @@ // Hair Definitions // ////////////////////// /datum/sprite_accessory/hair - icon = 'icons/mob/human_face.dmi' // default icon for all hairs + icon = 'icons/mob/hair.dmi' // default icon for all hairs // please make sure they're sorted alphabetically and, where needed, categorized // try to capitalize the names please~ diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index cbf2099cfa..b06a586041 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -128,6 +128,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/datum/action/innate/flight/fly //the actual flying ability given to flying species var/wings_icon = "Angel" //the icon used for the wings + //the type of eyes this species has + var/eye_type = "normal" /////////// // PROCS // @@ -542,7 +544,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/mutable_appearance/hair_overlay = mutable_appearance(layer = -HAIR_LAYER) if(!hair_hidden && !H.getorgan(/obj/item/organ/brain)) //Applies the debrained overlay if there is no brain if(!(NOBLOOD in species_traits)) - hair_overlay.icon = 'icons/mob/human_face.dmi' + hair_overlay.icon = 'icons/mob/hair.dmi' hair_overlay.icon_state = "debrained" else if(H.hair_style && (HAIR in species_traits)) @@ -601,7 +603,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(HD && !(HAS_TRAIT(H, TRAIT_HUSK))) // lipstick if(H.lip_style && (LIPS in species_traits)) - var/mutable_appearance/lip_overlay = mutable_appearance('icons/mob/human_face.dmi', "lips_[H.lip_style]", -BODY_LAYER) + var/mutable_appearance/lip_overlay = mutable_appearance('icons/mob/lips.dmi', "lips_[H.lip_style]", -BODY_LAYER) lip_overlay.color = H.lip_color if(OFFSET_LIPS in H.dna.species.offset_features) @@ -614,10 +616,17 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(!(NOEYES in species_traits)) var/has_eyes = H.getorganslot(ORGAN_SLOT_EYES) if(!has_eyes) - standing += mutable_appearance('icons/mob/human_face.dmi', "eyes_missing", -BODY_LAYER) + standing += mutable_appearance('icons/mob/eyes.dmi', "eyes_missing", -BODY_LAYER) else - var/mutable_appearance/left_eye = mutable_appearance('icons/mob/human_face.dmi', "left_eye", -BODY_LAYER) - var/mutable_appearance/right_eye = mutable_appearance('icons/mob/human_face.dmi', "right_eye", -BODY_LAYER) + var/left_state = DEFAULT_LEFT_EYE_STATE + var/right_state = DEFAULT_RIGHT_EYE_STATE + message_admins("okay so our eye type is [eye_type] and we can index it to know [GLOB.eye_types[eye_type]]") + if(eye_type in GLOB.eye_types) + message_admins("to know that it's in!") + left_state = eye_type + "_left_eye" + right_state = eye_type + "_right_eye" + var/mutable_appearance/left_eye = mutable_appearance('icons/mob/eyes.dmi', left_state, -BODY_LAYER) + var/mutable_appearance/right_eye = mutable_appearance('icons/mob/eyes.dmi', right_state, -BODY_LAYER) if((EYECOLOR in species_traits) && has_eyes) left_eye.color = "#" + H.left_eye_color right_eye.color = "#" + H.right_eye_color diff --git a/code/modules/mob/living/carbon/human/species_types/bugmen.dm b/code/modules/mob/living/carbon/human/species_types/bugmen.dm index 7e51653a66..a40693c7e9 100644 --- a/code/modules/mob/living/carbon/human/species_types/bugmen.dm +++ b/code/modules/mob/living/carbon/human/species_types/bugmen.dm @@ -22,3 +22,5 @@ species_type = "insect" allowed_limb_ids = list("insect","apid","moth","moth_not_greyscale") + + eye_type = "insect" diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 6e0fdf7c9c..8c3419ffe0 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -951,7 +951,7 @@ use_mob_overlay_icon: if FALSE, it will always use the default_icon_file even if if(HD && !(HAS_TRAIT(src, TRAIT_HUSK))) // lipstick if(lip_style && (LIPS in dna.species.species_traits)) - var/mutable_appearance/lip_overlay = mutable_appearance('icons/mob/human_face.dmi', "lips_[lip_style]", -BODY_LAYER) + var/mutable_appearance/lip_overlay = mutable_appearance('icons/mob/lips.dmi', "lips_[lip_style]", -BODY_LAYER) lip_overlay.color = lip_color if(OFFSET_LIPS in dna.species.offset_features) lip_overlay.pixel_x += dna.species.offset_features[OFFSET_LIPS][1] @@ -962,10 +962,17 @@ use_mob_overlay_icon: if FALSE, it will always use the default_icon_file even if if(!(NOEYES in dna.species.species_traits)) var/has_eyes = getorganslot(ORGAN_SLOT_EYES) if(!has_eyes) - add_overlay(mutable_appearance('icons/mob/human_face.dmi', "eyes_missing", -BODY_LAYER)) + add_overlay(mutable_appearance('icons/mob/eyes.dmi', "eyes_missing", -BODY_LAYER)) else - var/mutable_appearance/left_eye = mutable_appearance('icons/mob/human_face.dmi', "left_eye", -BODY_LAYER) - var/mutable_appearance/right_eye = mutable_appearance('icons/mob/human_face.dmi', "right_eye", -BODY_LAYER) + var/left_state = DEFAULT_LEFT_EYE_STATE + var/right_state = DEFAULT_RIGHT_EYE_STATE + if(dna.species) + var/eye_type = dna.species.eye_type + if(GLOB.eye_types[eye_type]) + left_state = eye_type + "_left_eye" + right_state = eye_type + "_right_eye" + var/mutable_appearance/left_eye = mutable_appearance('icons/mob/eyes.dmi', left_state, -BODY_LAYER) + var/mutable_appearance/right_eye = mutable_appearance('icons/mob/eyes.dmi', right_state, -BODY_LAYER) if((EYECOLOR in dna.species.species_traits) && has_eyes) left_eye.color = "#" + left_eye_color right_eye.color = "#" + right_eye_color diff --git a/code/modules/mob/living/carbon/monkey/update_icons.dm b/code/modules/mob/living/carbon/monkey/update_icons.dm index 1e00815f24..bfe04c8622 100644 --- a/code/modules/mob/living/carbon/monkey/update_icons.dm +++ b/code/modules/mob/living/carbon/monkey/update_icons.dm @@ -34,7 +34,7 @@ hair_hidden = 1 if(!hair_hidden) if(!getorgan(/obj/item/organ/brain)) //Applies the debrained overlay if there is no brain - overlays_standing[HAIR_LAYER] = mutable_appearance('icons/mob/human_face.dmi', "debrained", -HAIR_LAYER) + overlays_standing[HAIR_LAYER] = mutable_appearance('icons/mob/human_parts.dmi', "debrained", -HAIR_LAYER) apply_overlay(HAIR_LAYER) diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index 954e968bd7..ae045dbd26 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -22,7 +22,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians icon_state = "magicbase" icon_living = "magicbase" icon_dead = "magicbase" - speed = 0 + speed = -0.5 blood_volume = 0 a_intent = INTENT_HARM stop_automated_movement = 1 @@ -511,7 +511,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians var/used_message = "All the cards seem to be blank now." var/failure_message = "..And draw a card! It's...blank? Maybe you should try again later." var/ling_failure = "The deck refuses to respond to a souless creature such as you." - var/list/possible_guardians = list("Assassin", "Chaos", "Charger", "Explosive", "Lightning", "Protector", "Ranged", "Standard", "Support") + var/list/possible_guardians = list("Assassin", "Chaos", "Gravitokinetic", "Charger", "Explosive", "Lightning", "Protector", "Ranged", "Standard", "Support") var/random = TRUE var/allowmultiple = FALSE var/allowling = TRUE @@ -559,6 +559,9 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians if("Chaos") pickedtype = /mob/living/simple_animal/hostile/guardian/fire + if("Gravitokinetic") + pickedtype = /mob/living/simple_animal/hostile/guardian/gravitokinetic + if("Standard") pickedtype = /mob/living/simple_animal/hostile/guardian/punch @@ -615,10 +618,10 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians random = FALSE /obj/item/guardiancreator/choose/dextrous - possible_guardians = list("Assassin", "Chaos", "Charger", "Dextrous", "Explosive", "Lightning", "Protector", "Ranged", "Standard", "Support") + possible_guardians = list("Assassin", "Chaos", "Gravitokinetic", "Charger", "Dextrous", "Explosive", "Lightning", "Protector", "Ranged", "Standard", "Support") /obj/item/guardiancreator/choose/wizard - possible_guardians = list("Assassin", "Chaos", "Charger", "Dextrous", "Explosive", "Lightning", "Protector", "Ranged", "Standard") + possible_guardians = list("Assassin", "Chaos", "Gravitokinetic", "Charger", "Dextrous", "Explosive", "Lightning", "Protector", "Ranged", "Standard") allowmultiple = TRUE /obj/item/guardiancreator/tech @@ -634,7 +637,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians ling_failure = "The holoparasites recoil in horror. They want nothing to do with a creature like you." /obj/item/guardiancreator/tech/choose/traitor - possible_guardians = list("Assassin", "Chaos", "Charger", "Explosive", "Lightning", "Protector", "Ranged", "Standard", "Support") + possible_guardians = list("Assassin", "Chaos", "Gravitokinetic", "Charger", "Explosive", "Lightning", "Protector", "Ranged", "Standard", "Support") allowling = FALSE /obj/item/guardiancreator/tech/choose/traitor/check_uplink_validity() @@ -644,10 +647,10 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians random = FALSE /obj/item/guardiancreator/tech/choose/dextrous - possible_guardians = list("Assassin", "Chaos", "Charger", "Dextrous", "Explosive", "Lightning", "Protector", "Ranged", "Standard", "Support") + possible_guardians = list("Assassin", "Chaos", "Gravitokinetic", "Charger", "Dextrous", "Explosive", "Lightning", "Protector", "Ranged", "Standard", "Support") /obj/item/guardiancreator/tech/choose/nukie // lacks support and protector as encouraging nukies to play turtle isnt fun and dextrous is epic - possible_guardians = list("Assassin", "Chaos", "Charger", "Dextrous", "Explosive", "Lightning", "Ranged", "Standard") + possible_guardians = list("Assassin", "Chaos", "Gravitokinetic", "Charger", "Dextrous", "Explosive", "Lightning", "Ranged", "Standard") /obj/item/guardiancreator/tech/choose/nukie/check_uplink_validity() return !used @@ -666,6 +669,8 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
Explosive: High damage resist and medium power attack that may explosively teleport targets. Can turn any object, including objects too large to pick up, into a bomb, dealing explosive damage to the next person to touch it. The object will return to normal after the trap is triggered or after a delay.

+ Gravitokinetic: Attacks will apply crushing gravity to the target. Can target the ground as well to slow targets advancing on you, but this will affect the user.
+
Lightning: Attacks apply lightning chains to targets. Has a lightning chain to the user. Lightning chains shock everything near them, doing constant damage.

Protector: Causes you to teleport to it when out of range, unlike other parasites. Has two modes; Combat, where it does and takes medium damage, and Protection, where it does and takes almost no damage but moves slightly slower.
@@ -695,6 +700,8 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
Explosive: High damage resist and medium power attack that may explosively teleport targets. Can turn any object, including objects too large to pick up, into a bomb, dealing explosive damage to the next person to touch it. The object will return to normal after the trap is triggered or after a delay.

+ Gravitokinetic: Attacks will apply crushing gravity to the target. Can target the ground as well to slow targets advancing on you, but this will affect the user.
+
Lightning: Attacks apply lightning chains to targets. Has a lightning chain to the user. Lightning chains shock everything near them, doing constant damage.

Protector: Causes you to teleport to it when out of range, unlike other parasites. Has two modes; Combat, where it does and takes medium damage, and Protection, where it does and takes almost no damage but moves slightly slower.
@@ -720,6 +727,8 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
Explosive: High damage resist and medium power attack that may explosively teleport targets. Can turn any object, including objects too large to pick up, into a bomb, dealing explosive damage to the next person to touch it. The object will return to normal after the trap is triggered or after a delay.

+ Gravitokinetic: Attacks will apply crushing gravity to the target. Can target the ground as well to slow targets advancing on you, but this will affect the user.
+
Lightning: Attacks apply lightning chains to targets. Has a lightning chain to the user. Lightning chains shock everything near them, doing constant damage.

Ranged: Has two modes. Ranged; which fires a constant stream of weak, armor-ignoring projectiles. Scout; Cannot attack, but can move through walls and is quite hard to see. Can lay surveillance snares, which alert it when crossed, in either mode.
diff --git a/code/modules/mob/living/simple_animal/guardian/types/assassin.dm b/code/modules/mob/living/simple_animal/guardian/types/assassin.dm index 3bc079f6d5..b5bb91d34f 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/assassin.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/assassin.dm @@ -1,5 +1,7 @@ //Assassin /mob/living/simple_animal/hostile/guardian/assassin + melee_damage_lower = 15 + melee_damage_upper = 15 attack_verb_continuous = "slashes" attack_verb_simple = "slash" attack_sound = 'sound/weapons/bladeslice.ogg' diff --git a/code/modules/mob/living/simple_animal/guardian/types/charger.dm b/code/modules/mob/living/simple_animal/guardian/types/charger.dm index 0b4952aa9e..9060350df4 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/charger.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/charger.dm @@ -1,8 +1,11 @@ //Charger /mob/living/simple_animal/hostile/guardian/charger + melee_damage_lower = 15 + melee_damage_upper = 15 ranged = 1 //technically ranged_message = "charges" ranged_cooldown_time = 20 + speed = -1 damage_coeff = list(BRUTE = 0.2, BURN = 0.5, TOX = 0.5, CLONE = 0.5, STAMINA = 0, OXY = 0.5) playstyle_string = "As a charger type you do medium damage, take half damage, have near immunity to brute damage, move very fast, and can charge at a location, damaging any target hit and forcing them to drop any items they are holding." magic_fluff_string = "..And draw the Hunter, an alien master of rapid assault." diff --git a/code/modules/mob/living/simple_animal/guardian/types/explosive.dm b/code/modules/mob/living/simple_animal/guardian/types/explosive.dm index b9037ff4a4..39a7bfaebd 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/explosive.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/explosive.dm @@ -1,5 +1,7 @@ //Bomb /mob/living/simple_animal/hostile/guardian/bomb + melee_damage_lower = 15 + melee_damage_upper = 15 damage_coeff = list(BRUTE = 0.6, BURN = 0.6, TOX = 0.6, CLONE = 0.6, STAMINA = 0, OXY = 0.6) playstyle_string = "As an explosive type, you have moderate close combat abilities, take half damage, may explosively teleport targets on attack, and are capable of converting nearby items and objects into disguised bombs via alt click." magic_fluff_string = "..And draw the Scientist, master of explosive death." diff --git a/code/modules/mob/living/simple_animal/guardian/types/gravitokinetic.dm b/code/modules/mob/living/simple_animal/guardian/types/gravitokinetic.dm new file mode 100644 index 0000000000..34948d3e0c --- /dev/null +++ b/code/modules/mob/living/simple_animal/guardian/types/gravitokinetic.dm @@ -0,0 +1,73 @@ +//gravitokinetic +/mob/living/simple_animal/hostile/guardian/gravitokinetic + melee_damage_lower = 15 + melee_damage_upper = 15 + damage_coeff = list(BRUTE = 0.75, BURN = 0.75, TOX = 0.75, CLONE = 0.75, STAMINA = 0, OXY = 0.75) + playstyle_string = "As a gravitokinetic type, you can alt click to make the gravity on the ground stronger, and punching applies this effect to a target." + magic_fluff_string = "..And draw the Singularity, an anomalous force of terror." + tech_fluff_string = "Boot sequence complete. Gravitokinetic modules loaded. Holoparasite swarm online." + carp_fluff_string = "CARP CARP CARP! Caught one! It's a gravitokinetic carp! Now do you understand the gravity of the situation?" + var/list/gravito_targets = list() + var/gravity_power_range = 10 //how close the stand must stay to the target to keep the heavy gravity + +///Removes gravity from affected mobs upon guardian death to prevent permanent effects +/mob/living/simple_animal/hostile/guardian/gravitokinetic/death() + . = ..() + for(var/i in gravito_targets) + remove_gravity(i) + +/mob/living/simple_animal/hostile/guardian/gravitokinetic/AttackingTarget() + . = ..() + if(isliving(target) && target != src && target != summoner) + to_chat(src, "Your punch has applied heavy gravity to [target]!") + add_gravity(target, 5) + to_chat(target, "Everything feels really heavy!") + +/mob/living/simple_animal/hostile/guardian/gravitokinetic/AltClickOn(atom/A) + if(isopenturf(A) && is_deployed() && stat != DEAD && in_range(src, A) && !incapacitated()) + var/turf/T = A + if(isspaceturf(T)) + to_chat(src, "You cannot add gravity to space!") + return + visible_message("[src] slams their fist into the [T]!", "You modify the gravity of the [T].") + do_attack_animation(T) + add_gravity(T, 3) + return + return ..() + +/mob/living/simple_animal/hostile/guardian/gravitokinetic/Recall(forced) + . = ..() + to_chat(src, "You have released your gravitokinetic powers!") + for(var/i in gravito_targets) + remove_gravity(i) + +/mob/living/simple_animal/hostile/guardian/gravitokinetic/Manifest(forced) + . = ..() + //just make sure to reapply a gravity immunity wherever you summon. it can be overridden but not by you at least + summoner.AddElement(/datum/element/forced_gravity, 1) + AddElement(/datum/element/forced_gravity, 1) + +/mob/living/simple_animal/hostile/guardian/gravitokinetic/Moved(oldLoc, dir) + . = ..() + for(var/i in gravito_targets) + if(get_dist(src, i) > gravity_power_range) + remove_gravity(i) + +/mob/living/simple_animal/hostile/guardian/gravitokinetic/proc/add_gravity(atom/A, new_gravity = 3) + if(gravito_targets[A]) + return + A.AddElement(/datum/element/forced_gravity, new_gravity) + gravito_targets[A] = new_gravity + RegisterSignal(A, COMSIG_MOVABLE_MOVED, .proc/__distance_check) + playsound(src, 'sound/effects/gravhit.ogg', 100, TRUE) + +/mob/living/simple_animal/hostile/guardian/gravitokinetic/proc/remove_gravity(atom/target) + if(isnull(gravito_targets[target])) + return + UnregisterSignal(target, COMSIG_MOVABLE_MOVED) + target.RemoveElement(/datum/element/forced_gravity, gravito_targets[target]) + gravito_targets -= target + +/mob/living/simple_animal/hostile/guardian/gravitokinetic/proc/__distance_check(atom/movable/AM, OldLoc, Dir, Forced) + if(get_dist(src, AM) > gravity_power_range) + remove_gravity(AM) \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/guardian/types/protector.dm b/code/modules/mob/living/simple_animal/guardian/types/protector.dm index cf6bd3cdb5..99272a6d3f 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/protector.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/protector.dm @@ -1,5 +1,7 @@ //Protector /mob/living/simple_animal/hostile/guardian/protector + melee_damage_lower = 15 + melee_damage_upper = 15 range = 15 //worse for it due to how it leashes damage_coeff = list(BRUTE = 0.4, BURN = 0.4, TOX = 0.4, CLONE = 0.4, STAMINA = 0, OXY = 0.4) playstyle_string = "As a protector type you cause your summoner to leash to you instead of you leashing to them and have two modes; Combat Mode, where you do and take medium damage, and Protection Mode, where you do and take almost no damage, but move slightly slower." @@ -31,9 +33,10 @@ cooldown = world.time + 10 if(toggle) cut_overlays() - melee_damage_lower = 15 - melee_damage_upper = 15 - speed = 0 + add_overlay(cooloverlay) //readd the guardian's colors + melee_damage_lower = initial(melee_damage_lower) + melee_damage_upper = initial(melee_damage_upper) + speed = initial(speed) damage_coeff = list(BRUTE = 0.4, BURN = 0.4, TOX = 0.4, CLONE = 0.4, STAMINA = 0, OXY = 0.4) to_chat(src, "You switch to combat mode.") toggle = FALSE diff --git a/code/modules/mob/living/simple_animal/guardian/types/support.dm b/code/modules/mob/living/simple_animal/guardian/types/support.dm index eee3eb0cdb..b51552acd2 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/support.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/support.dm @@ -4,6 +4,8 @@ friendly_verb_continuous = "heals" friendly_verb_simple = "heal" damage_coeff = list(BRUTE = 0.7, BURN = 0.7, TOX = 0.7, CLONE = 0.7, STAMINA = 0, OXY = 0.7) + melee_damage_lower = 15 + melee_damage_upper = 15 playstyle_string = "As a support type, you have 30% damage reduction and may toggle your basic attacks to a healing mode. In addition, Alt-Clicking on an adjacent object or mob will warp them to your bluespace beacon after a short delay." magic_fluff_string = "..And draw the CMO, a potent force of life... and death." carp_fluff_string = "CARP CARP CARP! You caught a support carp. It's a kleptocarp!" @@ -43,15 +45,15 @@ if(src.loc == summoner) if(toggle) a_intent = INTENT_HARM - speed = 0 + speed = initial(speed) damage_coeff = list(BRUTE = 0.7, BURN = 0.7, TOX = 0.7, CLONE = 0.7, STAMINA = 0, OXY = 0.7) - melee_damage_lower = 15 - melee_damage_upper = 15 + melee_damage_lower = initial(melee_damage_lower) + melee_damage_upper = initial(melee_damage_upper) to_chat(src, "You switch to combat mode.") toggle = FALSE else a_intent = INTENT_HELP - speed = 1 + speed = initial(speed) damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) melee_damage_lower = 0 melee_damage_upper = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm index 2c94739180..f6ab2a1a9e 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm @@ -59,12 +59,12 @@ /mob/living/simple_animal/hostile/retaliate/ghost/proc/give_hair() if(ghost_hair_style != null) - ghost_hair = mutable_appearance('icons/mob/human_face.dmi', "hair_[ghost_hair_style]", -HAIR_LAYER) + ghost_hair = mutable_appearance('icons/mob/hair.dmi', "hair_[ghost_hair_style]", -HAIR_LAYER) ghost_hair.alpha = 200 ghost_hair.color = ghost_hair_color add_overlay(ghost_hair) if(ghost_facial_hair_style != null) - ghost_facial_hair = mutable_appearance('icons/mob/human_face.dmi', "facial_[ghost_facial_hair_style]", -HAIR_LAYER) + ghost_facial_hair = mutable_appearance('icons/mob/hair.dmi', "facial_[ghost_facial_hair_style]", -HAIR_LAYER) ghost_facial_hair.alpha = 200 ghost_facial_hair.color = ghost_facial_hair_color add_overlay(ghost_facial_hair) diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index a26f05d553..0026a612e0 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -85,9 +85,14 @@ . += "[get_ammo(0,0)] of those are live rounds." /obj/item/gun/ballistic/revolver/syndicate + obj_flags = UNIQUE_RENAME unique_reskin = list("Default" = "revolver", "Silver" = "russianrevolver", - "Robust" = "revolvercit") + "Robust" = "revolvercit", + "Bulky" = "revolverhakita", + "Polished" = "revolvertoriate", + "Soulless" = "revolveroldflip", + "Soul" = "revolverold") /obj/item/gun/ballistic/revolver/detective name = "\improper .38 Mars Special" diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index 86464aceea..070d5cb269 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -484,12 +484,12 @@ return FALSE var/list/D = holder.get_data("blood") if(D && D["changeling_loudness"]) - return (D["changeling_loudness"] >= 4 ? D["changeling_loudness"] : FALSE) + return (D["changeling_loudness"] >= LINGBLOOD_DETECTION_THRESHOLD ? D["changeling_loudness"] : FALSE) else return FALSE /datum/chemical_reaction/reagent_explosion/lingblood/on_reaction(datum/reagents/holder, multiplier, specialreact) - if(specialreact >= 10) + if(specialreact > LINGBLOOD_EXPLOSION_THRESHOLD) return ..() else return FALSE diff --git a/code/modules/ruins/spaceruin_code/skelter.dm b/code/modules/ruins/spaceruin_code/skelter.dm new file mode 100644 index 0000000000..526277cf56 --- /dev/null +++ b/code/modules/ruins/spaceruin_code/skelter.dm @@ -0,0 +1,4 @@ +/////////// skelter items + +/obj/item/paper/fluff/ruins/skelter/cloner + info = "You may be wondering why your pay has been cut, but rest assured - it's because we're investing in YOU! Should you meet your untimely demise, this machine can bring you back to life with as little as your brain! It also means death is no longer an acceptable excuse for neglecting your duties, so get back to work!
\n
\n-HQ" diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm index b6a0a387e2..8b1473fed2 100644 --- a/code/modules/surgery/bodyparts/head.dm +++ b/code/modules/surgery/bodyparts/head.dm @@ -161,7 +161,7 @@ debrain_overlay.icon = 'icons/mob/animal_parts.dmi' debrain_overlay.icon_state = "debrained_larva" else if(!(NOBLOOD in species_flags_list)) - debrain_overlay.icon = 'icons/mob/human_face.dmi' + debrain_overlay.icon = 'icons/mob/human_parts.dmi' debrain_overlay.icon_state = "debrained" . += debrain_overlay else @@ -175,21 +175,31 @@ // lipstick if(lip_style) - var/image/lips_overlay = image('icons/mob/human_face.dmi', "lips_[lip_style]", -BODY_LAYER, SOUTH) + var/image/lips_overlay = image('icons/mob/lips.dmi', "lips_[lip_style]", -BODY_LAYER, SOUTH) lips_overlay.color = lip_color . += lips_overlay // eyes if(eyes) - var/image/left_eye = image('icons/mob/human_face.dmi', "left_eye", -BODY_LAYER, SOUTH) - var/image/right_eye = image('icons/mob/human_face.dmi', "right_eye", -BODY_LAYER, SOUTH) - if(eyes.left_eye_color && eyes.right_eye_color) - left_eye.color = "#" + eyes.left_eye_color - right_eye.color = "#" + eyes.right_eye_color - . += left_eye - . += right_eye + var/left_state = DEFAULT_LEFT_EYE_STATE + var/right_state = DEFAULT_RIGHT_EYE_STATE + if(owner && owner.dna.species) + var/eye_type = owner.dna.species.eye_type + if(GLOB.eye_types[eye_type]) + left_state = eye_type + "_left_eye" + right_state = eye_type + "_right_eye" + if(left_state != DEFAULT_NO_EYE_STATE) + var/image/left_eye = image('icons/mob/hair.dmi', left_state, -BODY_LAYER, SOUTH) + if(eyes.left_eye_color) + left_eye.color = "#" + eyes.left_eye_color + . += left_eye + if(right_state != DEFAULT_NO_EYE_STATE) + var/image/right_eye = image('icons/mob/hair.dmi', right_state, -BODY_LAYER, SOUTH) + if(eyes.right_eye_color) + right_eye.color = "#" + eyes.right_eye_color + . += right_eye else - var/eyes_overlay = image('icons/mob/human_face.dmi', "eyes_missing", -BODY_LAYER, SOUTH) + var/eyes_overlay = image('icons/mob/hair.dmi', "eyes_missing", -BODY_LAYER, SOUTH) . += eyes_overlay /obj/item/bodypart/head/monkey diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm index efceefc131..b4c58b31ed 100644 --- a/code/modules/surgery/organs/eyes.dm +++ b/code/modules/surgery/organs/eyes.dm @@ -248,7 +248,7 @@ /obj/item/organ/eyes/robotic/glow/Initialize() . = ..() - mob_overlay = image('icons/mob/human_face.dmi', "eyes_glow_gs") + mob_overlay = image('icons/mob/eyes.dmi', "eyes_glow_gs") /obj/item/organ/eyes/robotic/glow/Destroy() terminate_effects() diff --git a/code/modules/vore/eating/living.dm b/code/modules/vore/eating/living.dm index 8923e9107d..a0ae58a44d 100644 --- a/code/modules/vore/eating/living.dm +++ b/code/modules/vore/eating/living.dm @@ -342,21 +342,23 @@ to_chat(src, "You can't do that so fast, slow down.") return - var/list/choices + DelayNextAction(CLICK_CD_MELEE, flush = TRUE) + + var/list/lickable = list() for(var/mob/living/L in view(1)) if(L != src && (!L.ckey || L.client?.prefs.vore_flags & LICKABLE) && Adjacent(L)) - LAZYADD(choices, L) + LAZYADD(lickable, L) + for(var/mob/living/listed in lickable) + lickable[listed] = new /mutable_appearance(listed) - if(!choices) + if(!lickable) return - var/mob/living/tasted = input(src, "Who would you like to lick? (Excluding yourself and those with the preference disabled)", "Licking") as null|anything in choices + var/mob/living/tasted = show_radial_menu(src, src, lickable, radius = 40, require_near = TRUE) if(QDELETED(tasted) || (tasted.ckey && !(tasted.client?.prefs.vore_flags & LICKABLE)) || !Adjacent(tasted) || incapacitated(ignore_restraints = TRUE)) return - DelayNextAction(CLICK_CD_MELEE) - visible_message("[src] licks [tasted]!","You lick [tasted]. They taste rather like [tasted.get_taste_message()].","Slurp!") /mob/living/proc/get_taste_message(allow_generic = TRUE, datum/species/mrace) diff --git a/code/modules/vore/eating/vorepanel.dm b/code/modules/vore/eating/vorepanel.dm index 9cb46d011d..6e3951e60a 100644 --- a/code/modules/vore/eating/vorepanel.dm +++ b/code/modules/vore/eating/vorepanel.dm @@ -661,7 +661,7 @@ if(href_list["saveprefs"]) if(!(user.client?.prefs)) return FALSE - if(!user.client.prefs.save_character()) + if(!user.copy_to_prefs_vr() || !user.client.prefs.save_character()) to_chat(user, "Belly Preferences not saved!") log_admin("Could not save vore prefs on USER: [user].") else diff --git a/html/changelogs/AutoChangeLog-pr-13252.yml b/html/changelogs/AutoChangeLog-pr-13252.yml new file mode 100644 index 0000000000..5de40bb80b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13252.yml @@ -0,0 +1,4 @@ +author: "timothyteakettle" +delete-after: True +changes: + - tweak: "looking at loadout equips loadout items on your preview image instead of job items" diff --git a/html/changelogs/AutoChangeLog-pr-13496.yml b/html/changelogs/AutoChangeLog-pr-13496.yml new file mode 100644 index 0000000000..30308efaff --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13496.yml @@ -0,0 +1,4 @@ +author: "Detective-Google" +delete-after: True +changes: + - rscadd: "explosions now get broadcasted to deadchat." diff --git a/html/changelogs/AutoChangeLog-pr-13498.yml b/html/changelogs/AutoChangeLog-pr-13498.yml new file mode 100644 index 0000000000..f956ee4b07 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13498.yml @@ -0,0 +1,5 @@ +author: "Bhijn" +delete-after: True +changes: + - tweak: "Changeling loudness is now determined as an average of all their abilities, rather than the sum" + - tweak: "To compensate for this, blood tests now require a loudness value of 1 or higher to detect ling blood. Additionally, blood test explosions are now triggered only when the loudness value is higher than 2." diff --git a/html/changelogs/AutoChangeLog-pr-13500.yml b/html/changelogs/AutoChangeLog-pr-13500.yml new file mode 100644 index 0000000000..7ba1eb64f3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13500.yml @@ -0,0 +1,5 @@ +author: "LetterN" +delete-after: True +changes: + - rscadd: "2 more ways to get up from z1" + - tweak: "tweaked the z2 garden to be less blank" diff --git a/html/changelogs/AutoChangeLog-pr-13501.yml b/html/changelogs/AutoChangeLog-pr-13501.yml new file mode 100644 index 0000000000..dcdd868e37 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13501.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - bugfix: "Holofirelocks work now." diff --git a/html/changelogs/AutoChangeLog-pr-13503.yml b/html/changelogs/AutoChangeLog-pr-13503.yml new file mode 100644 index 0000000000..c68eaf44f0 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13503.yml @@ -0,0 +1,5 @@ +author: "Hatterhat" +delete-after: True +changes: + - rscadd: "Survival daggers! A slightly more expensive survival knife that comes with a brighter flashlight. On the blade." + - tweak: "Luxury pod capsules look different from normal capsules." diff --git a/html/changelogs/AutoChangeLog-pr-13504.yml b/html/changelogs/AutoChangeLog-pr-13504.yml new file mode 100644 index 0000000000..7f59b120b6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13504.yml @@ -0,0 +1,6 @@ +author: "zeroisthebiggay" +delete-after: True +changes: + - rscadd: "gravitokinetic stands from tg" + - balance: "buffs stands overall" + - bugfix: "protector stands no longer become tposing invisible apes sometimes" diff --git a/html/changelogs/AutoChangeLog-pr-13509.yml b/html/changelogs/AutoChangeLog-pr-13509.yml new file mode 100644 index 0000000000..e666a6b2a4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13509.yml @@ -0,0 +1,6 @@ +author: "EmeraldSundisk" +delete-after: True +changes: + - balance: "The \"Skelter ruin\" now has stechkins as opposed to M1911s" + - tweak: "Skelter's decorative bullet casings replaced to factor in the change in caliber" + - rscadd: "Skelter now has a combat knife and fluff note" diff --git a/html/changelogs/AutoChangeLog-pr-13511.yml b/html/changelogs/AutoChangeLog-pr-13511.yml new file mode 100644 index 0000000000..e819d8752d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13511.yml @@ -0,0 +1,4 @@ +author: "Hatterhat" +delete-after: True +changes: + - imageadd: "The Syndicate appear to be issuing new revolver variants." diff --git a/html/changelogs/AutoChangeLog-pr-13512.yml b/html/changelogs/AutoChangeLog-pr-13512.yml new file mode 100644 index 0000000000..f96f13a156 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13512.yml @@ -0,0 +1,4 @@ +author: "Hatterhat" +delete-after: True +changes: + - bugfix: "Cryogenics now screams on common again when your fuckbuddy heads out." diff --git a/html/changelogs/AutoChangeLog-pr-13513.yml b/html/changelogs/AutoChangeLog-pr-13513.yml new file mode 100644 index 0000000000..0cff979e8c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13513.yml @@ -0,0 +1,4 @@ +author: "timothyteakettle" +delete-after: True +changes: + - rscadd: "you can now pick your eye sprites from customization" diff --git a/html/changelogs/AutoChangeLog-pr-13514.yml b/html/changelogs/AutoChangeLog-pr-13514.yml new file mode 100644 index 0000000000..bd1605fb96 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13514.yml @@ -0,0 +1,4 @@ +author: "Thalpy" +delete-after: True +changes: + - bugfix: "fixes some bugs in jacqs code from edits to the codebase" diff --git a/html/changelogs/AutoChangeLog-pr-13516.yml b/html/changelogs/AutoChangeLog-pr-13516.yml new file mode 100644 index 0000000000..30e22f4f48 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13516.yml @@ -0,0 +1,4 @@ +author: "yorii" +delete-after: True +changes: + - bugfix: "fixed botany rounding error that caused grass and other plants to misbehave" diff --git a/html/changelogs/AutoChangeLog-pr-13518.yml b/html/changelogs/AutoChangeLog-pr-13518.yml new file mode 100644 index 0000000000..565754f48b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13518.yml @@ -0,0 +1,4 @@ +author: "TheObserver-sys" +delete-after: True +changes: + - bugfix: "Drake? Where's the dead fairygrass sprite?" diff --git a/html/changelogs/AutoChangeLog-pr-13519.yml b/html/changelogs/AutoChangeLog-pr-13519.yml new file mode 100644 index 0000000000..0c4978a7d8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13519.yml @@ -0,0 +1,4 @@ +author: "Detective-Google" +delete-after: True +changes: + - rscadd: "Lick radial" diff --git a/html/changelogs/AutoChangeLog-pr-13523.yml b/html/changelogs/AutoChangeLog-pr-13523.yml new file mode 100644 index 0000000000..ac2019bb88 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13523.yml @@ -0,0 +1,4 @@ +author: "Detective-Google" +delete-after: True +changes: + - bugfix: "arcade carpets now actually work" diff --git a/html/changelogs/AutoChangeLog-pr-13526.yml b/html/changelogs/AutoChangeLog-pr-13526.yml new file mode 100644 index 0000000000..104b76bd94 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-13526.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - bugfix: "vore prefs save now" diff --git a/html/statbrowser.html b/html/statbrowser.html index fbdbb61449..0920081fd2 100644 --- a/html/statbrowser.html +++ b/html/statbrowser.html @@ -7,149 +7,172 @@ @@ -267,9 +290,10 @@ if (window.location) { }); */ // Status panel implementation ------------------------------------------------ -var status_tab_parts = ["loading..."]; +var status_tab_parts = ["Loading..."]; var current_tab = null; -var mc_tab_parts = [["loading...", ""]]; +var mc_tab_parts = [["Loading...", ""]]; +var vote_parts = [[null]]; var href_token = null; var spells = []; var spell_tabs = []; @@ -288,6 +312,8 @@ var statcontentdiv = document.querySelector('#statcontent'); var storedimages = []; function createStatusTab(name) { + if (name.indexOf(".") != -1) + name = name.split(".")[0]; if(document.getElementById(name) || name.trim() == "") return; if(!verb_tabs.includes(name) && !permanent_tabs.includes(name)) @@ -302,12 +328,8 @@ function createStatusTab(name) { B.className = "button"; //ORDERING ALPHABETICALLY B.style.order = name.charCodeAt(0); - if(name == "Status" || name == "MC") { - if(name == "Status") - B.style.order = 1; - else - B.style.order = 2; - } + if(name == "Status" || name == "MC") + B.style.order = name == "Status" ? 1 : 2; //END ORDERING menu.appendChild(B); SendTabToByond(name); @@ -327,6 +349,19 @@ function removeStatusTab(name) { under_menu.style.height = menu.clientHeight + 'px'; } +function sortVerbs() { + verbs.sort(function (a, b) { + var selector = a[0] == b[0] ? 1 : 0; + if (a[selector].toUpperCase() < b[selector].toUpperCase()) { + return 1; + } + else if (a[selector].toUpperCase() > b[selector].toUpperCase()) { + return -1; + } + return 0; + }) +} + window.onresize = function () { under_menu.style.height = menu.clientHeight + 'px'; } @@ -365,19 +400,19 @@ function check_verbs() { for(var v = verb_tabs.length - 1; v >= 0; v--){ verbs_cat_check(verb_tabs[v]); } - //checkStatusTab(); // removes any empty status tabs } function verbs_cat_check(cat) { + var tabCat = cat.indexOf(".") != -1 ? cat.split(".")[0] : cat; var verbs_in_cat = 0; var verbcat = ""; - if(!verb_tabs.includes(cat)){ - removeStatusTab(cat); + if(!verb_tabs.includes(tabCat)){ + removeStatusTab(tabCat); return; } for(var v = 0; v < verbs.length; v++){ var part = verbs[v]; - verbcat = part[0]; + verbcat = part[0].indexOf(".") != -1 ? part[0].split(".") : part[0]; if(verbcat != cat || verbcat.trim() == ""){ continue; } @@ -387,8 +422,8 @@ function verbs_cat_check(cat) { } } if(verbs_in_cat != 1) { - removeStatusTab(cat); - if(current_tab == cat) + removeStatusTab(tabCat); + if(current_tab == tabCat) tab_change("Status"); } } @@ -411,17 +446,20 @@ function add_verb_list(v) { to_add.sort(); // sort what we're adding for(var i = 0; i < to_add.length; i++) { var part = to_add[i]; + if (!part[0]) + continue; + var category = part[0].indexOf(".") == -1 ? part[0] : part[0].split(".")[0] if(findVerbindex(part[1], verbs)) continue; - if(verb_tabs.includes(part[0])){ + if(verb_tabs.includes(category)){ verbs.push(part); - if(current_tab == part[0]) { - draw_verbs(part[0]); // redraw if we added a verb to the tab we're currently in + if(current_tab == category) { + draw_verbs(category); // redraw if we added a verb to the tab we're currently in } - } else if(part[0]) { - verb_tabs.push(part[0]); + } else if(category) { + verb_tabs.push(category); verbs.push(part); - createStatusTab(part[0]); + createStatusTab(category); } } } @@ -432,7 +470,7 @@ function remove_verb_list(v) { remove_verb(to_remove[i]); } check_verbs(); - verbs.sort(); + sortVerbs(); if(verb_tabs.includes(current_tab)) draw_verbs(current_tab); } @@ -455,7 +493,7 @@ function init_verbs(c, v) { } if(v) { add_verb_list(v); - verbs.sort(); // sort them + sortVerbs(); // sort them if(do_update) { draw_verbs(current_tab); } @@ -491,6 +529,12 @@ function update(global_data, ping_entry, other_entries) { else if(current_tab == "Debug Stat Panel") draw_debug(); } +/// citadel statvoting +function update_voting(vote_data) { + vote_parts = JSON.parse(vote_data); + if(current_tab == "Status") + draw_status(); +} function update_mc(global_mc_data, coords_entry) { mc_tab_parts = JSON.parse(global_mc_data); @@ -586,7 +630,7 @@ function tab_change(tab) { }else if(tab == turfname) { draw_listedturf(); } else { - statcontentdiv[textContentKey] = "loading..."; + statcontentdiv[textContentKey] = "Loading..."; } window.location.href = "byond://winset?statbrowser.is-visible=true"; } @@ -667,6 +711,33 @@ function draw_status() { document.getElementById("statcontent").appendChild(div); } } + //voting shitcode. See mc for more info. + if(vote_parts && vote_parts[0][0]) { //null verification. + var table = document.createElement("table"); + for(var i = 0; i < vote_parts.length; i++) { + var part = vote_parts[i]; + var tr = document.createElement("tr"); + var td1 = document.createElement("td"); + td1[textContentKey] = part[0]; + var td2 = document.createElement("td"); + if(part[2]) { + var a = document.createElement("a"); + if(part[2] === "disabled") { + a.href = "byond://winset?command=Vote"; + } else { + a.href = "?src=" + part[2]; + } + a[textContentKey] = part[1]; + td2.appendChild(a); + } else { + td2[textContentKey] = part[1]; + } + tr.appendChild(td1); + tr.appendChild(td2); + table.appendChild(tr); + } + document.getElementById("statcontent").appendChild(table); + } if(verb_tabs.length == 0 || !verbs) { window.location.href = "byond://winset?command=Fix-Stat-Panel"; @@ -912,29 +983,46 @@ function draw_spells(cat) { function draw_verbs(cat){ statcontentdiv[textContentKey] = ""; - var table = document.createElement("newdiv"); + var table = document.createElement("div"); + var additions = {}; // additional sub-categories to be rendered table.className = "grid-container"; - var command = ""; // typecast name to string - verbs.sort(); + sortVerbs(); verbs.reverse(); // sort verbs backwards before we draw - for(var i = verbs.length - 1; i >= 0; i--) { - var part = verbs[i]; // should be a list containing category and command - if(!part[1]) continue; - if(part[0] != cat){ - continue; + for (var i = 0; i < verbs.length; ++i) { + var part = verbs[i]; + var name = part[0]; + var command = part[1]; + + if (command && name.lastIndexOf(cat, 0) != -1 && (name.length == cat.length || name.charAt(cat.length) == ".")) { + var subCat = name.lastIndexOf(".") != -1 ? name.split(".")[1] : null; + if (subCat && !additions[subCat]) { + var newTable = document.createElement("div"); + newTable.className = "grid-container"; + additions[subCat] = newTable; + } + + var a = document.createElement("a"); + a.href = "byond://winset?command=" + command.replace(/\s/g, "-"); + a[textContentKey] = command; + a.className = "grid-item"; + (subCat ? additions[subCat] : table).appendChild(a); + } + } + + // Append base table to view + var content = document.getElementById("statcontent"); + content.appendChild(table); + + // Append additional sub-categories if relevant + for (var cat in additions) { + if (additions.hasOwnProperty(cat)) { + // do addition here + var header = document.createElement("h3"); + header[textContentKey] = cat; + content.appendChild(header); + content.appendChild(additions[cat]); } - if(part[0].trim() == ""){ - verbs.splice(i, 1); - continue; - } - command = part[1]; - var a = document.createElement("a"); - a.href = "byond://winset?command=" + command.replace(/\s/g, "-"); - a[textContentKey] = command; - a.className = "grid-item"; - table.appendChild(a); } - document.getElementById("statcontent").appendChild(table); } function set_theme(which) { diff --git a/icons/mob/eyes.dmi b/icons/mob/eyes.dmi new file mode 100644 index 0000000000..be25096615 Binary files /dev/null and b/icons/mob/eyes.dmi differ diff --git a/icons/mob/hair.dmi b/icons/mob/hair.dmi new file mode 100644 index 0000000000..6dfa78fcff Binary files /dev/null and b/icons/mob/hair.dmi differ diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index 1e67d7baba..563dd6665c 100644 Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ diff --git a/icons/mob/human_parts.dmi b/icons/mob/human_parts.dmi index 60978d55a2..173995e6c4 100644 Binary files a/icons/mob/human_parts.dmi and b/icons/mob/human_parts.dmi differ diff --git a/icons/mob/human_parts_greyscale.dmi b/icons/mob/human_parts_greyscale.dmi index 794074bfe4..814ac9a396 100644 Binary files a/icons/mob/human_parts_greyscale.dmi and b/icons/mob/human_parts_greyscale.dmi differ diff --git a/icons/mob/inhands/weapons/hammers_lefthand.dmi b/icons/mob/inhands/weapons/hammers_lefthand.dmi index b753a1f181..2027ee4205 100644 Binary files a/icons/mob/inhands/weapons/hammers_lefthand.dmi and b/icons/mob/inhands/weapons/hammers_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/hammers_righthand.dmi b/icons/mob/inhands/weapons/hammers_righthand.dmi index 7650f6c760..7871911d4e 100644 Binary files a/icons/mob/inhands/weapons/hammers_righthand.dmi and b/icons/mob/inhands/weapons/hammers_righthand.dmi differ diff --git a/icons/mob/lips.dmi b/icons/mob/lips.dmi new file mode 100644 index 0000000000..4c00ac324a Binary files /dev/null and b/icons/mob/lips.dmi differ diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index 00670916db..939ee0e009 100644 Binary files a/icons/obj/guns/projectile.dmi and b/icons/obj/guns/projectile.dmi differ diff --git a/icons/obj/hydroponics/growing_mushrooms.dmi b/icons/obj/hydroponics/growing_mushrooms.dmi index 20633cf85b..899fa63856 100644 Binary files a/icons/obj/hydroponics/growing_mushrooms.dmi and b/icons/obj/hydroponics/growing_mushrooms.dmi differ diff --git a/icons/obj/kitchen.dmi b/icons/obj/kitchen.dmi index cb67f0d6f9..8cdff2214b 100644 Binary files a/icons/obj/kitchen.dmi and b/icons/obj/kitchen.dmi differ diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index 400c5bdfa0..ad0b74829f 100644 Binary files a/icons/obj/mining.dmi and b/icons/obj/mining.dmi differ diff --git a/interface/stylesheet.dm b/interface/stylesheet.dm index d3e72022d3..d366f69626 100644 --- a/interface/stylesheet.dm +++ b/interface/stylesheet.dm @@ -169,6 +169,7 @@ h1.alert, h2.alert {color: #000000;} .clown {color: #FF69Bf; font-size: 3; font-family: "Comic Sans MS", cursive, sans-serif; font-weight: bold;} .singing {font-family: "Trebuchet MS", cursive, sans-serif; font-style: italic;} .his_grace {color: #15D512; font-family: "Courier New", cursive, sans-serif; font-style: italic;} +.spooky {color: #FF9100;} .velvet {color: #660015; font-weight: bold; animation: velvet 5000ms infinite;} @keyframes velvet { 0% { color: #400020; } diff --git a/tgstation.dme b/tgstation.dme index 95342a9dd5..ff35af01a0 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2674,6 +2674,7 @@ #include "code\modules\mob\living\simple_animal\guardian\types\dextrous.dm" #include "code\modules\mob\living\simple_animal\guardian\types\explosive.dm" #include "code\modules\mob\living\simple_animal\guardian\types\fire.dm" +#include "code\modules\mob\living\simple_animal\guardian\types\gravitokinetic.dm" #include "code\modules\mob\living\simple_animal\guardian\types\lightning.dm" #include "code\modules\mob\living\simple_animal\guardian\types\protector.dm" #include "code\modules\mob\living\simple_animal\guardian\types\ranged.dm" @@ -3286,6 +3287,7 @@ #include "code\modules\ruins\spaceruin_code\miracle.dm" #include "code\modules\ruins\spaceruin_code\oldstation.dm" #include "code\modules\ruins\spaceruin_code\originalcontent.dm" +#include "code\modules\ruins\spaceruin_code\skelter.dm" #include "code\modules\ruins\spaceruin_code\spacehotel.dm" #include "code\modules\ruins\spaceruin_code\TheDerelict.dm" #include "code\modules\ruins\spaceruin_code\whiteshipruin_box.dm" diff --git a/tgui/packages/tgui-panel/styles/goon/chat-dark.scss b/tgui/packages/tgui-panel/styles/goon/chat-dark.scss index d84adf597f..cab5491cee 100644 --- a/tgui/packages/tgui-panel/styles/goon/chat-dark.scss +++ b/tgui/packages/tgui-panel/styles/goon/chat-dark.scss @@ -892,6 +892,10 @@ em { font-style: italic; } +.spooky { + color: #FF9100; +} + .hypnophrase { color: #202020; font-weight: bold; diff --git a/tgui/packages/tgui-panel/styles/goon/chat-light.scss b/tgui/packages/tgui-panel/styles/goon/chat-light.scss index 2700ec01c1..5ba2930bcc 100644 --- a/tgui/packages/tgui-panel/styles/goon/chat-light.scss +++ b/tgui/packages/tgui-panel/styles/goon/chat-light.scss @@ -938,6 +938,10 @@ h1.alert, h2.alert { font-style: italic; } +.spooky { + color: #FF9100; +} + .hypnophrase { color: #0d0d0d; font-weight: bold; diff --git a/tgui/public/tgui-panel.bundle.css b/tgui/public/tgui-panel.bundle.css index 66089a9dda..ba3c920f89 100644 --- a/tgui/public/tgui-panel.bundle.css +++ b/tgui/public/tgui-panel.bundle.css @@ -1 +1 @@ -body,html{box-sizing:border-box;height:100%;margin:0;font-size:12px}html{overflow:hidden;cursor:default}body{overflow:auto;font-family:Verdana,Geneva,sans-serif}*,:after,:before{box-sizing:inherit}h1,h2,h3,h4,h5,h6{display:block;margin:0;padding:.5rem 0}h1{font-size:18px;font-size:1.5rem}h2{font-size:16px;font-size:1.333rem}h3{font-size:14px;font-size:1.167rem}h4{font-size:12px;font-size:1rem}td,th{vertical-align:baseline;text-align:left}.candystripe:nth-child(odd){background-color:rgba(0,0,0,.25)}.color-black{color:#1a1a1a!important}.color-white{color:#fff!important}.color-red{color:#df3e3e!important}.color-orange{color:#f37f33!important}.color-yellow{color:#fbda21!important}.color-olive{color:#cbe41c!important}.color-green{color:#25ca4c!important}.color-teal{color:#00d6cc!important}.color-blue{color:#2e93de!important}.color-violet{color:#7349cf!important}.color-purple{color:#ad45d0!important}.color-pink{color:#e34da1!important}.color-brown{color:#b97447!important}.color-grey{color:#848484!important}.color-good{color:#68c22d!important}.color-average{color:#f29a29!important}.color-bad{color:#df3e3e!important}.color-label{color:#8b9bb0!important}.color-bg-black{background-color:#000!important}.color-bg-white{background-color:#d9d9d9!important}.color-bg-red{background-color:#bd2020!important}.color-bg-orange{background-color:#d95e0c!important}.color-bg-yellow{background-color:#d9b804!important}.color-bg-olive{background-color:#9aad14!important}.color-bg-green{background-color:#1b9638!important}.color-bg-teal{background-color:#009a93!important}.color-bg-blue{background-color:#1c71b1!important}.color-bg-violet{background-color:#552dab!important}.color-bg-purple{background-color:#8b2baa!important}.color-bg-pink{background-color:#cf2082!important}.color-bg-brown{background-color:#8c5836!important}.color-bg-grey{background-color:#646464!important}.color-bg-good{background-color:#4d9121!important}.color-bg-average{background-color:#cd7a0d!important}.color-bg-bad{background-color:#bd2020!important}.color-bg-label{background-color:#657a94!important}.debug-layout,.debug-layout :not(g):not(path){color:hsla(0,0%,100%,.9)!important;background:transparent!important;outline:1px solid hsla(0,0%,100%,.5)!important;box-shadow:none!important;filter:none!important}.debug-layout:hover,.debug-layout :not(g):not(path):hover{outline-color:hsla(0,0%,100%,.8)!important}.outline-dotted{outline-style:dotted!important}.outline-dashed{outline-style:dashed!important}.outline-solid{outline-style:solid!important}.outline-double{outline-style:double!important}.outline-groove{outline-style:groove!important}.outline-ridge{outline-style:ridge!important}.outline-inset{outline-style:inset!important}.outline-outset{outline-style:outset!important}.outline-color-black{outline:.167rem solid #1a1a1a!important}.outline-color-white{outline:.167rem solid #fff!important}.outline-color-red{outline:.167rem solid #df3e3e!important}.outline-color-orange{outline:.167rem solid #f37f33!important}.outline-color-yellow{outline:.167rem solid #fbda21!important}.outline-color-olive{outline:.167rem solid #cbe41c!important}.outline-color-green{outline:.167rem solid #25ca4c!important}.outline-color-teal{outline:.167rem solid #00d6cc!important}.outline-color-blue{outline:.167rem solid #2e93de!important}.outline-color-violet{outline:.167rem solid #7349cf!important}.outline-color-purple{outline:.167rem solid #ad45d0!important}.outline-color-pink{outline:.167rem solid #e34da1!important}.outline-color-brown{outline:.167rem solid #b97447!important}.outline-color-grey{outline:.167rem solid #848484!important}.outline-color-good{outline:.167rem solid #68c22d!important}.outline-color-average{outline:.167rem solid #f29a29!important}.outline-color-bad{outline:.167rem solid #df3e3e!important}.outline-color-label{outline:.167rem solid #8b9bb0!important}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-baseline{text-align:baseline}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-pre{white-space:pre}.text-bold{font-weight:700}.text-italic{font-style:italic}.text-underline{text-decoration:underline}.BlockQuote{color:#8b9bb0;border-left:.1666666667em solid #8b9bb0;padding-left:.5em;margin-bottom:.5em}.BlockQuote:last-child{margin-bottom:0}.Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.Button:last-child{margin-right:0;margin-bottom:0}.Button .fa,.Button .far,.Button .fas{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.Button--hasContent .fa,.Button--hasContent .far,.Button--hasContent .fas{margin-right:.25em}.Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.Button--fluid{display:block;margin-left:0;margin-right:0}.Button--circular{border-radius:50%}.Button--compact{padding:0 .25em;line-height:1.333em}.Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.Button--color--black:hover{transition:color 0ms,background-color 0ms}.Button--color--black:focus{transition:color .1s,background-color .1s}.Button--color--black:focus,.Button--color--black:hover{background-color:#0a0a0a;color:#fff}.Button--color--white{transition:color 50ms,background-color 50ms;background-color:#d9d9d9;color:#000}.Button--color--white:hover{transition:color 0ms,background-color 0ms}.Button--color--white:focus{transition:color .1s,background-color .1s}.Button--color--white:focus,.Button--color--white:hover{background-color:#f3f3f3;color:#000}.Button--color--red{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--red:hover{transition:color 0ms,background-color 0ms}.Button--color--red:focus{transition:color .1s,background-color .1s}.Button--color--red:focus,.Button--color--red:hover{background-color:#d52b2b;color:#fff}.Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#d95e0c;color:#fff}.Button--color--orange:hover{transition:color 0ms,background-color 0ms}.Button--color--orange:focus{transition:color .1s,background-color .1s}.Button--color--orange:focus,.Button--color--orange:hover{background-color:#ed6f1d;color:#fff}.Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.Button--color--yellow:focus{transition:color .1s,background-color .1s}.Button--color--yellow:focus,.Button--color--yellow:hover{background-color:#f3d00e;color:#000}.Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#9aad14;color:#fff}.Button--color--olive:hover{transition:color 0ms,background-color 0ms}.Button--color--olive:focus{transition:color .1s,background-color .1s}.Button--color--olive:focus,.Button--color--olive:hover{background-color:#afc41f;color:#fff}.Button--color--green{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--color--green:hover{transition:color 0ms,background-color 0ms}.Button--color--green:focus{transition:color .1s,background-color .1s}.Button--color--green:focus,.Button--color--green:hover{background-color:#27ab46;color:#fff}.Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#009a93;color:#fff}.Button--color--teal:hover{transition:color 0ms,background-color 0ms}.Button--color--teal:focus{transition:color .1s,background-color .1s}.Button--color--teal:focus,.Button--color--teal:hover{background-color:#0aafa8;color:#fff}.Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#1c71b1;color:#fff}.Button--color--blue:hover{transition:color 0ms,background-color 0ms}.Button--color--blue:focus{transition:color .1s,background-color .1s}.Button--color--blue:focus,.Button--color--blue:hover{background-color:#2883c8;color:#fff}.Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#552dab;color:#fff}.Button--color--violet:hover{transition:color 0ms,background-color 0ms}.Button--color--violet:focus{transition:color .1s,background-color .1s}.Button--color--violet:focus,.Button--color--violet:hover{background-color:#653ac1;color:#fff}.Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#8b2baa;color:#fff}.Button--color--purple:hover{transition:color 0ms,background-color 0ms}.Button--color--purple:focus{transition:color .1s,background-color .1s}.Button--color--purple:focus,.Button--color--purple:hover{background-color:#9e38c1;color:#fff}.Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#cf2082;color:#fff}.Button--color--pink:hover{transition:color 0ms,background-color 0ms}.Button--color--pink:focus{transition:color .1s,background-color .1s}.Button--color--pink:focus,.Button--color--pink:hover{background-color:#dd3794;color:#fff}.Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#8c5836;color:#fff}.Button--color--brown:hover{transition:color 0ms,background-color 0ms}.Button--color--brown:focus{transition:color .1s,background-color .1s}.Button--color--brown:focus,.Button--color--brown:hover{background-color:#a06844;color:#fff}.Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#646464;color:#fff}.Button--color--grey:hover{transition:color 0ms,background-color 0ms}.Button--color--grey:focus{transition:color .1s,background-color .1s}.Button--color--grey:focus,.Button--color--grey:hover{background-color:#757575;color:#fff}.Button--color--good{transition:color 50ms,background-color 50ms;background-color:#4d9121;color:#fff}.Button--color--good:hover{transition:color 0ms,background-color 0ms}.Button--color--good:focus{transition:color .1s,background-color .1s}.Button--color--good:focus,.Button--color--good:hover{background-color:#5da52d;color:#fff}.Button--color--average{transition:color 50ms,background-color 50ms;background-color:#cd7a0d;color:#fff}.Button--color--average:hover{transition:color 0ms,background-color 0ms}.Button--color--average:focus{transition:color .1s,background-color .1s}.Button--color--average:focus,.Button--color--average:hover{background-color:#e68d18;color:#fff}.Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--bad:hover{transition:color 0ms,background-color 0ms}.Button--color--bad:focus{transition:color .1s,background-color .1s}.Button--color--bad:focus,.Button--color--bad:hover{background-color:#d52b2b;color:#fff}.Button--color--label{transition:color 50ms,background-color 50ms;background-color:#657a94;color:#fff}.Button--color--label:hover{transition:color 0ms,background-color 0ms}.Button--color--label:focus{transition:color .1s,background-color .1s}.Button--color--label:focus,.Button--color--label:hover{background-color:#7b8da4;color:#fff}.Button--color--default{transition:color 50ms,background-color 50ms;background-color:#3e6189;color:#fff}.Button--color--default:hover{transition:color 0ms,background-color 0ms}.Button--color--default:focus{transition:color .1s,background-color .1s}.Button--color--default:focus,.Button--color--default:hover{background-color:#4c729d;color:#fff}.Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--caution:hover{transition:color 0ms,background-color 0ms}.Button--color--caution:focus{transition:color .1s,background-color .1s}.Button--color--caution:focus,.Button--color--caution:hover{background-color:#f3d00e;color:#000}.Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--danger:hover{transition:color 0ms,background-color 0ms}.Button--color--danger:focus{transition:color .1s,background-color .1s}.Button--color--danger:focus,.Button--color--danger:hover{background-color:#d52b2b;color:#fff}.Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#202020;color:#fff;background-color:rgba(32,32,32,0);color:hsla(0,0%,100%,.5)}.Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.Button--color--transparent:focus{transition:color .1s,background-color .1s}.Button--color--transparent:focus,.Button--color--transparent:hover{background-color:#2c2c2c;color:#fff}.Button--disabled{background-color:#999!important}.Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--selected:hover{transition:color 0ms,background-color 0ms}.Button--selected:focus{transition:color .1s,background-color .1s}.Button--selected:focus,.Button--selected:hover{background-color:#27ab46;color:#fff}.ColorBox{display:inline-block;width:1em;height:1em;line-height:1em;text-align:center}.Dimmer{display:flex;justify-content:center;align-items:center;position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.75);z-index:1}.Divider--horizontal{margin:.5em 0}.Divider--horizontal:not(.Divider--hidden){border-top:.1666666667em solid hsla(0,0%,100%,.1)}.Divider--vertical{height:100%;margin:0 .5em}.Divider--vertical:not(.Divider--hidden){border-left:.1666666667em solid hsla(0,0%,100%,.1)}.Dropdown{position:relative}.Dropdown__control{position:relative;display:inline-block;font-family:Verdana,sans-serif;font-size:1em;width:8.3333333333em;line-height:1.4166666667em;user-select:none}.Dropdown__arrow-button{float:right;padding-left:.5em;border-left:.0833333333em solid #000;border-left:.0833333333em solid rgba(0,0,0,.25)}.Dropdown__menu{overflow-y:auto;overflow-y:scroll}.Dropdown__menu,.Dropdown__menu-noscroll{position:absolute;z-index:5;width:8.3333333333em;max-height:16.6666666667em;border-radius:0 0 .1666666667em .1666666667em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75)}.Dropdown__menu-noscroll{overflow-y:auto}.Dropdown__menuentry{padding:.1666666667em .3333333333em;font-family:Verdana,sans-serif;font-size:1em;line-height:1.4166666667em;transition:background-color .1s}.Dropdown__menuentry:hover{background-color:hsla(0,0%,100%,.2);transition:background-color 0ms}.Dropdown__over{top:auto;bottom:100%}.FatalError{display:block!important;position:absolute;top:0;left:0;right:0;bottom:0;padding:12px;font-size:12px;font-family:Consolas,monospace;color:#fff;background-color:#00d;z-index:1000;overflow:hidden;text-align:center}.FatalError__logo{display:inline-block;text-align:left;font-size:10px;line-height:8px;position:relative;margin-top:12px;top:0;left:0;animation:FatalError__rainbow 2s linear infinite alternate,FatalError__shadow 4s linear infinite alternate,FatalError__tfmX 3s infinite alternate,FatalError__tfmY 4s infinite alternate;white-space:pre-wrap;word-break:break-all}.FatalError__header{margin-top:12px}.FatalError__stack{text-align:left;white-space:pre-wrap;word-break:break-all;margin-top:24px;margin-bottom:24px}.FatalError__footer{margin-bottom:24px}@keyframes FatalError__rainbow{0%{color:#ff0}50%{color:#0ff}to{color:#f0f}}@keyframes FatalError__shadow{0%{left:-2px;text-shadow:4px 0 #f0f}50%{left:0;text-shadow:0 0 #0ff}to{left:2px;text-shadow:-4px 0 #ff0}}@keyframes FatalError__tfmX{0%{left:15px}to{left:-15px}}@keyframes FatalError__tfmY{to{top:-15px}}.Flex{display:-ms-flexbox;display:flex}.Flex--inline{display:inline-flex}.Flex--iefix{display:table!important;width:105%;border-collapse:collapse;border-spacing:0}.Flex--iefix:after{content:"";display:table-cell;width:5%}.Flex--iefix--column{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.Flex--iefix--column>.Flex__item--iefix{display:table-row!important}.Flex--iefix--column>.Flex__item--iefix--grow{height:100%!important}.Flex__item--iefix{display:table-cell!important;width:1%!important;min-width:99%}.Flex__item--iefix--grow{width:auto!important}.Flex--spacing--1{margin:0 -.25em}.Flex--spacing--1>.Flex__item{margin:0 .25em}.Flex--spacing--2{margin:0 -.5em}.Flex--spacing--2>.Flex__item{margin:0 .5em}.Knob{position:relative;font-size:1rem;width:2.6em;height:2.6em;margin:0 auto -.2em;cursor:n-resize}.Knob:after{content:".";color:transparent;line-height:2.5em}.Knob__circle{position:absolute;top:.1em;bottom:.1em;left:.1em;right:.1em;margin:.3em;background-color:#333;background-image:linear-gradient(180deg,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,0));border-radius:50%;box-shadow:0 .05em .5em 0 rgba(0,0,0,.5)}.Knob__cursorBox{position:absolute;top:0;bottom:0;left:0;right:0}.Knob__cursor{position:relative;top:.05em;margin:0 auto;width:.2em;height:.8em;background-color:hsla(0,0%,100%,.9)}.Knob__popupValue{position:absolute;top:-2rem;right:50%;font-size:1rem;text-align:center;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.Knob__ring{position:absolute;top:0;bottom:0;left:0;right:0;padding:.1em}.Knob__ringTrackPivot{transform:rotate(135deg)}.Knob__ringTrack{fill:transparent;stroke:hsla(0,0%,100%,.1);stroke-width:8;stroke-linecap:round;stroke-dasharray:235.62}.Knob__ringFillPivot{transform:rotate(135deg)}.Knob--bipolar .Knob__ringFillPivot{transform:rotate(270deg)}.Knob__ringFill{fill:transparent;stroke:#6a96c9;stroke-width:8;stroke-linecap:round;stroke-dasharray:314.16;transition:stroke 50ms}.Knob--color--black .Knob__ringFill{stroke:#1a1a1a}.Knob--color--white .Knob__ringFill{stroke:#fff}.Knob--color--red .Knob__ringFill{stroke:#df3e3e}.Knob--color--orange .Knob__ringFill{stroke:#f37f33}.Knob--color--yellow .Knob__ringFill{stroke:#fbda21}.Knob--color--olive .Knob__ringFill{stroke:#cbe41c}.Knob--color--green .Knob__ringFill{stroke:#25ca4c}.Knob--color--teal .Knob__ringFill{stroke:#00d6cc}.Knob--color--blue .Knob__ringFill{stroke:#2e93de}.Knob--color--violet .Knob__ringFill{stroke:#7349cf}.Knob--color--purple .Knob__ringFill{stroke:#ad45d0}.Knob--color--pink .Knob__ringFill{stroke:#e34da1}.Knob--color--brown .Knob__ringFill{stroke:#b97447}.Knob--color--grey .Knob__ringFill{stroke:#848484}.Knob--color--good .Knob__ringFill{stroke:#68c22d}.Knob--color--average .Knob__ringFill{stroke:#f29a29}.Knob--color--bad .Knob__ringFill{stroke:#df3e3e}.Knob--color--label .Knob__ringFill{stroke:#8b9bb0}.LabeledList{display:table;width:100%;width:calc(100% + 1em);border-collapse:collapse;border-spacing:0;margin:-.25em -.5em 0;padding:0}.LabeledList__row{display:table-row}.LabeledList__row:last-child .LabeledList__cell{padding-bottom:0}.LabeledList__cell{display:table-cell;margin:0;padding:.25em .5em;border:0;text-align:left;vertical-align:baseline}.LabeledList__label{width:1%;white-space:nowrap;min-width:5em}.LabeledList__buttons{width:.1%;white-space:nowrap;text-align:right;padding-top:.0833333333em;padding-bottom:0}.Modal{background-color:#202020;max-width:calc(100% - 1rem);padding:1rem}.NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#000;background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 1.6666666667em)}.NoticeBox--color--black{color:#fff;background-color:#000}.NoticeBox--color--white{color:#000;background-color:#b3b3b3}.NoticeBox--color--red{color:#fff;background-color:#701f1f}.NoticeBox--color--orange{color:#fff;background-color:#854114}.NoticeBox--color--yellow{color:#000;background-color:#83710d}.NoticeBox--color--olive{color:#000;background-color:#576015}.NoticeBox--color--green{color:#fff;background-color:#174e24}.NoticeBox--color--teal{color:#fff;background-color:#064845}.NoticeBox--color--blue{color:#fff;background-color:#1b4565}.NoticeBox--color--violet{color:#fff;background-color:#3b2864}.NoticeBox--color--purple{color:#fff;background-color:#542663}.NoticeBox--color--pink{color:#fff;background-color:#802257}.NoticeBox--color--brown{color:#fff;background-color:#4c3729}.NoticeBox--color--grey{color:#fff;background-color:#3e3e3e}.NoticeBox--color--good{color:#fff;background-color:#2e4b1a}.NoticeBox--color--average{color:#fff;background-color:#7b4e13}.NoticeBox--color--bad{color:#fff;background-color:#701f1f}.NoticeBox--color--label{color:#fff;background-color:#53565a}.NoticeBox--type--info{color:#fff;background-color:#235982}.NoticeBox--type--success{color:#fff;background-color:#1e662f}.NoticeBox--type--warning{color:#fff;background-color:#a95219}.NoticeBox--type--danger{color:#fff;background-color:#8f2828}.NumberInput{position:relative;display:inline-block;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#88bfff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.NumberInput--fluid{display:block}.NumberInput__content{margin-left:.5em}.NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #88bfff;background-color:#88bfff}.NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#0a0a0a;color:#fff;text-align:right}.ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-radius:.16em;background-color:transparent;transition:border-color .5s}.ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.ProgressBar__fill--animated{transition:background-color .5s,width .5s}.ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.ProgressBar--color--default{border:.0833333333em solid #3e6189}.ProgressBar--color--default .ProgressBar__fill{background-color:#3e6189}.ProgressBar--color--black{border:.0833333333em solid #000!important}.ProgressBar--color--black .ProgressBar__fill{background-color:#000}.ProgressBar--color--white{border:.0833333333em solid #d9d9d9!important}.ProgressBar--color--white .ProgressBar__fill{background-color:#d9d9d9}.ProgressBar--color--red{border:.0833333333em solid #bd2020!important}.ProgressBar--color--red .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--orange{border:.0833333333em solid #d95e0c!important}.ProgressBar--color--orange .ProgressBar__fill{background-color:#d95e0c}.ProgressBar--color--yellow{border:.0833333333em solid #d9b804!important}.ProgressBar--color--yellow .ProgressBar__fill{background-color:#d9b804}.ProgressBar--color--olive{border:.0833333333em solid #9aad14!important}.ProgressBar--color--olive .ProgressBar__fill{background-color:#9aad14}.ProgressBar--color--green{border:.0833333333em solid #1b9638!important}.ProgressBar--color--green .ProgressBar__fill{background-color:#1b9638}.ProgressBar--color--teal{border:.0833333333em solid #009a93!important}.ProgressBar--color--teal .ProgressBar__fill{background-color:#009a93}.ProgressBar--color--blue{border:.0833333333em solid #1c71b1!important}.ProgressBar--color--blue .ProgressBar__fill{background-color:#1c71b1}.ProgressBar--color--violet{border:.0833333333em solid #552dab!important}.ProgressBar--color--violet .ProgressBar__fill{background-color:#552dab}.ProgressBar--color--purple{border:.0833333333em solid #8b2baa!important}.ProgressBar--color--purple .ProgressBar__fill{background-color:#8b2baa}.ProgressBar--color--pink{border:.0833333333em solid #cf2082!important}.ProgressBar--color--pink .ProgressBar__fill{background-color:#cf2082}.ProgressBar--color--brown{border:.0833333333em solid #8c5836!important}.ProgressBar--color--brown .ProgressBar__fill{background-color:#8c5836}.ProgressBar--color--grey{border:.0833333333em solid #646464!important}.ProgressBar--color--grey .ProgressBar__fill{background-color:#646464}.ProgressBar--color--good{border:.0833333333em solid #4d9121!important}.ProgressBar--color--good .ProgressBar__fill{background-color:#4d9121}.ProgressBar--color--average{border:.0833333333em solid #cd7a0d!important}.ProgressBar--color--average .ProgressBar__fill{background-color:#cd7a0d}.ProgressBar--color--bad{border:.0833333333em solid #bd2020!important}.ProgressBar--color--bad .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--label{border:.0833333333em solid #657a94!important}.ProgressBar--color--label .ProgressBar__fill{background-color:#657a94}.Section{position:relative;margin-bottom:.5em;background-color:#131313;box-sizing:border-box}.Section:last-child{margin-bottom:0}.Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #4972a1}.Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.Section__content{padding:.66em .5em}.Section--fill{display:flex;flex-direction:column;height:100%}.Section--fill .Section__content{flex-grow:1}.Section--iefix.Section--fill{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.Section--iefix.Section--fill .Section__content{display:table-row!important;height:100%!important}.Section--scrollable{overflow-x:hidden;overflow-y:scroll}.Section--level--1 .Section__titleText{font-size:1.1666666667em}.Section--level--2 .Section__titleText{font-size:1.0833333333em}.Section--level--3 .Section__titleText{font-size:1em}.Section--level--2,.Section--level--3{background-color:transparent;box-shadow:none;margin-left:-.5em;margin-right:-.5em}.Slider{cursor:e-resize}.Slider__cursorOffset{position:absolute;top:0;left:0;bottom:0;transition:none!important}.Slider__cursor{position:absolute;top:0;right:-.0833333333em;bottom:0;width:0;border-left:.1666666667em solid #fff}.Slider__pointer{position:absolute;right:-.4166666667em;bottom:-.3333333333em;width:0;height:0;border-left:.4166666667em solid transparent;border-right:.4166666667em solid transparent;border-bottom:.4166666667em solid #fff}.Slider__popupValue{position:absolute;right:0;top:-2rem;font-size:1rem;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.Table{display:table;width:100%;border-collapse:collapse;border-spacing:0;margin:0}.Table--collapsing{width:auto}.Table__row{display:table-row}.Table__cell{display:table-cell;padding:0 .25em}.Table__cell:first-child{padding-left:0}.Table__cell:last-child{padding-right:0}.Table__cell--header,.Table__row--header .Table__cell{font-weight:700;padding-bottom:.5em}.Table__cell--collapsing{width:1%;white-space:nowrap}.Tabs{display:flex;align-items:stretch;overflow:hidden}.Tabs--vertical{flex-direction:column}.Tabs--horizontal{margin-bottom:.5em}.Tabs--horizontal:last-child{margin-bottom:0}.Tabs__Tab{flex-grow:0}.Tabs--fluid .Tabs__Tab{flex-grow:1}.Tab{display:flex;align-items:center;justify-content:space-between;color:hsla(0,0%,100%,.5);min-height:2.25em;min-width:4em}.Tab--selected{color:#dfe7f0}.Tab__text{flex-grow:1;margin:0 .5em}.Tab__left{margin-left:.25em}.Tab__left,.Tab__right{min-width:1.5em;text-align:center}.Tab__right{margin-right:.25em}.Tabs--horizontal .Tab{border-top:.1666666667em solid transparent;border-bottom:.1666666667em solid transparent}.Tabs--horizontal .Tab--selected{border-bottom:.1666666667em solid #d4dfec}.Tabs--vertical .Tab{min-height:2em;border-left:.1666666667em solid transparent;border-right:.1666666667em solid transparent}.Tabs--vertical .Tab--selected{border-right:.1666666667em solid #d4dfec}.Tab--selected.Tab--color--black{color:#535353}.Tabs--horizontal .Tab--selected.Tab--color--black{border-bottom-color:#1a1a1a}.Tabs--vertical .Tab--selected.Tab--color--black{border-right-color:#1a1a1a}.Tab--selected.Tab--color--white{color:#fff}.Tabs--horizontal .Tab--selected.Tab--color--white{border-bottom-color:#fff}.Tabs--vertical .Tab--selected.Tab--color--white{border-right-color:#fff}.Tab--selected.Tab--color--red{color:#e76e6e}.Tabs--horizontal .Tab--selected.Tab--color--red{border-bottom-color:#df3e3e}.Tabs--vertical .Tab--selected.Tab--color--red{border-right-color:#df3e3e}.Tab--selected.Tab--color--orange{color:#f69f66}.Tabs--horizontal .Tab--selected.Tab--color--orange{border-bottom-color:#f37f33}.Tabs--vertical .Tab--selected.Tab--color--orange{border-right-color:#f37f33}.Tab--selected.Tab--color--yellow{color:#fce358}.Tabs--horizontal .Tab--selected.Tab--color--yellow{border-bottom-color:#fbda21}.Tabs--vertical .Tab--selected.Tab--color--yellow{border-right-color:#fbda21}.Tab--selected.Tab--color--olive{color:#d8eb55}.Tabs--horizontal .Tab--selected.Tab--color--olive{border-bottom-color:#cbe41c}.Tabs--vertical .Tab--selected.Tab--color--olive{border-right-color:#cbe41c}.Tab--selected.Tab--color--green{color:#53e074}.Tabs--horizontal .Tab--selected.Tab--color--green{border-bottom-color:#25ca4c}.Tabs--vertical .Tab--selected.Tab--color--green{border-right-color:#25ca4c}.Tab--selected.Tab--color--teal{color:#21fff5}.Tabs--horizontal .Tab--selected.Tab--color--teal{border-bottom-color:#00d6cc}.Tabs--vertical .Tab--selected.Tab--color--teal{border-right-color:#00d6cc}.Tab--selected.Tab--color--blue{color:#62aee6}.Tabs--horizontal .Tab--selected.Tab--color--blue{border-bottom-color:#2e93de}.Tabs--vertical .Tab--selected.Tab--color--blue{border-right-color:#2e93de}.Tab--selected.Tab--color--violet{color:#9676db}.Tabs--horizontal .Tab--selected.Tab--color--violet{border-bottom-color:#7349cf}.Tabs--vertical .Tab--selected.Tab--color--violet{border-right-color:#7349cf}.Tab--selected.Tab--color--purple{color:#c274db}.Tabs--horizontal .Tab--selected.Tab--color--purple{border-bottom-color:#ad45d0}.Tabs--vertical .Tab--selected.Tab--color--purple{border-right-color:#ad45d0}.Tab--selected.Tab--color--pink{color:#ea79b9}.Tabs--horizontal .Tab--selected.Tab--color--pink{border-bottom-color:#e34da1}.Tabs--vertical .Tab--selected.Tab--color--pink{border-right-color:#e34da1}.Tab--selected.Tab--color--brown{color:#ca9775}.Tabs--horizontal .Tab--selected.Tab--color--brown{border-bottom-color:#b97447}.Tabs--vertical .Tab--selected.Tab--color--brown{border-right-color:#b97447}.Tab--selected.Tab--color--grey{color:#a3a3a3}.Tabs--horizontal .Tab--selected.Tab--color--grey{border-bottom-color:#848484}.Tabs--vertical .Tab--selected.Tab--color--grey{border-right-color:#848484}.Tab--selected.Tab--color--good{color:#8cd95a}.Tabs--horizontal .Tab--selected.Tab--color--good{border-bottom-color:#68c22d}.Tabs--vertical .Tab--selected.Tab--color--good{border-right-color:#68c22d}.Tab--selected.Tab--color--average{color:#f5b35e}.Tabs--horizontal .Tab--selected.Tab--color--average{border-bottom-color:#f29a29}.Tabs--vertical .Tab--selected.Tab--color--average{border-right-color:#f29a29}.Tab--selected.Tab--color--bad{color:#e76e6e}.Tabs--horizontal .Tab--selected.Tab--color--bad{border-bottom-color:#df3e3e}.Tabs--vertical .Tab--selected.Tab--color--bad{border-right-color:#df3e3e}.Tab--selected.Tab--color--label{color:#a8b4c4}.Tabs--horizontal .Tab--selected.Tab--color--label{border-bottom-color:#8b9bb0}.Tabs--vertical .Tab--selected.Tab--color--label{border-right-color:#8b9bb0}.Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.Input--fluid{display:block;width:auto}.Input__baseline{display:inline-block;color:transparent}.Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.Input--monospace .Input__input{font-family:Consolas,monospace}.TextArea{position:relative;display:inline-block;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;background-color:#0a0a0a;margin-right:.1666666667em;line-height:1.4166666667em;box-sizing:border-box;width:100%}.TextArea--fluid{display:block;width:auto;height:auto}.TextArea__textarea{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;height:100%;font-size:1em;line-height:1.4166666667em;min-height:1.4166666667em;margin:0;padding:0 .5em;font-family:inherit;background-color:transparent;color:inherit;box-sizing:border-box;word-wrap:break-word;overflow:hidden}.TextArea__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.Tooltip{position:absolute;top:0;left:0;right:0;bottom:0;font-style:normal;font-weight:400}.Tooltip:after{position:absolute;display:block;white-space:nowrap;z-index:2;padding:.5em .75em;transform:translateX(-50%);pointer-events:none;visibility:hidden;opacity:0;text-align:left;content:attr(data-tooltip);transition:all .15s;background-color:#000;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:.16em}.Tooltip:hover:after{transition:all 70ms;pointer-events:none;visibility:visible;opacity:1}.Tooltip--long:after{width:20.8333333333em;white-space:normal}.Tooltip--top:after{bottom:100%;left:50%;transform:translateX(-50%) translateY(.5em)}.Tooltip--bottom:after,.Tooltip--top:hover:after{transform:translateX(-50%) translateY(-.5em)}.Tooltip--bottom:after{top:100%;left:50%}.Tooltip--bottom:hover:after{transform:translateX(-50%) translateY(.5em)}.Tooltip--bottom-left:after{top:100%;right:50%;transform:translateX(12px) translateY(-.5em)}.Tooltip--bottom-left:hover:after{transform:translateX(12px) translateY(.5em)}.Tooltip--bottom-right:after{top:100%;left:50%;transform:translateX(-12px) translateY(-.5em)}.Tooltip--bottom-right:hover:after{transform:translateX(-12px) translateY(.5em)}.Tooltip--left:after{top:50%;right:100%;transform:translateX(.5em) translateY(-50%)}.Tooltip--left:hover:after,.Tooltip--right:after{transform:translateX(-.5em) translateY(-50%)}.Tooltip--right:after{top:50%;left:100%}.Tooltip--right:hover:after{transform:translateX(.5em) translateY(-50%)}.Chat{color:#abc6ec}.Chat__badge{display:inline-block;min-width:.5em;font-size:.7em;padding:.2em .3em;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#dc143c;border-radius:10px;transition:font-size .2s}.Chat__badge:before{content:"x"}.Chat__badge--animate{font-size:.9em;transition:font-size 0ms}.Chat__scrollButton{position:fixed;right:2em;bottom:1em}.Chat__reconnected{font-size:.85em;text-align:center;margin:1em 0 2em}.Chat__reconnected:before{content:"Reconnected";display:inline-block;border-radius:1em;padding:0 .7em;color:#db2828;background-color:#131313}.Chat__reconnected:after{content:"";display:block;margin-top:-.75em;border-bottom:.1666666667em solid #db2828}.Chat__highlight{color:#000}.Chat__highlight--restricted{color:#fff;background-color:#a00;font-weight:700}.ChatMessage{word-wrap:break-word}.ChatMessage--highlighted{position:relative;border-left:.1666666667em solid #fd4;padding-left:.5em}.ChatMessage--highlighted:after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(255,221,68,.1);pointer-events:none}.Ping{position:relative;padding:.125em .25em;border:.0833333333em solid hsla(0,0%,54.9%,.5);border-radius:.25em;width:3.75em;text-align:right}.Ping__indicator{content:"";position:absolute;top:.5em;left:.5em;width:.5em;height:.5em;background-color:#888;border-radius:.25em}.Notifications{position:absolute;bottom:1em;left:1em;right:2em}.Notification{color:#fff;background-color:#dc143c;padding:.5em;margin:1em 0}.Notification:first-child{margin-top:0}.Notification:last-child{margin-bottom:0}.Layout,.Layout *{scrollbar-base-color:#181818;scrollbar-face-color:#363636;scrollbar-3dlight-color:#202020;scrollbar-highlight-color:#202020;scrollbar-track-color:#181818;scrollbar-arrow-color:#909090;scrollbar-shadow-color:#363636}.Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.Window{bottom:0;right:0;color:#fff;background-color:#202020;background-image:linear-gradient(180deg,#202020 0,#202020)}.Window,.Window__titleBar{position:fixed;top:0;left:0}.Window__titleBar{z-index:1;width:100%;height:32px;height:2.6666666667rem}.Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.Window__contentPadding:after{height:0}.Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(56,56,56,.25);pointer-events:none}.Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}img{margin:0;padding:0;line-height:1;-ms-interpolation-mode:nearest-neighbor;image-rendering:pixelated}img.icon{height:1em;min-height:16px;width:auto;vertical-align:bottom}a{color:#397ea5}a.visited,a:visited{color:#7c00e6}a.popt{text-decoration:none}.popup{position:fixed;top:50%;left:50%;background:#ddd}.popup .close{position:absolute;background:#aaa;top:0;right:0;color:#333;text-decoration:none;z-index:2;padding:0 10px;height:30px;line-height:30px}.popup .close:hover,.popup .head{background:#999}.popup .head{color:#ddd;padding:0 10px;height:30px;line-height:30px;text-transform:uppercase;font-size:.9em;font-weight:700;border-bottom:2px solid green}.popup input{border:1px solid #999;background:#fff;margin:0;padding:5px;outline:none;color:#333}.popup input[type=text]:active,.popup input[type=text]:focus,.popup input[type=text]:hover{border-color:green}.popup input[type=submit]{padding:5px 10px;background:#999;color:#ddd;text-transform:uppercase;font-size:.9em;font-weight:700}.popup input[type=submit]:active,.popup input[type=submit]:focus,.popup input[type=submit]:hover{background:#aaa;cursor:pointer}.changeFont{padding:10px}.changeFont a{display:block;text-decoration:none;padding:3px;color:#333}.changeFont a:hover{background:#ccc}.highlightPopup{padding:10px;text-align:center}.highlightPopup input[type=text]{display:block;width:215px;text-align:left;margin-top:5px}.highlightPopup input.highlightColor{background-color:#ff0}.highlightPopup input.highlightTermSubmit{margin-top:5px}.contextMenu{background-color:#ddd;position:fixed;margin:2px;width:150px}.contextMenu a{display:block;padding:2px 5px;text-decoration:none;color:#333}.contextMenu a:hover{background-color:#ccc}.filterMessages{padding:5px}.filterMessages div{padding:2px 0}.icon-stack{height:1em;line-height:1em;width:1em;vertical-align:middle;margin-top:-2px}.motd{color:#a4bad6;font-family:Verdana,sans-serif;white-space:normal}.motd h1,.motd h2,.motd h3,.motd h4,.motd h5,.motd h6{color:#a4bad6;text-decoration:underline}.motd a,.motd a:active,.motd a:hover,.motd a:link,.motd a:visited{color:#a4bad6}.admin,.adminooc,.bold,.looc,.medal,.name,.ooc,.prefix,.yell{font-weight:700}.emote,.italic,.italics{font-style:italic}.highlight{background:#ff0}h1,h2,h3,h4,h5,h6{color:#a4bad6;font-family:Georgia,Verdana,sans-serif}h1.alert,h2.alert{color:#a4bad6}em{font-style:normal}.ooc,em{font-weight:700}.ooc{color:#cca300}.looc{color:#69c;font-weight:700}.antagooc{color:#b8002e;font-weight:700}.adminobserverooc{color:#09c;font-weight:700}.adminooc{color:#3d5bc3;font-weight:700}.adminsay{color:#ff4500;font-weight:700}.adminobserver{color:#960;font-weight:700}.admin{color:#5975da;font-weight:700}.mentorsay{color:#e236d8;font-weight:700}.mentorsay_admin{color:#8a2be2;font-weight:700}.name{font-weight:700}.deadsay{color:#e2c1ff}.binarysay{color:#1e90ff}.binarysay a{color:#0f0}.binarysay a:active,.binarysay a:visited{color:#8f8}.radio{color:#1ecc43}.sciradio{color:#c68cfa}.comradio{color:#fcdf03}.secradio{color:#dd3535}.medradio{color:#57b8f0}.engradio{color:#f37746}.suppradio{color:#b88646}.servradio{color:#6ca729}.syndradio{color:#8f4a4b}.centcomradio{color:#2681a5}.aiprivradio{color:#d65d95}.redteamradio{color:#f44}.blueteamradio{color:#3434fd}.yell{font-weight:700}.alert{color:#d82020}.emote{font-style:italic}.userdanger{font-weight:700;font-size:185%}.danger,.userdanger,.warning{color:#c51e1e}.warning{font-style:italic}.alertwarning{color:red;font-weight:700}.boldwarning{font-style:italic}.announce,.boldannounce,.boldwarning{color:#c51e1e;font-weight:700}.greenannounce{color:#059223;font-weight:700}.rose{color:#ff5050}.info{color:#9ab0ff}.notice{color:#6685f5}.tinynotice{font-size:85%}.smallnotice,.tinynotice{color:#6685f5;font-style:italic}.smallnotice{font-size:90%}.boldnotice{color:#6685f5;font-weight:700}.hear{font-style:italic}.adminnotice,.hear{color:#6685f5}.adminhelp{color:red;font-weight:700}.unconscious{color:#a4bad6;font-weight:700}.suicide{color:#ff5050;font-style:italic}.green{color:#059223}.red{color:red}.blue{color:#215cff}.nicegreen{color:#059223}.userlove{color:#ff42a6;font-weight:700;text-shadow:0 0 6px #82365e}.love,.userlove{font-style:italic}.love{color:#ff4591;text-shadow:0 0 6px #994449}.cult{color:#aa1c1c}.cultbold,.cultitalic{color:#aa1c1c;font-style:italic}.cultbold{font-weight:700}.cultboldtalic,.cultlarge{color:#aa1c1c;font-weight:700;font-size:185%}.narsie{font-size:925%}.narsie,.narsiesmall{color:#aa1c1c;font-weight:700}.narsiesmall{font-size:370%}.colossus{color:#7f282a;font-size:310%}.hierophant{color:#b441ee;font-weight:700;font-style:italic}.hierophant_warning{color:#c56bf1;font-style:italic}.purple{color:#9956d3}.holoparasite{color:#88809c}.revennotice{color:#c099e2}.revenbignotice,.revenboldnotice{color:#c099e2;font-weight:700}.revenbignotice{font-size:185%}.revenminor{color:#823abb}.revenwarning{color:#760fbb;font-style:italic}.revendanger{color:#760fbb;font-weight:700;font-size:185%}.umbra{color:#5000a0}.umbra_emphasis,.umbra_large{color:#5000a0;font-weight:700;font-style:italic}.umbra_large{font-size:3}.deconversion_message{color:#5000a0;font-size:185%;font-style:italic}.brass,.heavy_brass{color:#be8700}.heavy_brass{font-weight:700;font-style:italic}.large_brass{color:#be8700;font-size:185%}.big_brass{font-size:185%}.big_brass,.ratvar{color:#be8700;font-weight:700;font-style:italic}.ratvar{font-size:6}.alloy{color:#42474d}.heavy_alloy,.nezbere_large{color:#42474d;font-weight:700;font-style:italic}.nezbere_large{font-size:185%}.nezbere{font-weight:700;font-style:italic}.nezbere,.nezbere_small{color:#42474d}.sevtug_large{font-size:185%}.sevtug,.sevtug_large{color:#af0aaf;font-weight:700;font-style:italic}.sevtug_small{color:#af0aaf}.inathneq_large{font-size:185%}.inathneq,.inathneq_large{color:#1e8ce1;font-weight:700;font-style:italic}.inathneq_small{color:#1e8ce1}.nzcrentr_large{font-size:185%}.nzcrentr,.nzcrentr_large{color:#daaa18;font-weight:700;font-style:italic}.nzcrentr_small{color:#daaa18}.neovgre_large{font-size:185%}.neovgre,.neovgre_large{color:#6e001a;font-weight:700;font-style:italic}.neovgre_small{color:#6e001a}.ghostalert{color:#60f;font-style:italic;font-weight:700}.alien{color:#855d85}.alertalien,.noticealien{color:#059223}.alertalien{font-weight:700}.changeling{color:#059223;font-style:italic}.alertsyndie{color:red}.alertsyndie,.spider{font-size:185%;font-weight:700}.spider{color:#80f}.interface{color:#750e75}.sans{font-family:Comic Sans MS,cursive,sans-serif}.papyrus{font-family:Papyrus,cursive,sans-serif}.robot{font-family:Courier New,cursive,sans-serif}.command_headset{font-weight:700;font-size:160%}.small{font-size:60%}.big{font-size:185%}.reallybig{font-size:245%}.extremelybig{font-size:310%}.greentext{color:#059223;font-size:185%}.redtext{color:#c51e1e;font-size:185%}.yellowtext{color:#fc0;font-size:185%}.clown{color:#ff70c1;font-size:160%;font-family:Comic Sans MS,cursive,sans-serif;font-weight:700}.singing{font-family:Trebuchet MS,cursive,sans-serif;font-style:italic}.his_grace{color:#15d512;font-family:Courier New,cursive,sans-serif;font-style:italic}.hypnophrase{color:#202020;font-weight:700;animation:hypnocolor 1.5s infinite;animation-direction:alternate}.velvet{color:#660015;font-weight:700;animation:velvet 5s infinite;animation-direction:alternate}.phobia{color:#d00;font-weight:700;animation:phobia .75s infinite}.icon{height:1em;width:auto}.memo{color:#638500}.memo,.memoedit{text-align:center}.memoedit{font-size:125%}.abductor{color:#c204c2;font-style:italic}.mind_control{color:#df3da9;font-size:100%;font-weight:700;font-style:italic}.slime{color:#00ced1}.drone{color:#848482}.monkey{color:#975032}.swarmer{color:#2c75ff}.resonate{color:#298f85}.monkeyhive{color:#a56408}.monkeylead{color:#af6805;font-size:80%}.connectionClosed,.fatalError{background:red;color:#fff;padding:5px}.connectionClosed.restored{background:green}.internal.boldnshit{color:#3d5bc3;font-weight:700}.text-normal{font-weight:400;font-style:normal}.hidden{display:none;visibility:hidden}.ml-1{margin-left:1em}.ml-2{margin-left:2em}.ml-3{margin-left:3em}.theme-light .color-black{color:#000!important}.theme-light .color-white{color:#e6e6e6!important}.theme-light .color-red{color:#c82121!important}.theme-light .color-orange{color:#e6630d!important}.theme-light .color-yellow{color:#e5c304!important}.theme-light .color-olive{color:#a3b816!important}.theme-light .color-green{color:#1d9f3b!important}.theme-light .color-teal{color:#00a39c!important}.theme-light .color-blue{color:#1e78bb!important}.theme-light .color-violet{color:#5a30b5!important}.theme-light .color-purple{color:#932eb4!important}.theme-light .color-pink{color:#db228a!important}.theme-light .color-brown{color:#955d39!important}.theme-light .color-grey{color:#e6e6e6!important}.theme-light .color-good{color:#529923!important}.theme-light .color-average{color:#da810e!important}.theme-light .color-bad{color:#c82121!important}.theme-light .color-label{color:#353535!important}.theme-light .color-bg-black{background-color:#000!important}.theme-light .color-bg-white{background-color:#bfbfbf!important}.theme-light .color-bg-red{background-color:#a61c1c!important}.theme-light .color-bg-orange{background-color:#c0530b!important}.theme-light .color-bg-yellow{background-color:#bfa303!important}.theme-light .color-bg-olive{background-color:#889912!important}.theme-light .color-bg-green{background-color:#188532!important}.theme-light .color-bg-teal{background-color:#008882!important}.theme-light .color-bg-blue{background-color:#19649c!important}.theme-light .color-bg-violet{background-color:#4b2897!important}.theme-light .color-bg-purple{background-color:#7a2696!important}.theme-light .color-bg-pink{background-color:#b61d73!important}.theme-light .color-bg-brown{background-color:#7c4d2f!important}.theme-light .color-bg-grey{background-color:#bfbfbf!important}.theme-light .color-bg-good{background-color:#44801d!important}.theme-light .color-bg-average{background-color:#b56b0b!important}.theme-light .color-bg-bad{background-color:#a61c1c!important}.theme-light .color-bg-label{background-color:#2c2c2c!important}.theme-light .Tabs{display:flex;align-items:stretch;overflow:hidden}.theme-light .Tabs--vertical{flex-direction:column}.theme-light .Tabs--horizontal{margin-bottom:.5em}.theme-light .Tabs--horizontal:last-child{margin-bottom:0}.theme-light .Tabs__Tab{flex-grow:0}.theme-light .Tabs--fluid .Tabs__Tab{flex-grow:1}.theme-light .Tab{display:flex;align-items:center;justify-content:space-between;color:rgba(0,0,0,.5);min-height:2.25em;min-width:4em}.theme-light .Tab--selected{color:#404040}.theme-light .Tab__text{flex-grow:1;margin:0 .5em}.theme-light .Tab__left{min-width:1.5em;text-align:center;margin-left:.25em}.theme-light .Tab__right{min-width:1.5em;text-align:center;margin-right:.25em}.theme-light .Tabs--horizontal .Tab{border-top:.1666666667em solid transparent;border-bottom:.1666666667em solid transparent}.theme-light .Tabs--horizontal .Tab--selected{border-bottom:.1666666667em solid #000}.theme-light .Tabs--vertical .Tab{min-height:2em;border-left:.1666666667em solid transparent;border-right:.1666666667em solid transparent}.theme-light .Tabs--vertical .Tab--selected{border-right:.1666666667em solid #000}.theme-light .Tab--selected.Tab--color--black{color:#404040}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--black{border-bottom-color:#000}.theme-light .Tabs--vertical .Tab--selected.Tab--color--black{border-right-color:#000}.theme-light .Tab--selected.Tab--color--white{color:#ececec}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--white{border-bottom-color:#e6e6e6}.theme-light .Tabs--vertical .Tab--selected.Tab--color--white{border-right-color:#e6e6e6}.theme-light .Tab--selected.Tab--color--red{color:#e14d4d}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--red{border-bottom-color:#c82121}.theme-light .Tabs--vertical .Tab--selected.Tab--color--red{border-right-color:#c82121}.theme-light .Tab--selected.Tab--color--orange{color:#f48942}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--orange{border-bottom-color:#e6630d}.theme-light .Tabs--vertical .Tab--selected.Tab--color--orange{border-right-color:#e6630d}.theme-light .Tab--selected.Tab--color--yellow{color:#fcdd33}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--yellow{border-bottom-color:#e5c304}.theme-light .Tabs--vertical .Tab--selected.Tab--color--yellow{border-right-color:#e5c304}.theme-light .Tab--selected.Tab--color--olive{color:#d0e732}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--olive{border-bottom-color:#a3b816}.theme-light .Tabs--vertical .Tab--selected.Tab--color--olive{border-right-color:#a3b816}.theme-light .Tab--selected.Tab--color--green{color:#33da5a}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--green{border-bottom-color:#1d9f3b}.theme-light .Tabs--vertical .Tab--selected.Tab--color--green{border-right-color:#1d9f3b}.theme-light .Tab--selected.Tab--color--teal{color:#00faef}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--teal{border-bottom-color:#00a39c}.theme-light .Tabs--vertical .Tab--selected.Tab--color--teal{border-right-color:#00a39c}.theme-light .Tab--selected.Tab--color--blue{color:#419ce1}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--blue{border-bottom-color:#1e78bb}.theme-light .Tabs--vertical .Tab--selected.Tab--color--blue{border-right-color:#1e78bb}.theme-light .Tab--selected.Tab--color--violet{color:#7f58d3}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--violet{border-bottom-color:#5a30b5}.theme-light .Tabs--vertical .Tab--selected.Tab--color--violet{border-right-color:#5a30b5}.theme-light .Tab--selected.Tab--color--purple{color:#b455d4}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--purple{border-bottom-color:#932eb4}.theme-light .Tabs--vertical .Tab--selected.Tab--color--purple{border-right-color:#932eb4}.theme-light .Tab--selected.Tab--color--pink{color:#e558a7}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--pink{border-bottom-color:#db228a}.theme-light .Tabs--vertical .Tab--selected.Tab--color--pink{border-right-color:#db228a}.theme-light .Tab--selected.Tab--color--brown{color:#c0825a}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--brown{border-bottom-color:#955d39}.theme-light .Tabs--vertical .Tab--selected.Tab--color--brown{border-right-color:#955d39}.theme-light .Tab--selected.Tab--color--grey{color:#ececec}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--grey{border-bottom-color:#e6e6e6}.theme-light .Tabs--vertical .Tab--selected.Tab--color--grey{border-right-color:#e6e6e6}.theme-light .Tab--selected.Tab--color--good{color:#77d23b}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--good{border-bottom-color:#529923}.theme-light .Tabs--vertical .Tab--selected.Tab--color--good{border-right-color:#529923}.theme-light .Tab--selected.Tab--color--average{color:#f3a23a}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--average{border-bottom-color:#da810e}.theme-light .Tabs--vertical .Tab--selected.Tab--color--average{border-right-color:#da810e}.theme-light .Tab--selected.Tab--color--bad{color:#e14d4d}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--bad{border-bottom-color:#c82121}.theme-light .Tabs--vertical .Tab--selected.Tab--color--bad{border-right-color:#c82121}.theme-light .Tab--selected.Tab--color--label{color:#686868}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--label{border-bottom-color:#353535}.theme-light .Tabs--vertical .Tab--selected.Tab--color--label{border-right-color:#353535}.theme-light .Section{position:relative;margin-bottom:.5em;background-color:#fff;box-sizing:border-box}.theme-light .Section:last-child{margin-bottom:0}.theme-light .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #fff}.theme-light .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#000}.theme-light .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-light .Section__content{padding:.66em .5em}.theme-light .Section--fill{display:flex;flex-direction:column;height:100%}.theme-light .Section--fill .Section__content{flex-grow:1}.theme-light .Section--iefix.Section--fill{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-light .Section--iefix.Section--fill .Section__content{display:table-row!important;height:100%!important}.theme-light .Section--scrollable{overflow-x:hidden;overflow-y:scroll}.theme-light .Section--level--1 .Section__titleText{font-size:1.1666666667em}.theme-light .Section--level--2 .Section__titleText{font-size:1.0833333333em}.theme-light .Section--level--3 .Section__titleText{font-size:1em}.theme-light .Section--level--2,.theme-light .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-.5em;margin-right:-.5em}.theme-light .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-light .Button:last-child{margin-right:0;margin-bottom:0}.theme-light .Button .fa,.theme-light .Button .far,.theme-light .Button .fas{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-light .Button--hasContent .fa,.theme-light .Button--hasContent .far,.theme-light .Button--hasContent .fas{margin-right:.25em}.theme-light .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-light .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-light .Button--circular{border-radius:50%}.theme-light .Button--compact{padding:0 .25em;line-height:1.333em}.theme-light .Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.theme-light .Button--color--black:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--black:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--black:focus,.theme-light .Button--color--black:hover{background-color:#0a0a0a;color:#fff}.theme-light .Button--color--white{transition:color 50ms,background-color 50ms;background-color:#bfbfbf;color:#000}.theme-light .Button--color--white:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--white:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--white:focus,.theme-light .Button--color--white:hover{background-color:#d7d7d7;color:#000}.theme-light .Button--color--red{transition:color 50ms,background-color 50ms;background-color:#a61c1c;color:#fff}.theme-light .Button--color--red:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--red:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--red:focus,.theme-light .Button--color--red:hover{background-color:#bc2828;color:#fff}.theme-light .Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#c0530b;color:#fff}.theme-light .Button--color--orange:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--orange:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--orange:focus,.theme-light .Button--color--orange:hover{background-color:#d76316;color:#fff}.theme-light .Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#bfa303;color:#fff}.theme-light .Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--yellow:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--yellow:focus,.theme-light .Button--color--yellow:hover{background-color:#d7b90d;color:#fff}.theme-light .Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#889912;color:#fff}.theme-light .Button--color--olive:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--olive:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--olive:focus,.theme-light .Button--color--olive:hover{background-color:#9cae1d;color:#fff}.theme-light .Button--color--green{transition:color 50ms,background-color 50ms;background-color:#188532;color:#fff}.theme-light .Button--color--green:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--green:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--green:focus,.theme-light .Button--color--green:hover{background-color:#24993f;color:#fff}.theme-light .Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#008882;color:#fff}.theme-light .Button--color--teal:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--teal:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--teal:focus,.theme-light .Button--color--teal:hover{background-color:#0a9c95;color:#fff}.theme-light .Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#19649c;color:#fff}.theme-light .Button--color--blue:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--blue:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--blue:focus,.theme-light .Button--color--blue:hover{background-color:#2475b1;color:#fff}.theme-light .Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#4b2897;color:#fff}.theme-light .Button--color--violet:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--violet:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--violet:focus,.theme-light .Button--color--violet:hover{background-color:#5a35ac;color:#fff}.theme-light .Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#7a2696;color:#fff}.theme-light .Button--color--purple:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--purple:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--purple:focus,.theme-light .Button--color--purple:hover{background-color:#8d33ab;color:#fff}.theme-light .Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#b61d73;color:#fff}.theme-light .Button--color--pink:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--pink:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--pink:focus,.theme-light .Button--color--pink:hover{background-color:#ce2985;color:#fff}.theme-light .Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#7c4d2f;color:#fff}.theme-light .Button--color--brown:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--brown:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--brown:focus,.theme-light .Button--color--brown:hover{background-color:#8f5d3c;color:#fff}.theme-light .Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#bfbfbf;color:#000}.theme-light .Button--color--grey:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--grey:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--grey:focus,.theme-light .Button--color--grey:hover{background-color:#d7d7d7;color:#000}.theme-light .Button--color--good{transition:color 50ms,background-color 50ms;background-color:#44801d;color:#fff}.theme-light .Button--color--good:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--good:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--good:focus,.theme-light .Button--color--good:hover{background-color:#539329;color:#fff}.theme-light .Button--color--average{transition:color 50ms,background-color 50ms;background-color:#b56b0b;color:#fff}.theme-light .Button--color--average:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--average:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--average:focus,.theme-light .Button--color--average:hover{background-color:#cd7d16;color:#fff}.theme-light .Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#a61c1c;color:#fff}.theme-light .Button--color--bad:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--bad:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--bad:focus,.theme-light .Button--color--bad:hover{background-color:#bc2828;color:#fff}.theme-light .Button--color--label{transition:color 50ms,background-color 50ms;background-color:#2c2c2c;color:#fff}.theme-light .Button--color--label:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--label:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--label:focus,.theme-light .Button--color--label:hover{background-color:#393939;color:#fff}.theme-light .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#bbb;color:#000}.theme-light .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--default:focus,.theme-light .Button--color--default:hover{background-color:#d3d3d3;color:#000}.theme-light .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-light .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--caution:focus,.theme-light .Button--color--caution:hover{background-color:#d67313;color:#fff}.theme-light .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-light .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--danger:focus,.theme-light .Button--color--danger:hover{background-color:#afb30a;color:#fff}.theme-light .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#eee;color:#000;background-color:hsla(0,0%,93.3%,0);color:rgba(0,0,0,.5)}.theme-light .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--transparent:focus,.theme-light .Button--color--transparent:hover{background-color:#fcfcfc;color:#000}.theme-light .Button--disabled{background-color:#363636!important}.theme-light .Button--selected{transition:color 50ms,background-color 50ms;background-color:#0668b8;color:#fff}.theme-light .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--selected:focus{transition:color .1s,background-color .1s}.theme-light .Button--selected:focus,.theme-light .Button--selected:hover{background-color:#107ad0;color:#fff}.theme-light .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;color:#353535;background-color:#fff;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-light .NumberInput--fluid{display:block}.theme-light .NumberInput__content{margin-left:.5em}.theme-light .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-light .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #353535;background-color:#353535}.theme-light .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;text-align:right}.theme-light .Input,.theme-light .NumberInput__input{line-height:1.4166666667em;background-color:#fff;color:#000}.theme-light .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;padding:0 .3333333333em;margin-right:.1666666667em;overflow:visible}.theme-light .Input--fluid{display:block;width:auto}.theme-light .Input__baseline{display:inline-block;color:transparent}.theme-light .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#000;color:inherit}.theme-light .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-light .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-light .TextArea{position:relative;display:inline-block;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;background-color:#fff;margin-right:.1666666667em;line-height:1.4166666667em;box-sizing:border-box;width:100%}.theme-light .TextArea--fluid{display:block;width:auto;height:auto}.theme-light .TextArea__textarea{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;height:100%;font-size:1em;line-height:1.4166666667em;min-height:1.4166666667em;margin:0;padding:0 .5em;font-family:inherit;background-color:transparent;color:inherit;box-sizing:border-box;word-wrap:break-word;overflow:hidden}.theme-light .TextArea__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-light .Knob{position:relative;font-size:1rem;width:2.6em;height:2.6em;margin:0 auto -.2em;cursor:n-resize}.theme-light .Knob:after{content:".";color:transparent;line-height:2.5em}.theme-light .Knob__circle{position:absolute;top:.1em;bottom:.1em;left:.1em;right:.1em;margin:.3em;background-color:#333;background-image:linear-gradient(180deg,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,0));border-radius:50%;box-shadow:0 .05em .5em 0 rgba(0,0,0,.5)}.theme-light .Knob__cursorBox{position:absolute;top:0;bottom:0;left:0;right:0}.theme-light .Knob__cursor{position:relative;top:.05em;margin:0 auto;width:.2em;height:.8em;background-color:hsla(0,0%,100%,.9)}.theme-light .Knob__popupValue{position:absolute;top:-2rem;right:50%;font-size:1rem;text-align:center;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.theme-light .Knob__ring{position:absolute;top:0;bottom:0;left:0;right:0;padding:.1em}.theme-light .Knob__ringTrackPivot{transform:rotate(135deg)}.theme-light .Knob__ringTrack{fill:transparent;stroke:hsla(0,0%,100%,.1);stroke-width:8;stroke-linecap:round;stroke-dasharray:235.62}.theme-light .Knob__ringFillPivot{transform:rotate(135deg)}.theme-light .Knob--bipolar .Knob__ringFillPivot{transform:rotate(270deg)}.theme-light .Knob__ringFill{fill:transparent;stroke:#6a96c9;stroke-width:8;stroke-linecap:round;stroke-dasharray:314.16;transition:stroke 50ms}.theme-light .Knob--color--black .Knob__ringFill{stroke:#000}.theme-light .Knob--color--white .Knob__ringFill{stroke:#e6e6e6}.theme-light .Knob--color--red .Knob__ringFill{stroke:#c82121}.theme-light .Knob--color--orange .Knob__ringFill{stroke:#e6630d}.theme-light .Knob--color--yellow .Knob__ringFill{stroke:#e5c304}.theme-light .Knob--color--olive .Knob__ringFill{stroke:#a3b816}.theme-light .Knob--color--green .Knob__ringFill{stroke:#1d9f3b}.theme-light .Knob--color--teal .Knob__ringFill{stroke:#00a39c}.theme-light .Knob--color--blue .Knob__ringFill{stroke:#1e78bb}.theme-light .Knob--color--violet .Knob__ringFill{stroke:#5a30b5}.theme-light .Knob--color--purple .Knob__ringFill{stroke:#932eb4}.theme-light .Knob--color--pink .Knob__ringFill{stroke:#db228a}.theme-light .Knob--color--brown .Knob__ringFill{stroke:#955d39}.theme-light .Knob--color--grey .Knob__ringFill{stroke:#e6e6e6}.theme-light .Knob--color--good .Knob__ringFill{stroke:#529923}.theme-light .Knob--color--average .Knob__ringFill{stroke:#da810e}.theme-light .Knob--color--bad .Knob__ringFill{stroke:#c82121}.theme-light .Knob--color--label .Knob__ringFill{stroke:#353535}.theme-light .Slider{cursor:e-resize}.theme-light .Slider__cursorOffset{position:absolute;top:0;left:0;bottom:0;transition:none!important}.theme-light .Slider__cursor{position:absolute;top:0;right:-.0833333333em;bottom:0;width:0;border-left:.1666666667em solid #000}.theme-light .Slider__pointer{position:absolute;right:-.4166666667em;bottom:-.3333333333em;width:0;height:0;border-left:.4166666667em solid transparent;border-right:.4166666667em solid transparent;border-bottom:.4166666667em solid #000}.theme-light .Slider__popupValue{position:absolute;right:0;top:-2rem;font-size:1rem;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.theme-light .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-radius:.16em;background-color:transparent;transition:border-color .5s}.theme-light .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-light .ProgressBar__fill--animated{transition:background-color .5s,width .5s}.theme-light .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-light .ProgressBar--color--default{border:.0833333333em solid #bfbfbf}.theme-light .ProgressBar--color--default .ProgressBar__fill{background-color:#bfbfbf}.theme-light .ProgressBar--color--black{border:.0833333333em solid #000!important}.theme-light .ProgressBar--color--black .ProgressBar__fill{background-color:#000}.theme-light .ProgressBar--color--white{border:.0833333333em solid #bfbfbf!important}.theme-light .ProgressBar--color--white .ProgressBar__fill{background-color:#bfbfbf}.theme-light .ProgressBar--color--red{border:.0833333333em solid #a61c1c!important}.theme-light .ProgressBar--color--red .ProgressBar__fill{background-color:#a61c1c}.theme-light .ProgressBar--color--orange{border:.0833333333em solid #c0530b!important}.theme-light .ProgressBar--color--orange .ProgressBar__fill{background-color:#c0530b}.theme-light .ProgressBar--color--yellow{border:.0833333333em solid #bfa303!important}.theme-light .ProgressBar--color--yellow .ProgressBar__fill{background-color:#bfa303}.theme-light .ProgressBar--color--olive{border:.0833333333em solid #889912!important}.theme-light .ProgressBar--color--olive .ProgressBar__fill{background-color:#889912}.theme-light .ProgressBar--color--green{border:.0833333333em solid #188532!important}.theme-light .ProgressBar--color--green .ProgressBar__fill{background-color:#188532}.theme-light .ProgressBar--color--teal{border:.0833333333em solid #008882!important}.theme-light .ProgressBar--color--teal .ProgressBar__fill{background-color:#008882}.theme-light .ProgressBar--color--blue{border:.0833333333em solid #19649c!important}.theme-light .ProgressBar--color--blue .ProgressBar__fill{background-color:#19649c}.theme-light .ProgressBar--color--violet{border:.0833333333em solid #4b2897!important}.theme-light .ProgressBar--color--violet .ProgressBar__fill{background-color:#4b2897}.theme-light .ProgressBar--color--purple{border:.0833333333em solid #7a2696!important}.theme-light .ProgressBar--color--purple .ProgressBar__fill{background-color:#7a2696}.theme-light .ProgressBar--color--pink{border:.0833333333em solid #b61d73!important}.theme-light .ProgressBar--color--pink .ProgressBar__fill{background-color:#b61d73}.theme-light .ProgressBar--color--brown{border:.0833333333em solid #7c4d2f!important}.theme-light .ProgressBar--color--brown .ProgressBar__fill{background-color:#7c4d2f}.theme-light .ProgressBar--color--grey{border:.0833333333em solid #bfbfbf!important}.theme-light .ProgressBar--color--grey .ProgressBar__fill{background-color:#bfbfbf}.theme-light .ProgressBar--color--good{border:.0833333333em solid #44801d!important}.theme-light .ProgressBar--color--good .ProgressBar__fill{background-color:#44801d}.theme-light .ProgressBar--color--average{border:.0833333333em solid #b56b0b!important}.theme-light .ProgressBar--color--average .ProgressBar__fill{background-color:#b56b0b}.theme-light .ProgressBar--color--bad{border:.0833333333em solid #a61c1c!important}.theme-light .ProgressBar--color--bad .ProgressBar__fill{background-color:#a61c1c}.theme-light .ProgressBar--color--label{border:.0833333333em solid #2c2c2c!important}.theme-light .ProgressBar--color--label .ProgressBar__fill{background-color:#2c2c2c}.theme-light .Chat{color:#000}.theme-light .Chat__badge{display:inline-block;min-width:.5em;font-size:.7em;padding:.2em .3em;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#dc143c;border-radius:10px;transition:font-size .2s}.theme-light .Chat__badge:before{content:"x"}.theme-light .Chat__badge--animate{font-size:.9em;transition:font-size 0ms}.theme-light .Chat__scrollButton{position:fixed;right:2em;bottom:1em}.theme-light .Chat__reconnected{font-size:.85em;text-align:center;margin:1em 0 2em}.theme-light .Chat__reconnected:before{content:"Reconnected";display:inline-block;border-radius:1em;padding:0 .7em;color:#db2828;background-color:#fff}.theme-light .Chat__reconnected:after{content:"";display:block;margin-top:-.75em;border-bottom:.1666666667em solid #db2828}.theme-light .Chat__highlight{color:#000}.theme-light .Chat__highlight--restricted{color:#fff;background-color:#a00;font-weight:700}.theme-light .ChatMessage{word-wrap:break-word}.theme-light .ChatMessage--highlighted{position:relative;border-left:.1666666667em solid #fd4;padding-left:.5em}.theme-light .ChatMessage--highlighted:after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(255,221,68,.1);pointer-events:none}.theme-light .Layout,.theme-light .Layout *{scrollbar-base-color:#f2f2f2;scrollbar-face-color:#d6d6d6;scrollbar-3dlight-color:#eee;scrollbar-highlight-color:#eee;scrollbar-track-color:#f2f2f2;scrollbar-arrow-color:#777;scrollbar-shadow-color:#d6d6d6}.theme-light .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-light .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-light .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#000;background-color:#eee;background-image:linear-gradient(180deg,#eee 0,#eee)}.theme-light .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-light .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-light .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-light .Window__contentPadding:after{height:0}.theme-light .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-light .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:hsla(0,0%,98.8%,.25);pointer-events:none}.theme-light .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-light .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-light .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-light .TitleBar{background-color:#eee;border-bottom:1px solid rgba(0,0,0,.25);box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-light .TitleBar__clickable{color:rgba(0,0,0,.5);background-color:#eee;transition:color .25s,background-color .25s}.theme-light .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-light .TitleBar__title{position:absolute;top:0;left:46px;left:3.8333333333rem;color:rgba(0,0,0,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap}.theme-light .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-light .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-light .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-light .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-light body,.theme-light html{padding:0;margin:0;height:100%;color:#000}.theme-light body{background:#e0e0e0;font-family:Verdana,sans-serif;font-size:13px;line-height:1.2;overflow-x:hidden;overflow-y:scroll;word-wrap:break-word}.theme-light img{margin:0;padding:0;line-height:1;-ms-interpolation-mode:nearest-neighbor;image-rendering:pixelated}.theme-light img.icon{height:1em;min-height:16px;width:auto;vertical-align:bottom}.theme-light a{color:#00f}.theme-light a.visited,.theme-light a:visited{color:#f0f}.theme-light a.popt{text-decoration:none}.theme-light .popup{position:fixed;top:50%;left:50%;background:#ddd}.theme-light .popup .close{position:absolute;background:#aaa;top:0;right:0;color:#333;text-decoration:none;z-index:2;padding:0 10px;height:30px;line-height:30px}.theme-light .popup .close:hover{background:#999}.theme-light .popup .head{background:#999;color:#ddd;padding:0 10px;height:30px;line-height:30px;text-transform:uppercase;font-size:.9em;font-weight:700;border-bottom:2px solid green}.theme-light .popup input{border:1px solid #999;background:#fff;margin:0;padding:5px;outline:none;color:#333}.theme-light .popup input[type=text]:active,.theme-light .popup input[type=text]:focus,.theme-light .popup input[type=text]:hover{border-color:green}.theme-light .popup input[type=submit]{padding:5px 10px;background:#999;color:#ddd;text-transform:uppercase;font-size:.9em;font-weight:700}.theme-light .popup input[type=submit]:active,.theme-light .popup input[type=submit]:focus,.theme-light .popup input[type=submit]:hover{background:#aaa;cursor:pointer}.theme-light .changeFont{padding:10px}.theme-light .changeFont a{display:block;text-decoration:none;padding:3px;color:#333}.theme-light .changeFont a:hover{background:#ccc}.theme-light .highlightPopup{padding:10px;text-align:center}.theme-light .highlightPopup input[type=text]{display:block;width:215px;text-align:left;margin-top:5px}.theme-light .highlightPopup input.highlightColor{background-color:#ff0}.theme-light .highlightPopup input.highlightTermSubmit{margin-top:5px}.theme-light .contextMenu{background-color:#ddd;position:fixed;margin:2px;width:150px}.theme-light .contextMenu a{display:block;padding:2px 5px;text-decoration:none;color:#333}.theme-light .contextMenu a:hover{background-color:#ccc}.theme-light .filterMessages{padding:5px}.theme-light .filterMessages div{padding:2px 0}.theme-light .icon-stack{height:1em;line-height:1em;width:1em;vertical-align:middle;margin-top:-2px}.theme-light .motd{color:#638500;font-family:Verdana,sans-serif;white-space:normal}.theme-light .motd h1,.theme-light .motd h2,.theme-light .motd h3,.theme-light .motd h4,.theme-light .motd h5,.theme-light .motd h6{color:#638500;text-decoration:underline}.theme-light .motd a,.theme-light .motd a:active,.theme-light .motd a:hover,.theme-light .motd a:link,.theme-light .motd a:visited{color:#638500}.theme-light .admin,.theme-light .adminooc,.theme-light .bold,.theme-light .looc,.theme-light .medal,.theme-light .name,.theme-light .ooc,.theme-light .prefix,.theme-light .yell{font-weight:700}.theme-light .emote,.theme-light .italic,.theme-light .italics{font-style:italic}.theme-light .highlight{background:#ff0}.theme-light h1,.theme-light h2,.theme-light h3,.theme-light h4,.theme-light h5,.theme-light h6{color:#00f;font-family:Georgia,Verdana,sans-serif}.theme-light em{font-style:normal;font-weight:700}.theme-light .ooc{color:#002eb8;font-weight:700}.theme-light .looc{color:#69c;font-weight:700}.theme-light .antagooc{color:#b8002e;font-weight:700}.theme-light .adminobserverooc{color:#09c;font-weight:700}.theme-light .adminooc{color:#700038;font-weight:700}.theme-light .adminsay{color:#ff4500;font-weight:700}.theme-light .adminobserver{color:#960;font-weight:700}.theme-light .admin{color:#4473ff;font-weight:700}.theme-light .mentorsay{color:#e236d8;font-weight:700}.theme-light .mentorsay_admin{color:#8a2be2;font-weight:700}.theme-light .name{font-weight:700}.theme-light .deadsay{color:#5c00e6}.theme-light .binarysay{color:#20c20e;background-color:#000;display:block}.theme-light .binarysay a{color:#0f0}.theme-light .binarysay a:active,.theme-light .binarysay a:visited{color:#8f8}.theme-light .radio{color:green}.theme-light .sciradio{color:#939}.theme-light .comradio{color:#948f02}.theme-light .secradio{color:#a30000}.theme-light .medradio{color:#337296}.theme-light .engradio{color:#fb5613}.theme-light .suppradio{color:#a8732b}.theme-light .servradio{color:#6eaa2c}.theme-light .syndradio{color:#6d3f40}.theme-light .centcomradio{color:#686868}.theme-light .aiprivradio{color:#f0f}.theme-light .redteamradio{color:red}.theme-light .blueteamradio{color:#00f}.theme-light .yell{font-weight:700}.theme-light .alert{color:red}.theme-light h1.alert,.theme-light h2.alert{color:#000}.theme-light .emote{font-style:italic}.theme-light .userdanger{font-size:185%}.theme-light .bolddanger,.theme-light .userdanger{color:red;font-weight:700}.theme-light .danger{color:red}.theme-light .tinydanger{color:red;font-size:85%}.theme-light .smalldanger{color:red;font-size:90%}.theme-light .warning{color:red;font-style:italic}.theme-light .alertwarning{color:red;font-weight:700}.theme-light .boldwarning{color:red;font-style:italic;font-weight:700}.theme-light .announce{color:#228b22;font-weight:700}.theme-light .boldannounce{color:red;font-weight:700}.theme-light .greenannounce{color:#0f0;font-weight:700}.theme-light .rose{color:#ff5050}.theme-light .info{color:#00c}.theme-light .notice{color:#009}.theme-light .tinynotice{color:#009;font-style:italic;font-size:85%}.theme-light .smallnotice{color:#009;font-size:90%}.theme-light .smallnoticeital{color:#009;font-style:italic;font-size:90%}.theme-light .boldnotice{color:#009;font-weight:700}.theme-light .hear{color:#009;font-style:italic}.theme-light .adminnotice{color:#00f}.theme-light .adminhelp{color:red;font-weight:700}.theme-light .unconscious{color:#00f;font-weight:700}.theme-light .suicide{color:#ff5050;font-style:italic}.theme-light .green{color:#03ff39}.theme-light .red{color:red}.theme-light .blue{color:#00f}.theme-light .nicegreen{color:#14a833}.theme-light .userlove{color:#ff1493;font-style:italic;font-weight:700;text-shadow:0 0 6px #ff6dbc}.theme-light .love{color:#ff006a;font-style:italic;text-shadow:0 0 6px #ff6d6d}.theme-light .cult{color:#960000}.theme-light .cultbold,.theme-light .cultitalic{color:#960000;font-style:italic}.theme-light .cultbold{font-weight:700}.theme-light .cultboldtalic,.theme-light .cultlarge{color:#960000;font-weight:700;font-size:185%}.theme-light .narsie{color:#960000;font-weight:700;font-size:925%}.theme-light .narsiesmall{color:#960000;font-weight:700;font-size:370%}.theme-light .colossus{color:#7f282a;font-size:310%}.theme-light .hierophant{font-weight:700}.theme-light .hierophant,.theme-light .hierophant_warning{color:#609;font-style:italic}.theme-light .purple{color:#5e2d79}.theme-light .holoparasite{color:#35333a}.theme-light .revennotice{color:#1d2953}.theme-light .revenbignotice,.theme-light .revenboldnotice{color:#1d2953;font-weight:700}.theme-light .revenbignotice{font-size:185%}.theme-light .revenminor{color:#823abb}.theme-light .revenwarning{color:#760fbb;font-style:italic}.theme-light .revendanger{color:#760fbb;font-weight:700;font-size:185%}.theme-light .umbra{color:#5000a0}.theme-light .umbra_emphasis,.theme-light .umbra_large{color:#5000a0;font-weight:700;font-style:italic}.theme-light .umbra_large{font-size:3}.theme-light .deconversion_message{color:#5000a0;font-size:185%;font-style:italic}.theme-light .brass{color:#be8700}.theme-light .heavy_brass{color:#be8700;font-weight:700;font-style:italic}.theme-light .big_brass,.theme-light .large_brass{color:#be8700;font-size:185%}.theme-light .big_brass,.theme-light .ratvar{font-weight:700;font-style:italic}.theme-light .ratvar{color:#be8700;font-size:6}.theme-light .alloy{color:#42474d}.theme-light .heavy_alloy,.theme-light .nezbere_large{color:#42474d;font-weight:700;font-style:italic}.theme-light .nezbere_large{font-size:185%}.theme-light .nezbere{color:#42474d;font-weight:700;font-style:italic}.theme-light .nezbere_small{color:#42474d}.theme-light .sevtug_large{font-size:185%}.theme-light .sevtug,.theme-light .sevtug_large{color:#af0aaf;font-weight:700;font-style:italic}.theme-light .sevtug_small{color:#af0aaf}.theme-light .inathneq_large{font-size:185%}.theme-light .inathneq,.theme-light .inathneq_large{color:#1e8ce1;font-weight:700;font-style:italic}.theme-light .inathneq_small{color:#1e8ce1}.theme-light .nzcrentr_large{font-size:185%}.theme-light .nzcrentr,.theme-light .nzcrentr_large{color:#daaa18;font-weight:700;font-style:italic}.theme-light .nzcrentr_small{color:#daaa18}.theme-light .neovgre_large{font-size:185%}.theme-light .neovgre,.theme-light .neovgre_large{color:#6e001a;font-weight:700;font-style:italic}.theme-light .neovgre_small{color:#6e001a}.theme-light .ghostalert{color:#5c00e6;font-style:italic;font-weight:700}.theme-light .alien{color:#543354}.theme-light .noticealien{color:#00c000}.theme-light .alertalien{color:#00c000;font-weight:700}.theme-light .changeling{color:purple;font-style:italic}.theme-light .alertsyndie{color:red;font-size:185%;font-weight:700}.theme-light .spider{color:#4d004d;font-weight:700;font-size:185%}.theme-light .interface{color:#303}.theme-light .sans{font-family:Comic Sans MS,cursive,sans-serif}.theme-light .papyrus{font-family:Papyrus,cursive,sans-serif}.theme-light .robot{font-family:Courier New,cursive,sans-serif}.theme-light .command_headset{font-weight:700;font-size:160%}.theme-light .small{font-size:60%}.theme-light .big{font-size:185%}.theme-light .reallybig{font-size:245%}.theme-light .extremelybig{font-size:310%}.theme-light .greentext{color:#0f0;font-size:185%}.theme-light .redtext{color:red;font-size:185%}.theme-light .yellowtext{color:#fc0;font-size:185%}.theme-light .clown{color:#ff69bf;font-size:160%;font-family:Comic Sans MS,cursive,sans-serif;font-weight:700}.theme-light .singing{font-family:Trebuchet MS,cursive,sans-serif;font-style:italic}.theme-light .his_grace{color:#15d512;font-family:Courier New,cursive,sans-serif;font-style:italic}.theme-light .hypnophrase{color:#0d0d0d;font-weight:700;animation:hypnocolor 1.5s infinite;animation-direction:alternate}@keyframes hypnocolor{0%{color:#0d0d0d}25%{color:#410194}50%{color:#7f17d8}75%{color:#410194}to{color:#3bb5d3}}.theme-light .velvet{color:#660015;font-weight:700;animation:velvet 5s infinite;animation-direction:alternate}@keyframes velvet{0%{color:#400020}40%{color:red}50%{color:#f88}60%{color:red}to{color:#400020}}.theme-light .phobia{color:#d00;font-weight:700;animation:phobia .75s infinite}@keyframes phobia{0%{color:#0d0d0d}50%{color:#d00}to{color:#0d0d0d}}.theme-light .icon{height:1em;width:auto}.theme-light .memo{color:#638500;text-align:center}.theme-light .memoedit{text-align:center;font-size:125%}.theme-light .abductor{color:purple;font-style:italic}.theme-light .mind_control{color:#a00d6f;font-size:100%;font-weight:700;font-style:italic}.theme-light .slime{color:#00ced1}.theme-light .drone{color:#848482}.theme-light .monkey{color:#975032}.theme-light .swarmer{color:#2c75ff}.theme-light .resonate{color:#298f85}.theme-light .monkeyhive{color:#774704}.theme-light .monkeylead{color:#774704;font-size:80%}.theme-light .connectionClosed,.theme-light .fatalError{background:red;color:#fff;padding:5px}.theme-light .connectionClosed.restored{background:green}.theme-light .internal.boldnshit{color:#00f;font-weight:700}.theme-light .text-normal{font-weight:400;font-style:normal}.theme-light .hidden{display:none;visibility:hidden}.theme-light .ml-1{margin-left:1em}.theme-light .ml-2{margin-left:2em}.theme-light .ml-3{margin-left:3em} \ No newline at end of file +body,html{box-sizing:border-box;height:100%;margin:0;font-size:12px}html{overflow:hidden;cursor:default}body{overflow:auto;font-family:Verdana,Geneva,sans-serif}*,:after,:before{box-sizing:inherit}h1,h2,h3,h4,h5,h6{display:block;margin:0;padding:.5rem 0}h1{font-size:18px;font-size:1.5rem}h2{font-size:16px;font-size:1.333rem}h3{font-size:14px;font-size:1.167rem}h4{font-size:12px;font-size:1rem}td,th{vertical-align:baseline;text-align:left}.candystripe:nth-child(odd){background-color:rgba(0,0,0,.25)}.color-black{color:#1a1a1a!important}.color-white{color:#fff!important}.color-red{color:#df3e3e!important}.color-orange{color:#f37f33!important}.color-yellow{color:#fbda21!important}.color-olive{color:#cbe41c!important}.color-green{color:#25ca4c!important}.color-teal{color:#00d6cc!important}.color-blue{color:#2e93de!important}.color-violet{color:#7349cf!important}.color-purple{color:#ad45d0!important}.color-pink{color:#e34da1!important}.color-brown{color:#b97447!important}.color-grey{color:#848484!important}.color-good{color:#68c22d!important}.color-average{color:#f29a29!important}.color-bad{color:#df3e3e!important}.color-label{color:#8b9bb0!important}.color-bg-black{background-color:#000!important}.color-bg-white{background-color:#d9d9d9!important}.color-bg-red{background-color:#bd2020!important}.color-bg-orange{background-color:#d95e0c!important}.color-bg-yellow{background-color:#d9b804!important}.color-bg-olive{background-color:#9aad14!important}.color-bg-green{background-color:#1b9638!important}.color-bg-teal{background-color:#009a93!important}.color-bg-blue{background-color:#1c71b1!important}.color-bg-violet{background-color:#552dab!important}.color-bg-purple{background-color:#8b2baa!important}.color-bg-pink{background-color:#cf2082!important}.color-bg-brown{background-color:#8c5836!important}.color-bg-grey{background-color:#646464!important}.color-bg-good{background-color:#4d9121!important}.color-bg-average{background-color:#cd7a0d!important}.color-bg-bad{background-color:#bd2020!important}.color-bg-label{background-color:#657a94!important}.debug-layout,.debug-layout :not(g):not(path){color:hsla(0,0%,100%,.9)!important;background:transparent!important;outline:1px solid hsla(0,0%,100%,.5)!important;box-shadow:none!important;filter:none!important}.debug-layout:hover,.debug-layout :not(g):not(path):hover{outline-color:hsla(0,0%,100%,.8)!important}.outline-dotted{outline-style:dotted!important}.outline-dashed{outline-style:dashed!important}.outline-solid{outline-style:solid!important}.outline-double{outline-style:double!important}.outline-groove{outline-style:groove!important}.outline-ridge{outline-style:ridge!important}.outline-inset{outline-style:inset!important}.outline-outset{outline-style:outset!important}.outline-color-black{outline:.167rem solid #1a1a1a!important}.outline-color-white{outline:.167rem solid #fff!important}.outline-color-red{outline:.167rem solid #df3e3e!important}.outline-color-orange{outline:.167rem solid #f37f33!important}.outline-color-yellow{outline:.167rem solid #fbda21!important}.outline-color-olive{outline:.167rem solid #cbe41c!important}.outline-color-green{outline:.167rem solid #25ca4c!important}.outline-color-teal{outline:.167rem solid #00d6cc!important}.outline-color-blue{outline:.167rem solid #2e93de!important}.outline-color-violet{outline:.167rem solid #7349cf!important}.outline-color-purple{outline:.167rem solid #ad45d0!important}.outline-color-pink{outline:.167rem solid #e34da1!important}.outline-color-brown{outline:.167rem solid #b97447!important}.outline-color-grey{outline:.167rem solid #848484!important}.outline-color-good{outline:.167rem solid #68c22d!important}.outline-color-average{outline:.167rem solid #f29a29!important}.outline-color-bad{outline:.167rem solid #df3e3e!important}.outline-color-label{outline:.167rem solid #8b9bb0!important}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-baseline{text-align:baseline}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-pre{white-space:pre}.text-bold{font-weight:700}.text-italic{font-style:italic}.text-underline{text-decoration:underline}.BlockQuote{color:#8b9bb0;border-left:.1666666667em solid #8b9bb0;padding-left:.5em;margin-bottom:.5em}.BlockQuote:last-child{margin-bottom:0}.Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.Button:last-child{margin-right:0;margin-bottom:0}.Button .fa,.Button .far,.Button .fas{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.Button--hasContent .fa,.Button--hasContent .far,.Button--hasContent .fas{margin-right:.25em}.Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.Button--fluid{display:block;margin-left:0;margin-right:0}.Button--circular{border-radius:50%}.Button--compact{padding:0 .25em;line-height:1.333em}.Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.Button--color--black:hover{transition:color 0ms,background-color 0ms}.Button--color--black:focus{transition:color .1s,background-color .1s}.Button--color--black:focus,.Button--color--black:hover{background-color:#0a0a0a;color:#fff}.Button--color--white{transition:color 50ms,background-color 50ms;background-color:#d9d9d9;color:#000}.Button--color--white:hover{transition:color 0ms,background-color 0ms}.Button--color--white:focus{transition:color .1s,background-color .1s}.Button--color--white:focus,.Button--color--white:hover{background-color:#f3f3f3;color:#000}.Button--color--red{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--red:hover{transition:color 0ms,background-color 0ms}.Button--color--red:focus{transition:color .1s,background-color .1s}.Button--color--red:focus,.Button--color--red:hover{background-color:#d52b2b;color:#fff}.Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#d95e0c;color:#fff}.Button--color--orange:hover{transition:color 0ms,background-color 0ms}.Button--color--orange:focus{transition:color .1s,background-color .1s}.Button--color--orange:focus,.Button--color--orange:hover{background-color:#ed6f1d;color:#fff}.Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.Button--color--yellow:focus{transition:color .1s,background-color .1s}.Button--color--yellow:focus,.Button--color--yellow:hover{background-color:#f3d00e;color:#000}.Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#9aad14;color:#fff}.Button--color--olive:hover{transition:color 0ms,background-color 0ms}.Button--color--olive:focus{transition:color .1s,background-color .1s}.Button--color--olive:focus,.Button--color--olive:hover{background-color:#afc41f;color:#fff}.Button--color--green{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--color--green:hover{transition:color 0ms,background-color 0ms}.Button--color--green:focus{transition:color .1s,background-color .1s}.Button--color--green:focus,.Button--color--green:hover{background-color:#27ab46;color:#fff}.Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#009a93;color:#fff}.Button--color--teal:hover{transition:color 0ms,background-color 0ms}.Button--color--teal:focus{transition:color .1s,background-color .1s}.Button--color--teal:focus,.Button--color--teal:hover{background-color:#0aafa8;color:#fff}.Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#1c71b1;color:#fff}.Button--color--blue:hover{transition:color 0ms,background-color 0ms}.Button--color--blue:focus{transition:color .1s,background-color .1s}.Button--color--blue:focus,.Button--color--blue:hover{background-color:#2883c8;color:#fff}.Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#552dab;color:#fff}.Button--color--violet:hover{transition:color 0ms,background-color 0ms}.Button--color--violet:focus{transition:color .1s,background-color .1s}.Button--color--violet:focus,.Button--color--violet:hover{background-color:#653ac1;color:#fff}.Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#8b2baa;color:#fff}.Button--color--purple:hover{transition:color 0ms,background-color 0ms}.Button--color--purple:focus{transition:color .1s,background-color .1s}.Button--color--purple:focus,.Button--color--purple:hover{background-color:#9e38c1;color:#fff}.Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#cf2082;color:#fff}.Button--color--pink:hover{transition:color 0ms,background-color 0ms}.Button--color--pink:focus{transition:color .1s,background-color .1s}.Button--color--pink:focus,.Button--color--pink:hover{background-color:#dd3794;color:#fff}.Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#8c5836;color:#fff}.Button--color--brown:hover{transition:color 0ms,background-color 0ms}.Button--color--brown:focus{transition:color .1s,background-color .1s}.Button--color--brown:focus,.Button--color--brown:hover{background-color:#a06844;color:#fff}.Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#646464;color:#fff}.Button--color--grey:hover{transition:color 0ms,background-color 0ms}.Button--color--grey:focus{transition:color .1s,background-color .1s}.Button--color--grey:focus,.Button--color--grey:hover{background-color:#757575;color:#fff}.Button--color--good{transition:color 50ms,background-color 50ms;background-color:#4d9121;color:#fff}.Button--color--good:hover{transition:color 0ms,background-color 0ms}.Button--color--good:focus{transition:color .1s,background-color .1s}.Button--color--good:focus,.Button--color--good:hover{background-color:#5da52d;color:#fff}.Button--color--average{transition:color 50ms,background-color 50ms;background-color:#cd7a0d;color:#fff}.Button--color--average:hover{transition:color 0ms,background-color 0ms}.Button--color--average:focus{transition:color .1s,background-color .1s}.Button--color--average:focus,.Button--color--average:hover{background-color:#e68d18;color:#fff}.Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--bad:hover{transition:color 0ms,background-color 0ms}.Button--color--bad:focus{transition:color .1s,background-color .1s}.Button--color--bad:focus,.Button--color--bad:hover{background-color:#d52b2b;color:#fff}.Button--color--label{transition:color 50ms,background-color 50ms;background-color:#657a94;color:#fff}.Button--color--label:hover{transition:color 0ms,background-color 0ms}.Button--color--label:focus{transition:color .1s,background-color .1s}.Button--color--label:focus,.Button--color--label:hover{background-color:#7b8da4;color:#fff}.Button--color--default{transition:color 50ms,background-color 50ms;background-color:#3e6189;color:#fff}.Button--color--default:hover{transition:color 0ms,background-color 0ms}.Button--color--default:focus{transition:color .1s,background-color .1s}.Button--color--default:focus,.Button--color--default:hover{background-color:#4c729d;color:#fff}.Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--caution:hover{transition:color 0ms,background-color 0ms}.Button--color--caution:focus{transition:color .1s,background-color .1s}.Button--color--caution:focus,.Button--color--caution:hover{background-color:#f3d00e;color:#000}.Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--danger:hover{transition:color 0ms,background-color 0ms}.Button--color--danger:focus{transition:color .1s,background-color .1s}.Button--color--danger:focus,.Button--color--danger:hover{background-color:#d52b2b;color:#fff}.Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#202020;color:#fff;background-color:rgba(32,32,32,0);color:hsla(0,0%,100%,.5)}.Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.Button--color--transparent:focus{transition:color .1s,background-color .1s}.Button--color--transparent:focus,.Button--color--transparent:hover{background-color:#2c2c2c;color:#fff}.Button--disabled{background-color:#999!important}.Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--selected:hover{transition:color 0ms,background-color 0ms}.Button--selected:focus{transition:color .1s,background-color .1s}.Button--selected:focus,.Button--selected:hover{background-color:#27ab46;color:#fff}.ColorBox{display:inline-block;width:1em;height:1em;line-height:1em;text-align:center}.Dimmer{display:flex;justify-content:center;align-items:center;position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.75);z-index:1}.Divider--horizontal{margin:.5em 0}.Divider--horizontal:not(.Divider--hidden){border-top:.1666666667em solid hsla(0,0%,100%,.1)}.Divider--vertical{height:100%;margin:0 .5em}.Divider--vertical:not(.Divider--hidden){border-left:.1666666667em solid hsla(0,0%,100%,.1)}.Dropdown{position:relative}.Dropdown__control{position:relative;display:inline-block;font-family:Verdana,sans-serif;font-size:1em;width:8.3333333333em;line-height:1.4166666667em;user-select:none}.Dropdown__arrow-button{float:right;padding-left:.5em;border-left:.0833333333em solid #000;border-left:.0833333333em solid rgba(0,0,0,.25)}.Dropdown__menu{overflow-y:auto;overflow-y:scroll}.Dropdown__menu,.Dropdown__menu-noscroll{position:absolute;z-index:5;width:8.3333333333em;max-height:16.6666666667em;border-radius:0 0 .1666666667em .1666666667em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75)}.Dropdown__menu-noscroll{overflow-y:auto}.Dropdown__menuentry{padding:.1666666667em .3333333333em;font-family:Verdana,sans-serif;font-size:1em;line-height:1.4166666667em;transition:background-color .1s}.Dropdown__menuentry:hover{background-color:hsla(0,0%,100%,.2);transition:background-color 0ms}.Dropdown__over{top:auto;bottom:100%}.FatalError{display:block!important;position:absolute;top:0;left:0;right:0;bottom:0;padding:12px;font-size:12px;font-family:Consolas,monospace;color:#fff;background-color:#00d;z-index:1000;overflow:hidden;text-align:center}.FatalError__logo{display:inline-block;text-align:left;font-size:10px;line-height:8px;position:relative;margin-top:12px;top:0;left:0;animation:FatalError__rainbow 2s linear infinite alternate,FatalError__shadow 4s linear infinite alternate,FatalError__tfmX 3s infinite alternate,FatalError__tfmY 4s infinite alternate;white-space:pre-wrap;word-break:break-all}.FatalError__header{margin-top:12px}.FatalError__stack{text-align:left;white-space:pre-wrap;word-break:break-all;margin-top:24px;margin-bottom:24px}.FatalError__footer{margin-bottom:24px}@keyframes FatalError__rainbow{0%{color:#ff0}50%{color:#0ff}to{color:#f0f}}@keyframes FatalError__shadow{0%{left:-2px;text-shadow:4px 0 #f0f}50%{left:0;text-shadow:0 0 #0ff}to{left:2px;text-shadow:-4px 0 #ff0}}@keyframes FatalError__tfmX{0%{left:15px}to{left:-15px}}@keyframes FatalError__tfmY{to{top:-15px}}.Flex{display:-ms-flexbox;display:flex}.Flex--inline{display:inline-flex}.Flex--iefix{display:table!important;width:105%;border-collapse:collapse;border-spacing:0}.Flex--iefix:after{content:"";display:table-cell;width:5%}.Flex--iefix--column{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.Flex--iefix--column>.Flex__item--iefix{display:table-row!important}.Flex--iefix--column>.Flex__item--iefix--grow{height:100%!important}.Flex__item--iefix{display:table-cell!important;width:1%!important;min-width:99%}.Flex__item--iefix--grow{width:auto!important}.Flex--spacing--1{margin:0 -.25em}.Flex--spacing--1>.Flex__item{margin:0 .25em}.Flex--spacing--2{margin:0 -.5em}.Flex--spacing--2>.Flex__item{margin:0 .5em}.Knob{position:relative;font-size:1rem;width:2.6em;height:2.6em;margin:0 auto -.2em;cursor:n-resize}.Knob:after{content:".";color:transparent;line-height:2.5em}.Knob__circle{position:absolute;top:.1em;bottom:.1em;left:.1em;right:.1em;margin:.3em;background-color:#333;background-image:linear-gradient(180deg,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,0));border-radius:50%;box-shadow:0 .05em .5em 0 rgba(0,0,0,.5)}.Knob__cursorBox{position:absolute;top:0;bottom:0;left:0;right:0}.Knob__cursor{position:relative;top:.05em;margin:0 auto;width:.2em;height:.8em;background-color:hsla(0,0%,100%,.9)}.Knob__popupValue{position:absolute;top:-2rem;right:50%;font-size:1rem;text-align:center;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.Knob__ring{position:absolute;top:0;bottom:0;left:0;right:0;padding:.1em}.Knob__ringTrackPivot{transform:rotate(135deg)}.Knob__ringTrack{fill:transparent;stroke:hsla(0,0%,100%,.1);stroke-width:8;stroke-linecap:round;stroke-dasharray:235.62}.Knob__ringFillPivot{transform:rotate(135deg)}.Knob--bipolar .Knob__ringFillPivot{transform:rotate(270deg)}.Knob__ringFill{fill:transparent;stroke:#6a96c9;stroke-width:8;stroke-linecap:round;stroke-dasharray:314.16;transition:stroke 50ms}.Knob--color--black .Knob__ringFill{stroke:#1a1a1a}.Knob--color--white .Knob__ringFill{stroke:#fff}.Knob--color--red .Knob__ringFill{stroke:#df3e3e}.Knob--color--orange .Knob__ringFill{stroke:#f37f33}.Knob--color--yellow .Knob__ringFill{stroke:#fbda21}.Knob--color--olive .Knob__ringFill{stroke:#cbe41c}.Knob--color--green .Knob__ringFill{stroke:#25ca4c}.Knob--color--teal .Knob__ringFill{stroke:#00d6cc}.Knob--color--blue .Knob__ringFill{stroke:#2e93de}.Knob--color--violet .Knob__ringFill{stroke:#7349cf}.Knob--color--purple .Knob__ringFill{stroke:#ad45d0}.Knob--color--pink .Knob__ringFill{stroke:#e34da1}.Knob--color--brown .Knob__ringFill{stroke:#b97447}.Knob--color--grey .Knob__ringFill{stroke:#848484}.Knob--color--good .Knob__ringFill{stroke:#68c22d}.Knob--color--average .Knob__ringFill{stroke:#f29a29}.Knob--color--bad .Knob__ringFill{stroke:#df3e3e}.Knob--color--label .Knob__ringFill{stroke:#8b9bb0}.LabeledList{display:table;width:100%;width:calc(100% + 1em);border-collapse:collapse;border-spacing:0;margin:-.25em -.5em 0;padding:0}.LabeledList__row{display:table-row}.LabeledList__row:last-child .LabeledList__cell{padding-bottom:0}.LabeledList__cell{display:table-cell;margin:0;padding:.25em .5em;border:0;text-align:left;vertical-align:baseline}.LabeledList__label{width:1%;white-space:nowrap;min-width:5em}.LabeledList__buttons{width:.1%;white-space:nowrap;text-align:right;padding-top:.0833333333em;padding-bottom:0}.Modal{background-color:#202020;max-width:calc(100% - 1rem);padding:1rem}.NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#000;background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) 0,rgba(0,0,0,.1) 1.6666666667em)}.NoticeBox--color--black{color:#fff;background-color:#000}.NoticeBox--color--white{color:#000;background-color:#b3b3b3}.NoticeBox--color--red{color:#fff;background-color:#701f1f}.NoticeBox--color--orange{color:#fff;background-color:#854114}.NoticeBox--color--yellow{color:#000;background-color:#83710d}.NoticeBox--color--olive{color:#000;background-color:#576015}.NoticeBox--color--green{color:#fff;background-color:#174e24}.NoticeBox--color--teal{color:#fff;background-color:#064845}.NoticeBox--color--blue{color:#fff;background-color:#1b4565}.NoticeBox--color--violet{color:#fff;background-color:#3b2864}.NoticeBox--color--purple{color:#fff;background-color:#542663}.NoticeBox--color--pink{color:#fff;background-color:#802257}.NoticeBox--color--brown{color:#fff;background-color:#4c3729}.NoticeBox--color--grey{color:#fff;background-color:#3e3e3e}.NoticeBox--color--good{color:#fff;background-color:#2e4b1a}.NoticeBox--color--average{color:#fff;background-color:#7b4e13}.NoticeBox--color--bad{color:#fff;background-color:#701f1f}.NoticeBox--color--label{color:#fff;background-color:#53565a}.NoticeBox--type--info{color:#fff;background-color:#235982}.NoticeBox--type--success{color:#fff;background-color:#1e662f}.NoticeBox--type--warning{color:#fff;background-color:#a95219}.NoticeBox--type--danger{color:#fff;background-color:#8f2828}.NumberInput{position:relative;display:inline-block;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#88bfff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.NumberInput--fluid{display:block}.NumberInput__content{margin-left:.5em}.NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #88bfff;background-color:#88bfff}.NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#0a0a0a;color:#fff;text-align:right}.ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-radius:.16em;background-color:transparent;transition:border-color .5s}.ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.ProgressBar__fill--animated{transition:background-color .5s,width .5s}.ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.ProgressBar--color--default{border:.0833333333em solid #3e6189}.ProgressBar--color--default .ProgressBar__fill{background-color:#3e6189}.ProgressBar--color--black{border:.0833333333em solid #000!important}.ProgressBar--color--black .ProgressBar__fill{background-color:#000}.ProgressBar--color--white{border:.0833333333em solid #d9d9d9!important}.ProgressBar--color--white .ProgressBar__fill{background-color:#d9d9d9}.ProgressBar--color--red{border:.0833333333em solid #bd2020!important}.ProgressBar--color--red .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--orange{border:.0833333333em solid #d95e0c!important}.ProgressBar--color--orange .ProgressBar__fill{background-color:#d95e0c}.ProgressBar--color--yellow{border:.0833333333em solid #d9b804!important}.ProgressBar--color--yellow .ProgressBar__fill{background-color:#d9b804}.ProgressBar--color--olive{border:.0833333333em solid #9aad14!important}.ProgressBar--color--olive .ProgressBar__fill{background-color:#9aad14}.ProgressBar--color--green{border:.0833333333em solid #1b9638!important}.ProgressBar--color--green .ProgressBar__fill{background-color:#1b9638}.ProgressBar--color--teal{border:.0833333333em solid #009a93!important}.ProgressBar--color--teal .ProgressBar__fill{background-color:#009a93}.ProgressBar--color--blue{border:.0833333333em solid #1c71b1!important}.ProgressBar--color--blue .ProgressBar__fill{background-color:#1c71b1}.ProgressBar--color--violet{border:.0833333333em solid #552dab!important}.ProgressBar--color--violet .ProgressBar__fill{background-color:#552dab}.ProgressBar--color--purple{border:.0833333333em solid #8b2baa!important}.ProgressBar--color--purple .ProgressBar__fill{background-color:#8b2baa}.ProgressBar--color--pink{border:.0833333333em solid #cf2082!important}.ProgressBar--color--pink .ProgressBar__fill{background-color:#cf2082}.ProgressBar--color--brown{border:.0833333333em solid #8c5836!important}.ProgressBar--color--brown .ProgressBar__fill{background-color:#8c5836}.ProgressBar--color--grey{border:.0833333333em solid #646464!important}.ProgressBar--color--grey .ProgressBar__fill{background-color:#646464}.ProgressBar--color--good{border:.0833333333em solid #4d9121!important}.ProgressBar--color--good .ProgressBar__fill{background-color:#4d9121}.ProgressBar--color--average{border:.0833333333em solid #cd7a0d!important}.ProgressBar--color--average .ProgressBar__fill{background-color:#cd7a0d}.ProgressBar--color--bad{border:.0833333333em solid #bd2020!important}.ProgressBar--color--bad .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--label{border:.0833333333em solid #657a94!important}.ProgressBar--color--label .ProgressBar__fill{background-color:#657a94}.Section{position:relative;margin-bottom:.5em;background-color:#131313;box-sizing:border-box}.Section:last-child{margin-bottom:0}.Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #4972a1}.Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.Section__content{padding:.66em .5em}.Section--fill{display:flex;flex-direction:column;height:100%}.Section--fill .Section__content{flex-grow:1}.Section--iefix.Section--fill{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.Section--iefix.Section--fill .Section__content{display:table-row!important;height:100%!important}.Section--scrollable{overflow-x:hidden;overflow-y:scroll}.Section--level--1 .Section__titleText{font-size:1.1666666667em}.Section--level--2 .Section__titleText{font-size:1.0833333333em}.Section--level--3 .Section__titleText{font-size:1em}.Section--level--2,.Section--level--3{background-color:transparent;box-shadow:none;margin-left:-.5em;margin-right:-.5em}.Slider{cursor:e-resize}.Slider__cursorOffset{position:absolute;top:0;left:0;bottom:0;transition:none!important}.Slider__cursor{position:absolute;top:0;right:-.0833333333em;bottom:0;width:0;border-left:.1666666667em solid #fff}.Slider__pointer{position:absolute;right:-.4166666667em;bottom:-.3333333333em;width:0;height:0;border-left:.4166666667em solid transparent;border-right:.4166666667em solid transparent;border-bottom:.4166666667em solid #fff}.Slider__popupValue{position:absolute;right:0;top:-2rem;font-size:1rem;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.Table{display:table;width:100%;border-collapse:collapse;border-spacing:0;margin:0}.Table--collapsing{width:auto}.Table__row{display:table-row}.Table__cell{display:table-cell;padding:0 .25em}.Table__cell:first-child{padding-left:0}.Table__cell:last-child{padding-right:0}.Table__cell--header,.Table__row--header .Table__cell{font-weight:700;padding-bottom:.5em}.Table__cell--collapsing{width:1%;white-space:nowrap}.Tabs{display:flex;align-items:stretch;overflow:hidden}.Tabs--vertical{flex-direction:column}.Tabs--horizontal{margin-bottom:.5em}.Tabs--horizontal:last-child{margin-bottom:0}.Tabs__Tab{flex-grow:0}.Tabs--fluid .Tabs__Tab{flex-grow:1}.Tab{display:flex;align-items:center;justify-content:space-between;color:hsla(0,0%,100%,.5);min-height:2.25em;min-width:4em}.Tab--selected{color:#dfe7f0}.Tab__text{flex-grow:1;margin:0 .5em}.Tab__left{margin-left:.25em}.Tab__left,.Tab__right{min-width:1.5em;text-align:center}.Tab__right{margin-right:.25em}.Tabs--horizontal .Tab{border-top:.1666666667em solid transparent;border-bottom:.1666666667em solid transparent}.Tabs--horizontal .Tab--selected{border-bottom:.1666666667em solid #d4dfec}.Tabs--vertical .Tab{min-height:2em;border-left:.1666666667em solid transparent;border-right:.1666666667em solid transparent}.Tabs--vertical .Tab--selected{border-right:.1666666667em solid #d4dfec}.Tab--selected.Tab--color--black{color:#535353}.Tabs--horizontal .Tab--selected.Tab--color--black{border-bottom-color:#1a1a1a}.Tabs--vertical .Tab--selected.Tab--color--black{border-right-color:#1a1a1a}.Tab--selected.Tab--color--white{color:#fff}.Tabs--horizontal .Tab--selected.Tab--color--white{border-bottom-color:#fff}.Tabs--vertical .Tab--selected.Tab--color--white{border-right-color:#fff}.Tab--selected.Tab--color--red{color:#e76e6e}.Tabs--horizontal .Tab--selected.Tab--color--red{border-bottom-color:#df3e3e}.Tabs--vertical .Tab--selected.Tab--color--red{border-right-color:#df3e3e}.Tab--selected.Tab--color--orange{color:#f69f66}.Tabs--horizontal .Tab--selected.Tab--color--orange{border-bottom-color:#f37f33}.Tabs--vertical .Tab--selected.Tab--color--orange{border-right-color:#f37f33}.Tab--selected.Tab--color--yellow{color:#fce358}.Tabs--horizontal .Tab--selected.Tab--color--yellow{border-bottom-color:#fbda21}.Tabs--vertical .Tab--selected.Tab--color--yellow{border-right-color:#fbda21}.Tab--selected.Tab--color--olive{color:#d8eb55}.Tabs--horizontal .Tab--selected.Tab--color--olive{border-bottom-color:#cbe41c}.Tabs--vertical .Tab--selected.Tab--color--olive{border-right-color:#cbe41c}.Tab--selected.Tab--color--green{color:#53e074}.Tabs--horizontal .Tab--selected.Tab--color--green{border-bottom-color:#25ca4c}.Tabs--vertical .Tab--selected.Tab--color--green{border-right-color:#25ca4c}.Tab--selected.Tab--color--teal{color:#21fff5}.Tabs--horizontal .Tab--selected.Tab--color--teal{border-bottom-color:#00d6cc}.Tabs--vertical .Tab--selected.Tab--color--teal{border-right-color:#00d6cc}.Tab--selected.Tab--color--blue{color:#62aee6}.Tabs--horizontal .Tab--selected.Tab--color--blue{border-bottom-color:#2e93de}.Tabs--vertical .Tab--selected.Tab--color--blue{border-right-color:#2e93de}.Tab--selected.Tab--color--violet{color:#9676db}.Tabs--horizontal .Tab--selected.Tab--color--violet{border-bottom-color:#7349cf}.Tabs--vertical .Tab--selected.Tab--color--violet{border-right-color:#7349cf}.Tab--selected.Tab--color--purple{color:#c274db}.Tabs--horizontal .Tab--selected.Tab--color--purple{border-bottom-color:#ad45d0}.Tabs--vertical .Tab--selected.Tab--color--purple{border-right-color:#ad45d0}.Tab--selected.Tab--color--pink{color:#ea79b9}.Tabs--horizontal .Tab--selected.Tab--color--pink{border-bottom-color:#e34da1}.Tabs--vertical .Tab--selected.Tab--color--pink{border-right-color:#e34da1}.Tab--selected.Tab--color--brown{color:#ca9775}.Tabs--horizontal .Tab--selected.Tab--color--brown{border-bottom-color:#b97447}.Tabs--vertical .Tab--selected.Tab--color--brown{border-right-color:#b97447}.Tab--selected.Tab--color--grey{color:#a3a3a3}.Tabs--horizontal .Tab--selected.Tab--color--grey{border-bottom-color:#848484}.Tabs--vertical .Tab--selected.Tab--color--grey{border-right-color:#848484}.Tab--selected.Tab--color--good{color:#8cd95a}.Tabs--horizontal .Tab--selected.Tab--color--good{border-bottom-color:#68c22d}.Tabs--vertical .Tab--selected.Tab--color--good{border-right-color:#68c22d}.Tab--selected.Tab--color--average{color:#f5b35e}.Tabs--horizontal .Tab--selected.Tab--color--average{border-bottom-color:#f29a29}.Tabs--vertical .Tab--selected.Tab--color--average{border-right-color:#f29a29}.Tab--selected.Tab--color--bad{color:#e76e6e}.Tabs--horizontal .Tab--selected.Tab--color--bad{border-bottom-color:#df3e3e}.Tabs--vertical .Tab--selected.Tab--color--bad{border-right-color:#df3e3e}.Tab--selected.Tab--color--label{color:#a8b4c4}.Tabs--horizontal .Tab--selected.Tab--color--label{border-bottom-color:#8b9bb0}.Tabs--vertical .Tab--selected.Tab--color--label{border-right-color:#8b9bb0}.Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.Input--fluid{display:block;width:auto}.Input__baseline{display:inline-block;color:transparent}.Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#fff;color:inherit}.Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.Input--monospace .Input__input{font-family:Consolas,monospace}.TextArea{position:relative;display:inline-block;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;background-color:#0a0a0a;margin-right:.1666666667em;line-height:1.4166666667em;box-sizing:border-box;width:100%}.TextArea--fluid{display:block;width:auto;height:auto}.TextArea__textarea{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;height:100%;font-size:1em;line-height:1.4166666667em;min-height:1.4166666667em;margin:0;padding:0 .5em;font-family:inherit;background-color:transparent;color:inherit;box-sizing:border-box;word-wrap:break-word;overflow:hidden}.TextArea__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.Tooltip{position:absolute;top:0;left:0;right:0;bottom:0;font-style:normal;font-weight:400}.Tooltip:after{position:absolute;display:block;white-space:nowrap;z-index:2;padding:.5em .75em;transform:translateX(-50%);pointer-events:none;visibility:hidden;opacity:0;text-align:left;content:attr(data-tooltip);transition:all .15s;background-color:#000;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:.16em}.Tooltip:hover:after{transition:all 70ms;pointer-events:none;visibility:visible;opacity:1}.Tooltip--long:after{width:20.8333333333em;white-space:normal}.Tooltip--top:after{bottom:100%;left:50%;transform:translateX(-50%) translateY(.5em)}.Tooltip--bottom:after,.Tooltip--top:hover:after{transform:translateX(-50%) translateY(-.5em)}.Tooltip--bottom:after{top:100%;left:50%}.Tooltip--bottom:hover:after{transform:translateX(-50%) translateY(.5em)}.Tooltip--bottom-left:after{top:100%;right:50%;transform:translateX(12px) translateY(-.5em)}.Tooltip--bottom-left:hover:after{transform:translateX(12px) translateY(.5em)}.Tooltip--bottom-right:after{top:100%;left:50%;transform:translateX(-12px) translateY(-.5em)}.Tooltip--bottom-right:hover:after{transform:translateX(-12px) translateY(.5em)}.Tooltip--left:after{top:50%;right:100%;transform:translateX(.5em) translateY(-50%)}.Tooltip--left:hover:after,.Tooltip--right:after{transform:translateX(-.5em) translateY(-50%)}.Tooltip--right:after{top:50%;left:100%}.Tooltip--right:hover:after{transform:translateX(.5em) translateY(-50%)}.Chat{color:#abc6ec}.Chat__badge{display:inline-block;min-width:.5em;font-size:.7em;padding:.2em .3em;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#dc143c;border-radius:10px;transition:font-size .2s}.Chat__badge:before{content:"x"}.Chat__badge--animate{font-size:.9em;transition:font-size 0ms}.Chat__scrollButton{position:fixed;right:2em;bottom:1em}.Chat__reconnected{font-size:.85em;text-align:center;margin:1em 0 2em}.Chat__reconnected:before{content:"Reconnected";display:inline-block;border-radius:1em;padding:0 .7em;color:#db2828;background-color:#131313}.Chat__reconnected:after{content:"";display:block;margin-top:-.75em;border-bottom:.1666666667em solid #db2828}.Chat__highlight{color:#000}.Chat__highlight--restricted{color:#fff;background-color:#a00;font-weight:700}.ChatMessage{word-wrap:break-word}.ChatMessage--highlighted{position:relative;border-left:.1666666667em solid #fd4;padding-left:.5em}.ChatMessage--highlighted:after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(255,221,68,.1);pointer-events:none}.Ping{position:relative;padding:.125em .25em;border:.0833333333em solid hsla(0,0%,54.9%,.5);border-radius:.25em;width:3.75em;text-align:right}.Ping__indicator{content:"";position:absolute;top:.5em;left:.5em;width:.5em;height:.5em;background-color:#888;border-radius:.25em}.Notifications{position:absolute;bottom:1em;left:1em;right:2em}.Notification{color:#fff;background-color:#dc143c;padding:.5em;margin:1em 0}.Notification:first-child{margin-top:0}.Notification:last-child{margin-bottom:0}.Layout,.Layout *{scrollbar-base-color:#181818;scrollbar-face-color:#363636;scrollbar-3dlight-color:#202020;scrollbar-highlight-color:#202020;scrollbar-track-color:#181818;scrollbar-arrow-color:#909090;scrollbar-shadow-color:#363636}.Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.Window{bottom:0;right:0;color:#fff;background-color:#202020;background-image:linear-gradient(180deg,#202020 0,#202020)}.Window,.Window__titleBar{position:fixed;top:0;left:0}.Window__titleBar{z-index:1;width:100%;height:32px;height:2.6666666667rem}.Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.Window__contentPadding:after{height:0}.Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(56,56,56,.25);pointer-events:none}.Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}img{margin:0;padding:0;line-height:1;-ms-interpolation-mode:nearest-neighbor;image-rendering:pixelated}img.icon{height:1em;min-height:16px;width:auto;vertical-align:bottom}a{color:#397ea5}a.visited,a:visited{color:#7c00e6}a.popt{text-decoration:none}.popup{position:fixed;top:50%;left:50%;background:#ddd}.popup .close{position:absolute;background:#aaa;top:0;right:0;color:#333;text-decoration:none;z-index:2;padding:0 10px;height:30px;line-height:30px}.popup .close:hover,.popup .head{background:#999}.popup .head{color:#ddd;padding:0 10px;height:30px;line-height:30px;text-transform:uppercase;font-size:.9em;font-weight:700;border-bottom:2px solid green}.popup input{border:1px solid #999;background:#fff;margin:0;padding:5px;outline:none;color:#333}.popup input[type=text]:active,.popup input[type=text]:focus,.popup input[type=text]:hover{border-color:green}.popup input[type=submit]{padding:5px 10px;background:#999;color:#ddd;text-transform:uppercase;font-size:.9em;font-weight:700}.popup input[type=submit]:active,.popup input[type=submit]:focus,.popup input[type=submit]:hover{background:#aaa;cursor:pointer}.changeFont{padding:10px}.changeFont a{display:block;text-decoration:none;padding:3px;color:#333}.changeFont a:hover{background:#ccc}.highlightPopup{padding:10px;text-align:center}.highlightPopup input[type=text]{display:block;width:215px;text-align:left;margin-top:5px}.highlightPopup input.highlightColor{background-color:#ff0}.highlightPopup input.highlightTermSubmit{margin-top:5px}.contextMenu{background-color:#ddd;position:fixed;margin:2px;width:150px}.contextMenu a{display:block;padding:2px 5px;text-decoration:none;color:#333}.contextMenu a:hover{background-color:#ccc}.filterMessages{padding:5px}.filterMessages div{padding:2px 0}.icon-stack{height:1em;line-height:1em;width:1em;vertical-align:middle;margin-top:-2px}.motd{color:#a4bad6;font-family:Verdana,sans-serif;white-space:normal}.motd h1,.motd h2,.motd h3,.motd h4,.motd h5,.motd h6{color:#a4bad6;text-decoration:underline}.motd a,.motd a:active,.motd a:hover,.motd a:link,.motd a:visited{color:#a4bad6}.admin,.adminooc,.bold,.looc,.medal,.name,.ooc,.prefix,.yell{font-weight:700}.emote,.italic,.italics{font-style:italic}.highlight{background:#ff0}h1,h2,h3,h4,h5,h6{color:#a4bad6;font-family:Georgia,Verdana,sans-serif}h1.alert,h2.alert{color:#a4bad6}em{font-style:normal}.ooc,em{font-weight:700}.ooc{color:#cca300}.looc{color:#69c;font-weight:700}.antagooc{color:#b8002e;font-weight:700}.adminobserverooc{color:#09c;font-weight:700}.adminooc{color:#3d5bc3;font-weight:700}.adminsay{color:#ff4500;font-weight:700}.adminobserver{color:#960;font-weight:700}.admin{color:#5975da;font-weight:700}.mentorsay{color:#e236d8;font-weight:700}.mentorsay_admin{color:#8a2be2;font-weight:700}.name{font-weight:700}.deadsay{color:#e2c1ff}.binarysay{color:#1e90ff}.binarysay a{color:#0f0}.binarysay a:active,.binarysay a:visited{color:#8f8}.radio{color:#1ecc43}.sciradio{color:#c68cfa}.comradio{color:#fcdf03}.secradio{color:#dd3535}.medradio{color:#57b8f0}.engradio{color:#f37746}.suppradio{color:#b88646}.servradio{color:#6ca729}.syndradio{color:#8f4a4b}.centcomradio{color:#2681a5}.aiprivradio{color:#d65d95}.redteamradio{color:#f44}.blueteamradio{color:#3434fd}.yell{font-weight:700}.alert{color:#d82020}.emote{font-style:italic}.userdanger{font-weight:700;font-size:185%}.danger,.userdanger,.warning{color:#c51e1e}.warning{font-style:italic}.alertwarning{color:red;font-weight:700}.boldwarning{font-style:italic}.announce,.boldannounce,.boldwarning{color:#c51e1e;font-weight:700}.greenannounce{color:#059223;font-weight:700}.rose{color:#ff5050}.info{color:#9ab0ff}.notice{color:#6685f5}.tinynotice{font-size:85%}.smallnotice,.tinynotice{color:#6685f5;font-style:italic}.smallnotice{font-size:90%}.boldnotice{color:#6685f5;font-weight:700}.hear{font-style:italic}.adminnotice,.hear{color:#6685f5}.adminhelp{color:red;font-weight:700}.unconscious{color:#a4bad6;font-weight:700}.suicide{color:#ff5050;font-style:italic}.green{color:#059223}.red{color:red}.blue{color:#215cff}.nicegreen{color:#059223}.userlove{color:#ff42a6;font-weight:700;text-shadow:0 0 6px #82365e}.love,.userlove{font-style:italic}.love{color:#ff4591;text-shadow:0 0 6px #994449}.cult{color:#aa1c1c}.cultbold,.cultitalic{color:#aa1c1c;font-style:italic}.cultbold{font-weight:700}.cultboldtalic,.cultlarge{color:#aa1c1c;font-weight:700;font-size:185%}.narsie{font-size:925%}.narsie,.narsiesmall{color:#aa1c1c;font-weight:700}.narsiesmall{font-size:370%}.colossus{color:#7f282a;font-size:310%}.hierophant{color:#b441ee;font-weight:700;font-style:italic}.hierophant_warning{color:#c56bf1;font-style:italic}.purple{color:#9956d3}.holoparasite{color:#88809c}.revennotice{color:#c099e2}.revenbignotice,.revenboldnotice{color:#c099e2;font-weight:700}.revenbignotice{font-size:185%}.revenminor{color:#823abb}.revenwarning{color:#760fbb;font-style:italic}.revendanger{color:#760fbb;font-weight:700;font-size:185%}.umbra{color:#5000a0}.umbra_emphasis,.umbra_large{color:#5000a0;font-weight:700;font-style:italic}.umbra_large{font-size:3}.deconversion_message{color:#5000a0;font-size:185%;font-style:italic}.brass,.heavy_brass{color:#be8700}.heavy_brass{font-weight:700;font-style:italic}.large_brass{color:#be8700;font-size:185%}.big_brass{font-size:185%}.big_brass,.ratvar{color:#be8700;font-weight:700;font-style:italic}.ratvar{font-size:6}.alloy{color:#42474d}.heavy_alloy,.nezbere_large{color:#42474d;font-weight:700;font-style:italic}.nezbere_large{font-size:185%}.nezbere{font-weight:700;font-style:italic}.nezbere,.nezbere_small{color:#42474d}.sevtug_large{font-size:185%}.sevtug,.sevtug_large{color:#af0aaf;font-weight:700;font-style:italic}.sevtug_small{color:#af0aaf}.inathneq_large{font-size:185%}.inathneq,.inathneq_large{color:#1e8ce1;font-weight:700;font-style:italic}.inathneq_small{color:#1e8ce1}.nzcrentr_large{font-size:185%}.nzcrentr,.nzcrentr_large{color:#daaa18;font-weight:700;font-style:italic}.nzcrentr_small{color:#daaa18}.neovgre_large{font-size:185%}.neovgre,.neovgre_large{color:#6e001a;font-weight:700;font-style:italic}.neovgre_small{color:#6e001a}.ghostalert{color:#60f;font-style:italic;font-weight:700}.alien{color:#855d85}.alertalien,.noticealien{color:#059223}.alertalien{font-weight:700}.changeling{color:#059223;font-style:italic}.alertsyndie{color:red}.alertsyndie,.spider{font-size:185%;font-weight:700}.spider{color:#80f}.interface{color:#750e75}.sans{font-family:Comic Sans MS,cursive,sans-serif}.papyrus{font-family:Papyrus,cursive,sans-serif}.robot{font-family:Courier New,cursive,sans-serif}.command_headset{font-weight:700;font-size:160%}.small{font-size:60%}.big{font-size:185%}.reallybig{font-size:245%}.extremelybig{font-size:310%}.greentext{color:#059223;font-size:185%}.redtext{color:#c51e1e;font-size:185%}.yellowtext{color:#fc0;font-size:185%}.clown{color:#ff70c1;font-size:160%;font-family:Comic Sans MS,cursive,sans-serif;font-weight:700}.singing{font-family:Trebuchet MS,cursive,sans-serif;font-style:italic}.his_grace{color:#15d512;font-family:Courier New,cursive,sans-serif;font-style:italic}.spooky{color:#ff9100}.hypnophrase{color:#202020;font-weight:700;animation:hypnocolor 1.5s infinite;animation-direction:alternate}.velvet{color:#660015;font-weight:700;animation:velvet 5s infinite;animation-direction:alternate}.phobia{color:#d00;font-weight:700;animation:phobia .75s infinite}.icon{height:1em;width:auto}.memo{color:#638500}.memo,.memoedit{text-align:center}.memoedit{font-size:125%}.abductor{color:#c204c2;font-style:italic}.mind_control{color:#df3da9;font-size:100%;font-weight:700;font-style:italic}.slime{color:#00ced1}.drone{color:#848482}.monkey{color:#975032}.swarmer{color:#2c75ff}.resonate{color:#298f85}.monkeyhive{color:#a56408}.monkeylead{color:#af6805;font-size:80%}.connectionClosed,.fatalError{background:red;color:#fff;padding:5px}.connectionClosed.restored{background:green}.internal.boldnshit{color:#3d5bc3;font-weight:700}.text-normal{font-weight:400;font-style:normal}.hidden{display:none;visibility:hidden}.ml-1{margin-left:1em}.ml-2{margin-left:2em}.ml-3{margin-left:3em}.theme-light .color-black{color:#000!important}.theme-light .color-white{color:#e6e6e6!important}.theme-light .color-red{color:#c82121!important}.theme-light .color-orange{color:#e6630d!important}.theme-light .color-yellow{color:#e5c304!important}.theme-light .color-olive{color:#a3b816!important}.theme-light .color-green{color:#1d9f3b!important}.theme-light .color-teal{color:#00a39c!important}.theme-light .color-blue{color:#1e78bb!important}.theme-light .color-violet{color:#5a30b5!important}.theme-light .color-purple{color:#932eb4!important}.theme-light .color-pink{color:#db228a!important}.theme-light .color-brown{color:#955d39!important}.theme-light .color-grey{color:#e6e6e6!important}.theme-light .color-good{color:#529923!important}.theme-light .color-average{color:#da810e!important}.theme-light .color-bad{color:#c82121!important}.theme-light .color-label{color:#353535!important}.theme-light .color-bg-black{background-color:#000!important}.theme-light .color-bg-white{background-color:#bfbfbf!important}.theme-light .color-bg-red{background-color:#a61c1c!important}.theme-light .color-bg-orange{background-color:#c0530b!important}.theme-light .color-bg-yellow{background-color:#bfa303!important}.theme-light .color-bg-olive{background-color:#889912!important}.theme-light .color-bg-green{background-color:#188532!important}.theme-light .color-bg-teal{background-color:#008882!important}.theme-light .color-bg-blue{background-color:#19649c!important}.theme-light .color-bg-violet{background-color:#4b2897!important}.theme-light .color-bg-purple{background-color:#7a2696!important}.theme-light .color-bg-pink{background-color:#b61d73!important}.theme-light .color-bg-brown{background-color:#7c4d2f!important}.theme-light .color-bg-grey{background-color:#bfbfbf!important}.theme-light .color-bg-good{background-color:#44801d!important}.theme-light .color-bg-average{background-color:#b56b0b!important}.theme-light .color-bg-bad{background-color:#a61c1c!important}.theme-light .color-bg-label{background-color:#2c2c2c!important}.theme-light .Tabs{display:flex;align-items:stretch;overflow:hidden}.theme-light .Tabs--vertical{flex-direction:column}.theme-light .Tabs--horizontal{margin-bottom:.5em}.theme-light .Tabs--horizontal:last-child{margin-bottom:0}.theme-light .Tabs__Tab{flex-grow:0}.theme-light .Tabs--fluid .Tabs__Tab{flex-grow:1}.theme-light .Tab{display:flex;align-items:center;justify-content:space-between;color:rgba(0,0,0,.5);min-height:2.25em;min-width:4em}.theme-light .Tab--selected{color:#404040}.theme-light .Tab__text{flex-grow:1;margin:0 .5em}.theme-light .Tab__left{min-width:1.5em;text-align:center;margin-left:.25em}.theme-light .Tab__right{min-width:1.5em;text-align:center;margin-right:.25em}.theme-light .Tabs--horizontal .Tab{border-top:.1666666667em solid transparent;border-bottom:.1666666667em solid transparent}.theme-light .Tabs--horizontal .Tab--selected{border-bottom:.1666666667em solid #000}.theme-light .Tabs--vertical .Tab{min-height:2em;border-left:.1666666667em solid transparent;border-right:.1666666667em solid transparent}.theme-light .Tabs--vertical .Tab--selected{border-right:.1666666667em solid #000}.theme-light .Tab--selected.Tab--color--black{color:#404040}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--black{border-bottom-color:#000}.theme-light .Tabs--vertical .Tab--selected.Tab--color--black{border-right-color:#000}.theme-light .Tab--selected.Tab--color--white{color:#ececec}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--white{border-bottom-color:#e6e6e6}.theme-light .Tabs--vertical .Tab--selected.Tab--color--white{border-right-color:#e6e6e6}.theme-light .Tab--selected.Tab--color--red{color:#e14d4d}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--red{border-bottom-color:#c82121}.theme-light .Tabs--vertical .Tab--selected.Tab--color--red{border-right-color:#c82121}.theme-light .Tab--selected.Tab--color--orange{color:#f48942}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--orange{border-bottom-color:#e6630d}.theme-light .Tabs--vertical .Tab--selected.Tab--color--orange{border-right-color:#e6630d}.theme-light .Tab--selected.Tab--color--yellow{color:#fcdd33}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--yellow{border-bottom-color:#e5c304}.theme-light .Tabs--vertical .Tab--selected.Tab--color--yellow{border-right-color:#e5c304}.theme-light .Tab--selected.Tab--color--olive{color:#d0e732}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--olive{border-bottom-color:#a3b816}.theme-light .Tabs--vertical .Tab--selected.Tab--color--olive{border-right-color:#a3b816}.theme-light .Tab--selected.Tab--color--green{color:#33da5a}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--green{border-bottom-color:#1d9f3b}.theme-light .Tabs--vertical .Tab--selected.Tab--color--green{border-right-color:#1d9f3b}.theme-light .Tab--selected.Tab--color--teal{color:#00faef}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--teal{border-bottom-color:#00a39c}.theme-light .Tabs--vertical .Tab--selected.Tab--color--teal{border-right-color:#00a39c}.theme-light .Tab--selected.Tab--color--blue{color:#419ce1}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--blue{border-bottom-color:#1e78bb}.theme-light .Tabs--vertical .Tab--selected.Tab--color--blue{border-right-color:#1e78bb}.theme-light .Tab--selected.Tab--color--violet{color:#7f58d3}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--violet{border-bottom-color:#5a30b5}.theme-light .Tabs--vertical .Tab--selected.Tab--color--violet{border-right-color:#5a30b5}.theme-light .Tab--selected.Tab--color--purple{color:#b455d4}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--purple{border-bottom-color:#932eb4}.theme-light .Tabs--vertical .Tab--selected.Tab--color--purple{border-right-color:#932eb4}.theme-light .Tab--selected.Tab--color--pink{color:#e558a7}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--pink{border-bottom-color:#db228a}.theme-light .Tabs--vertical .Tab--selected.Tab--color--pink{border-right-color:#db228a}.theme-light .Tab--selected.Tab--color--brown{color:#c0825a}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--brown{border-bottom-color:#955d39}.theme-light .Tabs--vertical .Tab--selected.Tab--color--brown{border-right-color:#955d39}.theme-light .Tab--selected.Tab--color--grey{color:#ececec}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--grey{border-bottom-color:#e6e6e6}.theme-light .Tabs--vertical .Tab--selected.Tab--color--grey{border-right-color:#e6e6e6}.theme-light .Tab--selected.Tab--color--good{color:#77d23b}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--good{border-bottom-color:#529923}.theme-light .Tabs--vertical .Tab--selected.Tab--color--good{border-right-color:#529923}.theme-light .Tab--selected.Tab--color--average{color:#f3a23a}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--average{border-bottom-color:#da810e}.theme-light .Tabs--vertical .Tab--selected.Tab--color--average{border-right-color:#da810e}.theme-light .Tab--selected.Tab--color--bad{color:#e14d4d}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--bad{border-bottom-color:#c82121}.theme-light .Tabs--vertical .Tab--selected.Tab--color--bad{border-right-color:#c82121}.theme-light .Tab--selected.Tab--color--label{color:#686868}.theme-light .Tabs--horizontal .Tab--selected.Tab--color--label{border-bottom-color:#353535}.theme-light .Tabs--vertical .Tab--selected.Tab--color--label{border-right-color:#353535}.theme-light .Section{position:relative;margin-bottom:.5em;background-color:#fff;box-sizing:border-box}.theme-light .Section:last-child{margin-bottom:0}.theme-light .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #fff}.theme-light .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#000}.theme-light .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-light .Section__content{padding:.66em .5em}.theme-light .Section--fill{display:flex;flex-direction:column;height:100%}.theme-light .Section--fill .Section__content{flex-grow:1}.theme-light .Section--iefix.Section--fill{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-light .Section--iefix.Section--fill .Section__content{display:table-row!important;height:100%!important}.theme-light .Section--scrollable{overflow-x:hidden;overflow-y:scroll}.theme-light .Section--level--1 .Section__titleText{font-size:1.1666666667em}.theme-light .Section--level--2 .Section__titleText{font-size:1.0833333333em}.theme-light .Section--level--3 .Section__titleText{font-size:1em}.theme-light .Section--level--2,.theme-light .Section--level--3{background-color:transparent;box-shadow:none;margin-left:-.5em;margin-right:-.5em}.theme-light .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-light .Button:last-child{margin-right:0;margin-bottom:0}.theme-light .Button .fa,.theme-light .Button .far,.theme-light .Button .fas{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-light .Button--hasContent .fa,.theme-light .Button--hasContent .far,.theme-light .Button--hasContent .fas{margin-right:.25em}.theme-light .Button--ellipsis{overflow:hidden;text-overflow:ellipsis}.theme-light .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-light .Button--circular{border-radius:50%}.theme-light .Button--compact{padding:0 .25em;line-height:1.333em}.theme-light .Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.theme-light .Button--color--black:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--black:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--black:focus,.theme-light .Button--color--black:hover{background-color:#0a0a0a;color:#fff}.theme-light .Button--color--white{transition:color 50ms,background-color 50ms;background-color:#bfbfbf;color:#000}.theme-light .Button--color--white:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--white:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--white:focus,.theme-light .Button--color--white:hover{background-color:#d7d7d7;color:#000}.theme-light .Button--color--red{transition:color 50ms,background-color 50ms;background-color:#a61c1c;color:#fff}.theme-light .Button--color--red:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--red:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--red:focus,.theme-light .Button--color--red:hover{background-color:#bc2828;color:#fff}.theme-light .Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#c0530b;color:#fff}.theme-light .Button--color--orange:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--orange:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--orange:focus,.theme-light .Button--color--orange:hover{background-color:#d76316;color:#fff}.theme-light .Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#bfa303;color:#fff}.theme-light .Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--yellow:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--yellow:focus,.theme-light .Button--color--yellow:hover{background-color:#d7b90d;color:#fff}.theme-light .Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#889912;color:#fff}.theme-light .Button--color--olive:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--olive:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--olive:focus,.theme-light .Button--color--olive:hover{background-color:#9cae1d;color:#fff}.theme-light .Button--color--green{transition:color 50ms,background-color 50ms;background-color:#188532;color:#fff}.theme-light .Button--color--green:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--green:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--green:focus,.theme-light .Button--color--green:hover{background-color:#24993f;color:#fff}.theme-light .Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#008882;color:#fff}.theme-light .Button--color--teal:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--teal:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--teal:focus,.theme-light .Button--color--teal:hover{background-color:#0a9c95;color:#fff}.theme-light .Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#19649c;color:#fff}.theme-light .Button--color--blue:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--blue:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--blue:focus,.theme-light .Button--color--blue:hover{background-color:#2475b1;color:#fff}.theme-light .Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#4b2897;color:#fff}.theme-light .Button--color--violet:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--violet:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--violet:focus,.theme-light .Button--color--violet:hover{background-color:#5a35ac;color:#fff}.theme-light .Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#7a2696;color:#fff}.theme-light .Button--color--purple:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--purple:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--purple:focus,.theme-light .Button--color--purple:hover{background-color:#8d33ab;color:#fff}.theme-light .Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#b61d73;color:#fff}.theme-light .Button--color--pink:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--pink:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--pink:focus,.theme-light .Button--color--pink:hover{background-color:#ce2985;color:#fff}.theme-light .Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#7c4d2f;color:#fff}.theme-light .Button--color--brown:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--brown:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--brown:focus,.theme-light .Button--color--brown:hover{background-color:#8f5d3c;color:#fff}.theme-light .Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#bfbfbf;color:#000}.theme-light .Button--color--grey:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--grey:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--grey:focus,.theme-light .Button--color--grey:hover{background-color:#d7d7d7;color:#000}.theme-light .Button--color--good{transition:color 50ms,background-color 50ms;background-color:#44801d;color:#fff}.theme-light .Button--color--good:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--good:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--good:focus,.theme-light .Button--color--good:hover{background-color:#539329;color:#fff}.theme-light .Button--color--average{transition:color 50ms,background-color 50ms;background-color:#b56b0b;color:#fff}.theme-light .Button--color--average:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--average:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--average:focus,.theme-light .Button--color--average:hover{background-color:#cd7d16;color:#fff}.theme-light .Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#a61c1c;color:#fff}.theme-light .Button--color--bad:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--bad:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--bad:focus,.theme-light .Button--color--bad:hover{background-color:#bc2828;color:#fff}.theme-light .Button--color--label{transition:color 50ms,background-color 50ms;background-color:#2c2c2c;color:#fff}.theme-light .Button--color--label:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--label:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--label:focus,.theme-light .Button--color--label:hover{background-color:#393939;color:#fff}.theme-light .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#bbb;color:#000}.theme-light .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--default:focus,.theme-light .Button--color--default:hover{background-color:#d3d3d3;color:#000}.theme-light .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-light .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--caution:focus,.theme-light .Button--color--caution:hover{background-color:#d67313;color:#fff}.theme-light .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-light .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--danger:focus,.theme-light .Button--color--danger:hover{background-color:#afb30a;color:#fff}.theme-light .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#eee;color:#000;background-color:hsla(0,0%,93.3%,0);color:rgba(0,0,0,.5)}.theme-light .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-light .Button--color--transparent:focus,.theme-light .Button--color--transparent:hover{background-color:#fcfcfc;color:#000}.theme-light .Button--disabled{background-color:#363636!important}.theme-light .Button--selected{transition:color 50ms,background-color 50ms;background-color:#0668b8;color:#fff}.theme-light .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-light .Button--selected:focus{transition:color .1s,background-color .1s}.theme-light .Button--selected:focus,.theme-light .Button--selected:hover{background-color:#107ad0;color:#fff}.theme-light .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;color:#353535;background-color:#fff;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-light .NumberInput--fluid{display:block}.theme-light .NumberInput__content{margin-left:.5em}.theme-light .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-light .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #353535;background-color:#353535}.theme-light .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;text-align:right}.theme-light .Input,.theme-light .NumberInput__input{line-height:1.4166666667em;background-color:#fff;color:#000}.theme-light .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;padding:0 .3333333333em;margin-right:.1666666667em;overflow:visible}.theme-light .Input--fluid{display:block;width:auto}.theme-light .Input__baseline{display:inline-block;color:transparent}.theme-light .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:transparent;color:#000;color:inherit}.theme-light .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-light .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-light .TextArea{position:relative;display:inline-block;border:.0833333333em solid #353535;border:.0833333333em solid rgba(53,53,53,.75);border-radius:.16em;background-color:#fff;margin-right:.1666666667em;line-height:1.4166666667em;box-sizing:border-box;width:100%}.theme-light .TextArea--fluid{display:block;width:auto;height:auto}.theme-light .TextArea__textarea{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;height:100%;font-size:1em;line-height:1.4166666667em;min-height:1.4166666667em;margin:0;padding:0 .5em;font-family:inherit;background-color:transparent;color:inherit;box-sizing:border-box;word-wrap:break-word;overflow:hidden}.theme-light .TextArea__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:hsla(0,0%,100%,.45)}.theme-light .Knob{position:relative;font-size:1rem;width:2.6em;height:2.6em;margin:0 auto -.2em;cursor:n-resize}.theme-light .Knob:after{content:".";color:transparent;line-height:2.5em}.theme-light .Knob__circle{position:absolute;top:.1em;bottom:.1em;left:.1em;right:.1em;margin:.3em;background-color:#333;background-image:linear-gradient(180deg,hsla(0,0%,100%,.15) 0,hsla(0,0%,100%,0));border-radius:50%;box-shadow:0 .05em .5em 0 rgba(0,0,0,.5)}.theme-light .Knob__cursorBox{position:absolute;top:0;bottom:0;left:0;right:0}.theme-light .Knob__cursor{position:relative;top:.05em;margin:0 auto;width:.2em;height:.8em;background-color:hsla(0,0%,100%,.9)}.theme-light .Knob__popupValue{position:absolute;top:-2rem;right:50%;font-size:1rem;text-align:center;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.theme-light .Knob__ring{position:absolute;top:0;bottom:0;left:0;right:0;padding:.1em}.theme-light .Knob__ringTrackPivot{transform:rotate(135deg)}.theme-light .Knob__ringTrack{fill:transparent;stroke:hsla(0,0%,100%,.1);stroke-width:8;stroke-linecap:round;stroke-dasharray:235.62}.theme-light .Knob__ringFillPivot{transform:rotate(135deg)}.theme-light .Knob--bipolar .Knob__ringFillPivot{transform:rotate(270deg)}.theme-light .Knob__ringFill{fill:transparent;stroke:#6a96c9;stroke-width:8;stroke-linecap:round;stroke-dasharray:314.16;transition:stroke 50ms}.theme-light .Knob--color--black .Knob__ringFill{stroke:#000}.theme-light .Knob--color--white .Knob__ringFill{stroke:#e6e6e6}.theme-light .Knob--color--red .Knob__ringFill{stroke:#c82121}.theme-light .Knob--color--orange .Knob__ringFill{stroke:#e6630d}.theme-light .Knob--color--yellow .Knob__ringFill{stroke:#e5c304}.theme-light .Knob--color--olive .Knob__ringFill{stroke:#a3b816}.theme-light .Knob--color--green .Knob__ringFill{stroke:#1d9f3b}.theme-light .Knob--color--teal .Knob__ringFill{stroke:#00a39c}.theme-light .Knob--color--blue .Knob__ringFill{stroke:#1e78bb}.theme-light .Knob--color--violet .Knob__ringFill{stroke:#5a30b5}.theme-light .Knob--color--purple .Knob__ringFill{stroke:#932eb4}.theme-light .Knob--color--pink .Knob__ringFill{stroke:#db228a}.theme-light .Knob--color--brown .Knob__ringFill{stroke:#955d39}.theme-light .Knob--color--grey .Knob__ringFill{stroke:#e6e6e6}.theme-light .Knob--color--good .Knob__ringFill{stroke:#529923}.theme-light .Knob--color--average .Knob__ringFill{stroke:#da810e}.theme-light .Knob--color--bad .Knob__ringFill{stroke:#c82121}.theme-light .Knob--color--label .Knob__ringFill{stroke:#353535}.theme-light .Slider{cursor:e-resize}.theme-light .Slider__cursorOffset{position:absolute;top:0;left:0;bottom:0;transition:none!important}.theme-light .Slider__cursor{position:absolute;top:0;right:-.0833333333em;bottom:0;width:0;border-left:.1666666667em solid #000}.theme-light .Slider__pointer{position:absolute;right:-.4166666667em;bottom:-.3333333333em;width:0;height:0;border-left:.4166666667em solid transparent;border-right:.4166666667em solid transparent;border-bottom:.4166666667em solid #000}.theme-light .Slider__popupValue{position:absolute;right:0;top:-2rem;font-size:1rem;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translateX(50%);white-space:nowrap}.theme-light .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-radius:.16em;background-color:transparent;transition:border-color .5s}.theme-light .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-light .ProgressBar__fill--animated{transition:background-color .5s,width .5s}.theme-light .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-light .ProgressBar--color--default{border:.0833333333em solid #bfbfbf}.theme-light .ProgressBar--color--default .ProgressBar__fill{background-color:#bfbfbf}.theme-light .ProgressBar--color--black{border:.0833333333em solid #000!important}.theme-light .ProgressBar--color--black .ProgressBar__fill{background-color:#000}.theme-light .ProgressBar--color--white{border:.0833333333em solid #bfbfbf!important}.theme-light .ProgressBar--color--white .ProgressBar__fill{background-color:#bfbfbf}.theme-light .ProgressBar--color--red{border:.0833333333em solid #a61c1c!important}.theme-light .ProgressBar--color--red .ProgressBar__fill{background-color:#a61c1c}.theme-light .ProgressBar--color--orange{border:.0833333333em solid #c0530b!important}.theme-light .ProgressBar--color--orange .ProgressBar__fill{background-color:#c0530b}.theme-light .ProgressBar--color--yellow{border:.0833333333em solid #bfa303!important}.theme-light .ProgressBar--color--yellow .ProgressBar__fill{background-color:#bfa303}.theme-light .ProgressBar--color--olive{border:.0833333333em solid #889912!important}.theme-light .ProgressBar--color--olive .ProgressBar__fill{background-color:#889912}.theme-light .ProgressBar--color--green{border:.0833333333em solid #188532!important}.theme-light .ProgressBar--color--green .ProgressBar__fill{background-color:#188532}.theme-light .ProgressBar--color--teal{border:.0833333333em solid #008882!important}.theme-light .ProgressBar--color--teal .ProgressBar__fill{background-color:#008882}.theme-light .ProgressBar--color--blue{border:.0833333333em solid #19649c!important}.theme-light .ProgressBar--color--blue .ProgressBar__fill{background-color:#19649c}.theme-light .ProgressBar--color--violet{border:.0833333333em solid #4b2897!important}.theme-light .ProgressBar--color--violet .ProgressBar__fill{background-color:#4b2897}.theme-light .ProgressBar--color--purple{border:.0833333333em solid #7a2696!important}.theme-light .ProgressBar--color--purple .ProgressBar__fill{background-color:#7a2696}.theme-light .ProgressBar--color--pink{border:.0833333333em solid #b61d73!important}.theme-light .ProgressBar--color--pink .ProgressBar__fill{background-color:#b61d73}.theme-light .ProgressBar--color--brown{border:.0833333333em solid #7c4d2f!important}.theme-light .ProgressBar--color--brown .ProgressBar__fill{background-color:#7c4d2f}.theme-light .ProgressBar--color--grey{border:.0833333333em solid #bfbfbf!important}.theme-light .ProgressBar--color--grey .ProgressBar__fill{background-color:#bfbfbf}.theme-light .ProgressBar--color--good{border:.0833333333em solid #44801d!important}.theme-light .ProgressBar--color--good .ProgressBar__fill{background-color:#44801d}.theme-light .ProgressBar--color--average{border:.0833333333em solid #b56b0b!important}.theme-light .ProgressBar--color--average .ProgressBar__fill{background-color:#b56b0b}.theme-light .ProgressBar--color--bad{border:.0833333333em solid #a61c1c!important}.theme-light .ProgressBar--color--bad .ProgressBar__fill{background-color:#a61c1c}.theme-light .ProgressBar--color--label{border:.0833333333em solid #2c2c2c!important}.theme-light .ProgressBar--color--label .ProgressBar__fill{background-color:#2c2c2c}.theme-light .Chat{color:#000}.theme-light .Chat__badge{display:inline-block;min-width:.5em;font-size:.7em;padding:.2em .3em;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#dc143c;border-radius:10px;transition:font-size .2s}.theme-light .Chat__badge:before{content:"x"}.theme-light .Chat__badge--animate{font-size:.9em;transition:font-size 0ms}.theme-light .Chat__scrollButton{position:fixed;right:2em;bottom:1em}.theme-light .Chat__reconnected{font-size:.85em;text-align:center;margin:1em 0 2em}.theme-light .Chat__reconnected:before{content:"Reconnected";display:inline-block;border-radius:1em;padding:0 .7em;color:#db2828;background-color:#fff}.theme-light .Chat__reconnected:after{content:"";display:block;margin-top:-.75em;border-bottom:.1666666667em solid #db2828}.theme-light .Chat__highlight{color:#000}.theme-light .Chat__highlight--restricted{color:#fff;background-color:#a00;font-weight:700}.theme-light .ChatMessage{word-wrap:break-word}.theme-light .ChatMessage--highlighted{position:relative;border-left:.1666666667em solid #fd4;padding-left:.5em}.theme-light .ChatMessage--highlighted:after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(255,221,68,.1);pointer-events:none}.theme-light .Layout,.theme-light .Layout *{scrollbar-base-color:#f2f2f2;scrollbar-face-color:#d6d6d6;scrollbar-3dlight-color:#eee;scrollbar-highlight-color:#eee;scrollbar-track-color:#f2f2f2;scrollbar-arrow-color:#777;scrollbar-shadow-color:#d6d6d6}.theme-light .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-light .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-light .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#000;background-color:#eee;background-image:linear-gradient(180deg,#eee 0,#eee)}.theme-light .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-light .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-light .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-light .Window__contentPadding:after{height:0}.theme-light .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-light .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:hsla(0,0%,98.8%,.25);pointer-events:none}.theme-light .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-light .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-light .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-light .TitleBar{background-color:#eee;border-bottom:1px solid rgba(0,0,0,.25);box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-light .TitleBar__clickable{color:rgba(0,0,0,.5);background-color:#eee;transition:color .25s,background-color .25s}.theme-light .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-light .TitleBar__title{position:absolute;top:0;left:46px;left:3.8333333333rem;color:rgba(0,0,0,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap}.theme-light .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-light .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-light .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-light .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-light body,.theme-light html{padding:0;margin:0;height:100%;color:#000}.theme-light body{background:#e0e0e0;font-family:Verdana,sans-serif;font-size:13px;line-height:1.2;overflow-x:hidden;overflow-y:scroll;word-wrap:break-word}.theme-light img{margin:0;padding:0;line-height:1;-ms-interpolation-mode:nearest-neighbor;image-rendering:pixelated}.theme-light img.icon{height:1em;min-height:16px;width:auto;vertical-align:bottom}.theme-light a{color:#00f}.theme-light a.visited,.theme-light a:visited{color:#f0f}.theme-light a.popt{text-decoration:none}.theme-light .popup{position:fixed;top:50%;left:50%;background:#ddd}.theme-light .popup .close{position:absolute;background:#aaa;top:0;right:0;color:#333;text-decoration:none;z-index:2;padding:0 10px;height:30px;line-height:30px}.theme-light .popup .close:hover{background:#999}.theme-light .popup .head{background:#999;color:#ddd;padding:0 10px;height:30px;line-height:30px;text-transform:uppercase;font-size:.9em;font-weight:700;border-bottom:2px solid green}.theme-light .popup input{border:1px solid #999;background:#fff;margin:0;padding:5px;outline:none;color:#333}.theme-light .popup input[type=text]:active,.theme-light .popup input[type=text]:focus,.theme-light .popup input[type=text]:hover{border-color:green}.theme-light .popup input[type=submit]{padding:5px 10px;background:#999;color:#ddd;text-transform:uppercase;font-size:.9em;font-weight:700}.theme-light .popup input[type=submit]:active,.theme-light .popup input[type=submit]:focus,.theme-light .popup input[type=submit]:hover{background:#aaa;cursor:pointer}.theme-light .changeFont{padding:10px}.theme-light .changeFont a{display:block;text-decoration:none;padding:3px;color:#333}.theme-light .changeFont a:hover{background:#ccc}.theme-light .highlightPopup{padding:10px;text-align:center}.theme-light .highlightPopup input[type=text]{display:block;width:215px;text-align:left;margin-top:5px}.theme-light .highlightPopup input.highlightColor{background-color:#ff0}.theme-light .highlightPopup input.highlightTermSubmit{margin-top:5px}.theme-light .contextMenu{background-color:#ddd;position:fixed;margin:2px;width:150px}.theme-light .contextMenu a{display:block;padding:2px 5px;text-decoration:none;color:#333}.theme-light .contextMenu a:hover{background-color:#ccc}.theme-light .filterMessages{padding:5px}.theme-light .filterMessages div{padding:2px 0}.theme-light .icon-stack{height:1em;line-height:1em;width:1em;vertical-align:middle;margin-top:-2px}.theme-light .motd{color:#638500;font-family:Verdana,sans-serif;white-space:normal}.theme-light .motd h1,.theme-light .motd h2,.theme-light .motd h3,.theme-light .motd h4,.theme-light .motd h5,.theme-light .motd h6{color:#638500;text-decoration:underline}.theme-light .motd a,.theme-light .motd a:active,.theme-light .motd a:hover,.theme-light .motd a:link,.theme-light .motd a:visited{color:#638500}.theme-light .admin,.theme-light .adminooc,.theme-light .bold,.theme-light .looc,.theme-light .medal,.theme-light .name,.theme-light .ooc,.theme-light .prefix,.theme-light .yell{font-weight:700}.theme-light .emote,.theme-light .italic,.theme-light .italics{font-style:italic}.theme-light .highlight{background:#ff0}.theme-light h1,.theme-light h2,.theme-light h3,.theme-light h4,.theme-light h5,.theme-light h6{color:#00f;font-family:Georgia,Verdana,sans-serif}.theme-light em{font-style:normal;font-weight:700}.theme-light .ooc{color:#002eb8;font-weight:700}.theme-light .looc{color:#69c;font-weight:700}.theme-light .antagooc{color:#b8002e;font-weight:700}.theme-light .adminobserverooc{color:#09c;font-weight:700}.theme-light .adminooc{color:#700038;font-weight:700}.theme-light .adminsay{color:#ff4500;font-weight:700}.theme-light .adminobserver{color:#960;font-weight:700}.theme-light .admin{color:#4473ff;font-weight:700}.theme-light .mentorsay{color:#e236d8;font-weight:700}.theme-light .mentorsay_admin{color:#8a2be2;font-weight:700}.theme-light .name{font-weight:700}.theme-light .deadsay{color:#5c00e6}.theme-light .binarysay{color:#20c20e;background-color:#000;display:block}.theme-light .binarysay a{color:#0f0}.theme-light .binarysay a:active,.theme-light .binarysay a:visited{color:#8f8}.theme-light .radio{color:green}.theme-light .sciradio{color:#939}.theme-light .comradio{color:#948f02}.theme-light .secradio{color:#a30000}.theme-light .medradio{color:#337296}.theme-light .engradio{color:#fb5613}.theme-light .suppradio{color:#a8732b}.theme-light .servradio{color:#6eaa2c}.theme-light .syndradio{color:#6d3f40}.theme-light .centcomradio{color:#686868}.theme-light .aiprivradio{color:#f0f}.theme-light .redteamradio{color:red}.theme-light .blueteamradio{color:#00f}.theme-light .yell{font-weight:700}.theme-light .alert{color:red}.theme-light h1.alert,.theme-light h2.alert{color:#000}.theme-light .emote{font-style:italic}.theme-light .userdanger{font-size:185%}.theme-light .bolddanger,.theme-light .userdanger{color:red;font-weight:700}.theme-light .danger{color:red}.theme-light .tinydanger{color:red;font-size:85%}.theme-light .smalldanger{color:red;font-size:90%}.theme-light .warning{color:red;font-style:italic}.theme-light .alertwarning{color:red;font-weight:700}.theme-light .boldwarning{color:red;font-style:italic;font-weight:700}.theme-light .announce{color:#228b22;font-weight:700}.theme-light .boldannounce{color:red;font-weight:700}.theme-light .greenannounce{color:#0f0;font-weight:700}.theme-light .rose{color:#ff5050}.theme-light .info{color:#00c}.theme-light .notice{color:#009}.theme-light .tinynotice{color:#009;font-style:italic;font-size:85%}.theme-light .smallnotice{color:#009;font-size:90%}.theme-light .smallnoticeital{color:#009;font-style:italic;font-size:90%}.theme-light .boldnotice{color:#009;font-weight:700}.theme-light .hear{color:#009;font-style:italic}.theme-light .adminnotice{color:#00f}.theme-light .adminhelp{color:red;font-weight:700}.theme-light .unconscious{color:#00f;font-weight:700}.theme-light .suicide{color:#ff5050;font-style:italic}.theme-light .green{color:#03ff39}.theme-light .red{color:red}.theme-light .blue{color:#00f}.theme-light .nicegreen{color:#14a833}.theme-light .userlove{color:#ff1493;font-style:italic;font-weight:700;text-shadow:0 0 6px #ff6dbc}.theme-light .love{color:#ff006a;font-style:italic;text-shadow:0 0 6px #ff6d6d}.theme-light .cult{color:#960000}.theme-light .cultbold,.theme-light .cultitalic{color:#960000;font-style:italic}.theme-light .cultbold{font-weight:700}.theme-light .cultboldtalic,.theme-light .cultlarge{color:#960000;font-weight:700;font-size:185%}.theme-light .narsie{color:#960000;font-weight:700;font-size:925%}.theme-light .narsiesmall{color:#960000;font-weight:700;font-size:370%}.theme-light .colossus{color:#7f282a;font-size:310%}.theme-light .hierophant{font-weight:700}.theme-light .hierophant,.theme-light .hierophant_warning{color:#609;font-style:italic}.theme-light .purple{color:#5e2d79}.theme-light .holoparasite{color:#35333a}.theme-light .revennotice{color:#1d2953}.theme-light .revenbignotice,.theme-light .revenboldnotice{color:#1d2953;font-weight:700}.theme-light .revenbignotice{font-size:185%}.theme-light .revenminor{color:#823abb}.theme-light .revenwarning{color:#760fbb;font-style:italic}.theme-light .revendanger{color:#760fbb;font-weight:700;font-size:185%}.theme-light .umbra{color:#5000a0}.theme-light .umbra_emphasis,.theme-light .umbra_large{color:#5000a0;font-weight:700;font-style:italic}.theme-light .umbra_large{font-size:3}.theme-light .deconversion_message{color:#5000a0;font-size:185%;font-style:italic}.theme-light .brass{color:#be8700}.theme-light .heavy_brass{color:#be8700;font-weight:700;font-style:italic}.theme-light .big_brass,.theme-light .large_brass{color:#be8700;font-size:185%}.theme-light .big_brass,.theme-light .ratvar{font-weight:700;font-style:italic}.theme-light .ratvar{color:#be8700;font-size:6}.theme-light .alloy{color:#42474d}.theme-light .heavy_alloy,.theme-light .nezbere_large{color:#42474d;font-weight:700;font-style:italic}.theme-light .nezbere_large{font-size:185%}.theme-light .nezbere{color:#42474d;font-weight:700;font-style:italic}.theme-light .nezbere_small{color:#42474d}.theme-light .sevtug_large{font-size:185%}.theme-light .sevtug,.theme-light .sevtug_large{color:#af0aaf;font-weight:700;font-style:italic}.theme-light .sevtug_small{color:#af0aaf}.theme-light .inathneq_large{font-size:185%}.theme-light .inathneq,.theme-light .inathneq_large{color:#1e8ce1;font-weight:700;font-style:italic}.theme-light .inathneq_small{color:#1e8ce1}.theme-light .nzcrentr_large{font-size:185%}.theme-light .nzcrentr,.theme-light .nzcrentr_large{color:#daaa18;font-weight:700;font-style:italic}.theme-light .nzcrentr_small{color:#daaa18}.theme-light .neovgre_large{font-size:185%}.theme-light .neovgre,.theme-light .neovgre_large{color:#6e001a;font-weight:700;font-style:italic}.theme-light .neovgre_small{color:#6e001a}.theme-light .ghostalert{color:#5c00e6;font-style:italic;font-weight:700}.theme-light .alien{color:#543354}.theme-light .noticealien{color:#00c000}.theme-light .alertalien{color:#00c000;font-weight:700}.theme-light .changeling{color:purple;font-style:italic}.theme-light .alertsyndie{color:red;font-size:185%;font-weight:700}.theme-light .spider{color:#4d004d;font-weight:700;font-size:185%}.theme-light .interface{color:#303}.theme-light .sans{font-family:Comic Sans MS,cursive,sans-serif}.theme-light .papyrus{font-family:Papyrus,cursive,sans-serif}.theme-light .robot{font-family:Courier New,cursive,sans-serif}.theme-light .command_headset{font-weight:700;font-size:160%}.theme-light .small{font-size:60%}.theme-light .big{font-size:185%}.theme-light .reallybig{font-size:245%}.theme-light .extremelybig{font-size:310%}.theme-light .greentext{color:#0f0;font-size:185%}.theme-light .redtext{color:red;font-size:185%}.theme-light .yellowtext{color:#fc0;font-size:185%}.theme-light .clown{color:#ff69bf;font-size:160%;font-family:Comic Sans MS,cursive,sans-serif;font-weight:700}.theme-light .singing{font-family:Trebuchet MS,cursive,sans-serif;font-style:italic}.theme-light .his_grace{color:#15d512;font-family:Courier New,cursive,sans-serif;font-style:italic}.theme-light .spooky{color:#ff9100}.theme-light .hypnophrase{color:#0d0d0d;font-weight:700;animation:hypnocolor 1.5s infinite;animation-direction:alternate}@keyframes hypnocolor{0%{color:#0d0d0d}25%{color:#410194}50%{color:#7f17d8}75%{color:#410194}to{color:#3bb5d3}}.theme-light .velvet{color:#660015;font-weight:700;animation:velvet 5s infinite;animation-direction:alternate}@keyframes velvet{0%{color:#400020}40%{color:red}50%{color:#f88}60%{color:red}to{color:#400020}}.theme-light .phobia{color:#d00;font-weight:700;animation:phobia .75s infinite}@keyframes phobia{0%{color:#0d0d0d}50%{color:#d00}to{color:#0d0d0d}}.theme-light .icon{height:1em;width:auto}.theme-light .memo{color:#638500;text-align:center}.theme-light .memoedit{text-align:center;font-size:125%}.theme-light .abductor{color:purple;font-style:italic}.theme-light .mind_control{color:#a00d6f;font-size:100%;font-weight:700;font-style:italic}.theme-light .slime{color:#00ced1}.theme-light .drone{color:#848482}.theme-light .monkey{color:#975032}.theme-light .swarmer{color:#2c75ff}.theme-light .resonate{color:#298f85}.theme-light .monkeyhive{color:#774704}.theme-light .monkeylead{color:#774704;font-size:80%}.theme-light .connectionClosed,.theme-light .fatalError{background:red;color:#fff;padding:5px}.theme-light .connectionClosed.restored{background:green}.theme-light .internal.boldnshit{color:#00f;font-weight:700}.theme-light .text-normal{font-weight:400;font-style:normal}.theme-light .hidden{display:none;visibility:hidden}.theme-light .ml-1{margin-left:1em}.theme-light .ml-2{margin-left:2em}.theme-light .ml-3{margin-left:3em} \ No newline at end of file