diff --git a/_maps/RandomZLevels/VR/yuma_VR.dmm b/_maps/RandomZLevels/VR/yuma_VR.dmm index 511d0eec75..bd3b73a035 100644 --- a/_maps/RandomZLevels/VR/yuma_VR.dmm +++ b/_maps/RandomZLevels/VR/yuma_VR.dmm @@ -305,7 +305,7 @@ id = "vrlock1"; max_integrity = 9600 }, -/obj/effect/mine/shrapnel/sting, +/obj/item/mine/shrapnel/sting, /turf/open/floor/carpet/green, /area/awaymission/vr/bos/casino) "cA" = ( @@ -1933,7 +1933,7 @@ /obj/item/gun/ballistic/automatic/pistol/beretta, /obj/item/gun/ballistic/automatic/pistol/deagle, /obj/item/gun/ballistic/automatic/pistol/m1911, -/obj/item/gun/ballistic/automatic/pistol/m1911/compact, +/obj/item/gun/ballistic/automatic/pistol/m1911, /obj/item/gun/ballistic/automatic/pistol/mk23, /obj/item/gun/ballistic/automatic/pistol/n99, /obj/item/gun/ballistic/automatic/pistol/ninemil/maria, @@ -1946,7 +1946,7 @@ /obj/item/gun/ballistic/automatic/hobo/zipgun, /obj/item/gun/ballistic/revolver, /obj/item/gun/ballistic/revolver/colt357, -/obj/item/gun/ballistic/revolver/colt6520, +/obj/item/gun/ballistic/automatic/pistol/n99, /obj/item/gun/ballistic/revolver/m29, /obj/item/gun/ballistic/revolver/m29/snub, /obj/item/gun/ballistic/revolver/police, @@ -2124,7 +2124,6 @@ }, /area/awaymission/vr/bos/enclavebunker) "mZ" = ( -/obj/item/fusion_fuel, /obj/effect/decal/cleanable/dirt, /turf/open/floor/f13{ icon_state = "redrustyfull" @@ -2294,7 +2293,7 @@ /obj/item/gun/ballistic/automatic/smg/mp5, /obj/item/gun/ballistic/automatic/smg/p90, /obj/item/gun/ballistic/automatic/smg/ppsh, -/obj/item/gun/ballistic/automatic/smg/rockwell, +/obj/item/gun/ballistic/automatic/smg/greasegun, /obj/item/gun/ballistic/automatic/smg/smg10mm, /obj/item/gun/ballistic/automatic/smg/tommygun, /turf/open/floor/holofloor/plating, @@ -3400,7 +3399,7 @@ /obj/machinery/door/poddoor{ id = "vrlock2" }, -/obj/effect/mine/shrapnel/sting, +/obj/item/mine/shrapnel/sting, /turf/open/floor/carpet/green, /area/awaymission/vr/bos/casino) "ww" = ( @@ -4084,7 +4083,7 @@ id = "vrlock1"; max_integrity = 9600 }, -/obj/effect/mine/shrapnel/sting, +/obj/item/mine/shrapnel/sting, /turf/open/floor/carpet/green, /area/awaymission/vr/bos/casino) "By" = ( @@ -4134,7 +4133,7 @@ /obj/machinery/door/poddoor{ id = "vrlock3" }, -/obj/effect/mine/shrapnel/sting, +/obj/item/mine/shrapnel/sting, /turf/open/floor/carpet/green, /area/awaymission/vr/bos/casino) "BX" = ( @@ -4876,7 +4875,7 @@ /obj/machinery/door/poddoor{ id = "vrlock3" }, -/obj/effect/mine/shrapnel/sting, +/obj/item/mine/shrapnel/sting, /turf/open/floor/carpet/green, /area/awaymission/vr/bos/casino) "IG" = ( @@ -5027,7 +5026,7 @@ "JL" = ( /obj/effect/decal/remains/human, /obj/effect/decal/cleanable/dirt, -/obj/effect/mine/shrapnel/sting, +/obj/item/mine/shrapnel/sting, /obj/machinery/door/poddoor{ id = "vrlock2" }, @@ -5588,7 +5587,7 @@ }, /area/awaymission/vr/bos/deathmatch) "Oh" = ( -/obj/effect/mine/shrapnel/sting, +/obj/item/mine/shrapnel/sting, /obj/machinery/door/poddoor{ id = "vrlock1"; max_integrity = 9600 @@ -6437,7 +6436,7 @@ /obj/machinery/door/poddoor{ id = "vrlock2" }, -/obj/effect/mine/shrapnel/sting, +/obj/item/mine/shrapnel/sting, /turf/open/floor/carpet/green, /area/awaymission/vr/bos/casino) "Vk" = ( @@ -6589,7 +6588,7 @@ /area/awaymission/vr/bos/casino) "Wf" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/mine/shrapnel/sting, +/obj/item/mine/shrapnel/sting, /obj/machinery/door/poddoor{ id = "vrlock1"; max_integrity = 9600 diff --git a/_maps/RandomZLevels/away_mission/wildwest.dmm b/_maps/RandomZLevels/away_mission/wildwest.dmm index a978f26fbd..e34b420db3 100644 --- a/_maps/RandomZLevels/away_mission/wildwest.dmm +++ b/_maps/RandomZLevels/away_mission/wildwest.dmm @@ -614,7 +614,7 @@ /turf/open/floor/wood, /area/awaymission/wildwest/mines) "cB" = ( -/obj/effect/mine/gas/plasma, +/obj/item/mine/gas/plasma, /obj/item/ammo_box/c10mm, /turf/open/floor/plating/ironsand{ icon_state = "ironsand1" @@ -906,7 +906,7 @@ /turf/open/floor/wood, /area/awaymission/wildwest/mines) "dv" = ( -/obj/effect/mine/gas/plasma, +/obj/item/mine/gas/plasma, /obj/item/ammo_box/c10mm, /turf/open/floor/wood, /area/awaymission/wildwest/mines) @@ -1178,7 +1178,7 @@ }, /area/awaymission/wildwest/mines) "ek" = ( -/obj/effect/mine/gas/plasma, +/obj/item/mine/gas/plasma, /turf/open/floor/plasteel/cafeteria{ dir = 5 }, @@ -1384,7 +1384,7 @@ /turf/open/floor/plasteel, /area/awaymission/wildwest/refine) "eS" = ( -/obj/effect/mine/gas/plasma, +/obj/item/mine/gas/plasma, /turf/open/floor/wood, /area/awaymission/wildwest/mines) "eT" = ( @@ -1657,7 +1657,7 @@ /turf/open/floor/plasteel, /area/awaymission/wildwest/refine) "fB" = ( -/obj/effect/mine/gas/plasma, +/obj/item/mine/gas/plasma, /turf/open/floor/plating/ironsand{ icon_state = "ironsand1" }, diff --git a/_maps/map_files/DR2sPrefabs.dmm b/_maps/map_files/DR2sPrefabs.dmm index e37fe72375..ed486e712a 100644 --- a/_maps/map_files/DR2sPrefabs.dmm +++ b/_maps/map_files/DR2sPrefabs.dmm @@ -6069,7 +6069,7 @@ /turf/open/indestructible/ground/inside/mountain, /area/space) "rT" = ( -/obj/effect/landmark/start/f13/slavemaster, +/obj/effect/landmark/start/f13/immune, /turf/open/indestructible/ground/inside/mountain, /area/space) "rU" = ( diff --git a/_maps/map_files/Pahrump/Dungeons.dmm b/_maps/map_files/Pahrump/Dungeons.dmm index dce70fbfb9..96c4ed6d0c 100644 --- a/_maps/map_files/Pahrump/Dungeons.dmm +++ b/_maps/map_files/Pahrump/Dungeons.dmm @@ -13,7 +13,7 @@ /obj/machinery/door/poddoor{ id = "lock3" }, -/obj/effect/mine/shrapnel/sting, +/obj/item/mine/shrapnel/sting, /turf/open/floor/carpet/green, /area/f13/underground/cave) "aaK" = ( @@ -2006,7 +2006,7 @@ /obj/machinery/door/poddoor{ id = "lock2" }, -/obj/effect/mine/shrapnel/sting, +/obj/item/mine/shrapnel/sting, /turf/open/floor/carpet/green, /area/f13/underground/cave) "cpI" = ( @@ -2353,7 +2353,7 @@ /area/f13/vault) "cND" = ( /obj/structure/table/wood, -/obj/item/crafting/timer, +/obj/item/assembly/timer, /turf/open/floor/f13{ icon_state = "darkdirtysolid" }, @@ -2469,7 +2469,7 @@ /obj/machinery/door/poddoor{ id = "lock3" }, -/obj/effect/mine/shrapnel/sting, +/obj/item/mine/shrapnel/sting, /turf/open/floor/carpet/green, /area/f13/underground/cave) "cWc" = ( @@ -3190,6 +3190,12 @@ icon_state = "darkdirtysolid" }, /area/f13/bunker) +"dPz" = ( +/obj/structure/stone_tile/slab, +/obj/item/gun/energy/laser/plasma/spear, +/mob/living/simple_animal/hostile/deathclaw/mother, +/turf/open/indestructible/ground/inside/mountain, +/area/f13/underground/cave) "dQM" = ( /obj/structure/ladder/unbreakable{ height = 2; @@ -3723,7 +3729,6 @@ "eqU" = ( /obj/structure/closet/secure_closet/personal/cabinet, /obj/effect/decal/cleanable/dirt, -/obj/item/dildo, /obj/effect/decal/cleanable/cobweb, /obj/item/clothing/mask/muzzle, /obj/item/clothing/glasses/sunglasses/blindfold, @@ -4057,7 +4062,7 @@ id = "lock1"; max_integrity = 9600 }, -/obj/effect/mine/shrapnel/sting, +/obj/item/mine/shrapnel/sting, /turf/open/floor/carpet/green, /area/f13/underground/cave) "ePz" = ( @@ -4741,7 +4746,7 @@ /obj/item/crafting/buzzer, /obj/item/crafting/buzzer, /obj/item/crafting/buzzer, -/obj/item/crafting/timer, +/obj/item/assembly/timer, /turf/open/floor/f13{ icon_state = "darkdirtysolid" }, @@ -5525,7 +5530,7 @@ /area/f13/underground/cave) "gwo" = ( /obj/structure/table/wood, -/obj/item/crafting/timer, +/obj/item/assembly/timer, /turf/open/floor/f13{ icon_state = "darkdirty" }, @@ -6681,6 +6686,10 @@ /obj/effect/decal/cleanable/dirt, /turf/closed/indestructible/vaultdoor, /area/f13/vault) +"hJV" = ( +/obj/structure/stone_tile/slab/cracked, +/turf/open/indestructible/ground/inside/mountain, +/area/f13/underground/cave) "hJW" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/glass, @@ -7927,6 +7936,10 @@ /obj/item/pen, /turf/open/floor/plasteel/f13/vault_floor/floor, /area/f13/vault) +"jvv" = ( +/obj/structure/stone_tile/block/burnt, +/turf/open/indestructible/ground/inside/mountain, +/area/f13/underground/cave) "jvO" = ( /obj/structure/bedsheetbin, /obj/structure/table, @@ -8778,7 +8791,7 @@ /area/f13/bunker) "kxg" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/mine/shrapnel/sting, +/obj/item/mine/shrapnel/sting, /obj/machinery/door/poddoor{ id = "lock1"; max_integrity = 9600 @@ -9894,9 +9907,9 @@ /area/f13/bunker) "lYs" = ( /obj/structure/rack, -/obj/item/crafting/igniter, -/obj/item/crafting/igniter, -/obj/item/crafting/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, /turf/open/floor/f13{ icon_state = "darkdirtysolid" }, @@ -10947,7 +10960,7 @@ id = "lock1"; max_integrity = 9600 }, -/obj/effect/mine/shrapnel/sting, +/obj/item/mine/shrapnel/sting, /turf/open/floor/carpet/green, /area/f13/underground/cave) "nbF" = ( @@ -11847,7 +11860,7 @@ "ogw" = ( /obj/structure/rack, /obj/item/crafting/large_gear, -/obj/item/crafting/sensor, +/obj/item/assembly/prox_sensor, /obj/item/crafting/small_gear, /obj/item/crafting/transistor, /obj/item/crafting/transistor, @@ -12075,7 +12088,7 @@ "owo" = ( /obj/effect/decal/remains/human, /obj/effect/decal/cleanable/dirt, -/obj/effect/mine/shrapnel/sting, +/obj/item/mine/shrapnel/sting, /obj/machinery/door/poddoor{ id = "lock2" }, @@ -12708,6 +12721,10 @@ icon_state = "housewood2" }, /area/f13/underground/cave) +"pjy" = ( +/obj/structure/stone_tile/slab, +/turf/open/indestructible/ground/inside/mountain, +/area/f13/underground/cave) "pjP" = ( /obj/structure/table, /obj/item/reagent_containers/food/drinks/coffee, @@ -13369,6 +13386,10 @@ }, /turf/open/floor/plasteel/f13/vault_floor/blue/white, /area/f13/vault) +"pYE" = ( +/obj/structure/stone_tile/block, +/turf/open/indestructible/ground/inside/mountain, +/area/f13/underground/cave) "pYM" = ( /obj/machinery/smartfridge/bottlerack/lootshelf/cooking, /turf/open/floor/plasteel/f13/vault_floor/floor/floorsolid, @@ -14326,7 +14347,7 @@ /obj/item/crafting/capacitor, /obj/item/crafting/capacitor, /obj/item/crafting/capacitor, -/obj/item/crafting/sensor, +/obj/item/assembly/prox_sensor, /turf/open/floor/f13{ icon_state = "darkdirtysolid" }, @@ -14846,7 +14867,7 @@ /obj/structure/rack, /obj/item/book/granter/crafting_recipe/gunsmith_three, /obj/effect/decal/cleanable/dirt, -/obj/item/crafting/timer, +/obj/item/assembly/timer, /obj/item/mining_scanner, /turf/open/floor/plasteel/darkpurple/side{ dir = 1 @@ -15050,7 +15071,7 @@ "rLZ" = ( /obj/item/storage/toolbox/electrical, /obj/structure/table, -/obj/item/crafting/timer, +/obj/item/assembly/timer, /turf/open/floor/plasteel/f13/vault_floor/plating, /area/f13/vault) "rMe" = ( @@ -17306,7 +17327,7 @@ /obj/structure/table, /obj/item/crafting/board, /obj/item/crafting/board, -/obj/item/crafting/sensor, +/obj/item/assembly/prox_sensor, /turf/open/floor/plasteel/f13/vault_floor/plating, /area/f13/vault) "uNm" = ( @@ -17859,7 +17880,7 @@ /obj/machinery/door/poddoor{ id = "lock2" }, -/obj/effect/mine/shrapnel/sting, +/obj/item/mine/shrapnel/sting, /turf/open/floor/carpet/green, /area/f13/underground/cave) "vtn" = ( @@ -19845,7 +19866,7 @@ /turf/open/floor/carpet/green, /area/f13/underground/cave) "xMl" = ( -/obj/effect/mine/shrapnel/sting, +/obj/item/mine/shrapnel/sting, /obj/machinery/door/poddoor{ id = "lock1"; max_integrity = 9600 @@ -77518,7 +77539,7 @@ fpy gTc qOX tRH -pOr +tHQ atE pOr cIT @@ -82412,8 +82433,8 @@ wxj wxj wxj wxj -bYA -bYA +hJV +pjy fyx bYA wxj @@ -82669,9 +82690,9 @@ wxj wxj wxj wxj -bYA -bYA -bYA +hJV +dPz +pYE bYA wxj wxj @@ -82926,9 +82947,9 @@ wxj wxj wxj wxj -bYA -bYA -bYA +hJV +hJV +jvv bYA wxj wxj diff --git a/_maps/map_files/Pahrump/Pahrump-Above-3.dmm b/_maps/map_files/Pahrump/Pahrump-Above-3.dmm index a495287645..fa40ef4b2d 100644 --- a/_maps/map_files/Pahrump/Pahrump-Above-3.dmm +++ b/_maps/map_files/Pahrump/Pahrump-Above-3.dmm @@ -5,12 +5,41 @@ "al" = ( /turf/closed/wall/f13/store, /area/f13/building) -"as" = ( +"an" = ( +/obj/machinery/light/floor{ + color = "#FF7F7F"; + critical_machine = 1; + flicker_chance = 0; + light_color = "#FF7F7F"; + nightshift_light_color = "#660000" + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/dark, +/area/f13/brotherhood/surface) +"ar" = ( +/obj/structure/railing{ + color = "#A47449"; + dir = 8 + }, +/obj/structure/railing{ + color = "#A47449"; + dir = 1 + }, /turf/open/transparent/openspace{ name = "air"; sunlight_state = 1 }, -/area/f13/village) +/area/f13/building) +"as" = ( +/turf/closed/mineral/random/low_chance, +/area/f13/ncr) +"aw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/remains/human, +/obj/item/lighter, +/turf/open/floor/plasteel/f13/vault_floor/red, +/area/f13/brotherhood/surface) "ay" = ( /obj/machinery/light/small{ dir = 4 @@ -21,15 +50,23 @@ /turf/open/indestructible/ground/outside/wood{ icon_state = "wood" }, -/area/f13/building) +/area/f13/wasteland) "aB" = ( /obj/structure/noticeboard/captain{ desc = "The second Evidence Board shows a small amount of what looks to be crime scenes with corpses all connected to eachother."; dir = 4; + icon_state = "nboard03"; name = "Evidence Board" }, /turf/closed/wall/f13/store, /area/f13/building) +"aI" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/kirbyplants{ + icon_state = "plant-25" + }, +/turf/open/floor/plasteel/f13/vault_floor/dark, +/area/f13/brotherhood/surface) "aJ" = ( /obj/structure/railing{ color = "#A47449"; @@ -46,6 +83,27 @@ icon_state = "housewood2" }, /area/f13/building) +"aN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/machinery/computer/terminal{ + doc_content_1 = "Sarah, I asked for todays newspaper and you bring me yesterdays, come on, wake up! Now bring me todays newspaper chop chop!"; + doc_title_1 = "Sarah, wake UP!"; + pixel_y = 3; + termtag = "Business" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/north, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"aY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/office, +/obj/machinery/light/fo13colored/Red{ + dir = 4 + }, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) "bi" = ( /obj/structure/chair/left{ dir = 4 @@ -75,16 +133,107 @@ /obj/structure/barricade/bars, /turf/open/floor/wood/f13/oak, /area/f13/building) +"bu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/bin/trashbin, +/turf/open/floor/plasteel/f13/vault_floor/dark, +/area/f13/brotherhood/surface) +"bw" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/north, +/obj/item/folder/syndicate/blue{ + desc = "A folder stamped 'Financial Earnins' - Property of The Yuma Bank."; + name = "folder- 'Financial Earnings'" + }, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) "bA" = ( /obj/structure/chair/right, /turf/open/floor/carpet/red, /area/f13/building) +"bE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/window{ + dir = 1 + }, +/obj/item/kirbyplants{ + icon_state = "plant-25"; + pixel_y = 10 + }, +/turf/open/floor/plasteel/grimy, +/area/f13/brotherhood/surface) +"bQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced, +/obj/item/stamp/ce{ + name = "golden rubber stamp"; + pixel_x = -4 + }, +/obj/item/stamp/captain{ + name = "Manager's rubber stamp"; + pixel_x = 4 + }, +/turf/open/floor/plasteel/f13/vault_floor/dark{ + icon_state = "darkrusty"; + name = "grimy tile" + }, +/area/f13/brotherhood/surface) +"bT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/ash{ + pixel_x = 5; + pixel_y = 7 + }, +/turf/open/floor/plasteel/f13/vault_floor/red, +/area/f13/brotherhood/surface) +"cl" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood{ + icon_state = "housewood2-broken" + }, +/area/f13/legion) +"cp" = ( +/obj/structure/fence/wooden{ + dir = 4 + }, +/obj/structure/decoration/rag, +/turf/closed/wall/f13/wood/house, +/area/f13/raiders) "ct" = ( /obj/machinery/vending/coffee, /turf/open/floor/f13{ icon_state = "neutralrustyfull" }, /area/f13/building) +"cz" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -4; + pixel_y = 21 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/paper, +/obj/effect/decal/cleanable/ash{ + pixel_x = 5 + }, +/turf/open/floor/plasteel/f13/vault_floor/red, +/area/f13/brotherhood/surface) +"cC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/window{ + dir = 1 + }, +/obj/structure/closet/crate/bin/trashbin, +/turf/open/floor/plasteel/grimy, +/area/f13/brotherhood/surface) +"cE" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood, +/area/f13/legion) "cH" = ( /obj/structure/sign/poster/prewar/vault_tec, /turf/closed/wall/f13/store, @@ -100,6 +249,17 @@ icon_state = "neutralrustyfull" }, /area/f13/building) +"cL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/floor{ + color = "#FF7F7F"; + critical_machine = 1; + flicker_chance = 0; + light_color = "#FF7F7F"; + nightshift_light_color = "#660000" + }, +/turf/open/floor/plasteel/f13/vault_floor/dark, +/area/f13/brotherhood/surface) "cS" = ( /obj/structure/table/booth, /obj/effect/spawner/lootdrop/f13/alcoholspawner, @@ -107,7 +267,7 @@ name = "metal plating"; sunlight_state = 1 }, -/area/f13/building) +/area/f13/wasteland) "dc" = ( /obj/structure/table/booth, /obj/item/candle{ @@ -118,7 +278,36 @@ name = "metal plating"; sunlight_state = 1 }, -/area/f13/building) +/area/f13/wasteland) +"de" = ( +/turf/open/transparent/openspace, +/area/f13/brotherhood/surface) +"dg" = ( +/obj/machinery/photocopier, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/red, +/area/f13/brotherhood/surface) +"dj" = ( +/obj/structure/window/fulltile/house{ + dir = 2; + icon_state = "storewindowright" + }, +/obj/structure/curtain{ + color = "#363636" + }, +/turf/open/floor/plasteel/f13/vault_floor/floor/floorsolid, +/area/f13/brotherhood/surface) +"dy" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/north, +/obj/structure/window/spawner/west, +/obj/item/folder/syndicate/red{ + desc = "A folder stamped 'List of Clients' - Property of The Yuma Bank."; + name = "folder- 'List of Clients'" + }, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) "dB" = ( /obj/structure/chair{ dir = 4 @@ -128,6 +317,13 @@ icon_state = "darkrusty" }, /area/f13/building) +"dJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/destructible/tribal_torch/wall/lit{ + dir = 8 + }, +/turf/open/floor/f13/wood, +/area/f13/wasteland) "dP" = ( /obj/structure/bookcase, /turf/open/floor/f13{ @@ -152,6 +348,71 @@ icon_state = "neutralrustyfull" }, /area/f13/building) +"dX" = ( +/obj/item/chair/wood, +/obj/effect/spawner/lootdrop/trash, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/building) +"ea" = ( +/obj/structure/closet/crate/footlocker{ + anchored = 1; + pixel_x = -9 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) +"er" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/north, +/obj/item/paper/crumpled/bloody/ruins/thederelict/unfinished{ + info = "Why's the [ILLEGIBLE] Here?? They're screaming something about [ILLEGIBLE]... No.. this can't be.." + }, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"eu" = ( +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood, +/area/f13/raiders) +"ew" = ( +/obj/structure/chair/folding{ + dir = 4 + }, +/obj/structure/chair/folding{ + dir = 4; + pixel_y = 4 + }, +/obj/structure/chair/folding{ + dir = 4; + pixel_y = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/neutral, +/area/f13/brotherhood/surface) +"eE" = ( +/obj/effect/decal/cleanable/dirt{ + color = "000000" + }, +/obj/machinery/vending/cigarette, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) +"eF" = ( +/obj/machinery/door/unpowered/securedoor{ + desc = "Door with a built-in lock. Can't be padlocked. You can smell the whisky and toughness from even outside the door."; + name = "Ranger's Quarters"; + req_access_txt = "121" + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) +"eO" = ( +/obj/structure/sign/poster/contraband/revolver, +/turf/closed/wall/mineral/wood, +/area/f13/ncr) "eS" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, @@ -162,7 +423,30 @@ /area/f13/building) "eU" = ( /turf/closed/mineral/random/low_chance, -/area/f13/bunker) +/area/f13/wasteland) +"fg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/fo13colored/Red{ + dir = 4; + pixel_y = -16 + }, +/turf/open/floor/plasteel/f13/vault_floor/red/side{ + dir = 4 + }, +/area/f13/brotherhood/surface) +"fo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/machinery/computer/terminal{ + doc_content_1 = "I've decided to retire, finally, this Banker job is boring god damn it, I want to live life to the fullest! The papers should be ready tomorrow, I said to the Manager that I'll work one more day before retiring."; + doc_title_1 = "October 22, 2077"; + pixel_y = 3; + termtag = "Business" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/north, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) "fz" = ( /obj/structure/table, /obj/effect/spawner/lootdrop/trash, @@ -181,6 +465,87 @@ icon_state = "neutralrustyfull" }, /area/f13/building) +"fV" = ( +/turf/open/floor/f13/wood{ + icon_state = "housewood4-broken" + }, +/area/f13/legion) +"gb" = ( +/obj/structure/table, +/obj/item/binoculars, +/turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust{ + name = "metal plating"; + sunlight_state = 1 + }, +/area/f13/building) +"go" = ( +/obj/machinery/door/unpowered/securedoor{ + desc = "Door with a built-in lock. Can't be padlocked. You can smell the whisky and toughness from even outside the door."; + name = "Ranger's Balcony"; + req_access_txt = "121" + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) +"gs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/paper/crumpled, +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"gt" = ( +/obj/structure/fluff/paper/stack{ + desc = "A stack of various papers, illegible scribbles scattered across each page."; + dir = 8; + pixel_x = 6; + pixel_y = -4 + }, +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -4; + pixel_y = 21 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/red, +/area/f13/brotherhood/surface) +"gK" = ( +/obj/structure/chair/sofa/corp{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 4; + pixel_x = 6 + }, +/turf/open/floor/carpet/royalblack, +/area/f13/ncr) +"gT" = ( +/obj/structure/campfire/barrel, +/turf/open/indestructible/ground/inside/mountain, +/area/f13/caves) +"gW" = ( +/obj/structure/destructible/tribal_torch/wall/lit{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood, +/area/f13/legion) +"hb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/water_cooler, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"hc" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/north, +/obj/structure/window/spawner/west, +/obj/item/clothing/accessory/pocketprotector/full, +/obj/item/paper/crumpled/bloody/fluff/stations/lavaland/library/warning{ + info = "If someone finds this... then the Police didn't bring us to the Vault in-time.. thank god our jobs prioritise us in-case of a nuclear att-...." + }, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) "hd" = ( /obj/structure/toilet{ dir = 4 @@ -203,9 +568,20 @@ /obj/structure/sign/poster/prewar/poster82, /turf/closed/wall/f13/store, /area/f13/building) +"hq" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/indestructible/ground/outside/roof, +/area/f13/wasteland) "hs" = ( -/turf/open/indestructible/ground/outside/woodalt, -/area/f13/building) +/turf/closed/indestructible/rock, +/area/f13/wasteland) +"hB" = ( +/obj/item/bedsheet/brown, +/obj/structure/bed/old, +/turf/open/floor/f13/wood, +/area/f13/legion) "hG" = ( /obj/structure/table, /obj/item/flashlight/lamp/green{ @@ -250,12 +626,29 @@ icon_state = "housewood4-broken" }, /area/f13/building) +"ik" = ( +/obj/structure/table, +/turf/open/indestructible/ground/outside/roof, +/area/f13/wasteland) "io" = ( /obj/structure/chair/right{ dir = 4 }, /turf/open/floor/carpet/red, /area/f13/building) +"ip" = ( +/obj/structure/decoration/rag, +/obj/structure/barricade/wooden/strong, +/obj/structure/decoration/rag{ + icon_state = "skin" + }, +/turf/closed/wall/f13/wood/house, +/area/f13/raiders) +"is" = ( +/obj/structure/dresser, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood, +/area/f13/legion) "iA" = ( /obj/structure/barricade/bars, /obj/structure/window/fulltile/house{ @@ -270,6 +663,14 @@ }, /turf/open/floor/wood/f13/oak, /area/f13/building) +"iC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/broken{ + dir = 8 + }, +/obj/structure/table/wood/settler, +/turf/open/floor/f13/wood, +/area/f13/raiders) "iF" = ( /obj/effect/decal/cleanable/dirt{ color = "000000" @@ -278,6 +679,23 @@ icon_state = "oakfloor4-broken" }, /area/f13/building) +"iJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/kirbyplants{ + icon_state = "plant-25"; + pixel_y = 14 + }, +/turf/open/floor/plasteel/f13/vault_floor/yellow/side{ + dir = 1 + }, +/area/f13/brotherhood/surface) +"iM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/fo13colored/Red{ + dir = 8 + }, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) "iP" = ( /obj/structure/table, /obj/machinery/computer/terminal{ @@ -289,6 +707,14 @@ icon_state = "neutralrustyfull" }, /area/f13/building) +"iS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/paper/crumpled/ruins{ + info = "Glory to the People's Republic of China, Comrade Jiang! Your task is to meet-up with the Listening Outpost we have installed in the Yuma Region, at October 23, 2077, the two comrades will be ready for you! Glory to China!"; + name = "Paper Scrap" + }, +/turf/open/floor/plasteel/f13/vault_floor/neutral, +/area/f13/brotherhood/surface) "iU" = ( /obj/structure/window/fulltile/house{ dir = 2; @@ -302,6 +728,16 @@ icon_state = "floorrusty" }, /area/f13/building) +"iW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/bonfire, +/turf/open/floor/f13/wood, +/area/f13/wasteland) +"ja" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/destructible/tribal_torch/lit, +/turf/open/floor/f13/wood, +/area/f13/wasteland) "jj" = ( /obj/structure/table/wood/fancy/black, /obj/structure/displaycase/trophy{ @@ -324,8 +760,68 @@ }, /area/f13/building) "jl" = ( +/obj/structure/barricade/wooden, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/building) +"jr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/fo13colored/Red{ + dir = 1 + }, +/turf/open/floor/plasteel/f13/vault_floor/red/side{ + dir = 1 + }, +/area/f13/brotherhood/surface) +"ju" = ( +/obj/item/storage/bag/trash, +/obj/item/storage/bag/trash, +/obj/item/storage/bag/trash, +/obj/structure/closet/crate/trashcart, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/neutral, +/area/f13/brotherhood/surface) +"jI" = ( +/obj/structure/chair/wood, +/obj/effect/decal/cleanable/dirt, /turf/open/indestructible/ground/outside/woodalt, -/area/f13/clinic) +/area/f13/wasteland) +"jO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced, +/obj/item/stack/wrapping_paper, +/turf/open/floor/plasteel/f13/vault_floor/dark, +/area/f13/brotherhood/surface) +"jQ" = ( +/obj/structure/fluff/paper/stack{ + desc = "A stack of various papers, illegible scribbles scattered across each page."; + dir = 9 + }, +/obj/structure/filingcabinet{ + density = 0; + pixel_x = -9; + pixel_y = 21 + }, +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 10; + pixel_y = 23 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/paper/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/f13/vault_floor/red, +/area/f13/brotherhood/surface) +"jS" = ( +/obj/machinery/door/unpowered/securedoor{ + autoclose = 1; + damage_deflection = 28; + max_integrity = 400; + obj_integrity = 400; + req_access_txt = "123" + }, +/turf/open/floor/f13/wood, +/area/f13/legion) "jY" = ( /obj/structure/table, /obj/machinery/computer/terminal{ @@ -337,6 +833,33 @@ icon_state = "neutralrustyfull" }, /area/f13/building) +"jZ" = ( +/turf/open/indestructible/ground/outside/dirt, +/area/f13/building) +"kb" = ( +/obj/structure/window/fulltile/house{ + icon_state = "storewindowhorizontal" + }, +/obj/structure/barricade/bars{ + max_integrity = 800; + name = "strong metal bars"; + obj_integrity = 800 + }, +/turf/open/floor/plasteel/f13/vault_floor/floor/floorsolid, +/area/f13/brotherhood/surface) +"kc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/machinery/computer/terminal{ + doc_content_1 = "Hey Doctor Lewis, I still have the headaches even after the medicine you prescribed about it, do you think I can come for a check-up today?"; + doc_title_1 = "Hey, Doc"; + pixel_y = 3; + termtag = "Business" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/north, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) "kC" = ( /turf/closed/mineral/random/low_chance, /area/f13/caves) @@ -353,9 +876,22 @@ icon_state = "floorrusty" }, /area/f13/building) -"lm" = ( -/turf/open/indestructible/ground/outside/roof, -/area/f13/city) +"lr" = ( +/obj/structure/sign/poster/prewar/poster60, +/turf/closed/wall/f13/store, +/area/f13/brotherhood/surface) +"lt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced, +/obj/structure/fluff/paper/stack{ + desc = "A stack of various papers, illegible scribbles scattered across each page."; + dir = 4 + }, +/turf/open/floor/plasteel/f13/vault_floor/dark{ + icon_state = "darkrusty"; + name = "grimy tile" + }, +/area/f13/brotherhood/surface) "ly" = ( /obj/effect/decal/cleanable/dirt{ color = "000000" @@ -364,8 +900,8 @@ /turf/open/floor/wood/f13/oak, /area/f13/building) "lH" = ( -/turf/closed/mineral/random/low_chance, -/area/f13/tunnel) +/turf/closed/mineral/random/high_chance, +/area/f13/caves) "lT" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/f13{ @@ -373,17 +909,65 @@ }, /area/f13/building) "mc" = ( -/turf/closed/mineral/random/low_chance, +/turf/open/indestructible/ground/outside/woodalt, /area/f13/legion) "md" = ( -/turf/open/indestructible/ground/outside/roof, -/area/f13/building) +/obj/structure/barricade/wooden, +/turf/open/indestructible/ground/inside/mountain, +/area/f13/caves) +"mg" = ( +/obj/structure/sign/poster/ncr/democracy, +/turf/closed/wall/mineral/wood, +/area/f13/ncr) +"mh" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/red/side{ + dir = 4 + }, +/area/f13/brotherhood/surface) +"mn" = ( +/obj/structure/chair/stool/retro, +/turf/open/indestructible/ground/inside/mountain, +/area/f13/caves) +"mq" = ( +/obj/structure/table, +/obj/item/caution{ + pixel_y = 7 + }, +/obj/item/caution{ + pixel_y = 7 + }, +/obj/item/caution{ + pixel_y = 7 + }, +/obj/item/caution{ + pixel_y = 7 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/neutral, +/area/f13/brotherhood/surface) +"mu" = ( +/turf/closed/wall/f13/wood, +/area/f13/ncr) +"mE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/office{ + dir = 1 + }, +/obj/structure/sign/poster/contraband/space_cola{ + pixel_y = -32 + }, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) "mI" = ( -/turf/open/transparent/openspace{ - name = "air"; - sunlight_state = 1 +/turf/closed/wall/f13/wood/house, +/area/f13/building) +"mP" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/red/side{ + dir = 1 }, -/area/f13/legion) +/area/f13/brotherhood/surface) "mV" = ( /obj/structure/chair, /turf/open/floor/f13{ @@ -393,11 +977,31 @@ "nb" = ( /turf/open/floor/wood/f13/oak, /area/f13/building) +"no" = ( +/obj/structure/destructible/tribal_torch/wall/lit, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood, +/area/f13/raiders) "ns" = ( /obj/structure/janitorialcart, /obj/item/mop, /turf/open/floor/wood/f13/oak, /area/f13/building) +"nE" = ( +/obj/structure/railing{ + color = "#A47449"; + dir = 8 + }, +/turf/open/transparent/openspace{ + name = "air"; + sunlight_state = 1 + }, +/area/f13/wasteland) +"nL" = ( +/obj/structure/fireplace, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/black, +/area/f13/legion) "nM" = ( /obj/effect/decal/cleanable/dirt{ color = "000000" @@ -426,6 +1030,42 @@ icon_state = "floorrusty" }, /area/f13/building) +"oc" = ( +/obj/structure/chair/sofa/right{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood, +/area/f13/raiders) +"oe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/remains/human{ + pixel_x = -13; + pixel_y = -4 + }, +/obj/item/clothing/head/f13/army/officer{ + pixel_x = -12; + pixel_y = -1 + }, +/obj/item/megaphone/command{ + name = "Police Megaphone"; + pixel_x = 4; + pixel_y = -3 + }, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"og" = ( +/obj/item/kirbyplants/random, +/obj/structure/destructible/tribal_torch/wall/lit{ + dir = 1; + pixel_y = 12 + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) +"oi" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/purple/side, +/area/f13/brotherhood/surface) "oj" = ( /obj/effect/decal/cleanable/dirt{ color = "000000" @@ -448,14 +1088,40 @@ name = "metal plating"; sunlight_state = 1 }, -/area/f13/building) +/area/f13/wasteland) +"or" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/remains/human, +/obj/item/clothing/head/f13/police/trooper{ + pixel_x = 1; + pixel_y = -5 + }, +/obj/item/flashlight/seclite, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"ov" = ( +/obj/structure/table/wood, +/obj/structure/destructible/tribal_torch/wall/lit{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ammo/tier2, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/legion) "oE" = ( /obj/structure/sign/poster/contraband/scum, /turf/closed/wall/f13/store, /area/f13/building) "oJ" = ( -/turf/closed/mineral/random/low_chance, -/area/f13/brotherhood/surface) +/turf/open/floor/carpet, +/area/f13/building) +"oM" = ( +/turf/closed/wall/f13/wood/house, +/area/f13/raiders) +"oX" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood, +/area/f13/legion) "pb" = ( /obj/structure/window/fulltile/house{ dir = 2; @@ -469,30 +1135,151 @@ icon_state = "floorrusty" }, /area/f13/building) +"pi" = ( +/obj/structure/sign/plaques/golden/captain{ + desc = "To be Efficient is not an action or a way of life, but a mental state. Only those with the force of Will strong enough to act during a crisis, are truly Efficient. Stay Efficient, Robert."; + name = "The Most Efficient Bank Manager Award." + }, +/turf/closed/wall/f13/store, +/area/f13/brotherhood/surface) "pl" = ( /obj/structure/mirror{ pixel_y = 5 }, /turf/closed/wall/f13/wood, /area/f13/building) -"qd" = ( -/turf/open/transparent/openspace{ - name = "air"; - sunlight_state = 1 +"pm" = ( +/obj/structure/table/wood/fancy/black, +/obj/item/toy/cards/deck{ + pixel_x = 4; + pixel_y = 2 + }, +/turf/open/floor/carpet/royalblack, +/area/f13/ncr) +"pu" = ( +/obj/structure/chair/wood{ + dir = 4 }, +/turf/open/indestructible/ground/inside/mountain, /area/f13/caves) +"py" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/reinforced/spawner/west, +/obj/structure/window/reinforced/spawner/east, +/obj/structure/window/reinforced/spawner, +/obj/structure/statue/gold/rd{ + name = "Statue of the Bank Manager" + }, +/obj/structure/window/reinforced/spawner/north, +/turf/open/floor/carpet/royalblack, +/area/f13/brotherhood/surface) +"pC" = ( +/obj/structure/decoration/smokeold{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/red/corner{ + dir = 1 + }, +/area/f13/brotherhood/surface) +"pG" = ( +/obj/structure/decoration/clock/old, +/turf/closed/wall/f13/store, +/area/f13/brotherhood/surface) +"pO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/machinery/computer/terminal{ + doc_content_1 = "What the hell? Why did the power go down? The building opposite of us also is blacked out.. must be some region wide shut-down or something, the back-up generator should hit soon."; + doc_title_1 = "October 23, 2077"; + pixel_y = 3; + termtag = "Business" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/north, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"pP" = ( +/obj/structure/simple_door/room, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/building) +"qd" = ( +/obj/machinery/light/small/broken{ + dir = 1 + }, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/building) +"qg" = ( +/turf/open/floor/f13{ + icon_state = "hydrofloor" + }, +/area/f13/building) +"qo" = ( +/obj/structure/simple_door/repaired, +/turf/open/floor/f13/wood, +/area/f13/raiders) +"qs" = ( +/obj/structure/chair/sofa/corp/right, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 8; + pixel_x = -6 + }, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 1; + pixel_y = 6 + }, +/obj/structure/sign/poster/contraband/rip_badger{ + pixel_x = 14; + pixel_y = 31 + }, +/turf/open/floor/carpet/royalblack, +/area/f13/ncr) "qt" = ( /obj/structure/table/wood, /turf/open/floor/f13/wood{ icon_state = "housewood2" }, /area/f13/building) -"rf" = ( -/turf/open/transparent/openspace{ - name = "air"; - sunlight_state = 1 +"qC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/destructible/tribal_torch/wall/lit{ + dir = 4 + }, +/turf/open/floor/f13/wood, +/area/f13/raiders) +"qD" = ( +/obj/structure/window/fulltile/house{ + icon_state = "housewindowbroken" + }, +/obj/structure/curtain{ + color = "#845f58" }, +/obj/structure/barricade/wooden/planks/pregame, +/turf/open/indestructible/ground/outside/woodalt, /area/f13/raiders) +"qW" = ( +/obj/structure/sign/poster/prewar/poster63, +/turf/closed/wall/f13/store, +/area/f13/brotherhood/surface) +"rf" = ( +/obj/structure/bed/wooden{ + pixel_y = 14 + }, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/building) +"rk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/generic, +/obj/item/paper/crumpled, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"rp" = ( +/obj/structure/curtain{ + color = "#363636" + }, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plasteel/f13/vault_floor/floor/floorsolid, +/area/f13/brotherhood/surface) "rt" = ( /obj/effect/decal/cleanable/dirt{ color = "000000" @@ -513,6 +1300,18 @@ icon_state = "neutralrustyfull" }, /area/f13/building) +"rG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/remains/human, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"rX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) "rZ" = ( /obj/structure/barricade/bars, /obj/structure/window/fulltile/house{ @@ -520,6 +1319,21 @@ }, /turf/open/floor/wood/f13/oak, /area/f13/building) +"sg" = ( +/obj/structure/easel, +/obj/item/canvas/nineteenXnineteen, +/obj/item/toy/crayon/spraycan, +/obj/structure/sign/painting/library{ + persistence_id = "ranger_balcony"; + pixel_y = 32 + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) +"st" = ( +/obj/structure/campfire/barrel, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/wasteland) "sz" = ( /obj/structure/table, /obj/machinery/computer/terminal{ @@ -534,28 +1348,90 @@ "sD" = ( /turf/closed/wall/f13/wood, /area/f13/building) +"sF" = ( +/obj/machinery/door/airlock/wood/glass{ + req_one_access_txt = "62" + }, +/turf/open/indestructible/ground/outside/roof, +/area/f13/building) "sH" = ( /obj/machinery/light/small{ dir = 4 }, /turf/open/transparent/openspace, /area/f13/building) -"tg" = ( -/turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust{ - icon_state = "floorrustysolid" - }, -/area/f13/building) -"tq" = ( -/obj/machinery/light{ - dir = 8; - pixel_y = -16 +"sL" = ( +/obj/structure/bed, +/obj/item/bedsheet/hos{ + desc = "This red and gold blanket has an aura of affluence."; + name = "fancy red bedsheet" }, -/turf/open/floor/f13{ - icon_state = "neutralrustyfull" +/obj/effect/landmark/start/f13/ncrveteranranger, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) +"sM" = ( +/obj/structure/decoration/rag, +/obj/structure/decoration/rag{ + icon_state = "skin" }, -/area/f13/building) -"tv" = ( -/obj/structure/table, +/turf/closed/wall/f13/wood/house, +/area/f13/raiders) +"sN" = ( +/obj/item/bedsheet/brown, +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/old, +/turf/open/floor/f13/wood, +/area/f13/legion) +"sR" = ( +/obj/structure/chair/sofa, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood, +/area/f13/raiders) +"sS" = ( +/turf/open/transparent/openspace, +/area/f13/ncr) +"te" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/machinery/computer/terminal{ + doc_content_1 = "I hear a lot of shouting downstairs and footsteps... everyone up here's tense.. Miller went down to check and came running back up and told us to 'Pack our things' now a bunch of State Troopers cam-"; + doc_title_1 = "October 23, 2077"; + pixel_y = 3; + termtag = "Business" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/north, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"tg" = ( +/turf/closed/wall/mineral/wood, +/area/f13/ncr) +"tl" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/dark{ + icon_state = "darkrusty"; + name = "grimy tile" + }, +/area/f13/brotherhood/surface) +"tq" = ( +/obj/machinery/light{ + dir = 8; + pixel_y = -16 + }, +/turf/open/floor/f13{ + icon_state = "neutralrustyfull" + }, +/area/f13/building) +"tu" = ( +/obj/structure/lattice/catwalk, +/obj/structure/barricade/sandbags, +/turf/open/transparent/openspace{ + name = "air"; + sunlight_state = 1 + }, +/area/f13/wasteland) +"tv" = ( +/obj/structure/table, /obj/machinery/computer/terminal{ dir = 1; doc_content_1 = "Olivia... I really love you.. okay? I know you've looked at me during lunch hours.. you want this too.. I sent you these flowers and this heart shaped chocolate box in hopes that you'll go out with me... please? -Love, Chris."; @@ -577,6 +1453,19 @@ icon_state = "darkrusty" }, /area/f13/building) +"tK" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) +"tM" = ( +/obj/structure/table, +/turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust{ + name = "metal plating"; + sunlight_state = 1 + }, +/area/f13/building) "tT" = ( /obj/structure/chair{ dir = 8 @@ -585,9 +1474,6 @@ icon_state = "darkrusty" }, /area/f13/building) -"tU" = ( -/turf/open/indestructible/ground/outside/roof, -/area/f13/followers) "tY" = ( /obj/structure/railing{ color = "#A47449"; @@ -601,6 +1487,12 @@ "ub" = ( /turf/closed/wall/r_wall, /area/f13/ncr) +"ul" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood{ + icon_state = "housewood3-broken" + }, +/area/f13/wasteland) "us" = ( /obj/structure/chair, /obj/effect/decal/cleanable/dirt, @@ -608,6 +1500,9 @@ icon_state = "neutralrustyfull" }, /area/f13/building) +"uF" = ( +/turf/open/transparent/openspace, +/area/f13/legion) "uI" = ( /turf/open/floor/carpet/black, /area/f13/building) @@ -620,11 +1515,44 @@ }, /area/f13/building) "uW" = ( -/turf/closed/indestructible/rock, -/area/f13/tunnel) -"vG" = ( +/turf/open/floor/f13{ + icon_state = "floorrustysolid" + }, +/area/f13/wasteland) +"vp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/window{ + dir = 4; + pixel_x = 2 + }, +/turf/open/floor/plasteel/f13/vault_floor/purple/side{ + dir = 4 + }, +/area/f13/brotherhood/surface) +"vB" = ( +/obj/structure/barricade/sandbags, /turf/open/indestructible/ground/outside/roof, -/area/f13/ncr) +/area/f13/wasteland) +"vJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/paper/stack{ + desc = "A stack of various papers, illegible scribbles scattered across each page."; + dir = 8 + }, +/obj/machinery/light/fo13colored/Red{ + pixel_x = 16 + }, +/turf/open/floor/plasteel/f13/vault_floor/red, +/area/f13/brotherhood/surface) +"vX" = ( +/obj/structure/railing{ + layer = 4.1 + }, +/turf/open/transparent/openspace{ + name = "air"; + sunlight_state = 1 + }, +/area/f13/raiders) "vY" = ( /obj/structure/table, /obj/machinery/computer/terminal{ @@ -643,12 +1571,108 @@ icon_state = "neutralrustyfull" }, /area/f13/building) +"wd" = ( +/obj/structure/filingcabinet{ + pixel_x = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/red, +/area/f13/brotherhood/surface) +"wf" = ( +/obj/structure/barricade/wooden/strong, +/obj/structure/decoration/rag{ + icon_state = "skin" + }, +/turf/closed/wall/f13/wood/house, +/area/f13/raiders) +"wp" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust{ + name = "metal plating"; + sunlight_state = 1 + }, +/area/f13/building) +"wq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/toy/cards/deck{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/item/cigbutt/cigarbutt{ + pixel_x = -4; + pixel_y = 4 + }, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"ww" = ( +/obj/structure/dresser, +/turf/open/floor/f13/wood, +/area/f13/legion) +"wx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/wood/fancy/royalblack, +/obj/item/candle/infinite{ + pixel_x = 5; + pixel_y = 5 + }, +/turf/open/floor/f13/wood, +/area/f13/wasteland) +"wA" = ( +/turf/open/floor/f13/wood, +/area/f13/legion) +"wE" = ( +/obj/structure/chair/wood/modern{ + dir = 4; + icon_state = "wooden_chair_settler" + }, +/turf/open/indestructible/ground/outside/roof, +/area/f13/wasteland) +"wF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/plasteel/f13/vault_floor/dark{ + icon_state = "darkrusty"; + name = "grimy tile" + }, +/area/f13/brotherhood/surface) +"wH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/machinery/computer/terminal{ + doc_content_1 = "Hey Honey, I'm at work, but I overheard from Johnson that there's a new romantic comedy movie that just came out, do you wanna go grab a ticket while the kids are still at school?"; + doc_title_1 = "New Movie coming out today!"; + pixel_y = 3; + termtag = "Business" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/north, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) "wI" = ( /obj/structure/bed/wooden{ pixel_y = 14 }, /turf/open/floor/carpet/black, /area/f13/building) +"wR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_y = 9 + }, +/obj/item/pen/fountain/captain{ + name = "Manager's fountain pen"; + pixel_y = 9 + }, +/turf/open/floor/plasteel/f13/vault_floor/dark{ + icon_state = "darkdirty" + }, +/area/f13/brotherhood/surface) "wY" = ( /obj/structure/table, /obj/machinery/computer/terminal{ @@ -668,12 +1692,48 @@ icon_state = "darkrusty" }, /area/f13/building) +"xc" = ( +/obj/structure/fireplace, +/turf/open/floor/carpet/black, +/area/f13/legion) "xk" = ( /obj/machinery/vending/snack, /turf/open/floor/f13{ icon_state = "neutralrustyfull" }, /area/f13/building) +"xm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/head/f13/police/trooper{ + pixel_x = 1; + pixel_y = -5 + }, +/obj/effect/decal/remains/human, +/obj/item/flashlight/seclite, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"xp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/sofa/corp/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/f13/brotherhood/surface) +"xt" = ( +/obj/structure/decoration/rag, +/turf/closed/wall/f13/wood/house, +/area/f13/raiders) +"xw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced, +/obj/machinery/computer/terminal{ + dir = 1; + doc_content_1 = "This is as always Manager Stevenson, today was a good day. More than usual folk came in here looking to open an account! Sounds like we might have an up soon!"; + doc_title_1 = "October 23, 2077"; + termtag = "Business" + }, +/turf/open/floor/plasteel/f13/vault_floor/dark, +/area/f13/brotherhood/surface) "xN" = ( /obj/structure/chair/right{ dir = 1 @@ -688,9 +1748,50 @@ icon_state = "darkrusty" }, /area/f13/building) +"xQ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/stool{ + dir = 1; + icon_state = "bench_center" + }, +/turf/open/floor/f13/wood, +/area/f13/wasteland) +"xW" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/closet/crate/bin/trashbin, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "yd" = ( /turf/open/transparent/openspace, /area/f13/building) +"ye" = ( +/obj/structure/window/fulltile/wood, +/obj/structure/curtain{ + color = "#c40e0e" + }, +/turf/open/floor/f13/wood, +/area/f13/legion) +"yj" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/button/door{ + id = "exteriorgate2"; + name = "Exterior door button"; + pixel_x = 32; + pixel_y = -6 + }, +/obj/machinery/button/door{ + id = "interiorgate2"; + name = "Interior door button"; + pixel_x = 32; + pixel_y = 6 + }, +/turf/open/transparent/openspace{ + name = "air"; + sunlight_state = 1 + }, +/area/f13/wasteland) "yn" = ( /obj/structure/chair/left{ dir = 1 @@ -703,6 +1804,20 @@ }, /turf/open/floor/carpet/black, /area/f13/building) +"yx" = ( +/obj/structure/table/wood/settler, +/obj/item/candle/infinite{ + pixel_x = -4; + pixel_y = 12 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood, +/area/f13/raiders) +"yA" = ( +/obj/structure/table/wood, +/obj/item/pda, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "yI" = ( /obj/structure/table/booth, /obj/item/candle{ @@ -713,7 +1828,19 @@ name = "metal plating"; sunlight_state = 1 }, -/area/f13/building) +/area/f13/wasteland) +"yP" = ( +/obj/structure/bed, +/obj/item/bedsheet/black, +/obj/effect/landmark/start/f13/ncrranger, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) +"yS" = ( +/obj/structure/destructible/tribal_torch/wall/lit{ + dir = 4 + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "yW" = ( /obj/structure/table/wood/settler, /obj/structure/bedsheetbin, @@ -722,12 +1849,44 @@ "zk" = ( /turf/closed/indestructible/riveted, /area/f13/tcoms) -"zY" = ( +"zo" = ( +/obj/structure/sign/poster/contraband/robust_softdrinks, +/turf/closed/wall/f13/store, +/area/f13/brotherhood/surface) +"zs" = ( +/obj/structure/destructible/tribal_torch/wall/lit{ + dir = 4 + }, /turf/open/indestructible/ground/outside/woodalt, +/area/f13/legion) +"zx" = ( +/obj/structure/table/wood, +/obj/item/paper/crumpled/ruins, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/building) +"zK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/sofa/corp/left{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/f13/brotherhood/surface) +"zN" = ( +/turf/open/floor/wood/wood_large, /area/f13/ncr) +"zY" = ( +/obj/effect/overlay/junk/curtain{ + layer = 4 + }, +/obj/structure/window/fulltile/house{ + icon_state = "housewindowvertical" + }, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/building) "Ab" = ( +/obj/effect/spawner/lootdrop/trash, /turf/open/indestructible/ground/outside/woodalt, -/area/f13/tunnel) +/area/f13/building) "Ad" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/f13{ @@ -737,12 +1896,20 @@ "Al" = ( /turf/closed/indestructible/rock, /area/f13/caves) +"An" = ( +/obj/structure/destructible/tribal_torch/wall/lit{ + dir = 8 + }, +/turf/open/floor/f13/wood, +/area/f13/legion) "Ao" = ( -/turf/open/transparent/openspace{ - name = "air"; - sunlight_state = 1 +/obj/machinery/light/small/broken{ + dir = 8 }, -/area/f13/ncr) +/obj/structure/table/wood, +/obj/item/chair/wood, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/building) "Ap" = ( /obj/item/kirbyplants/random, /obj/effect/decal/cleanable/dirt, @@ -754,6 +1921,15 @@ icon_state = "darkrusty" }, /area/f13/building) +"AD" = ( +/obj/structure/sign/poster/prewar/poster81, +/turf/closed/wall/f13/store, +/area/f13/brotherhood/surface) +"AH" = ( +/obj/structure/chair/sofa/left, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood, +/area/f13/raiders) "AK" = ( /obj/structure/table, /obj/item/clothing/mask/cigarette/cigar{ @@ -768,8 +1944,19 @@ }, /area/f13/building) "AM" = ( -/turf/open/indestructible/ground/outside/woodalt, -/area/f13/legion) +/turf/open/indestructible/ground/inside/mountain, +/area/f13/caves) +"AT" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/paper_bin{ + pixel_y = 9 + }, +/obj/item/pen{ + pixel_y = 9 + }, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) "AV" = ( /obj/structure/chair/office{ dir = 4 @@ -778,6 +1965,76 @@ icon_state = "housewood2-broken" }, /area/f13/building) +"Bj" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/black, +/area/f13/legion) +"Bl" = ( +/obj/structure/decoration/rag, +/obj/structure/fence/wooden{ + dir = 4 + }, +/turf/closed/wall/f13/wood/house, +/area/f13/raiders) +"Bm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/stool{ + dir = 8; + icon_state = "bench" + }, +/turf/open/floor/f13/wood, +/area/f13/wasteland) +"Bp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/window{ + dir = 4; + pixel_x = 2 + }, +/obj/machinery/light/built, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plasteel/f13/vault_floor/purple/side{ + dir = 4 + }, +/area/f13/brotherhood/surface) +"Br" = ( +/obj/structure/railing{ + color = "#A47449"; + dir = 8 + }, +/turf/open/floor/carpet, +/area/f13/building) +"Bw" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood{ + icon_state = "housewood4-broken" + }, +/area/f13/wasteland) +"By" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/north, +/obj/structure/window/spawner/west, +/obj/item/phone, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"BA" = ( +/obj/structure/barricade/wooden, +/turf/closed/mineral/random/low_chance, +/area/f13/caves) +"BB" = ( +/obj/structure/railing{ + color = "#A47449"; + dir = 4 + }, +/obj/structure/railing{ + color = "#A47449"; + dir = 1 + }, +/turf/open/transparent/openspace{ + name = "air"; + sunlight_state = 1 + }, +/area/f13/building) "BH" = ( /obj/structure/closet/crate/footlocker{ pixel_x = 8; @@ -793,9 +2050,12 @@ icon_state = "housewood2" }, /area/f13/building) +"BS" = ( +/turf/open/floor/carpet/black, +/area/f13/legion) "BU" = ( /turf/closed/wall/f13/tunnel, -/area/f13/wasteland) +/area/f13/building) "BV" = ( /obj/structure/sign/painting/library{ persistence_id = "oasis_public"; @@ -803,6 +2063,12 @@ }, /turf/open/floor/carpet/black, /area/f13/building) +"BX" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/red/corner{ + dir = 4 + }, +/area/f13/brotherhood/surface) "BY" = ( /turf/closed/wall/f13/tentwall, /area/f13/building) @@ -816,14 +2082,69 @@ icon_state = "neutralrustyfull" }, /area/f13/building) -"CC" = ( +"Cj" = ( /turf/open/indestructible/ground/outside/roof, +/area/f13/caves) +"Cn" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 4; + pixel_x = 6 + }, +/obj/effect/turf_decal/trimline/yellow/line{ + pixel_y = -6 + }, +/obj/structure/chair/sofa/corp/left{ + dir = 8 + }, +/turf/open/floor/carpet/royalblack, +/area/f13/ncr) +"Cp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/wood/settler, +/turf/open/floor/f13/wood, +/area/f13/raiders) +"CA" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/north, +/obj/item/kirbyplants{ + icon_state = "plant-25"; + pixel_y = 14 + }, +/turf/open/floor/f13, /area/f13/brotherhood/surface) +"CC" = ( +/turf/open/indestructible/ground/outside/roof, +/area/f13/wasteland) "CG" = ( /turf/open/floor/f13/wood{ icon_state = "housewood4-broken" }, /area/f13/building) +"CH" = ( +/obj/structure/window/fulltile/house{ + dir = 2; + icon_state = "storewindowleft" + }, +/obj/structure/barricade/bars{ + max_integrity = 800; + name = "strong metal bars"; + obj_integrity = 800 + }, +/turf/open/floor/plasteel/f13/vault_floor/floor/floorsolid, +/area/f13/brotherhood/surface) +"CI" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/neutral/corner{ + dir = 1 + }, +/area/f13/brotherhood/surface) +"CJ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood{ + icon_state = "housewood3-broken" + }, +/area/f13/raiders) "CQ" = ( /obj/structure/window/fulltile/house{ dir = 2; @@ -837,9 +2158,43 @@ icon_state = "floorrusty" }, /area/f13/building) +"Dc" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/paper_bin{ + pixel_y = 9 + }, +/obj/item/pen{ + pixel_y = 9 + }, +/obj/structure/window/spawner/west, +/obj/item/storage/pill_bottle/neurine{ + name = "bottle of pills"; + pixel_x = 8 + }, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"Dk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/fo13colored/Red{ + dir = 1 + }, +/turf/open/floor/plasteel/f13/vault_floor/neutral, +/area/f13/brotherhood/surface) +"Dp" = ( +/obj/structure/railing{ + color = "#A47449"; + dir = 4 + }, +/turf/open/transparent/openspace{ + name = "air"; + sunlight_state = 1 + }, +/area/f13/building) "DB" = ( -/turf/closed/wall/f13/tentwall, -/area/f13/village) +/obj/structure/table/wood, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/building) "DI" = ( /obj/structure/window/fulltile/house{ dir = 2; @@ -861,6 +2216,16 @@ icon_state = "neutralrustyfull" }, /area/f13/building) +"DU" = ( +/obj/structure/railing{ + dir = 6; + layer = 4.1 + }, +/turf/open/transparent/openspace{ + name = "air"; + sunlight_state = 1 + }, +/area/f13/raiders) "DW" = ( /obj/structure/table, /obj/item/paper/pamphlet{ @@ -871,6 +2236,34 @@ icon_state = "neutralrustyfull" }, /area/f13/building) +"Ei" = ( +/obj/structure/closet/crate/footlocker{ + anchored = 1; + pixel_x = -9 + }, +/obj/machinery/light/broken{ + dir = 1 + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) +"El" = ( +/obj/structure/chair/comfy/plywood, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) +"Er" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood{ + icon_state = "housewood4-broken" + }, +/area/f13/raiders) +"EC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/vending/cigarette, +/obj/machinery/light/fo13colored/Red{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/f13/brotherhood/surface) "ED" = ( /obj/structure/chair/middle{ dir = 1 @@ -882,14 +2275,35 @@ /area/f13/building) "EX" = ( /turf/open/indestructible/ground/outside/woodalt, -/area/f13/village) +/area/f13/building) "EZ" = ( /turf/open/transparent/openspace, /area/f13/wasteland) +"Fl" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/north, +/obj/structure/window/spawner/west, +/obj/item/folder/documents{ + desc = "A folder stamped \"Client Deposits - Property of The Yuma Bank. Unauthorized distribution is punishable by jail time.\""; + name = "folder- 'Client Deposits'" + }, +/obj/item/stamp/denied{ + pixel_x = -4 + }, +/obj/item/stamp{ + pixel_x = 4 + }, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) "FK" = ( /obj/structure/simple_door/wood, /turf/open/floor/wood/f13/oak, /area/f13/building) +"FN" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "FR" = ( /obj/structure/table, /obj/item/reagent_containers/food/snacks/grown/poppy/lily{ @@ -913,8 +2327,33 @@ /turf/open/floor/carpet/royalblack, /area/f13/building) "FW" = ( -/turf/closed/mineral/random/low_chance, -/area/f13/wasteland) +/obj/structure/barricade/wooden{ + layer = 3.5 + }, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/building) +"FX" = ( +/obj/structure/sign/poster/prewar/poster82, +/turf/closed/wall/f13/store, +/area/f13/brotherhood/surface) +"FY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_x = -5; + pixel_y = 10 + }, +/obj/item/storage/fancy/cigarettes/cigars/havana, +/obj/item/cigbutt/cigarbutt{ + pixel_x = -4; + pixel_y = -2 + }, +/obj/item/lighter/gold{ + pixel_x = 7; + pixel_y = 7 + }, +/turf/open/floor/plasteel/grimy, +/area/f13/brotherhood/surface) "FZ" = ( /obj/structure/chair/right{ dir = 8 @@ -924,20 +2363,73 @@ }, /turf/open/floor/carpet/red, /area/f13/building) +"Ga" = ( +/obj/structure/railing{ + color = "#A47449"; + dir = 8 + }, +/obj/structure/railing{ + color = "#A47449" + }, +/turf/open/transparent/openspace{ + name = "air"; + sunlight_state = 1 + }, +/area/f13/building) +"Gf" = ( +/obj/structure/railing{ + color = "#A47449"; + density = 0; + dir = 5; + pixel_x = 9; + pixel_y = 10 + }, +/turf/closed/wall/rust, +/area/f13/building) +"Gh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/remains/human, +/obj/structure/window{ + dir = 4; + pixel_x = 2 + }, +/turf/open/floor/plasteel/f13/vault_floor/purple/side{ + dir = 4 + }, +/area/f13/brotherhood/surface) +"Gi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/vending/nukacolavend, +/turf/open/floor/plasteel/grimy, +/area/f13/brotherhood/surface) +"Gj" = ( +/obj/structure/chair/sofa/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood, +/area/f13/raiders) "Gk" = ( /obj/structure/simple_door/wood, /turf/open/floor/carpet/black, /area/f13/building) "Gl" = ( +/obj/structure/lattice/catwalk, /turf/open/transparent/openspace{ name = "air"; sunlight_state = 1 }, -/area/f13/building) +/area/f13/wasteland) "Gn" = ( /obj/machinery/telecomms/relay/preset/telecomms, /turf/open/indestructible, /area/f13/tcoms) +"Gv" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood{ + icon_state = "housewood2-broken" + }, +/area/f13/raiders) "GB" = ( /obj/structure/table/wood, /turf/open/floor/f13/wood{ @@ -953,11 +2445,37 @@ name = "metal plating"; sunlight_state = 1 }, +/area/f13/wasteland) +"GX" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/wasteland) +"Hf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/plasteel/f13/vault_floor/purple/side, +/area/f13/brotherhood/surface) +"Hi" = ( +/obj/structure/destructible/tribal_torch/wall/lit{ + dir = 8 + }, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/legion) +"Hk" = ( +/obj/machinery/light/small/broken{ + dir = 1 + }, +/turf/open/floor/f13{ + icon_state = "hydrofloor" + }, /area/f13/building) "Hm" = ( /obj/structure/noticeboard/captain{ desc = "The final Evidence Board shows a location of the Yuma Sewers circled many times in red, looks like the police found something there.."; dir = 4; + icon_state = "nboard02"; name = "Evidence Board" }, /turf/closed/wall/f13/store, @@ -978,6 +2496,7 @@ /obj/structure/noticeboard/captain{ desc = "The first Evidence Board has a bunch of different faces pinned on it, with one being at the top of them all."; dir = 4; + icon_state = "nboard05"; name = "Evidence Board" }, /turf/closed/wall/f13/store, @@ -989,6 +2508,41 @@ /obj/structure/closet/crate/bin, /turf/open/floor/wood/f13/oak, /area/f13/building) +"HH" = ( +/obj/structure/railing{ + color = "#A47449"; + dir = 1 + }, +/obj/structure/railing{ + color = "#A47449"; + dir = 4 + }, +/turf/open/transparent/openspace{ + name = "air"; + sunlight_state = 1 + }, +/area/f13/building) +"HJ" = ( +/obj/effect/decal/cleanable/dirt{ + color = "000000" + }, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 8; + pixel_x = -6 + }, +/obj/structure/table/wood/fancy/black, +/obj/item/storage/box/dice{ + pixel_x = -4; + pixel_y = 9 + }, +/turf/open/floor/carpet/royalblack, +/area/f13/ncr) +"Ih" = ( +/obj/structure/destructible/tribal_torch/wall/lit{ + dir = 4 + }, +/turf/open/indestructible/ground/inside/mountain, +/area/f13/caves) "Ip" = ( /obj/structure/chair/office/dark{ dir = 1 @@ -1003,6 +2557,44 @@ }, /turf/open/floor/carpet/red, /area/f13/building) +"IB" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/yellow/side{ + dir = 1 + }, +/area/f13/brotherhood/surface) +"ID" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/north, +/obj/structure/window/spawner/west, +/obj/item/storage/briefcase, +/obj/structure/fluff/paper/stack{ + desc = "A stack of various papers, illegible scribbles scattered across each page." + }, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"IL" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/north, +/obj/structure/window/spawner/west, +/obj/item/newspaper{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_x = -6 + }, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"IT" = ( +/obj/structure/simple_door/wood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood{ + icon_state = "housewood4-broken" + }, +/area/f13/legion) "IW" = ( /obj/structure/sink{ pixel_y = 22 @@ -1012,17 +2604,39 @@ name = "grimy tile" }, /area/f13/building) +"IY" = ( +/obj/structure/filingcabinet/employment{ + pixel_x = 4; + pixel_y = 21 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/paper/corner, +/turf/open/floor/plasteel/f13/vault_floor/red, +/area/f13/brotherhood/surface) "Jd" = ( /turf/closed/wall/f13/tentwall, /area/f13/ncr) +"Jj" = ( +/obj/structure/barricade/wooden, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/legion) "Jl" = ( /obj/structure/chair/office/dark, /turf/open/floor/f13/wood{ icon_state = "housewood4-broken" }, /area/f13/building) -"Jp" = ( -/obj/structure/chair/office/dark, +"Jn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/prewar/corporate_espionage{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/f13/vault_floor/red/side{ + dir = 1 + }, +/area/f13/brotherhood/surface) +"Jp" = ( +/obj/structure/chair/office/dark, /turf/open/floor/f13/wood{ icon_state = "housewood2-broken" }, @@ -1055,6 +2669,74 @@ icon_state = "neutralrustyfull" }, /area/f13/building) +"JB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/comfy/shuttle{ + desc = "A comfortable, secure seat. It has a futuristic vouge feel."; + name = "prewar lounge chair" + }, +/obj/item/storage/photo_album{ + desc = "This is a photo album, that has a bunch of pictures of a family in it, most are destroyed though."; + name = "pre-war photo album"; + pixel_y = -7 + }, +/obj/effect/decal/remains/human, +/turf/open/floor/plasteel/f13/vault_floor/dark{ + icon_state = "darkdirty" + }, +/area/f13/brotherhood/surface) +"JF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/remains/human, +/obj/item/gun/ballistic/automatic/pistol/type17, +/turf/open/floor/plasteel/f13/vault_floor/neutral, +/area/f13/brotherhood/surface) +"Kc" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/paper_bin{ + pixel_y = 9 + }, +/obj/item/pen{ + pixel_y = 9 + }, +/obj/structure/window/spawner/west, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"Kg" = ( +/obj/structure/sign/poster/prewar/vault_tec, +/turf/closed/wall/f13/store, +/area/f13/brotherhood/surface) +"Ki" = ( +/obj/structure/filingcabinet/medical{ + pixel_x = -10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/paper/stack{ + desc = "A stack of various papers, illegible scribbles scattered across each page."; + dir = 1 + }, +/turf/open/floor/plasteel/f13/vault_floor/red, +/area/f13/brotherhood/surface) +"Kk" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/north, +/obj/structure/window/spawner/west, +/obj/item/reagent_containers/food/snacks/badrecipe{ + desc = "Whatever this food was before the war is now burnt to a crisp." + }, +/obj/item/reagent_containers/food/drinks/bottle/f13nukacola{ + pixel_x = 4; + pixel_y = 6 + }, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"Ko" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/generic, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) "Ks" = ( /turf/closed/wall/f13/wood, /area/f13/legion) @@ -1065,13 +2747,47 @@ /obj/structure/chair/left, /turf/open/floor/carpet/red, /area/f13/building) +"KC" = ( +/obj/structure/closet/crate/footlocker{ + anchored = 1; + pixel_x = -9 + }, +/obj/machinery/light, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) +"KI" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/open/transparent/openspace{ + name = "air"; + sunlight_state = 1 + }, +/area/f13/raiders) +"KQ" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/north, +/obj/structure/window/spawner/west, +/obj/item/folder/yellow{ + pixel_x = 4 + }, +/obj/item/folder/yellow{ + pixel_x = 4 + }, +/obj/item/folder/yellow{ + pixel_x = 4 + }, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"Lb" = ( +/obj/structure/destructible/tribal_torch/wall/lit{ + dir = 8 + }, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/wasteland) "Li" = ( /obj/structure/barricade/wooden, /turf/closed/wall/rust, /area/f13/building) -"Lp" = ( -/turf/open/indestructible/ground/outside/roof, -/area/f13/village) "Lt" = ( /obj/structure/table/wood, /obj/structure/fluff/paper/stack{ @@ -1083,6 +2799,33 @@ icon_state = "housewood2" }, /area/f13/building) +"Lu" = ( +/obj/machinery/door/unpowered/securedoor{ + desc = "Door with a built-in lock. Can't be padlocked. The Black armor isn't the only perk Veterans get.."; + name = "Veteran Ranger's Room"; + req_access_txt = "121" + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) +"Lv" = ( +/obj/machinery/door/airlock/wood/glass{ + req_one_access_txt = "62" + }, +/turf/open/floor/wood/f13/oak, +/area/f13/building) +"Lw" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/remains/human, +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"Lx" = ( +/obj/structure/simple_door/metal/dirtystore, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/red, +/area/f13/brotherhood/surface) "Ly" = ( /obj/structure/window/fulltile/house{ icon_state = "storewindowhorizontal" @@ -1091,6 +2834,43 @@ icon_state = "floorrusty" }, /area/f13/building) +"LB" = ( +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/f13/wood, +/area/f13/legion) +"LH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/wood/fancy/black, +/obj/structure/window/reinforced/spawner, +/obj/structure/window/reinforced/spawner/east, +/obj/structure/window/reinforced/spawner/north, +/obj/structure/window/reinforced/spawner/west, +/obj/item/statuebust{ + anchored = 1; + can_be_unanchored = 1; + density = 1; + desc = "A priceless ancient marble bust of some rando. Who the hell even is this guy?"; + pixel_y = 8 + }, +/turf/open/floor/carpet/royalblack, +/area/f13/brotherhood/surface) +"LI" = ( +/obj/effect/decal/cleanable/glass, +/obj/item/shard, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/raiders) +"LJ" = ( +/obj/structure/destructible/tribal_torch/wall/lit, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/legion) +"LQ" = ( +/obj/structure/barricade/wooden/strong, +/obj/structure/barricade/wooden/planks/pregame, +/turf/open/indestructible/ground/inside/mountain, +/area/f13/caves) "LW" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -1098,15 +2878,54 @@ icon_state = "neutralrustyfull" }, /area/f13/building) +"Mc" = ( +/obj/structure/noticeboard{ + desc = "A board for pinning important items upon."; + name = "display plate"; + pixel_x = 32 + }, +/obj/item/clothing/head/helmet/f13/ncr/rangercombat/mosshelmet{ + anchored = 1; + pixel_x = 32; + pixel_y = -3 + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "Mj" = ( -/turf/open/indestructible/ground/outside/woodalt, -/area/f13/bar) +/obj/structure/railing{ + color = "#A47449" + }, +/turf/open/transparent/openspace{ + name = "air"; + sunlight_state = 1 + }, +/area/f13/wasteland) "Mu" = ( /obj/structure/sign/poster/contraband/space_cola{ pixel_y = 32 }, /turf/open/floor/wood/f13/oak, /area/f13/building) +"Mw" = ( +/obj/structure/table/wood, +/obj/item/binoculars, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) +"MC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced, +/obj/item/export/bottle/whiskey{ + desc = "A sealed bottle of alcohol, with a little note attached to it: Happy Anniversary, Dear."; + pixel_x = -7; + pixel_y = 8 + }, +/obj/item/clothing/accessory/necklace{ + desc = "A necklace with a little note attached to it: Happy Anniversary, Dear."; + pixel_x = 7; + pixel_y = 5 + }, +/turf/open/floor/plasteel/f13/vault_floor/dark, +/area/f13/brotherhood/surface) "MG" = ( /obj/structure/chair/wood/modern{ dir = 4; @@ -1116,7 +2935,21 @@ name = "metal plating"; sunlight_state = 1 }, -/area/f13/building) +/area/f13/wasteland) +"MS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/bed/dogbed, +/mob/living/simple_animal/hostile/wolf/alpha{ + icon_living = "tippen"; + icon_state = "tippen"; + icon_dead = "tippen_dead"; + faction = list("neutral"); + desc = "Sheepdogs are known for their intelligence and have worked alongside humans for thousands of years. This one has a dopey smile and smells of barbecue sauce."; + health = 200; + name = "Dreams-of-Moonlight" + }, +/turf/open/floor/f13/wood, +/area/f13/raiders) "Na" = ( /obj/structure/simple_door/metal/store{ name = "Chief's Office" @@ -1129,9 +2962,76 @@ /obj/structure/table/booth, /turf/open/floor/carpet/red, /area/f13/building) -"NP" = ( -/turf/closed/wall/f13/tentwall, +"Ne" = ( +/obj/structure/table/wood/settler, +/obj/item/binoculars, +/turf/open/indestructible/ground/inside/mountain, +/area/f13/caves) +"Nj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/machinery/computer/terminal{ + doc_content_1 = "Once again, the boss is ignoring my complaints about the janitor.. I'm SURE He's a Chinese spy.. but the boss is ignoring me.. saying that 'He's worked here longer than you' BULLSHIT, He's CHINESE AND I'LL PROVE IT!!"; + doc_title_1 = "Janitor Problem"; + pixel_y = 3; + termtag = "Business" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/north, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"NA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/stool{ + dir = 4; + icon_state = "bench" + }, +/obj/item/clothing/mask/cigarette/rollie/cannabis{ + pixel_x = -6; + pixel_y = 7; + layer = 4 + }, +/obj/item/toy/plush/lizardplushie{ + pixel_x = 2; + pixel_y = 3; + name = "Khanizard" + }, +/obj/item/clothing/head/helmet/f13/khan/pelt{ + pixel_y = 10 + }, +/turf/open/floor/f13/wood, +/area/f13/wasteland) +"NB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/broken{ + dir = 4 + }, +/turf/open/floor/f13/wood, /area/f13/raiders) +"ND" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/carpet/black, +/area/f13/legion) +"NI" = ( +/obj/effect/decal/cleanable/dirt{ + color = "000000" + }, +/obj/item/kirbyplants/random, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) +"NP" = ( +/obj/structure/simple_door/room, +/obj/structure/barricade/wooden{ + layer = 3.5 + }, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/building) +"NS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/paper/crumpled, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) "NU" = ( /obj/structure/table, /obj/machinery/computer/terminal{ @@ -1143,6 +3043,42 @@ icon_state = "neutralrustyfull" }, /area/f13/building) +"NW" = ( +/obj/machinery/door/unpowered/securedoor{ + autoclose = 1; + damage_deflection = 28; + max_integrity = 400; + obj_integrity = 400; + req_access_txt = "123" + }, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/legion) +"NX" = ( +/obj/structure/chair/wood/modern{ + dir = 8; + icon_state = "wooden_chair_settler" + }, +/turf/open/indestructible/ground/outside/roof, +/area/f13/wasteland) +"NY" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/legion) +"NZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/remains/human, +/turf/open/floor/plasteel/grimy, +/area/f13/brotherhood/surface) +"Oa" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/decal/remains/human, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) "Oc" = ( /obj/machinery/vending/cola/space_up, /turf/open/floor/f13{ @@ -1153,6 +3089,25 @@ /obj/structure/barricade/wooden, /turf/closed/wall/f13/wood, /area/f13/building) +"Oh" = ( +/obj/structure/lattice/catwalk, +/turf/closed/mineral/random/low_chance, +/area/f13/caves) +"Oj" = ( +/obj/structure/simple_door/wood, +/turf/open/floor/f13/wood, +/area/f13/legion) +"Op" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood{ + icon_state = "housewood2-broken" + }, +/area/f13/wasteland) +"OE" = ( +/obj/structure/simple_door/metal/store, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/neutral, +/area/f13/brotherhood/surface) "OH" = ( /obj/machinery/light{ dir = 8; @@ -1160,9 +3115,50 @@ }, /turf/open/transparent/openspace, /area/f13/building) +"OP" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/paper_bin{ + pixel_y = 9 + }, +/obj/item/pen{ + pixel_y = 9 + }, +/obj/item/laser_pointer/red, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"OY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/computer/terminal{ + doc_content_1 = "I decided today to go over the clients that have an account with our bank and I noticed something off... there's a name 'John Doe' that's been coming here everyday to transfer funds into one of his other accounts.. that isn't on US Soil.. I think I just found a Chinese Spy!"; + doc_title_1 = "Client Transactions are Off.."; + pixel_y = 3; + termtag = "Business" + }, +/obj/structure/window/spawner/north, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"Ph" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/grimy, +/area/f13/brotherhood/surface) "Pl" = ( -/turf/open/indestructible/ground/outside/woodalt, -/area/f13/city) +/obj/structure/barricade/wooden{ + layer = 3.5 + }, +/turf/closed/wall/f13/wood/house, +/area/f13/building) +"Pt" = ( +/obj/structure/decoration/rag, +/obj/structure/decoration/rag{ + desc = "A string of bones and skulls.
A common warning from tribals and raiders to outsiders."; + icon_state = "skulls"; + name = "skulls" + }, +/turf/closed/wall/f13/wood/house, +/area/f13/raiders) "Pv" = ( /obj/structure/table/booth, /obj/item/candle{ @@ -1172,13 +3168,26 @@ name = "metal plating"; sunlight_state = 1 }, -/area/f13/building) +/area/f13/wasteland) +"PK" = ( +/obj/structure/table/wood, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ammo/tier2, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/legion) "PL" = ( /turf/open/transparent/openspace{ name = "air"; sunlight_state = 1 }, /area/f13/wasteland) +"PO" = ( +/turf/closed/wall/f13/store, +/area/f13/brotherhood/surface) +"PV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/simple_door/metal/dirtystore, +/turf/open/floor/plasteel/f13/vault_floor/dark, +/area/f13/brotherhood/surface) "Qe" = ( /obj/structure/filingcabinet{ density = 0; @@ -1197,6 +3206,18 @@ icon_state = "neutralrustyfull" }, /area/f13/building) +"Qj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate/bin/trashbin, +/turf/open/floor/plasteel/f13/vault_floor/yellow/corner{ + dir = 4 + }, +/area/f13/brotherhood/surface) +"Qn" = ( +/obj/structure/table, +/obj/item/binoculars, +/turf/open/floor/wood/f13/oak, +/area/f13/building) "Qs" = ( /obj/effect/decal/cleanable/dirt{ color = "000000" @@ -1207,15 +3228,125 @@ }, /turf/open/floor/carpet/black, /area/f13/building) +"Qv" = ( +/obj/structure/chair/sofa/corp/corner, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 1; + pixel_y = 6 + }, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 4; + pixel_x = 6 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/carpet/royalblack, +/area/f13/ncr) "Qx" = ( /turf/open/indestructible, /area/f13/tcoms) -"Rl" = ( +"QM" = ( +/obj/structure/closet/cabinet/anchored, +/obj/item/clothing/under/f13/ranger, +/obj/item/clothing/under/f13/ranger/blue, +/obj/item/clothing/under/f13/ranger/modif_ranger, +/obj/item/clothing/under/f13/ranger/patrol, +/obj/item/clothing/under/f13/ranger/trail, +/obj/item/clothing/under/f13/ranger/vet, +/obj/item/clothing/under/f13/ranger/vet/foxflannel, +/obj/item/clothing/head/f13/flatranger, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) +"Ra" = ( +/obj/structure/railing/corner, +/turf/open/transparent/openspace{ + name = "air"; + sunlight_state = 1 + }, +/area/f13/raiders) +"Re" = ( +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_x = 9; + pixel_y = 19 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_x = 2; + pixel_y = 11 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_x = 9; + pixel_y = 11 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_x = 2; + pixel_y = 19 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_x = 9; + pixel_y = 3 + }, +/obj/item/reagent_containers/food/drinks/bottle/tequila{ + pixel_x = -8; + pixel_y = 10 + }, +/obj/item/reagent_containers/food/drinks/bottle/whiskey{ + pixel_x = -8 + }, +/obj/effect/decal/cleanable/dirt{ + color = "000000" + }, +/obj/effect/turf_decal/trimline/yellow/line{ + pixel_y = -6 + }, +/obj/structure/table/wood/fancy/black, +/turf/open/floor/carpet/royalblack, +/area/f13/ncr) +"Rg" = ( /turf/open/transparent/openspace{ name = "air"; sunlight_state = 1 }, -/area/f13/farm) +/area/f13/building) +"Rl" = ( +/obj/structure/filingcabinet{ + pixel_x = -10 + }, +/obj/structure/filingcabinet{ + pixel_x = 2 + }, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/building) +"Rr" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"Rt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/ash/large, +/obj/effect/decal/cleanable/ash{ + pixel_x = -11; + pixel_y = -7 + }, +/turf/open/floor/plasteel/f13/vault_floor/red, +/area/f13/brotherhood/surface) +"Ru" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/machinery/computer/terminal{ + doc_content_1 = "I asked the boss if I could get the day off today, but since the boss somehow thinks this day is going to 'Turn this Bank in the right direction' he told me to stay! What an absolute asshole."; + doc_title_1 = "Off-Day"; + pixel_y = 3; + termtag = "Business" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/north, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) "Rw" = ( /obj/structure/decoration/smokeold{ pixel_y = 32 @@ -1229,6 +3360,81 @@ /obj/structure/decoration/clock/old/active, /turf/closed/wall/f13/store, /area/f13/building) +"RC" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/dark{ + icon_state = "darkdirty" + }, +/area/f13/brotherhood/surface) +"RD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/sofa/corp{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/f13/brotherhood/surface) +"RF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/window{ + dir = 1 + }, +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/grimy, +/area/f13/brotherhood/surface) +"RI" = ( +/obj/structure/barricade/sandbags, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/legion) +"RJ" = ( +/obj/item/trash/f13/dog{ + pixel_x = -6; + pixel_y = 14 + }, +/obj/item/reagent_containers/glass/bowl{ + desc = "A dog bowl, used to feed dogs food."; + name = "Empty dog bowl"; + pixel_y = -6 + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) +"RN" = ( +/obj/structure/window/fulltile/house{ + dir = 2; + icon_state = "storewindowright" + }, +/obj/structure/barricade/bars{ + max_integrity = 800; + name = "strong metal bars"; + obj_integrity = 800 + }, +/turf/open/floor/plasteel/f13/vault_floor/floor/floorsolid, +/area/f13/brotherhood/surface) +"RP" = ( +/obj/structure/table/wood, +/obj/item/binoculars, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/legion) +"RR" = ( +/obj/structure/chair/sofa/corp, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 1; + pixel_y = 6 + }, +/turf/open/floor/carpet/royalblack, +/area/f13/ncr) +"RT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/machinery/computer/terminal{ + doc_content_1 = "I think the boss isn't fit to manage the bank anymore.. he keeps making sloppy decisions and ignoring facts! I think I'll report him to HR Tomorrow."; + doc_title_1 = "October 23, 2077"; + pixel_y = 3; + termtag = "Business" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/north, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) "Sb" = ( /obj/structure/simple_door/metal/store{ icon_state = "brokenstore"; @@ -1238,9 +3444,42 @@ icon_state = "housewood2" }, /area/f13/building) +"Sh" = ( +/obj/structure/window/fulltile/house{ + dir = 2; + icon_state = "storewindowleft" + }, +/obj/structure/curtain{ + color = "#363636" + }, +/turf/open/floor/plasteel/f13/vault_floor/floor/floorsolid, +/area/f13/brotherhood/surface) "Sl" = ( +/obj/item/folder, /turf/open/indestructible/ground/outside/woodalt, -/area/f13/raiders) +/area/f13/building) +"So" = ( +/obj/structure/table, +/obj/item/crafting/abraxo{ + pixel_y = 8 + }, +/obj/item/crafting/abraxo{ + pixel_y = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/neutral, +/area/f13/brotherhood/surface) +"Su" = ( +/obj/effect/overlay/junk/sink{ + pixel_y = 15 + }, +/obj/effect/overlay/junk/mirror{ + pixel_y = 32 + }, +/turf/open/floor/f13{ + icon_state = "hydrofloor" + }, +/area/f13/building) "Sv" = ( /obj/structure/chair, /obj/effect/decal/remains/human, @@ -1265,13 +3504,63 @@ icon_state = "darkrusty" }, /area/f13/building) +"SO" = ( +/obj/effect/turf_decal/trimline/yellow/line{ + pixel_y = -6 + }, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 8; + pixel_x = -6 + }, +/obj/structure/table/wood/fancy/black, +/obj/item/toy/figure/detective{ + desc = "A makeshift attempt to refurbish this doll and try to make it look like a Ranger."; + name = "Ranger Action Figure"; + toysay = "Glory to the Republic!" + }, +/turf/open/floor/carpet/royalblack, +/area/f13/ncr) +"SV" = ( +/obj/effect/overlay/junk/toilet{ + dir = 8 + }, +/turf/open/floor/f13{ + icon_state = "hydrofloor" + }, +/area/f13/building) +"SX" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/item/stack/f13Cash/ncr{ + amount = 500 + }, +/obj/item/radio/headset/headset_ranger, +/obj/item/radio/headset/headset_ranger, +/obj/item/radio/headset/headset_ranger, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) +"Tf" = ( +/obj/structure/table/wood/settler, +/obj/item/candle/infinite{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood, +/area/f13/raiders) +"Tk" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood, +/area/f13/wasteland) "Tm" = ( /turf/open/indestructible/ground/outside/wood{ icon = 'icons/fallout/turfs/floors.dmi'; icon_state = "floorrusty"; name = "roof" }, -/area/f13/building) +/area/f13/wasteland) "Tr" = ( /obj/item/kirbyplants/random, /turf/open/floor/f13{ @@ -1279,11 +3568,31 @@ }, /area/f13/building) "Ts" = ( -/turf/closed/mineral/random/low_chance, -/area/f13/bar) +/obj/structure/closet/crate/bin, +/obj/item/folder/red, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/building) "Ty" = ( -/turf/closed/mineral/random/low_chance, +/obj/machinery/light/small/broken{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/machinery/computer/terminal{ + dir = 4; + termtag = "Business" + }, +/turf/open/indestructible/ground/outside/woodalt, /area/f13/building) +"TA" = ( +/obj/structure/sign/poster/ncr/loaded, +/turf/closed/wall/mineral/wood, +/area/f13/ncr) +"TU" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/yellow/corner{ + dir = 1 + }, +/area/f13/brotherhood/surface) "Ub" = ( /obj/structure/table/booth, /obj/item/binoculars, @@ -1291,7 +3600,7 @@ name = "metal plating"; sunlight_state = 1 }, -/area/f13/building) +/area/f13/wasteland) "Uf" = ( /obj/effect/decal/cleanable/dirt{ color = "000000" @@ -1300,7 +3609,22 @@ name = "metal plating"; sunlight_state = 1 }, -/area/f13/building) +/area/f13/wasteland) +"Uu" = ( +/obj/structure/decoration/rag{ + desc = "A string of bones and skulls.
A common warning from tribals and raiders to outsiders."; + icon_state = "skulls"; + name = "skulls" + }, +/turf/closed/wall/f13/wood/house, +/area/f13/raiders) +"Uv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/destructible/tribal_torch/wall/lit{ + dir = 4 + }, +/turf/open/floor/f13/wood, +/area/f13/wasteland) "Uy" = ( /obj/structure/chair/middle, /turf/open/floor/carpet/red, @@ -1359,6 +3683,10 @@ icon_state = "neutralrustyfull" }, /area/f13/building) +"Vd" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood, +/area/f13/legion) "Ve" = ( /obj/structure/table/booth, /obj/item/candle{ @@ -1368,7 +3696,38 @@ name = "metal plating"; sunlight_state = 1 }, +/area/f13/wasteland) +"Vi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/kirbyplants{ + icon_state = "plant-25"; + pixel_y = 14 + }, +/turf/open/floor/plasteel/f13/vault_floor/red/corner, +/area/f13/brotherhood/surface) +"Vn" = ( +/obj/effect/overlay/junk/curtain{ + layer = 4 + }, +/obj/structure/window/fulltile/house{ + icon_state = "housewindowvertical" + }, +/turf/open/space/basic, /area/f13/building) +"Vr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/sofa/corp/left{ + dir = 1 + }, +/turf/open/floor/plasteel/grimy, +/area/f13/brotherhood/surface) +"Vs" = ( +/obj/structure/campfire/stove{ + density = 0; + pixel_y = -13 + }, +/turf/closed/wall/f13/wood/house, +/area/f13/raiders) "Vt" = ( /obj/machinery/light/small, /turf/open/floor/carpet/black, @@ -1401,6 +3760,26 @@ icon_state = "neutralrustyfull" }, /area/f13/building) +"VR" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/dark, +/area/f13/brotherhood/surface) +"VX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced, +/obj/item/flashlight/lamp/green{ + pixel_x = -5; + pixel_y = 10 + }, +/obj/item/newspaper{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_x = -6 + }, +/turf/open/floor/plasteel/f13/vault_floor/dark, +/area/f13/brotherhood/surface) "Wp" = ( /obj/structure/table, /obj/item/paper_bin, @@ -1425,9 +3804,26 @@ icon_state = "neutralrustyfull" }, /area/f13/building) +"Ww" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/structure/table, +/turf/open/floor/wood/f13/oak, +/area/f13/building) "Wx" = ( /turf/open/indestructible/ground/outside/woodalt, /area/f13/wasteland) +"WI" = ( +/obj/structure/sign/plaques/golden, +/turf/closed/wall/mineral/wood, +/area/f13/ncr) +"WN" = ( +/obj/item/mop, +/obj/structure/mopbucket, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/neutral, +/area/f13/brotherhood/surface) "Xa" = ( /obj/structure/chair/office/dark{ dir = 1 @@ -1448,6 +3844,35 @@ icon_state = "housewood2-broken" }, /area/f13/building) +"Xf" = ( +/obj/structure/filingcabinet{ + layer = 3.3; + pixel_x = 5; + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/fluff/paper/stack{ + desc = "A stack of various papers, illegible scribbles scattered across each page."; + pixel_x = 6; + pixel_y = -4 + }, +/turf/open/floor/plasteel/f13/vault_floor/red, +/area/f13/brotherhood/surface) +"Xv" = ( +/obj/structure/fence/wooden{ + dir = 4 + }, +/obj/structure/decoration/rag{ + icon_state = "skin" + }, +/turf/closed/wall/f13/wood/house, +/area/f13/raiders) +"XF" = ( +/turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust{ + name = "metal plating"; + sunlight_state = 1 + }, +/area/f13/building) "XQ" = ( /obj/structure/curtain{ color = "#845f58" @@ -1459,23 +3884,221 @@ name = "metal plating" }, /area/f13/building) +"XT" = ( +/obj/effect/decal/cleanable/dirt{ + color = "000000" + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) +"Yb" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt{ + color = "000000" + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) +"Yg" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/button/door{ + id = "interiorgate"; + name = "inner gate"; + pixel_x = 32; + pixel_y = 6 + }, +/obj/machinery/button/door{ + id = "exteriorgate"; + name = "outer gate"; + pixel_x = 32; + pixel_y = -6 + }, +/turf/open/transparent/openspace{ + name = "air"; + sunlight_state = 1 + }, +/area/f13/wasteland) +"Yv" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/purple/corner, +/area/f13/brotherhood/surface) +"Yy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/computer/terminal{ + doc_content_1 = "I think the archivist is pervert! He's always coming up to me during break hours and saying stuff like: 'Can you scoot over' WHILE I'M SITTING DOWN IN AN EMPTY SOFA!"; + doc_title_1 = "October 22, 2077"; + pixel_y = 3; + termtag = "Business" + }, +/obj/structure/table, +/obj/structure/window/spawner/north, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"YA" = ( +/obj/structure/railing{ + color = "#A47449" + }, +/obj/structure/railing{ + color = "#A47449"; + dir = 4 + }, +/turf/open/transparent/openspace{ + name = "air"; + sunlight_state = 1 + }, +/area/f13/building) "YB" = ( /turf/open/floor/f13/wood{ icon_state = "housewood2-broken" }, /area/f13/building) -"YY" = ( -/obj/effect/decal/cleanable/dirt{ - color = "000000" +"YG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/wood/fancy/royalblack, +/obj/item/candle/infinite{ + pixel_x = -4; + pixel_y = 12 }, -/obj/structure/sign/painting/library{ - persistence_id = "oasis_public"; - pixel_x = 32 +/turf/open/floor/f13/wood, +/area/f13/wasteland) +"YH" = ( +/obj/effect/decal/cleanable/glass, +/obj/item/stack/sheet/mineral/wood, +/obj/item/shard{ + icon_state = "medium"; + pixel_x = 6; + pixel_y = 4 }, -/turf/open/floor/carpet/black, +/obj/effect/decal/cleanable/dirt, +/turf/open/indestructible/ground/outside/woodalt, +/area/f13/raiders) +"YM" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/neutral/corner{ + dir = 4 + }, +/area/f13/brotherhood/surface) +"YO" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/carpet, /area/f13/building) - -(1,1,1) = {" +"YP" = ( +/obj/item/reagent_containers/spray/cleaner, +/obj/structure/table, +/obj/item/reagent_containers/spray/cleaner, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/f13/vault_floor/neutral, +/area/f13/brotherhood/surface) +"YS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/floor{ + color = "#FF7F7F"; + critical_machine = 1; + flicker_chance = 0; + light_color = "#FF7F7F"; + nightshift_light_color = "#660000" + }, +/turf/open/floor/plasteel/f13/vault_floor/dark{ + icon_state = "darkrusty"; + name = "grimy tile" + }, +/area/f13/brotherhood/surface) +"YY" = ( +/obj/effect/decal/cleanable/dirt{ + color = "000000" + }, +/obj/structure/sign/painting/library{ + persistence_id = "oasis_public"; + pixel_x = 32 + }, +/turf/open/floor/carpet/black, +/area/f13/building) +"Zb" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood, +/area/f13/raiders) +"Zk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/machinery/computer/terminal{ + doc_content_1 = "Boss told me to bring out the Earnings folder and make sure it's right, I've told him it's right but he asked me to re-do them all again... there goes my weekend."; + doc_title_1 = "Finance Day.."; + pixel_y = 3; + termtag = "Business" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/north, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"ZB" = ( +/obj/structure/bed/dogbed, +/mob/living/simple_animal/hostile/wolf/alpha{ + desc = "The NCR Rangers have been known to employ K9 units from time to time."; + faction = list("neutral"); + name = "Ranger Seth" + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) +"ZM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/barricade/sandbags, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) +"ZQ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/chair/wood, +/turf/open/transparent/openspace{ + name = "air"; + sunlight_state = 1 + }, +/area/f13/wasteland) +"ZS" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/sofa/corp{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/f13/brotherhood/surface) +"ZX" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/spawner/north, +/obj/structure/window/spawner/west, +/obj/item/reagent_containers/food/snacks/breadslice/spidermeat{ + desc = "A slice of meatloaf left out for a while after a nuclear blast, it's probably not safe to eat."; + name = "green.. bread slice?"; + pixel_x = -1; + pixel_y = -2 + }, +/obj/item/reagent_containers/glass/beaker/waterbottle/empty{ + pixel_x = 7; + pixel_y = 7 + }, +/turf/open/floor/f13, +/area/f13/brotherhood/surface) + +(1,1,1) = {" +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al Al Al Al @@ -1544,13 +4167,6 @@ Al Al Al Al -uW -uW -uW -uW -uW -uW -uW Al Al Al @@ -1666,13 +4282,6 @@ Al Al Al Al -uW -uW -uW -uW -uW -uW -uW Al Al Al @@ -1712,11 +4321,6 @@ Al Al Al Al -uW -uW -uW -uW -uW Al Al Al @@ -1750,11 +4354,11 @@ ub ub ub ub -lH -lH -lH -lH -lH +as +as +as +as +as ub ub ub @@ -1785,6 +4389,13 @@ kC kC kC kC +lH +kC +kC +kC +kC +kC +kC kC kC kC @@ -1801,13 +4412,6 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH -lH kC kC kC @@ -1923,13 +4527,6 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH -lH kC kC kC @@ -1955,26 +4552,33 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC kC -lH -lH -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -1992,47 +4596,48 @@ Al (3,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG -Ao -Ao -Ao -Ao -Ao -Ao -Ao -Ao -Ao -Ao -Ao -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC +lH kC kC kC @@ -2044,6 +4649,12 @@ kC kC kC kC +lH +lH +kC +kC +kC +kC kC kC kC @@ -2058,13 +4669,6 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH -lH kC kC kC @@ -2079,11 +4683,11 @@ PL PL PL PL -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -2100,7 +4704,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -2180,13 +4784,6 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH -lH kC kC kC @@ -2212,15 +4809,22 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -2249,44 +4853,44 @@ Al (4,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG -Ao -Ao -Ao -Ao -Ao -Ao -Ao -Ao -Ao -Ao -Ao -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -2312,17 +4916,17 @@ PL kC kC kC +lH +kC +kC +kC +kC +kC +kC +kC kC kC kC -lH -lH -lH -lH -lH -lH -lH -lH PL PL PL @@ -2333,14 +4937,14 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -2357,7 +4961,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -2436,15 +5040,6 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH -lH -lH -lH kC kC kC @@ -2469,15 +5064,24 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC PL @@ -2506,44 +5110,44 @@ Al (5,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG -Ao -Ao -Ao -Ao -Ao -Ao -Ao -Ao -Ao -Ao -Ao -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -2569,7 +5173,7 @@ PL kC kC kC -kC +lH kC kC PL @@ -2590,14 +5194,14 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -2662,8 +5266,8 @@ kC kC kC kC -lH -lH +kC +kC kC kC kC @@ -2726,15 +5330,15 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC PL @@ -2746,11 +5350,11 @@ PL PL PL PL -Gl -Gl -Gl -Gl -Gl +PL +PL +PL +PL +PL kC kC kC @@ -2763,44 +5367,44 @@ Al (6,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG -Ao -Ao -Ao -Ao -Ao -Ao -Ao -Ao -Ao -Ao -Ao -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -2822,11 +5426,11 @@ PL PL PL PL -PL kC kC kC kC +lH kC kC PL @@ -2847,14 +5451,14 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -2870,6 +5474,7 @@ kC kC kC kC +lH kC kC kC @@ -2904,6 +5509,11 @@ kC kC kC kC +lH +kC +kC +kC +kC kC kC kC @@ -2912,15 +5522,9 @@ kC kC kC kC -lH -lH -lH -lH kC kC kC -lH -lH kC kC kC @@ -2980,21 +5584,22 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -hs -hs -hs +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +Wx +Wx +Wx +PL PL PL PL @@ -3003,11 +5608,10 @@ PL PL PL PL -Gl BY BY BY -Gl +PL PL PL kC @@ -3020,44 +5624,44 @@ Al (7,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG -Ao -Ao -Ao -Ao -Ao -Ao -Ao -Ao -Ao -Ao -Ao -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -3079,7 +5683,8 @@ PL PL PL PL -PL +kC +kC kC kC kC @@ -3103,15 +5708,14 @@ PL PL PL PL -PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -3127,6 +5731,7 @@ kC kC kC kC +lH kC kC kC @@ -3136,8 +5741,13 @@ kC kC kC kC +lH +lH +lH kC kC +lH +lH kC kC kC @@ -3156,6 +5766,7 @@ kC kC kC kC +lH kC kC kC @@ -3168,15 +5779,8 @@ kC kC kC kC -lH -lH -lH -lH -lH kC kC -lH -lH kC kC kC @@ -3237,21 +5841,22 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -hs -hs -hs +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +Wx +Wx +Wx +PL PL PL PL @@ -3260,11 +5865,10 @@ PL PL PL PL -Gl BY BY BY -Gl +PL PL PL kC @@ -3277,44 +5881,44 @@ Al (8,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG -Ao -Ao -Ao -Ao -Ao -Ao +CC +CC +CC +CC +CC +CC +CC +CC +CC +PL +PL +PL PL PL PL PL PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -3322,14 +5926,13 @@ kC kC PL PL -EX -EX -EX -EX -EX -EX -EX -PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -3343,6 +5946,8 @@ kC kC kC kC +kC +kC PL PL PL @@ -3360,15 +5965,14 @@ PL PL PL PL -PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -3394,8 +5998,13 @@ kC kC kC kC +lH +lH +lH kC kC +lH +lH kC kC kC @@ -3414,6 +6023,14 @@ kC kC kC kC +lH +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -3424,19 +6041,6 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH kC kC kC @@ -3494,21 +6098,26 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -hs -hs -hs +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +Wx +Wx +Wx +PL +PL +PL +PL +PL PL PL PL @@ -3517,11 +6126,6 @@ PL PL PL PL -Gl -Gl -Gl -Gl -Gl PL PL kC @@ -3534,44 +6138,44 @@ Al (9,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG -Ao -Ao -Ao -Ao -Ao -Ao +CC +CC +CC +CC +CC +CC +CC +CC +CC +PL PL PL PL PL PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -3579,13 +6183,13 @@ kC kC kC PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -3618,14 +6222,14 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -3640,11 +6244,24 @@ kC kC kC kC +lH +lH kC kC kC kC kC +lH +kC +kC +kC +lH +lH +lH +kC +kC +kC +kC kC kC kC @@ -3681,21 +6298,8 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH kC kC -lH -lH -lH kC kC kC @@ -3735,6 +6339,10 @@ kC kC kC kC +lH +lH +lH +lH kC kC kC @@ -3746,27 +6354,28 @@ kC kC kC kC +lH +lH +lH kC kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -hs -hs -hs -hs +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx +PL +PL +PL +PL +PL PL PL PL @@ -3775,11 +6384,6 @@ PL PL PL PL -Gl -Gl -Gl -Gl -Gl PL kC kC @@ -3791,44 +6395,44 @@ Al (10,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG -Ao -Ao -Ao -Ao -Ao -Ao +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +PL +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -3836,13 +6440,14 @@ kC kC kC PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +PL PL PL PL @@ -3851,7 +6456,6 @@ PL PL PL PL -kC kC kC kC @@ -3875,14 +6479,14 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -3918,12 +6522,20 @@ kC kC kC kC +lH kC kC kC kC kC kC +lH +lH +lH +lH +kC +kC +lH kC kC kC @@ -3938,26 +6550,18 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH kC kC kC -lH kC kC kC kC kC +lH +lH +kC +kC kC kC kC @@ -3992,6 +6596,10 @@ kC kC kC kC +lH +lH +lH +lH kC kC kC @@ -4003,27 +6611,24 @@ kC kC kC kC +lH +lH +lH kC kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -hs -hs -hs -hs +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx +PL PL PL PL @@ -4032,11 +6637,10 @@ PL PL PL PL -Gl BY BY BY -Gl +PL PL PL kC @@ -4048,59 +6652,58 @@ Al (11,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG -Ao -Ao -Ao -Ao -Ao -Ao +CC +CC +CC +CC +CC +CC +CC +CC +CC +PL +PL +PL +PL +PL PL PL PL PL PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC +lH kC kC kC -kC -PL -EX -EX -EX -EX -EX -EX -EX PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -4132,14 +6735,15 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -4195,21 +6799,14 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH kC kC kC kC -lH +kC lH kC kC -lH kC kC kC @@ -4218,6 +6815,13 @@ kC kC kC kC +lH +lH +kC +kC +kC +kC +kC kC kC kC @@ -4265,22 +6869,23 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -hs -hs -hs -hs +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx +PL PL PL PL @@ -4289,11 +6894,10 @@ PL PL PL PL -Gl BY BY BY -Gl +PL PL PL kC @@ -4305,44 +6909,44 @@ Al (12,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG -Ao -Ao -Ao -Ao -Ao -Ao +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +PL +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -4350,14 +6954,13 @@ kC kC kC PL -EX -EX -EX -EX -EX -EX -EX -PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -4370,7 +6973,6 @@ kC kC kC kC -kC PL PL PL @@ -4389,22 +6991,24 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -PL -EX -EX -EX -EX -EX -EX -EX +PL +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -4454,22 +7058,22 @@ kC kC kC kC -lH -lH -lH +kC +kC +kC lH kC kC kC kC kC -lH kC kC -lH kC kC kC +lH +lH kC kC kC @@ -4517,27 +7121,32 @@ kC kC kC kC +lH +lH +lH kC kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -hs -hs -hs -hs +kC +kC +kC +kC +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx +PL +PL +PL +PL +PL PL PL PL @@ -4546,11 +7155,6 @@ PL PL PL PL -Gl -Gl -Gl -Gl -Gl PL PL kC @@ -4562,43 +7166,43 @@ Al (13,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG -Ao -Ao -Ao -Ao -Ao -Ao +CC +CC +CC +CC +CC +CC +CC +CC +CC +PL +PL +PL +PL +PL PL PL PL PL PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub ub kC @@ -4607,13 +7211,13 @@ kC kC kC PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -4627,7 +7231,6 @@ kC kC kC kC -kC PL PL PL @@ -4655,13 +7258,14 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -4719,16 +7323,16 @@ kC kC kC kC -lH -lH kC kC -lH -lH kC kC kC kC +lH +lH +kC +kC kC kC kC @@ -4779,22 +7383,22 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -hs -hs -hs -hs +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx PL PL PL @@ -4819,43 +7423,43 @@ Al (14,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG -Ao -Ao -Ao -Ao -Ao -Ao +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +PL +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -4864,13 +7468,13 @@ kC kC kC PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -4884,7 +7488,6 @@ kC kC kC kC -kC PL PL PL @@ -4912,13 +7515,14 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -4933,6 +7537,10 @@ kC kC kC kC +lH +lH +kC +kC kC kC kC @@ -4976,14 +7584,10 @@ kC kC kC kC -lH -lH kC kC lH lH -lH -kC kC kC kC @@ -5036,22 +7640,26 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -hs -hs -hs -hs +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx +PL +PL +PL +PL PL PL PL @@ -5059,10 +7667,6 @@ PL PL PL PL -Gl -Gl -Gl -Gl PL PL PL @@ -5076,13 +7680,13 @@ Al (15,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -5096,23 +7700,23 @@ PL PL PL PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -5121,13 +7725,13 @@ kC kC kC PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -5140,8 +7744,7 @@ kC kC kC kC -kC -kC +lH PL PL PL @@ -5169,16 +7772,17 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC kC @@ -5190,6 +7794,9 @@ kC kC kC kC +lH +lH +kC kC kC kC @@ -5233,8 +7840,6 @@ kC kC kC kC -lH -lH kC kC kC @@ -5249,7 +7854,6 @@ kC kC kC kC -kC PL PL PL @@ -5293,22 +7897,23 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -hs -hs -hs -hs +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx +PL PL PL PL @@ -5316,10 +7921,9 @@ PL PL PL PL -Gl BY BY -Gl +PL PL PL PL @@ -5333,43 +7937,43 @@ Al (16,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -PL -PL -vG -vG -vG -vG -vG -vG -PL -PL -PL -PL -PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +PL +PL +CC +CC +CC +CC +CC +CC +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -5378,13 +7982,13 @@ kC kC kC PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -5408,14 +8012,14 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -5426,21 +8030,21 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -kC +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC kC kC +lH kC kC kC @@ -5497,7 +8101,7 @@ kC kC kC lH -kC +lH kC kC kC @@ -5535,14 +8139,6 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC @@ -5550,22 +8146,31 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -hs -hs -hs -hs +lH +lH +lH +lH +lH +lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx +PL PL PL PL @@ -5573,15 +8178,14 @@ PL PL PL PL -Gl BY BY -Gl PL -Gl -Gl -Gl -Gl +PL +PL +PL +PL +PL kC kC kC @@ -5590,43 +8194,43 @@ Al (17,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -PL -PL -vG -vG -vG -vG -vG -vG -PL -PL -PL -PL -PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +PL +PL +CC +CC +CC +CC +CC +CC +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -5635,13 +8239,13 @@ kC kC PL PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -5665,14 +8269,14 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -5683,16 +8287,21 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +kC +kC +kC +kC +lH kC kC kC @@ -5753,16 +8362,11 @@ kC kC kC kC -lH kC kC kC kC kC -lH -lH -lH -lH PL PL PL @@ -5792,37 +8396,38 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty +kC +lH +lH kC kC kC kC +lH +lH +lH +lH +lH +lH kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -hs -hs -hs -hs +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx +PL PL PL PL @@ -5830,15 +8435,14 @@ PL PL PL PL -Gl BY BY -Gl PL -Gl +PL +PL BY BY -Gl +PL kC kC kC @@ -5847,43 +8451,43 @@ Al (18,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -PL -PL -vG -vG -vG -vG -vG -vG -PL -PL -PL -PL -PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +PL +PL +CC +CC +CC +CC +CC +CC +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -5892,13 +8496,13 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -5913,6 +8517,8 @@ kC kC kC kC +kC +kC PL PL PL @@ -5920,16 +8526,14 @@ PL PL PL PL -PL -PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -5940,16 +8544,16 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC kC @@ -5958,6 +8562,8 @@ kC kC kC kC +lH +lH kC kC kC @@ -5973,6 +8579,9 @@ kC kC kC kC +lH +kC +kC kC kC kC @@ -6010,13 +8619,8 @@ kC kC kC kC -lH -lH -lH kC kC -lH -lH kC kC kC @@ -6045,57 +8649,57 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -hs -hs -hs -hs -PL -PL -PL -PL -PL -PL -PL -Gl -Gl -Gl -Gl -PL -Gl +kC +kC +lH +lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL BY BY -Gl +PL kC kC kC @@ -6104,43 +8708,43 @@ Al (19,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -PL -PL -vG -vG -vG -vG -vG -vG -PL -PL -PL -PL -PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +PL +PL +CC +CC +CC +CC +CC +CC +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -6149,14 +8753,13 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -6170,6 +8773,9 @@ kC kC kC kC +kC +kC +kC PL PL PL @@ -6177,16 +8783,14 @@ PL PL PL PL -PL -PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -6197,16 +8801,16 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC kC @@ -6215,6 +8819,10 @@ kC kC kC kC +lH +kC +kC +kC kC kC kC @@ -6269,10 +8877,6 @@ kC kC kC kC -lH -lH -lH -lH kC kC kC @@ -6302,37 +8906,38 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty +kC +kC +lH +lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +PL PL PL PL @@ -6349,10 +8954,9 @@ PL PL PL PL -Gl BY BY -Gl +PL kC kC kC @@ -6361,43 +8965,43 @@ Al (20,1,1) = {" Al ub -vG -vG -vG -vG +CC +CC +CC +CC PL PL PL PL PL -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC PL PL PL PL PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -6406,14 +9010,13 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -6427,6 +9030,8 @@ kC kC kC kC +kC +kC PL PL PL @@ -6435,14 +9040,13 @@ PL PL PL PL -PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -6454,18 +9058,16 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -kC -kC +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC kC @@ -6480,6 +9082,7 @@ kC kC kC kC +lH kC kC kC @@ -6522,6 +9125,7 @@ kC kC kC kC +lH kC kC kC @@ -6559,38 +9163,42 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +PL +PL +PL +PL PL PL PL @@ -6606,10 +9214,6 @@ PL PL PL PL -Gl -Gl -Gl -Gl kC kC kC @@ -6618,58 +9222,58 @@ Al (21,1,1) = {" Al ub -vG -vG -vG -vG +CC +CC +CC +CC PL PL PL PL PL -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC PL PL PL PL PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC -kC +lH kC PL PL PL PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -6693,13 +9297,13 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -6740,6 +9344,8 @@ kC kC kC kC +lH +lH kC kC kC @@ -6776,9 +9382,7 @@ kC kC kC kC -kC -kC -kC +lH kC kC kC @@ -6816,38 +9420,38 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC -Ty -Ty -Ty -Ty +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC PL PL PL @@ -6875,43 +9479,43 @@ Al (22,1,1) = {" Al ub -vG -vG -vG -vG +CC +CC +CC +CC PL PL PL PL PL -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC PL PL PL PL PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -6920,18 +9524,18 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -PL -PL -PL -PL -PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +PL +PL +PL +PL +PL PL PL PL @@ -6950,13 +9554,13 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -6997,8 +9601,8 @@ kC kC kC kC -kC -kC +lH +lH kC kC kC @@ -7059,7 +9663,7 @@ PL PL PL PL -kC +eU PL PL PL @@ -7071,40 +9675,40 @@ PL PL kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC -Ty -Ty -Ty -Ty -Ty -Ty +lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC -Ty -Ty -Ty -Ty PL PL PL @@ -7117,10 +9721,10 @@ PL PL PL PL -Gl -Gl -Gl -Gl +PL +PL +PL +PL PL PL PL @@ -7132,43 +9736,43 @@ Al (23,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -PL -PL -vG -vG -vG -vG -vG -vG -PL -PL -PL -PL -PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +PL +PL +CC +CC +CC +CC +CC +CC +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -7177,13 +9781,13 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -7207,14 +9811,16 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +PL +PL PL PL PL @@ -7227,8 +9833,6 @@ PL PL PL PL -qd -qd PL PL PL @@ -7315,9 +9919,9 @@ PL PL PL PL -kC -kC -kC +eU +eU +eU PL PL PL @@ -7328,40 +9932,41 @@ PL PL kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC -eU -eU -eU -eU -eU -eU -eU kC -Ty -Ty -Ty -Ty -Ty +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +PL PL PL PL @@ -7374,10 +9979,9 @@ PL PL PL PL -Gl BY BY -Gl +PL PL PL kC @@ -7389,43 +9993,43 @@ Al (24,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -PL -PL -vG -vG -vG -vG -vG -vG -PL -PL -PL -PL -PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +PL +PL +CC +CC +CC +CC +CC +CC +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -7452,7 +10056,7 @@ PL kC kC kC -kC +lH kC kC PL @@ -7464,14 +10068,16 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +PL +PL PL PL PL @@ -7483,8 +10089,6 @@ PL PL PL PL -qd -qd PL PL PL @@ -7498,6 +10102,7 @@ kC kC kC kC +lH kC kC kC @@ -7516,6 +10121,7 @@ kC kC kC kC +lH kC kC kC @@ -7530,10 +10136,8 @@ kC kC kC kC -kC -kC -kC -kC +lH +lH kC kC kC @@ -7571,11 +10175,11 @@ PL PL PL PL -kC -kC -kC -kC -kC +eU +eU +eU +eU +eU PL PL PL @@ -7585,38 +10189,38 @@ PL PL kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC -eU -eU -eU -eU -eU -eU -eU kC kC -Ty -Ty +kC +kC +kC +lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +lH +kC +kC +kC +kC kC kC PL @@ -7631,10 +10235,10 @@ PL PL PL PL -Gl +PL BY BY -Gl +PL PL PL kC @@ -7646,13 +10250,13 @@ Al (25,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -7666,23 +10270,23 @@ PL PL PL PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -7706,11 +10310,11 @@ PL PL PL PL +PL kC kC -kC -kC -kC +lH +lH kC PL PL @@ -7721,14 +10325,16 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +PL +PL PL PL PL @@ -7740,8 +10346,6 @@ PL PL PL PL -qd -qd PL PL kC @@ -7755,6 +10359,7 @@ kC kC kC kC +lH kC kC kC @@ -7788,6 +10393,8 @@ kC kC kC kC +lH +lH kC kC kC @@ -7797,10 +10404,7 @@ kC kC kC kC -kC -kC -kC -kC +lH kC kC kC @@ -7828,11 +10432,11 @@ PL PL PL PL -kC -kC -kC -kC -kC +eU +eU +eU +eU +eU PL PL PL @@ -7842,34 +10446,34 @@ PL PL kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC -eU -eU -eU -eU -eU -eU -eU +kC +kC +kC +kC +kC +kC +kC +kC +kC +lH +lH +lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +lH kC kC kC @@ -7888,10 +10492,10 @@ PL PL PL PL -Gl +PL BY BY -Gl +PL PL PL kC @@ -7903,15 +10507,14 @@ Al (26,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -PL -PL +CC +CC +CC +CC +CC +CC +CC +PL PL PL PL @@ -7923,23 +10526,24 @@ PL PL PL PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -7963,7 +10567,7 @@ PL PL PL PL -kC +PL kC kC kC @@ -7978,12 +10582,13 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +PL PL PL PL @@ -7997,7 +10602,6 @@ PL PL PL PL -qd PL PL PL @@ -8010,6 +10614,21 @@ kC kC kC kC +lH +lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -8056,21 +10675,6 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC @@ -8085,11 +10689,11 @@ PL PL PL PL -kC -kC -kC -kC -kC +eU +eU +eU +eU +eU PL PL PL @@ -8099,34 +10703,34 @@ PL PL kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC -eU -eU -eU -eU -eU -eU -eU +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -8145,10 +10749,10 @@ PL PL PL PL -Gl -Gl -Gl -Gl +PL +PL +PL +PL PL PL kC @@ -8160,13 +10764,13 @@ Al (27,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -8180,20 +10784,20 @@ PL PL PL PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub ub ub @@ -8235,12 +10839,12 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -8267,6 +10871,28 @@ kC kC kC kC +lH +lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -8306,28 +10932,6 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC @@ -8343,9 +10947,9 @@ PL PL PL PL -kC -kC -kC +eU +eU +eU PL PL PL @@ -8356,34 +10960,34 @@ PL PL kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC -eU -eU -eU -eU -eU -eU -eU +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +lH +lH +lH +lH +kC +kC +kC +kC +kC kC kC kC @@ -8417,13 +11021,13 @@ Al (28,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -8444,13 +11048,13 @@ PL PL PL PL -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -8476,7 +11080,7 @@ PL PL PL PL -PL +kC kC kC kC @@ -8492,12 +11096,12 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -8557,34 +11161,34 @@ kC kC kC kC +lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +lH +lH +lH +lH kC kC kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC PL @@ -8600,9 +11204,9 @@ PL PL PL PL -kC -kC -kC +eU +eU +eU PL PL PL @@ -8613,34 +11217,34 @@ PL PL kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC -eU -eU -eU -eU -eU -eU -eU +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +lH +lH +lH +lH +kC +kC +kC +kC +kC kC kC kC @@ -8660,29 +11264,29 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC Al "} (29,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -8701,13 +11305,13 @@ PL PL PL PL -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -8732,8 +11336,7 @@ PL PL PL PL -PL -PL +kC kC kC kC @@ -8756,7 +11359,8 @@ PL PL PL PL -as +PL +PL PL PL PL @@ -8780,8 +11384,8 @@ kC kC kC kC -kC -kC +lH +lH kC kC kC @@ -8805,6 +11409,9 @@ kC kC kC kC +lH +lH +kC kC kC kC @@ -8820,28 +11427,25 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty +kC +kC +kC +kC +kC +kC +kC +kC +kC +lH +lH +lH +lH +kC +kC +kC +kC +kC +kC kC kC PL @@ -8858,7 +11462,7 @@ PL PL PL PL -kC +eU al PL PL @@ -8870,37 +11474,37 @@ PL PL kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC -eU -eU -eU -eU -eU -eU -eU -eU -eU -eU +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -8914,32 +11518,32 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC Al "} (30,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -8958,13 +11562,13 @@ PL PL PL PL -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -8989,8 +11593,7 @@ PL PL PL PL -PL -PL +kC kC kC kC @@ -9011,9 +11614,10 @@ PL PL PL PL -as -as -as +PL +PL +PL +PL PL PL PL @@ -9037,8 +11641,8 @@ kC kC kC kC -kC -kC +lH +lH kC kC kC @@ -9062,6 +11666,11 @@ kC kC kC kC +lH +lH +kC +kC +kC kC kC kC @@ -9077,28 +11686,23 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty +kC +kC +kC +kC +kC +kC +kC +lH +lH +lH +lH +kC +kC +kC +kC +kC +kC kC kC PL @@ -9129,41 +11733,41 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC -eU -eU -eU -eU -eU -eU -eU -eU -eU -eU kC kC -Ty -Ty -hs -hs +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +lH +lH +lH +kC +kC +kC +kC +kC +kC +kC +Wx +Wx PL PL PL @@ -9171,32 +11775,32 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC Al "} (31,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -9215,12 +11819,12 @@ PL PL PL PL -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC ub ub kC @@ -9247,7 +11851,6 @@ PL PL PL PL -PL kC kC kC @@ -9282,6 +11885,7 @@ PL PL PL PL +PL kC kC kC @@ -9321,6 +11925,9 @@ kC kC kC kC +lH +lH +lH kC kC kC @@ -9334,35 +11941,32 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC -md -md -md -md -md -md +kC +kC +kC +kC +kC +kC +kC +kC +lH +lH +lH +lH +kC +lH +kC +kC +kC +kC +kC +CC +CC +CC +CC +CC +CC PL PL PL @@ -9386,41 +11990,41 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC -eU -eU -eU -eU -eU -eU -eU -eU -eU -eU kC kC -Ty -Ty -hs -hs +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +lH +lH +lH +kC +kC +kC +kC +kC +kC +kC +Wx +Wx PL PL PL @@ -9428,32 +12032,32 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC Al "} (32,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -9472,12 +12076,12 @@ PL PL PL PL -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC ub kC kC @@ -9505,12 +12109,12 @@ PL PL PL PL +PL kC kC kC -kC -kC -kC +PL +PL PL PL PL @@ -9578,6 +12182,9 @@ kC kC kC kC +lH +lH +lH kC kC kC @@ -9591,35 +12198,32 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC -md -md -md -md -md -md +kC +kC +kC +kC +kC +kC +kC +kC +lH +lH +lH +lH +kC +kC +kC +kC +kC +kC +kC +CC +CC +CC +CC +CC +CC PL PL PL @@ -9643,99 +12247,16 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC -eU -eU -eU -eU -eU -eU -eU -eU -eU -eU kC kC -Ty -Ty -hs -hs -PL -PL -PL -PL -PL -PL -PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs kC -Al -"} -(33,1,1) = {" -Al -ub -vG -vG -vG -vG -vG -vG -vG -vG -vG -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -vG -vG -vG -vG -vG -vG -ub kC kC kC @@ -9746,6 +12267,54 @@ kC kC kC kC +kC +kC +kC +lH +lH +lH +kC +kC +kC +kC +kC +kC +kC +Wx +Wx +PL +PL +PL +PL +PL +PL +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +kC +Al +"} +(33,1,1) = {" +Al +ub +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -9761,13 +12330,48 @@ PL PL PL PL -PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +ub +kC +kC +kC +kC +kC +kC kC kC kC kC +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +kC +lH kC kC +kC +PL PL PL PL @@ -9816,7 +12420,7 @@ kC kC kC kC -PL +kC kC kC kC @@ -9848,35 +12452,35 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC -md -md -md -md -md -md +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +CC +CC +CC +CC +CC +CC PL PL PL @@ -9900,9 +12504,6 @@ kC kC kC kC -Ty -Ty -Ty kC kC kC @@ -9913,9 +12514,6 @@ kC kC kC kC -Ty -Ty -Ty kC kC kC @@ -9923,18 +12521,24 @@ kC kC kC kC -eU -eU -eU kC kC kC kC kC -Ty -Ty -hs -hs +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +Wx +Wx PL PL PL @@ -9942,32 +12546,32 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC Al "} (34,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -9986,12 +12590,12 @@ PL PL PL PL -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC ub kC kC @@ -10024,7 +12628,7 @@ kC kC kC kC -kC +PL PL PL PL @@ -10061,7 +12665,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -10097,6 +12701,8 @@ kC kC kC kC +lH +lH kC kC kC @@ -10105,35 +12711,33 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC -md -md -md -md -md -md +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +CC +CC +CC +CC +CC +CC PL PL PL @@ -10180,18 +12784,18 @@ kC kC kC kC -eU -eU -eU -eU -eU -eU -eU kC -Ty -Ty -hs -hs +kC +kC +kC +kC +kC +kC +kC +kC +kC +Wx +Wx PL PL PL @@ -10199,32 +12803,32 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC Al "} (35,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -10243,12 +12847,12 @@ PL PL PL PL -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC ub kC kC @@ -10261,13 +12865,13 @@ kC kC kC kC -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -10282,8 +12886,8 @@ kC kC kC kC -PL -PL +kC +kC PL PL PL @@ -10335,8 +12939,8 @@ PL PL PL PL -rf -NP +PL +BY PL PL PL @@ -10362,35 +12966,35 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty +lH +lH +lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC PL -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC PL PL PL @@ -10437,18 +13041,18 @@ kC kC kC kC -eU -eU -eU -eU -eU -eU -eU kC -Ty -Ty -hs -hs +kC +kC +kC +kC +kC +kC +kC +kC +kC +Wx +Wx PL PL PL @@ -10456,32 +13060,32 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC Al "} (36,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -10494,18 +13098,18 @@ PL PL PL PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -10514,18 +13118,17 @@ kC kC kC kC +lH kC kC kC -kC -EX -EX -EX -EX -EX -EX -EX -PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -10539,7 +13142,8 @@ kC kC kC kC -PL +kC +kC PL PL PL @@ -10592,8 +13196,8 @@ PL PL PL PL -rf -NP +PL +BY PL PL PL @@ -10619,28 +13223,28 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty +lH +lH +lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC PL PL PL @@ -10694,18 +13298,18 @@ kC kC kC kC -eU -eU -eU -eU -eU -eU -eU kC -Ty -Ty -hs -hs +kC +kC +kC +kC +kC +kC +kC +kC +kC +Wx +Wx PL PL PL @@ -10713,16 +13317,16 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC Al @@ -10730,15 +13334,15 @@ Al (37,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -10751,38 +13355,37 @@ PL PL PL PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC +lH +lH kC +lH +lH kC +lH kC kC kC -kC -kC -kC -kC -kC -EX -EX -EX -EX -EX -EX -EX -PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -10796,6 +13399,7 @@ kC kC kC kC +kC PL PL PL @@ -10839,18 +13443,18 @@ kC kC kC PL -rf -rf -rf -rf -rf PL PL PL PL PL -rf -NP +PL +PL +PL +PL +PL +PL +BY PL PL PL @@ -10876,28 +13480,28 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC PL PL PL @@ -10951,18 +13555,18 @@ kC kC kC kC -eU -eU -eU -eU -eU -eU -eU kC -Ty -Ty -hs -hs +kC +kC +kC +kC +kC +kC +kC +kC +kC +Wx +Wx PL PL PL @@ -10970,16 +13574,16 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC Al @@ -10987,15 +13591,15 @@ Al (38,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -11008,38 +13612,37 @@ PL PL PL PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC kC kC +lH +lH kC +lH kC kC kC -kC -kC -kC -EX -EX -EX -EX -EX -EX -EX -PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -11053,6 +13656,7 @@ kC kC kC kC +kC PL PL PL @@ -11096,11 +13700,11 @@ kC kC kC PL -rf -NP -NP -NP -rf +PL +BY +BY +BY +PL PL PL PL @@ -11133,28 +13737,28 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty +kC +kC +kC +kC +kC +kC +kC +lH +lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC PL PL PL @@ -11208,18 +13812,18 @@ kC kC kC kC -eU -eU -eU -eU -eU -eU -eU kC -Ty -Ty -hs -hs +kC +kC +kC +kC +kC +kC +kC +kC +kC +Wx +Wx PL PL PL @@ -11227,16 +13831,16 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC Al @@ -11244,15 +13848,15 @@ Al (39,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -11265,18 +13869,18 @@ PL PL PL PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -11289,15 +13893,13 @@ kC kC kC kC -EX -EX -EX -EX -EX -EX -EX -PL -PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -11310,6 +13912,8 @@ kC kC kC kC +kC +kC PL PL PL @@ -11353,11 +13957,11 @@ kC kC kC PL -rf -NP -NP -NP -rf +PL +BY +BY +BY +PL PL PL PL @@ -11390,28 +13994,28 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty +kC +kC +kC +kC +kC +kC +kC +lH +lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC PL PL PL @@ -11456,13 +14060,13 @@ PL PL PL PL -lm -lm -lm -lm -lm -lm -lm +CC +CC +CC +CC +CC +Cj +Cj kC kC kC @@ -11484,16 +14088,16 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC Al @@ -11501,15 +14105,15 @@ Al (40,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -11522,18 +14126,18 @@ PL PL PL PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -11546,15 +14150,13 @@ kC kC kC kC -EX -EX -EX -EX -EX -EX -EX -PL -PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -11565,6 +14167,8 @@ kC kC kC kC +lH +kC kC kC PL @@ -11600,8 +14204,8 @@ kC kC kC kC -kC -kC +lH +lH kC kC kC @@ -11610,11 +14214,11 @@ kC kC kC PL -rf -NP -NP -NP -rf +PL +BY +BY +BY +PL PL PL PL @@ -11647,28 +14251,28 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty +kC +kC +kC +lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC PL PL PL @@ -11710,30 +14314,30 @@ PL PL PL PL -lm -lm -lm -lm -lm -lm -lm -lm -lm +CC +CC +CC +CC +CC +CC +CC +CC +Cj kC kC kC kC kC kC -Ty -Ty -Ty -Ty -Ty -hs -hs -hs -hs +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx PL PL PL @@ -11742,15 +14346,15 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC Al @@ -11758,15 +14362,15 @@ Al (41,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -11779,18 +14383,18 @@ PL PL PL PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -11803,13 +14407,13 @@ kC kC kC kC -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -11820,7 +14424,7 @@ PL PL kC kC -kC +lH kC kC kC @@ -11865,13 +14469,13 @@ kC kC kC kC -kC PL -rf -rf -rf -rf -rf +PL +PL +PL +PL +PL +PL PL PL PL @@ -11904,20 +14508,20 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -11967,30 +14571,30 @@ PL PL PL PL -lm -lm -lm -lm -lm -lm -lm -lm -lm +CC +CC +CC +CC +CC +CC +CC +CC +Cj kC kC kC kC kC kC -Ty -Ty -Ty -Ty -Ty -hs -hs -hs -hs +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx PL PL PL @@ -11999,15 +14603,15 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC Al @@ -12015,15 +14619,15 @@ Al (42,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -12036,18 +14640,18 @@ PL PL PL PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -12060,13 +14664,13 @@ kC kC kC kC -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -12081,6 +14685,7 @@ kC kC kC kC +kC PL PL PL @@ -12106,8 +14711,6 @@ PL PL PL PL -PL -kC kC kC kC @@ -12149,6 +14752,14 @@ PL PL PL PL +PL +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -12168,13 +14779,6 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC @@ -12224,30 +14828,30 @@ PL PL PL PL -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm +CC +CC +CC +CC +CC +CC +CC +CC +Cj +Cj kC kC kC kC kC -Ty -Ty -Ty -Ty -Ty -hs -hs -hs -hs +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx PL PL PL @@ -12260,11 +14864,11 @@ PL PL PL kC -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx kC kC Al @@ -12272,15 +14876,15 @@ Al (43,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -12293,18 +14897,18 @@ PL PL PL PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC @@ -12317,13 +14921,13 @@ kC kC kC kC -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -12379,16 +14983,16 @@ kC kC kC kC -kC +Tk +Tk +Tk +ja +PL +PL PL PL PL PL -rf -rf -rf -rf -rf PL PL PL @@ -12410,6 +15014,7 @@ kC kC kC kC +lH kC kC kC @@ -12420,18 +15025,17 @@ kC kC kC kC +lH +lH +kC +kC +kC +kC kC kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC @@ -12478,33 +15082,33 @@ PL PL PL PL -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +Cj +Cj kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -hs -hs -hs -hs +kC +kC +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx PL PL PL @@ -12529,15 +15133,15 @@ Al (44,1,1) = {" Al ub -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -12550,37 +15154,37 @@ PL PL PL PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC kC kC kC +lH kC kC kC kC kC -kC -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -12592,6 +15196,7 @@ PL kC kC kC +lH kC kC kC @@ -12621,7 +15226,6 @@ PL PL PL PL -PL kC kC kC @@ -12636,16 +15240,16 @@ kC kC kC kC -kC -PL +Tk +Tk +Bw +Tk PL PL +BY +BY +BY PL -rf -NP -NP -NP -rf PL PL PL @@ -12682,13 +15286,13 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty +kC +kC +kC +kC +kC +kC +kC kC kC PL @@ -12735,33 +15339,33 @@ PL PL PL PL -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +Cj +Cj kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -hs -hs -hs -hs +kC +kC +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx PL PL PL @@ -12807,37 +15411,37 @@ PL PL PL PL -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ub kC kC kC kC kC +lH kC kC kC kC kC -kC -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -12849,7 +15453,7 @@ PL kC kC kC -kC +lH kC kC PL @@ -12887,22 +15491,22 @@ kC kC kC kC -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl +YG +Tk +dJ +Tk +Tk +dJ +Tk +Tk +NA +Tk +PL +PL +BY +BY +BY PL -rf -NP -NP -NP -rf PL PL PL @@ -12939,13 +15543,13 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty +kC +kC +kC +kC +kC +kC +kC kC kC PL @@ -12962,13 +15566,13 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL al @@ -12992,33 +15596,33 @@ PL PL PL PL -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +Cj +Cj kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -hs -hs -hs -hs +kC +kC +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx PL PL PL @@ -13072,10 +15676,10 @@ PL PL PL PL -Ao -Ao -Ao -Ao +PL +PL +PL +PL ub kC kC @@ -13088,14 +15692,13 @@ kC kC kC PL -EX -EX -EX -EX -EX -EX -EX -PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -13107,7 +15710,7 @@ kC kC kC kC -kC +lH kC PL PL @@ -13124,15 +15727,16 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -13144,22 +15748,22 @@ kC kC kC kC -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl +iW +Tk +Tk +Tk +Tk +Tk +Tk +ul +xQ +Tk +PL +PL +BY +BY +BY PL -rf -NP -NP -NP -rf PL PL PL @@ -13187,7 +15791,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -13219,12 +15823,12 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -13249,33 +15853,33 @@ PL PL PL PL -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +Cj +Cj kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -hs -hs -hs -hs +kC +kC +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx PL PL PL @@ -13300,10 +15904,17 @@ Al (47,1,1) = {" Al ub -zY -zY -zY -zY +Wx +Wx +Wx +Wx +PL +PL +PL +PL +PL +PL +PL PL PL PL @@ -13315,9 +15926,6 @@ PL PL PL PL -Ao -Ao -Ao PL PL PL @@ -13329,10 +15937,6 @@ PL PL PL PL -Ao -Ao -Ao -Ao ub kC kC @@ -13359,7 +15963,6 @@ PL PL PL PL -PL kC kC kC @@ -13381,15 +15984,16 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -13401,22 +16005,22 @@ kC kC kC kC -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl +wx +Tk +Uv +Tk +Tk +Uv +Tk +Tk +xQ +Tk +PL +PL +PL +PL +PL PL -rf -rf -rf -rf -rf PL PL PL @@ -13449,11 +16053,11 @@ kC kC kC kC -Ts -Ts -Ts -Ts -Ts +kC +kC +kC +kC +kC kC kC kC @@ -13476,12 +16080,12 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -13496,38 +16100,38 @@ PL PL PL PL -Pl -Pl -Pl -Pl +Wx +Wx +Wx +Wx PL PL PL PL PL PL -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +Cj +Cj +kC +kC +kC +kC +kC +kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty kC PL PL @@ -13557,10 +16161,11 @@ Al (48,1,1) = {" Al ub -zY -zY -zY -zY +Wx +Wx +Wx +Wx +PL PL PL PL @@ -13571,11 +16176,9 @@ PL PL PL PL -Ao Jd Jd Jd -Ao PL PL PL @@ -13586,10 +16189,11 @@ PL PL PL PL -Ao -Ao -Ao -Ao +PL +PL +PL +PL +PL ub kC kC @@ -13616,10 +16220,9 @@ PL PL PL PL -PL -kC kC kC +lH kC kC kC @@ -13638,15 +16241,16 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -13655,19 +16259,19 @@ kC kC kC kC -kC -kC -kC -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl +oM +oM +oM +xt +Pt +Bl +sM +xt +ip +Tk +Tk +Bm +Tk PL PL PL @@ -13706,13 +16310,13 @@ kC kC kC kC -Ts -Ts -Ts -Ts -Ts -Ts -Ts +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -13733,12 +16337,12 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -13752,30 +16356,30 @@ PL PL PL PL -Pl -Pl -Pl -Pl -Pl -Pl +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +Cj +Cj kC kC kC @@ -13814,10 +16418,11 @@ Al (49,1,1) = {" Al ub -zY -zY -zY -zY +Wx +Wx +Wx +Wx +PL PL PL PL @@ -13828,11 +16433,9 @@ PL PL PL PL -Ao Jd Jd Jd -Ao PL PL PL @@ -13843,10 +16446,11 @@ PL PL PL PL -Ao -Ao -Ao -Ao +PL +PL +PL +PL +PL ub kC kC @@ -13895,15 +16499,15 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -13912,19 +16516,19 @@ kC kC kC kC -kC -kC -kC -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl +oM +KI +vX +Gj +oc +Zb +iC +Cp +cp +Tk +Tk +Tk +Tk PL PL PL @@ -13956,6 +16560,9 @@ kC kC kC kC +lH +kC +kC kC kC kC @@ -13963,13 +16570,6 @@ kC kC kC kC -Ts -Ts -Ts -Ts -Ts -Ts -Ts kC kC kC @@ -13977,6 +16577,10 @@ kC kC kC kC +lH +kC +kC +kC kC kC PL @@ -13990,12 +16594,12 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -14009,30 +16613,30 @@ PL PL PL PL -Pl -Pl -Pl -Pl -Pl -Pl +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +Cj +Cj kC kC kC @@ -14071,10 +16675,11 @@ Al (50,1,1) = {" Al ub -zY -zY -zY -zY +Wx +Wx +Wx +Wx +PL PL PL PL @@ -14085,11 +16690,9 @@ PL PL PL PL -Ao Jd Jd Jd -Ao PL PL PL @@ -14100,10 +16703,11 @@ PL PL PL PL -Ao -Ao -Ao -Ao +PL +PL +PL +PL +PL ub kC kC @@ -14130,7 +16734,7 @@ PL PL PL PL -PL +kC kC kC kC @@ -14152,15 +16756,15 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -14169,19 +16773,24 @@ kC kC kC kC -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl +oM +Ra +DU +sR +yx +Zb +Zb +Gv +qo +Tk +Op +Tk +Tk +PL +PL +PL +PL +PL PL PL PL @@ -14190,11 +16799,6 @@ PL PL PL PL -rf -rf -rf -rf -rf PL PL PL @@ -14220,13 +16824,13 @@ kC kC kC kC -Ts -Ts -Ts -Ts -Ts -Ts -Ts +kC +lH +kC +kC +kC +kC +kC kC kC kC @@ -14247,16 +16851,16 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL -hs +Wx PL PL PL @@ -14266,30 +16870,30 @@ PL PL PL PL -Pl -Pl -Pl -Pl -Pl -Pl +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC kC kC kC @@ -14328,10 +16932,14 @@ Al (51,1,1) = {" Al ub -zY -zY -zY -zY +Wx +Wx +Wx +Wx +PL +PL +PL +PL PL PL PL @@ -14357,10 +16965,6 @@ PL PL PL PL -Ao -Ao -Ao -Ao ub kC kC @@ -14387,10 +16991,10 @@ PL PL PL PL -PL kC kC kC +PL kC kC kC @@ -14409,13 +17013,13 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -14426,19 +17030,19 @@ kC kC kC kC -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl +oM +Zb +CJ +AH +Tf +Zb +Zb +no +xt +Tk +Tk +Tk +ja PL PL PL @@ -14447,11 +17051,11 @@ PL PL PL PL -rf -NP -NP -NP -rf +PL +BY +BY +BY +BY PL PL PL @@ -14477,13 +17081,13 @@ kC kC kC kC -Ts -Ts -Ts -Ts -Ts -Ts -Ts +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -14504,16 +17108,16 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -14523,27 +17127,27 @@ PL PL PL PL -Pl -Pl -Pl -Pl -Pl -Pl +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC kC kC kC @@ -14585,10 +17189,14 @@ Al (52,1,1) = {" Al ub -zY -zY -zY -zY +Wx +Wx +Wx +Wx +PL +PL +PL +PL PL PL PL @@ -14614,10 +17222,6 @@ PL PL PL PL -Ao -Ao -Ao -Ao ub kC kC @@ -14643,12 +17247,12 @@ PL PL PL PL -PL -PL kC kC kC kC +PL +PL kC kC PL @@ -14666,13 +17270,13 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -14683,15 +17287,15 @@ kC kC kC kC -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl +Vs +Zb +Zb +Zb +eu +Zb +Er +Zb +qD PL PL PL @@ -14704,11 +17308,11 @@ PL PL PL PL -rf -NP -NP -NP -rf +PL +BY +BY +BY +BY PL PL PL @@ -14734,13 +17338,13 @@ kC kC kC kC -Ts -Ts -Ts -Ts -Ts -Ts -Ts +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -14761,16 +17365,16 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -14781,34 +17385,34 @@ PL PL PL PL -Pl -Pl -Pl -Pl -Pl +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -kC -kC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC kC kC kC kC kC kC +lH +lH kC kC kC @@ -14900,11 +17504,11 @@ PL PL PL PL -PL -PL -kC kC kC +PL +PL +PL kC kC kC @@ -14923,12 +17527,12 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -14940,15 +17544,15 @@ kC kC kC kC -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl +oM +Zb +Gv +Zb +CJ +Zb +Zb +Zb +qD PL PL PL @@ -14961,11 +17565,11 @@ PL PL PL PL -rf -NP -NP -NP -rf +PL +BY +BY +BY +BY PL PL PL @@ -14991,17 +17595,17 @@ kC kC kC kC -Ts -Ts -Ts -Ts -Ts -Ts -Ts -Ts -Ts -Ts -Ts +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -15018,16 +17622,16 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -15064,18 +17668,18 @@ kC kC kC kC +lH +lH kC kC kC kC -kC -kC -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -15117,11 +17721,11 @@ PL PL PL PL -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC PL PL PL @@ -15180,10 +17784,10 @@ PL PL PL PL -EX -EX -EX -EX +Wx +Wx +Wx +Wx PL PL PL @@ -15197,15 +17801,15 @@ kC kC kC kC -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl +oM +MS +qC +NB +Zb +Zb +Zb +Zb +Uu PL PL PL @@ -15218,11 +17822,11 @@ PL PL PL PL -rf -NP -NP -NP -rf +PL +BY +BY +BY +BY PL PL PL @@ -15248,17 +17852,17 @@ kC kC kC kC -Ts -Ts -Ts -Ts -Ts -Ts -Ts -Ts -Ts -Ts -Ts +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -15275,16 +17879,16 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -15327,12 +17931,12 @@ kC kC kC kC -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -15374,11 +17978,11 @@ PL PL PL PL -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC PL PL PL @@ -15437,10 +18041,10 @@ PL PL PL PL -EX -EX -EX -EX +Wx +Wx +Wx +Wx PL PL PL @@ -15454,15 +18058,20 @@ kC kC kC kC -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl -Sl +oM +oM +oM +oM +oM +LI +YH +Xv +wf +PL +PL +PL +PL +PL PL PL PL @@ -15475,11 +18084,6 @@ PL PL PL PL -rf -rf -rf -rf -rf kC kC kC @@ -15505,17 +18109,17 @@ kC kC kC kC -Ts -Ts -Ts -Ts -Ts -Ts -Ts -Ts -Ts -Ts -Ts +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -15532,16 +18136,16 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -15584,12 +18188,12 @@ kC kC kC kC -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -15631,11 +18235,11 @@ PL PL PL PL -vG -vG -vG -vG -vG +CC +CC +CC +CC +CC PL PL PL @@ -15716,6 +18320,8 @@ kC kC kC kC +Gl +Gl PL PL PL @@ -15730,20 +18336,18 @@ PL PL PL PL -PL -PL -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC +AM +AM +AM +AM +AM +AM +AM +AM +Ih +AM +AM +AM PL PL PL @@ -15759,21 +18363,21 @@ kC kC kC kC -Ts -Ts -Ts -Ts -Ts -Ts -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj +kC +lH +kC +kC +kC +kC +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -15790,15 +18394,15 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -15811,19 +18415,18 @@ PL PL PL PL -md -md +CC +CC PL PL -md -md +CC +CC PL -md -md -md -md -md -kC +CC +CC +CC +CC +CC kC kC kC @@ -15835,18 +18438,19 @@ kC kC kC kC +lH kC kC kC kC kC kC -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -15973,9 +18577,9 @@ kC kC kC kC -Sl -Sl -Sl +GX +GX +jI PL PL PL @@ -15989,18 +18593,18 @@ PL PL PL PL +AM kC kC +AM +gT +AM kC kC kC -kC -kC -kC -kC -kC -kC -kC +AM +AM +AM PL PL PL @@ -16016,21 +18620,21 @@ kC kC kC kC -Ts -Ts -Ts -Ts -Ts -Ts -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj +kC +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -16047,15 +18651,15 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -16069,18 +18673,17 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -kC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC kC kC kC @@ -16092,18 +18695,19 @@ kC kC kC kC +lH kC kC kC kC kC kC -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -16228,11 +18832,11 @@ kC kC kC kC -kC -kC -Sl -Sl -Sl +AM +AM +GX +GX +st PL PL PL @@ -16244,20 +18848,20 @@ PL PL PL PL +Gl +Gl +AM kC kC +mn +Ne +pu kC kC kC -kC -kC -kC -kC -kC -kC -kC -kC -kC +AM +AM +gT PL PL PL @@ -16273,21 +18877,21 @@ kC kC kC kC -Ts -Ts -Ts -Ts -Ts -Ts -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj +kC +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -16304,15 +18908,15 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -16325,27 +18929,27 @@ PL PL PL PL -md -md -md -Gl -md -md -md -md -md -Gl -Gl -md -kC -kC -kC +CC +CC +CC +PL +CC +CC +CC +CC +CC +PL +PL +CC kC kC kC kC kC kC +lH +lH +lH kC kC kC @@ -16355,12 +18959,12 @@ kC kC kC kC -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -16484,12 +19088,12 @@ kC kC kC kC -kC -kC -kC -Sl -Sl -Sl +gT +AM +AM +GX +GX +jI PL PL PL @@ -16501,19 +19105,19 @@ PL PL PL PL -kC -kC +AM +Ih kC kC kC PL PL -as -as -as -as -as -kC +PL +PL +PL +PL +PL +AM PL PL PL @@ -16530,21 +19134,21 @@ kC kC kC kC -Ts -Ts -Ts -Ts -Ts -Ts -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj +kC +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -16582,18 +19186,18 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -Gl -Gl -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +PL +PL +CC kC kC kC @@ -16612,12 +19216,12 @@ kC kC kC kC -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -16741,10 +19345,10 @@ kC kC kC kC -kC -kC -kC -kC +AM +AM +AM +AM PL PL PL @@ -16758,18 +19362,18 @@ PL PL PL PL -kC +AM kC kC PL PL PL PL -as -DB -DB -DB -as +PL +BY +BY +BY +PL PL PL PL @@ -16787,21 +19391,21 @@ kC kC kC kC -Ts -Ts -Ts -Ts -Ts -Ts -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj +kC +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -16839,18 +19443,18 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC kC kC kC @@ -16869,12 +19473,12 @@ kC kC kC kC -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -17000,8 +19604,8 @@ kC kC PL PL -kC -kC +AM +AM PL PL PL @@ -17014,19 +19618,19 @@ kC kC kC kC -kC -kC +AM +AM kC PL PL PL PL PL -as -DB -DB -DB -as +PL +BY +BY +BY +PL PL PL PL @@ -17044,21 +19648,21 @@ kC kC kC kC -Ts -Ts -Ts -Ts -Ts -Ts -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj +kC +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -17096,18 +19700,18 @@ PL PL PL PL -md -md -Gl -Gl -Gl -Gl -Gl -Gl -md -md -md -md +CC +CC +PL +PL +PL +PL +PL +PL +CC +CC +CC +CC PL PL kC @@ -17230,15 +19834,15 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -17257,21 +19861,21 @@ kC kC PL PL -kC -kC +AM +AM kC PL PL PL PL +Oh kC -kC -kC -kC -kC -kC -kC -kC +AM +AM +AM +AM +AM +AM kC PL PL @@ -17279,11 +19883,11 @@ PL PL PL PL -as -DB -DB -DB -as +PL +BY +BY +BY +PL PL PL PL @@ -17300,22 +19904,22 @@ kC kC kC kC -Ts -Ts -Ts -Ts -Ts -Ts -Ts -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj +kC +kC +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -17350,21 +19954,21 @@ PL PL PL PL -md -md -md -md -md -Gl -Gl -Gl -Gl -Gl -Gl -md -md -md -md +CC +CC +CC +CC +CC +PL +PL +PL +PL +PL +PL +CC +CC +CC +CC PL PL kC @@ -17450,15 +20054,19 @@ PL PL PL PL +kC PL PL PL +kC +kC PL PL PL PL PL PL +kC PL PL PL @@ -17468,6 +20076,11 @@ PL PL PL PL +tY +tY +tY +tY +tY PL PL PL @@ -17478,24 +20091,15 @@ PL PL PL PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -17515,32 +20119,32 @@ kC PL PL PL +Ih +AM +Gl +Gl +Gl +AM +AM +AM +AM +kC +kC +LQ +LQ kC kC PL PL PL -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC PL PL PL PL PL PL -as -as -as -as -as +PL +PL PL PL PL @@ -17557,22 +20161,22 @@ kC kC kC kC -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -17607,20 +20211,20 @@ PL PL PL PL -md -md -md -md -md -Gl -Gl -Gl -Gl -Gl -Gl -md -md -md +CC +CC +CC +CC +CC +PL +PL +PL +PL +PL +PL +CC +CC +CC PL PL PL @@ -17702,26 +20306,20 @@ PL PL PL PL -PL -kC -kC -kC -kC -kC -kC -kC -kC kC kC kC kC +PL kC +PL kC kC kC kC kC kC +PL kC kC kC @@ -17735,6 +20333,12 @@ kC kC kC kC +zN +zN +zN +zN +zN +UK PL PL PL @@ -17744,15 +20348,15 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -17773,11 +20377,11 @@ PL PL PL kC -kC -PL -PL -PL -kC +AM +Gl +Gl +Gl +Ih kC kC kC @@ -17814,22 +20418,22 @@ kC kC kC kC -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -17864,21 +20468,21 @@ PL PL PL PL -md -md -Gl -md -md -Gl -Gl -Gl -Gl -Gl -Gl -md -md -md -md +CC +CC +PL +CC +CC +PL +PL +PL +PL +PL +PL +CC +CC +CC +CC PL PL kC @@ -17980,18 +20584,18 @@ kC kC kC kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC +tg +tg +tg +WI +tg +tg +og +XT +zN +El +zN +aJ PL PL PL @@ -18001,15 +20605,15 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -18071,22 +20675,22 @@ kC kC kC kC -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -18122,19 +20726,19 @@ PL PL PL PL -md -md -md -md -Gl -Gl -Gl -Gl -Gl -Gl -md -md -md +CC +CC +CC +CC +PL +PL +PL +PL +PL +PL +CC +CC +CC PL PL PL @@ -18160,11 +20764,11 @@ kC kC kC kC -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC kC kC kC @@ -18231,24 +20835,24 @@ kC kC kC kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC +tg +tg +tg +tg +eO +tg +tg +SX +NI +XT +zN +mu +sg +XT +zN +Mw +zN +aJ PL PL PL @@ -18258,15 +20862,15 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -18328,22 +20932,22 @@ kC kC kC kC -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -18379,19 +20983,19 @@ PL PL PL PL -md -md -md -md -Gl -Gl -Gl -Gl -Gl -Gl -md -md -md +CC +CC +CC +CC +PL +PL +PL +PL +PL +PL +CC +CC +CC PL PL PL @@ -18417,11 +21021,11 @@ kC kC kC kC -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC kC kC kC @@ -18488,24 +21092,24 @@ kC kC kC kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC +tg +yP +XT +zN +zN +yP +tg +XT +zN +zN +sL +mu +FN +zN +zN +El +zN +aJ PL PL PL @@ -18515,14 +21119,14 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -18585,22 +21189,22 @@ kC kC kC kC -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -18636,20 +21240,20 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -18674,11 +21278,11 @@ kC kC kC kC -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC kC kC kC @@ -18745,24 +21349,24 @@ kC kC kC kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC +tg +Ei +zN +XT +XT +KC +tg +zN +Mc +XT +yA +mu +XT +zN +XT +yS +zN +aJ PL PL PL @@ -18772,14 +21376,14 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -18842,22 +21446,22 @@ kC kC kC kC -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -18893,20 +21497,20 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -18931,11 +21535,11 @@ kC kC kC kC -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC kC kC kC @@ -19002,23 +21606,22 @@ kC kC kC kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC +tg +ZB +XT +XT +zN +QM +tg +Lu +mu +mu +mu +tg +go +tg +tg +tg kC PL PL @@ -19029,14 +21632,15 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -19099,22 +21703,22 @@ kC kC kC kC -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -19150,27 +21754,27 @@ PL PL PL PL -md -Gl -Gl -md -md -md -md -Gl +CC +PL +PL +CC +CC +CC +CC +PL Tm -md -md -Gl -md -md +CC +CC +PL +CC +CC +PL +PL +PL +PL +PL PL PL -Gl -Gl -Gl -Gl -Gl PL PL PL @@ -19188,11 +21792,11 @@ kC kC kC kC -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC kC kC kC @@ -19250,6 +21854,8 @@ kC kC kC kC +lH +lH kC kC kC @@ -19257,24 +21863,22 @@ kC kC kC kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC +mg +RJ +zN +zN +XT +zN +eF +zN +zN +zN +zN +XT +zN +xW +eE +tg kC kC PL @@ -19286,14 +21890,14 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -19356,22 +21960,22 @@ kC kC kC kC -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -19406,28 +22010,28 @@ PL PL PL PL -md -md -Gl -Gl -md -md -md -md -md -Gl -md -md -Gl -md -md +CC +CC +PL +PL +CC +CC +CC +CC +CC +PL +CC +CC +PL +CC +CC +PL PL PL -Gl BY BY BY -Gl +PL PL PL PL @@ -19445,16 +22049,16 @@ PL kC kC kC -lH -lH -lH -lH -lH kC kC kC kC kC +lH +kC +kC +kC +kC kC kC kC @@ -19516,22 +22120,22 @@ kC kC kC kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC +tg +yP +XT +XT +zN +yP +tg +qs +HJ +SO +zN +zN +XT +zN +zN +tg kC kC PL @@ -19543,14 +22147,14 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -19613,22 +22217,22 @@ PL kC kC kC -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -19663,28 +22267,28 @@ PL PL PL PL -md -md -md -md -md -Gl -md -md -md -md -md -md -Gl -md -md +CC +CC +CC +CC +CC +PL +CC +CC +CC +CC +CC +CC +PL +CC +CC +PL PL PL -Gl BY BY BY -Gl +PL PL PL PL @@ -19702,11 +22306,11 @@ PL kC kC kC -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC kC kC kC @@ -19773,22 +22377,22 @@ kC kC kC kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC +tg +ea +zN +XT +XT +KC +tg +RR +pm +Re +zN +zN +zN +sS +sS +tg kC PL PL @@ -19800,43 +22404,43 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -19870,22 +22474,22 @@ PL PL PL PL -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj -Mj +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -19920,28 +22524,28 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +PL PL PL -Gl BY BY BY -Gl +PL PL PL PL @@ -19959,11 +22563,6 @@ PL kC kC kC -lH -lH -lH -lH -lH kC kC kC @@ -19977,18 +22576,15 @@ kC kC kC kC -Al -"} -(73,1,1) = {" -Al -kC -kC -kC kC kC kC kC kC +Al +"} +(73,1,1) = {" +Al kC kC kC @@ -20009,14 +22605,6 @@ kC kC kC kC -lH -lH -lH -lH -lH -kC -kC -kC kC kC kC @@ -20046,6 +22634,22 @@ kC kC kC kC +tg +tg +tg +tg +tg +tg +tg +Qv +gK +Cn +zN +XT +zN +tK +Yb +tg kC PL PL @@ -20057,43 +22661,44 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +PL PL PL PL @@ -20194,11 +22799,10 @@ PL PL PL PL -Gl BY BY BY -Gl +PL PL PL PL @@ -20216,11 +22820,11 @@ PL kC kC kC -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC kC kC kC @@ -20266,16 +22870,6 @@ kC kC kC kC -lH -lH -lH -lH -lH -kC -kC -kC -kC -kC kC kC kC @@ -20303,6 +22897,16 @@ kC kC kC kC +tg +tg +tg +tg +tg +tg +TA +tg +tg +tg kC PL PL @@ -20314,43 +22918,44 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +PL PL PL PL @@ -20451,11 +23056,10 @@ PL PL PL PL -Gl BY BY BY -Gl +PL PL PL PL @@ -20473,11 +23077,6 @@ PL kC kC kC -lH -lH -lH -lH -lH kC kC kC @@ -20489,6 +23088,11 @@ kC kC kC kC +lH +kC +kC +kC +kC kC kC Al @@ -20523,11 +23127,11 @@ kC kC kC kC -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC kC kC kC @@ -20571,43 +23175,44 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +PL PL PL PL @@ -20708,11 +23313,10 @@ PL PL PL PL -Gl BY BY BY -Gl +PL PL PL PL @@ -20730,11 +23334,6 @@ PL kC kC kC -lH -lH -lH -lH -lH kC kC kC @@ -20746,6 +23345,11 @@ kC kC kC kC +lH +kC +kC +kC +kC kC kC Al @@ -20756,6 +23360,10 @@ kC kC kC kC +lH +kC +kC +kC kC kC kC @@ -20782,10 +23390,6 @@ kC kC lH lH -lH -lH -lH -kC kC kC kC @@ -20828,43 +23432,48 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +PL +PL +PL +PL +PL PL PL PL @@ -20965,11 +23574,6 @@ PL PL PL PL -Gl -Gl -Gl -Gl -Gl PL PL PL @@ -20987,11 +23591,6 @@ PL kC kC kC -lH -lH -lH -lH -lH kC kC kC @@ -21003,6 +23602,11 @@ kC kC kC kC +lH +kC +kC +kC +kC kC kC Al @@ -21037,11 +23641,11 @@ kC kC kC kC -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC kC kC kC @@ -21097,31 +23701,31 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -21244,11 +23848,11 @@ PL kC kC kC -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC kC kC kC @@ -21284,6 +23888,12 @@ kC kC kC kC +lH +lH +lH +lH +lH +lH kC kC kC @@ -21294,12 +23904,6 @@ kC kC kC kC -lH -lH -lH -lH -lH -kC kC kC kC @@ -21313,12 +23917,12 @@ kC kC kC kC -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx kC kC kC @@ -21354,31 +23958,31 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -21501,11 +24105,11 @@ PL kC kC kC -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC kC kC kC @@ -21537,8 +24141,16 @@ kC kC kC kC +lH +lH kC kC +lH +lH +lH +lH +lH +lH kC kC kC @@ -21551,14 +24163,6 @@ kC kC kC kC -lH -lH -lH -lH -lH -kC -kC -kC kC kC kC @@ -21570,12 +24174,12 @@ kC kC kC kC -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx kC kC kC @@ -21583,15 +24187,15 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -21611,13 +24215,13 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -21627,15 +24231,15 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -21721,16 +24325,16 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -21758,11 +24362,11 @@ PL kC kC kC -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC kC kC kC @@ -21781,6 +24385,7 @@ Al (80,1,1) = {" Al kC +lH kC kC kC @@ -21793,12 +24398,16 @@ kC kC kC kC +lH +lH kC kC kC kC kC kC +lH +lH kC kC kC @@ -21808,11 +24417,6 @@ kC kC kC kC -lH -lH -lH -lH -lH kC kC kC @@ -21827,12 +24431,12 @@ kC kC kC kC -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx kC kC kC @@ -21840,15 +24444,15 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -21868,13 +24472,13 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -21884,15 +24488,15 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -21920,11 +24524,11 @@ ad ad ad ad -md -md -md -md -md +CC +CC +CC +CC +CC ad ad ad @@ -21941,29 +24545,29 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -21978,16 +24582,16 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -22015,11 +24619,11 @@ PL kC kC kC -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC kC kC kC @@ -22065,11 +24669,6 @@ kC kC kC kC -lH -lH -lH -lH -lH kC kC kC @@ -22084,28 +24683,33 @@ kC kC kC kC -EX -EX -EX -EX -EX -EX +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -22141,15 +24745,15 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -22172,21 +24776,21 @@ ad ad ad ad -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD PL @@ -22198,29 +24802,29 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -22233,22 +24837,22 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -22272,11 +24876,11 @@ PL kC kC kC -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC kC kC kC @@ -22295,6 +24899,7 @@ Al (82,1,1) = {" Al kC +lH kC kC kC @@ -22322,11 +24927,6 @@ kC kC kC kC -lH -lH -lH -lH -lH kC kC kC @@ -22341,28 +24941,32 @@ kC kC kC kC -EX -EX -EX -EX -EX -EX +kC +kC +kC +kC +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -22398,15 +25002,15 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -22425,25 +25029,25 @@ sD sD sD ad -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD PL @@ -22455,29 +25059,29 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -22490,22 +25094,22 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -22529,9 +25133,9 @@ PL kC kC kC -lH -lH -lH +kC +kC +kC lH lH kC @@ -22542,7 +25146,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -22552,6 +25156,7 @@ Al (83,1,1) = {" Al kC +lH kC kC kC @@ -22560,6 +25165,7 @@ kC kC kC kC +lH kC kC kC @@ -22579,11 +25185,6 @@ kC kC kC kC -lH -lH -lH -lH -lH kC kC kC @@ -22598,28 +25199,31 @@ kC kC kC kC -EX -EX -EX -EX -EX -EX +kC +kC +kC +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -22655,15 +25259,15 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -22682,25 +25286,25 @@ ad ad ad ad -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD sD @@ -22712,32 +25316,29 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -PL -PL -PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL -hs -hs -hs -hs -hs PL PL PL +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -22747,48 +25348,51 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +PL +PL +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL -md -md -md -md +CC +CC +CC +CC PL PL PL PL PL -md -md -md -md +CC +CC +CC +CC PL kC kC kC kC kC -lH -lH -lH +kC +kC +kC lH lH kC @@ -22799,7 +25403,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -22836,11 +25440,6 @@ kC kC kC kC -lH -lH -lH -lH -lH kC kC kC @@ -22855,28 +25454,33 @@ kC kC kC kC -EX -EX -EX -EX -EX -EX +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -22913,13 +25517,13 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -22932,32 +25536,32 @@ ad ad ad ad -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad ad sD @@ -22969,29 +25573,29 @@ sD sD PL PL -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -23004,48 +25608,48 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL -md -md -md -md -md +CC +CC +CC +CC +CC PL PL PL -md -md -md -md -md +CC +CC +CC +CC +CC +kC +kC +kC kC kC kC kC kC kC -lH -lH -lH lH lH kC @@ -23093,11 +25697,6 @@ kC kC kC kC -lH -lH -lH -lH -lH kC kC kC @@ -23110,30 +25709,35 @@ kC kC kC kC -EX -EX -EX -EX -EX -EX -EX -EX +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -23170,13 +25774,13 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -23186,36 +25790,36 @@ PL PL sD ad -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad ad ad @@ -23226,29 +25830,29 @@ ad sD PL PL -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -23261,48 +25865,48 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +kC +kC +kC kC kC kC kC kC kC -lH -lH -lH lH lH kC @@ -23337,6 +25941,11 @@ kC kC kC kC +lH +lH +kC +kC +kC kC kC kC @@ -23350,47 +25959,42 @@ kC kC kC kC -lH -lH -lH -lH -lH PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC kC kC kC -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -23427,13 +26031,13 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -23443,74 +26047,74 @@ PL PL sD ad -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD PL PL -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -23518,50 +26122,50 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +kC +kC +kC +kC +kC kC kC kC kC kC kC -lH -lH -lH -lH -lH kC kC kC @@ -23597,6 +26201,11 @@ kC kC kC kC +lH +kC +kC +kC +kC kC kC kC @@ -23607,47 +26216,42 @@ kC kC kC kC -lH -lH -lH -lH -lH PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC kC kC kC -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -23684,13 +26288,13 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -23700,42 +26304,42 @@ PL PL sD ad -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD PL @@ -23744,30 +26348,30 @@ PL PL PL PL -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -23775,50 +26379,50 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +kC +kC +kC +kC +kC kC kC kC kC kC kC -lH -lH -lH -lH -lH kC kC kC @@ -23854,6 +26458,11 @@ kC kC kC kC +lH +kC +kC +kC +kC kC kC kC @@ -23864,47 +26473,42 @@ kC kC kC kC -lH -lH -lH -lH -lH PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC kC kC kC -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -23957,43 +26561,43 @@ PL PL sD ad -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -ad +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +ad sD PL PL @@ -24001,30 +26605,30 @@ PL PL PL PL -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -24032,50 +26636,50 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +kC +kC +kC +kC +kC kC kC kC kC kC kC -lH -lH -lH -lH -lH kC kC kC @@ -24111,7 +26715,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -24128,40 +26732,40 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC kC kC kC -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -24214,42 +26818,42 @@ PL PL sD ad -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD PL @@ -24258,30 +26862,30 @@ PL PL PL PL -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -24289,50 +26893,50 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +kC +kC +kC +kC +kC kC kC kC kC kC kC -lH -lH -lH -lH -lH kC kC kC @@ -24385,40 +26989,40 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC kC kC kC -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -24471,42 +27075,42 @@ PL PL sD ad -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD PL @@ -24515,30 +27119,30 @@ PL PL PL PL -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -24546,37 +27150,42 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL kC kC -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +kC +kC +kC +kC +kC kC kC kC @@ -24585,11 +27194,6 @@ kC kC kC kC -lH -lH -lH -lH -lH kC kC kC @@ -24616,15 +27220,15 @@ kC kC kC kC +lH kC kC kC kC kC kC -kC -kC -kC +lH +lH kC kC kC @@ -24642,24 +27246,24 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC kC kC kC -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -24670,12 +27274,12 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC PL PL PL @@ -24728,42 +27332,42 @@ PL PL sD ad -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD PL @@ -24786,16 +27390,16 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -24803,22 +27407,22 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -24826,13 +27430,14 @@ PL kC kC kC -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +kC kC kC kC @@ -24842,11 +27447,6 @@ kC kC kC kC -lH -lH -lH -lH -lH kC kC kC @@ -24860,28 +27460,32 @@ kC kC kC kC -Al -"} -(92,1,1) = {" -Al kC kC kC kC +Al +"} +(92,1,1) = {" +Al kC kC kC kC kC +lH kC kC kC kC +lH kC kC kC kC kC +lH +lH kC kC kC @@ -24909,14 +27513,14 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -24927,12 +27531,12 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC PL PL PL @@ -24987,40 +27591,40 @@ sD ad ad ad -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD PL @@ -25043,16 +27647,16 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -25060,22 +27664,22 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -25099,11 +27703,11 @@ kC kC kC kC -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC kC kC kC @@ -25126,6 +27730,7 @@ kC kC kC kC +lH kC kC kC @@ -25136,8 +27741,7 @@ kC kC kC kC -kC -kC +lH kC kC kC @@ -25244,40 +27848,40 @@ sD sD sD ad -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD sD @@ -25301,15 +27905,15 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -25317,22 +27921,22 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -25356,11 +27960,11 @@ kC kC kC kC -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC kC kC kC @@ -25394,7 +27998,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -25501,51 +28105,45 @@ PL PL sD ad -md -md -md -md -md -md -md -md -md -md -md -PL -PL -PL -PL -PL -PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -ad -ad -ad -ad -sD +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +ad +ad +ad +ad +sD PL PL PL @@ -25574,22 +28172,28 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +PL +PL +PL +PL +PL +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -25608,29 +28212,29 @@ kC kC kC kC +lH kC kC kC -kC -kC -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH lH lH kC kC kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC Al "} (95,1,1) = {" @@ -25651,7 +28255,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -25758,17 +28362,17 @@ PL PL sD ad -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -25779,22 +28383,22 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD PL @@ -25831,22 +28435,22 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -25870,21 +28474,21 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -25908,7 +28512,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -26018,14 +28622,14 @@ ad ad ad ad -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -26036,22 +28640,22 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD PL @@ -26127,21 +28731,21 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -26275,14 +28879,14 @@ sD sD sD ad -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -26293,22 +28897,22 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD PL @@ -26384,21 +28988,21 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -26425,11 +29029,11 @@ kC kC kC kC -md -md -md -md -md +CC +CC +CC +CC +CC PL PL PL @@ -26460,17 +29064,17 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -26534,12 +29138,12 @@ sD ad ad ad -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC PL PL PL @@ -26550,22 +29154,22 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD PL @@ -26641,21 +29245,21 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -26682,11 +29286,11 @@ kC kC kC kC -md -md -md -md -md +CC +CC +CC +CC +CC PL PL PL @@ -26717,20 +29321,20 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -26744,24 +29348,24 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +PL +PL +PL +PL PL PL -Rl -Rl -Rl -Rl PL PL PL @@ -26791,38 +29395,38 @@ sD sD sD ad -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD PL @@ -26860,9 +29464,9 @@ PL PL PL PL -hs -hs -hs +Wx +Wx +Wx PL PL PL @@ -26898,21 +29502,21 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -26939,11 +29543,11 @@ kC kC kC kC -md -md -md -md -md +CC +CC +CC +CC +CC PL PL PL @@ -26974,20 +29578,20 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -26998,46 +29602,46 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL -Rl -Rl -Rl -EX -EX -EX -EX -EX -EX -EX PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +PL +PL +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -27048,17 +29652,17 @@ PL PL sD ad -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -27069,17 +29673,17 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD PL @@ -27093,11 +29697,11 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -27117,9 +29721,9 @@ PL PL PL PL -hs -hs -hs +Wx +Wx +Wx PL PL PL @@ -27155,21 +29759,21 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -27184,6 +29788,7 @@ kC kC kC kC +lH kC kC kC @@ -27195,12 +29800,11 @@ kC kC kC kC -kC -md -md -md -md -md +CC +CC +CC +CC +CC PL PL PL @@ -27231,20 +29835,20 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -27255,46 +29859,46 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx PL PL -Rl -Rl -Rl -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +PL +PL +Wx +Wx +PL +PL +Wx +Wx +Wx +PL +PL +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -27305,17 +29909,17 @@ PL PL sD ad -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -27326,36 +29930,36 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -27374,9 +29978,9 @@ PL PL PL PL -hs -hs -hs +Wx +Wx +Wx PL PL PL @@ -27412,12 +30016,12 @@ PL PL kC kC -lH -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC +kC PL PL PL @@ -27453,11 +30057,11 @@ kC kC kC kC -md -md -md -md -md +CC +CC +CC +CC +CC PL PL PL @@ -27488,20 +30092,20 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -27512,46 +30116,46 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL -Rl -Rl -Rl -EX -EX -EX -EX -EX -EX -EX PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +PL +Wx +Wx +Wx +PL +Wx +Wx +Wx +PL +PL +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -27562,17 +30166,17 @@ PL PL sD ad -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -27583,36 +30187,36 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -27631,9 +30235,9 @@ PL PL PL PL -hs -hs -hs +Wx +Wx +Wx PL PL PL @@ -27660,11 +30264,11 @@ PL PL PL PL -md -md -md -md -md +CC +CC +CC +CC +CC PL PL PL @@ -27710,11 +30314,11 @@ kC kC kC kC -md -md -md -md -md +CC +CC +CC +CC +CC PL PL PL @@ -27745,20 +30349,20 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -27769,46 +30373,46 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -27819,57 +30423,57 @@ PL PL sD ad -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL Kv -Gl -Gl -Gl +PL +PL +PL Kv PL PL PL -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -27917,11 +30521,11 @@ PL PL PL PL -md -md -md -md -md +CC +CC +CC +CC +CC PL PL PL @@ -27958,7 +30562,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -27991,8 +30595,8 @@ PL kC kC kC -kC -kC +lH +lH kC kC kC @@ -28002,17 +30606,17 @@ kC PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -28026,33 +30630,33 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +PL +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -28060,12 +30664,12 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -28076,57 +30680,57 @@ PL PL sD ad -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL -Gl -Gl -Gl -Gl -Gl PL PL PL -md -md -md -md -md -md -md -md -md -md -md -ad -sD PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +ad +sD +PL +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -28174,11 +30778,11 @@ PL PL PL PL -md -md -md -md -md +CC +CC +CC +CC +CC PL PL PL @@ -28248,11 +30852,11 @@ PL kC kC kC +lH kC kC kC -kC -kC +lH kC kC kC @@ -28283,34 +30887,33 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL +Wx +Wx PL PL PL @@ -28318,11 +30921,12 @@ PL PL PL PL -EX -EX -EX -EX -EX +PL +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -28333,24 +30937,19 @@ PL PL sD ad -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL -Gl -Gl -Gl -Gl -Gl PL PL PL @@ -28358,32 +30957,37 @@ PL PL PL PL -md -md -md -md -md -md -md +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC ad sD PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -28431,11 +31035,11 @@ PL PL PL PL -md -md -md -md -md +CC +CC +CC +CC +CC PL PL PL @@ -28505,7 +31109,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -28520,16 +31124,16 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -28543,29 +31147,29 @@ PL PL PL PL -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx PL PL -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -28576,10 +31180,10 @@ PL PL PL PL -EX -EX -EX -EX +Wx +Wx +Wx +Wx PL PL PL @@ -28590,24 +31194,19 @@ PL PL sD ad -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL -Gl -Gl -Gl -Gl -Gl PL PL PL @@ -28615,31 +31214,36 @@ PL PL PL PL -md -md -md -md -md -md -md +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC ad sD PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -28661,15 +31265,15 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -28688,11 +31292,11 @@ PL PL PL PL -md -md -md -md -md +CC +CC +CC +CC +CC PL PL PL @@ -28761,7 +31365,7 @@ PL kC kC kC -kC +lH kC kC kC @@ -28777,16 +31381,16 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -28833,10 +31437,10 @@ PL PL PL PL -EX -EX -EX -EX +Wx +Wx +Wx +Wx PL PL PL @@ -28847,24 +31451,19 @@ PL PL sD ad -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL -Gl -Gl -Gl -Gl -Gl PL PL PL @@ -28872,31 +31471,36 @@ PL PL PL PL -md -md -md -md -md -md -md +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC ad sD PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -28918,15 +31522,15 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -28945,11 +31549,11 @@ PL PL PL PL -md -md -md -md -md +CC +CC +CC +CC +CC PL PL PL @@ -29034,16 +31638,16 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -29090,10 +31694,10 @@ PL PL PL PL -EX -EX -EX -EX +Wx +Wx +Wx +Wx PL PL PL @@ -29104,23 +31708,23 @@ PL PL sD ad -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL Kv -Gl -Gl -Gl +PL +PL +PL Kv PL PL @@ -29129,32 +31733,32 @@ PL PL PL PL -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC ad sD PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -29175,15 +31779,15 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -29248,7 +31852,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -29291,18 +31895,16 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -PL -PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -29311,32 +31913,34 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL EX +jl EX -EX -EX -EX -EX -EX -EX -EX +mI +mI +mI +Pl +Pl +mI PL PL PL @@ -29347,10 +31951,10 @@ PL PL PL PL -EX -EX -EX -EX +Wx +Wx +Wx +Wx PL PL PL @@ -29361,17 +31965,17 @@ PL PL sD ad -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -29386,32 +31990,32 @@ PL PL PL PL -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC ad sD PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -29432,15 +32036,15 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -29449,12 +32053,12 @@ PL PL PL PL -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC PL PL PL @@ -29548,17 +32152,16 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -29568,32 +32171,33 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL +jl +Rg EX -EX -EX -EX -EX -EX -EX -EX -EX +Ao +DB +mI +Rl +Ty +zx PL PL PL @@ -29618,17 +32222,17 @@ PL PL sD ad -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -29643,32 +32247,32 @@ PL PL PL PL -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC ad sD PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -29689,15 +32293,15 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -29706,12 +32310,12 @@ PL PL PL PL -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC PL PL PL @@ -29805,17 +32409,16 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -29825,31 +32428,32 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL +jl EX +Ab EX EX -EX -EX -EX -EX -EX +mI +Sl +dX EX PL PL @@ -29875,19 +32479,17 @@ PL PL sD ad -md -md -md -md -md -md -md -md -md -md -md -PL -PL +Kv +Kv +Kv +Kv +Kv +Kv +Kv +Kv +Kv +Kv +Kv PL PL PL @@ -29900,34 +32502,34 @@ PL PL PL PL -md -md -md -md -md -md -md -ad -sD PL PL +CC +CC +CC +CC +CC +CC +CC +ad +sD PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -29942,42 +32544,44 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -30008,7 +32612,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -30057,23 +32661,21 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -PL -PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -30082,29 +32684,31 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL +jl EX EX EX -EX -EX -EX +FW +NP EX EX EX @@ -30118,10 +32722,10 @@ PL PL PL PL -EX -EX -EX -EX +Wx +Wx +Wx +Wx PL PL PL @@ -30132,12 +32736,12 @@ PL PL sD ad -md -md -md -md -md -PL +YO +Rg +Rg +Kv +wE +Gl PL PL PL @@ -30157,32 +32761,32 @@ PL PL PL PL -md -md -md -md -md -md -md +Kv +Kv +Kv +Kv +Kv +Kv +Kv ad sD PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -30199,19 +32803,19 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -30220,21 +32824,21 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -30265,7 +32869,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -30314,21 +32918,21 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -30339,34 +32943,34 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL +mI EX EX +Ab +FW +mI EX EX +Rg EX -EX -EX -EX -EX -EX -EX +mI PL PL PL @@ -30374,11 +32978,11 @@ PL PL PL PL -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -30389,13 +32993,12 @@ PL PL sD ad -md -md -md -md -md -PL -PL +oJ +Br +Br +Kv +ik +Gl PL PL PL @@ -30415,30 +33018,31 @@ PL PL PL PL -md -md -md -md -md -md +Mj +tM +EX +Kv +BB +Dp +XF ad sD PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -30456,19 +33060,19 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -30477,21 +33081,21 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -30522,6 +33126,7 @@ kC kC kC kC +lH kC kC kC @@ -30534,8 +33139,7 @@ kC kC kC kC -kC -kC +lH kC kC kC @@ -30571,21 +33175,22 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +PL PL PL PL @@ -30595,47 +33200,46 @@ PL PL PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +PL PL +mI +qd EX EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -PL -PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +yd +mI +Ts +mI +mI +pP +mI PL PL PL PL PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -30646,13 +33250,12 @@ PL PL sD ad -md -md -md -md -md -PL -PL +Kv +Lv +Kv +Kv +NX +Gl PL PL PL @@ -30672,30 +33275,31 @@ PL PL PL PL -md -md -md -md -md -md +Mj +tM +EX +wp +XF +XF +XF ad sD PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -30713,19 +33317,19 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -30734,21 +33338,21 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -30828,21 +33432,21 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -30853,46 +33457,46 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL +mI EX EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +mI +mI +mI +mI +mI +Hk +qg +mI PL PL -EX +Wx PL PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -30903,13 +33507,12 @@ PL PL sD ad -md -md -md -md -md -PL -PL +Qn +nb +nb +Kv +hq +Gl PL PL PL @@ -30929,12 +33532,13 @@ PL PL PL PL -md -md -md -md -md -md +Mj +gb +EX +ar +Ga +jZ +XF ad sD PL @@ -30970,19 +33574,19 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -30991,21 +33595,21 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -31085,21 +33689,21 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -31110,46 +33714,46 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL +mI +rf EX -EX -EX -EX +mI PL PL PL -EX -EX -EX -EX +mI +Su +SV +mI PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -31160,13 +33764,12 @@ PL PL sD ad -md -md -md -md -md -PL -PL +Ww +nb +nb +sF +CC +Gl PL PL PL @@ -31186,12 +33789,13 @@ PL PL PL PL -md -md -md -md -md -md +Mj +tM +EX +HH +YA +XF +XF ad sD PL @@ -31227,19 +33831,19 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -31248,21 +33852,26 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +PL +PL +PL +PL +PL PL PL PL @@ -31278,11 +33887,6 @@ PL PL PL PL -Gl -Gl -Gl -Gl -Gl PL kC Al @@ -31342,17 +33946,17 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -31367,46 +33971,46 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL -EX -EX -EX -EX +mI +zY +zY +mI PL PL PL -EX -EX -EX -EX +mI +zY +Vn +mI PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -31417,13 +34021,12 @@ PL PL sD ad -md -md -md -md -md -PL -PL +nb +nb +nb +Kv +CC +Gl PL PL PL @@ -31443,12 +34046,13 @@ PL PL PL PL -md -md -md -md -md -md +Mj +tM +EX +EX +jZ +jZ +XF ad sD PL @@ -31484,19 +34088,19 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -31505,21 +34109,22 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +PL PL PL PL @@ -31535,11 +34140,10 @@ PL PL PL PL -Gl BY BY BY -Gl +PL PL kC Al @@ -31554,12 +34158,12 @@ kC kC kC kC +lH kC kC kC kC -kC -kC +lH kC kC kC @@ -31597,19 +34201,19 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -31674,13 +34278,12 @@ PL PL PL ad -md -md -md -md -md -PL -PL +Lv +Kv +Kv +Kv +CC +Gl PL PL PL @@ -31700,12 +34303,14 @@ PL PL PL PL -md -md -md -md -md -md +Mj +Gf +tM +tM +tM +tM +XF +ad PL PL PL @@ -31740,20 +34345,20 @@ PL PL PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs PL PL PL @@ -31761,22 +34366,22 @@ PL PL PL PL +CC +CC +CC +CC +CC +CC PL -md -md -md -md -md -md PL PL PL +CC +CC +CC +CC +CC PL -md -md -md -md -md PL PL PL @@ -31792,11 +34397,10 @@ PL PL PL PL -Gl BY BY BY -Gl +PL PL kC Al @@ -31811,7 +34415,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -31854,19 +34458,19 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -31930,12 +34534,9 @@ PL PL PL PL -PL -Gl -Gl -Gl -Gl +vB Gl +aJ PL PL PL @@ -31957,14 +34558,16 @@ PL PL PL PL -Gl -Gl -Gl -Gl -Gl PL PL PL +nE +nE +nE +nE +nE +Gl +vB PL PL PL @@ -32019,21 +34622,23 @@ PL PL PL PL -md -md -md -md -md -md PL +CC +CC +CC +CC +CC +CC PL PL PL -md -md -md -md -md +PL +CC +CC +CC +CC +CC +PL PL PL PL @@ -32049,11 +34654,10 @@ PL PL PL PL -Gl BY BY BY -Gl +PL PL kC Al @@ -32078,7 +34682,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -32111,20 +34715,19 @@ kC PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -32188,11 +34791,9 @@ PL PL PL PL +vB Gl -Gl -Gl -Gl -Gl +aJ PL PL PL @@ -32214,11 +34815,19 @@ PL PL PL PL -Gl -Gl -Gl -Gl -Gl +PL +PL +PL +PL +PL +PL +PL +PL +ZQ +vB +PL +PL +PL PL PL PL @@ -32306,11 +34915,6 @@ PL PL PL PL -Gl -Gl -Gl -Gl -Gl PL kC Al @@ -32331,11 +34935,11 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty +kC +kC +kC +kC +kC kC kC kC @@ -32368,19 +34972,19 @@ kC kC PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -32444,12 +35048,12 @@ PL PL PL PL +vB +yj +aJ +PL +PL PL -Gl -Gl -Gl -Gl -Gl PL PL PL @@ -32471,16 +35075,16 @@ PL PL PL PL -Gl -Gl -Gl -Gl -Gl PL PL PL PL PL +Yg +vB +PL +PL +PL PL PL PL @@ -32588,11 +35192,6 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty kC kC kC @@ -32603,6 +35202,9 @@ kC kC kC kC +lH +lH +kC kC kC kC @@ -32619,25 +35221,27 @@ kC kC kC kC +lH +kC kC kC kC kC PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -32734,7 +35338,7 @@ ad ad ad ad -PL +ad PL PL PL @@ -32845,11 +35449,6 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty kC kC kC @@ -32879,22 +35478,27 @@ kC kC kC kC +lH +kC +kC +kC +kC kC kC PL -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -32926,15 +35530,15 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -32986,10 +35590,10 @@ PL PL PL ad -tU -tU -tU -tU +CC +CC +CC +CC ad ad sD @@ -33102,11 +35706,11 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty +kC +kC +kC +kC +kC kC kC kC @@ -33183,29 +35787,29 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -33236,18 +35840,18 @@ UK PL PL PL -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD PL @@ -33359,16 +35963,8 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC +lH kC kC kC @@ -33392,20 +35988,28 @@ kC kC kC kC +lH kC kC kC -oJ -oJ -oJ -oJ -oJ -oJ -CC -CC -CC -CC -CC +kC +kC +kC +kC +kC +kC +kC +PO +PO +PO +PO +PO +PO +PO +zo +PO +PO +PO PL PL PL @@ -33440,29 +36044,29 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -33493,18 +36097,18 @@ aJ PL PL PL -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD PL @@ -33605,6 +36209,7 @@ Al kC kC kC +lH kC kC kC @@ -33616,15 +36221,7 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty +lH kC kC kC @@ -33643,26 +36240,33 @@ kC kC kC kC -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -CC -CC -CC -CC -CC -CC +kC +kC +kC +lH +lH +kC +kC +PO +PO +PO +Kg +PO +PO +PO +PO +PO +lr +Rr +bw +AT +iM +er +OP +iM +CA +AT +PO PL PL PL @@ -33678,14 +36282,14 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -33697,29 +36301,29 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -33739,7 +36343,7 @@ HG bo yI ol -tg +ol ol Ve cS @@ -33750,40 +36354,40 @@ aJ PL PL PL -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC PL PL -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -33831,15 +36435,15 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -33873,15 +36477,6 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC @@ -33900,26 +36495,35 @@ kC kC kC kC -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -CC -CC -CC -CC -CC -CC +kC +kC +kC +kC +kC +kC +kC +kC +kC +PO +LH +RC +tl +tl +tl +bu +PO +Qj +iM +Rr +Zk +rX +Rr +Nj +rX +rG +RT +gs +PO PL PL PL @@ -33934,16 +36538,16 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -33954,29 +36558,29 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -34007,40 +36611,40 @@ aJ PL PL PL -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC PL PL -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -34088,15 +36692,15 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -34130,15 +36734,6 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC @@ -34157,26 +36752,35 @@ kC kC kC kC -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -CC -CC -CC -CC -CC -CC -CC +kC +kC +lH +kC +kC +kC +kC +kC +kC +PO +YS +tl +RC +tl +an +tl +Sh +IB +Rr +Rr +Rr +Rr +or +Rr +Rr +Ko +Rr +Rr +CH PL PL PL @@ -34191,16 +36795,16 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -34211,29 +36815,29 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -34264,40 +36868,40 @@ aJ PL PL PL -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC PL PL -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -34335,25 +36939,25 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -34382,20 +36986,6 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC @@ -34412,28 +37002,42 @@ kC kC kC kC +lH kC kC -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -CC -CC -CC -CC -CC -CC -CC +kC +kC +kC +kC +kC +kC +lH +kC +kC +kC +kC +kC +kC +PO +RC +bQ +wR +tl +VR +tl +dj +IB +Rr +Rr +Kk +Kc +Rr +Fl +Kc +Rr +dy +Kc +kb PL PL PL @@ -34448,16 +37052,16 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -34468,29 +37072,29 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -Rl -Rl +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +PL +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -34521,44 +37125,41 @@ aJ PL PL PL -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD -md -md -md -md -md -md -md -md -PL -PL -md -md -md -md -md -md -md -md -md -md -PL -PL -PL -PL +CC +CC +CC +CC +CC +CC +CC +CC +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +PL PL PL PL @@ -34592,25 +37193,28 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -34635,24 +37239,11 @@ kC kC kC kC +lH kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC @@ -34671,26 +37262,39 @@ kC kC kC kC -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -CC -CC -CC -CC -CC -CC -CC -CC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +PO +RC +tl +VX +wF +RC +aI +PO +iJ +Ko +Rr +Ru +rX +Rr +fo +rX +NS +OY +rX +kb PL PL PL @@ -34705,16 +37309,16 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -34725,29 +37329,29 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -Rl -Rl -Rl -Rl +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +PL +PL +PL +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -34778,40 +37382,40 @@ aJ PL PL PL -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC PL PL -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -34849,25 +37453,25 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -34896,20 +37500,6 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC @@ -34928,26 +37518,40 @@ kC kC kC kC -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -CC -CC -CC -CC -CC -CC -CC -CC +kC +kC +kC +kC +kC +lH +kC +kC +kC +kC +kC +kC +kC +kC +pi +tl +JB +xw +tl +tl +VR +PV +or +Rr +Rr +Rr +NS +Rr +rG +Rr +Rr +Rr +rG +kb PL PL PL @@ -34962,45 +37566,45 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -Rl -Rl -Rl -Rl +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL -hs -hs -hs -hs -hs -hs -hs +PL +PL +PL +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -35035,40 +37639,40 @@ aJ PL PL PL -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC PL PL -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -35082,16 +37686,16 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -35106,31 +37710,31 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -35151,22 +37755,6 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC @@ -35185,26 +37773,42 @@ kC kC kC kC -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -CC -CC -CC -CC -CC -CC -CC -CC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +lH +PO +tl +VR +MC +wF +VR +aI +PO +iJ +Rr +Rr +ZM +Rr +Rr +ID +Kc +Rr +ZX +Kc +kb PL PL PL @@ -35219,45 +37823,45 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL -EX -EX -EX -EX -EX -EX -Rl -Rl -Rl -Rl -Rl +Wx +Wx +Wx +Wx +Wx +Wx +PL +PL PL -hs -hs -hs -hs -hs -hs -hs +PL +PL +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -35292,40 +37896,40 @@ aJ PL PL PL -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC PL -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -35339,16 +37943,16 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -35363,31 +37967,31 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -35408,22 +38012,6 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC @@ -35442,26 +38030,42 @@ kC kC kC kC -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -CC -CC -CC -CC -CC -CC -CC -CC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +lH +PO +VR +jO +lt +tl +VR +RC +rp +IB +Rr +oe +ZM +Rr +Rr +Yy +rX +Rr +wH +Lw +kb PL PL PL @@ -35476,45 +38080,45 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL -EX -EX -EX -EX -EX -EX -Rl -Rl -Rl -Rl -Rl +Wx +Wx +Wx +Wx +Wx +Wx +PL +PL +PL +PL PL -hs -hs -hs -hs -hs -hs -hs +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -35549,40 +38153,40 @@ PL PL PL PL -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad ad -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC PL -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -35596,19 +38200,19 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -35620,31 +38224,31 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -35665,22 +38269,6 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC @@ -35699,26 +38287,42 @@ kC kC kC kC -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -CC -CC -CC -CC -CC -CC -CC -CC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +PO +YS +RC +RC +VR +cL +tl +dj +IB +ZM +ZM +ZM +Rr +Rr +xm +Rr +Rr +Rr +Ko +kb PL PL PL @@ -35733,21 +38337,21 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -35765,13 +38369,13 @@ PL PL PL PL -hs -hs -hs +Wx +Wx +Wx PL -hs -hs -hs +Wx +Wx +Wx PL PL PL @@ -35806,40 +38410,40 @@ PL PL PL PL -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC PL -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -35853,19 +38457,19 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -35877,31 +38481,31 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -35923,23 +38527,6 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC @@ -35955,27 +38542,44 @@ kC kC kC kC +lH +lH +lH kC -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -CC -CC -CC -CC -CC -CC -CC -CC +kC +kC +kC +kC +kC +lH +kC +kC +kC +kC +kC +kC +kC +kC +PO +py +VR +VR +tl +VR +tl +PO +TU +Rr +de +de +or +Rr +hc +Kc +Rr +IL +Kc +kb PL PL PL @@ -35990,21 +38594,21 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -36026,9 +38630,9 @@ PL PL PL PL -hs -hs -hs +Wx +Wx +Wx PL PL PL @@ -36063,40 +38667,40 @@ PL PL PL PL -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC PL -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -36110,19 +38714,19 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -36134,31 +38738,31 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -36181,28 +38785,13 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC kC kC kC +lH kC kC kC @@ -36211,28 +38800,43 @@ kC kC kC kC +lH +lH kC kC -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -oJ -CC -CC -CC -CC -CC -CC -CC -CC -CC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +PO +PO +PO +PO +PO +FX +PO +PO +Vi +fg +mh +mh +BX +Rr +te +rX +Rr +aN +rX +kb PL PL PL @@ -36247,21 +38851,21 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -36320,40 +38924,40 @@ PL PL PL PL -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC PL -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -36367,19 +38971,19 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -36391,31 +38995,31 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -36438,28 +39042,13 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC kC kC kC +lH kC kC kC @@ -36477,19 +39066,34 @@ kC kC kC kC -oJ -oJ -oJ -oJ -CC -CC -CC -CC -CC -CC -CC -CC -CC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +PO +PO +PO +PO +PO +Jn +Rr +Rr +Rr +rk +Rr +rG +RN PL PL PL @@ -36504,49 +39108,49 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -36577,40 +39181,40 @@ PL PL PL PL -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC PL -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -36628,15 +39232,15 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -36648,31 +39252,31 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -36693,29 +39297,15 @@ kC kC kC kC +lH kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC kC kC +lH kC kC kC @@ -36731,22 +39321,36 @@ kC kC kC kC +lH kC kC kC -oJ -oJ -oJ -oJ -CC -CC -CC -CC -CC -CC -CC -CC -CC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +PO +IY +gt +Ki +PO +mP +Rr +KQ +Kc +Rr +By +Dc +PO PL PL PL @@ -36761,49 +39365,49 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -36834,66 +39438,42 @@ PL PL PL PL -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad sD -md -md -md -md -md -md -md -PL -md -md -md -md -md -md -md -md -md -md -md -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL +CC +CC +CC +CC +CC +CC +CC PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs PL PL PL @@ -36905,31 +39485,55 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -36948,26 +39552,11 @@ kC kC kC kC +lH kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC @@ -36991,20 +39580,35 @@ kC kC kC kC -oJ -oJ -oJ -oJ -CC -CC -CC -CC -CC -CC -CC -CC -CC -CC +kC +kC +kC +kC +kC +lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +PO +cz +Rt +bT +Lx +Rr +Rr +pO +rX +Rr +kc +mE +PO +PO PL PL PL @@ -37018,16 +39622,16 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -37038,29 +39642,29 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -37094,24 +39698,24 @@ PL PL PL PL -tU -tU -tU -tU -tU -tU -tU -tU -tU -tU +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC ad ad sD -md -md -md -md -md +CC +CC +CC +CC +CC PL PL PL @@ -37120,11 +39724,11 @@ PL PL PL PL -md -md -md -md -md +CC +CC +CC +CC +CC PL PL PL @@ -37138,19 +39742,19 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -37162,31 +39766,31 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -37209,22 +39813,6 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC @@ -37248,20 +39836,36 @@ kC kC kC kC -oJ -oJ -oJ -oJ -oJ -CC -CC -CC -CC -CC -CC -CC -CC -CC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +PO +jQ +aw +vJ +PO +mP +rG +Rr +Yv +vp +Gh +vp +Bp +PO PL PL PL @@ -37275,16 +39879,16 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -37295,29 +39899,29 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -37351,17 +39955,17 @@ PL PL PL PL -tU -tU -tU -tU -hs -hs -hs -hs -hs -hs -hs +CC +CC +CC +CC +Wx +Wx +Wx +Wx +Wx +Wx +Wx ad sD PL @@ -37395,19 +39999,19 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -37419,31 +40023,31 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -37466,22 +40070,6 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC @@ -37505,20 +40093,38 @@ kC kC kC kC -oJ -oJ -oJ -oJ -oJ -CC -CC -CC -CC -CC -CC -CC -CC -CC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +PO +Xf +dg +wd +PO +jr +Rr +Rr +oi +cC +zK +ZS +xp +CH +PL +PL PL PL PL @@ -37530,51 +40136,49 @@ PL PL PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +PL +PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX PL PL PL PL PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX PL -Rl -Rl -Rl -Rl -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -37596,11 +40200,11 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -37612,13 +40216,13 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx ad sD PL @@ -37633,12 +40237,12 @@ aA PL PL PL -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC PL PL PL @@ -37652,19 +40256,19 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -37676,31 +40280,31 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -37725,20 +40329,20 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -37762,20 +40366,20 @@ kC kC kC kC -oJ -oJ -oJ -oJ -oJ -CC -CC -CC -CC -CC -CC -CC -CC -CC +PO +PO +PO +PO +PO +pC +Rr +Ko +rG +Ph +Ph +Ph +RD +kb PL PL PL @@ -37790,14 +40394,14 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -37809,29 +40413,29 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +PL PL -Rl -Rl -Rl -Rl -EX -EX -EX -EX -EX -EX -EX -EX -EX +PL +PL +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -37853,11 +40457,11 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -37869,13 +40473,13 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx ad sD PL @@ -37890,12 +40494,12 @@ aA aA aA aA -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC PL PL PL @@ -37909,19 +40513,19 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -37933,31 +40537,31 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -37982,20 +40586,20 @@ kC kC kC kC -Ty -Ty -Ty -Ty -md +kC +kC +kC +kC +CC PL PL -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC kC kC kC @@ -38019,20 +40623,20 @@ kC kC kC kC -oJ -oJ -oJ -oJ -oJ -CC -CC -CC -CC -CC -CC -CC -CC -CC +PO +ju +WN +ew +PO +YM +Rr +Rr +Rr +Ph +Ph +NZ +Vr +kb PL PL PL @@ -38066,29 +40670,29 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL -Rl -Rl -Rl -Rl -EX -EX -EX -EX -EX -EX -EX -EX -EX +PL +PL +PL +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -38110,11 +40714,11 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -38126,13 +40730,13 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx ad sD PL @@ -38147,13 +40751,12 @@ aA aA aA aA -md -md -md -md -md -md -PL +CC +CC +CC +CC +CC +CC PL PL PL @@ -38166,20 +40769,20 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -38190,31 +40793,32 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -38239,20 +40843,20 @@ kC kC kC kC -Ty -Ty -Ty -Ty -md +kC +kC +kC +kC +CC PL PL PL -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC kC kC kC @@ -38276,20 +40880,20 @@ kC kC kC kC -oJ -oJ -oJ -oJ -oJ -oJ -CC -CC -CC -CC -CC -CC -CC -CC +PO +Dk +iS +JF +OE +Ko +Rr +Rr +Rr +Ph +Ph +Ph +FY +kb PL PL PL @@ -38323,29 +40927,29 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL -Rl -Rl -Rl -Rl -Rl -Rl -EX -EX -EX -EX -EX -EX -EX +PL +PL +PL +PL +PL +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -38367,29 +40971,29 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx ad sD PL @@ -38404,12 +41008,12 @@ aA aA aA aA -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC PL PL PL @@ -38423,19 +41027,19 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -38457,21 +41061,21 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -38496,20 +41100,20 @@ kC kC kC kC -Ty -Ty -Ty -Ty -md +kC +kC +kC +kC +CC PL PL PL -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC kC PL kC @@ -38519,12 +41123,12 @@ kC kC kC PL -Gl -Gl -Gl -Gl -Gl -Gl +PL +PL +PL +PL +PL +PL PL PL PL @@ -38533,20 +41137,20 @@ kC kC kC kC -oJ -oJ -oJ -oJ -oJ -oJ -CC -CC -CC -CC -CC -CC -CC -CC +PO +YP +mq +So +PO +CI +Rr +Oa +oi +bE +Ph +Ph +Ph +RN PL PL PL @@ -38580,29 +41184,29 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL -Rl -Rl -Rl -Rl -Rl -Rl -EX -EX -EX -EX -EX -EX -EX +PL +PL +PL +PL +PL +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -38624,17 +41228,17 @@ PL PL PL PL -hs -hs -hs -hs -hs Wx -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -38643,10 +41247,10 @@ PL PL PL PL -hs -hs -hs -hs +Wx +Wx +Wx +Wx ad sD PL @@ -38661,12 +41265,12 @@ aA aA aA aA -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC PL PL PL @@ -38714,21 +41318,21 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -38753,20 +41357,20 @@ kC kC kC kC -Ty -Ty -Ty -Ty -md +kC +kC +kC +kC +CC PL PL PL PL -md -md -md -md -md +CC +CC +CC +CC +CC PL PL kC @@ -38776,12 +41380,12 @@ kC kC PL PL -Gl +PL BY BY BY BY -Gl +PL PL PL PL @@ -38790,20 +41394,20 @@ kC kC kC kC -oJ -oJ -oJ -oJ -oJ -oJ -CC -CC -CC -CC -CC -CC -CC -CC +PO +PO +PO +PO +PO +hb +aY +wq +Hf +RF +Gi +Gi +EC +PO PL PL PL @@ -38881,17 +41485,17 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx ad -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -38900,10 +41504,10 @@ PL PL PL PL -hs -hs -hs -hs +Wx +Wx +Wx +Wx ad sD PL @@ -38911,19 +41515,19 @@ aA aA aA aA -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -38958,34 +41562,34 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -39019,11 +41623,11 @@ PL PL PL PL -md +CC PL PL PL -md +CC PL PL kC @@ -39033,12 +41637,12 @@ kC kC PL PL -Gl +PL BY BY BY BY -Gl +PL PL PL PL @@ -39051,16 +41655,16 @@ kC kC kC kC -oJ -oJ -oJ -CC -CC -CC -CC -CC -CC -CC +PO +PO +PO +AD +PO +PO +pG +qW +PO +PO PL PL PL @@ -39094,17 +41698,17 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -39144,11 +41748,11 @@ ad ad ad ad -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -39157,10 +41761,10 @@ PL PL PL PL -hs -hs -hs -hs +Wx +Wx +Wx +Wx ad sD PL @@ -39168,19 +41772,19 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -39214,35 +41818,35 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -39290,12 +41894,12 @@ PL PL PL PL -Gl +PL BY BY BY BY -Gl +PL PL PL PL @@ -39329,46 +41933,46 @@ PL PL PL PL -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -39402,11 +42006,11 @@ sD sD ad ad -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -39425,19 +42029,19 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -39471,35 +42075,35 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -39520,7 +42124,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -39547,12 +42151,12 @@ PL PL PL PL -Gl -Gl -Gl -Gl -Gl -Gl +PL +PL +PL +PL +PL +PL PL PL PL @@ -39586,49 +42190,49 @@ PL PL PL PL -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -39659,11 +42263,11 @@ PL PL sD ad -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -39671,10 +42275,10 @@ PL PL PL PL -hs -hs -hs -hs +Wx +Wx +Wx +Wx ad ad sD @@ -39682,19 +42286,19 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -39708,15 +42312,15 @@ PL PL PL PL -jl -jl -jl -jl -jl -jl -jl -jl -jl +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -39728,35 +42332,35 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -39826,12 +42430,12 @@ kC kC kC kC -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC PL PL PL @@ -39843,51 +42447,51 @@ PL PL PL PL -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -39917,10 +42521,10 @@ PL sD ad ad -hs -hs -hs -hs +Wx +Wx +Wx +Wx PL PL PL @@ -39928,30 +42532,30 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx ad sD PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -39965,15 +42569,15 @@ PL PL PL PL -jl -jl -jl -jl -jl -jl -jl -jl -jl +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -39985,35 +42589,35 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -40083,16 +42687,16 @@ kC kC kC kC -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -40100,51 +42704,51 @@ PL PL PL PL -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -40152,32 +42756,32 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL -EX -EX -EX +Wx +Wx +Wx PL PL sD sD ad -hs -hs -hs -hs +Wx +Wx +Wx +Wx PL PL PL @@ -40185,30 +42789,30 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx ad sD PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -40222,15 +42826,15 @@ PL PL PL PL -jl -jl -jl -jl -jl -jl -jl -jl -jl +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -40242,35 +42846,35 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -40340,16 +42944,16 @@ kC kC kC kC -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -40357,51 +42961,51 @@ PL PL PL PL -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -40409,29 +43013,29 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL sD ad -hs +Wx PL PL PL @@ -40439,14 +43043,14 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx ad sD PL @@ -40479,15 +43083,15 @@ PL PL PL PL -jl -jl -jl -jl -jl -jl -jl -jl -jl +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -40499,35 +43103,35 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -40543,13 +43147,13 @@ Al Al kC kC +lH +lH kC kC kC kC -kC -kC -kC +lH kC kC kC @@ -40597,16 +43201,16 @@ kC kC kC kC -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -40614,51 +43218,51 @@ PL PL PL PL -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -40666,24 +43270,24 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL sD @@ -40696,14 +43300,14 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx ad sD PL @@ -40736,15 +43340,15 @@ PL PL PL PL -jl -jl -jl -jl -jl -jl -jl -jl -jl +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -40756,35 +43360,35 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -40800,8 +43404,8 @@ Al Al kC kC -kC -kC +lH +lH kC kC kC @@ -40854,16 +43458,16 @@ kC kC kC kC -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -40871,51 +43475,51 @@ PL PL PL PL -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -40923,25 +43527,25 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL sD @@ -40953,14 +43557,14 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx ad sD PL @@ -40993,15 +43597,15 @@ PL PL PL PL -jl -jl -jl -jl -jl -jl -jl -jl -jl +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -41013,35 +43617,35 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -41057,7 +43661,7 @@ Al Al kC kC -kC +lH kC kC kC @@ -41092,10 +43696,10 @@ PL PL PL PL -Gl -Gl -Gl -Gl +PL +PL +PL +PL PL PL PL @@ -41111,94 +43715,94 @@ kC kC kC kC -md -md -md -md -md -md -md -md -md -md -PL -PL -PL -PL -PL -PL -PL -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp PL +CC +CC +CC +CC +CC +CC +CC PL +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +PL +PL +PL +PL +PL +PL +PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL sD @@ -41210,14 +43814,14 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx ad sD PL @@ -41250,15 +43854,15 @@ PL PL PL PL -jl -jl -jl -jl -jl -jl -jl -jl -jl +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -41270,35 +43874,35 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -41349,10 +43953,10 @@ PL PL PL PL -Gl +PL BY BY -Gl +PL PL PL PL @@ -41366,70 +43970,70 @@ kC kC kC kC -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -41442,37 +44046,37 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL sD ad -hs -hs -hs -hs +Wx +Wx +Wx +Wx PL PL PL -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx ad ad ad @@ -41507,15 +44111,15 @@ PL PL PL PL -jl -jl -jl -jl -jl -jl -jl -jl -jl +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -41527,35 +44131,35 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -41606,10 +44210,10 @@ PL PL PL PL -Gl +PL BY BY -Gl +PL PL PL PL @@ -41623,70 +44227,70 @@ kC kC kC kC -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -41699,36 +44303,36 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL sD ad -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx ad ad sD @@ -41764,15 +44368,15 @@ PL PL PL PL -jl -jl -jl -jl -jl -jl -jl -jl -jl +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -41784,34 +44388,34 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -41863,10 +44467,10 @@ PL PL PL PL -Gl +PL BY BY -Gl +PL PL PL PL @@ -41880,70 +44484,70 @@ kC kC kC kC -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -41956,34 +44560,34 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL sD ad -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx ad ad ad @@ -42021,15 +44625,15 @@ PL PL PL PL -jl -jl -jl -jl -jl -jl -jl -jl -jl +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -42041,34 +44645,34 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -42120,10 +44724,10 @@ kC PL PL PL -Gl -Gl -Gl -Gl +PL +PL +PL +PL PL PL PL @@ -42137,70 +44741,70 @@ kC kC kC kC -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -42213,33 +44817,33 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL sD ad -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx ad ad sD @@ -42278,15 +44882,15 @@ PL PL PL PL -jl -jl -jl -jl -jl -jl -jl -jl -jl +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -42312,20 +44916,20 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -42394,70 +44998,70 @@ kC kC kC kC -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -42470,33 +45074,33 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL sD ad -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx ad sD sD @@ -42535,15 +45139,15 @@ PL PL PL PL -jl -jl -jl -jl -jl -jl -jl -jl -jl +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -42569,20 +45173,20 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -42622,11 +45226,11 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx kC kC kC @@ -42651,68 +45255,68 @@ PL kC kC kC -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -42727,33 +45331,33 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL sD ad -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx ad sD PL @@ -42792,15 +45396,15 @@ PL PL kC PL -jl -jl -jl -jl -jl -jl -jl -jl -jl +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -42809,37 +45413,37 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -42879,21 +45483,21 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx kC kC kC kC kC -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx kC kC kC @@ -42908,65 +45512,65 @@ PL kC kC kC -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -42984,33 +45588,33 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL sD ad -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx ad sD PL @@ -43049,15 +45653,15 @@ PL PL kC kC -jl -jl -jl -jl -jl -jl -jl -jl -jl +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -43066,37 +45670,37 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -43136,21 +45740,21 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx kC kC kC kC kC -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx kC kC kC @@ -43165,20 +45769,19 @@ BU kC kC kC -md -md -md -md -md -md -md -md -md -md -md -md -md -PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -43241,32 +45844,33 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL -sD -ad -ad -hs -hs -hs -hs -hs -hs -hs +PL +sD +ad +ad +Wx +Wx +Wx +Wx +Wx +Wx +Wx ad ad sD @@ -43279,20 +45883,20 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -43306,54 +45910,54 @@ PL PL kC kC -jl -jl -jl -jl -jl -jl -jl -jl -jl +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC PL PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -43393,21 +45997,21 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx kC kC kC @@ -43422,19 +46026,19 @@ kC kC kC PL -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -43498,20 +46102,20 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL sD @@ -43519,11 +46123,11 @@ sD ad ad ad -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx ad sD sD @@ -43536,20 +46140,20 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -43563,34 +46167,34 @@ PL PL kC kC -jl -jl -jl -jl -jl -jl -jl -jl -jl +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC PL @@ -43650,21 +46254,21 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx kC kC kC @@ -43679,19 +46283,19 @@ kC kC PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -43755,20 +46359,20 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -43793,20 +46397,20 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -43820,34 +46424,34 @@ PL PL kC kC -jl -jl -jl -jl -jl -jl -jl -jl -jl +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC kC @@ -43917,11 +46521,11 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx kC kC kC @@ -43936,19 +46540,19 @@ BU PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -44012,20 +46616,20 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -44050,25 +46654,25 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -PL -PL -PL -PL -PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +PL +PL +PL +PL +PL PL PL PL @@ -44078,33 +46682,33 @@ PL kC kC kC -jl -jl -jl -jl -jl -jl -jl -jl +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC kC @@ -44174,11 +46778,11 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx kC kC kC @@ -44199,13 +46803,13 @@ PL PL PL PL -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -44269,20 +46873,20 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -44307,20 +46911,20 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -44336,32 +46940,32 @@ kC kC kC kC -jl -jl -jl -jl -jl -jl -jl +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC kC @@ -44405,7 +47009,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -44469,16 +47073,16 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -44505,16 +47109,16 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -44526,15 +47130,15 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -44564,20 +47168,20 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -44594,31 +47198,31 @@ kC kC kC kC -jl -jl -jl -jl -jl -jl +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL -Ab -Ab -Ab -Ab -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC kC @@ -44662,7 +47266,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -44711,31 +47315,31 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -44745,33 +47349,33 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -44783,15 +47387,15 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -44821,20 +47425,20 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -44852,21 +47456,21 @@ kC kC kC kC -jl -jl -jl -jl -jl +Wx +Wx +Wx +Wx +Wx PL PL PL PL -lH -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC +kC kC kC kC @@ -44968,67 +47572,67 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -45040,15 +47644,15 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -45078,20 +47682,20 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -45118,16 +47722,16 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH -lH -lH kC -lH +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -45193,20 +47797,20 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -45225,67 +47829,67 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -kC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +eU PL -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -45297,15 +47901,15 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -45334,21 +47938,21 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -45377,14 +47981,14 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -45441,29 +48045,29 @@ kC kC PL PL -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -45482,67 +48086,67 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -kC -kC -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +eU +eU +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -45554,15 +48158,15 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -45591,21 +48195,21 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -45635,14 +48239,6 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH -lH -lH kC kC kC @@ -45677,6 +48273,14 @@ kC kC kC kC +lH +lH +lH +kC +kC +kC +kC +kC Al "} (173,1,1) = {" @@ -45698,29 +48302,29 @@ kC kC PL PL -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -45739,88 +48343,88 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Al -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +hs +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -45832,15 +48436,15 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -45848,21 +48452,21 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -45893,13 +48497,6 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH -lH kC kC kC @@ -45933,14 +48530,21 @@ kC kC kC kC +lH +lH +lH +kC +kC +kC +kC kC Al "} (174,1,1) = {" Al kC -kC -kC +lH +lH kC kC kC @@ -45955,29 +48559,29 @@ kC kC PL PL -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -45996,108 +48600,108 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Al -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +hs +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -hs -hs -hs -hs +Wx +Wx +Wx +Wx PL -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -46105,21 +48709,21 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -46150,12 +48754,10 @@ kC kC kC kC +kC +kC +kC lH -lH -lH -lH -lH -lH kC kC kC @@ -46185,6 +48787,8 @@ kC kC kC kC +lH +kC kC kC kC @@ -46212,35 +48816,29 @@ kC kC PL PL -hs -hs -hs -hs -hs -hs -hs -PL -PL -hs -hs -hs -hs -hs -hs -hs -PL -PL -hs -hs -hs -hs -hs -PL -PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -46253,130 +48851,136 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md PL PL PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Al -md -md -md -md -md -md -md -md -md -md -md PL PL PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +hs +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -46407,12 +49011,12 @@ kC kC kC kC -lH kC kC kC -lH -lH +kC +kC +kC kC kC kC @@ -46469,13 +49073,13 @@ kC kC PL PL -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -46487,11 +49091,11 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx kC PL PL @@ -46513,105 +49117,105 @@ PL PL PL PL -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Al -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +hs +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -46619,21 +49223,21 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -46666,12 +49270,12 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC +kC kC kC kC @@ -46782,93 +49386,93 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Al -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +hs +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -46880,17 +49484,17 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -46923,12 +49527,6 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH kC kC kC @@ -46956,6 +49554,12 @@ kC kC kC kC +lH +lH +lH +kC +kC +kC kC kC kC @@ -47050,104 +49654,104 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Al -md -md -md -md -md -md -md -md -md -md -md -PL -PL -PL -PL -PL -PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +hs +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md +PL +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -47180,12 +49784,12 @@ PL PL kC kC -lH -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC +kC kC kC kC @@ -47307,40 +49911,40 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Al -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +hs +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -47348,41 +49952,41 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -47394,17 +49998,17 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -47437,12 +50041,6 @@ PL kC kC kC -lH -lH -lH -lH -lH -lH kC kC kC @@ -47450,6 +50048,12 @@ kC kC kC kC +lH +lH +kC +kC +kC +kC kC kC kC @@ -47491,8 +50095,8 @@ kC kC kC kC -kC -kC +lH +lH kC kC kC @@ -47564,40 +50168,40 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Al -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +hs +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -47605,41 +50209,41 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -47651,17 +50255,17 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -47694,12 +50298,13 @@ PL kC kC kC -lH -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC +kC +kC lH lH kC @@ -47732,7 +50337,6 @@ kC kC kC kC -kC Al "} (181,1,1) = {" @@ -47821,40 +50425,40 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Al -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +hs +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -47862,41 +50466,41 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -47908,17 +50512,17 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -47951,14 +50555,14 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH -lH -lH +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -47998,8 +50602,8 @@ kC kC kC kC -kC -kC +lH +lH kC kC kC @@ -48073,45 +50677,45 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Al -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +hs +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -48119,21 +50723,21 @@ PL PL PL PL -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX -EX +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -48209,13 +50813,6 @@ kC kC kC lH -lH -lH -lH -lH -lH -lH -lH kC kC kC @@ -48223,6 +50820,13 @@ kC kC kC kC +lH +kC +kC +kC +kC +kC +kC kC kC kC @@ -48255,8 +50859,8 @@ kC kC kC kC -kC -kC +lH +lH kC kC kC @@ -48330,45 +50934,45 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Al -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +hs +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -48465,12 +51069,6 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH kC kC kC @@ -48479,6 +51077,12 @@ kC kC kC kC +lH +kC +kC +kC +kC +kC kC kC kC @@ -48587,45 +51191,45 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Al -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +hs +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -48844,45 +51448,45 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Al -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +hs +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -48990,10 +51594,10 @@ kC kC kC kC -kC -kC -kC -kC +lH +lH +lH +lH kC kC kC @@ -49053,6 +51657,8 @@ kC kC kC kC +lH +lH kC kC kC @@ -49075,15 +51681,13 @@ kC kC kC kC -kC -kC -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -49101,45 +51705,45 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Al -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +hs +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -49247,10 +51851,10 @@ kC kC kC kC -kC -kC -kC -kC +lH +lH +lH +lH kC kC kC @@ -49324,6 +51928,8 @@ kC kC kC kC +lH +lH kC kC kC @@ -49332,15 +51938,13 @@ kC kC kC kC -kC -kC -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -49358,45 +51962,45 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Al -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +hs +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -49504,10 +52108,10 @@ kC kC kC kC -kC -kC -kC -kC +lH +lH +lH +lH kC kC kC @@ -49566,6 +52170,8 @@ kC kC kC kC +lH +lH kC kC kC @@ -49589,15 +52195,13 @@ kC kC kC kC -kC -kC -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -49615,45 +52219,64 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Al -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +hs +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +PL +PL +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +PL +PL +PL +PL +PL PL PL PL @@ -49661,63 +52284,44 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp PL PL PL PL PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -md -md -md -md -md -md -md -md +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +uW +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -49771,9 +52375,9 @@ kC kC kC kC -kC -kC -kC +lH +lH +lH kC kC kC @@ -49823,6 +52427,8 @@ kC kC kC kC +lH +lH kC kC kC @@ -49846,15 +52452,13 @@ kC kC kC kC -kC -kC -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -49872,45 +52476,45 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Al -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +hs +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -49918,13 +52522,13 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -49944,9 +52548,9 @@ kC kC kC kC -kC -kC -kC +AM +AM +AM kC kC kC @@ -49967,14 +52571,14 @@ PL PL PL PL -md -md -md -md -md -md -md -md +uW +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -50068,6 +52672,8 @@ kC kC kC kC +lH +lH kC kC kC @@ -50103,17 +52709,15 @@ kC kC kC kC -kC -kC -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -50129,45 +52733,45 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Al -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +hs +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -50175,13 +52779,13 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -50199,11 +52803,11 @@ kC kC kC kC -kC -kC -kC -kC -kC +md +AM +AM +AM +AM kC kC kC @@ -50224,14 +52828,14 @@ PL PL PL PL -md -md -md -md -md -md -md -md +uW +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -50325,6 +52929,8 @@ kC kC kC kC +lH +lH kC kC kC @@ -50334,6 +52940,7 @@ kC kC kC kC +lH kC kC kC @@ -50359,18 +52966,15 @@ kC kC kC kC -kC -kC -kC -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -50386,45 +52990,45 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Al -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +hs +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -50432,13 +53036,13 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -50456,11 +53060,11 @@ kC kC kC kC -kC -kC -kC -kC -kC +md +AM +AM +AM +AM kC kC kC @@ -50481,14 +53085,14 @@ PL PL PL PL -md -md -md -md -md -md -md -md +uW +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -50553,8 +53157,8 @@ kC kC kC kC -kC -kC +lH +lH kC kC kC @@ -50619,15 +53223,15 @@ kC kC kC kC -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -50643,45 +53247,45 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Al -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +hs +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -50689,13 +53293,13 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -50715,8 +53319,8 @@ kC kC kC kC -kC -kC +AM +AM kC kC kC @@ -50738,14 +53342,14 @@ PL PL PL PL -md -md -md -md -md -md -md -md +uW +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -50810,8 +53414,8 @@ kC kC kC kC -kC -kC +lH +lH kC kC kC @@ -50876,15 +53480,15 @@ kC kC kC kC -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -50900,45 +53504,45 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Al -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +hs +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -50946,13 +53550,13 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -50972,8 +53576,8 @@ kC kC kC kC -kC -kC +AM +AM kC kC kC @@ -50995,14 +53599,14 @@ PL PL PL PL -md -md -md -md -md -md -md -md +uW +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -51084,6 +53688,8 @@ kC kC kC kC +lH +lH kC kC kC @@ -51120,6 +53726,8 @@ kC kC kC kC +lH +lH kC kC kC @@ -51129,22 +53737,18 @@ kC kC kC kC -kC -kC -kC -kC -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -51157,45 +53761,45 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Al -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +hs +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -51203,13 +53807,13 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -51228,10 +53832,10 @@ kC kC kC kC -kC -kC -kC -kC +AM +AM +AM +AM kC kC kC @@ -51252,14 +53856,14 @@ PL PL PL PL -md -md -md -md -md -md -md -md +uW +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -51345,8 +53949,8 @@ kC kC kC kC -kC -kC +lH +lH kC kC kC @@ -51393,15 +53997,15 @@ kC PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -51414,45 +54018,45 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Lp -Al -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +hs +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -51460,11 +54064,11 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC PL PL PL @@ -51486,12 +54090,12 @@ kC kC kC kC +AM +AM kC kC kC -kC -kC -kC +lH kC kC kC @@ -51509,14 +54113,14 @@ PL PL PL PL -md -md -md -md -md -md -md -md +uW +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -51650,15 +54254,15 @@ kC PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -51677,39 +54281,39 @@ PL PL PL PL -kC -Al -Al -Al -Al -Al -Al -Al -Al -Al -Al -Al -Al -Al -Al -Al -Al -Al -Al -Al -Al -Al -Al -md -md -md -md -md -md -md -md -md -md +eU +hs +hs +hs +hs +hs +hs +hs +hs +hs +hs +hs +hs +hs +hs +hs +hs +hs +hs +hs +hs +hs +hs +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -51717,11 +54321,11 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC PL PL PL @@ -51732,6 +54336,8 @@ kC kC kC kC +lH +lH kC kC kC @@ -51739,16 +54345,14 @@ kC kC kC kC +lH +lH +AM kC kC kC kC -kC -kC -kC -kC -kC -kC +lH kC kC kC @@ -51766,14 +54370,14 @@ PL PL PL PL -md -md -md -md -md -md -md -md +uW +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -51907,15 +54511,15 @@ kC PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -51923,50 +54527,50 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -51974,11 +54578,11 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC PL PL PL @@ -51989,6 +54593,8 @@ kC kC kC kC +lH +lH kC kC kC @@ -51996,11 +54602,9 @@ kC kC kC kC -kC -kC -kC -kC -kC +AM +AM +AM kC kC kC @@ -52023,13 +54627,13 @@ PL PL PL PL -md -md -md -md -md -md -md +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -52164,15 +54768,15 @@ kC PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -52180,50 +54784,50 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -52231,11 +54835,11 @@ PL PL PL PL -Lp -Lp -Lp -Lp -Lp +CC +CC +CC +CC +CC PL PL PL @@ -52255,9 +54859,9 @@ kC kC kC kC -kC -kC -kC +md +AM +AM kC kC kC @@ -52280,13 +54884,13 @@ PL PL PL PL -md -md -md -md -md -md -md +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -52421,15 +55025,15 @@ kC PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -52437,43 +55041,43 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -52512,9 +55116,9 @@ kC kC kC kC -kC -kC -kC +md +AM +AM kC kC kC @@ -52537,13 +55141,13 @@ PL PL PL PL -md -md -md -md -md -md -md +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -52586,14 +55190,14 @@ kC kC kC kC -AM -AM -AM -AM -AM -AM -AM -AM +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC kC @@ -52665,72 +55269,72 @@ kC kC kC kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -kC -PL -PL -PL -md -md -md -md -md -md -md -md -md -PL -PL -PL -PL -PL -PL -PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +PL +PL +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -52760,6 +55364,7 @@ kC kC kC kC +lH kC kC kC @@ -52769,9 +55374,8 @@ kC kC kC kC -kC -kC -kC +AM +AM kC kC kC @@ -52794,13 +55398,13 @@ PL PL PL PL -md -md -md -md -md -md -md +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -52827,44 +55431,44 @@ Ap jj dP al -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC kC -AM -AM -AM -AM -AM -AM -AM -AM +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC kC -mc -mc -mc -mc -mc -mc -mc -mc -mc kC kC +Ks +Ks +Ks +Ks +Ks +Ks +Ks +Ks +Ks kC kC kC @@ -52886,6 +55490,8 @@ kC kC kC kC +lH +lH kC kC kC @@ -52897,14 +55503,12 @@ kC kC kC kC +lH +lH +lH +lH kC -kC -kC -kC -kC -kC -kC -kC +lH kC kC kC @@ -52935,15 +55539,15 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -52951,43 +55555,43 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -53017,18 +55621,18 @@ kC kC kC kC +lH kC +lH +lH +lH +lH +lH kC kC kC -kC -kC -kC -kC -kC -kC -kC -kC +AM +AM kC kC kC @@ -53051,13 +55655,13 @@ PL PL PL PL -md -md -md -md -md -md -md +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -53074,54 +55678,54 @@ PL PL PL PL -AM -AM -AM -AM -AM +Ks +RI +RI +Ks +Ks al al cH al al -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC kC -AM -AM -AM -AM -AM -AM -AM -AM +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL kC kC -mc -mc -mc -mc -mc -mc -mc -mc -mc kC kC +Ks +ww +gW +oX +Ks +is +An +oX +Ks kC kC kC @@ -53143,6 +55747,8 @@ kC kC kC kC +lH +lH kC kC kC @@ -53159,9 +55765,7 @@ kC kC kC kC -kC -kC -kC +lH kC kC kC @@ -53192,15 +55796,15 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -53208,43 +55812,43 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -53276,17 +55880,17 @@ kC kC kC kC +lH +lH +lH +lH +lH kC kC kC -kC -kC -kC -kC -kC -kC -kC -kC +AM +AM +md kC kC kC @@ -53331,54 +55935,54 @@ PL PL PL PL -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -kC +RI +mc +mc +mc +mc +mc +Ks +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC -AM -AM -AM -AM -AM -AM -AM -AM +kC +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL kC -mc -mc -mc -mc -mc -mc -mc -mc -mc kC kC +Ks +nL +ND +cE +Ks +xc +ND +LB +Ks kC kC kC @@ -53394,6 +55998,8 @@ Al kC kC kC +lH +lH kC kC kC @@ -53423,10 +56029,8 @@ kC kC kC kC -kC -kC -kC -kC +lH +lH kC kC kC @@ -53449,15 +56053,15 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -53465,43 +56069,43 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -53533,17 +56137,17 @@ kC kC kC kC +lH +lH +lH +lH +lH kC kC kC -kC -kC -kC -kC -kC -kC -kC -kC +AM +AM +AM kC kC kC @@ -53588,54 +56192,54 @@ PL PL PL PL -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM +RI +mc +mc +Jj +uF +mc +Ks +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC kC -AM -AM -AM -AM -AM -AM -AM -AM +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +PL PL PL PL -AM -mc -mc -mc -mc -mc -mc -mc -mc -kC kC +Ks +BS +Bj +Vd +Ks +Bj +Bj +Vd +Ks kC kC kC @@ -53651,6 +56255,8 @@ Al kC kC kC +lH +lH kC kC kC @@ -53667,6 +56273,7 @@ kC kC kC kC +lH kC kC kC @@ -53679,11 +56286,8 @@ kC kC kC kC -kC -kC -kC -kC -kC +lH +lH kC kC kC @@ -53706,15 +56310,15 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -53722,43 +56326,43 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -53798,9 +56402,9 @@ kC kC kC kC -kC -kC -kC +AM +AM +AM kC kC kC @@ -53822,14 +56426,14 @@ kC PL PL al -md -md -md -md -md -md -md -md +uW +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -53845,54 +56449,54 @@ PL PL PL PL -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM +RI +mc +mc +Jj +Ks +Ks +Ks +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC AM -AM -AM -AM -AM -AM -AM -AM -AM +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL -AM -mc -mc -mc -mc -mc -mc -mc -mc -kC -kC +PL +BA +Ks +sN +Vd +Vd +Ks +hB +Vd +Vd +Ks kC kC kC @@ -53908,6 +56512,8 @@ Al kC kC kC +lH +lH kC kC kC @@ -53924,9 +56530,7 @@ kC kC kC kC -kC -kC -kC +lH kC kC kC @@ -53963,15 +56567,15 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -53979,43 +56583,43 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -54035,17 +56639,17 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -54079,14 +56683,14 @@ kC PL PL PL -md -md -md -md -md -md -md -md +uW +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -54102,61 +56706,61 @@ PL PL PL PL -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM +RI +mc +zs +mc +mc +PK +Ks +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx AM kC AM AM AM -AM -AM -AM -AM -AM -AM -AM -PL -PL -PL -AM -mc -mc -mc -mc -mc -mc -mc -mc -kC -kC -kC -kC +Wx +Wx +Wx +Wx +Wx +Wx +Wx +tu +tu +tu +tu +LJ +Ks +Ks +Ks +Oj +Ks +Ks +Ks +IT +Ks kC kC kC kC kC +lH +lH kC Al "} @@ -54165,6 +56769,8 @@ Al kC kC kC +lH +lH kC kC kC @@ -54186,9 +56792,7 @@ kC kC kC kC -kC -kC -kC +lH kC kC kC @@ -54220,59 +56824,59 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -54287,22 +56891,22 @@ PL PL PL kC +lH +lH +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC @@ -54336,14 +56940,14 @@ kC PL PL PL -md -md -md -md -md -md -md -md +uW +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -54359,54 +56963,54 @@ PL PL PL PL +Ks +Ks +Ks +NW +Ks +Ks +Ks +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx AM AM AM AM AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -PL -PL -PL -AM -mc -mc -mc -mc -mc -mc -mc +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Gl +Gl +Gl +Gl mc -kC -kC +ye +Vd +gW +Vd +Vd +wA +gW +fV +Ks kC kC kC @@ -54422,6 +57026,8 @@ Al kC kC kC +lH +lH kC kC kC @@ -54443,9 +57049,7 @@ kC kC kC kC -kC -kC -kC +lH kC kC kC @@ -54476,60 +57080,60 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -54545,21 +57149,21 @@ PL PL kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -md -md -md -md -md -Ty -Ty +kC +kC +kC +lH +lH +kC +kC +kC +CC +CC +CC +CC +CC +kC +kC kC kC kC @@ -54593,14 +57197,14 @@ kC PL PL PL -md -md -md -md -md -md -md -md +uW +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -54616,54 +57220,54 @@ PL PL PL PL +Wx +Wx +Lb +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx AM AM AM AM AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -PL -PL -PL -AM -mc -mc -mc -mc -mc -mc -mc -mc -kC -kC +Wx +Wx +Wx +Wx +Wx +Wx +Wx +tu +tu +tu +tu +mc +jS +Vd +wA +cl +Vd +wA +Vd +Vd +Ks kC kC kC @@ -54679,6 +57283,8 @@ Al kC kC kC +lH +lH kC kC kC @@ -54687,9 +57293,7 @@ kC kC kC kC -kC -kC -kC +lH kC kC kC @@ -54733,60 +57337,60 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -54802,21 +57406,21 @@ PL PL kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -md -md -md -md -md -md -md -Ty +kC +kC +kC +kC +kC +kC +kC +CC +CC +CC +CC +CC +CC +CC +kC kC kC PL @@ -54850,14 +57454,14 @@ kC PL PL PL -md -md -md -md -md -md -md -md +uW +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -54878,49 +57482,49 @@ PL PL PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx AM AM AM AM AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL -AM -mc -mc -mc -mc -mc -mc -mc -mc -kC -kC +PL +BA +Ks +Ks +Ks +Ks +Ks +Ks +Ks +Ks +Ks kC kC kC @@ -54946,8 +57550,8 @@ kC kC kC kC -kC -kC +lH +lH kC kC kC @@ -54990,60 +57594,60 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -55059,21 +57663,21 @@ PL PL PL PL -Ty -Ty -Ty -Ty -Ty -Ty -md -md -md -md -md -md -md -md -md +kC +kC +kC +kC +kC +kC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -55107,14 +57711,14 @@ PL PL PL PL -md -md -md -md -md -md -md -md +uW +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -55135,7 +57739,7 @@ PL PL PL PL -Ks +Wx PL PL PL @@ -55145,25 +57749,25 @@ PL PL PL PL -AM -AM -AM -AM -AM -AM -AM -AM +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx AM kC kC -AM -AM -AM -AM -AM -AM -AM -AM +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -55211,7 +57815,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -55247,16 +57851,16 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -55266,36 +57870,36 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -55316,21 +57920,21 @@ PL PL PL PL -Ty -Ty -Ty -Ty -Ty -md -md -md -md -md -md -md -md -md -md +kC +kC +kC +kC +kC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -55349,11 +57953,11 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -55364,12 +57968,12 @@ PL PL PL PL -md -md -md -md -md -md +uW +uW +uW +uW +uW +uW PL PL PL @@ -55392,7 +57996,7 @@ PL PL PL PL -mI +Gl PL PL PL @@ -55402,34 +58006,34 @@ PL PL PL PL -AM -AM -AM -AM -AM -AM -AM -AM +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC kC -AM -AM -AM -AM -AM -AM -AM -AM +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL -AM -mc -mc -mc -mc -mc +kC +kC +kC +kC +kC +kC kC kC kC @@ -55504,16 +58108,16 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -55524,35 +58128,35 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -55577,17 +58181,17 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -55605,13 +58209,13 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -55621,12 +58225,12 @@ PL PL PL PL -md -md -md -md -md -md +uW +uW +uW +uW +uW +uW PL PL PL @@ -55649,7 +58253,7 @@ PL PL PL PL -mI +Gl PL PL PL @@ -55659,34 +58263,34 @@ PL PL PL PL -AM -AM -AM -AM -AM -AM -AM -AM +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC PL kC -AM -AM -AM -AM -AM -AM -AM -AM +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL -AM -mc -mc -mc -mc -mc +kC +kC +kC +kC +kC +kC kC kC kC @@ -55742,10 +58346,10 @@ PL PL PL PL -hs -hs -hs -hs +Wx +Wx +Wx +Wx PL PL PL @@ -55781,35 +58385,35 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -55839,11 +58443,11 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -55862,13 +58466,13 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -55878,14 +58482,14 @@ PL PL PL PL -md -md -md -md -md -md -md -md +uW +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -55906,7 +58510,7 @@ PL PL PL PL -mI +Gl PL PL PL @@ -55916,40 +58520,40 @@ PL PL PL PL -AM -AM -AM -AM -AM -AM -AM -AM +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL kC -AM -AM -AM -AM -AM -AM -AM -AM +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL -AM -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -55986,8 +58590,8 @@ kC kC kC kC -kC -kC +lH +lH kC kC kC @@ -55998,12 +58602,12 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -56019,15 +58623,15 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -56038,35 +58642,35 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -56096,11 +58700,11 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -56119,13 +58723,13 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -56135,14 +58739,14 @@ PL PL PL PL -md -md -md -md -md -md -md -md +uW +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -56163,7 +58767,7 @@ PL PL PL PL -Ks +mc PL PL PL @@ -56173,40 +58777,40 @@ PL PL PL PL -AM -AM -AM -AM -AM -AM -AM -AM +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL kC -AM -AM -AM -AM -AM -AM -AM -AM +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL -AM -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -56243,8 +58847,8 @@ kC kC kC kC -kC -kC +lH +lH kC kC kC @@ -56254,14 +58858,14 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -56272,19 +58876,19 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -56295,35 +58899,35 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -56353,11 +58957,11 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -56376,13 +58980,13 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -56392,14 +58996,14 @@ PL PL PL PL -md -md -md -md -md -md -md -md +uW +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -56420,7 +59024,7 @@ PL PL PL PL -Ks +mc PL PL PL @@ -56430,40 +59034,40 @@ PL PL PL PL -AM -AM -AM -AM -AM -AM -AM -AM +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL -AM -AM -AM -AM -AM -AM -AM -AM -AM +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL -AM -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -56500,92 +59104,87 @@ kC kC kC kC +lH +lH kC kC kC kC kC -kC -kC -PL -PL -PL -PL -hs -hs -hs -hs -hs -hs -hs -hs -PL PL PL PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md PL PL PL PL PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md PL PL PL PL PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -56610,16 +59209,16 @@ PL PL PL PL -hs -hs -hs -hs -hs PL PL PL PL PL +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -56630,38 +59229,38 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs PL PL PL PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL -md -md -md -md -md -md -md -md PL PL PL PL PL +uW +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -56672,55 +59271,48 @@ PL PL PL PL -AM -AM -AM -AM -AM -AM PL PL PL PL PL +Ks +RI +RI +RI +Ks +mc PL PL PL PL -AM -AM -AM -AM -AM -AM -AM -AM PL PL PL PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL +tu +Gl +Gl +Gl +tu PL PL PL PL -AM -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc kC kC kC @@ -56728,10 +59320,6 @@ kC kC kC kC -Al -"} -(216,1,1) = {" -Al kC kC kC @@ -56744,10 +59332,20 @@ kC kC kC kC +Al +"} +(216,1,1) = {" +Al kC kC +lH +lH +lH +lH +lH kC kC +lH kC kC kC @@ -56763,86 +59361,87 @@ kC kC kC kC +lH +lH +kC +kC +kC +kC kC PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -PL -PL -PL -PL -PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md PL PL PL PL PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md PL PL PL PL PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -56867,16 +59466,16 @@ PL PL PL PL -hs -hs -hs -hs -hs PL PL PL PL PL +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -56887,38 +59486,38 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs PL PL PL PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL -md -md -md -md -md -md -md -md PL PL PL PL PL +uW +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -56929,55 +59528,48 @@ PL PL PL PL -AM -AM -AM -AM -AM -AM PL PL PL PL PL +RI +Wx +Wx +Wx +Wx +Wx PL PL PL PL -AM -AM -AM -AM -AM -AM -AM -AM PL PL PL PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL +tu +Gl +Gl +Gl +tu PL PL PL PL -AM -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc kC kC kC @@ -56985,10 +59577,6 @@ kC kC kC kC -Al -"} -(217,1,1) = {" -Al kC kC kC @@ -57001,6 +59589,22 @@ kC kC kC kC +Al +"} +(217,1,1) = {" +Al +kC +kC +lH +lH +lH +kC +kC +kC +kC +lH +kC +kC kC kC kC @@ -57022,20 +59626,20 @@ kC kC PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -57043,19 +59647,19 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -57066,35 +59670,35 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -57124,11 +59728,11 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -57144,38 +59748,33 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -PL -PL -PL -PL -PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL -md -md -md -md -md -md -md -md PL PL PL PL PL +uW +uW +uW +uW +uW +uW +uW +uW PL PL PL @@ -57186,55 +59785,48 @@ PL PL PL PL -AM -AM -AM -AM -AM -AM PL PL PL PL PL +RI +Wx +Wx +Wx +Wx +Wx PL PL PL PL -AM -AM -AM -AM -AM -AM -AM -AM PL PL PL PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL +tu +Gl +Gl +Gl +tu PL PL PL PL -AM -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc kC kC kC @@ -57242,10 +59834,6 @@ kC kC kC kC -Al -"} -(218,1,1) = {" -Al kC kC kC @@ -57258,8 +59846,15 @@ kC kC kC kC +Al +"} +(218,1,1) = {" +Al kC kC +lH +lH +lH kC kC kC @@ -57269,6 +59864,15 @@ kC kC kC kC +lH +lH +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -57279,40 +59883,20 @@ kC kC PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -PL -PL -PL -PL -PL -PL -PL -md -md -md -md -md -md -md -md -md -md -md -md -md +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -57320,43 +59904,58 @@ PL PL PL PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md PL PL PL PL PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -57381,16 +59980,16 @@ PL PL PL PL -hs -hs -hs -hs -hs PL PL PL PL PL +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -57401,36 +60000,36 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs PL PL PL PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL -md -md -md -md -md -md PL PL PL PL PL +uW +uW +uW +uW +uW +uW PL PL PL @@ -57443,55 +60042,48 @@ PL PL PL PL -AM -AM -AM -AM -AM -AM PL PL PL PL PL +RI +Wx +Wx +Wx +Wx +Wx PL PL PL PL -AM -AM -AM -AM -AM -AM -AM -AM PL PL PL PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL +tu +Gl +Gl +Gl +tu PL PL PL PL -AM -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc kC kC kC @@ -57499,6 +60091,18 @@ kC kC kC kC +kC +kC +kC +kC +kC +kC +kC +lH +lH +lH +lH +lH Al "} (219,1,1) = {" @@ -57510,12 +60114,15 @@ kC kC kC kC +lH kC kC kC kC kC kC +lH +lH kC kC kC @@ -57531,89 +60138,81 @@ kC kC kC kC -kC -kC -kC -PL -PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -PL -PL -PL PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md PL PL PL PL PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL -md -md -md -md -md -md -md -md -md -md -md PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -57638,16 +60237,16 @@ PL PL PL PL -hs -hs -hs -hs -hs PL PL PL PL PL +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -57656,38 +60255,38 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs PL PL PL PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL -md -md -md -md -md -md PL PL PL PL PL +uW +uW +uW +uW +uW +uW PL PL PL @@ -57700,55 +60299,60 @@ PL PL PL PL -AM -AM -AM -AM -AM -AM PL PL PL PL PL +RI +Wx +Wx +Wx +Wx +Wx PL PL PL PL -AM -AM -AM -AM -AM -AM -AM -AM PL PL PL PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL +tu +Gl +Gl +Gl +tu PL PL PL PL -AM -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -57793,88 +60397,79 @@ kC kC PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -PL -PL -PL -PL -PL -PL -PL -PL -md -md -md -md -md -md -md -md -md -md -md -md -PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL PL PL PL -md -md -md -md -md -md -md -md -md -md PL PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md PL PL PL PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -57895,11 +60490,6 @@ PL PL PL PL -hs -hs -hs -hs -hs PL PL PL @@ -57909,22 +60499,15 @@ PL PL PL PL +Wx +Wx +Wx +Wx +Wx PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs PL PL PL @@ -57934,12 +60517,18 @@ PL PL PL PL -md -md -md -md -md -md +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -57949,6 +60538,12 @@ PL PL PL PL +uW +uW +uW +uW +uW +uW PL PL PL @@ -57957,12 +60552,6 @@ PL PL PL PL -AM -AM -AM -AM -AM -AM PL PL PL @@ -57972,6 +60561,12 @@ PL PL PL PL +RI +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -57994,18 +60589,27 @@ PL PL PL PL -AM -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc +tu +Gl +Gl +Gl +tu +PL +PL +PL +PL +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -58050,20 +60654,20 @@ kC PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -58072,18 +60676,18 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -58091,43 +60695,38 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL Tm PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -PL -PL -PL -PL -PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -58152,16 +60751,16 @@ PL PL PL PL -hs -hs -hs -hs -hs PL PL PL PL PL +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -58170,23 +60769,23 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs PL PL PL PL PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -58214,17 +60813,17 @@ PL PL PL PL -AM -AM -AM -AM -AM -AM PL PL PL PL PL +Ks +Ks +Ks +Wx +Wx +Wx PL PL PL @@ -58247,22 +60846,27 @@ PL PL PL PL +tu +Gl +Gl +Gl +tu PL PL PL PL -AM -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc +kC +kC +kC +kC +kC +kC +kC +lH +lH +kC +kC +kC kC kC kC @@ -58307,20 +60911,20 @@ kC PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -58332,15 +60936,15 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -58348,38 +60952,38 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -58409,11 +61013,11 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -58422,23 +61026,23 @@ al PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -58472,15 +61076,8 @@ PL PL kC kC -FW +kC Ks -mI -mI -mI -mI -mI -mI -mI PL PL PL @@ -58506,20 +61103,27 @@ PL PL PL PL +tu +Gl +Gl +Gl +tu PL PL -AM -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc +PL +PL +kC +kC +kC +kC +kC +kC +kC +lH +lH +kC +kC +kC kC kC kC @@ -58568,12 +61172,12 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -58589,54 +61193,61 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +PL +PL +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL PL -md -md -md -md -md -md -md -md -md PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md PL PL PL @@ -58659,6 +61270,11 @@ PL PL PL PL +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -58666,11 +61282,24 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -58678,24 +61307,6 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs PL PL PL @@ -58720,6 +61331,10 @@ PL PL PL PL +kC +kC +kC +Ks PL PL PL @@ -58727,20 +61342,9 @@ PL PL PL PL -kC -kC -FW -Ks -mI -mI -mI -mI -mI -mI -mI -AM -AM -AM +Wx +Wx +Wx PL PL PL @@ -58756,27 +61360,27 @@ PL PL PL PL -AM -AM -AM -AM -AM +Wx +Wx +Wx +Wx +Wx PL PL PL PL -AM -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc +kC +kC +kC +kC +kC +kC +kC +lH +lH +kC +kC +kC kC kC kC @@ -58846,15 +61450,15 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -58862,38 +61466,38 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -58923,11 +61527,11 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -58935,24 +61539,24 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -58986,18 +61590,8 @@ PL PL kC kC -FW +kC Ks -mI -mI -mI -mI -mI -mI -mI -AM -AM -AM PL PL PL @@ -59005,6 +61599,9 @@ PL PL PL PL +Wx +Wx +Wx PL PL PL @@ -59013,24 +61610,31 @@ PL PL PL PL -AM -AM -AM -AM -AM -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc +PL +PL +PL +PL +PL +PL +PL +Ks +Ks +NW +Ks +Ks +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -59103,15 +61707,15 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -59119,38 +61723,38 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -59180,11 +61784,11 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -59192,24 +61796,24 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -59243,18 +61847,8 @@ PL PL kC kC -FW +kC Ks -mI -mI -mI -mI -mI -mI -mI -AM -AM -AM PL PL PL @@ -59262,6 +61856,9 @@ PL PL PL PL +Wx +Wx +Wx PL PL PL @@ -59270,23 +61867,17 @@ PL PL PL PL -AM -AM -AM -AM -AM -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc +PL +PL +PL +PL +PL +PL +PL +Ks +RP mc +Hi mc kC kC @@ -59298,6 +61889,19 @@ kC kC kC kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC Al "} (226,1,1) = {" @@ -59360,15 +61964,54 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +PL +PL +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -59376,38 +62019,6 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md PL PL PL @@ -59430,6 +62041,11 @@ PL PL PL PL +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -59437,11 +62053,24 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -59449,24 +62078,6 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs PL PL PL @@ -59491,6 +62102,10 @@ PL PL PL PL +kC +kC +kC +Ks PL PL PL @@ -59498,20 +62113,9 @@ PL PL PL PL -kC -kC -FW -Ks -mI -mI -mI -mI -mI -mI -mI -AM -AM -AM +Wx +Wx +Wx PL PL PL @@ -59527,24 +62131,24 @@ PL PL PL PL -AM -AM -AM -AM -AM -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc +RI mc mc mc +md +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -59617,15 +62221,15 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -59633,38 +62237,38 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -59694,11 +62298,11 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -59707,23 +62311,23 @@ PL PL PL PL -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -59757,18 +62361,8 @@ PL kC kC kC -FW +kC Ks -mI -mI -mI -mI -mI -mI -mI -AM -AM -AM PL PL PL @@ -59776,6 +62370,9 @@ PL PL PL PL +Wx +Wx +Wx PL PL PL @@ -59784,20 +62381,27 @@ PL PL PL PL -AM -AM -AM -AM -AM -mc -mc -mc -mc -mc -mc -mc -mc +PL +PL +PL +PL +PL +PL +PL +RI +NY mc +md +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -59820,7 +62424,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -59890,38 +62494,38 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -59951,11 +62555,11 @@ PL PL PL PL -hs -hs -hs -hs -hs +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -60014,17 +62618,8 @@ PL kC kC kC -FW +kC Ks -mI -mI -mI -mI -mI -mI -mI -AM -AM PL PL PL @@ -60032,6 +62627,8 @@ PL PL PL PL +Wx +Wx PL PL PL @@ -60041,20 +62638,27 @@ PL PL PL PL -AM -AM -AM -AM -AM -mc -mc -mc -mc -mc -mc -mc -mc +PL +PL +PL +PL +PL +PL +PL +RI +NY mc +BA +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -60072,18 +62676,42 @@ kC Al "} (229,1,1) = {" -uW -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH +Al +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL PL PL PL @@ -60243,6 +62871,12 @@ PL PL PL PL +kC +kC +kC +kC +kC +Ks PL PL PL @@ -60251,6 +62885,7 @@ PL PL PL PL +Wx PL PL PL @@ -60267,51 +62902,20 @@ PL PL PL PL +Ks +Ks +mc +kC +kC +kC +kC +kC +kC +kC kC kC kC kC -FW -Ks -mI -mI -mI -mI -mI -mI -mI -mI -AM -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -AM -AM -AM -AM -AM -mc -mc -mc -mc -mc -mc -mc -mc -mc kC kC kC @@ -60329,18 +62933,18 @@ kC Al "} (230,1,1) = {" -uW -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH +Al +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC PL PL PL @@ -60528,17 +63132,8 @@ kC kC kC kC -FW +kC Ks -mI -mI -mI -mI -mI -mI -mI -mI -mI PL PL PL @@ -60556,18 +63151,16 @@ PL PL PL PL -AM -AM -AM -AM -mc -mc -mc -mc -mc -mc -mc -mc +PL +PL +PL +PL +PL +PL +PL +PL +PL +Ks mc kC kC @@ -60583,21 +63176,32 @@ kC kC kC kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC Al "} (231,1,1) = {" -uW -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH +Al +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC PL PL PL @@ -60791,11 +63395,6 @@ Ks Ks Ks Ks -mI -mI -mI -mI -mI PL PL PL @@ -60813,19 +63412,24 @@ PL PL PL PL -AM -AM -AM -AM -mc -mc -mc -mc -mc -mc -mc +PL +PL +PL +PL +PL +Ks mc mc +BA +kC +kC +kC +kC +kC +lH +kC +kC +kC kC kC kC @@ -60843,18 +63447,18 @@ kC Al "} (232,1,1) = {" -uW -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH +Al +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC PL PL PL @@ -61048,11 +63652,6 @@ kC kC kC Ks -mI -mI -mI -mI -mI PL PL PL @@ -61070,18 +63669,23 @@ PL PL PL PL -AM -AM -AM -AM -mc -mc -mc -mc -mc -mc -mc -mc +PL +PL +PL +PL +PL +Ks +PK +ov +kC +kC +kC +kC +kC +kC +lH +kC +kC kC kC kC @@ -61100,18 +63704,18 @@ kC Al "} (233,1,1) = {" -uW -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH +Al +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC PL PL PL @@ -61305,18 +63909,17 @@ kC kC kC Ks -AM -mI -AM -AM -AM -AM -AM -AM -AM -AM -AM +Wx PL +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -61326,14 +63929,11 @@ PL PL PL PL -AM -AM -AM -AM -AM -mc -mc -mc +PL +Wx +Ks +Ks +Ks kC kC kC @@ -61349,6 +63949,10 @@ kC kC kC kC +lH +kC +kC +kC kC kC kC @@ -61357,18 +63961,18 @@ kC Al "} (234,1,1) = {" -uW -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH +Al +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC PL PL PL @@ -61561,18 +64165,18 @@ kC kC kC kC -mc -mc -mc -mc -mc -AM -AM -AM -AM -AM -AM -AM +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -61583,14 +64187,12 @@ PL PL PL PL -AM -AM -AM -AM -AM -mc -mc -mc +Wx +Wx +Wx +Wx +Wx +kC kC kC kC @@ -61604,6 +64206,8 @@ kC kC kC kC +lH +kC kC kC kC @@ -61614,18 +64218,18 @@ kC Al "} (235,1,1) = {" -uW -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH +Al +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC PL PL PL @@ -61818,18 +64422,18 @@ kC kC kC kC -mc -mc -mc -mc -mc -AM -AM -AM -AM -AM -AM -AM +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -61840,13 +64444,11 @@ PL PL PL PL -AM -AM -AM -AM -AM -kC -kC +Wx +Wx +Wx +Wx +Wx kC kC kC @@ -61860,6 +64462,8 @@ kC kC kC kC +lH +lH kC kC kC @@ -61871,18 +64475,18 @@ kC Al "} (236,1,1) = {" -uW -lH -lH -lH -lH -lH -lH -lH -lH -lH +Al +kC +kC lH lH +kC +kC +kC +kC +kC +kC +kC PL PL PL @@ -62075,18 +64679,18 @@ kC kC kC kC -mc -mc -mc -mc -mc -AM -AM -AM -AM -AM -AM -AM +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -62097,14 +64701,11 @@ PL PL PL PL -AM -AM -AM -AM -AM -kC -kC -kC +Wx +Wx +Wx +Wx +Wx kC kC kC @@ -62114,9 +64715,12 @@ kC kC kC kC +lH +lH kC kC kC +lH kC kC kC @@ -62128,18 +64732,18 @@ kC Al "} (237,1,1) = {" -uW -lH -lH -lH -lH -lH -lH -lH -lH -lH +Al +kC +kC lH lH +kC +kC +kC +kC +kC +kC +kC PL PL PL @@ -62331,19 +64935,19 @@ kC kC kC kC -mc -mc -mc -mc -mc -mc -AM -AM -AM -AM -AM -AM -AM +kC +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx +Wx +Wx +Wx PL PL PL @@ -62354,13 +64958,13 @@ PL PL PL PL -AM -AM -AM -AM -AM -AM -AM +Wx +Wx +Wx +Wx +Wx +Wx +Wx kC kC kC @@ -62385,18 +64989,18 @@ kC Al "} (238,1,1) = {" -uW -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH +Al +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC PL PL PL @@ -62588,27 +65192,27 @@ kC kC kC kC -mc -mc -mc -mc -mc -mc -mc -mc -mc -AM -AM -AM -AM +kC +kC +kC +kC +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx PL PL PL PL kC -AM -AM -AM +Wx +Wx +Wx PL PL PL @@ -62617,7 +65221,7 @@ PL PL PL PL -AM +Wx kC kC kC @@ -62642,18 +65246,18 @@ kC Al "} (239,1,1) = {" -uW -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH +Al +kC +kC +kC +kC +kC lH +kC +kC +kC +kC +kC PL PL PL @@ -62842,30 +65446,30 @@ kC kC kC kC +lH +lH kC kC kC -mc -mc -mc -mc -mc -mc -mc -mc -mc -AM -AM -AM -AM kC kC kC kC kC -AM -AM -AM +kC +kC +Wx +Wx +Wx +Wx +kC +kC +kC +kC +kC +Wx +Wx +Wx PL PL PL @@ -62874,7 +65478,7 @@ PL PL PL PL -AM +Wx kC kC kC @@ -62905,7 +65509,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -63099,31 +65703,31 @@ kC kC kC kC +lH +lH kC kC kC -mc -mc -mc -mc -mc -mc -mc -mc -mc -AM -AM -AM -AM kC kC kC kC kC -AM -AM -AM -AM +kC +kC +Wx +Wx +Wx +Wx +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx PL PL PL @@ -63190,14 +65794,14 @@ PL PL al al -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC PL PL PL @@ -63225,11 +65829,11 @@ PL PL PL PL -md -md -md -md -md +CC +CC +CC +CC +CC PL PL PL @@ -63316,11 +65920,11 @@ PL PL PL PL -md -md -md -md -md +CC +CC +CC +CC +CC PL PL PL @@ -63356,48 +65960,40 @@ kC kC kC kC +lH kC kC kC -mc -mc -mc -mc -mc -mc -mc -mc -mc -AM -AM -AM -AM kC kC kC kC kC -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM kC kC kC +Wx +Wx +Wx +Wx kC kC -mc -mc -mc -mc +kC +kC +kC +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +kC kC kC kC @@ -63410,6 +66006,14 @@ kC kC kC kC +kC +lH +lH +kC +kC +kC +kC +kC Al "} (242,1,1) = {" @@ -63447,16 +66051,16 @@ al al al al -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC kC kC kC @@ -63482,11 +66086,11 @@ PL PL PL kC -md -md -md -md -md +CC +CC +CC +CC +CC kC kC kC @@ -63573,11 +66177,11 @@ PL PL PL PL -md -md -md -md -md +CC +CC +CC +CC +CC PL PL PL @@ -63613,48 +66217,48 @@ kC kC kC kC +lH kC kC kC -mc -mc -mc -mc -mc -mc -mc -mc -mc -AM -AM -AM -AM kC kC kC kC kC -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM +kC +kC +kC +Wx +Wx +Wx +Wx +kC +kC +kC +kC +kC +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +kC +kC +kC +kC kC kC kC kC kC -mc -mc -mc -mc kC kC kC @@ -63704,18 +66308,18 @@ PL PL al al -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC kC kC kC @@ -63739,11 +66343,11 @@ PL PL kC kC -md -md -md -md -md +CC +CC +CC +CC +CC kC kC kC @@ -63830,11 +66434,11 @@ PL PL PL kC -md -md -md -md -md +CC +CC +CC +CC +CC kC kC kC @@ -63873,12 +66477,6 @@ kC kC kC kC -mc -mc -mc -mc -mc -mc kC kC kC @@ -63891,27 +66489,33 @@ kC kC kC kC -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM kC kC kC kC kC -mc -mc -mc -mc +kC +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -63933,7 +66537,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -63961,18 +66565,18 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC kC kC kC @@ -64130,12 +66734,6 @@ kC kC kC kC -mc -mc -mc -mc -mc -mc kC kC kC @@ -64149,26 +66747,32 @@ kC kC kC kC -mc -AM -AM -AM -AM -AM -AM -AM -AM -AM -AM kC kC kC kC kC -mc -mc -mc -mc +kC +kC +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -64190,6 +66794,7 @@ kC kC kC kC +lH kC kC kC @@ -64197,7 +66802,6 @@ kC kC kC kC -lH PL PL PL @@ -64218,21 +66822,21 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC kC kC kC @@ -64285,16 +66889,16 @@ PL PL kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC PL PL @@ -64386,13 +66990,7 @@ kC kC kC kC -mc -mc -mc -mc -mc -mc -mc +lH kC kC kC @@ -64406,26 +67004,32 @@ kC kC kC kC -mc -mc -AM -AM -AM -AM -AM -AM -AM -AM -AM kC kC kC kC kC -mc -mc -mc -mc +kC +kC +kC +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +Wx +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -64441,20 +67045,20 @@ kC Al "} (246,1,1) = {" -uW -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH +Al +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC PL PL PL @@ -64475,21 +67079,21 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC kC kC kC @@ -64542,16 +67146,16 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC PL @@ -64606,7 +67210,7 @@ kC kC kC kC -kC +lH kC kC kC @@ -64643,13 +67247,31 @@ kC kC kC kC -mc -mc -mc -mc -mc -mc -mc +lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -64663,26 +67285,8 @@ kC kC kC kC -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc kC kC -mc -mc -mc -mc -mc -mc -mc kC kC kC @@ -64698,20 +67302,20 @@ kC Al "} (247,1,1) = {" -uW -lH -lH -lH -lH -lH -lH -FW -FW -FW -FW -FW -FW -FW +Al +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC PL PL PL @@ -64732,21 +67336,21 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC kC kC kC @@ -64769,9 +67373,9 @@ kC kC kC kC -kC -kC -kC +lH +lH +lH kC kC kC @@ -64799,16 +67403,16 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -64900,13 +67504,6 @@ kC kC kC kC -mc -mc -mc -mc -mc -mc -mc kC kC kC @@ -64920,23 +67517,30 @@ kC kC kC kC -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc kC kC kC -mc -mc -mc -mc +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +lH +lH +kC +kC +kC kC kC kC @@ -64955,20 +67559,20 @@ kC Al "} (248,1,1) = {" -uW -lH -lH -lH -lH -lH -lH -FW -FW -FW -FW -FW -FW -FW +Al +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC PL PL PL @@ -64989,21 +67593,21 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC kC kC kC @@ -65026,6 +67630,9 @@ kC kC kC kC +lH +lH +lH kC kC kC @@ -65046,26 +67653,23 @@ kC kC kC kC +PL +kC +kC +kC +kC +kC +kC +kC kC kC kC -PL kC kC kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC @@ -65157,13 +67761,6 @@ kC kC kC kC -mc -mc -mc -mc -mc -mc -mc kC kC kC @@ -65177,23 +67774,30 @@ kC kC kC kC -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc kC kC kC -mc -mc -mc -mc +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +lH +lH +kC +kC +kC kC kC kC @@ -65212,20 +67816,20 @@ kC Al "} (249,1,1) = {" -uW -lH -lH -lH -lH -lH -lH -FW -FW -FW -FW -FW -FW -FW +Al +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC PL PL PL @@ -65246,18 +67850,18 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC +CC kC kC kC @@ -65290,6 +67894,9 @@ kC kC kC kC +lH +lH +kC kC kC kC @@ -65314,15 +67921,6 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC @@ -65375,10 +67973,16 @@ kC kC kC kC +lH +kC +kC +kC kC kC kC kC +lH +kC kC kC kC @@ -65412,15 +68016,19 @@ kC kC kC kC +lH +lH +kC +kC +kC +kC +kC +kC kC kC kC kC kC -mc -mc -mc -mc kC kC kC @@ -65434,23 +68042,9 @@ kC kC kC kC -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc kC kC kC -mc -mc -mc -mc kC kC kC @@ -65466,23 +68060,33 @@ kC kC kC kC +kC +kC +kC +kC +Al +Al +Al +Al +Al +Al Al "} (250,1,1) = {" -uW -lH -lH -lH -lH -lH -lH -FW -FW -FW -FW -FW -FW -FW +Al +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC PL PL PL @@ -65503,15 +68107,15 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC kC kC kC @@ -65551,6 +68155,8 @@ kC kC kC kC +lH +lH kC kC kC @@ -65570,16 +68176,13 @@ kC kC kC kC +lH kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC +lH +lH +lH +lH kC kC kC @@ -65597,6 +68200,7 @@ kC kC kC kC +lH kC kC kC @@ -65613,6 +68217,7 @@ kC kC kC kC +lH kC kC kC @@ -65649,21 +68254,6 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH kC kC kC @@ -65691,23 +68281,35 @@ kC kC kC kC -mc -mc -mc -mc -mc -mc -mc -mc -mc -mc +kC +lH +lH +kC +kC +kC +kC +lH +lH +kC +kC +lH +lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC -mc -mc -mc -mc kC kC kC @@ -65718,6 +68320,8 @@ kC kC kC kC +kC +Al zk zk zk @@ -65726,20 +68330,20 @@ zk Al "} (251,1,1) = {" -uW -lH -lH -lH -lH -lH -lH -FW -FW -FW -FW -FW -FW -FW +Al +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC PL PL PL @@ -65760,15 +68364,15 @@ PL PL PL PL -md -md -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC +CC +CC kC kC kC @@ -65780,6 +68384,64 @@ kC kC kC kC +lH +kC +kC +kC +kC +kC +kC +lH +lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +lH +lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +lH +lH +lH +lH +kC +kC +kC +kC +lH +lH +lH +lH +kC +kC kC kC kC @@ -65827,15 +68489,6 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC @@ -65907,19 +68560,6 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH kC kC kC @@ -65938,6 +68578,70 @@ kC kC kC kC +Al +zk +Qx +Qx +Qx +zk +Al +"} +(252,1,1) = {" +Al +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +PL +CC +CC +CC +CC +CC +CC +CC +CC +CC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -65952,12 +68656,6 @@ kC kC kC kC -mc -mc -mc -mc -mc -mc kC kC kC @@ -65975,62 +68673,6 @@ kC kC kC kC -zk -Qx -Qx -Qx -zk -Al -"} -(252,1,1) = {" -uW -lH -lH -lH -lH -lH -lH -FW -FW -FW -FW -FW -FW -FW -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -PL -md -md -md -md -md -md -md -md -md -kC -kC -kC -kC -kC kC kC kC @@ -66043,6 +68685,10 @@ kC kC kC kC +lH +lH +lH +lH kC kC kC @@ -66084,16 +68730,6 @@ kC kC kC kC -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty -Ty kC kC kC @@ -66132,6 +68768,7 @@ kC kC kC kC +lH kC kC kC @@ -66141,6 +68778,9 @@ kC kC kC kC +lH +lH +lH kC kC kC @@ -66164,19 +68804,6 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH kC kC kC @@ -66194,11 +68821,6 @@ kC kC kC kC -mc -mc -mc -mc -mc kC kC kC @@ -66209,16 +68831,20 @@ kC kC kC kC -mc -mc -mc -mc -mc -mc kC kC kC kC +Al +zk +Qx +Gn +Qx +zk +Al +"} +(253,1,1) = {" +Al kC kC kC @@ -66232,28 +68858,6 @@ kC kC kC kC -zk -Qx -Gn -Qx -zk -Al -"} -(253,1,1) = {" -uW -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH kC kC kC @@ -66274,13 +68878,13 @@ PL PL PL kC -md -md -md -md -md -md -md +CC +CC +CC +CC +CC +CC +CC kC kC kC @@ -66327,6 +68931,8 @@ kC kC kC kC +lH +lH kC kC kC @@ -66341,16 +68947,10 @@ kC kC kC kC -Ty kC -Ty kC kC -Ty -Ty -Ty kC -Ty kC kC kC @@ -66379,6 +68979,25 @@ kC kC kC kC +lH +lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -66421,19 +69040,6 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH kC kC kC @@ -66451,11 +69057,6 @@ kC kC kC kC -mc -mc -mc -mc -mc kC kC kC @@ -66489,6 +69090,9 @@ kC kC kC kC +kC +kC +Al zk Qx Qx @@ -66632,6 +69236,18 @@ kC kC kC kC +lH +lH +kC +kC +kC +kC +kC +kC +kC +kC +kC +kC kC kC kC @@ -66678,19 +69294,6 @@ kC kC kC kC -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH -lH kC kC kC @@ -66708,11 +69311,6 @@ kC kC kC kC -mc -mc -mc -mc -mc kC kC kC @@ -66746,6 +69344,12 @@ kC kC kC kC +kC +kC +kC +kC +kC +Al zk zk zk @@ -66935,19 +69539,19 @@ Al Al Al Al -uW -uW -uW -uW -uW -uW -uW -uW -uW -uW -uW -uW -uW +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al +Al Al Al Al diff --git a/_maps/map_files/Pahrump/Pahrump-Surface-2.dmm b/_maps/map_files/Pahrump/Pahrump-Surface-2.dmm index f121f74271..7102e2df12 100644 --- a/_maps/map_files/Pahrump/Pahrump-Surface-2.dmm +++ b/_maps/map_files/Pahrump/Pahrump-Surface-2.dmm @@ -366,7 +366,7 @@ dir = 4 }, /obj/effect/spawner/lootdrop/clothing_high, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/lowmid, /turf/open/floor/plasteel/barber{ icon = 'icons/turf/f13floors2.dmi'; icon_state = "bluerustychess2" @@ -541,12 +541,9 @@ /turf/open/indestructible/ground/outside/dirt, /area/f13/village) "akA" = ( -/obj/machinery/autolathe, +/obj/effect/decal/cleanable/cobweb, /obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster/prewar/poster80{ - pixel_y = 31 - }, -/turf/open/floor/f13/wood, +/turf/open/floor/wood/wood_tiled, /area/f13/raiders) "akI" = ( /obj/structure/chair/f13foldupchair{ @@ -597,7 +594,10 @@ }, /area/f13/wasteland) "alE" = ( +/obj/effect/decal/cleanable/dirt, /obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen/fountain, /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/ncr) "alI" = ( @@ -749,6 +749,12 @@ icon_state = "bluerustychess2" }, /area/f13/building) +"aoG" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "aoJ" = ( /obj/structure/car/rubbish3, /turf/open/indestructible/ground/outside/road{ @@ -993,6 +999,12 @@ icon_state = "housebase" }, /area/f13/building) +"atQ" = ( +/mob/living/simple_animal/hostile/ghoul, +/turf/open/indestructible/ground/outside/sidewalk{ + icon_state = "verticalrightborderright0" + }, +/area/f13/wasteland) "atT" = ( /obj/structure/rack, /obj/item/clothing/glasses/regular, @@ -1050,9 +1062,6 @@ }, /area/f13/building) "auH" = ( -/obj/machinery/light{ - dir = 8 - }, /obj/structure/table/reinforced, /obj/item/flashlight/seclite, /obj/item/flashlight/seclite, @@ -1060,6 +1069,9 @@ /obj/item/flashlight/seclite, /obj/item/flashlight/seclite, /obj/item/flashlight/seclite, +/obj/machinery/light{ + dir = 1 + }, /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/ncr) "auU" = ( @@ -1091,9 +1103,6 @@ id = "hangar1"; name = "Door Control" }, -/obj/machinery/light{ - dir = 1 - }, /turf/open/floor/plasteel/f13{ icon_state = "plating" }, @@ -1122,6 +1131,15 @@ icon_state = "horizontalbottombordertop2" }, /area/f13/tunnel) +"awn" = ( +/obj/structure/obstacle/barbedwire/end{ + dir = 1; + pixel_x = 6 + }, +/turf/open/indestructible/ground/outside/road{ + icon_state = "horizontalinnermain0" + }, +/area/f13/tunnel) "awu" = ( /obj/structure/chair/stool{ dir = 8; @@ -1217,7 +1235,7 @@ }, /area/f13/building) "ayx" = ( -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/floor/f13/wood, /area/f13/building) "ayC" = ( @@ -1246,6 +1264,10 @@ dir = 10 }, /area/f13/village) +"azm" = ( +/obj/structure/chair/stool/retro, +/turf/open/indestructible/ground/outside/dirt, +/area/f13/wasteland) "azz" = ( /obj/item/ammo_casing/a556, /turf/open/indestructible/ground/outside/sidewalk{ @@ -1369,12 +1391,15 @@ }, /area/f13/wasteland) "aBT" = ( -/obj/machinery/door/unpowered/securedoor{ - desc = "Door with a built-in lock. Can't be padlocked. You can smell the whisky and toughness from even outside the door."; - name = "Ranger's Office"; - req_access_txt = "121" +/obj/effect/decal/cleanable/dirt{ + color = "000000" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/f13{ + icon_state = "plating" }, -/turf/open/floor/wood/wood_diagonal, /area/f13/ncr) "aBY" = ( /obj/machinery/microwave/stove, @@ -1382,6 +1407,14 @@ icon_state = "whitegreenrustychess" }, /area/f13/ncr) +"aCe" = ( +/obj/structure/obstacle/barbedwire/end{ + dir = 4 + }, +/turf/open/indestructible/ground/outside/sidewalk{ + icon_state = "horizontalbottomborderbottom0" + }, +/area/f13/wasteland) "aCt" = ( /obj/effect/decal/cleanable/dirt{ color = "#363636" @@ -1467,15 +1500,14 @@ /turf/open/floor/f13/wood, /area/f13/building) "aDX" = ( -/obj/structure/table, -/obj/structure/bedsheetbin/towel, -/obj/machinery/light{ - dir = 1 +/obj/effect/decal/cleanable/dirt{ + color = "000000" }, -/turf/open/floor/plasteel/f13{ - icon_state = "plating" +/turf/open/indestructible/ground/outside/sidewalk{ + dir = 8; + icon_state = "outerpavement" }, -/area/f13/ncr) +/area/f13/wasteland) "aEq" = ( /mob/living/simple_animal/hostile/wolf, /turf/open/indestructible/ground/outside/road{ @@ -1498,6 +1530,13 @@ icon_state = "horizontalinnermain0" }, /area/f13/tunnel) +"aET" = ( +/obj/structure/table, +/obj/structure/barricade/bars, +/turf/open/indestructible/ground/outside/sidewalk{ + icon_state = "verticalleftborderleft0" + }, +/area/f13/wasteland) "aFb" = ( /obj/structure/nest/protectron{ layer = 3; @@ -1942,7 +1981,7 @@ /area/f13/building) "aOE" = ( /obj/structure/displaycase, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/floor/f13/wood{ icon_state = "housewood2" }, @@ -2006,6 +2045,7 @@ name = "East Gatehouse Shutters"; pixel_x = -25 }, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/f13{ icon_state = "darkdirtysolid" }, @@ -2083,13 +2123,14 @@ /turf/open/floor/f13/wood, /area/f13/clinic) "aSW" = ( -/obj/machinery/workbench/bottler, /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small{ dir = 1; - pixel_y = 31 + pixel_x = -24 + }, +/obj/structure/stairs/east{ + color = "#A47449" }, -/obj/structure/table, /turf/open/floor/f13/wood, /area/f13/raiders) "aSY" = ( @@ -2189,16 +2230,6 @@ }, /turf/open/indestructible/ground/outside/desert, /area/f13/wasteland) -"aVY" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Gatehouse"; - req_access = null; - req_access_txt = "121" - }, -/turf/open/floor/f13{ - icon_state = "darkdirtysolid" - }, -/area/f13/ncr) "aWg" = ( /obj/structure/table, /obj/item/storage/pill_bottle/chem_tin/radx, @@ -2381,8 +2412,14 @@ }, /area/f13/building) "bal" = ( -/obj/structure/sign/poster/ncr/keep_to_myself, -/turf/closed/wall/r_wall/rust, +/obj/machinery/door/airlock/security/glass{ + name = "Gatehouse"; + req_access = null; + req_access_txt = "121" + }, +/turf/open/floor/f13{ + icon_state = "darkdirtysolid" + }, /area/f13/ncr) "baq" = ( /mob/living/simple_animal/hostile/radscorpion/black, @@ -2676,12 +2713,12 @@ }, /area/f13/building) "bgd" = ( -/obj/structure/table, /obj/effect/decal/cleanable/dirt, -/obj/item/stack/sheet/metal/five, +/obj/structure/table, /obj/item/stack/sheet/glass/five, +/obj/item/stack/sheet/metal/five, /turf/open/floor/f13/wood{ - icon_state = "housewood2-broken" + icon_state = "housewood3-broken" }, /area/f13/raiders) "bgk" = ( @@ -2828,10 +2865,9 @@ /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/f13/legion) "bix" = ( -/obj/structure/rack, -/obj/effect/spawner/bundle/f13/greasegun, -/obj/effect/spawner/bundle/f13/guns/rockwell, /obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/bundle/f13/greasegun, +/obj/structure/rack/shelf_metal, /turf/open/floor/f13/wood, /area/f13/raiders) "biA" = ( @@ -2905,6 +2941,16 @@ }, /turf/open/floor/plasteel/f13/vault_floor/white, /area/f13/village) +"bjP" = ( +/obj/effect/decal/marking{ + icon_state = "doublehorizontal" + }, +/obj/effect/decal/remains/human, +/obj/item/clothing/head/f13/ncr, +/turf/open/indestructible/ground/outside/road{ + icon_state = "horizontalinnermain0" + }, +/area/f13/tunnel) "bjT" = ( /obj/machinery/workbench, /obj/item/stack/sheet/metal/twenty, @@ -3422,8 +3468,8 @@ }, /area/f13/wasteland) "btM" = ( -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, /obj/effect/spawner/lootdrop/trash, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/indestructible/ground/outside/dirt, /area/f13/building) "btR" = ( @@ -3581,6 +3627,11 @@ icon_state = "horizontaltopbordertop0" }, /area/f13/wasteland) +"bwK" = ( +/obj/machinery/light/small, +/obj/machinery/workbench, +/turf/open/indestructible/ground/inside/mountain, +/area/f13/caves) "bwM" = ( /obj/effect/landmark/start/f13/auxilia, /obj/effect/decal/cleanable/dirt, @@ -3629,6 +3680,15 @@ icon_state = "floorrustysolid" }, /area/f13/caves) +"bxK" = ( +/obj/effect/decal/cleanable/dirt{ + color = "000000" + }, +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "bxM" = ( /obj/structure/table, /obj/item/storage/toolbox/electrical, @@ -3909,6 +3969,14 @@ icon_state = "outerpavementcorner" }, /area/f13/wasteland) +"bEy" = ( +/obj/structure/obstacle/barbedwire{ + dir = 4 + }, +/turf/open/indestructible/ground/outside/sidewalk{ + icon_state = "verticalleftborderleft2bottom" + }, +/area/f13/wasteland) "bEP" = ( /obj/machinery/smartfridge/bottlerack, /turf/open/indestructible/ground/outside/dirt, @@ -3951,7 +4019,7 @@ "bFV" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/f13/armor/tier2, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/lowmid, /turf/open/floor/f13/wood{ icon_state = "housewood2" }, @@ -3970,6 +4038,7 @@ /area/f13/building) "bGu" = ( /obj/machinery/photocopier, +/obj/structure/table, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust{ name = "metal plating" }, @@ -4038,7 +4107,7 @@ /turf/open/floor/f13/wood, /area/f13/building) "bIm" = ( -/obj/effect/mine/stun, +/obj/item/mine/stun, /turf/open/floor/plasteel/barber{ icon = 'icons/turf/f13floors2.dmi'; icon_state = "bluerustychess2" @@ -4117,7 +4186,7 @@ /obj/effect/decal/cleanable/dirt{ color = "#363636" }, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/floor/plasteel/f13/vault_floor/white, /area/f13/village) "bKa" = ( @@ -4255,8 +4324,10 @@ "bNn" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table/reinforced, -/obj/item/paper_bin, -/obj/item/pen/fountain, +/obj/machinery/computer/terminal{ + dir = 4; + termtag = "Camp Miller Prisons" + }, /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/ncr) "bNt" = ( @@ -4380,6 +4451,9 @@ /area/f13/building) "bQh" = ( /obj/structure/table, +/obj/machinery/light{ + dir = 8 + }, /turf/open/floor/f13{ icon_state = "bluerustysolid" }, @@ -4499,15 +4573,6 @@ icon_state = "dirt" }, /area/f13/wasteland) -"bRz" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/white/box, -/obj/structure/closet, -/obj/item/restraints/handcuffs, -/turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, -/area/f13/ncr) "bRD" = ( /obj/structure/simple_door/metal, /obj/machinery/door/poddoor/shutters{ @@ -4548,6 +4613,13 @@ /obj/item/clothing/under/f13/classdress, /turf/open/indestructible/ground/outside/desert, /area/f13/wasteland) +"bSN" = ( +/obj/structure/table, +/obj/structure/barricade/sandbags, +/turf/open/indestructible/ground/outside/sidewalk{ + icon_state = "verticalleftborderleft0" + }, +/area/f13/wasteland) "bSR" = ( /obj/structure/bed/mattress/pregame, /obj/effect/spawner/lootdrop/f13/advcrafting, @@ -4905,12 +4977,13 @@ }, /area/f13/village) "cbM" = ( -/obj/structure/rack, /obj/effect/decal/cleanable/dirt, /obj/item/flashlight/glowstick/red, /obj/item/flashlight/glowstick/red, /obj/item/flashlight/glowstick/red, /obj/item/reagent_containers/food/drinks/bottle/molotov/filled, +/obj/structure/rack/shelf_metal, +/obj/machinery/light/floor, /turf/open/floor/f13/wood{ icon_state = "housewood2-broken" }, @@ -5010,7 +5083,7 @@ "cey" = ( /obj/structure/table/wood, /obj/effect/spawner/lootdrop/f13/weapon/gun/ammo/tier3, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/floor/f13/wood, /area/f13/village) "ceM" = ( @@ -5089,9 +5162,6 @@ }, /area/f13/followers) "cgN" = ( -/obj/machinery/light{ - dir = 4 - }, /obj/effect/turf_decal/stripes/white/box, /obj/structure/closet, /obj/item/restraints/handcuffs, @@ -5417,10 +5487,8 @@ }, /area/f13/wasteland) "cos" = ( -/obj/machinery/workbench/forge, /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/f13/wood, +/turf/closed/wall/f13/wood/house, /area/f13/raiders) "cot" = ( /obj/structure/closet/crate{ @@ -5553,9 +5621,8 @@ }, /area/f13/building) "crg" = ( -/obj/structure/table, /obj/effect/decal/cleanable/dirt, -/obj/item/binoculars, +/obj/machinery/workbench/forge, /turf/open/floor/f13/wood, /area/f13/raiders) "crp" = ( @@ -5772,6 +5839,13 @@ icon_state = "horizontaltopbordertop0" }, /area/f13/building) +"cxi" = ( +/obj/structure/table, +/obj/structure/barricade/bars, +/turf/open/indestructible/ground/outside/road{ + icon_state = "verticalleftborderright0" + }, +/area/f13/wasteland) "cxL" = ( /obj/structure/car/rubbish3, /turf/open/indestructible/ground/outside/dirt{ @@ -6093,7 +6167,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/effect/mine/stun, +/obj/item/mine/stun, /turf/open/floor/plasteel/barber{ icon = 'icons/turf/f13floors2.dmi'; icon_state = "bluerustychess2" @@ -6112,9 +6186,6 @@ /obj/structure/table/reinforced, /obj/item/paper_bin, /obj/item/pen/fountain, -/obj/machinery/light{ - dir = 8 - }, /turf/open/floor/f13{ icon_state = "darkrusty" }, @@ -6540,12 +6611,6 @@ icon_state = "housewood2" }, /area/f13/building) -"cQA" = ( -/mob/living/simple_animal/hostile/ghoul, -/turf/open/indestructible/ground/outside/sidewalk{ - icon_state = "horizontaloutermain2" - }, -/area/f13/wasteland) "cQC" = ( /obj/structure/barricade/wooden/strong, /obj/structure/barricade/wooden/planks/pregame, @@ -6791,10 +6856,11 @@ /turf/open/floor/wood/f13/oak, /area/f13/building) "cWy" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/cobweb, -/obj/machinery/chem_master/advanced, /obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/machinery/chem_heater{ + pixel_y = 5 + }, /turf/open/floor/f13/wood, /area/f13/raiders) "cWG" = ( @@ -6848,6 +6914,12 @@ }, /turf/open/floor/plasteel/f13/vault_floor/red/white, /area/f13/building) +"cXr" = ( +/obj/structure/safe, +/obj/effect/spawner/lootdrop/f13/cash_random_med, +/obj/item/gun/energy/laser/wattz, +/turf/open/floor/f13/wood, +/area/f13/village) "cXt" = ( /obj/structure/rack, /obj/item/reagent_containers/food/snacks/grown/oat, @@ -6929,9 +7001,11 @@ /obj/structure/table/wood, /obj/structure/junk/small/tv{ desc = "Advertisements would've played on this tv before the bombs dropped."; + icon = 'icons/fallout/objects/decorations.dmi'; + icon_state = "television"; name = "pre-war advertising television"; - pixel_x = 1; - pixel_y = 8 + pixel_x = 0; + pixel_y = 0 }, /turf/open/floor/wood/f13/old{ icon_state = "housebase" @@ -6999,7 +7073,8 @@ /turf/open/floor/plasteel/f13/vault_floor/misc/cafeteria, /area/f13/building) "dbr" = ( -/obj/machinery/vending/dinnerware, +/obj/machinery/light, +/obj/structure/closet/crate/bin, /turf/open/floor/f13{ icon_state = "whitegreenrustychess" }, @@ -7038,9 +7113,13 @@ /turf/open/indestructible/ground/outside/desert, /area/f13/building) "dbW" = ( -/obj/machinery/deepfryer, -/turf/open/floor/f13/wood, -/area/f13/building) +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/f13{ + icon_state = "plating" + }, +/area/f13/ncr) "dbY" = ( /obj/effect/spawner/lootdrop/trash, /turf/open/indestructible/ground/outside/road{ @@ -7194,6 +7273,13 @@ /obj/machinery/computer/slot_machine, /turf/open/floor/wood/f13/oak, /area/f13/bar) +"dgl" = ( +/obj/structure/obstacle/barbedwire/end{ + dir = 1; + pixel_x = 6 + }, +/turf/open/indestructible/ground/outside/sidewalk, +/area/f13/wasteland) "dgp" = ( /obj/item/paper/pamphlet{ desc = "a trashy prewar comic book"; @@ -7255,6 +7341,32 @@ icon_state = "rubblecorner" }, /area/f13/wasteland) +"dhx" = ( +/obj/effect/decal/cleanable/dirt{ + color = "000000" + }, +/obj/structure/table/wood, +/obj/machinery/blackbox_recorder{ + desc = "The main machine of the Ham Radio that allows you to send and recieve messages from Ranger HQ."; + icon = 'icons/fallout/machines/radio.dmi'; + icon_state = "gannets_machine21"; + name = "Ham Radio"; + pixel_y = 10 + }, +/obj/machinery/msgterminal/ncr{ + density = 1; + desc = "Where messages are sent and received."; + dir = 4; + icon = 'icons/fallout/machines/radio.dmi'; + icon_state = "radio_mic3"; + name = "Ham Radio"; + pixel_x = 9; + pixel_y = 5; + plane = -4; + terminal = "NCR Ham Radio" + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "dhB" = ( /obj/structure/chair/stool{ dir = 4; @@ -7351,17 +7463,8 @@ /turf/open/indestructible/ground/outside/desert, /area/f13/wasteland) "djh" = ( -/obj/structure/table, -/obj/machinery/chem_dispenser, -/obj/machinery/light/small{ - dir = 8; - light_color = "#d8b1b1"; - pixel_y = -32 - }, -/obj/structure/sign/poster/contraband/pinup_pink{ - pixel_x = -31 - }, /obj/effect/decal/cleanable/dirt, +/obj/structure/table, /turf/open/floor/f13/wood, /area/f13/raiders) "djI" = ( @@ -7430,17 +7533,8 @@ }, /area/f13/building) "dku" = ( -/obj/item/bedsheet/medical, -/obj/structure/curtain{ - color = "#845f58" - }, -/obj/structure/bed/old, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/f13{ - icon_state = "bluerustysolid" - }, +/obj/structure/sign/poster/ncr/keep_to_myself, +/turf/closed/wall/f13/store/constructed, /area/f13/ncr) "dkF" = ( /obj/effect/spawner/lootdrop/trash, @@ -7455,13 +7549,17 @@ }, /area/f13/wasteland) "dkW" = ( -/obj/effect/landmark/start/f13/pusher, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/glass, /turf/open/floor/f13/wood{ icon_state = "housewood3-broken" }, /area/f13/raiders) +"dkY" = ( +/obj/structure/table, +/obj/structure/barricade/sandbags, +/turf/open/indestructible/ground/outside/desert, +/area/f13/wasteland) "dlc" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/hatch{ @@ -7844,6 +7942,17 @@ }, /turf/closed/wall/f13/wood, /area/f13/building) +"drP" = ( +/obj/structure/table/reinforced, +/obj/structure/barricade/bars, +/obj/machinery/door/poddoor/shutters{ + id = "ncrrgatehouse" + }, +/obj/structure/decoration/rag, +/turf/open/floor/f13{ + icon_state = "darkdirtysolid" + }, +/area/f13/ncr) "dsb" = ( /obj/structure/table/wood/settler, /obj/item/paper, @@ -8111,7 +8220,12 @@ icon_dead = "rottweiler_dead"; icon_living = "rottweiler"; icon_state = "rottweiler"; - name = "Sunflower" + name = "Sunflower"; + health = 200 + }, +/obj/machinery/light/small{ + dir = 1; + pixel_y = 31 }, /turf/open/floor/f13/wood, /area/f13/raiders) @@ -8121,6 +8235,11 @@ icon_state = "bluedirtychess2" }, /area/f13/followers) +"dxM" = ( +/obj/structure/table/wood/settler, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, +/turf/open/floor/f13/wood, +/area/f13/village) "dys" = ( /obj/structure/wreck/bus/rusted/segmented17, /turf/open/indestructible/ground/outside/desert, @@ -8130,8 +8249,9 @@ /turf/open/floor/f13/wood, /area/f13/village) "dyB" = ( -/obj/structure/decoration/clock/old/active, -/turf/closed/wall/f13/wood/interior, +/obj/structure/nest/ghoul, +/obj/structure/simple_door/interior, +/turf/open/floor/f13/wood, /area/f13/building) "dyQ" = ( /obj/structure/table/wood, @@ -8191,8 +8311,8 @@ /area/f13/ncr) "dzA" = ( /obj/structure/rack, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, /obj/effect/spawner/lootdrop/f13/weapon/gun/ammo/tier2, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/indestructible/ground/outside/road{ icon_state = "horizontaltopborderbottom0" }, @@ -8445,11 +8565,6 @@ "dEc" = ( /obj/effect/decal/cleanable/glass, /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 8; - light_color = "#d8b1b1"; - pixel_x = -6 - }, /turf/open/floor/f13/wood{ icon_state = "housewood3-broken" }, @@ -8554,10 +8669,13 @@ }, /area/f13/building) "dIj" = ( -/obj/structure/closet, -/obj/item/defibrillator/primitive, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/f13/wood, +/turf/open/floor/plasteel/stairs{ + barefootstep = "woodbarefoot"; + color = "#A47449"; + footstep = "wood"; + icon_state = "stairs-r" + }, /area/f13/raiders) "dIA" = ( /obj/structure/fence/wooden{ @@ -8659,7 +8777,7 @@ /obj/structure/table/wood/poker{ name = "felt table" }, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/floor/f13/wood{ icon_state = "housewood2" }, @@ -9119,7 +9237,7 @@ "dUW" = ( /obj/structure/closet, /obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, -/obj/effect/spawner/lootdrop/f13/weapon/melee/random_high, +/obj/effect/spawner/lootdrop/f13/weapon/melee/random_mid, /turf/open/floor/f13{ icon_state = "darkrusty" }, @@ -9159,8 +9277,9 @@ /turf/open/floor/plasteel/f13/vault_floor/blue, /area/f13/village) "dVw" = ( -/obj/structure/table, -/obj/item/storage/fancy/donut_box, +/obj/structure/stairs/north{ + color = "#A47449" + }, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust{ name = "metal plating" }, @@ -9213,10 +9332,10 @@ }, /area/f13/wasteland) "dWE" = ( -/obj/machinery/workbench, /obj/machinery/light/small{ dir = 1 }, +/obj/structure/anvil, /turf/open/indestructible/ground/inside/mountain, /area/f13/caves) "dWH" = ( @@ -9464,9 +9583,6 @@ }, /area/f13/building) "ebv" = ( -/obj/machinery/light{ - dir = 8 - }, /obj/structure/table/reinforced, /obj/item/ammo_box/shotgun/bean, /obj/effect/turf_decal/stripes/white/box, @@ -9725,8 +9841,11 @@ }, /area/f13/raiders) "egW" = ( -/turf/open/indestructible/ground/outside/savannah/bottomleft, -/area/f13/wasteland) +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/structure/bedsheetbin, +/turf/open/floor/f13/wood, +/area/f13/raiders) "eha" = ( /obj/structure/fence/handrail_corner{ dir = 1; @@ -9744,6 +9863,13 @@ icon_state = "floorrusty" }, /area/f13/building) +"ehj" = ( +/obj/structure/table, +/obj/structure/barricade/sandbags, +/turf/open/indestructible/ground/outside/road{ + icon_state = "verticalinnermain0" + }, +/area/f13/wasteland) "ehx" = ( /mob/living/simple_animal/hostile/securitron/sentrybot, /turf/open/floor/f13{ @@ -9890,6 +10016,19 @@ icon_state = "outerbordercorner" }, /area/f13/village) +"ely" = ( +/obj/structure/table/wood{ + pixel_x = 2 + }, +/obj/item/flashlight/lamp/green{ + pixel_x = -5; + pixel_y = 10 + }, +/obj/item/book/manual/nuka_recipes{ + pixel_x = 6 + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "elF" = ( /turf/open/floor/plasteel/f13{ icon_state = "platingdmg2" @@ -9902,7 +10041,7 @@ /obj/effect/decal/cleanable/dirt{ color = "000000" }, -/obj/structure/chair/booth{ +/obj/structure/chair/stool/retro/backed{ dir = 8 }, /turf/open/floor/f13/wood{ @@ -10164,6 +10303,12 @@ icon_state = "dirtcorner" }, /area/f13/building) +"ert" = ( +/obj/structure/chair/wood, +/turf/open/floor/f13{ + icon_state = "darkdirtysolid" + }, +/area/f13/ncr) "erB" = ( /obj/structure/table/wood/poker, /obj/item/toy/cards/deck, @@ -10373,6 +10518,14 @@ }, /turf/open/floor/plasteel/dark, /area/f13/building) +"euW" = ( +/obj/structure/table, +/obj/structure/barricade/bars, +/turf/open/indestructible/ground/outside/sidewalk{ + dir = 8; + icon_state = "outerpavement" + }, +/area/f13/wasteland) "evk" = ( /obj/structure/fence/wooden{ dir = 4; @@ -10513,6 +10666,8 @@ icon_state = "dottedverticaldegraded"; pixel_x = -15 }, +/obj/structure/table, +/obj/structure/barricade/sandbags, /turf/open/indestructible/ground/outside/road{ icon_state = "horizontalinnermain2" }, @@ -10568,6 +10723,11 @@ /obj/structure/chair/bench, /turf/open/floor/f13/wood, /area/f13/building) +"ezB" = ( +/obj/structure/table/wood, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, +/turf/open/floor/f13/wood, +/area/f13/village) "ezC" = ( /turf/open/floor/wood/f13/old/ruinedstraightnorth, /area/f13/bar) @@ -10666,6 +10826,13 @@ icon_state = "stairs-r" }, /area/f13/building) +"eCd" = ( +/obj/structure/sink/well{ + pixel_x = -32; + pixel_y = -20 + }, +/turf/open/indestructible/ground/outside/desert, +/area/f13/wasteland) "eCh" = ( /obj/structure/table/optable, /turf/open/floor/f13{ @@ -10722,7 +10889,7 @@ /area/f13/wasteland) "eDc" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/flag/bos, +/obj/structure/filingcabinet, /turf/open/floor/plasteel/f13/vault_floor/dark, /area/f13/brotherhood/surface) "eDp" = ( @@ -10792,12 +10959,6 @@ icon_state = "verticalinnermain0" }, /area/f13/wasteland) -"eEz" = ( -/obj/structure/destructible/tribal_torch/lit, -/turf/open/indestructible/ground/outside/sidewalk{ - icon_state = "horizontalbottomborderbottom0" - }, -/area/f13/wasteland) "eEI" = ( /obj/structure/simple_door/room, /turf/open/floor/f13{ @@ -10957,7 +11118,9 @@ /area/f13/building) "eJv" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/filingcabinet, +/obj/machinery/light/small{ + dir = 1 + }, /turf/open/floor/f13, /area/f13/brotherhood/surface) "eJy" = ( @@ -11006,7 +11169,10 @@ /obj/effect/decal/cleanable/dirt{ color = "000000" }, -/turf/open/floor/wood/wood_diagonal, +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/carpet/black, /area/f13/ncr) "eJW" = ( /obj/effect/decal/marking{ @@ -11297,6 +11463,14 @@ icon_state = "bluedirtychess2" }, /area/f13/caves) +"ePl" = ( +/obj/structure/obstacle/barbedwire{ + dir = 4 + }, +/turf/open/indestructible/ground/outside/sidewalk{ + icon_state = "verticalrightborderright0" + }, +/area/f13/wasteland) "ePz" = ( /obj/machinery/door/airlock/medical{ name = "Medical Officer"; @@ -11543,6 +11717,10 @@ icon_state = "bluerustychess2" }, /area/f13/building) +"eTU" = ( +/obj/structure/bookcase/random, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "eUa" = ( /obj/structure/table, /turf/open/floor/f13{ @@ -11596,6 +11774,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood/f13/oak, /area/f13/building) +"eVb" = ( +/obj/structure/table, +/obj/structure/barricade/bars, +/turf/open/indestructible/ground/outside/road{ + icon_state = "verticalrightborderleft2" + }, +/area/f13/wasteland) "eVx" = ( /obj/item/statuebust{ anchored = 1; @@ -11692,13 +11877,6 @@ icon_state = "rubbleslab" }, /area/f13/village) -"eXE" = ( -/obj/item/flag/ncr, -/turf/open/indestructible/ground/outside/sidewalk{ - dir = 4; - icon_state = "outerturn" - }, -/area/f13/wasteland) "eXO" = ( /obj/structure/fence/wooden{ dir = 4; @@ -12028,8 +12206,7 @@ /area/f13/building) "fdA" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/filingcabinet, -/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/stairs/east, /turf/open/floor/plasteel/f13/vault_floor/floor/floorsolid, /area/f13/brotherhood/surface) "fdO" = ( @@ -12180,10 +12357,6 @@ icon_state = "housewood2" }, /area/f13/village) -"fgy" = ( -/obj/effect/landmark/start/f13/farmer, -/turf/open/indestructible/ground/outside/dirt, -/area/f13/wasteland) "fgB" = ( /obj/structure/chair/sofa/left{ dir = 4 @@ -12239,11 +12412,18 @@ }, /area/f13/wasteland) "fhG" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light{ - dir = 8 +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt{ + color = "000000" }, -/turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, +/obj/item/card/id/dogtag/ncrtrooper, +/obj/item/card/id/dogtag/ncrtrooper, +/obj/item/card/id/dogtag/ncrtrooper, +/obj/item/card/id/dogtag/ncrsergeant, +/obj/item/documents{ + desc = "Documents and maps concerning the local NCR presence." + }, +/turf/open/floor/carpet/black, /area/f13/ncr) "fia" = ( /obj/structure/car/rubbish1, @@ -12348,7 +12528,7 @@ /area/f13/ncr) "fjC" = ( /obj/structure/rack, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/floor/f13{ icon_state = "floorrusty" }, @@ -12482,9 +12662,7 @@ pixel_x = -6; pixel_y = -6 }, -/turf/open/indestructible/ground/outside/desert{ - icon_state = "wasteland33" - }, +/turf/open/indestructible/ground/outside/desert, /area/f13/wasteland) "fmW" = ( /obj/structure/car/rubbish1, @@ -12574,9 +12752,11 @@ /turf/open/floor/carpet/red, /area/f13/legion) "fph" = ( -/obj/structure/closet/crate/freezer/blood, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/f13/wood, +/obj/structure/decoration/rag, +/obj/structure/decoration/rag{ + icon_state = "skin" + }, +/turf/closed/wall/f13/wood/house, /area/f13/raiders) "fpl" = ( /obj/structure/closet/boxinggloves, @@ -12600,8 +12780,9 @@ /area/f13/brotherhood/surface) "fpv" = ( /obj/structure/table, -/obj/item/storage/pill_bottle/chem_tin/radx, -/obj/item/stack/medical/gauze, +/obj/item/camera, +/obj/item/stack/sheet/cardboard/fifty, +/obj/effect/decal/cleanable/cobweb, /obj/effect/decal/cleanable/dirt, /turf/open/floor/f13/wood, /area/f13/raiders) @@ -12854,9 +13035,16 @@ /area/f13/wasteland) "fum" = ( /obj/structure/table/reinforced, -/obj/machinery/button{ +/obj/machinery/button/door{ id = "NCRmory"; - name = "armory shutters" + name = "NCR Armory Shutters"; + pixel_x = 6 + }, +/obj/item/paper_bin{ + pixel_x = -6 + }, +/obj/item/pen/fountain{ + pixel_x = -6 }, /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/ncr) @@ -12897,6 +13085,13 @@ }, /turf/open/floor/wood/f13/oak, /area/f13/building) +"fuX" = ( +/obj/structure/table, +/obj/structure/barricade/sandbags, +/turf/open/indestructible/ground/outside/road{ + icon_state = "verticalrightborderleft2" + }, +/area/f13/wasteland) "fvi" = ( /obj/structure/wreck/car, /turf/open/indestructible/ground/outside/dirt{ @@ -13088,7 +13283,7 @@ /obj/structure/rack, /obj/effect/spawner/lootdrop/f13/weapon/gun/ammo/tier3, /obj/effect/spawner/lootdrop/f13/weapon/gun/ammo/tier4, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/lowmid, /turf/open/floor/f13{ icon_state = "bluerustysolid" }, @@ -13099,8 +13294,8 @@ }, /obj/effect/turf_decal/bot_red, /obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/lowmid, /turf/open/floor/wood/f13/oak, /area/f13/building) "fzD" = ( @@ -13115,7 +13310,7 @@ /area/f13/building) "fzN" = ( /obj/structure/flora/ausbushes/sparsegrass, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/lowmid, /turf/open/indestructible/ground/inside/mountain, /area/f13/caves) "fzQ" = ( @@ -13265,10 +13460,13 @@ }, /area/f13/building) "fCM" = ( -/obj/structure/table, -/obj/item/storage/backpack/duffelbag/med/surgery, -/obj/item/reagent_containers/medspray/sterilizine, /obj/effect/decal/cleanable/dirt, +/obj/machinery/smartfridge/bottlerack/drug_storage, +/obj/effect/spawner/lootdrop/f13/medical/wasteland/meds/drug{ + pixel_y = 10 + }, +/obj/item/reagent_containers/pill/patch/jet, +/obj/item/reagent_containers/pill/patch/jet, /turf/open/floor/f13/wood, /area/f13/raiders) "fCO" = ( @@ -13323,7 +13521,7 @@ /area/f13/building) "fDO" = ( /obj/structure/rack, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/lowmid, /turf/open/floor/f13{ icon_state = "darkrusty" }, @@ -13534,6 +13732,15 @@ }, /turf/open/floor/f13/wood, /area/f13/building) +"fIu" = ( +/obj/structure/obstacle/barbedwire{ + dir = 4 + }, +/turf/open/indestructible/ground/outside/sidewalk{ + dir = 1; + icon_state = "outerborder" + }, +/area/f13/wasteland) "fIz" = ( /mob/living/simple_animal/hostile/ghoul/glowing, /obj/effect/decal/marking{ @@ -13544,14 +13751,16 @@ }, /area/f13/tunnel) "fIF" = ( -/obj/machinery/light{ - dir = 4 +/obj/structure/decoration/rag{ + icon_state = "flag_ncr"; + name = "NCR banner"; + pixel_y = 32 }, -/turf/open/indestructible/ground/outside/sidewalk{ - dir = 4; - icon_state = "outerborder" +/obj/item/kirbyplants/random{ + pixel_y = 8 }, -/area/f13/wasteland) +/turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, +/area/f13/ncr) "fIJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/chair/comfy/black, @@ -13849,10 +14058,18 @@ /turf/open/indestructible/ground/inside/mountain, /area/f13/caves) "fPU" = ( -/obj/structure/table/optable, +/obj/structure/table, +/obj/machinery/light/small{ + dir = 8; + light_color = "#d8b1b1" + }, +/obj/item/flashlight, /obj/effect/decal/cleanable/dirt, /turf/open/floor/f13/wood, /area/f13/raiders) +"fQa" = ( +/turf/open/indestructible/ground/outside/savannah/bottomleft, +/area/f13/wasteland) "fQr" = ( /obj/structure/sign/poster/official/help_others, /turf/closed/wall/f13/wood, @@ -13942,6 +14159,16 @@ /obj/machinery/vending/coffee, /turf/open/floor/f13, /area/f13/building) +"fRy" = ( +/obj/structure/table/reinforced, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/barricade/sandbags, +/turf/open/floor/f13{ + icon_state = "darkdirtysolid" + }, +/area/f13/ncr) "fRM" = ( /obj/structure/table/wood/settler, /turf/open/indestructible/ground/outside/desert, @@ -13990,9 +14217,6 @@ /area/f13/building) "fSq" = ( /obj/machinery/smartfridge/chemistry, -/obj/machinery/light{ - dir = 8 - }, /turf/open/floor/f13{ icon_state = "bluerustysolid" }, @@ -14111,7 +14335,7 @@ /area/f13/wasteland) "fUb" = ( /obj/structure/table, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/floor/f13{ icon_state = "floorrusty" }, @@ -14347,8 +14571,8 @@ /area/f13/wasteland) "fZN" = ( /obj/structure/closet, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, /obj/effect/spawner/lootdrop/f13/armor/clothes, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/floor/f13/wood, /area/f13/building) "fZW" = ( @@ -14639,6 +14863,14 @@ icon_state = "dirtcorner" }, /area/f13/building) +"gfP" = ( +/obj/machinery/door/unpowered/securedoor{ + desc = "Door with a built-in lock. Can't be padlocked. You can smell the whisky and toughness from even outside the door."; + name = "Ranger's Outpost"; + req_access_txt = "121" + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "gfY" = ( /obj/structure/closet, /obj/item/clothing/head/helmet/f13/raider/supafly, @@ -14741,8 +14973,12 @@ }, /area/f13/wasteland) "gie" = ( -/obj/machinery/light, -/obj/structure/closet/crate/bin, +/obj/structure/table, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 4; + pixel_x = 10; + pixel_y = 9 + }, /turf/open/floor/f13{ icon_state = "whitegreenrustychess" }, @@ -14755,8 +14991,7 @@ /area/f13/village) "gin" = ( /obj/structure/table, -/obj/item/reagent_containers/hypospray/medipen/stimpak, -/obj/item/reagent_containers/hypospray/medipen/stimpak, +/obj/item/binoculars, /obj/effect/decal/cleanable/dirt, /turf/open/floor/f13/wood, /area/f13/raiders) @@ -14841,9 +15076,7 @@ /turf/closed/wall/f13/ruins, /area/f13/building) "gjs" = ( -/obj/structure/chair/booth{ - dir = 1 - }, +/obj/structure/chair/stool/retro/black, /turf/open/floor/f13/wood{ icon_state = "housewood2" }, @@ -14871,12 +15104,18 @@ "gjP" = ( /turf/closed/wall/f13/wood/house, /area/f13/village) +"gjW" = ( +/obj/structure/table, +/obj/structure/barricade/bars, +/turf/open/indestructible/ground/outside/sidewalk{ + dir = 1; + icon_state = "outerpavement" + }, +/area/f13/wasteland) "gke" = ( -/obj/structure/barricade/wooden/strong, -/obj/structure/decoration/rag{ - icon_state = "skin" +/turf/open/floor/f13/wood{ + icon_state = "housewood3-broken" }, -/turf/closed/wall/f13/wood/house, /area/f13/raiders) "gkn" = ( /obj/structure/destructible/tribal_torch/wall/lit{ @@ -14887,6 +15126,13 @@ icon_state = "bluerustysolid" }, /area/f13/legion) +"gks" = ( +/obj/structure/table/reinforced, +/obj/structure/barricade/sandbags, +/turf/open/floor/f13{ + icon_state = "darkdirtysolid" + }, +/area/f13/ncr) "gku" = ( /obj/structure/spider/stickyweb, /obj/machinery/mineral/wasteland_vendor/mining, @@ -14936,7 +15182,7 @@ /area/f13/building) "gle" = ( /obj/structure/rack, -/obj/item/crafting/sensor, +/obj/item/assembly/prox_sensor, /obj/item/crafting/abraxo, /obj/effect/spawner/lootdrop/f13/crafting, /obj/effect/spawner/lootdrop/f13/crafting, @@ -15010,7 +15256,8 @@ "gmn" = ( /obj/structure/simple_door/metal/fence{ door_type = "fence_wood"; - icon_state = "fence_wood" + icon_state = "fence_wood"; + req_one_access_txt = "25" }, /turf/open/indestructible/ground/outside/wood{ icon_state = "wood" @@ -15229,7 +15476,6 @@ }, /area/f13/building) "grc" = ( -/obj/structure/decoration/rag, /obj/structure/decoration/rag{ icon_state = "skin" }, @@ -15436,13 +15682,13 @@ /turf/open/floor/f13/wood, /area/f13/building) "gun" = ( -/obj/structure/rack, /obj/effect/decal/cleanable/dirt, /obj/item/twohanded/baseball/spiked, /obj/item/melee/unarmed/punchdagger, /obj/item/melee/onehanded/knife/hunting, /obj/item/melee/onehanded/machete, /obj/item/melee/onehanded/machete, +/obj/structure/rack/shelf_metal, /turf/open/floor/f13/wood, /area/f13/raiders) "gus" = ( @@ -15529,6 +15775,15 @@ icon_state = "dirt" }, /area/f13/wasteland) +"gvP" = ( +/obj/structure/toilet{ + dir = 1 + }, +/obj/machinery/light/small, +/turf/open/floor/f13{ + icon_state = "bluedirtychess2" + }, +/area/f13/ncr) "gvT" = ( /obj/effect/decal/cleanable/dirt{ color = "#363636" @@ -15550,7 +15805,9 @@ /area/f13/building) "gwi" = ( /obj/effect/landmark/start/f13/pusher, -/turf/open/indestructible/ground/outside/dirt, +/turf/open/indestructible/ground/outside/dirt{ + icon_state = "dirt" + }, /area/f13/wasteland) "gwp" = ( /obj/effect/decal/cleanable/dirt{ @@ -15622,12 +15879,16 @@ /obj/structure/decoration/rag{ icon_state = "skin" }, -/obj/structure/barricade/wooden/planks/pregame, /obj/structure/fence/wooden{ dir = 1; icon_state = "post_wood"; pixel_x = -18 }, +/obj/structure/decoration/rag{ + icon_state = "skulls"; + pixel_x = 4; + pixel_y = 2 + }, /turf/open/indestructible/ground/outside/dirt{ icon_state = "dirt" }, @@ -15671,13 +15932,9 @@ }, /area/f13/building) "gyh" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/indestructible/ground/outside/sidewalk{ - icon_state = "verticalrightborderright0" - }, -/area/f13/wasteland) +/obj/effect/turf_decal/stripes/white/box, +/turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, +/area/f13/ncr) "gyi" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/bed/old, @@ -15707,14 +15964,10 @@ /turf/open/floor/plasteel/f13/vault_floor/floor, /area/f13/village) "gzq" = ( -/obj/structure/fence/corner/wooden{ - dir = 1 - }, -/turf/open/indestructible/ground/outside/dirt{ - dir = 5; - icon_state = "dirt" - }, -/area/f13/wasteland) +/obj/structure/decoration/clock, +/obj/effect/decal/cleanable/dirt, +/turf/closed/wall/f13/wood/house, +/area/f13/raiders) "gzQ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -15747,6 +16000,13 @@ /obj/structure/barricade/wooden/strong, /turf/open/indestructible/ground/inside/mountain, /area/f13/caves) +"gAM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/storage/pill_bottle/chem_tin/radx, +/obj/item/stack/medical/gauze, +/turf/open/floor/f13/wood, +/area/f13/raiders) "gAU" = ( /obj/structure/rack, /obj/item/stack/sheet/metal{ @@ -16013,6 +16273,14 @@ "gFR" = ( /turf/open/indestructible/ground/inside/subway, /area/f13/wasteland) +"gFX" = ( +/obj/structure/table, +/obj/structure/barricade/bars, +/turf/open/indestructible/ground/outside/sidewalk{ + dir = 1; + icon_state = "outerbordercorner" + }, +/area/f13/wasteland) "gGp" = ( /obj/item/storage/trash_stack, /turf/open/indestructible/ground/outside/road, @@ -16319,6 +16587,11 @@ icon_state = "dirt" }, /area/f13/wasteland) +"gNu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/filingcabinet, +/turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, +/area/f13/brotherhood/surface) "gNA" = ( /turf/open/indestructible/ground/outside/sidewalk{ dir = 10; @@ -16326,13 +16599,11 @@ }, /area/f13/wasteland) "gND" = ( -/obj/structure/decoration/rag, -/obj/structure/decoration/rag{ - icon_state = "skulls"; - pixel_x = 4; - pixel_y = 2 +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/optable, +/turf/open/floor/f13/wood{ + icon_state = "housewood3-broken" }, -/turf/closed/wall/f13/wood/house, /area/f13/raiders) "gNG" = ( /obj/structure/destructible/tribal_torch/wall/lit, @@ -16507,7 +16778,8 @@ }, /area/f13/wasteland) "gSx" = ( -/obj/machinery/iv_drip, +/obj/structure/table, +/obj/machinery/chem_master/advanced, /obj/effect/decal/cleanable/dirt, /turf/open/floor/f13/wood, /area/f13/raiders) @@ -16595,17 +16867,10 @@ }, /area/f13/building) "gVg" = ( -/obj/structure/window/fulltile/house{ - icon_state = "housewindowbroken" - }, -/obj/structure/decoration/rag, -/obj/structure/barricade/wooden/planks/pregame, -/obj/structure/curtain{ - color = "#845f58" - }, -/turf/open/floor/f13/wood{ - icon_state = "housewood3-broken" - }, +/obj/effect/decal/cleanable/dirt, +/obj/item/defibrillator/primitive, +/obj/structure/closet, +/turf/open/floor/f13/wood, /area/f13/raiders) "gVh" = ( /obj/structure/wreck/car/bike{ @@ -16619,13 +16884,6 @@ }, /turf/open/indestructible/ground/outside/dirt, /area/f13/wasteland) -"gVt" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/f13/wood{ - icon_state = "housewood3-broken" - }, -/area/f13/raiders) "gVH" = ( /obj/structure/flora/grass/wasteland{ icon_state = "tall_grass_2"; @@ -16754,6 +17012,10 @@ /obj/item/instrument/guitar, /turf/open/indestructible/ground/outside/dirt, /area/f13/wasteland) +"gYH" = ( +/obj/effect/landmark/start/f13/deputy, +/turf/open/floor/f13/wood, +/area/f13/building) "gYM" = ( /obj/effect/spawner/lootdrop/trash, /turf/open/indestructible/ground/outside/road{ @@ -16945,10 +17207,6 @@ /area/f13/building) "hcp" = ( /obj/structure/rack, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ammo/tier3, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ammo/tier3, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ammo/tier2, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ammo/tier2, /obj/item/ammo_box/a357, /obj/item/ammo_box/a357, /obj/item/ammo_box/a357, @@ -16958,6 +17216,7 @@ /obj/item/ammo_box/shotgun/rubber, /obj/item/ammo_box/shotgun/rubber, /obj/item/ammo_box/shotgun/rubber, +/obj/item/ammo_box/a357, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/f13/building) "hcr" = ( @@ -17018,6 +17277,33 @@ /obj/structure/sign/poster/official/safety_report{ pixel_y = 32 }, +/obj/item/stock_parts/cell/high/plus{ + pixel_y = 7 + }, +/obj/item/stock_parts/cell/high/plus{ + pixel_y = 7 + }, +/obj/item/flashlight{ + pixel_y = 8 + }, +/obj/item/flashlight{ + pixel_y = 8 + }, +/obj/item/flashlight{ + pixel_y = 8 + }, +/obj/item/flashlight{ + pixel_y = 8 + }, +/obj/item/flashlight{ + pixel_y = 8 + }, +/obj/item/flashlight{ + pixel_y = 8 + }, +/obj/item/flashlight{ + pixel_y = 8 + }, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust{ name = "metal plating" }, @@ -17073,28 +17359,15 @@ }, /area/f13/building) "hdX" = ( -/obj/structure/table, /obj/structure/reagent_dispensers/peppertank{ pixel_y = 32 }, -/obj/item/flashlight{ - pixel_y = 8 - }, -/obj/item/flashlight{ - pixel_y = 8 - }, -/obj/item/flashlight{ - pixel_y = 8 - }, -/obj/item/flashlight{ - pixel_y = 8 - }, -/obj/item/flashlight{ - pixel_y = 8 - }, -/obj/item/flashlight{ - pixel_y = 8 +/obj/machinery/autolathe/ammo/unlocked{ + advanced = 0; + intermediate = 0 }, +/obj/item/stack/ore/blackpowder/twenty, +/obj/item/stack/sheet/metal/fifty, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust{ name = "metal plating" }, @@ -17106,7 +17379,7 @@ "heh" = ( /obj/structure/table/wood, /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/floor/f13/wood, /area/f13/building) "hej" = ( @@ -17238,6 +17511,13 @@ icon_state = "horizontalinnermain2" }, /area/f13/wasteland) +"hga" = ( +/obj/structure/barricade/wooden, +/turf/open/indestructible/ground/outside/dirt{ + dir = 8; + icon_state = "dirt" + }, +/area/f13/wasteland) "hgc" = ( /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/wood/f13/oak, @@ -17366,6 +17646,12 @@ icon_state = "horizontalinnermain0" }, /area/f13/wasteland) +"hik" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "hiq" = ( /obj/structure/rack, /obj/item/reagent_containers/food/snacks/sosjerky/ration, @@ -17561,12 +17847,11 @@ /turf/open/indestructible/ground/inside/mountain, /area/f13/caves) "hlA" = ( -/obj/structure/simple_door/wood, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/f13/wood{ - icon_state = "housewood4-broken" +/obj/structure/stairs/north{ + color = "#A47449" }, -/area/f13/legion) +/turf/open/floor/f13/wood, +/area/f13/village) "hlE" = ( /obj/structure/chair/comfy/brown{ dir = 1 @@ -17586,7 +17871,8 @@ }, /area/f13/wasteland) "hlX" = ( -/obj/item/flag/legion, +/obj/structure/table, +/obj/structure/barricade/bars, /turf/open/indestructible/ground/outside/sidewalk{ dir = 5; icon_state = "outerpavement" @@ -17632,11 +17918,6 @@ icon_state = "whitegreenrustychess" }, /area/f13/village) -"hna" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/f13/wood, -/area/f13/raiders) "hnh" = ( /obj/structure/rack, /obj/item/storage/pill_bottle/stimulant, @@ -17692,7 +17973,8 @@ }, /area/f13/tunnel) "hoy" = ( -/obj/item/flag/legion, +/obj/structure/table, +/obj/structure/barricade/bars, /turf/open/indestructible/ground/outside/sidewalk{ dir = 9; icon_state = "outerpavement" @@ -17713,11 +17995,11 @@ /turf/open/floor/plasteel/f13/vault_floor/white, /area/f13/village) "hoH" = ( -/obj/structure/rack, /obj/effect/decal/cleanable/dirt, /obj/item/gun/ballistic/revolver/hobo/piperifle, /obj/item/gun/ballistic/revolver/hobo/knucklegun, /obj/item/ammo_box/c45/improvised, +/obj/structure/rack/shelf_metal, /turf/open/floor/f13/wood, /area/f13/raiders) "hoR" = ( @@ -17779,10 +18061,12 @@ }, /area/f13/building) "hqf" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/carpet/black, -/area/f13/legion) +/obj/item/storage/fancy/donut_box, +/obj/structure/table, +/turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust{ + name = "metal plating" + }, +/area/f13/building) "hql" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/lootdrop/trash, @@ -17799,6 +18083,12 @@ /obj/item/storage/toolbox/mechanical/old, /turf/open/floor/f13, /area/f13/building) +"hqt" = ( +/obj/structure/stairs/south{ + color = "#A47449" + }, +/turf/open/floor/f13/wood, +/area/f13/legion) "hqw" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 4 @@ -17946,6 +18236,13 @@ name = "stone floor" }, /area/f13/legion) +"htx" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/lowmid, +/turf/open/floor/f13{ + icon_state = "floorrusty" + }, +/area/f13/building) "htN" = ( /obj/machinery/light/small/broken{ dir = 1 @@ -17976,6 +18273,7 @@ /obj/item/gun/ballistic/revolver/police, /obj/item/gun/ballistic/rifle/repeater/cowboy, /obj/item/gun/ballistic/rifle/repeater/cowboy, +/obj/item/gun/ballistic/revolver/police, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust{ name = "metal plating" }, @@ -18042,7 +18340,6 @@ /obj/item/key, /obj/item/key, /obj/effect/turf_decal/stripes/white/box, -/obj/machinery/light, /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/ncr) "hvp" = ( @@ -18303,7 +18600,6 @@ /obj/item/clothing/shoes/f13/brownie, /obj/item/clothing/shoes/f13/brownie, /obj/effect/turf_decal/stripes/white/box, -/obj/machinery/light, /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/ncr) "hAx" = ( @@ -18404,6 +18700,7 @@ /obj/item/stack/sheet/metal/twenty, /obj/item/stack/sheet/metal/ten, /obj/item/storage/box/emptysandbags, +/obj/item/taperecorder, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust{ name = "metal plating" }, @@ -18647,6 +18944,14 @@ icon_state = "housewood2" }, /area/f13/building) +"hHS" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/f13{ + icon_state = "darkdirtysolid" + }, +/area/f13/ncr) "hHV" = ( /obj/structure/window/fulltile/house{ dir = 2; @@ -18672,10 +18977,10 @@ layer = 2.07; max_mobs = 1 }, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, /obj/effect/overlay/junk/toilet{ dir = 1 }, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/f13/wood, /area/f13/tunnel) "hIr" = ( @@ -18722,13 +19027,6 @@ icon_state = "floordirty" }, /area/f13/followers) -"hJt" = ( -/obj/structure/destructible/tribal_torch/lit, -/turf/open/indestructible/ground/outside/sidewalk{ - dir = 1; - icon_state = "outerpavementcorner" - }, -/area/f13/wasteland) "hJv" = ( /obj/structure/barricade/wooden/strong, /obj/structure/fence/wooden{ @@ -18887,14 +19185,9 @@ }, /area/f13/building) "hMz" = ( -/obj/machinery/light/small{ - dir = 8; - light_color = "#d8b1b1"; - pixel_x = -8 - }, -/obj/structure/rack, /obj/effect/decal/cleanable/dirt, /obj/item/storage/toolbox/mechanical/old, +/obj/structure/rack/shelf_metal, /turf/open/floor/f13/wood{ icon_state = "housewood2-broken" }, @@ -19162,9 +19455,6 @@ /turf/open/indestructible/ground/outside/dirt, /area/f13/wasteland) "hSK" = ( -/obj/machinery/light{ - dir = 4 - }, /obj/structure/chair/booth{ dir = 8 }, @@ -19618,9 +19908,6 @@ /obj/item/storage/belt/military/assault/ncr, /obj/item/storage/belt/military/assault/ncr, /obj/item/storage/belt/military/assault/ncr, -/obj/machinery/light{ - dir = 4 - }, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/f13/ncr) "hZO" = ( @@ -19725,8 +20012,8 @@ "ibi" = ( /obj/structure/table/glass, /obj/item/radio/intercom, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, /obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/floor/wood/f13/oak, /area/f13/building) "ibn" = ( @@ -20054,12 +20341,19 @@ }, /area/f13/village) "ijK" = ( -/obj/structure/sink/well{ - pixel_x = -32; - pixel_y = -20 +/obj/structure/sign/poster/contraband/pinup_pink{ + pixel_x = -31 }, -/turf/open/indestructible/ground/outside/desert, -/area/f13/wasteland) +/obj/machinery/chem_dispenser, +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8; + light_color = "#d8b1b1"; + pixel_y = -32 + }, +/turf/open/floor/f13/wood, +/area/f13/raiders) "ijO" = ( /obj/structure/flora/grass/wasteland, /obj/structure/flora/grass/wasteland{ @@ -20127,10 +20421,11 @@ }, /area/f13/wasteland) "ilv" = ( -/obj/structure/fireplace{ - dir = 8 +/obj/effect/decal/cleanable/dirt{ + color = "000000" }, -/turf/open/floor/carpet/red, +/obj/machinery/light, +/turf/open/floor/carpet/black, /area/f13/ncr) "ilG" = ( /obj/effect/decal/marking, @@ -20148,9 +20443,6 @@ /area/f13/wasteland) "ilL" = ( /obj/structure/closet/crate/bin, -/obj/machinery/light{ - dir = 4 - }, /turf/open/floor/f13{ icon_state = "bluedirtychess2" }, @@ -20262,6 +20554,11 @@ }, /turf/open/water, /area/f13/caves) +"inV" = ( +/obj/structure/table, +/obj/structure/barricade/bars, +/turf/open/indestructible/ground/outside/sidewalk, +/area/f13/wasteland) "inW" = ( /obj/structure/flora/tree/joshua, /turf/open/indestructible/ground/outside/desert{ @@ -20507,6 +20804,12 @@ }, /turf/open/floor/carpet/black, /area/f13/building) +"iue" = ( +/obj/machinery/door/unpowered/secure_legion, +/turf/open/indestructible/ground/outside/road{ + icon_state = "verticalinnermain0" + }, +/area/f13/wasteland) "iul" = ( /obj/effect/decal/cleanable/dirt{ color = "000000" @@ -20711,6 +21014,19 @@ icon_state = "floordirty" }, /area/f13/followers) +"iyP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/item/folder/yellow{ + pixel_x = 4 + }, +/obj/item/folder/yellow{ + pixel_x = 4 + }, +/turf/open/floor/f13/wood, +/area/f13/raiders) "izb" = ( /obj/effect/turf_decal/vg_decals/numbers/one, /obj/structure/car/rubbish1, @@ -20723,7 +21039,7 @@ /area/f13/building) "izr" = ( /obj/structure/table, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/floor/f13{ icon_state = "floorrusty" }, @@ -20807,9 +21123,6 @@ "iBF" = ( /obj/structure/table, /obj/structure/window/spawner, -/obj/machinery/light{ - dir = 8 - }, /turf/open/floor/f13{ icon_state = "bluedirtychess2" }, @@ -21179,6 +21492,12 @@ name = "pool water" }, /area/f13/legion) +"iJI" = ( +/obj/structure/chair/wood/worn{ + dir = 1 + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "iJO" = ( /obj/effect/decal/marking{ icon_state = "doublehorizontalleft" @@ -21198,9 +21517,10 @@ }, /area/f13/followers) "iJV" = ( -/obj/structure/destructible/tribal_torch/wall/lit, -/turf/open/indestructible/ground/outside/dirt, -/area/f13/wasteland) +/obj/effect/landmark/start/f13/pusher, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood, +/area/f13/raiders) "iJW" = ( /obj/structure/chair/comfy/brown{ dir = 1 @@ -21391,7 +21711,7 @@ }, /area/f13/wasteland) "iNF" = ( -/obj/machinery/deepfryer, +/obj/machinery/vending/dinnerware, /turf/open/floor/f13{ icon_state = "whitegreenrustychess" }, @@ -21411,6 +21731,8 @@ /obj/structure/destructible/tribal_torch/wall/lit{ dir = 4 }, +/obj/structure/table, +/obj/structure/barricade/bars, /turf/open/indestructible/ground/outside/sidewalk{ icon_state = "verticalrightborderright0" }, @@ -21523,11 +21845,6 @@ icon_state = "floorrusty" }, /area/f13/building) -"iPm" = ( -/obj/structure/barricade/sandbags, -/obj/structure/barricade/sandbags, -/turf/open/indestructible/ground/outside/desert, -/area/f13/wasteland) "iPp" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/generic, @@ -21544,8 +21861,7 @@ /obj/item/ammo_box/tube/m44, /obj/item/ammo_box/tube/m44, /obj/item/ammo_box/tube/m44, -/obj/item/ammo_box/magazine/m556/rifle, -/obj/item/ammo_box/magazine/m556/rifle, +/obj/item/ammo_box/m5mmbox, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust{ name = "metal plating" }, @@ -21570,12 +21886,22 @@ /obj/structure/rack, /obj/item/melee/baton/cattleprod, /obj/item/melee/baton/cattleprod, -/obj/item/melee/classic_baton, -/obj/item/melee/classic_baton, /obj/item/reagent_containers/spray/pepper, /obj/item/reagent_containers/spray/pepper, /obj/item/reagent_containers/spray/pepper, /obj/item/reagent_containers/spray/pepper, +/obj/item/melee/classic_baton/militarypolice{ + desc = "Sturdy stick painted white, used by police to get unruly suspects into line."; + name = "police baton" + }, +/obj/item/melee/classic_baton/militarypolice{ + desc = "Sturdy stick painted white, used by police to get unruly suspects into line."; + name = "police baton" + }, +/obj/item/melee/classic_baton/militarypolice{ + desc = "Sturdy stick painted white, used by police to get unruly suspects into line."; + name = "police baton" + }, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/f13/building) "iQr" = ( @@ -21688,6 +22014,22 @@ /obj/effect/decal/fakelattice{ pixel_y = -17 }, +/obj/item/electropack/shockcollar/explosive{ + name = "Explosive Community Service collar" + }, +/obj/item/key/bcollar, +/obj/item/key/collar, +/obj/item/key/collar, +/obj/item/key/collar, +/obj/item/electropack/shockcollar{ + name = "Community Service Collar" + }, +/obj/item/electropack/shockcollar{ + name = "Community Service Collar" + }, +/obj/item/electropack/shockcollar{ + name = "Community Service Collar" + }, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/f13/building) "iRE" = ( @@ -22164,13 +22506,6 @@ /obj/item/reagent_containers/hypospray/medipen/stimpak/super, /turf/open/floor/f13/wood, /area/f13/building) -"jaV" = ( -/obj/structure/table, -/obj/item/taperecorder, -/turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust{ - name = "metal plating" - }, -/area/f13/building) "jbg" = ( /obj/machinery/light/small{ dir = 1 @@ -22259,7 +22594,7 @@ "jco" = ( /obj/structure/table/wood, /obj/machinery/light/small, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/floor/wood/f13/oak, /area/f13/building) "jcp" = ( @@ -22773,6 +23108,10 @@ icon_state = "dirt" }, /area/f13/wasteland) +"jml" = ( +/obj/structure/barricade/wooden/strong, +/turf/open/indestructible/ground/outside/dirt, +/area/f13/wasteland) "jmn" = ( /obj/structure/flora/grass/wasteland{ icon_state = "tall_grass_6"; @@ -22921,16 +23260,12 @@ }, /area/f13/wasteland) "jpA" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt{ - color = "000000" - }, -/turf/open/indestructible/ground/outside/sidewalk{ - icon_state = "verticalleftborderleft0" +/obj/machinery/door/airlock/hatch{ + name = "NCR Lieutenant's Office"; + req_access_txt = "121" }, -/area/f13/wasteland) +/turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, +/area/f13/ncr) "jpB" = ( /obj/effect/overlay/junk/shower{ dir = 4 @@ -23269,9 +23604,12 @@ /area/f13/caves) "jwV" = ( /obj/machinery/light{ - dir = 4 + dir = 4; + light_color = "#c1caff" }, -/turf/open/floor/carpet/red, +/obj/item/bedsheet/brown, +/obj/structure/bed/old, +/turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/ncr) "jwX" = ( /obj/structure/flora/grass/wasteland{ @@ -23913,7 +24251,7 @@ /area/f13/followers) "jMT" = ( /obj/structure/table/wood, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/lowmid, /turf/open/floor/wood/f13/oak, /area/f13/building) "jNh" = ( @@ -24115,6 +24453,15 @@ }, /turf/open/floor/f13/wood, /area/f13/building) +"jQG" = ( +/obj/structure/obstacle/barbedwire{ + dir = 4 + }, +/turf/open/indestructible/ground/outside/sidewalk{ + dir = 4; + icon_state = "outerborder" + }, +/area/f13/wasteland) "jRy" = ( /obj/structure/table/wood/poker, /obj/item/reagent_containers/pill/patch/healingpowder, @@ -24441,17 +24788,17 @@ /area/f13/building) "jWH" = ( /obj/structure/closet/locker, -/obj/item/clothing/suit/armor/f13/ncrarmor/ncr_codressjack, -/obj/item/clothing/suit/armor/f13/ncrarmor/ncr_codressjack, -/obj/item/clothing/suit/armor/f13/ncrarmor/ncr_codressjack, -/obj/item/clothing/suit/armor/f13/ncrarmor/ncr_codressjack, -/obj/item/clothing/suit/armor/f13/ncrarmor/ncr_codressjack, -/obj/item/clothing/suit/armor/f13/ncrarmor/ncr_codressjack, -/obj/item/clothing/suit/armor/f13/ncrarmor/ncr_codressjack, -/obj/item/clothing/suit/armor/f13/ncrarmor/ncr_codressjack, /obj/machinery/light{ dir = 8 }, +/obj/item/clothing/suit/armor/f13/ncrarmor/ncr_dressjack, +/obj/item/clothing/suit/armor/f13/ncrarmor/ncr_dressjack, +/obj/item/clothing/suit/armor/f13/ncrarmor/ncr_dressjack, +/obj/item/clothing/suit/armor/f13/ncrarmor/ncr_dressjack, +/obj/item/clothing/suit/armor/f13/ncrarmor/ncr_dressjack, +/obj/item/clothing/suit/armor/f13/ncrarmor/ncr_dressjack, +/obj/item/clothing/suit/armor/f13/ncrarmor/ncr_dressjack, +/obj/item/clothing/suit/armor/f13/ncrarmor/ncr_dressjack, /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/ncr) "jWM" = ( @@ -25526,13 +25873,13 @@ }, /area/f13/wasteland) "krS" = ( -/obj/structure/rack, /obj/effect/decal/cleanable/dirt, /obj/item/ammo_box/shotgun/bean, /obj/item/restraints/legcuffs/bola, /obj/item/restraints/legcuffs/bola, /obj/item/restraints/handcuffs, /obj/item/restraints/handcuffs, +/obj/structure/rack/shelf_metal, /turf/open/floor/f13/wood, /area/f13/raiders) "krX" = ( @@ -26160,9 +26507,13 @@ /area/f13/ncr) "kIa" = ( /obj/structure/rack, -/obj/item/clothing/head/helmet/armyhelmet, -/obj/item/clothing/head/helmet/armyhelmet, -/obj/item/clothing/head/helmet/armyhelmet, +/obj/item/shield/riot, +/obj/item/shield/riot, +/obj/item/clothing/mask/gas/glass, +/obj/item/clothing/mask/gas/glass, +/obj/item/clothing/mask/gas/glass, +/obj/item/storage/box/teargas, +/obj/item/storage/box/flashbangs, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/f13/building) "kIf" = ( @@ -26207,6 +26558,10 @@ /obj/item/storage/box/matches, /turf/open/floor/wood, /area/f13/building) +"kIX" = ( +/obj/structure/sign/poster/ncr/keep_to_myself, +/turf/closed/wall/f13/wood, +/area/f13/ncr) "kJh" = ( /obj/structure/rack, /obj/item/stack/sheet/metal/fifty, @@ -26225,6 +26580,18 @@ icon_state = "darkrustysolid" }, /area/f13/building) +"kJp" = ( +/obj/structure/table/reinforced, +/obj/structure/table/reinforced, +/obj/structure/barricade/bars, +/obj/machinery/door/poddoor/shutters{ + id = "ncrrgatehouse" + }, +/obj/structure/decoration/rag, +/turf/open/floor/f13{ + icon_state = "darkdirtysolid" + }, +/area/f13/ncr) "kJu" = ( /obj/structure/flora/grass/jungle, /obj/structure/spacevine{ @@ -26251,10 +26618,20 @@ icon_state = "horizontaltopborderbottom0" }, /area/f13/tunnel) +"kJM" = ( +/obj/machinery/light/small, +/obj/structure/toilet{ + dir = 1 + }, +/obj/effect/decal/cleanable/vomit/old, +/turf/open/floor/f13{ + icon_state = "bluedirtychess2" + }, +/area/f13/ncr) "kKe" = ( /obj/structure/table/wood, /obj/effect/spawner/lootdrop/f13/weapon/melee/random, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/floor/f13/wood, /area/f13/village) "kKk" = ( @@ -26475,7 +26852,9 @@ /turf/open/floor/f13/wood, /area/f13/clinic) "kOW" = ( -/obj/machinery/computer/arcade, +/obj/structure/fireplace{ + pixel_x = 0 + }, /turf/open/floor/carpet/red, /area/f13/ncr) "kPm" = ( @@ -26536,6 +26915,17 @@ }, /turf/open/floor/f13/wood, /area/f13/legion) +"kQV" = ( +/obj/structure/decoration/rag{ + icon_state = "flag_ncr"; + name = "NCR banner"; + pixel_x = 32 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "kRc" = ( /obj/structure/bed/old, /turf/open/floor/f13/wood{ @@ -26619,7 +27009,7 @@ "kTx" = ( /obj/item/clothing/head/helmet/f13/raidermetal, /obj/item/clothing/suit/armor/f13/raider/raidermetal, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/indestructible/ground/outside/desert, /area/f13/wasteland) "kTy" = ( @@ -26893,6 +27283,12 @@ icon_state = "bluedirtychess2" }, /area/f13/building) +"kYp" = ( +/obj/structure/safe, +/obj/effect/spawner/lootdrop/f13/armor/tier3, +/obj/effect/spawner/lootdrop/f13/cash_random_med, +/turf/open/floor/f13/wood, +/area/f13/village) "kYr" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small, @@ -27067,6 +27463,18 @@ icon_state = "floorrusty" }, /area/f13/building) +"lcR" = ( +/obj/structure/sink{ + dir = 1; + pixel_y = 15 + }, +/obj/structure/mirror{ + pixel_y = 33 + }, +/turf/open/floor/f13{ + icon_state = "bluedirtychess2" + }, +/area/f13/ncr) "lcV" = ( /obj/effect/decal/cleanable/dirt{ color = "#363636" @@ -27221,9 +27629,8 @@ /area/f13/clinic) "lfG" = ( /obj/structure/closet/cabinet, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/under/f13/caravaneer, /obj/item/clothing/under/f13/ncr_formal_uniform, +/obj/item/clothing/shoes/laceup, /turf/open/floor/carpet/black, /area/f13/ncr) "lfS" = ( @@ -27268,13 +27675,9 @@ }, /area/f13/village) "lgA" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/indestructible/ground/outside/sidewalk{ - icon_state = "outerbordercorner" - }, -/area/f13/wasteland) +/obj/effect/landmark/start/f13/ncrcombatengineer, +/turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, +/area/f13/ncr) "lgB" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/f13/vault_floor/red/white/side{ @@ -27583,7 +27986,7 @@ /area/f13/wasteland) "lmI" = ( /obj/structure/table/reinforced, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/floor/f13/wood, /area/f13/building) "lmP" = ( @@ -27672,10 +28075,11 @@ }, /area/f13/city) "loO" = ( -/obj/structure/simple_door/room, -/obj/structure/nest/ghoul, -/turf/open/floor/f13/wood, -/area/f13/building) +/obj/structure/flora/tree/joshua, +/turf/open/indestructible/ground/outside/desert{ + icon_state = "wasteland32" + }, +/area/f13/wasteland) "loX" = ( /turf/open/floor/f13{ icon_state = "bluerustysolid" @@ -27713,13 +28117,28 @@ /obj/item/clothing/under/f13/ncr_formal_uniform, /obj/item/stamp/captain, /obj/item/clothing/suit/f13/battlecruiser, -/obj/item/clothing/accessory/medal/gold, -/obj/item/clothing/accessory/medal/bronze_heart, -/obj/item/clothing/accessory/medal/conduct, -/obj/item/clothing/accessory/medal/conduct, -/obj/item/clothing/accessory/medal/bronze_heart, -/obj/item/clothing/accessory/medal/gold/heroism, -/obj/item/clothing/accessory/medal/silver/valor, +/obj/item/clothing/accessory/medal/conduct{ + name = "Distinguished Service Cross" + }, +/obj/item/clothing/accessory/medal/bronze_heart{ + name = "Purple Heart" + }, +/obj/item/clothing/accessory/medal/gold/heroism{ + name = "Star of Sierra Madre" + }, +/obj/item/clothing/accessory/medal/silver/valor{ + name = "Medal of Honor" + }, +/obj/item/clothing/shoes/laceup, +/obj/item/clothing/accessory/medal/conduct{ + name = "Distinguished Service Cross" + }, +/obj/item/clothing/accessory/medal/bronze_heart{ + name = "Purple Heart" + }, +/obj/item/clothing/accessory/medal/plasma/nobel_science{ + name = "Medal of Science" + }, /turf/open/floor/carpet/royalblack, /area/f13/ncr) "lpD" = ( @@ -27777,7 +28196,9 @@ }, /area/f13/building) "lqI" = ( -/obj/structure/bookcase/random/nonfiction, +/obj/structure/bookcase/random/nonfiction{ + icon_state = "book-3" + }, /turf/open/floor/f13{ icon_state = "floordirty" }, @@ -27838,6 +28259,14 @@ /obj/structure/table/wood, /turf/open/floor/wood, /area/f13/building) +"lsz" = ( +/obj/structure/table, +/obj/structure/barricade/sandbags, +/turf/open/indestructible/ground/outside/sidewalk{ + dir = 8; + icon_state = "outerpavement" + }, +/area/f13/wasteland) "lsF" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/f13/wood{ @@ -28086,11 +28515,11 @@ /turf/open/floor/plasteel/f13/vault_floor/floor/floorsolid, /area/f13/brotherhood/surface) "lAC" = ( -/obj/item/bedsheet/brown, -/obj/effect/decal/cleanable/dirt, -/obj/structure/bed/old, -/turf/open/floor/f13/wood, -/area/f13/legion) +/obj/structure/stairs/south{ + color = "#A47449" + }, +/turf/open/indestructible/ground/outside/desert, +/area/f13/wasteland) "lAD" = ( /obj/structure/filingcabinet, /obj/effect/decal/cleanable/dirt{ @@ -28141,6 +28570,12 @@ }, /turf/open/floor/wood/f13/old/ruinedcornerendtr, /area/f13/bar) +"lBd" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/f13{ + icon_state = "darkdirtysolid" + }, +/area/f13/ncr) "lBh" = ( /obj/machinery/vending/clothing, /turf/open/floor/f13{ @@ -28148,7 +28583,7 @@ }, /area/f13/building) "lBF" = ( -/obj/structure/chair/right{ +/obj/structure/chair/sofa/right{ dir = 1 }, /turf/open/floor/f13/wood{ @@ -28360,6 +28795,7 @@ name = "formal attire cabinet" }, /obj/item/clothing/under/f13/ncr_formal_uniform, +/obj/item/clothing/shoes/laceup, /turf/open/floor/carpet/red, /area/f13/ncr) "lFM" = ( @@ -28617,7 +29053,7 @@ "lMr" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/destructible/tribal_torch/wall/lit, -/obj/effect/landmark/start/f13/slavemaster, +/obj/effect/landmark/start/f13/immune, /turf/open/floor/f13/wood, /area/f13/legion) "lMt" = ( @@ -28704,11 +29140,17 @@ /turf/open/floor/plasteel/f13/vault_floor/misc/cafeteria, /area/f13/village) "lNA" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/open/indestructible/ground/outside/sidewalk, -/area/f13/wasteland) +/obj/structure/closet/locker, +/obj/item/clothing/head/beret/ncr_dresscap, +/obj/item/clothing/head/beret/ncr_dresscap, +/obj/item/clothing/head/beret/ncr_dresscap, +/obj/item/clothing/head/beret/ncr_dresscap, +/obj/item/clothing/head/beret/ncr_dresscap, +/obj/item/clothing/head/beret/ncr_dresscap, +/obj/item/clothing/head/beret/ncr_dresscap, +/obj/item/clothing/head/beret/ncr_dresscap, +/turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, +/area/f13/ncr) "lOj" = ( /obj/structure/simple_door/metal, /turf/open/floor/f13{ @@ -29091,6 +29533,14 @@ icon_state = "bluerustychess2" }, /area/f13/building) +"lUy" = ( +/obj/structure/obstacle/barbedwire/end{ + dir = 4 + }, +/turf/open/indestructible/ground/outside/road{ + icon_state = "verticalrightborderleft0" + }, +/area/f13/wasteland) "lUK" = ( /obj/structure/barricade/tentclothcorner{ dir = 1 @@ -29146,7 +29596,7 @@ /area/f13/wasteland) "lVS" = ( /obj/structure/table/wood/settler, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/floor/f13/wood, /area/f13/building) "lVV" = ( @@ -29253,6 +29703,13 @@ icon_state = "verticalrightborderright2bottom" }, /area/f13/wasteland) +"lYl" = ( +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/lowmid, +/turf/open/indestructible/ground/outside/ruins{ + dir = 6; + icon_state = "rubble" + }, +/area/f13/wasteland) "lYo" = ( /obj/structure/table, /obj/item/kitchen/fork, @@ -29431,8 +29888,8 @@ /area/f13/wasteland) "mbB" = ( /obj/structure/closet/cabinet, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, /obj/effect/spawner/lootdrop/f13/weapon/gun/ammo/tier1, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/floor/f13/wood, /area/f13/building) "mbL" = ( @@ -30194,7 +30651,7 @@ /area/f13/building) "mrY" = ( /obj/structure/closet/cabinet, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/indestructible/ground/outside/ruins{ dir = 10; icon_state = "rubble" @@ -30866,11 +31323,11 @@ /turf/open/floor/f13/wood, /area/f13/clinic) "mIv" = ( -/obj/effect/decal/cleanable/dirt{ - color = "000000" +/obj/effect/turf_decal, +/obj/machinery/light{ + dir = 4 }, -/obj/structure/simple_door/metal, -/turf/open/floor/wood/wood_diagonal, +/turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/ncr) "mIy" = ( /obj/structure/closet/cabinet, @@ -31309,8 +31766,11 @@ }, /area/f13/clinic) "mRU" = ( -/turf/closed/wall/f13/store/constructed, -/area/f13/wasteland) +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/carpet/red, +/area/f13/ncr) "mSs" = ( /obj/effect/decal/marking{ icon_state = "doubleverticalbottom" @@ -31415,9 +31875,13 @@ }, /area/f13/building) "mUk" = ( -/obj/structure/sign/poster/ncr/keep_to_myself, -/turf/closed/wall/f13/store/constructed, -/area/f13/wasteland) +/obj/effect/turf_decal/stripes/white/box, +/obj/structure/guncase{ + anchored = 1 + }, +/obj/item/gun/ballistic/automatic/service, +/turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, +/area/f13/ncr) "mUo" = ( /obj/structure/decoration/rag, /obj/structure/decoration/rag{ @@ -31527,8 +31991,13 @@ /turf/open/floor/plating/f13/inside, /area/f13/building) "mWy" = ( -/obj/structure/simple_door/metal/fence/wooden, -/turf/open/indestructible/ground/outside/dirt, +/obj/structure/fence/corner/wooden{ + dir = 1 + }, +/turf/open/indestructible/ground/outside/dirt{ + dir = 5; + icon_state = "dirt" + }, /area/f13/wasteland) "mWC" = ( /obj/structure/chair{ @@ -31738,12 +32207,12 @@ /turf/open/indestructible/ground/inside/mountain, /area/f13/caves) "mZW" = ( -/obj/effect/decal/cleanable/dirt{ - color = "000000" +/obj/structure/barricade/wooden, +/obj/structure/fence/wooden{ + dir = 4 }, -/obj/machinery/computer/card/ncr, -/turf/open/floor/carpet/black, -/area/f13/ncr) +/turf/closed/mineral/random/low_chance, +/area/f13/caves) "mZX" = ( /obj/structure/flora/tree/wasteland, /obj/effect/decal/cleanable/dirt{ @@ -32182,6 +32651,9 @@ icon_state = "plant-25" }, /obj/effect/decal/cleanable/cobweb, +/obj/structure/sign/poster/prewar/poster82{ + pixel_y = 32 + }, /turf/open/floor/f13, /area/f13/brotherhood/surface) "nlA" = ( @@ -32356,7 +32828,7 @@ "npG" = ( /obj/structure/table/wood, /obj/item/clothing/mask/cigarette/pipe, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/floor/f13/wood, /area/f13/building) "npH" = ( @@ -32880,7 +33352,7 @@ /turf/open/indestructible/ground/outside/dirt, /area/f13/farm) "nzN" = ( -/obj/machinery/deepfryer, +/obj/structure/junk/micro, /turf/open/floor/f13/wood{ icon_state = "housewood2" }, @@ -33014,12 +33486,9 @@ }, /area/f13/wasteland) "nDy" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/radioterminal/ncr, -/turf/open/floor/carpet/black, -/area/f13/ncr) +/obj/structure/destructible/tribal_torch/wall/lit, +/turf/open/indestructible/ground/inside/mountain, +/area/f13/caves) "nDI" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/f13{ @@ -33029,9 +33498,11 @@ "nDJ" = ( /obj/structure/junk/small/tv{ desc = "Advertisements would've played on this tv before the bombs dropped."; + icon = 'icons/fallout/objects/decorations.dmi'; + icon_state = "television"; name = "pre-war advertising television"; - pixel_x = 1; - pixel_y = 8 + pixel_x = 0; + pixel_y = 0 }, /obj/item/toy/cards/deck{ pixel_x = 5; @@ -33192,6 +33663,10 @@ icon_state = "rubble" }, /area/f13/wasteland) +"nHQ" = ( +/obj/structure/destructible/tribal_torch/wall/lit, +/turf/open/indestructible/ground/outside/dirt, +/area/f13/wasteland) "nHT" = ( /obj/structure/table/wood, /obj/item/reagent_containers/food/snacks/meatsalted, @@ -33496,9 +33971,14 @@ /turf/open/indestructible/ground/outside/desert, /area/f13/wasteland) "nPy" = ( -/obj/machinery/msgterminal/ncr, -/turf/open/floor/carpet/black, -/area/f13/ncr) +/obj/structure/window/fulltile/house{ + dir = 2 + }, +/obj/structure/barricade/wooden/planks/pregame, +/turf/open/floor/f13/wood{ + icon_state = "housewood2" + }, +/area/f13/village) "nPF" = ( /obj/effect/decal/cleanable/dirt{ color = "000000" @@ -33797,7 +34277,7 @@ /obj/machinery/door/unpowered/securedoor{ autoclose = 1; name = "farmhouse"; - req_one_access_txt = "28" + req_one_access_txt = "25" }, /turf/open/floor/wood/f13/oak, /area/f13/building) @@ -33931,6 +34411,10 @@ icon_state = "rubblecorner" }, /area/f13/wasteland) +"oag" = ( +/obj/structure/fermenting_barrel, +/turf/open/indestructible/ground/outside/desert, +/area/f13/wasteland) "oak" = ( /obj/machinery/light, /turf/open/floor/f13/wood, @@ -34026,6 +34510,21 @@ icon_state = "outerpavement" }, /area/f13/wasteland) +"obt" = ( +/obj/structure/noticeboard{ + desc = "A board for pinning important items upon."; + name = "display plate"; + pixel_x = -32 + }, +/obj/item/clothing/head/helmet/f13/ncr/rangercombat/foxcustom{ + anchored = 1; + desc = "A fallen Centurion's Ranger-Hunter helmet, carefully restored to an adequate condition by the Rangers, hanging here to prove their competence once again."; + name = "Fallen Centurion's Ranger-Hunter Helmet"; + pixel_x = -32; + pixel_y = -3 + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "oca" = ( /obj/effect/decal/cleanable/dirt{ color = "000000" @@ -34780,6 +35279,16 @@ /obj/machinery/light, /turf/open/floor/wood/f13/oak, /area/f13/ncr) +"ose" = ( +/obj/effect/overlay/barbed{ + dir = 8 + }, +/obj/effect/overlay/barbed, +/turf/open/indestructible/ground/outside/sidewalk{ + dir = 1; + icon_state = "outerpavement" + }, +/area/f13/wasteland) "osj" = ( /obj/effect/decal/waste{ icon_state = "goo8" @@ -34792,6 +35301,13 @@ icon_state = "horizontaloutermainleft" }, /area/f13/wasteland) +"osq" = ( +/obj/structure/table, +/obj/structure/barricade/bars, +/turf/open/indestructible/ground/outside/road{ + icon_state = "verticalinnermain0" + }, +/area/f13/wasteland) "osB" = ( /obj/structure/simple_door/metal/fence{ dir = 8 @@ -34807,11 +35323,11 @@ /turf/open/floor/plasteel/f13/vault_floor/floor/floorsolid, /area/f13/building) "osF" = ( -/obj/structure/rack, /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small{ pixel_y = -10 }, +/obj/structure/rack/shelf_metal, /turf/open/floor/f13/wood, /area/f13/raiders) "osH" = ( @@ -34870,13 +35386,11 @@ /turf/open/floor/wood/f13/oak, /area/f13/building) "otJ" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/indestructible/ground/outside/sidewalk{ - icon_state = "verticalleftborderleft0" +/obj/structure/fireplace, +/turf/open/floor/f13/wood{ + icon_state = "housewood2" }, -/area/f13/wasteland) +/area/f13/village) "otQ" = ( /obj/machinery/light{ dir = 1 @@ -34979,6 +35493,16 @@ /obj/structure/chair/stool/retro/black, /turf/open/floor/f13/wood, /area/f13/building) +"oxu" = ( +/obj/effect/overlay/barbed, +/obj/effect/overlay/barbed{ + dir = 4 + }, +/obj/structure/destructible/tribal_torch/lit{ + pixel_y = 15 + }, +/turf/open/indestructible/ground/outside/desert, +/area/f13/wasteland) "oxA" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/computer/card/legion, @@ -35114,6 +35638,14 @@ icon_state = "whitegreenrustychess" }, /area/f13/village) +"ozC" = ( +/obj/structure/obstacle/barbedwire{ + dir = 4 + }, +/turf/open/indestructible/ground/outside/sidewalk{ + icon_state = "horizontalbottomborderbottom0" + }, +/area/f13/wasteland) "ozI" = ( /obj/item/clothing/shoes/combat, /obj/structure/closet, @@ -35135,6 +35667,13 @@ /obj/effect/decal/remains/human, /turf/open/floor/f13/wood, /area/f13/tunnel) +"oAo" = ( +/turf/open/floor/plasteel/stairs{ + barefootstep = "woodbarefoot"; + color = "#A47449"; + footstep = "wood" + }, +/area/f13/wasteland) "oAB" = ( /obj/structure/barricade/bars, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, @@ -35252,6 +35791,10 @@ icon_state = "horizontalinnermain0" }, /area/f13/wasteland) +"oDo" = ( +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/lowmid, +/turf/closed/wall/f13/wood/house, +/area/f13/village) "oDv" = ( /obj/machinery/conveyor/auto{ dir = 6 @@ -35286,19 +35829,14 @@ }, /area/f13/building) "oEh" = ( -/obj/effect/decal/cleanable/blood/gibs/down{ - icon_state = "gibup1" - }, -/obj/machinery/light/small{ - dir = 8 - }, -/turf/open/floor/f13/wood{ - icon_state = "housewood2" +/obj/structure/destructible/tribal_torch/wall/lit{ + dir = 4 }, -/area/f13/village) +/turf/open/indestructible/ground/inside/mountain, +/area/f13/caves) "oES" = ( /obj/structure/closet/crate/miningcar, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/lowmid, /turf/open/indestructible/ground/inside/mountain, /area/f13/caves) "oFp" = ( @@ -35330,6 +35868,7 @@ /turf/open/indestructible/ground/outside/desert, /area/f13/wasteland) "oFM" = ( +/obj/structure/barricade/wooden, /turf/open/indestructible/ground/outside/road{ icon_state = "horizontalinnermain2left" }, @@ -35544,11 +36083,6 @@ icon_state = "floorrustysolid" }, /area/f13/caves) -"oJF" = ( -/obj/structure/fireplace, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/carpet/black, -/area/f13/legion) "oJU" = ( /obj/structure/sign/departments/medbay, /turf/closed/wall/f13/store, @@ -35567,15 +36101,24 @@ }, /area/f13/wasteland) "oKE" = ( -/obj/structure/junk/drawer{ - icon_state = "junk_bench" - }, -/turf/open/indestructible/ground/outside/sidewalk, +/obj/structure/sign/poster/ncr/irradiated_food, +/turf/closed/wall/f13/wood, /area/f13/ncr) "oKW" = ( /obj/structure/table/reinforced, /turf/open/floor/plasteel/f13/vault_floor/red/white, /area/f13/building) +"oKZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/overlay/junk/toilet{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/turf/open/floor/plasteel/barber{ + icon = 'icons/turf/f13floors2.dmi'; + icon_state = "bluerustychess2" + }, +/area/f13/bar) "oLg" = ( /obj/structure/statue/sandstone/gravestone{ anchored = 1 @@ -35594,9 +36137,13 @@ }, /area/f13/legion) "oLt" = ( -/mob/living/simple_animal/hostile/handy/gutsy, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/hostile/handy/gutsy{ + icon_living = "pvtgutsy"; + icon_state = "pvtgutsy"; + name = "Mr. Gutsy" + }, /turf/open/floor/plasteel/f13{ icon_state = "plating" }, @@ -35624,7 +36171,7 @@ /area/f13/building) "oMn" = ( /mob/living/simple_animal/chicken, -/turf/open/indestructible/ground/outside/savannah/topcenter, +/turf/open/indestructible/ground/outside/savannah/topright, /area/f13/wasteland) "oMp" = ( /turf/open/indestructible/ground/outside/dirt{ @@ -35938,6 +36485,15 @@ icon_state = "dirt" }, /area/f13/wasteland) +"oSE" = ( +/obj/effect/overlay/barbed{ + dir = 8 + }, +/obj/effect/overlay/barbed, +/turf/open/indestructible/ground/outside/sidewalk{ + icon_state = "verticalrightborderright0" + }, +/area/f13/wasteland) "oTa" = ( /obj/structure/barricade/wooden/planks/pregame, /obj/structure/barricade/wooden/planks/pregame, @@ -36403,6 +36959,30 @@ icon_state = "yellowrustyfull" }, /area/f13/building) +"peN" = ( +/obj/item/storage/box/handcuffs{ + pixel_x = 2 + }, +/obj/item/flashlight/seclite{ + pixel_x = 2 + }, +/obj/structure/rack{ + pixel_x = 2 + }, +/obj/item/flashlight/seclite{ + pixel_x = 2 + }, +/obj/item/flashlight/seclite{ + pixel_x = 2 + }, +/obj/item/flashlight/seclite{ + pixel_x = 2 + }, +/obj/item/flashlight/seclite{ + pixel_x = 2 + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "peX" = ( /obj/effect/decal/cleanable/dirt{ color = "000000" @@ -36418,7 +36998,7 @@ /area/f13/wasteland) "pfb" = ( /obj/structure/table, -/obj/machinery/chem_dispenser/drinks/beer{ +/obj/machinery/chem_dispenser/drinks{ dir = 4; pixel_x = 10; pixel_y = 9 @@ -36532,10 +37112,9 @@ /turf/open/floor/f13/wood, /area/f13/building) "pgL" = ( -/obj/structure/decoration/rag{ - icon_state = "skin" - }, -/turf/closed/wall/f13/wood/house, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/f13/wood, /area/f13/raiders) "pgN" = ( /obj/structure/target_stake, @@ -36572,7 +37151,7 @@ }, /area/f13/wasteland) "pia" = ( -/obj/structure/chair/left{ +/obj/structure/chair/sofa/left{ dir = 1 }, /turf/open/floor/f13/wood{ @@ -36856,13 +37435,13 @@ /turf/open/floor/f13/wood, /area/f13/building) "poS" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/indestructible/ground/outside/sidewalk{ - icon_state = "horizontaltopbordertop0" +/obj/machinery/door/unpowered/securedoor{ + desc = "Door with a built-in lock. Can't be padlocked. You can smell the whisky and toughness from even outside the door."; + name = "Ranger Station Oscar"; + req_access_txt = "121" }, -/area/f13/wasteland) +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "poX" = ( /obj/machinery/power/terminal, /obj/structure/cable, @@ -36918,7 +37497,7 @@ /turf/closed/wall/f13/wood, /area/f13/legion) "pqw" = ( -/obj/structure/chair/booth, +/obj/structure/chair/stool/retro/backed, /turf/open/floor/f13/wood{ icon_state = "housewood2" }, @@ -37084,6 +37663,13 @@ "pvp" = ( /turf/open/floor/plating, /area/f13/building) +"pvt" = ( +/obj/effect/overlay/barbed, +/obj/effect/overlay/barbed{ + dir = 4 + }, +/turf/open/indestructible/ground/outside/desert, +/area/f13/wasteland) "pvw" = ( /obj/structure/cable{ icon_state = "2-4" @@ -37091,19 +37677,11 @@ /turf/open/floor/plasteel/floorgrime, /area/f13/building) "pvD" = ( -/obj/item/storage/box/drinkingglasses{ - pixel_x = 7; - pixel_y = 5 - }, -/obj/item/storage/box/drinkingglasses{ - pixel_x = -7; - pixel_y = 5 - }, -/obj/structure/table, -/turf/open/floor/f13{ - icon_state = "whitegreenrustychess" +/obj/structure/chair/stool/retro/tan, +/turf/open/floor/f13/wood{ + icon_state = "housewood2" }, -/area/f13/ncr) +/area/f13/village) "pvL" = ( /obj/structure/showcase/cyborg/old, /obj/effect/decal/cleanable/dirt, @@ -37588,7 +38166,10 @@ /area/f13/tunnel) "pGq" = ( /obj/structure/table/wood, -/obj/structure/bedsheetbin, +/obj/item/reagent_containers/food/drinks/bottle/bawls{ + pixel_x = -5; + pixel_y = 15 + }, /turf/open/indestructible/ground/outside/dirt, /area/f13/wasteland) "pGH" = ( @@ -38101,7 +38682,9 @@ }, /area/f13/bunker) "pQB" = ( -/obj/item/clothing/accessory/medal/plasma/nobel_science, +/obj/item/clothing/accessory/medal/plasma/nobel_science{ + name = "Medal of Science" + }, /obj/structure/displaycase, /turf/open/floor/f13/wood{ icon_state = "housewood2" @@ -38168,6 +38751,13 @@ icon_state = "dirt" }, /area/f13/wasteland) +"pRz" = ( +/obj/structure/table, +/obj/structure/barricade/bars, +/turf/open/indestructible/ground/outside/road{ + icon_state = "verticalrightborderleft0" + }, +/area/f13/wasteland) "pSn" = ( /obj/structure/car/rubbish3, /turf/open/indestructible/ground/outside/road{ @@ -38185,6 +38775,16 @@ icon_state = "floorrusty" }, /area/f13/building) +"pSx" = ( +/obj/effect/overlay/barbed, +/obj/effect/overlay/barbed{ + dir = 4 + }, +/turf/open/indestructible/ground/outside/sidewalk{ + dir = 1; + icon_state = "outerpavement" + }, +/area/f13/wasteland) "pSC" = ( /obj/structure/table/wood, /turf/open/indestructible/ground/outside/dirt, @@ -38366,7 +38966,6 @@ }, /area/f13/village) "pXv" = ( -/obj/structure/table, /obj/effect/decal/cleanable/dirt{ color = "000000" }, @@ -38374,6 +38973,7 @@ dir = 1; pixel_x = -24 }, +/obj/structure/table/wood, /turf/open/floor/f13/wood, /area/f13/building) "pXx" = ( @@ -38426,15 +39026,23 @@ icon_state = "horizontalinnermain2" }, /area/f13/wasteland) +"pYa" = ( +/obj/structure/table, +/obj/structure/barricade/sandbags, +/turf/open/indestructible/ground/outside/road{ + icon_state = "verticalleftborderright2top" + }, +/area/f13/wasteland) "pYj" = ( -/obj/structure/fence/wooden{ - dir = 1 +/obj/structure/window/fulltile/house{ + icon_state = "housewindowbroken" }, -/turf/open/indestructible/ground/outside/dirt{ - dir = 4; - icon_state = "dirt" +/obj/structure/barricade/wooden/planks/pregame, +/obj/structure/curtain{ + color = "#845f58" }, -/area/f13/wasteland) +/turf/open/floor/f13/wood, +/area/f13/raiders) "pYn" = ( /obj/structure/tires/two, /obj/effect/decal/cleanable/glass, @@ -38611,6 +39219,12 @@ icon_state = "bluedirtychess2" }, /area/f13/building) +"qdd" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "qdi" = ( /obj/effect/spawner/lootdrop/bedsheet, /obj/structure/bed, @@ -38625,6 +39239,14 @@ icon_state = "dirt" }, /area/f13/wasteland) +"qdw" = ( +/obj/structure/table/wood, +/obj/machinery/door/poddoor/shutters{ + id = "legionlock" + }, +/obj/structure/barricade/sandbags, +/turf/open/floor/f13/wood, +/area/f13/legion) "qdB" = ( /obj/effect/decal/cleanable/dirt{ color = "000000" @@ -38709,10 +39331,12 @@ }, /area/f13/building) "qfi" = ( -/obj/structure/decoration/clock, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/turf/closed/wall/f13/wood/house, +/obj/item/reagent_containers/hypospray/medipen/stimpak, +/obj/item/reagent_containers/hypospray/medipen/stimpak, +/obj/structure/rack/shelf_metal, +/turf/open/floor/f13/wood, /area/f13/raiders) "qfp" = ( /obj/item/storage/trash_stack, @@ -38867,13 +39491,8 @@ }, /area/f13/building) "qiN" = ( -/obj/effect/spawner/lootdrop/f13/medical/wasteland/meds/drug{ - pixel_y = 10 - }, /obj/effect/decal/cleanable/dirt, -/obj/machinery/smartfridge/bottlerack/drug_storage, -/obj/item/reagent_containers/pill/patch/jet, -/obj/item/reagent_containers/pill/patch/jet, +/obj/machinery/autolathe, /turf/open/floor/f13/wood, /area/f13/raiders) "qiO" = ( @@ -39233,6 +39852,13 @@ icon_state = "housewood4-broken" }, /area/f13/building) +"qrd" = ( +/obj/structure/table, +/obj/structure/barricade/bars, +/turf/open/indestructible/ground/outside/sidewalk{ + icon_state = "horizontaloutermain1" + }, +/area/f13/wasteland) "qrm" = ( /obj/structure/flora/tree/tall{ layer = 2; @@ -39415,8 +40041,13 @@ }, /area/f13/wasteland) "qwW" = ( -/mob/living/simple_animal/cow/brahmin, -/turf/open/indestructible/ground/outside/savannah/topright, +/obj/structure/fence/wooden{ + dir = 1 + }, +/turf/open/indestructible/ground/outside/dirt{ + dir = 4; + icon_state = "dirt" + }, /area/f13/wasteland) "qxf" = ( /obj/structure/reagent_dispensers/compostbin{ @@ -39496,9 +40127,7 @@ /area/f13/tunnel) "qyH" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster/prewar/poster82{ - pixel_y = 32 - }, +/obj/item/flag/bos, /turf/open/floor/plasteel/f13/vault_floor/dark, /area/f13/brotherhood/surface) "qyJ" = ( @@ -39537,12 +40166,15 @@ /turf/open/floor/wood, /area/f13/building) "qzr" = ( -/obj/structure/table, -/obj/machinery/chem_dispenser/drinks{ - dir = 4; - pixel_x = 10; - pixel_y = 9 +/obj/item/storage/box/drinkingglasses{ + pixel_x = 7; + pixel_y = 5 }, +/obj/item/storage/box/drinkingglasses{ + pixel_x = -7; + pixel_y = 5 + }, +/obj/structure/table, /turf/open/floor/f13{ icon_state = "whitegreenrustychess" }, @@ -39700,7 +40332,7 @@ }, /area/f13/building) "qCI" = ( -/obj/effect/mine/stun, +/obj/item/mine/stun, /turf/open/floor/plasteel/f13/vault_floor/blue/side{ dir = 8 }, @@ -39947,6 +40579,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/f13/legion) +"qHe" = ( +/obj/structure/stairs/north{ + color = "#A47449" + }, +/turf/open/indestructible/ground/outside/desert, +/area/f13/wasteland) "qHu" = ( /obj/effect/decal/remains{ icon_state = "remains" @@ -40030,6 +40668,17 @@ icon_state = "floorrustysolid" }, /area/f13/building) +"qJq" = ( +/obj/structure/table/reinforced, +/obj/item/binoculars{ + pixel_x = -10; + pixel_y = 10 + }, +/obj/structure/barricade/sandbags, +/turf/open/floor/f13{ + icon_state = "darkdirtysolid" + }, +/area/f13/ncr) "qJx" = ( /obj/effect/decal/cleanable/dirt, /obj/item/trash/f13/crisps, @@ -40398,7 +41047,7 @@ /area/f13/wasteland) "qPS" = ( /obj/structure/closet/crate/trashcart, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/indestructible/ground/outside/sidewalk{ icon_state = "verticalleftborderleft2bottom" }, @@ -40616,8 +41265,8 @@ /area/f13/building) "qTe" = ( /obj/structure/table, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, /obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust{ icon_state = "floorrustysolid" }, @@ -40727,16 +41376,10 @@ /obj/effect/decal/cleanable/dirt{ color = "000000" }, -/obj/structure/bedsheetbin/towel, /obj/structure/junk/small/table, +/obj/structure/bedsheetbin/towel, /turf/open/floor/wood/f13/oak, /area/f13/ncr) -"qVh" = ( -/mob/living/simple_animal/hostile/ghoul, -/turf/open/indestructible/ground/outside/road{ - icon_state = "verticalrightborderleft1" - }, -/area/f13/wasteland) "qVC" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 10 @@ -41166,6 +41809,14 @@ icon_state = "floorrustysolid" }, /area/f13/building) +"rfu" = ( +/obj/machinery/door/unpowered/securedoor{ + desc = "Door with a built-in lock. Can't be padlocked. You can smell the whisky and toughness from even outside the door."; + name = "Ranger's Communications Post"; + req_access_txt = "121" + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "rfA" = ( /obj/structure/bed/old, /obj/machinery/light/small{ @@ -41198,6 +41849,13 @@ icon_state = "horizontalinnermain1" }, /area/f13/wasteland) +"rgB" = ( +/obj/structure/table, +/obj/structure/barricade/sandbags, +/turf/open/indestructible/ground/outside/road{ + icon_state = "verticalleftborderright1" + }, +/area/f13/wasteland) "rgE" = ( /obj/effect/turf_decal/stripes/white/line, /obj/effect/decal/cleanable/dirt{ @@ -41237,7 +41895,6 @@ }, /area/f13/wasteland) "rht" = ( -/obj/effect/landmark/start/f13/pusher, /obj/structure/chair/sofa/right, /turf/open/indestructible/ground/outside/dirt, /area/f13/wasteland) @@ -41269,6 +41926,10 @@ icon_state = "floorrusty" }, /area/f13/building) +"riC" = ( +/obj/structure/decoration/clock/old/active, +/turf/closed/wall/f13/wood/interior, +/area/f13/building) "riF" = ( /obj/structure/window/fulltile/store{ icon_state = "storewindowleft" @@ -41550,8 +42211,14 @@ /area/f13/wasteland) "rqc" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/closed/mineral/random/high_chance, -/area/f13/caves) +/turf/closed/wall/f13/wood/house, +/area/f13/raiders) +"rqs" = ( +/obj/structure/safe, +/obj/effect/spawner/lootdrop/f13/cash_random_med, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/lowmid, +/turf/open/floor/f13/wood, +/area/f13/village) "rqz" = ( /obj/effect/decal/cleanable/dirt, /obj/item/trash/f13/instamash, @@ -42230,6 +42897,10 @@ icon_state = "floorrusty" }, /area/f13/building) +"rJY" = ( +/obj/structure/sign/poster/contraband/pinup_shower, +/turf/closed/wall/f13/wood, +/area/f13/ncr) "rKj" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -42333,6 +43004,12 @@ }, /turf/open/floor/f13/wood, /area/f13/building) +"rMK" = ( +/obj/structure/obstacle/barbedwire, +/turf/open/indestructible/ground/outside/road{ + icon_state = "horizontaltopborderbottom0" + }, +/area/f13/tunnel) "rMU" = ( /obj/effect/decal/remains/human, /obj/effect/decal/cleanable/dirt, @@ -42495,6 +43172,13 @@ name = "metal plating" }, /area/f13/building) +"rRn" = ( +/obj/effect/landmark/start/f13/pusher, +/turf/open/indestructible/ground/outside/dirt{ + dir = 8; + icon_state = "dirt" + }, +/area/f13/wasteland) "rRt" = ( /obj/effect/spawner/lootdrop/trash, /turf/open/indestructible/ground/outside/sidewalk, @@ -42685,6 +43369,11 @@ /mob/living/simple_animal/hostile/gecko, /turf/open/indestructible/ground/outside/desert, /area/f13/wasteland) +"rVT" = ( +/obj/structure/table, +/obj/structure/barricade/sandbags, +/turf/open/indestructible/ground/outside/sidewalk, +/area/f13/wasteland) "rVX" = ( /obj/structure/rack, /obj/item/stack/sheet/glass, @@ -42877,11 +43566,6 @@ }, /turf/open/floor/f13/wood, /area/f13/caves) -"saL" = ( -/obj/item/book/granter/crafting_recipe/gunsmith_one, -/obj/machinery/autolathe/ammo, -/turf/open/floor/f13/wood, -/area/f13/building) "sbf" = ( /obj/structure/closet/crate/bin, /obj/item/reagent_containers/food/drinks/bottle/f13nukacola, @@ -43087,6 +43771,10 @@ }, /turf/open/floor/f13/wood, /area/f13/building) +"sgg" = ( +/obj/structure/simple_door/metal/fence/wooden, +/turf/open/indestructible/ground/outside/dirt, +/area/f13/wasteland) "sgl" = ( /obj/effect/decal/remains/human{ pixel_x = -13; @@ -43403,6 +44091,13 @@ icon_state = "bluerustychess2" }, /area/f13/village) +"slV" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, +/turf/open/floor/f13{ + icon_state = "floorrusty" + }, +/area/f13/building) "smi" = ( /obj/structure/simple_door/metal/store{ icon_state = "brokenstore" @@ -43422,7 +44117,10 @@ dir = 1; pixel_y = -3 }, -/turf/open/indestructible/ground/outside/dirt, +/turf/open/indestructible/ground/outside/dirt{ + dir = 4; + icon_state = "dirtcorner" + }, /area/f13/raiders) "smw" = ( /obj/structure/chair/wood/fancy{ @@ -43823,6 +44521,12 @@ name = "tile" }, /area/f13/building) +"swf" = ( +/mob/living/simple_animal/hostile/ghoul, +/turf/open/indestructible/ground/outside/road{ + icon_state = "horizontaltopborderbottom0" + }, +/area/f13/wasteland) "swk" = ( /obj/structure/window/fulltile/house{ icon_state = "housewindowbrokenvertical" @@ -43869,9 +44573,16 @@ "swJ" = ( /obj/effect/turf_decal/stripes/white/box, /obj/item/gun/ballistic/automatic/service, -/obj/structure/guncase, +/obj/structure/guncase{ + anchored = 1 + }, /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/ncr) +"swL" = ( +/obj/structure/barricade/sandbags, +/obj/structure/table, +/turf/open/indestructible/ground/outside/desert, +/area/f13/wasteland) "swN" = ( /obj/structure/table/glass, /obj/item/reagent_containers/syringe{ @@ -43988,22 +44699,6 @@ icon_state = "outerturn" }, /area/f13/wasteland) -"szO" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/item/pen, -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "ncr_gate"; - name = "gate button"; - pixel_x = 25 - }, -/turf/open/floor/f13{ - icon_state = "darkdirtysolid" - }, -/area/f13/ncr) "szZ" = ( /obj/effect/decal/cleanable/dirt{ color = "#363636" @@ -44178,6 +44873,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet/black, /area/f13/ncr) +"sEN" = ( +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/lowmid, +/turf/open/indestructible/ground/inside/mountain, +/area/f13/caves) "sEX" = ( /turf/open/floor/plasteel/f13/vault_floor/blue/side{ dir = 5 @@ -44324,7 +45023,7 @@ /obj/effect/decal/cleanable/dirt{ color = "000000" }, -/obj/structure/chair/booth{ +/obj/structure/chair/stool/retro/backed{ dir = 1 }, /turf/open/floor/f13/wood{ @@ -44373,6 +45072,12 @@ icon_state = "floorrusty" }, /area/f13/building) +"sIN" = ( +/obj/item/card/id/rusted, +/turf/open/indestructible/ground/outside/sidewalk{ + icon_state = "horizontaltopbordertop0" + }, +/area/f13/tunnel) "sIO" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 4 @@ -44582,11 +45287,13 @@ /turf/open/floor/carpet/black, /area/f13/ncr) "sNC" = ( -/obj/machinery/light, -/turf/open/indestructible/ground/outside/sidewalk{ - icon_state = "horizontaloutermain1" +/obj/structure/chair/stool/retro/backed{ + dir = 1 }, -/area/f13/wasteland) +/turf/open/floor/f13/wood{ + icon_state = "housewood2" + }, +/area/f13/village) "sND" = ( /obj/structure/flora/tree/tall{ icon_state = "tree_2" @@ -45105,9 +45812,11 @@ /turf/open/indestructible/ground/outside/ruins, /area/f13/village) "sYF" = ( -/obj/machinery/workbench/forge, -/obj/effect/turf_decal/stripes/white/box, -/turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, +/obj/structure/table/wood, +/obj/machinery/microwave{ + pixel_y = 5 + }, +/turf/open/floor/wood/wood_large, /area/f13/ncr) "sYK" = ( /obj/structure/table/wood/fancy/black, @@ -45237,7 +45946,7 @@ "tbj" = ( /obj/structure/closet, /obj/effect/spawner/lootdrop/f13/armor/tier4, -/obj/effect/spawner/lootdrop/f13/weapon/melee/random_high, +/obj/effect/spawner/lootdrop/f13/weapon/melee/random_mid, /turf/open/floor/f13{ icon_state = "darkrusty" }, @@ -45304,8 +46013,12 @@ /turf/open/floor/f13/wood, /area/f13/building) "tdn" = ( -/obj/structure/chair/wood/fancy, -/obj/effect/landmark/start/f13/ncrlieutenant, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/computer/card/ncr{ + dir = 8 + }, /turf/open/floor/carpet/black, /area/f13/ncr) "tdv" = ( @@ -45363,6 +46076,7 @@ /area/f13/building) "tfz" = ( /obj/effect/decal/cleanable/cobweb, +/obj/structure/closet/crate/bin/trashbin, /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/ncr) "tfL" = ( @@ -45391,6 +46105,16 @@ "tgR" = ( /turf/open/floor/plasteel/f13/vault_floor/blue, /area/f13/village) +"tgY" = ( +/obj/machinery/button/door{ + id = "ncr_gate"; + name = "gate button"; + pixel_x = -25 + }, +/turf/open/floor/f13{ + icon_state = "darkdirtysolid" + }, +/area/f13/ncr) "tha" = ( /obj/structure/chair/stool{ dir = 4; @@ -45612,8 +46336,15 @@ }, /area/f13/wasteland) "tkO" = ( -/obj/item/storage/money_stack/ncr, -/turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/bottle/instacoffee{ + pixel_x = -8 + }, +/obj/item/crafting/coffee_pot{ + pixel_x = 8; + pixel_y = 6 + }, +/turf/open/floor/wood/wood_large, /area/f13/ncr) "tkS" = ( /obj/machinery/light, @@ -45797,18 +46528,13 @@ }, /area/f13/building) "toH" = ( -/obj/effect/decal/cleanable/dirt{ - color = "000000" - }, -/obj/structure/ladder/unbreakable{ - height = 2; - id = "ncrranger"; - name = "Ranger bunks ladder" - }, -/turf/open/floor/wood/wood_diagonal, +/obj/item/storage/money_stack/ncr, +/turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/ncr) "toL" = ( -/turf/open/floor/wood/wood_diagonal, +/obj/structure/chair/wood/fancy, +/obj/effect/landmark/start/f13/ncrlieutenant, +/turf/open/floor/carpet/black, /area/f13/ncr) "toS" = ( /mob/living/simple_animal/hostile/ghoul, @@ -45943,6 +46669,10 @@ }, /turf/open/indestructible/ground/inside/subway, /area/f13/tunnel) +"trU" = ( +/obj/structure/obstacle/barbedwire, +/turf/open/indestructible/ground/outside/sidewalk, +/area/f13/wasteland) "trW" = ( /obj/structure/flora/tree/tall{ icon_state = "tree_3" @@ -45973,14 +46703,17 @@ /area/f13/building) "tsv" = ( /obj/structure/table/wood, -/obj/item/reagent_containers/glass/rag{ - pixel_y = 8 - }, /obj/structure/destructible/tribal_torch/wall/lit{ dir = 4 }, /turf/open/indestructible/ground/outside/dirt, /area/f13/wasteland) +"tsA" = ( +/obj/structure/obstacle/barbedwire/end, +/turf/open/indestructible/ground/outside/sidewalk{ + icon_state = "horizontaltopbordertop0" + }, +/area/f13/tunnel) "tsB" = ( /obj/effect/decal/cleanable/dirt, /obj/item/storage/trash_stack, @@ -46018,11 +46751,12 @@ "tte" = ( /obj/structure/table/wood, /obj/item/paper_bin, +/obj/item/pen/fountain, /obj/machinery/light{ dir = 1 }, /obj/item/megaphone, -/turf/open/floor/wood/wood_diagonal, +/turf/open/floor/carpet/black, /area/f13/ncr) "ttn" = ( /obj/structure/flora/grass/jungle, @@ -46128,12 +46862,9 @@ /turf/open/indestructible/ground/inside/mountain, /area/f13/caves) "tvE" = ( -/obj/effect/landmark/start/f13/ncrveteranranger, -/obj/structure/chair/office/dark, -/obj/effect/decal/cleanable/dirt{ - color = "000000" - }, -/turf/open/floor/wood/wood_diagonal, +/obj/structure/table/wood, +/obj/item/pda, +/turf/open/floor/carpet/black, /area/f13/ncr) "tvJ" = ( /obj/structure/closet/crate, @@ -46155,6 +46886,11 @@ icon_state = "floorrustysolid" }, /area/f13/building) +"tvN" = ( +/obj/structure/table, +/obj/structure/barricade/bars, +/turf/open/indestructible/ground/outside/desert, +/area/f13/wasteland) "twq" = ( /obj/effect/decal/remains{ icon_state = "remains" @@ -46377,13 +47113,6 @@ icon_state = "dirt" }, /area/f13/wasteland) -"tBP" = ( -/obj/structure/table/wood, -/obj/item/binoculars, -/turf/open/floor/f13{ - icon_state = "darkdirtysolid" - }, -/area/f13/ncr) "tBR" = ( /obj/structure/barricade/sandbags, /turf/open/indestructible/ground/outside/road{ @@ -46465,9 +47194,10 @@ /area/f13/wasteland) "tDQ" = ( /obj/structure/table/wood, -/obj/structure/table/wood, /obj/item/paper_bin, -/obj/item/pen/fountain, +/obj/item/pen/fountain/captain{ + name = "Captain's fountain pen" + }, /obj/item/pda, /obj/item/stack/f13Cash/ncr{ amount = 1000; @@ -46482,11 +47212,11 @@ /area/f13/village) "tEr" = ( /obj/structure/table/wood, -/obj/effect/decal/cleanable/dirt{ - color = "000000" - }, -/obj/item/documents{ - desc = "Documents and maps concerning the local NCR presence." +/obj/machinery/msgterminal/ncr{ + dir = 1; + icon_state = "terminal"; + name = "Communications Terminal"; + plane = -4 }, /turf/open/floor/carpet/black, /area/f13/ncr) @@ -46617,6 +47347,8 @@ /area/f13/building) "tIM" = ( /obj/structure/safe, +/obj/effect/spawner/lootdrop/f13/cash_random_high, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/f13/wood, /area/f13/village) "tJe" = ( @@ -46793,9 +47525,16 @@ }, /area/f13/building) "tNa" = ( -/obj/structure/table/wood, -/obj/item/pda, -/turf/open/floor/carpet/black, +/obj/structure/closet/fridge/standard{ + storage_capacity = 22 + }, +/obj/item/storage/box/ration/ranger_lunch, +/obj/item/storage/box/ration/ranger_dinner, +/obj/item/storage/box/ration/ranger_breakfast, +/obj/item/storage/box/ration/ranger_breakfast, +/obj/item/storage/box/ration/ranger_dinner, +/obj/item/storage/box/ration/ranger_lunch, +/turf/open/floor/wood/wood_large, /area/f13/ncr) "tNh" = ( /obj/machinery/light/small, @@ -46948,7 +47687,9 @@ /turf/open/indestructible/ground/outside/dirt, /area/f13/wasteland) "tQl" = ( -/obj/structure/table, +/obj/structure/stairs/south{ + color = "#A47449" + }, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust{ name = "metal plating" }, @@ -47048,6 +47789,10 @@ }, /turf/open/floor/plasteel/f13/vault_floor/red, /area/f13/village) +"tSB" = ( +/mob/living/simple_animal/cow/brahmin, +/turf/open/indestructible/ground/outside/savannah/topcenter, +/area/f13/wasteland) "tSQ" = ( /obj/structure/car/rubbish2, /turf/open/indestructible/ground/outside/sidewalk{ @@ -47125,7 +47870,7 @@ /obj/effect/decal/cleanable/dirt{ color = "000000" }, -/obj/structure/chair/booth{ +/obj/structure/chair/stool/retro/backed{ dir = 4 }, /turf/open/floor/f13/wood{ @@ -47154,7 +47899,7 @@ /turf/open/floor/f13/wood, /area/f13/village) "tVJ" = ( -/obj/machinery/deepfryer, +/obj/structure/junk/micro, /turf/open/floor/f13{ icon_state = "whitegreenrustychess" }, @@ -47233,14 +47978,13 @@ }, /area/f13/ncr) "tXt" = ( -/obj/effect/decal/cleanable/dirt{ - color = "000000" - }, /obj/structure/table/wood, -/obj/item/stack/f13Cash/ncr{ - amount = 500 +/obj/machinery/radioterminal/ncr{ + dir = 1; + icon_state = "terminal"; + name = "NCR Radio Terminal" }, -/turf/open/floor/wood/wood_diagonal, +/turf/open/floor/carpet/black, /area/f13/ncr) "tXy" = ( /obj/structure/table/wood/settler, @@ -47353,6 +48097,11 @@ /obj/item/reagent_containers/food/snacks/f13/blamco/large, /obj/item/reagent_containers/food/snacks/f13/canned/porknbeans, /obj/item/reagent_containers/food/snacks/beans, +/obj/item/reagent_containers/food/condiment/bbqsauce, +/obj/item/reagent_containers/food/snacks/f13/canned/porknbeans, +/obj/item/reagent_containers/food/snacks/f13/canned/porknbeans, +/obj/item/reagent_containers/food/snacks/beans, +/obj/item/reagent_containers/food/snacks/beans, /turf/open/indestructible/ground/outside/dirt, /area/f13/raiders) "tZW" = ( @@ -47459,6 +48208,13 @@ /obj/item/clothing/head/cone, /turf/open/floor/plasteel/f13/vault_floor/plating, /area/f13/building) +"ucr" = ( +/obj/effect/decal/cleanable/dirt{ + color = "000000" + }, +/obj/structure/bookcase/random, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "ucs" = ( /obj/structure/table/wood, /obj/effect/spawner/lootdrop/f13/weapon/gun/ammo/tier2, @@ -47501,9 +48257,10 @@ /turf/open/floor/f13/wood, /area/f13/village) "udx" = ( -/obj/structure/reagent_dispensers/barrel/explosive, -/turf/open/indestructible/ground/outside/desert, -/area/f13/wasteland) +/obj/structure/closet/crate/freezer/blood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/f13/wood, +/area/f13/raiders) "udT" = ( /obj/structure/table/wood, /obj/item/stack/medical/suture, @@ -47598,9 +48355,11 @@ /obj/structure/table/wood, /obj/structure/junk/small/tv{ desc = "Advertisements would've played on this tv before the bombs dropped."; + icon = 'icons/fallout/objects/decorations.dmi'; + icon_state = "television"; name = "pre-war advertising television"; - pixel_x = 1; - pixel_y = 8 + pixel_x = 0; + pixel_y = 0 }, /turf/open/floor/plasteel/f13/vault_floor/floor/floorsolid, /area/f13/building) @@ -47613,9 +48372,6 @@ "ufN" = ( /obj/structure/rack, /obj/effect/turf_decal/stripes/white/box, -/obj/machinery/light{ - dir = 8 - }, /obj/item/stack/crafting/armor_plate/ten, /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/ncr) @@ -47820,6 +48576,14 @@ icon_state = "floorrusty" }, /area/f13/building) +"ujB" = ( +/obj/structure/obstacle/barbedwire/end{ + dir = 4 + }, +/turf/open/indestructible/ground/outside/sidewalk{ + icon_state = "horizontaloutermain1" + }, +/area/f13/wasteland) "ujC" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/f13{ @@ -47888,6 +48652,12 @@ /obj/item/pickaxe, /turf/open/floor/f13/wood, /area/f13/building) +"ukD" = ( +/obj/vehicle/ridden/wheelchair{ + name = "Hawtrod" + }, +/turf/open/indestructible/ground/outside/desert, +/area/f13/wasteland) "ukQ" = ( /turf/closed/mineral/random/high_chance, /area/f13/wasteland) @@ -47982,20 +48752,19 @@ /turf/open/indestructible/ground/outside/water, /area/f13/caves) "unF" = ( -/obj/structure/table/wood, /obj/effect/decal/cleanable/dirt{ color = "000000" }, +/obj/structure/table/wood, +/obj/item/stack/f13Cash/ncr{ + amount = 500 + }, /obj/structure/decoration/rag{ icon_state = "flag_ncr"; name = "NCR banner"; pixel_x = 32 }, -/obj/machinery/computer/terminal{ - dir = 1; - termtag = "Secret" - }, -/turf/open/floor/wood/wood_diagonal, +/turf/open/floor/carpet/black, /area/f13/ncr) "unG" = ( /obj/structure/table/wood/poker{ @@ -48016,17 +48785,13 @@ /area/f13/legion) "unN" = ( /mob/living/simple_animal/hostile/handy, -/obj/structure/chair/booth, +/obj/structure/chair/stool/retro/backed, /turf/open/floor/f13/wood{ icon_state = "housewood2" }, /area/f13/village) "unS" = ( -/obj/item/clothing/shoes/combat/swat, /obj/structure/rack, -/obj/item/clothing/shoes/combat/swat, -/obj/item/clothing/shoes/combat/swat, -/obj/item/clothing/shoes/combat/swat, /obj/item/clothing/gloves/f13/military, /obj/item/clothing/gloves/f13/military, /obj/item/clothing/gloves/f13/military, @@ -48039,6 +48804,10 @@ /obj/item/clothing/head/f13/town/officer, /obj/item/clothing/head/f13/town/officer, /obj/item/clothing/head/f13/town/officer, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/shoes/jackboots, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/f13/building) "unW" = ( @@ -48056,13 +48825,7 @@ }, /area/f13/building) "uoC" = ( -/obj/machinery/light{ - dir = 4; - light_color = "#c1caff" - }, -/obj/item/bedsheet/brown, -/obj/structure/bed/old, -/turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, +/turf/open/floor/wood/wood_large, /area/f13/ncr) "uoK" = ( /obj/effect/landmark/start/f13/wastelander, @@ -48084,6 +48847,14 @@ }, /turf/open/indestructible/ground/outside/water, /area/f13/caves) +"upi" = ( +/obj/structure/obstacle/barbedwire{ + dir = 4 + }, +/turf/open/indestructible/ground/outside/road{ + icon_state = "verticalrightborderleft0" + }, +/area/f13/wasteland) "upj" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -48099,6 +48870,13 @@ /obj/structure/debris/v3, /turf/open/indestructible/ground/outside/sidewalk, /area/f13/wasteland) +"upC" = ( +/obj/structure/table, +/obj/structure/barricade/sandbags, +/turf/open/indestructible/ground/outside/sidewalk{ + icon_state = "verticalrightborderright0" + }, +/area/f13/wasteland) "upG" = ( /obj/structure/flora/grass/wasteland{ icon_state = "tall_grass_8"; @@ -48121,9 +48899,11 @@ /obj/structure/table, /obj/structure/junk/small/tv{ desc = "Advertisements would've played on this tv before the bombs dropped."; + icon = 'icons/fallout/objects/decorations.dmi'; + icon_state = "television"; name = "pre-war advertising television"; - pixel_x = 1; - pixel_y = 8 + pixel_x = 0; + pixel_y = 0 }, /turf/open/floor/plasteel/f13/vault_floor/floor/floorsolid, /area/f13/building) @@ -48139,6 +48919,8 @@ icon_state = "dottedverticaldegraded"; pixel_x = -15 }, +/obj/structure/table, +/obj/structure/barricade/bars, /turf/open/indestructible/ground/outside/road{ icon_state = "horizontalinnermain2left" }, @@ -48233,9 +49015,12 @@ /area/f13/raiders) "urK" = ( /obj/structure/table/reinforced, -/obj/item/taperecorder, /obj/item/pda/engineering, /obj/effect/decal/cleanable/cobweb, +/obj/machinery/computer/terminal{ + dir = 4; + termtag = "Camp Miller LO Quarters" + }, /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/ncr) "urN" = ( @@ -48369,12 +49154,10 @@ }, /area/f13/wasteland) "uug" = ( -/obj/effect/decal/cleanable/ash, -/obj/effect/decal/cleanable/ash{ - pixel_x = -11; - pixel_y = -7 +/obj/machinery/light{ + dir = 1 }, -/turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, +/turf/open/floor/wood/wood_large, /area/f13/ncr) "uuB" = ( /obj/machinery/door/unpowered/securedoor{ @@ -48533,13 +49316,32 @@ }, /turf/open/floor/wood/f13/stage_tr, /area/f13/wasteland) +"uyq" = ( +/obj/effect/decal/marking{ + icon_state = "doublehorizontalcorroded" + }, +/obj/structure/obstacle/barbedwire, +/turf/open/indestructible/ground/outside/road{ + icon_state = "horizontalinnermain0" + }, +/area/f13/tunnel) "uyB" = ( -/obj/structure/decoration/rag{ - icon_state = "flag_ncr"; - name = "NCR banner"; - pixel_y = 32 +/obj/structure/rack{ + pixel_x = 2 }, -/turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, +/obj/item/reagent_containers/food/snacks/f13/canned/dog{ + pixel_x = 2 + }, +/obj/item/reagent_containers/food/snacks/f13/canned/dog{ + pixel_x = 2 + }, +/obj/item/reagent_containers/food/snacks/f13/canned/dog{ + pixel_x = 2 + }, +/obj/item/paper/fluff/cogstation/secsolars{ + info = "Remember to feed Seth, don't want him to starve now do we! -Ranger Milo." + }, +/turf/open/floor/wood/wood_large, /area/f13/ncr) "uyD" = ( /turf/open/floor/wood/f13/stage_b, @@ -48620,13 +49422,12 @@ "uAE" = ( /obj/structure/guncase, /obj/item/gun/ballistic/shotgun/police, -/obj/item/gun/ballistic/shotgun/trench, -/obj/item/gun/ballistic/shotgun/trench, /obj/effect/decal/fakelattice{ pixel_x = -17 }, /obj/item/gun/ballistic/automatic/marksman/policerifle, /obj/item/gun/ballistic/automatic/marksman/policerifle, +/obj/item/gun/ballistic/shotgun/police, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/f13/building) "uAL" = ( @@ -48799,6 +49600,7 @@ /turf/open/floor/plasteel/f13/vault_floor/white, /area/f13/building) "uEK" = ( +/obj/machinery/workbench/forge, /obj/effect/turf_decal/stripes/white/box, /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/ncr) @@ -48859,11 +49661,9 @@ }, /area/f13/building) "uFJ" = ( -/obj/structure/table, /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/cobweb, -/obj/item/stack/sheet/cardboard/fifty, -/obj/item/camera, +/obj/machinery/workbench/bottler, +/obj/structure/table, /turf/open/floor/f13/wood, /area/f13/raiders) "uFT" = ( @@ -48915,6 +49715,12 @@ }, /turf/open/floor/f13/wood, /area/f13/village) +"uGL" = ( +/obj/structure/decoration/clock/old/active{ + pixel_y = 32 + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "uGX" = ( /obj/structure/chair, /obj/effect/decal/remains/human, @@ -49050,6 +49856,18 @@ "uJC" = ( /turf/open/floor/wood/f13/stage_br, /area/f13/wasteland) +"uJT" = ( +/obj/effect/decal/marking{ + icon_state = "dottedverticaldegraded"; + pixel_x = -15 + }, +/obj/structure/obstacle/barbedwire{ + dir = 4 + }, +/turf/open/indestructible/ground/outside/road{ + icon_state = "verticalinnermain0" + }, +/area/f13/wasteland) "uKq" = ( /obj/structure/destructible/tribal_torch/lit, /obj/structure/wreck/bus/rusted/segmented6{ @@ -49166,6 +49984,19 @@ /obj/structure/decoration/rag, /turf/closed/wall/f13/wood, /area/f13/legion) +"uNL" = ( +/obj/effect/overlay/barbed{ + dir = 8 + }, +/obj/effect/overlay/barbed, +/obj/structure/destructible/tribal_torch/lit{ + pixel_y = 15 + }, +/turf/open/indestructible/ground/outside/sidewalk{ + dir = 8; + icon_state = "outerpavement" + }, +/area/f13/wasteland) "uNQ" = ( /obj/structure/flora/tree/tall{ density = 0; @@ -49185,7 +50016,16 @@ /turf/open/floor/plasteel/f13/vault_floor/red, /area/f13/village) "uOg" = ( -/turf/open/indestructible/ground/outside/sidewalk, +/obj/structure/table/wood, +/obj/item/reagent_containers/glass/beaker/waterbottle/empty{ + pixel_x = -5; + pixel_y = 1 + }, +/obj/item/reagent_containers/glass/beaker/waterbottle/empty{ + pixel_x = 6; + pixel_y = 7 + }, +/turf/open/floor/wood/wood_large, /area/f13/ncr) "uOr" = ( /obj/structure/table/wood, @@ -49566,6 +50406,13 @@ icon_state = "whitegreenrustychess" }, /area/f13/building) +"uTU" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/closet/crate/bin/trashbin, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "uUh" = ( /obj/structure/table, /obj/item/reagent_containers/blood/radaway, @@ -49631,6 +50478,15 @@ icon_state = "floorrusty" }, /area/f13/building) +"uVm" = ( +/obj/machinery/light/small, +/obj/structure/sign/poster/contraband/pinup_pink{ + pixel_y = -32 + }, +/turf/open/floor/f13{ + icon_state = "bluedirtychess2" + }, +/area/f13/ncr) "uVo" = ( /turf/open/indestructible/ground/outside/road{ icon_state = "horizontalbottombordertop3" @@ -49663,13 +50519,8 @@ /turf/open/indestructible/ground/outside/dirt, /area/f13/building) "uVT" = ( -/obj/structure/table, /obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small{ - dir = 8; - light_color = "#d8b1b1" - }, -/obj/item/flashlight, +/obj/machinery/iv_drip, /turf/open/floor/f13/wood, /area/f13/raiders) "uVW" = ( @@ -49751,13 +50602,6 @@ icon_state = "rubbleplate" }, /area/f13/wasteland) -"uXZ" = ( -/obj/structure/fence, -/turf/open/indestructible/ground/outside/sidewalk{ - dir = 1; - icon_state = "outerturn" - }, -/area/f13/ncr) "uYf" = ( /obj/effect/decal/marking{ icon_state = "dottedverticalcorroded" @@ -49795,8 +50639,8 @@ dir = 1; icon_state = "twindowold" }, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/floor/f13/wood, /area/f13/village) "uYC" = ( @@ -49930,15 +50774,10 @@ }, /area/f13/building) "vcg" = ( -/obj/structure/table/wood, /obj/effect/decal/cleanable/dirt{ color = "000000" }, -/obj/item/card/id/dogtag/ncrtrooper, -/obj/item/card/id/dogtag/ncrtrooper, -/obj/item/card/id/dogtag/ncrtrooper, -/obj/item/card/id/dogtag/ncrsergeant, -/turf/open/floor/carpet/black, +/turf/open/floor/wood/wood_large, /area/f13/ncr) "vcm" = ( /obj/structure/chair/office{ @@ -49972,7 +50811,7 @@ /area/f13/wasteland) "vcY" = ( /obj/machinery/door/airlock/hatch{ - name = "NCR Command Quarters"; + name = "NCR Captain's Office"; req_access_txt = "121" }, /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, @@ -50072,6 +50911,9 @@ /obj/structure/rack, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, +/obj/item/gun/ballistic/rifle/repeater/cowboy, +/obj/item/gun/ballistic/rifle/repeater/cowboy, +/obj/item/gun/ballistic/rifle/repeater/cowboy, /turf/open/floor/f13/wood, /area/f13/legion) "vfs" = ( @@ -50193,7 +51035,7 @@ /obj/effect/decal/cleanable/dirt{ color = "000000" }, -/turf/open/floor/wood/wood_diagonal, +/turf/open/floor/carpet/black, /area/f13/ncr) "viu" = ( /obj/machinery/light/small{ @@ -50217,16 +51059,22 @@ /turf/open/floor/f13/wood, /area/f13/building) "viD" = ( -/obj/effect/decal/cleanable/dirt{ - color = "000000" - }, -/obj/machinery/light{ - dir = 4 +/obj/structure/closet/crate{ + desc = "A rectangular steel crate labeled: Humanitarian Supplies." }, -/obj/structure/chair/office/dark{ - dir = 1 +/obj/item/reagent_containers/food/snacks/f13/mre, +/obj/item/reagent_containers/food/snacks/f13/mre, +/obj/item/reagent_containers/food/snacks/f13/mre, +/obj/item/reagent_containers/food/snacks/f13/mre, +/obj/item/reagent_containers/glass/beaker/waterbottle, +/obj/item/reagent_containers/glass/beaker/waterbottle, +/obj/item/reagent_containers/glass/beaker/waterbottle, +/obj/item/paper/fluff/ruins/deepstorage/water_concern{ + info = "We've delivered you a crate of humanitarian supplies due to the lack of clean water and food in Yuma, make use of it. -Ranger-Captain Parker."; + name = "Food and Water concerns"; + pixel_x = 0 }, -/turf/open/floor/wood/wood_diagonal, +/turf/open/floor/wood/wood_large, /area/f13/ncr) "viV" = ( /obj/effect/decal/marking{ @@ -50276,9 +51124,8 @@ /area/f13/bar) "vjO" = ( /obj/effect/landmark/start/f13/pusher, -/turf/open/indestructible/ground/outside/dirt{ - dir = 5; - icon_state = "dirt" +/turf/open/indestructible/ground/outside/desert{ + icon_state = "wasteland32" }, /area/f13/wasteland) "vjR" = ( @@ -50584,6 +51431,9 @@ /obj/item/crafting/abraxo, /obj/item/soap/homemade, /obj/item/reagent_containers/spray, +/obj/item/reagent_containers/glass/rag{ + pixel_y = 8 + }, /turf/open/indestructible/ground/outside/dirt, /area/f13/wasteland) "vsn" = ( @@ -50613,7 +51463,7 @@ }, /area/f13/wasteland) "vtg" = ( -/obj/structure/fermenting_barrel, +/obj/structure/reagent_dispensers/barrel/explosive, /turf/open/indestructible/ground/outside/desert, /area/f13/wasteland) "vtt" = ( @@ -50671,14 +51521,11 @@ /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/ncr) "vuU" = ( -/obj/structure/barricade/tentclothedge{ - dir = 1; - pixel_y = -3 - }, -/turf/open/indestructible/ground/outside/dirt{ - dir = 6; - icon_state = "dirt" +/obj/structure/barricade/wooden/strong, +/obj/structure/decoration/rag{ + icon_state = "skin" }, +/turf/closed/wall/f13/wood/house, /area/f13/raiders) "vvh" = ( /obj/effect/decal/cleanable/dirt, @@ -50867,9 +51714,6 @@ /obj/structure/table/reinforced, /obj/item/paper_bin, /obj/item/pen/fountain, -/obj/machinery/light{ - dir = 8 - }, /obj/effect/spawner/lootdrop/f13/cash_ncr_low, /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/ncr) @@ -50929,6 +51773,18 @@ icon_state = "outerbordercorner" }, /area/f13/wasteland) +"vAb" = ( +/obj/structure/table/wood{ + pixel_x = 2 + }, +/obj/item/kirbyplants/dead{ + desc = "It doesn't look very healthy..."; + name = "Dead potted plant"; + pixel_x = 3; + pixel_y = 10 + }, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "vAe" = ( /obj/structure/destructible/tribal_torch/lit, /turf/open/indestructible/ground/outside/desert, @@ -50983,6 +51839,14 @@ }, /turf/open/floor/wood/f13, /area/f13/building) +"vBy" = ( +/obj/structure/obstacle/barbedwire/end{ + dir = 8 + }, +/turf/open/indestructible/ground/outside/road{ + icon_state = "verticalleftborderright0" + }, +/area/f13/wasteland) "vCc" = ( /turf/open/indestructible/ground/outside/sidewalk{ icon_state = "horizontaltopbordertop1" @@ -51013,6 +51877,11 @@ /obj/structure/fence/wooden{ dir = 4 }, +/obj/structure/decoration/rag{ + icon_state = "skulls"; + pixel_x = 4; + pixel_y = 2 + }, /turf/closed/wall/f13/wood/house, /area/f13/raiders) "vCK" = ( @@ -51058,7 +51927,7 @@ "vDm" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/floor/wood/f13/carpet, /area/f13/bar) "vDq" = ( @@ -51082,7 +51951,7 @@ }, /area/f13/city) "vDz" = ( -/obj/effect/mine/stun, +/obj/item/mine/stun, /turf/open/floor/plasteel/f13/vault_floor/blue/side{ dir = 4 }, @@ -51153,11 +52022,8 @@ /turf/open/floor/plasteel/f13/vault_floor/neutral/neutralsolid, /area/f13/building) "vEV" = ( -/obj/effect/turf_decal, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, +/obj/structure/chair/wood/worn, +/turf/open/floor/wood/wood_large, /area/f13/ncr) "vFn" = ( /obj/structure/rack, @@ -51250,9 +52116,14 @@ }, /area/f13/legion) "vGG" = ( -/obj/structure/bed/old, -/turf/open/floor/f13/wood{ - icon_state = "housewood2-broken" +/obj/effect/overlay/junk/toilet{ + pixel_y = 12 + }, +/obj/machinery/light/small/broken{ + dir = 4 + }, +/turf/open/floor/f13{ + icon_state = "whitegreenrustychess" }, /area/f13/village) "vGQ" = ( @@ -51274,7 +52145,7 @@ "vHb" = ( /obj/structure/closet/cabinet, /obj/item/clothing/under/f13/brahmin, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/floor/f13/wood, /area/f13/village) "vHe" = ( @@ -51289,7 +52160,11 @@ }, /area/f13/village) "vHu" = ( -/obj/effect/landmark/start/f13/ncrcombatengineer, +/obj/effect/decal/cleanable/ash, +/obj/effect/decal/cleanable/ash{ + pixel_x = -11; + pixel_y = -7 + }, /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/ncr) "vHw" = ( @@ -51394,6 +52269,14 @@ dir = 10 }, /area/f13/village) +"vJi" = ( +/obj/structure/obstacle/barbedwire{ + dir = 4 + }, +/turf/open/indestructible/ground/outside/road{ + icon_state = "verticalleftborderright1" + }, +/area/f13/wasteland) "vJB" = ( /obj/effect/overlay/junk/sink{ dir = 8; @@ -51685,19 +52568,15 @@ }, /area/f13/clinic) "vQl" = ( -/obj/machinery/light{ - dir = 8 +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_x = -6 }, -/obj/structure/closet/locker, -/obj/item/clothing/under/f13/ncr/ncr_dress, -/obj/item/clothing/under/f13/ncr/ncr_dress, -/obj/item/clothing/under/f13/ncr/ncr_dress, -/obj/item/clothing/under/f13/ncr/ncr_dress, -/obj/item/clothing/under/f13/ncr/ncr_dress, -/obj/item/clothing/under/f13/ncr/ncr_dress, -/obj/item/clothing/under/f13/ncr/ncr_dress, -/obj/item/clothing/under/f13/ncr/ncr_dress, -/turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_x = 6; + pixel_y = 10 + }, +/turf/open/floor/wood/wood_large, /area/f13/ncr) "vQu" = ( /obj/structure/closet/fridge, @@ -51726,6 +52605,12 @@ icon_state = "housewood3-broken" }, /area/f13/village) +"vQQ" = ( +/obj/machinery/door/unpowered/secure_NCR, +/turf/open/indestructible/ground/outside/sidewalk{ + icon_state = "horizontaloutermain2" + }, +/area/f13/wasteland) "vQS" = ( /obj/structure/chair/bench, /obj/item/trash/f13/porknbeans, @@ -51748,13 +52633,6 @@ }, /turf/open/indestructible/ground/inside/mountain, /area/f13/legion) -"vRG" = ( -/obj/structure/destructible/tribal_torch/wall/lit{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/f13/wood, -/area/f13/legion) "vRR" = ( /obj/structure/fence/wooden{ dir = 4; @@ -51790,6 +52668,14 @@ /obj/structure/flora/wasteplant/wild_xander, /turf/open/indestructible/ground/outside/desert, /area/f13/wasteland) +"vTa" = ( +/obj/structure/obstacle/barbedwire{ + dir = 4 + }, +/turf/open/indestructible/ground/outside/road{ + icon_state = "verticalinnermain0" + }, +/area/f13/wasteland) "vTj" = ( /obj/structure/car/rubbish2, /obj/effect/decal/cleanable/oil{ @@ -51800,6 +52686,12 @@ }, /turf/open/floor/carpet, /area/f13/building) +"vTr" = ( +/obj/structure/obstacle/barbedwire/end, +/turf/open/indestructible/ground/outside/road{ + icon_state = "verticalrightborderleft0" + }, +/area/f13/wasteland) "vTz" = ( /obj/structure/simple_door/house, /obj/effect/decal/cleanable/dirt{ @@ -52135,6 +53027,10 @@ icon_state = "outerpavement" }, /area/f13/wasteland) +"wcb" = ( +/obj/structure/stairs/west, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "wci" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/glass, @@ -52455,9 +53351,6 @@ /obj/effect/spawner/lootdrop/f13/weapon/melee/tier4, /turf/open/indestructible/ground/inside/mountain, /area/f13/caves) -"wjR" = ( -/turf/closed/wall/r_wall, -/area/f13/ncr) "wjS" = ( /obj/structure/destructible/tribal_torch/lit, /turf/open/indestructible/ground/outside/dirt{ @@ -52581,6 +53474,10 @@ /obj/structure/girder/reinforced, /turf/open/indestructible/ground/inside/mountain, /area/f13/caves) +"wnt" = ( +/obj/structure/destructible/tribal_torch/lit, +/turf/open/indestructible/ground/outside/desert, +/area/f13/caves) "wnA" = ( /obj/structure/barricade/wooden, /turf/open/indestructible/ground/inside/mountain, @@ -52594,7 +53491,7 @@ "wnO" = ( /obj/structure/rack, /obj/effect/turf_decal/stripes/white/box, -/obj/item/ammo_box/magazine/uzim9mm/rockwell/empty, +/obj/item/ammo_box/magazine/uzim9mm/rockwell, /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/ncr) "wnT" = ( @@ -52719,6 +53616,16 @@ /obj/structure/simple_door/house, /turf/open/floor/f13/wood, /area/f13/building) +"wpz" = ( +/obj/machinery/door/unpowered/securedoor{ + desc = "Door with a built-in lock. Can't be padlocked. You can smell the whisky and toughness from even outside the door."; + name = "Ranger's Bathroom"; + req_access_txt = "121" + }, +/turf/open/floor/f13{ + icon_state = "bluedirtychess2" + }, +/area/f13/ncr) "wpL" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/f13/resourcespawner, @@ -52832,6 +53739,14 @@ }, /turf/open/indestructible/ground/outside/dirt, /area/f13/wasteland) +"wsO" = ( +/obj/structure/obstacle/barbedwire{ + dir = 4 + }, +/turf/open/indestructible/ground/outside/sidewalk{ + icon_state = "horizontaloutermain1" + }, +/area/f13/wasteland) "wsR" = ( /obj/structure/filingcabinet/employment, /obj/effect/decal/cleanable/dirt, @@ -52936,6 +53851,20 @@ icon_state = "housewood2" }, /area/f13/village) +"wvz" = ( +/obj/structure/obstacle/barbedwire/end{ + dir = 8 + }, +/turf/open/indestructible/ground/outside/sidewalk{ + icon_state = "horizontalbottomborderbottom0" + }, +/area/f13/wasteland) +"wvS" = ( +/obj/effect/landmark/start/f13/deputy, +/turf/open/floor/plasteel/f13/vault_floor/dark{ + icon_state = "darkrusty" + }, +/area/f13/building) "wvT" = ( /turf/closed/wall/f13/wood/interior, /area/f13/clinic) @@ -52962,9 +53891,9 @@ /area/f13/wasteland) "wwG" = ( /obj/structure/table/wood, -/obj/effect/spawner/lootdrop/f13/weapon/melee/random_high, /obj/effect/decal/cleanable/dirt, /obj/machinery/light, +/obj/effect/spawner/lootdrop/f13/weapon/melee/random_mid, /turf/open/floor/f13/wood, /area/f13/building) "wwM" = ( @@ -53044,7 +53973,7 @@ "wxI" = ( /obj/structure/closet/cabinet, /obj/effect/spawner/lootdrop/f13/weapon/gun/ammo/tier2, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, /turf/open/floor/f13/wood, /area/f13/village) "wxJ" = ( @@ -53126,12 +54055,6 @@ icon_state = "floorrusty" }, /area/f13/building) -"wzh" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/f13/wood{ - icon_state = "housewood2" - }, -/area/f13/village) "wzp" = ( /obj/structure/chair/wood{ dir = 8 @@ -53197,21 +54120,12 @@ }, /area/f13/building) "wAX" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/indestructible/ground/outside/sidewalk{ - icon_state = "horizontaloutermain1" - }, -/area/f13/wasteland) +/obj/structure/closet/crate/bin/trashbin, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "wBb" = ( -/obj/effect/decal/cleanable/dirt{ - color = "000000" - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, +/obj/item/kirbyplants/random, +/turf/open/floor/wood/wood_large, /area/f13/ncr) "wBc" = ( /obj/structure/closet/crate/bin, @@ -53241,6 +54155,10 @@ /obj/item/shovel/spade, /obj/item/storage/bag/plants, /obj/effect/decal/cleanable/dirt, +/obj/item/storage/bag/plants, +/obj/item/shovel/spade, +/obj/item/cultivator, +/obj/item/reagent_containers/glass/bucket/wood, /turf/open/floor/f13/wood, /area/f13/wasteland) "wBL" = ( @@ -53643,6 +54561,12 @@ icon_state = "housewood2" }, /area/f13/village) +"wLB" = ( +/obj/structure/obstacle/barbedwire, +/turf/open/indestructible/ground/outside/sidewalk{ + icon_state = "horizontalbottomborderbottom0" + }, +/area/f13/wasteland) "wLC" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/overlay/junk/sink{ @@ -53795,6 +54719,12 @@ icon_state = "bluerustychess2" }, /area/f13/village) +"wOt" = ( +/obj/structure/obstacle/barbedwire, +/turf/open/indestructible/ground/outside/road{ + icon_state = "verticalrightborderleft0" + }, +/area/f13/wasteland) "wOv" = ( /turf/closed/wall/f13/store, /area/f13/brotherhood/surface) @@ -54103,6 +55033,13 @@ icon_state = "whitegreenrustychess" }, /area/f13/village) +"wTB" = ( +/obj/structure/table, +/obj/structure/barricade/bars, +/turf/open/indestructible/ground/outside/sidewalk{ + icon_state = "verticalrightborderright0" + }, +/area/f13/wasteland) "wTH" = ( /turf/open/indestructible/ground/outside/road{ dir = 4; @@ -54125,11 +55062,6 @@ }, /turf/closed/mineral/random/low_chance, /area/f13/caves) -"wTX" = ( -/obj/structure/dresser, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/f13/wood, -/area/f13/legion) "wUc" = ( /obj/machinery/light/small{ dir = 4 @@ -54167,7 +55099,7 @@ /obj/structure/simple_door/metal/barred, /obj/machinery/door/poddoor/shutters/preopen{ id = "NCRmory"; - name = "NCR armory shutters" + name = "NCR Armory Shutters" }, /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/ncr) @@ -54205,15 +55137,6 @@ /obj/effect/spawner/lootdrop/f13/armor/random, /turf/open/floor/f13/wood, /area/f13/village) -"wVT" = ( -/obj/structure/chair/wood, -/obj/effect/decal/cleanable/dirt{ - color = "000000" - }, -/turf/open/floor/f13{ - icon_state = "darkdirtysolid" - }, -/area/f13/ncr) "wWb" = ( /mob/living/simple_animal/hostile/wolf, /turf/open/indestructible/ground/outside/road{ @@ -54514,12 +55437,6 @@ icon_state = "horizontaltopbordertop0" }, /area/f13/tunnel) -"xbQ" = ( -/mob/living/simple_animal/hostile/ghoul, -/turf/open/indestructible/ground/outside/sidewalk{ - icon_state = "verticalleftborderleft0" - }, -/area/f13/wasteland) "xbR" = ( /obj/structure/tires/five, /turf/open/indestructible/ground/outside/sidewalk{ @@ -54572,6 +55489,16 @@ /obj/structure/destructible/tribal_torch/wall/lit{ dir = 4 }, +/obj/item/reagent_containers/food/drinks/bottle/kahlua, +/obj/item/reagent_containers/food/drinks/bottle/fernet, +/obj/item/reagent_containers/food/drinks/bottle/champagne, +/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka, +/obj/item/reagent_containers/food/drinks/bottle/whiskey, +/obj/item/reagent_containers/food/drinks/bottle/vodka, +/obj/item/reagent_containers/food/drinks/bottle/trappist, +/obj/item/reagent_containers/food/drinks/bottle/sake, +/obj/item/reagent_containers/food/drinks/bottle/rotgut, +/obj/item/reagent_containers/food/drinks/bottle/blazaam/empty, /turf/open/indestructible/ground/outside/dirt, /area/f13/raiders) "xcX" = ( @@ -54797,6 +55724,11 @@ icon_state = "horizontalinnermain2" }, /area/f13/wasteland) +"xgA" = ( +/obj/structure/table/wood, +/obj/item/megaphone, +/turf/open/floor/wood/wood_large, +/area/f13/ncr) "xgB" = ( /obj/structure/chair{ dir = 4 @@ -54872,7 +55804,11 @@ }, /area/f13/wasteland) "xie" = ( -/obj/structure/fireplace, +/obj/structure/junk/small/tv{ + desc = "A wall mounted television, sadly it's broken."; + name = "Wall Mounted Television"; + pixel_y = 30 + }, /turf/open/floor/f13/wood{ icon_state = "housewood2" }, @@ -55049,9 +55985,6 @@ "xmS" = ( /obj/structure/table/wood, /obj/item/paper_bin, -/obj/machinery/light{ - dir = 1 - }, /obj/item/megaphone, /turf/open/floor/carpet, /area/f13/ncr) @@ -55315,13 +56248,21 @@ /turf/open/indestructible/ground/inside/mountain, /area/f13/caves) "xrD" = ( -/obj/structure/chair/middle{ +/obj/structure/chair/sofa{ dir = 1 }, /turf/open/floor/f13/wood{ icon_state = "housewood2" }, /area/f13/village) +"xrJ" = ( +/obj/structure/table, +/obj/structure/barricade/sandbags, +/turf/open/indestructible/ground/outside/sidewalk{ + dir = 4; + icon_state = "outerpavement" + }, +/area/f13/wasteland) "xrO" = ( /obj/structure/closet/cabinet, /obj/effect/spawner/lootdrop/f13/armor/costumes, @@ -55686,6 +56627,10 @@ /obj/item/stack/f13Cash/random/low, /turf/open/floor/f13/wood, /area/f13/building) +"xDa" = ( +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow, +/turf/open/indestructible/ground/inside/mountain, +/area/f13/caves) "xDb" = ( /obj/effect/decal/remains/human, /obj/item/clothing/head/f13/police/trooper{ @@ -55786,7 +56731,7 @@ /turf/open/floor/plasteel/f13/vault_floor/white/whitesolid, /area/f13/building) "xFL" = ( -/obj/machinery/deepfryer, +/obj/structure/junk/micro, /turf/open/floor/f13{ icon_state = "whitegreenrustychess" }, @@ -56079,10 +57024,10 @@ }, /area/f13/wasteland) "xKC" = ( -/obj/machinery/door/airlock/wood/glass, /obj/effect/decal/cleanable/dirt{ color = "000000" }, +/obj/machinery/door/airlock/wood/glass, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust{ name = "metal plating" }, @@ -56100,9 +57045,6 @@ color = "000000" }, /obj/structure/bed/old, -/obj/machinery/light{ - dir = 4 - }, /obj/effect/landmark/start/f13/ncrrearechelon, /turf/open/floor/wood/f13/oak, /area/f13/ncr) @@ -56120,7 +57062,7 @@ dir = 4; light_color = "red" }, -/obj/structure/bed/mattress, +/obj/structure/junk/small/bed, /turf/open/floor/f13/wood{ icon_state = "housewood2" }, @@ -56346,14 +57288,8 @@ /turf/open/floor/f13/wood, /area/f13/building) "xQz" = ( -/obj/structure/table/reinforced, -/obj/structure/barricade/bars{ - max_integrity = 800; - name = "strong metal bars"; - obj_integrity = 800 - }, -/obj/item/paper_bin, -/turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, +/obj/machinery/light, +/turf/open/floor/wood/wood_large, /area/f13/ncr) "xRg" = ( /obj/effect/decal/remains/human, @@ -56460,9 +57396,6 @@ "xUp" = ( /obj/structure/table/booth, /obj/item/toy/cards/deck, -/obj/machinery/light{ - dir = 1 - }, /turf/open/floor/f13{ icon_state = "whitegreenrustychess" }, @@ -56580,6 +57513,12 @@ /obj/structure/chair/stool/bar, /turf/open/floor/f13/wood, /area/f13/building) +"xXB" = ( +/obj/structure/obstacle/barbedwire/end{ + dir = 8 + }, +/turf/open/indestructible/ground/outside/sidewalk, +/area/f13/wasteland) "xXM" = ( /obj/item/ammo_casing/c9mm, /turf/open/indestructible/ground/outside/dirt, @@ -56630,12 +57569,9 @@ /area/f13/wasteland) "xZh" = ( /obj/structure/table/reinforced, -/obj/structure/barricade/bars{ - max_integrity = 800; - name = "strong metal bars"; - obj_integrity = 800 +/obj/machinery/computer/terminal{ + termtag = "Camp Miller Armory" }, -/obj/machinery/computer/terminal, /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/ncr) "xZo" = ( @@ -56719,11 +57655,10 @@ }, /area/f13/wasteland) "ybp" = ( -/obj/structure/table, -/obj/machinery/chem_heater{ - pixel_y = 5 - }, /obj/effect/decal/cleanable/dirt, +/obj/item/storage/backpack/duffelbag/med/surgery, +/obj/structure/table, +/obj/item/reagent_containers/medspray/sterilizine, /turf/open/floor/f13/wood, /area/f13/raiders) "ybq" = ( @@ -56778,7 +57713,7 @@ /obj/structure/bed/mattress{ icon_state = "mattress3" }, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/lowmid, /turf/open/indestructible/ground/outside/dirt, /area/f13/building) "yce" = ( @@ -56961,7 +57896,7 @@ /obj/machinery/door/poddoor/shutters/preopen, /obj/machinery/door/poddoor/shutters/preopen{ id = "NCRmory"; - name = "NCR armory shutters" + name = "NCR Armory Shutters" }, /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/ncr) @@ -57761,8 +58696,8 @@ wvV ace xGv dKA -nVM -fhG +jQd +jQd dKA xGv chO @@ -57777,14 +58712,14 @@ ajD mQj oyb gmX -snN +koD wvV uIx xmL jWH +lNA aJj -aJj -vQl +kKt kKt wvV aMc @@ -58634,7 +59569,7 @@ fyf fyf gcK gcK -gcK +ktB gbL gbL gbL @@ -58891,7 +59826,7 @@ fyf sND gcK gcK -gcK +ktB gbL gbL gbL @@ -59148,7 +60083,7 @@ fyf fyf gcK gcK -gcK +ktB gbL gbL gcK @@ -59330,7 +60265,7 @@ gpp jaj wvV kOW -pem +mRU pem pem cze @@ -59405,7 +60340,7 @@ fyf gcK gcK gcK -gcK +ktB gbL gbL gcK @@ -59606,7 +60541,7 @@ gjP fOs pJd vQE -gjs +pvD pJd gjP fyf @@ -59833,19 +60768,19 @@ unI qvQ dRA gmX -snN +koD wvV sWz xGv uSm xGv xGv -uSm +xGv wKU wvV wwm -ilv -jwV +pem +pem pem lFL wvV @@ -59918,7 +60853,7 @@ doX wDc gcK gcK -gcK +ktB gcK gbL gbL @@ -60090,7 +61025,7 @@ ajD qvQ dRA hgQ -mRU +koD wvV wvV wvV @@ -60120,7 +61055,7 @@ gjP nzN pJd tsO -gjs +pvD pJd gjP fyf @@ -60175,7 +61110,7 @@ mvv bpD fyf gcK -gcK +ktB gcK gbL gbL @@ -60347,11 +61282,11 @@ eaZ qvQ dRA gmX -mRU -mZW -rUp +koD +wvV +fhG tDQ -vcg +rUp wvV xGv sWz @@ -60604,8 +61539,8 @@ eaZ qvQ dRA gmX -mRU -nDy +koD +wvV sZT tEr vcm @@ -60843,7 +61778,7 @@ ktB ktB wvV apw -bRz +cgN dYY eHk fxz @@ -60853,7 +61788,7 @@ jKe sVF hJI cpK -lNA +cpK cpK cpK cpK @@ -60861,11 +61796,11 @@ unI qvQ dRA rAA -mRU -nPy -rUp +koD +wvV tLA tLA +ilv wvV hfz wDX @@ -60947,7 +61882,7 @@ gjP gjP gcK gcK -gcK +ktB gbL gbL gcK @@ -61114,14 +62049,14 @@ wyi wyi wyi wyi -poS +unI qvQ vfc gmX -mUk -rUp +koD +dku tdn -tNa +rUp rUp sBf xGv @@ -61148,7 +62083,7 @@ gjP pJd pqw erB -gjs +sNC pJd gjP igz @@ -61204,7 +62139,7 @@ bol tRY gcK gcK -gcK +ktB gcK gbL gcK @@ -61375,7 +62310,7 @@ unI qvQ oyx gmX -mRU +koD wvV wvV wvV @@ -61461,7 +62396,7 @@ uRJ gjP gcK gcK -gcK +ktB gcK gbL gcK @@ -61718,7 +62653,7 @@ nVo gjP gcK gcK -gcK +ktB gcK gbL gcK @@ -61891,10 +62826,10 @@ pqO gmX koD xdt -tkO xGv xGv -uSm +xGv +xGv xGv xGv jkr @@ -61975,8 +62910,8 @@ peu ram gcK gcK -gcK -gcK +ktB +ktB gbL gcK gcK @@ -62146,12 +63081,12 @@ unI qvQ mHW gmX -snN -wvV -wvV -wvV -aBT -wvV +koD +xdt +xGv +xGv +xGv +xGv xGv xGv wvV @@ -62233,7 +63168,7 @@ gjP gcK gcK gcK -gcK +ktB gbL gbL gcK @@ -62404,11 +63339,11 @@ qvQ psK gmX koD -wvV +xdt toH -eJV -toL -wvV +xGv +xGv +uSm iul xGv wvV @@ -62490,7 +63425,7 @@ hwC gcK gcK gcK -gcK +ktB gcK gbL gcK @@ -62645,7 +63580,7 @@ afr cnt ebv wvV -fIF +fLc ybI ybI nkp @@ -62662,9 +63597,9 @@ pqO gmX koD wvV -btj -mIv -btj +wvV +wvV +jpA wvV iul iul @@ -62747,9 +63682,9 @@ gcK gcK gcK gcK +ktB gcK -gcK -gbL +ktB gcK gAs lwj @@ -62920,7 +63855,7 @@ gmX koD sCz tte -toL +rUp vim wvV arU @@ -63007,7 +63942,7 @@ gcK gcK gcK gcK -gcK +ktB gcK hhG gcK @@ -63170,15 +64105,15 @@ lUt lUt wyi wyi -poS +unI qvQ dRA gmX -snN +koD wvV -toL -toL -eJV +rUp +rUp +tLA wvV xGv xGv @@ -63422,10 +64357,10 @@ qwe koD cpK cpK -lgA +nPg +ybI ybI ybI -otJ ybI onk qvQ @@ -63522,7 +64457,7 @@ gcK gcK gcK gcK -gcK +ktB gcK ggK dcY @@ -63692,7 +64627,7 @@ koD wvV tvE unF -viD +tLA wvV xGv xGv @@ -63777,9 +64712,9 @@ gcK gcK gcK gcK +ktB gcK -gcK -gcK +ktB gcK hJB ggK @@ -63926,7 +64861,7 @@ ktB (27,1,1) = {" ktB wvV -aDX +kBw qwe elF eNU @@ -64034,7 +64969,7 @@ gcK gcK gcK gcK -gcK +ktB gcK gcK gcK @@ -64184,14 +65119,14 @@ ktB ktB wvV qwe -ctJ +aBT eoA ctJ eoA -qwe +dbW sBf lMl -jpA +ioP nkp unI mzY @@ -64203,7 +65138,7 @@ pqO pqO gmX koD -sHu +cpK cpK cpK eJb @@ -64291,11 +65226,11 @@ gcK gcK gcK gcK +ktB gcK gcK gcK -gcK -gcK +ktB gcK gcK gcK @@ -64549,11 +65484,11 @@ gcK gcK gcK gcK +ktB +ktB gcK gcK -gcK -gcK -gcK +ktB gcK gcK gcK @@ -64807,12 +65742,12 @@ gcK gcK gcK gcK +ktB gcK -gcK -gcK -gcK -gcK -gcK +ktB +ktB +ktB +ktB fyf fyf fyf @@ -64983,7 +65918,7 @@ gmX koD wMm pbM -pvD +pbM qzr pfb gie @@ -65066,10 +66001,10 @@ gcK gcK gcK gcK -gcK -gcK -gcK -gcK +ktB +oYb +oYb +ktB oWC wOK wOK @@ -65324,8 +66259,8 @@ gcK ktB ktB gcK -ktB -ktB +ggK +ggK gcK gcK ktB @@ -65581,8 +66516,8 @@ gcK gcK ktB gcK -gcK -fyf +ggK +ggK ktB gcK eKM @@ -65837,10 +66772,10 @@ ktB gcK gcK gcK -gcK -occ -vAe +wnt fyf +fyf +vAe ktB ktB fyf @@ -66003,7 +66938,7 @@ pqO gmX geM ees -twO +ees ees vxv twO @@ -66027,13 +66962,13 @@ gcK gcK gcK gcK -qFk -xbV -qFk -qFk -qFk -qFk -qFk +gjP +nPy +gjP +gjP +gjP +gjP +gjP fyf kGc unI @@ -66086,9 +67021,9 @@ gcK gcK gcK gcK -gcK -gcK -gcK +ktB +ktB +ktB gcK ktB gcK @@ -66284,13 +67219,13 @@ gcK gcK gcK gcK -qFk +gjP qMi rGM -qFk -pDR -oEh -qFk +gjP +cCf +rNv +gjP fyf kGc unI @@ -66349,8 +67284,8 @@ gcK gcK bKy fFu -fyf -fyf +vtg +vtg lmk fyf uey @@ -66374,9 +67309,9 @@ gcK gcK gcK gcK -gcK -gcK -gcK +ktB +ktB +ktB gcK gcK gcK @@ -66521,7 +67456,7 @@ wvV urK vzk wvV -wBb +iul iul wvV xXo @@ -66541,13 +67476,13 @@ ktB gcK gcK gcK -qFk +gjP pJd pDR -qFk +gjP vGG -aAU -qFk +cCf +gjP fyf kGc unI @@ -66598,12 +67533,12 @@ gcK gbL gbL gbL +ktB gbL gbL gbL gbL gbL -ktB kZp jnN lHU @@ -66633,7 +67568,7 @@ gcK gcK gcK gcK -gcK +ktB gcK gcK gcK @@ -66775,7 +67710,7 @@ gmX koD dkg wvV -xGv +bOq xGv wjB xGv @@ -66798,13 +67733,13 @@ gcK gcK gcK gcK -qFk +gjP lnw -qFk -qFk -qFk +gjP +gjP +gjP lnw -qFk +gjP fyf kGc pBv @@ -66854,20 +67789,20 @@ gcK gcK gbL gbL +ktB gbL gbL gbL gbL gbL gbL -ktB lmk jnE hTs lqV hTs oOh -cWG +wsw wDc fyf dys @@ -66890,7 +67825,7 @@ gcK gcK gcK gcK -gcK +ktB gcK gcK gcK @@ -67030,14 +67965,14 @@ psK mHW gmX koD -sNC +dkg wvV -uyB -uoC +xGv +xGv wvV xGv xGv -xQz +yfo xGv mco tdX @@ -67055,7 +67990,7 @@ gcK gcK gcK gcK -qFk +gjP ecf jxq cOC @@ -67109,15 +68044,15 @@ gcK gcK gcK gcK -gcK +gbL +gbL +ktB gbL gbL gbL gbL gbL gbL -ktB -ktB fyf jnE rss @@ -67147,7 +68082,7 @@ tvA gcK gcK gcK -gcK +ktB gcK gcK gcK @@ -67289,10 +68224,10 @@ gmX sya hJI wvV +fIF +jwV wvV -wvV -wvV -xGv +arU xGv xZh gmP @@ -67312,7 +68247,7 @@ gcK gcK gcK gcK -qFk +gjP gwJ pJd pJd @@ -67366,14 +68301,14 @@ gcK gcK gcK gcK -gcK gbL gbL gbL gbL gbL -ktB -ktB +gbL +gbL +gbL gbL fyf jnE @@ -67381,7 +68316,7 @@ hTs unW hTs qSs -mfD +rRn hCg qOV ntv @@ -67404,7 +68339,7 @@ fyf gcK gcK gcK -gcK +ktB gcK gcK gcK @@ -67546,9 +68481,9 @@ gmX koD uaf wvV -sYF -uug -wqO +wvV +wvV +wvV iul xGv yfo @@ -67569,13 +68504,13 @@ gcK gcK gcK gcK -qFk -pJd +gjP +otJ aAU pdm pJd pJd -qFk +gjP dkP ybI onk @@ -67623,11 +68558,11 @@ gcK gcK gcK gcK -gcK gbL ktB gbL -ktB +gbL +gbL gbL gbL gbL @@ -67813,7 +68748,7 @@ xGv xGv wnO xpG -apw +mUk iul dMR wvV @@ -67826,13 +68761,13 @@ gcK gcK gcK gcK -qFk +gjP vzw pJd pJd xrV uRJ -qFk +gjP xbX qIv xbX @@ -67880,21 +68815,21 @@ gcK gcK gcK gcK -gcK +ktB gbL gbL gbL gbL gbL -ktB gbL gbL -uey -fyf +gbL +loO fyf fyf fyf qTG +occ vAe fyf fyf @@ -67919,7 +68854,7 @@ gcK gcK gcK gcK -gcK +ktB gcK gcK gcK @@ -68039,7 +68974,7 @@ ktB ktB wvV bsV -dku +bsV bsV qQQ guA @@ -68058,11 +68993,11 @@ bLY pqO gmX koD -sNC +dkg wvV -uHB -xGv -vEV +gyh +lgA +wqO xGv iul ygv @@ -68083,13 +69018,13 @@ gcK gcK gcK gcK -qFk +gjP pJd pia qJW cbI ugv -qFk +gjP kaM kaM kaM @@ -68137,25 +69072,25 @@ gcK gcK gcK gcK -gcK -ktB -gbL -ktB -gbL -gbL ktB -gbL -gbL -bKy -fyf -fyf +gcK +uKu +uKu +uKu +uKu +uKu +uKu +uKu +qHX +pYj +vuU nxY jnN lHU lHU lHU mVv -uey +vjO qOV cWG ghU @@ -68176,7 +69111,7 @@ gcK gcK gcK gcK -gcK +ktB gcK gcK gcK @@ -68317,9 +69252,9 @@ fCg koD cpK wvV -wvV -wvV -wvV +uHB +xGv +mIv xGv xGv wvV @@ -68327,7 +69262,7 @@ gnj xXo vOJ pIy -apw +mUk xGv hZN wvV @@ -68340,13 +69275,13 @@ gcK gcK gcK gcK -qFk +gjP xie xrD aAU cqX fRN -qFk +gjP ees ees muk @@ -68397,15 +69332,15 @@ gcK gcK gcK rqc -gbL -gbL -gbL -gbL -gbL -gbL -fFu -uey -fyf +fpv +fPU +gin +gzq +gSx +ijK +djh +udx +cYz fyf jnE hTs @@ -68415,9 +69350,9 @@ nVu nDJ daU wUL -gwi mvv -vjO +mvv +doX xkI wDc xlE @@ -68433,7 +69368,7 @@ gcK gcK gcK gcK -gcK +ktB gcK gcK gcK @@ -68556,11 +69491,11 @@ cCh ees ees ees -gyh ees -gyh ees -gyh +ees +ees +ees sVF unI qvQ @@ -68573,9 +69508,9 @@ pqO gmX koD cpK -oKE -oKE -uOg +wvV +wvV +wvV wvV xdt wjB @@ -68597,13 +69532,13 @@ gcK gcK gcK gcK -qFk +gjP jxq lBF wjl kZc fRN -qFk +gjP ptf gNA unI @@ -68650,20 +69585,20 @@ gcK gcK gcK gcK -gcK +ktB ktB gcK uKu -uKu -uKu -uKu -uKu -uKu -uKu -qHX -fQu -gke -iVQ +fCM +buD +buD +buD +buD +iJV +pgL +uVT +cYz +fyf jnE rss jkk @@ -68690,7 +69625,7 @@ jZo gcK gcK gcK -gcK +ktB gcK gcK gcK @@ -68833,7 +69768,7 @@ hJI cpK uaf dkg -wAX +dkg dkg cpK cpK @@ -68854,13 +69789,13 @@ gcK gcK gcK fyf -qFk -kHn -qFk -qFk -qFk -qFk -qFk +gjP +aYK +gjP +gjP +gjP +gjP +gjP fyf kGc unI @@ -68906,21 +69841,21 @@ fyf gcK gcK gcK -gcK -gcK +ktB ktB gcK +gcK cYz uFJ -uVT -crg +buD +buD qfi cWy -djh -dIj -fph +iyP +buD +gVg grc -fyf +iVQ jnE hTs unW @@ -68947,7 +69882,7 @@ hCg gcK gcK gcK -gcK +ktB gcK gcK gcK @@ -69163,32 +70098,32 @@ jJb gcK gcK gcK -gcK -ktB ktB gcK +gcK +gcK uKu dxJ cOU buD hMz -gin +buD dkW lsF -gSx -gVg -bKy +gAM +cYz +fyf hqL iaB iaB iaB lHr -tBN -mvv -mvv +gwi mvv mvv +azm mvv +azm mvv doX cWG @@ -69205,7 +70140,7 @@ gcK gcK gcK gcK -gcK +ktB gcK gcK gcK @@ -69420,26 +70355,26 @@ fyf gcK gcK gcK -gcK ktB -gcK -gcK -cYz +uKu +uKu +uKu +fph qiN buD lsF cbM -hna -ybp -lsF -fpv +buD +buD +gke gND +wpR fyf fyf fyf -fyf -fyf -fyf +oag +oag +oag tBN mvv mvv @@ -69462,7 +70397,7 @@ gcK gcK gcK gcK -gcK +ktB gcK gcK gcK @@ -69635,7 +70570,7 @@ fyf fyf kGc unI -qvQ +swf bLY pqO koD @@ -69678,22 +70613,22 @@ gcK gcK gcK gcK -gcK -gcK -gcK -pgL -aSW +uKu +akA +dIj +buD +urJ lsF buD eoI buD lsF buD -fCM +ybp vCF fyf +eCd fyf -qTY fyf qOV cWG @@ -69702,10 +70637,10 @@ mvv pGq tsv mvv +mvv tpD vsm aBH -mfD xGH mvv mvv @@ -69719,7 +70654,7 @@ bKy gcK gcK gcK -gcK +ktB gcK gcK gcK @@ -69734,7 +70669,7 @@ kBU wXT wXT qFM -gDe +oKZ kBU gcK gcK @@ -69936,20 +70871,20 @@ gcK gcK ktB uKu -uKu -uKu -uKu -akA +aSW +egW +buD +buD buD lsF cOU urJ lsF egU -fPU +buD gTD iGM -ijK +qTY iRT fyf tBN @@ -69959,10 +70894,10 @@ goK rlm ttU unW +unW vwt xzn xqy -fyf nlO mfD mfD @@ -69976,7 +70911,7 @@ kHB gcK gcK gcK -gcK +ktB gcK gcK gcK @@ -70195,8 +71130,8 @@ ktB cYz cos dEc -gVt -bgd +lsF +cOU urJ cOU gun @@ -70216,13 +71151,13 @@ vVU jnE tBm unW +unW vBr xKi vAe fyf fyf fyf -fyf tBN mvv mvv @@ -70233,7 +71168,7 @@ dDC gcK gcK gcK -gcK +ktB gcK gcK gcK @@ -70450,7 +71385,7 @@ gcK gcK ktB cYz -lsF +bgd dLB lsF buD @@ -70473,13 +71408,13 @@ fyf ryH unW uBU +unW vDe xKi bKy -fyf +hAC fmR fyf -fyf nlO mfD xGH @@ -70488,11 +71423,11 @@ vly wDc fyf mmw +ktB +ktB gcK gcK -gcK -gcK -gcK +ktB gcK gcK gcK @@ -70612,15 +71547,15 @@ ayH ayH ayH ayH +vMu +fZb +qfq eEV -eEV -eEV -eEV -eEV -eEV -eEV -eEV -eEV +vMu +vMu +vMu +fZb +qfq ayH ayH ppv @@ -70628,11 +71563,11 @@ qCn rAe rXb ayH -aVY +ayH bal ayH -uXZ -vMu +ayH +ayH vMu vMu fZb @@ -70707,7 +71642,7 @@ gcK gcK ktB cYz -buD +crg jQz cOU fFS @@ -70723,20 +71658,20 @@ cWG daU mvv mvv -iJV -gzq -pYj -pYj -vuU +mvv +bpD +uey +fyf +jnE tZT +unW nJr vJP xKi fyf fyf iVQ -fyf -fyf +keK vAe jxH mvB @@ -70749,7 +71684,7 @@ qSe gcK gcK gcK -gcK +ktB gcK gcK gcK @@ -70868,28 +71803,28 @@ hwC hwC fyf fyf -fyf -fyf -iav -iav -fyf -fyf -fyf -fyf -fyf -fyf -fyf +nJW +aDX +aDX +aDX +ptf +ptf +ptf +ptf +ptf +ptf +gNA unI qvQ oyb vfc eUk +fRy +tgY +lBd aQT -fFC -wVT -eUk -koD -cpK +fRy +drP dkg cpK uaf @@ -70899,9 +71834,9 @@ cpK cpK cpK cpK -cpK -dkg -dkg +rVT +qrd +ujB dkg dkg dkg @@ -70980,19 +71915,19 @@ mvv mvv mvv mvv -mvv +nHQ mWy -clL +qwW qwW smq bEP +unW xcV mRH xKi qTY fyf fyf -keK pEv cqG kKk @@ -71006,7 +71941,7 @@ hLi gcK gcK gcK -gcK +ktB gcK gcK gcK @@ -71135,30 +72070,30 @@ fyf fyf mZX fyf -fyf +kGc unI qvQ oyx snB eUk -szO -sUP -tBP -eUk -koD -cpK +gks +hHS +fFC +ert +gks +drP cpK dkg dkg dkg cpK -gQZ -cpK -cpK cpK cpK +gQZ cpK -tFq +rVT +inV +wsO dkg dkg dkg @@ -71234,21 +72169,21 @@ tBN mvv mvv mvv -mvv rjH rjH rjH -srL -cdL +rjH +sgg +clL oMn qoL iaB iaB iaB +iaB lHr gcK gcK -gcK pEv ptP ptP @@ -71260,10 +72195,10 @@ mvv bpD eBu miV +ktB gcK gcK -gcK -gcK +ktB gcK gcK gcK @@ -71392,18 +72327,18 @@ fyf fyf fyf iav -fyf +kGc unI pqa oCY uVo -ayH -ayH -eUk -eUk -wjR -eXE -dkP +drP +gks +fFC +sUP +lBd +gks +drP sTa sTa sJw @@ -71413,9 +72348,9 @@ ybI jps jps ybI -ybI -ybI -sJw +bSN +aET +bEy ybI jps ybI @@ -71424,7 +72359,7 @@ ybI ybI ybI ybI -xbQ +ybI ybI sJw ybI @@ -71482,8 +72417,8 @@ ktB gcK gcK gcK -udx -udx +ukD +fyf fyf uey fyf @@ -71491,7 +72426,7 @@ tBN mvv mvv mvv -mvv +rjH rjH rjH rjH @@ -71519,8 +72454,8 @@ oWC xno gcK gcK -gcK -gcK +ktB +ktB gcK gcK gcK @@ -71649,18 +72584,18 @@ fyf fyf fyf iav -fyf +kGc eaZ qvQ oyx mHW -ehN -nKz -ehN -ehN -ehN -ehN -xbX +drP +gks +gks +gks +gks +qJq +drP xbX rnx xbX @@ -71670,9 +72605,9 @@ xbX xQh xbX xQh -xQh -xbX -xQh +rgB +cxi +vJi xbX hBN tUb @@ -71736,9 +72671,9 @@ gcK gcK gcK gcK +gcK ktB -ktB -ktB +gcK bcK bcK cqr @@ -71748,13 +72683,13 @@ daU mvv mvv mvv -mvv +rjH rjH rjH lYH srL -egW -ebx +cdL +tSB gcK ktB ktB @@ -71906,18 +72841,18 @@ fyf fyf fyf sqA -fyf +kGc unI mKp rbe vfc -ehN -ehN -ehN -ehN -ehN -ehN -ehN +ayH +drP +kJp +drP +drP +drP +ayH ehN ehN ehN @@ -71927,9 +72862,9 @@ hOl ehN ehN ehN -ehN -ehN -ehN +ehj +osq +vTa ehN ehN ehN @@ -72009,9 +72944,9 @@ ims jfD jwl ueT -pon -gcK -gcK +jml +fQa +ebx gcK ktB gcK @@ -72034,7 +72969,7 @@ uey upX gcK gcK -gcK +ktB gcK gcK gcK @@ -72163,7 +73098,7 @@ fyf fyf fyf fyf -fyf +kGc unI qvQ kaM @@ -72186,7 +73121,7 @@ hbR gRM ezb uqj -qvY +uJT qvY qvY qOX @@ -72266,7 +73201,7 @@ iqZ jha jGe lZX -lPT +pon gcK ktB ktB @@ -72291,7 +73226,7 @@ fyf fyf gcK gcK -gcK +ktB gcK gcK gcK @@ -72420,7 +73355,7 @@ fyf fyf fyf bKy -fyf +kGc sIf dNT gQv @@ -72441,13 +73376,13 @@ ehN kaM btW btW -btW -btW +fuX +eVb +upi kaM kaM kaM -kaM -qVh +qoS kaM kaM kaM @@ -72548,7 +73483,7 @@ fyf fyf gcK gcK -gcK +ktB gcK gcK gcK @@ -72677,9 +73612,9 @@ fyf fyf fyf fyf -fyf -fyf -kGc +nJW +ptf +gNA hJI cpK unI @@ -72698,6 +73633,9 @@ pqO geM ees ees +upC +wTB +ePl ees ees ees @@ -72721,10 +73659,7 @@ ees ees ees ees -ees -ees -ees -ees +atQ ees ees ees @@ -72773,8 +73708,8 @@ cPZ mvv bpD lpL -vtg -vtg +fyf +fyf gcK gcK gcK @@ -72805,7 +73740,7 @@ fyf trW gcK gcK -gcK +ktB gcK gcK gcK @@ -72955,9 +73890,9 @@ pqO koD xku cpK -cpK -cpK -xku +rVT +inV +xXB dkg cpK cpK @@ -73062,7 +73997,7 @@ fyf uzJ gcK gcK -gcK +ktB gcK gcK gcK @@ -73213,7 +74148,7 @@ sBk cpK cpK uaf -uaf +vQQ dkg dkg gcK @@ -73479,8 +74414,7 @@ gcK gcK gcK gcK -gcK -gcK +ggK ptf gcK gcK @@ -73495,7 +74429,8 @@ gcK gcK gcK gcK -ptf +gcK +gcK gcK gcK gcK @@ -73724,7 +74659,7 @@ qvQ pqO pqO koD -cQA +uaf uaf gcK gcK @@ -73736,6 +74671,8 @@ gcK gcK gcK gcK +ggK +ggK gcK gcK gcK @@ -73744,18 +74681,16 @@ gcK gcK gcK gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK +bAo +rJY +bAo +bAo +bAo +bAo +bAo +bAo +bAo +bAo gcK gcK lKG @@ -73993,26 +74928,26 @@ gcK gcK gcK gcK +ggK +nDy +mZW gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK +bAo +bAo +bAo +bAo +bAo +bAo +bAo +buX +qQQ +lmc +lOj +gvP +bAo +dhx +bxK +bAo gcK gcK cpK @@ -74250,26 +75185,26 @@ gcK gcK gcK gcK +ggK +ggK +ggK gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK +oKE +sYF +uOg +viD +uoC +wAX +bAo +tAk +lmc +uVm +bAo +bAo +bAo +hik +xgA +bAo gcK gcK cpK @@ -74507,26 +75442,26 @@ gcK gcK gcK gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK +mZW +ggK +ggK +ggK +bAo +tkO +uoC +uoC +vcg +wBb +bAo +lcR +qQQ +qQQ +lOj +kJM +bAo +vcg +kQV +bAo gcK gcK cpK @@ -74766,24 +75701,24 @@ gcK gcK gcK gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK +oEh +ggK +bAo +tNa +uoC +vcg +uoC +xQz +bAo +bAo +wpz +bAo +bAo +bAo +kIX +rfu +bAo +bAo gcK gcK cpK @@ -75023,24 +75958,24 @@ gcK gcK gcK gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK +mZW +ggK +poS +uoC +vcg +uoC +uoC +uoC +gfP +vcg +uoC +wBb +obt +wBb +vcg +uoC +uTU +bAo gcK gcK cpK @@ -75282,22 +76217,22 @@ gcK gcK gcK gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK +bAo +uug +uoC +uoC +uoC +vcg +bAo +uug +vcg +uoC +vcg +uoC +uoC +aoG +aoG +bAo gcK gcK cpK @@ -75539,22 +76474,22 @@ gcK gcK gcK gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK +bAo +uyB +uoC +vEV +vQl +iJI +bAo +uGL +uoC +uoC +qdd +uoC +uoC +wcb +wcb +bAo gcK cpK cpK @@ -75796,22 +76731,22 @@ gcK gcK gcK gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK +bAo +bAo +bAo +bAo +bAo +bAo +bAo +peN +vAb +ucr +ely +eTU +uoC +vcg +uoC +bAo gcK cpK cpK @@ -76032,11 +76967,11 @@ gcK gcK gcK mGC -oZc -rEi -vDP +wXw +qUh +seU oFM -hoo +eap mGC gcK gcK @@ -76059,16 +76994,16 @@ gcK gcK gcK gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK -gcK +bAo +bAo +bAo +bAo +bAo +bAo +bAo +bAo +bAo +bAo gcK cpK cFe @@ -76289,11 +77224,11 @@ gcK gcK gcK mGC -oZc -rEi -aEE -vDP -hvF +tsA +rMK +uyq +awn +hoo mGC gcK gcK @@ -76546,7 +77481,7 @@ gcK gcK gcK mGC -oZc +sIN rEi fIz nAz @@ -76805,7 +77740,7 @@ gcK mGC xbK rEi -mTk +bjP vDP lin mGC @@ -77574,7 +78509,7 @@ gcK gcK gcK mGC -oZc +xbK rEi nsK dlj @@ -82581,7 +83516,7 @@ uqa uqa hXb rpu -rpu +gYH vDE xlb xYI @@ -82775,7 +83710,7 @@ uRJ uRJ uRJ gjP -tIM +cXr vHQ uRJ ijg @@ -83298,7 +84233,7 @@ xaF soY lRX uvC -gjP +oDo miw oCA dJg @@ -83818,7 +84753,7 @@ dkF jnX uRJ jTq -mTy +dxM fTz dVb jMC @@ -84113,7 +85048,7 @@ ueA ydO mvv pnQ -dOc +rkZ vix rSM xKC @@ -84629,7 +85564,7 @@ ydO pnQ pXR sFs -saL +dOc mRK mHj ydO @@ -84640,7 +85575,7 @@ ydO ydO vEs xYI -xYI +wvS khy xft mGl @@ -84848,7 +85783,7 @@ fyf hAC hAC nZS -gPW +lYl faW mji myh @@ -85352,7 +86287,7 @@ euj bFJ vGA gjP -uRJ +hpc uRJ jnX uRJ @@ -85900,8 +86835,8 @@ uqa dCV dCV dVw -tQl -tQl +ueA +bCR dCV hjZ ixe @@ -86155,7 +87090,7 @@ kOz tBN uqa dCV -bCR +hqf aRl ozq ozq @@ -86184,7 +87119,7 @@ mvv dCV hDb ueA -jaV +ueA tQl dCV nnG @@ -86248,7 +87183,7 @@ rpu dCP rpu rpu -uCO +riC rpu vTD uCO @@ -86383,10 +87318,10 @@ gjP xYN uRJ gjP -hpc +hlA uRJ ijg -tIM +rqs uRJ ntt gjP @@ -86504,8 +87439,8 @@ kGD vUF tci bcb -rpu -loO +vTD +uCO rpu ylg sDp @@ -86761,7 +87696,7 @@ kGD rpu urA rpu -vTD +rpu dyB rpu rpu @@ -87018,7 +87953,7 @@ tKZ rpu rpu rpu -dbW +rpu uCO oeL rpu @@ -90961,7 +91896,7 @@ fWj sNL ccF wOv -sNL +gNu vIx gJp uJB @@ -91733,7 +92668,7 @@ ooa ooa wOv fdA -hfa +fdA uYP wOv wOv @@ -93301,7 +94236,7 @@ dkg pcG pcG sUf -tIM +kYp pcG lok pWe @@ -93873,7 +94808,7 @@ gXt dZi mvv mvv -fgy +rPo mvv mvv aRl @@ -94130,7 +95065,7 @@ cGU ebx mvv mvv -fgy +mvv mvv mvv aRl @@ -95875,7 +96810,7 @@ eUI gts uaf pcG -xFL +cCf cCf pXr pcG @@ -96176,7 +97111,7 @@ gmX koD bFJ bmq -cRX +ezB bBi uRJ cvY @@ -100493,7 +101428,7 @@ mHW snB bfu kHn -fwG +pJd pJd bXw pJd @@ -101265,7 +102200,7 @@ snB koD gjP gTM -wzh +pJd cbk kgM hgS @@ -101948,7 +102883,7 @@ ggK vpD ggK ggK -yhH +bwK akk ggK ggK @@ -106340,7 +107275,7 @@ gcK gcK ktB gcK -uIh +sEN asI ggK asI @@ -106457,7 +107392,7 @@ sBk bFJ srw uRJ -cRX +ezB ddb hVN twr @@ -107316,7 +108251,7 @@ dUs gts vYv vYv -fUb +htx wBd wBd gts @@ -108324,13 +109259,13 @@ koD unI xhJ kaM -kaM -kaM -kaM -kaM -koD -cpK -cpK +vTr +wOt +wOt +wOt +wLB +trU +dgl pyv kMS iHj @@ -108580,14 +109515,14 @@ gmX koD sIf ees -ees -ees -ees +oSE +wTB +wTB iNI -ees -sVF -cpK -cpK +wTB +gFX +inV +inV lUk kQC mgO @@ -108620,15 +109555,15 @@ hom gcK gcK gcK -hom -hom -hom -hom -hom -hom -hom -hom -hom +gcK +gcK +gcK +gcK +gcK +gcK +gcK +gcK +gcK gcK gcK gcK @@ -108646,7 +109581,7 @@ ktB hBr asI ggK -uIh +sEN ggK hBr qNa @@ -108836,15 +109771,15 @@ pqO gmX koD sUX -ptf -ptf -ptf -ptf +uNL +euW +lsz +lsz hom -rwO -rwO -rwO -rwO +qdw +qdw +qdw +qdw sGp sGp sGp @@ -108877,15 +109812,15 @@ hom fyf gcK gcK -hom -xsI -vRG -pck -hom -wTX -jhx -pck -hom +gcK +gcK +gcK +gcK +gcK +gcK +gcK +gcK +gcK gcK gcK gcK @@ -109092,10 +110027,10 @@ pqO pqO gmX koD -dMW -fyf -hKz -pEk +ose +tvN +dkY +dkY imv iOY xih @@ -109134,15 +110069,15 @@ hom qOV cWG gcK -hom -oJF -hqf -vwz -hom -dZE -hqf -xih -hom +gcK +gcK +gcK +gcK +gcK +gcK +gcK +gcK +gcK gcK gcK gcK @@ -109348,17 +110283,17 @@ bLY wGJ pqO gmX -koD -dMW -fyf -fyf +aCe +gjW +dkY +dkY fyf fyf rwO xXm jgx xXm -xXm +hqt uNK jmv jhx @@ -109391,15 +110326,15 @@ hom tBN mvv bpD -hom -mpu -xys -xNm -hom -xys -xys -xNm -hom +gcK +gcK +gcK +gcK +gcK +gcK +gcK +gcK +gcK gcK gcK gcK @@ -109605,9 +110540,9 @@ bLY pqO wGJ gmX -koD -dMW -fyf +ozC +gjW +dkY fyf fyf fyf @@ -109615,7 +110550,7 @@ rwO xXm hom mIW -xXm +uNK uNK jmv xXm @@ -109648,15 +110583,15 @@ hom tBN mvv bpD -hom -lAC -xNm -xNm -hom -mfz -xNm -xNm -hom +gcK +gcK +gcK +gcK +gcK +gcK +gcK +gcK +gcK gcK gcK gcK @@ -109862,9 +110797,9 @@ dRA pqO wGJ gmX -koD -dMW -fyf +ozC +gjW +dkY fyf fyf fyf @@ -109904,16 +110839,16 @@ xNm hom tBN mvv -hgM -hom -hom -hom -dvo -hom -hom -hom -hlA -hom +bpD +fyf +gcK +gcK +gcK +gcK +gcK +gcK +gcK +gcK gcK gcK gcK @@ -110119,9 +111054,9 @@ bLY wGJ wGJ gmX -eEz -dMW -fyf +ozC +gjW +dkY siJ fyf fyf @@ -110161,16 +111096,16 @@ xNm rgS dHq mvv -bpD -nyc -xNm -vRG -xNm -xNm -xXm -vRG -xDE -hom +hgM +lPT +gcK +gcK +gcK +gcK +gcK +gcK +gcK +gcK gcK gcK gcK @@ -110376,9 +111311,9 @@ bLY tbO mHW gmX -koD -dMW -fyf +ozC +gjW +dkY fyf fyf imv @@ -110419,15 +111354,15 @@ rgS dHq mvv bpD -xGS -xNm -xXm -qCO -xNm -xXm -xNm -xNm -hom +lAC +gcK +gcK +gcK +gcK +gcK +gcK +gcK +gcK gcK gcK gcK @@ -110633,9 +111568,9 @@ bLY tbO mHW gmX -koD +ozC hlX -igz +xrJ igz bEw fyf @@ -110676,15 +111611,15 @@ rgS dHq mvv bpD -hom -hom -hom -hom -hom -hom -hom -hom -hom +gcK +gcK +gcK +gcK +gcK +gcK +gcK +gcK +gcK gcK gcK gcK @@ -110890,13 +111825,13 @@ bLY hsy wGJ gmX -fLc -ybI -ybI +jQG +aET +bSN sJw rRR fyf -jxH +fyf fyf fyf fyf @@ -111131,7 +112066,7 @@ rRt cpK dkg gts -lRo +slV vYv lLB vYv @@ -111147,13 +112082,13 @@ psK hsy pqO pqO -xbX -xbX -hBN +vBy +cxi +pYa aJb fJv fyf -jxH +fyf fyf qOV cWG @@ -111406,11 +112341,11 @@ pqO pqO ehN ehN -ehN +iue kjQ pWN uPP -jxH +fyf fyf nlO xGH @@ -111661,13 +112596,13 @@ aEv hsy pqO pqO -kaM -kaM -btW +lUy +pRz +fuX fvz gWo uit -jxH +fyf fyf fyf nlO @@ -111918,13 +112853,13 @@ bLY hsy wGJ gmX -geM -ees -ees +fIu +wTB +upC fsm ubd fyf -iPm +fyf fyf fyf fyf @@ -112175,11 +113110,11 @@ bLY hsy pqO gmX -koD +ozC hoy +lsz ptf -ptf -hJt +edA fyf jpW fyf @@ -112432,9 +113367,9 @@ hfw hsy wGJ gmX -koD -dMW -jJb +ozC +gjW +dkY fyf fyf imv @@ -112689,11 +113624,11 @@ aEv wGJ wGJ gmX -eEz -dMW +ozC +gjW +dkY fyf fyf -trW fyf jqe xXm @@ -112946,9 +113881,9 @@ bLY wGJ mHW gmX -koD -dMW -fyf +ozC +gjW +dkY fyf fyf fyf @@ -113203,9 +114138,9 @@ bLY wGJ wGJ gmX -koD -dMW -fyf +ozC +gjW +dkY fyf fyf fyf @@ -113460,10 +114395,10 @@ bLY pqO pqO gmX -koD -dMW -fyf -sND +wvz +gjW +dkY +swL fyf fyf jqe @@ -113715,13 +114650,13 @@ wGJ mHW bLY pqO -pqO +vaP gmX koD -dMW -fyf -fyf -fyf +pSx +tvN +dkY +swL fyf jqe jgx @@ -113976,10 +114911,10 @@ pqO gmX koD dMW -fyf -fyf -fyf -hwC +oxu +tvN +dkY +dkY hom hom hom @@ -114234,9 +115169,9 @@ gmX koD dMW fyf -fyf -fyf -gcK +pvt +tvN +tvN ktB lPT lww @@ -114269,9 +115204,9 @@ mfD mfD uuc mfD -mfD -mfD -mfD +hga +hga +hga mfD gNG hom @@ -114492,7 +115427,7 @@ koD dMW fyf osj -hwC +gcK gcK ktB lPT @@ -114527,9 +115462,9 @@ hom hom hom hom -hwC -hwC -hwC +qHe +oAo +fyf hwC hom uvp @@ -114749,7 +115684,7 @@ koD dMW fyf fFu -hwC +gcK gcK ktB lPT @@ -115006,7 +115941,7 @@ koD dMW fyf fyf -hwC +gcK gcK ktB lPT @@ -115263,7 +116198,7 @@ koD dMW fyf dhD -hwC +gcK gcK ktB lPT @@ -115518,7 +116453,7 @@ pqO gmX koD dMW -fyf +sND fyf gcK gcK @@ -119616,7 +120551,7 @@ fyf hAC fyf hAC -fyf +sND fyf uey kGc @@ -120875,7 +121810,7 @@ xth umO gcK ggK -uIh +xDa gcK gbL gbL diff --git a/_maps/map_files/Pahrump/Pahrump-Underground-1.dmm b/_maps/map_files/Pahrump/Pahrump-Underground-1.dmm index a1c699cc1b..8f32389d73 100644 --- a/_maps/map_files/Pahrump/Pahrump-Underground-1.dmm +++ b/_maps/map_files/Pahrump/Pahrump-Underground-1.dmm @@ -26,11 +26,13 @@ /turf/closed/wall/r_wall, /area/f13/brotherhood/dorms) "acc" = ( -/obj/structure/sink{ - pixel_y = 19 +/obj/effect/overlay/junk/sink{ + dir = 8; + pixel_x = -12 }, -/obj/structure/mirror{ - pixel_y = 35 +/obj/effect/overlay/junk/mirror{ + pixel_x = -26; + pixel_y = -4 }, /turf/open/floor/f13{ icon_state = "dark" @@ -54,10 +56,17 @@ /turf/open/floor/plasteel/f13/vault_floor/yellow, /area/f13/caves) "acI" = ( -/obj/structure/table/wood, -/obj/item/pda, -/turf/open/floor/wood/wood_large, -/area/f13/caves) +/obj/effect/decal/cleanable/dirt, +/obj/structure/sink{ + dir = 8; + pixel_x = -12 + }, +/obj/effect/overlay/junk/mirror{ + pixel_x = -26; + pixel_y = -4 + }, +/turf/open/floor/plating/tunnel, +/area/f13/den) "acL" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table, @@ -160,8 +169,8 @@ /turf/open/indestructible/ground/inside/mountain, /area/f13/tunnel) "agq" = ( -/obj/item/radio/intercom, -/turf/closed/indestructible/f13vaultrusted, +/obj/item/mine/stun, +/turf/open/floor/plating/tunnel, /area/f13/caves) "agw" = ( /obj/machinery/door/poddoor{ @@ -253,7 +262,8 @@ /obj/item/clothing/under/f13/combat, /obj/item/clothing/gloves/f13/military, /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/f13/blueprintLowPartsWeighted, +/obj/effect/spawner/lootdrop/f13/weapon/melee/random_mid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/wood/f13/carpet, /area/f13/bunker) "ajG" = ( @@ -424,7 +434,7 @@ /turf/closed/mineral/random/high_chance, /area/f13/caves) "aon" = ( -/obj/effect/mine/stun, +/obj/item/mine/stun, /obj/effect/decal/cleanable/blood/tracks, /obj/effect/decal/cleanable/blood, /obj/machinery/door/poddoor{ @@ -502,6 +512,7 @@ "aqK" = ( /obj/structure/table/wood, /obj/effect/spawner/lootdrop/f13/blueprintLowPartsWeighted, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/plasteel/f13/vault_floor/red{ icon_state = "redrustyfull" }, @@ -528,6 +539,8 @@ "ase" = ( /obj/effect/spawner/lootdrop/f13/blueprintLowPartsWeighted, /obj/structure/rack, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/high, +/obj/effect/spawner/lootdrop/f13/weapon/gun/energy/midhigh, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/f13/bunker) "asZ" = ( @@ -693,6 +706,7 @@ "axe" = ( /obj/structure/closet/crate/secure, /obj/effect/spawner/lootdrop/f13/blueprintLowPartsWeighted, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superhigh, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/f13/bunker) "axv" = ( @@ -1115,6 +1129,7 @@ /obj/item/clothing/head/helmet/f13/combat/mk2, /obj/item/clothing/mask/gas/syndicate, /obj/effect/spawner/lootdrop/f13/blueprintLowPartsWeighted, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/high, /turf/open/indestructible/ground/inside/mountain, /area/f13/tunnel) "aJo" = ( @@ -1789,7 +1804,17 @@ dir = 8; light_color = "red" }, -/obj/machinery/computer/terminal, +/obj/machinery/computer/terminal{ + doc_content_1 = "We are now established in the Yuma Region, we will begin listening in to the local business, the Police Department and the Military Base. We will report any information directly back to China. Glory!"; + doc_content_2 = "We have to report that the local hospital has communist patriots, they wish to assist us in the 'Yuma' , we sent them to break in one of the vaults behind a diner that began construction at June and see how it's going, we can maybe use it as a hideout after we assasinate the Vault-Tec Staff."; + doc_content_3 = "We got information that the Police Station has requested National Guard support due to the massive riots that are happening outside, they can't seem to be able to contain them on their own, we will keep you updated as the situation progresses."; + doc_content_4 = "CRITICAL INFORM-gfhGjhgfjhF RIOT G- NUCL- EVAC- HE-^hfbhjgsgfHFGHJ^&$^%^*"; + doc_title_1 = "April, 15 2077"; + doc_title_2 = "August, 27 2077"; + doc_title_3 = "October, 22 2077"; + doc_title_4 = "October, 23 2077"; + termtag = "Listening Outpost Chyou" + }, /turf/open/floor/f13{ icon_state = "greendirtyfull" }, @@ -2122,6 +2147,7 @@ "bpY" = ( /obj/structure/closet, /obj/effect/spawner/lootdrop/f13/blueprintLowPartsWeighted, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/high, /turf/open/floor/f13{ icon_state = "greenrustyfull" }, @@ -2356,7 +2382,7 @@ /turf/open/floor/plating/dirt, /area/f13/caves) "bwT" = ( -/obj/machinery/autolathe/constructionlathe, +/obj/structure/junk/machinery, /turf/open/indestructible/ground/inside/subway, /area/f13/caves) "bxs" = ( @@ -2658,7 +2684,7 @@ /turf/open/floor/plating/f13/inside, /area/f13/brotherhood/operations) "bGS" = ( -/obj/effect/mine/shrapnel, +/obj/item/mine/shrapnel, /obj/machinery/light/small{ dir = 8 }, @@ -2743,7 +2769,7 @@ "bJn" = ( /obj/effect/decal/cleanable/blood/old, /obj/effect/decal/remains/human, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/f13{ icon_state = "reddirtyfull" }, @@ -2979,6 +3005,7 @@ "bRb" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/f13/blueprintLowPartsWeighted, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/plasteel/f13/vault_floor/red{ icon_state = "reddirtyfull" }, @@ -3462,7 +3489,7 @@ /area/f13/tunnel) "cgk" = ( /obj/structure/simple_door/metal/barred, -/obj/effect/mine/stun, +/obj/item/mine/stun, /obj/structure/decoration/rag, /obj/effect/decal/cleanable/dirt, /turf/open/floor/f13{ @@ -3628,8 +3655,7 @@ }, /area/f13/brotherhood/dorms) "cnf" = ( -/obj/structure/sink{ - dir = 1; +/obj/effect/overlay/junk/sink{ pixel_y = 15 }, /turf/open/floor/f13/wood, @@ -3975,17 +4001,6 @@ }, /turf/open/indestructible/ground/inside/subway, /area/f13/tunnel) -"cwv" = ( -/obj/structure/decoration/vent, -/obj/structure/curtain, -/obj/machinery/shower{ - dir = 1; - icon_state = "shower" - }, -/turf/open/floor/f13{ - icon_state = "bluedirtychess2" - }, -/area/f13/caves) "cwN" = ( /obj/structure/bed/mattress{ icon_state = "mattress2" @@ -4104,10 +4119,11 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/structure/toilet{ - dir = 4 - }, /obj/effect/decal/cleanable/dirt, +/obj/effect/overlay/junk/toilet{ + dir = 4; + layer = 2.9 + }, /turf/open/floor/f13/wood{ icon_state = "housebase" }, @@ -4165,6 +4181,12 @@ icon_state = "yellowrustyfull" }, /area/f13/tunnel) +"cAm" = ( +/obj/structure/closet/crate/miningcar, +/obj/effect/spawner/lootdrop/f13/blueprintLowPartsWeighted, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, +/turf/open/indestructible/ground/inside/mountain, +/area/f13/caves) "cAp" = ( /obj/structure/stone_tile/center, /obj/structure/timeddoor, @@ -4348,6 +4370,7 @@ "cFx" = ( /obj/effect/spawner/lootdrop/f13/blueprintLowPartsWeighted, /obj/effect/decal/remains/human, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/indestructible/ground/inside/mountain, /area/f13/caves) "cFE" = ( @@ -4423,10 +4446,6 @@ }, /turf/open/indestructible/ground/outside/ruins, /area/f13/bunker) -"cGx" = ( -/obj/machinery/light, -/turf/open/floor/wood/wood_diagonal, -/area/f13/caves) "cGz" = ( /obj/structure/barricade/wooden, /obj/structure/decoration/rag{ @@ -4774,7 +4793,7 @@ /area/f13/bunker) "cRW" = ( /obj/machinery/porta_turret/syndicate{ - faction = list("raider") + faction = list("china") }, /turf/open/floor/plating/tunnel, /area/f13/caves) @@ -4912,13 +4931,6 @@ /obj/item/storage/toolbox/mechanical, /turf/open/floor/plasteel/f13/vault_floor/yellow, /area/f13/tunnel) -"cUx" = ( -/obj/structure/sign/plaques/golden, -/turf/closed/wall/f13/store{ - desc = "A pre-War wall made of solid concrete."; - name = "concrete wall" - }, -/area/f13/caves) "cVg" = ( /obj/item/chair/wood, /turf/open/indestructible/ground/inside/mountain, @@ -5310,7 +5322,7 @@ /area/f13/bunker) "diE" = ( /obj/structure/barricade/wooden, -/obj/effect/mine/stun, +/obj/item/mine/stun, /turf/open/indestructible/ground/inside/mountain, /area/f13/bunker) "diH" = ( @@ -5375,7 +5387,7 @@ }, /obj/item/holosign_creator/security{ layer = 3.1; - name = "Knight Captain's holobarrier projector"; + name = "Head Knight's holobarrier projector"; pixel_y = 7 }, /turf/open/floor/wood/f13/stage_b, @@ -5783,7 +5795,7 @@ /area/f13/bunker) "duY" = ( /obj/machinery/porta_turret/syndicate{ - faction = list("raider") + faction = list("china") }, /obj/machinery/light/small{ dir = 8; @@ -6180,14 +6192,6 @@ /obj/structure/rack, /turf/open/indestructible/ground/inside/subway, /area/f13/caves) -"dHk" = ( -/obj/structure/barricade/bars, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/curtain{ - color = "#845f58" - }, -/turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, -/area/f13/caves) "dHv" = ( /obj/structure/window/fulltile/house{ dir = 2; @@ -6334,12 +6338,12 @@ /turf/open/floor/plasteel/dark/telecomms/mainframe, /area/f13/tcoms) "dLC" = ( -/obj/structure/sink{ - pixel_y = 19 - }, -/obj/structure/mirror{ +/obj/effect/overlay/junk/mirror{ pixel_y = 32 }, +/obj/effect/overlay/junk/sink{ + pixel_y = 15 + }, /turf/open/floor/plasteel/f13/vault_floor/yellow{ icon_state = "yellowdirtyfull" }, @@ -6760,7 +6764,7 @@ /turf/closed/wall/r_wall/rust, /area/f13/clinic) "dZM" = ( -/obj/effect/mine/stun, +/obj/item/mine/stun, /turf/open/indestructible/ground/inside/mountain, /area/f13/caves) "dZO" = ( @@ -7146,7 +7150,7 @@ /area/f13/brotherhood/rnd) "ejr" = ( /obj/structure/barricade/wooden, -/obj/effect/mine/stun, +/obj/item/mine/stun, /turf/open/indestructible/ground/inside/mountain, /area/f13/tunnel) "ejv" = ( @@ -7517,9 +7521,6 @@ /obj/structure/closet{ storage_capacity = 10 }, -/obj/item/dildo{ - icon_state = "dildo" - }, /obj/item/clothing/mask/muzzle, /obj/item/clothing/mask/muzzle, /obj/item/clothing/glasses/sunglasses/blindfold, @@ -7782,7 +7783,7 @@ }, /area/f13/caves) "eBK" = ( -/obj/machinery/shower{ +/obj/effect/overlay/junk/shower{ dir = 8 }, /turf/open/floor/f13{ @@ -7889,12 +7890,6 @@ icon_state = "bluerustysolid" }, /area/f13/bunker) -"eEy" = ( -/obj/structure/bed, -/obj/item/bedsheet/black, -/obj/effect/landmark/start/f13/ncrranger, -/turf/open/floor/wood/wood_diagonal, -/area/f13/caves) "eEL" = ( /obj/structure/rack, /obj/item/gun/energy/laser/pistol, @@ -8043,6 +8038,7 @@ }, /obj/structure/table, /obj/effect/spawner/lootdrop/f13/blueprintLowPartsWeighted, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/plasteel/f13{ icon_state = "redrustyfull" }, @@ -8400,7 +8396,7 @@ /area/f13/den) "eVC" = ( /obj/structure/rack, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/f13/wood, /area/f13/bunker) "eVI" = ( @@ -8440,12 +8436,6 @@ }, /turf/open/floor/plasteel/f13/vault_floor/red/whiteredfull, /area/f13/brotherhood/reactor) -"eXm" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/wood/wood_large, -/area/f13/caves) "eXp" = ( /obj/effect/decal/cleanable/blood/old{ icon_state = "gibmid1" @@ -8860,12 +8850,12 @@ pixel_x = -31 }, /obj/effect/decal/cleanable/cobweb, -/obj/structure/sink/kitchen{ - dir = 4; - pixel_x = -15 - }, /obj/item/reagent_containers/glass/bucket/wood, /obj/item/reagent_containers/rag, +/obj/effect/overlay/junk/sink{ + dir = 8; + pixel_x = -12 + }, /turf/open/floor/plating/tunnel, /area/f13/den) "fka" = ( @@ -9182,7 +9172,7 @@ /obj/effect/spawner/lootdrop/f13/blueprintHigh, /obj/effect/spawner/lootdrop/f13/weapon/melee/random_high, /obj/effect/spawner/lootdrop/f13/weapon/melee/random, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/high, /turf/open/floor/f13{ icon_state = "bluerustysolid" }, @@ -9498,10 +9488,7 @@ }, /area/f13/den) "fzY" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_y = 8 - }, +/obj/structure/junk/micro, /turf/open/floor/f13/wood{ icon_state = "housebase" }, @@ -10595,7 +10582,7 @@ /turf/open/indestructible/ground/inside/subway, /area/f13/tunnel) "ghw" = ( -/obj/machinery/computer/arcade/minesweeper, +/obj/machinery/computer/arcade/orion_trail, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/f13/brotherhood/leisure) "ghC" = ( @@ -10830,13 +10817,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/f13/vault_floor/floor, /area/f13/brotherhood/armory) -"goS" = ( -/obj/structure/decoration/vent, -/obj/machinery/shower{ - dir = 8 - }, -/turf/open/floor/plasteel/f13/vault_floor/white, -/area/f13/bunker) "gpa" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/broken{ @@ -11001,10 +10981,10 @@ "guS" = ( /obj/structure/spider/stickyweb, /obj/structure/decoration/vent, -/obj/machinery/shower{ +/obj/effect/decal/cleanable/dirt, +/obj/effect/overlay/junk/shower{ dir = 8 }, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/f13/vault_floor/white, /area/f13/bunker) "gvn" = ( @@ -11031,12 +11011,12 @@ /turf/open/floor/plasteel/f13/vault_floor/yellow, /area/f13/tunnel) "gwn" = ( -/obj/structure/toilet{ - pixel_y = 10 - }, /obj/item/reagent_containers/food/snacks/deadmouse, /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/machinery/light/floor, +/obj/effect/overlay/junk/toilet{ + pixel_y = 12 + }, /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/bunker) "gwV" = ( @@ -11304,14 +11284,6 @@ icon_state = "floorrusty" }, /area/f13/brotherhood/rnd) -"gDB" = ( -/obj/structure/toilet{ - pixel_y = 13 - }, -/turf/open/floor/f13{ - icon_state = "bluedirtychess2" - }, -/area/f13/caves) "gDU" = ( /obj/effect/decal/cleanable/blood/tracks, /obj/effect/decal/cleanable/dirt, @@ -11424,7 +11396,7 @@ }, /area/f13/brotherhood/reactor) "gGG" = ( -/obj/effect/mine/explosive, +/obj/item/mine/explosive, /obj/machinery/light/small, /turf/open/indestructible/ground/inside/mountain, /area/f13/tunnel) @@ -11499,7 +11471,7 @@ }, /area/f13/brotherhood/rnd) "gJa" = ( -/obj/effect/mine/stun, +/obj/item/mine/stun, /turf/open/floor/f13{ icon_state = "yellowdirtyfull" }, @@ -11853,7 +11825,7 @@ /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/f13/brotherhood/operations) "gQO" = ( -/obj/effect/mine/stun, +/obj/item/mine/stun, /turf/open/indestructible/ground/inside/mountain, /area/f13/tunnel) "gQR" = ( @@ -12138,7 +12110,7 @@ /area/f13/tunnel) "gXh" = ( /obj/structure/closet, -/obj/effect/spawner/lootdrop/f13/weapon/gun/energy/mid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/energy/midhigh, /turf/open/floor/f13{ icon_state = "greenrustyfull" }, @@ -12353,10 +12325,10 @@ /turf/open/floor/f13/wood, /area/f13/tunnel) "hlb" = ( -/obj/machinery/shower{ +/obj/structure/decoration/vent, +/obj/effect/overlay/junk/shower{ dir = 8 }, -/obj/structure/decoration/vent, /turf/open/floor/plasteel/f13/vault_floor/white, /area/f13/bunker) "hlg" = ( @@ -12579,7 +12551,7 @@ /area/f13/caves) "hsW" = ( /obj/structure/table/wood/settler, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/wood/f13/oak, /area/f13/building) "htm" = ( @@ -12629,16 +12601,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/f13/tcoms) -"huY" = ( -/obj/structure/closet/crate{ - anchored = 1; - can_be_unanchored = 1 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/wood/wood_diagonal, -/area/f13/caves) "hvr" = ( /obj/structure/cable{ icon_state = "1-4" @@ -12674,12 +12636,6 @@ /obj/structure/disposalpipe/junction/flip, /turf/open/floor/plating/tunnel, /area/f13/caves) -"hxa" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/closed/mineral/random/high_chance, -/area/f13/caves) "hxd" = ( /obj/item/storage/trash_stack{ icon_state = "trash_2" @@ -12895,7 +12851,7 @@ /area/f13/bunker) "hIR" = ( /obj/structure/closet/crate/miningcar, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/indestructible/ground/inside/mountain, /area/f13/caves) "hJq" = ( @@ -12984,14 +12940,6 @@ icon_state = "redrustyfull" }, /area/f13/bunker) -"hLV" = ( -/obj/structure/ladder/unbreakable{ - height = 1; - id = "ncrranger"; - name = "Ranger bunks ladder" - }, -/turf/open/floor/wood/wood_diagonal, -/area/f13/caves) "hMf" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/bed/mattress{ @@ -13221,12 +13169,6 @@ /obj/structure/spider/stickyweb, /turf/open/floor/plasteel/f13/vault_floor/red, /area/f13/bunker) -"hTy" = ( -/obj/structure/simple_door/metal, -/turf/open/floor/f13{ - icon_state = "bluedirtychess2" - }, -/area/f13/caves) "hUn" = ( /obj/structure/table/reinforced, /obj/structure/window/fulltile/store, @@ -13809,13 +13751,6 @@ }, /turf/open/floor/plasteel/f13/vault_floor/floor, /area/f13/brotherhood/armory) -"iro" = ( -/obj/structure/decoration/vent, -/obj/machinery/shower{ - dir = 4 - }, -/turf/open/floor/plasteel/f13/vault_floor/white, -/area/f13/bunker) "irB" = ( /obj/machinery/light/small{ dir = 4 @@ -14342,10 +14277,7 @@ }, /area/f13/brotherhood/armory) "iNs" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_y = 8 - }, +/obj/structure/junk/micro, /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid{ icon_state = "darkdirtysolid" }, @@ -14474,8 +14406,10 @@ /area/f13/tunnel) "iSR" = ( /obj/structure/chair/comfy/green, -/mob/living/simple_animal/hostile/handy/gutsy{ +/mob/living/simple_animal/hostile/handy/gutsy/flamer{ faction = list("raider"); + icon_living = "pvtgutsyflamer"; + icon_state = "pvtgutsyflamer"; name = "Corporal Torque" }, /turf/open/floor/f13{ @@ -14622,7 +14556,7 @@ }, /area/f13/brotherhood/operations) "iXe" = ( -/obj/effect/mine/shrapnel, +/obj/item/mine/shrapnel, /turf/open/indestructible/ground/inside/mountain, /area/f13/caves) "iXo" = ( @@ -14669,16 +14603,9 @@ icon_state = "yellowdirtyfull" }, /area/f13/clinic) -"iYl" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/f13{ - icon_state = "bluedirtychess2" - }, -/area/f13/caves) "iYB" = ( /obj/effect/mob_spawn/human/corpse/bs, +/obj/effect/spawner/lootdrop/f13/weapon/gun/energy/mid, /turf/open/indestructible/ground/inside/subway{ name = "cave" }, @@ -14906,6 +14833,7 @@ "jgL" = ( /obj/machinery/autolathe/ammo, /obj/effect/spawner/lootdrop/f13/blueprintLowPartsWeighted, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/f13/bunker) "jhO" = ( @@ -15145,6 +15073,21 @@ /area/f13/caves) "jqr" = ( /obj/structure/table, +/obj/effect/overlay/junk/telescreen{ + pixel_y = 32 + }, +/obj/item/folder/yellow{ + desc = "A yellow folder with a red stamp on it."; + icon = 'icons/fallout/objects/bureaucracy.dmi'; + icon_state = "folder_secret"; + name = "Reports Folder"; + pixel_x = 4 + }, +/obj/item/paper/crumpled/bloody/ruins/thederelict/unfinished{ + info = "I... can't feel my... f-ce... Oh god the p*in.. I-I... am turn-ng int*o a mo-nste*..."; + pixel_x = -6; + pixel_y = 4 + }, /turf/open/floor/f13{ icon_state = "greendirtyfull" }, @@ -15407,17 +15350,6 @@ icon_state = "tunnelchess" }, /area/f13/bunker) -"jAM" = ( -/obj/structure/decoration/vent, -/obj/structure/curtain, -/obj/machinery/shower{ - pixel_y = 20 - }, -/obj/item/soap/deluxe, -/turf/open/floor/f13{ - icon_state = "bluedirtychess2" - }, -/area/f13/caves) "jAZ" = ( /obj/structure/chair/wood/modern, /turf/open/floor/f13/wood, @@ -15580,7 +15512,7 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/indestructible/ground/inside/subway, /area/f13/tunnel) "jIk" = ( @@ -16057,7 +15989,7 @@ }, /area/f13/bunker) "jXX" = ( -/obj/effect/mine/shrapnel, +/obj/item/mine/shrapnel, /turf/open/floor/plating/tunnel{ icon_state = "tunnelrusty" }, @@ -17574,10 +17506,10 @@ /turf/open/floor/plating/f13/inside, /area/f13/brotherhood/mining) "ljv" = ( -/obj/machinery/shower{ +/obj/structure/decoration/vent, +/obj/effect/overlay/junk/shower{ dir = 4 }, -/obj/structure/decoration/vent, /turf/open/floor/plasteel/f13/vault_floor/white, /area/f13/bunker) "ljB" = ( @@ -17719,7 +17651,9 @@ /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/f13/brotherhood/rnd) "lpk" = ( -/obj/structure/sign/poster/contraband/communist_state, +/obj/structure/sign/poster/contraband/communist_state{ + desc = "All hail the Chinese Communist Party!" + }, /turf/closed/indestructible/f13vaultrusted, /area/f13/caves) "lpI" = ( @@ -17951,14 +17885,6 @@ }, /turf/open/indestructible/ground/inside/mountain, /area/f13/caves) -"lyR" = ( -/obj/machinery/door/unpowered/securedoor{ - desc = "Door with a built-in lock. Can't be padlocked. The Black armor isn't the only perk Veterans get.."; - name = "Veteran Ranger's Room"; - req_access_txt = "121" - }, -/turf/open/floor/wood/wood_large, -/area/f13/caves) "lzb" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/f13/wood{ @@ -18215,13 +18141,6 @@ icon_state = "floorrusty" }, /area/f13/followers) -"lIv" = ( -/obj/structure/sign/poster/ncr/democracy, -/turf/closed/wall/f13/store{ - desc = "A pre-War wall made of solid concrete."; - name = "concrete wall" - }, -/area/f13/caves) "lIx" = ( /obj/machinery/microwave/stove, /obj/item/melee/onehanded/club/fryingpan, @@ -18262,11 +18181,6 @@ /obj/item/crowbar/advanced, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/f13/brotherhood/rnd) -"lLd" = ( -/turf/open/floor/f13{ - icon_state = "floorrustysolid" - }, -/area/f13/caves) "lLh" = ( /obj/structure/statue/bos/ladyright{ pixel_y = -16 @@ -18838,7 +18752,7 @@ }, /area/f13/bunker) "mmB" = ( -/obj/structure/chair/wood{ +/obj/structure/chair/office{ dir = 1 }, /turf/open/floor/f13{ @@ -19020,11 +18934,11 @@ }, /area/f13/caves) "muF" = ( -/obj/structure/toilet{ - pixel_y = 10 - }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, +/obj/effect/overlay/junk/toilet{ + dir = 8 + }, /turf/open/floor/f13{ icon_state = "whitegreenrustychess" }, @@ -19147,7 +19061,7 @@ /area/f13/tunnel) "mAn" = ( /obj/structure/table, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/f13{ icon_state = "greenrustyfull" }, @@ -19222,9 +19136,11 @@ }, /area/f13/clinic) "mDV" = ( -/obj/structure/simple_door/bunker, -/obj/effect/mine/stun, -/turf/open/indestructible/ground/inside/mountain, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/vault/derelict, +/turf/open/floor/f13{ + icon_state = "greenrustyfull" + }, /area/f13/caves) "mEd" = ( /obj/structure/disposalpipe/broken{ @@ -19901,7 +19817,7 @@ /turf/open/floor/plating/tunnel, /area/f13/caves) "mZK" = ( -/obj/structure/sink{ +/obj/effect/overlay/junk/sink{ dir = 4; pixel_x = 12 }, @@ -20268,7 +20184,14 @@ }, /area/f13/brotherhood/armory) "net" = ( -/obj/machinery/computer/security/wooden_tv, +/obj/structure/junk/small/tv{ + desc = "A wall mounted television, sadly it's broken."; + name = "Wall Mounted Television"; + pixel_y = 30 + }, +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen/fountain, /turf/open/floor/f13{ icon_state = "greendirtyfull" }, @@ -20522,10 +20445,6 @@ icon_state = "neutralrustyfull" }, /area/f13/brotherhood/mining) -"noI" = ( -/obj/effect/decal/fakelattice, -/turf/open/floor/plating/tunnel, -/area/f13/caves) "noQ" = ( /obj/machinery/light/small{ dir = 4 @@ -20770,11 +20689,11 @@ /turf/closed/wall/r_wall, /area/f13/brotherhood/rnd) "nyC" = ( -/obj/machinery/shower{ - dir = 4 - }, /obj/structure/decoration/vent, /obj/effect/decal/cleanable/dirt, +/obj/effect/overlay/junk/shower{ + dir = 4 + }, /turf/open/floor/plasteel/f13/vault_floor/white, /area/f13/bunker) "nyF" = ( @@ -20955,8 +20874,9 @@ }, /area/f13/caves) "nFr" = ( -/obj/structure/toilet{ - dir = 4 +/obj/effect/overlay/junk/toilet{ + dir = 4; + layer = 2.9 }, /turf/open/floor/f13{ icon_state = "dark" @@ -21551,15 +21471,6 @@ }, /turf/open/floor/plating/tunnel, /area/f13/den) -"nYo" = ( -/obj/structure/sign/warning{ - name = "WARNING: In the event of an attack, personel are forbidden to shelter here." - }, -/turf/closed/wall/f13/store{ - desc = "A pre-War wall made of solid concrete."; - name = "concrete wall" - }, -/area/f13/caves) "nYR" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ @@ -21996,14 +21907,6 @@ icon_state = "purplefull" }, /area/f13/clinic) -"olq" = ( -/obj/structure/toilet{ - dir = 1 - }, -/turf/open/floor/f13{ - icon_state = "bluedirtychess2" - }, -/area/f13/caves) "olt" = ( /obj/structure/table/glass, /turf/open/floor/f13{ @@ -22157,14 +22060,6 @@ icon_state = "neutralrustyfull" }, /area/f13/tunnel) -"osw" = ( -/obj/machinery/door/unpowered/securedoor{ - desc = "Door with a built-in lock. Can't be padlocked. You can smell the whisky and toughness from even outside the door."; - name = "Ranger's Office"; - req_access_txt = "121" - }, -/turf/open/floor/wood/wood_diagonal, -/area/f13/caves) "osH" = ( /obj/structure/handrail/g_central{ dir = 1; @@ -22454,15 +22349,6 @@ }, /turf/open/floor/plating/tunnel, /area/f13/brotherhood/rnd) -"oEM" = ( -/obj/effect/decal/fakelattice, -/obj/structure/ladder/unbreakable{ - desc = "An extremely sturdy metal ladder. It looks as if it leads down through this broken segment of plating."; - height = 2; - id = "undergroundcasino" - }, -/turf/open/floor/plating/tunnel, -/area/f13/caves) "oFi" = ( /obj/item/instrument/piano_synth, /obj/structure/rack, @@ -22510,10 +22396,6 @@ /turf/open/floor/f13/wood, /area/f13/den) "oGA" = ( -/obj/structure/ladder/unbreakable{ - height = 2; - id = "funclaw" - }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/waste{ icon_state = "goo10" @@ -22543,16 +22425,6 @@ }, /turf/open/floor/wood/f13/old, /area/f13/caves) -"oHE" = ( -/obj/effect/decal/fakelattice, -/obj/item/paper/crumpled/bloody/docsdeathnote{ - info = "ROUND AND ROUND THE TABLE GOES - THE CENTER OF TREASURE BETRAYS YOUR NOSE - DARE YOU ENTER THE CASINO OF WOES - WILL YOU LIVE? NOBODY KNOWS"; - name = "ominous note"; - pixel_x = -9; - pixel_y = -5 - }, -/turf/open/floor/plating/tunnel, -/area/f13/caves) "oHZ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/barricade/bars{ @@ -22615,12 +22487,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/f13/wood, /area/f13/den) -"oLt" = ( -/turf/closed/wall/f13/store{ - desc = "A pre-War wall made of solid concrete."; - name = "concrete wall" - }, -/area/f13/caves) "oLQ" = ( /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/f13/brotherhood/chemistry) @@ -22639,8 +22505,13 @@ }, /area/f13/tunnel) "oNi" = ( -/obj/item/radio/off, -/obj/structure/junk/small/bed, +/obj/item/radio/intercom{ + desc = "Is there anyone on the other end? Who's in there?"; + frequency = 1291; + name = "Mysterious Intercom"; + pixel_x = 26; + pixel_y = -3 + }, /turf/open/floor/f13{ icon_state = "greendirtyfull" }, @@ -22679,14 +22550,6 @@ /obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, /turf/open/indestructible/ground/inside/mountain, /area/f13/bunker) -"oOs" = ( -/obj/structure/closet/crate{ - anchored = 1; - can_be_unanchored = 1 - }, -/obj/machinery/light, -/turf/open/floor/wood/wood_diagonal, -/area/f13/caves) "oOE" = ( /obj/effect/spawner/lootdrop/trash, /turf/open/floor/f13{ @@ -23987,6 +23850,7 @@ "pOB" = ( /obj/structure/closet/crate/miningcar, /obj/effect/spawner/lootdrop/f13/blueprintLowPartsWeighted, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/high, /turf/open/indestructible/ground/inside/mountain, /area/f13/caves) "pOI" = ( @@ -24311,11 +24175,11 @@ }, /area/f13/caves) "qaK" = ( -/obj/structure/toilet{ - dir = 8 - }, /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/lootdrop/f13/medical/wasteland/meds/drug, +/obj/effect/overlay/junk/toilet{ + dir = 8 + }, /turf/open/floor/plasteel/f13/vault_floor/yellow{ icon_state = "yellowdirtyfull" }, @@ -24481,12 +24345,11 @@ }, /area/f13/den) "qfx" = ( -/obj/machinery/shower{ - layer = 2.8; - pixel_y = 32 - }, /obj/structure/decoration/vent/rusty, /obj/item/radio, +/obj/effect/overlay/junk/shower{ + pixel_y = 20 + }, /turf/open/floor/plasteel/f13/vault_floor/yellow{ icon_state = "yellowdirtyfull" }, @@ -24922,7 +24785,7 @@ /area/f13/tunnel) "qsy" = ( /mob/living/simple_animal/hostile/chinese{ - faction = list("raider") + name = "Comrade Xiaojian" }, /turf/open/floor/f13{ icon_state = "greendirtyfull" @@ -25194,6 +25057,7 @@ "qCm" = ( /obj/structure/closet/crate/miningcar, /obj/effect/spawner/lootdrop/f13/blueprintLowPartsWeighted, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/wood/f13/stage_bl, /area/f13/caves) "qCn" = ( @@ -25258,13 +25122,6 @@ /obj/effect/spawner/lootdrop/f13/cash_random_high, /turf/open/indestructible/ground/inside/mountain, /area/f13/tunnel) -"qEm" = ( -/obj/effect/mob_spawn/human/corpse/damaged{ - pixel_x = 6; - pixel_y = 8 - }, -/turf/open/indestructible/ground/inside/mountain, -/area/f13/caves) "qFn" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/grunge{ @@ -25359,12 +25216,12 @@ /turf/open/floor/plating/f13/inside, /area/f13/brotherhood/operating) "qHS" = ( -/obj/structure/toilet{ - pixel_y = 10 - }, /obj/machinery/light/floor, /obj/item/stack/f13Cash/random/low, /obj/structure/spider/cocoon, +/obj/effect/overlay/junk/toilet{ + pixel_y = 12 + }, /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/bunker) "qHX" = ( @@ -25529,7 +25386,7 @@ /turf/open/floor/plating/dirt, /area/f13/caves) "qNw" = ( -/obj/effect/mine/shrapnel, +/obj/item/mine/shrapnel, /turf/open/floor/plating/dirt/dark, /area/f13/caves) "qNx" = ( @@ -25721,9 +25578,6 @@ icon_state = "redrustyfull" }, /area/f13/bunker) -"qSX" = ( -/turf/open/floor/wood/wood_diagonal, -/area/f13/caves) "qTb" = ( /obj/effect/spawner/lootdrop/f13/cash_random_low, /turf/open/indestructible/ground/inside/mountain, @@ -25752,7 +25606,7 @@ /turf/open/floor/plasteel/f13/vault_floor/plating, /area/f13/brotherhood/medical) "qUq" = ( -/obj/effect/mine/stun, +/obj/item/mine/stun, /obj/effect/decal/cleanable/dirt{ color = "#363636" }, @@ -25982,47 +25836,6 @@ /obj/effect/mob_spawn/human/corpse/raider/tribal, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/f13/bunker) -"rby" = ( -/obj/structure/table/wood/bar, -/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ - pixel_x = 9; - pixel_y = 19 - }, -/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ - pixel_x = 2; - pixel_y = 11 - }, -/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ - pixel_x = 9; - pixel_y = 11 - }, -/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ - pixel_x = 2; - pixel_y = 19 - }, -/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ - pixel_x = 2; - pixel_y = 3 - }, -/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ - pixel_x = 9; - pixel_y = 3 - }, -/obj/item/reagent_containers/food/drinks/bottle/tequila{ - pixel_x = -8; - pixel_y = 10 - }, -/obj/item/reagent_containers/food/drinks/bottle/whiskey{ - pixel_x = -8 - }, -/obj/effect/decal/cleanable/dirt{ - color = "000000" - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/wood/wood_diagonal, -/area/f13/caves) "rbE" = ( /obj/machinery/telecomms/server/presets/command, /turf/open/floor/plasteel/dark/telecomms/mainframe, @@ -26180,11 +25993,6 @@ icon_state = "plating" }, /area/f13/bunker) -"rhV" = ( -/turf/open/floor/f13{ - icon_state = "bluedirtychess2" - }, -/area/f13/caves) "rja" = ( /obj/structure/chair/bench, /obj/effect/decal/cleanable/dirt, @@ -26282,15 +26090,6 @@ /obj/structure/statue/uranium/nuke, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/f13/bunker) -"roM" = ( -/obj/structure/bed/dogbed, -/mob/living/simple_animal/hostile/wolf/alpha{ - desc = "The NCR Rangers have been known to employ K9 units from time to time."; - faction = list("neutral"); - name = "Ranger Seth" - }, -/turf/open/floor/wood/wood_diagonal, -/area/f13/caves) "roS" = ( /obj/machinery/light/small{ dir = 8; @@ -26515,9 +26314,9 @@ /area/f13/tunnel) "rxO" = ( /obj/structure/rack, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, /obj/effect/spawner/lootdrop/f13/blueprintLowPartsWeighted, /obj/effect/spawner/lootdrop/f13/blueprintLowPartsWeighted, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/indestructible/ground/inside/subway, /area/f13/tunnel) "ryj" = ( @@ -26553,12 +26352,6 @@ /obj/structure/barricade/wooden, /turf/open/indestructible/ground/inside/mountain, /area/f13/tunnel) -"rzi" = ( -/obj/structure/timeddoor{ - deletion_time = 27000 - }, -/turf/closed/indestructible/rock, -/area/f13/tunnel) "rzy" = ( /obj/item/reagent_containers/glass/bucket, /turf/open/indestructible/ground/inside/mountain, @@ -26610,6 +26403,7 @@ /obj/effect/spawner/lootdrop/f13/weapon/gun/ammo/tier4, /obj/effect/spawner/lootdrop/f13/weapon/gun/ammo/tier4, /obj/effect/spawner/lootdrop/f13/weapon/gun/ammo/tier4, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/lowmid, /turf/open/indestructible/ground/inside/subway, /area/f13/tunnel) "rAy" = ( @@ -26800,7 +26594,7 @@ }, /area/f13/tunnel) "rFt" = ( -/obj/structure/sink{ +/obj/effect/overlay/junk/sink{ dir = 4; pixel_x = 12 }, @@ -26890,7 +26684,7 @@ /area/f13/tunnel) "rJW" = ( /obj/structure/simple_door/metal/barred, -/obj/effect/mine/stun, +/obj/item/mine/stun, /obj/structure/decoration/rag, /turf/open/floor/f13{ icon_state = "greenrustyfull" @@ -27010,12 +26804,6 @@ }, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/f13/brotherhood/medical) -"rNL" = ( -/obj/machinery/light, -/turf/open/floor/f13{ - icon_state = "bluedirtychess2" - }, -/area/f13/caves) "rNO" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/rack, @@ -27346,9 +27134,12 @@ /turf/open/indestructible/ground/inside/mountain, /area/f13/caves) "rZF" = ( -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, -/turf/open/indestructible/ground/inside/mountain, -/area/f13/tunnel) +/obj/structure/closet, +/obj/effect/spawner/lootdrop/f13/weapon/gun/energy/mid, +/turf/open/floor/f13{ + icon_state = "greenrustyfull" + }, +/area/f13/clinic) "rZZ" = ( /obj/structure/chair/sofa/left, /mob/living/simple_animal/hostile/centaur, @@ -27530,6 +27321,7 @@ "shM" = ( /obj/structure/table, /obj/effect/spawner/lootdrop/f13/blueprintLowPartsWeighted, +/obj/effect/spawner/lootdrop/f13/weapon/gun/energy/midhigh, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/f13/bunker) "shY" = ( @@ -27650,7 +27442,7 @@ /area/f13/caves) "smN" = ( /obj/machinery/light/small, -/obj/effect/mine/shrapnel, +/obj/item/mine/shrapnel, /turf/open/water, /area/f13/caves) "snm" = ( @@ -27660,14 +27452,6 @@ /obj/machinery/light/broken, /turf/open/floor/plasteel/f13/vault_floor/yellow, /area/f13/caves) -"sok" = ( -/obj/structure/bed, -/obj/item/bedsheet/hos{ - desc = "This red and gold blanket has an aura of affluence."; - name = "fancy red bedsheet" - }, -/turf/open/floor/wood/wood_large, -/area/f13/caves) "sor" = ( /obj/effect/spawner/lootdrop/trash, /turf/open/floor/f13{ @@ -27840,7 +27624,7 @@ /area/f13/bunker) "sxA" = ( /obj/structure/closet, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/f13{ icon_state = "greenrustyfull" }, @@ -28034,7 +27818,7 @@ }, /area/f13/den) "sHo" = ( -/obj/effect/mine/explosive, +/obj/item/mine/explosive, /turf/open/indestructible/ground/inside/mountain, /area/f13/tunnel) "sHv" = ( @@ -28044,16 +27828,6 @@ }, /turf/open/floor/plasteel, /area/f13/tcoms) -"sHX" = ( -/obj/structure/rack, -/obj/item/storage/box/handcuffs, -/obj/item/flashlight/seclite, -/obj/item/flashlight/seclite, -/obj/item/flashlight/seclite, -/obj/item/flashlight/seclite, -/obj/item/flashlight/seclite, -/turf/open/floor/wood/wood_diagonal, -/area/f13/caves) "sIa" = ( /obj/structure/chair/booth{ icon_state = "booth_west_north" @@ -28371,6 +28145,8 @@ /obj/structure/window/reinforced/spawner, /obj/structure/rack, /obj/machinery/light/floor, +/obj/item/clothing/suit/bio_suit/f13/hazmat, +/obj/item/clothing/head/bio_hood/f13/hazmat, /turf/open/floor/plasteel/f13/vault_floor/white, /area/f13/bunker) "sYr" = ( @@ -28549,6 +28325,8 @@ "tgC" = ( /obj/structure/rack, /obj/structure/window/reinforced/spawner, +/obj/item/clothing/suit/bio_suit/f13/hazmat, +/obj/item/clothing/head/bio_hood/f13/hazmat, /turf/open/floor/plasteel/f13/vault_floor/white, /area/f13/bunker) "thC" = ( @@ -28793,6 +28571,7 @@ "tqH" = ( /obj/structure/dresser, /obj/effect/decal/cleanable/cobweb, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/high, /turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, /area/f13/bunker) "tqN" = ( @@ -28802,7 +28581,7 @@ }, /area/f13/den) "tru" = ( -/obj/effect/spawner/lootdrop/f13/blueprintLowPartsWeighted, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/high, /turf/open/indestructible/ground/inside/mountain, /area/f13/caves) "trA" = ( @@ -29294,7 +29073,7 @@ }, /area/f13/clinic) "tJp" = ( -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/lowmid, /turf/open/indestructible/ground/inside/mountain, /area/f13/caves) "tJr" = ( @@ -29318,13 +29097,13 @@ dir = 1; pixel_y = 15 }, -/obj/structure/mirror{ - pixel_y = 30 - }, /obj/structure/sign/poster/official/cleanliness{ pixel_x = -32 }, /obj/effect/decal/cleanable/dirt, +/obj/effect/overlay/junk/mirror{ + pixel_y = 32 + }, /turf/open/floor/f13{ icon_state = "whitegreenrustychess" }, @@ -29603,18 +29382,6 @@ smooth = 1 }, /area/f13/brotherhood/operating) -"tTx" = ( -/obj/structure/closet/cabinet/anchored, -/obj/item/clothing/under/f13/ranger, -/obj/item/clothing/under/f13/ranger/blue, -/obj/item/clothing/under/f13/ranger/modif_ranger, -/obj/item/clothing/under/f13/ranger/patrol, -/obj/item/clothing/under/f13/ranger/trail, -/obj/item/clothing/under/f13/ranger/vet, -/obj/item/clothing/under/f13/ranger/vet/foxflannel, -/obj/item/encryptionkey/headset_ranger, -/turf/open/floor/wood/wood_large, -/area/f13/caves) "tTy" = ( /obj/structure/flora/wasteplant/wild_fungus, /turf/open/indestructible/ground/inside/mountain, @@ -30462,14 +30229,6 @@ /obj/structure/chair/stool/retro/black, /turf/open/floor/wood/f13/oak, /area/f13/den) -"uDJ" = ( -/obj/machinery/light{ - dir = 8 - }, -/turf/open/floor/f13{ - icon_state = "bluedirtychess2" - }, -/area/f13/caves) "uDO" = ( /obj/structure/table, /obj/effect/spawner/lootdrop/f13/cash_random_low, @@ -30571,7 +30330,7 @@ /turf/open/floor/carpet/black, /area/f13/brotherhood/offices2nd) "uKd" = ( -/obj/effect/mine/shrapnel, +/obj/item/mine/shrapnel, /turf/open/water, /area/f13/caves) "uKf" = ( @@ -30602,10 +30361,11 @@ }, /area/f13/den) "uLn" = ( -/obj/structure/bed, -/obj/item/bedsheet/blue, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, -/turf/open/floor/plasteel/f13/vault_floor/dark/darksolid, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, +/turf/open/floor/f13{ + icon_state = "reddirtyfull" + }, /area/f13/bunker) "uLp" = ( /obj/effect/spawner/structure/window/reinforced, @@ -31007,9 +30767,6 @@ icon_state = "reddirtyfull" }, /area/f13/clinic) -"vcQ" = ( -/turf/open/floor/wood/wood_large, -/area/f13/caves) "vdE" = ( /obj/structure/wreck/trash/machinepiletwo, /turf/open/floor/plating/tunnel, @@ -31256,12 +31013,6 @@ "vnO" = ( /turf/open/floor/carpet/black, /area/f13/brotherhood/offices2nd) -"vnX" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/wood/wood_diagonal, -/area/f13/caves) "vnY" = ( /obj/structure/rack, /obj/item/storage/toolbox/mechanical{ @@ -31340,10 +31091,10 @@ /obj/effect/decal/cleanable/blood/old{ icon_state = "gibmid1" }, -/obj/structure/toilet{ +/obj/item/soap/homemade, +/obj/effect/overlay/junk/toilet{ dir = 8 }, -/obj/item/soap/homemade, /turf/open/floor/plasteel/f13/vault_floor/white/whitesolid{ icon_state = "whitedirtysolid" }, @@ -31376,15 +31127,6 @@ "vrQ" = ( /turf/open/water, /area/f13/den) -"vrY" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12 - }, -/turf/open/floor/f13{ - icon_state = "bluedirtychess2" - }, -/area/f13/caves) "vsH" = ( /obj/structure/simple_door/metal/ventilation, /obj/structure/cable{ @@ -31444,13 +31186,13 @@ /obj/structure/table{ layer = 2.9 }, +/obj/effect/decal/cleanable/dirt, /obj/machinery/computer/terminal{ dir = 1; pixel_x = 16; pixel_y = 8; termtag = "Business" }, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet/black, /area/f13/brotherhood/offices2nd) "vuY" = ( @@ -32175,14 +31917,18 @@ /turf/open/floor/carpet/black, /area/f13/brotherhood/offices2nd) "wbp" = ( -/mob/living/simple_animal/hostile/handy/gutsy, +/mob/living/simple_animal/hostile/handy/gutsy{ + faction = list("wastebot"); + icon_living = "pvtgutsy"; + icon_state = "pvtgutsy"; + name = "Mr. Gutsy" + }, /turf/open/floor/f13{ icon_state = "greenrustyfull" }, /area/f13/clinic) "wcj" = ( -/obj/structure/table, -/obj/item/folder/red, +/obj/structure/junk/small/bed2, /turf/open/floor/f13{ icon_state = "greendirtyfull" }, @@ -32748,12 +32494,13 @@ }, /area/f13/caves) "wwW" = ( -/obj/structure/sink{ +/obj/effect/overlay/junk/sink{ dir = 4; pixel_x = 12 }, -/obj/structure/mirror{ - pixel_x = 32 +/obj/effect/overlay/junk/mirror{ + pixel_x = 26; + pixel_y = -4 }, /turf/open/floor/f13/wood{ icon_state = "housebase" @@ -33138,7 +32885,7 @@ "wLN" = ( /obj/structure/simple_door/metal/barred, /obj/structure/decoration/rag, -/obj/effect/mine/stun, +/obj/item/mine/stun, /obj/effect/decal/cleanable/dirt, /turf/open/floor/f13{ icon_state = "darkrusty" @@ -33734,8 +33481,8 @@ /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/f13/brotherhood/rnd) "xiW" = ( -/mob/living/simple_animal/hostile/chinese/ranged/assault{ - faction = list("raider") +/mob/living/simple_animal/hostile/chinese/ranged{ + name = "Comrade Renxiang" }, /turf/open/floor/f13{ icon_state = "whitegreenrustychess" @@ -33891,8 +33638,8 @@ /area/f13/bunker) "xow" = ( /obj/structure/rack, -/obj/effect/spawner/lootdrop/f13/weapon/gun/energy/mid, /obj/effect/spawner/lootdrop/f13/weapon/gun/energy/low, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/indestructible/ground/inside/subway, /area/f13/tunnel) "xoU" = ( @@ -34728,13 +34475,13 @@ "xVD" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/structure/sink{ - dir = 8; - pixel_x = -12 - }, /obj/structure/mirror{ pixel_x = -32 }, +/obj/effect/overlay/junk/sink{ + dir = 8; + pixel_x = -12 + }, /turf/open/floor/plasteel/f13/vault_floor/white/whitesolid{ icon_state = "whitedirtysolid" }, @@ -34925,17 +34672,11 @@ /area/f13/tunnel) "ycB" = ( /obj/structure/junk/small/bed, +/obj/item/radio/off, /turf/open/floor/f13{ icon_state = "greendirtyfull" }, /area/f13/caves) -"ydd" = ( -/obj/structure/sign/poster/contraband/revolver, -/turf/closed/wall/f13/store{ - desc = "A pre-War wall made of solid concrete."; - name = "concrete wall" - }, -/area/f13/caves) "yeg" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4; @@ -35111,13 +34852,14 @@ /area/f13/followers) "ylL" = ( /obj/effect/decal/cleanable/dirt, -/obj/structure/sink{ +/obj/effect/overlay/junk/mirror{ + pixel_x = -26; + pixel_y = -4 + }, +/obj/effect/overlay/junk/sink{ dir = 8; pixel_x = -12 }, -/obj/structure/mirror{ - pixel_x = -32 - }, /turf/open/floor/plating/tunnel, /area/f13/den) "ymg" = ( @@ -35888,7 +35630,7 @@ vPg vPg eLE vPg -vPg +duY cSY cSY cSY @@ -37725,12 +37467,12 @@ vPg vPg vPg vPg +aoj vPg +aoj +aoj vPg vPg -vPg -vPg -aoj aoj aoj vPg @@ -37975,13 +37717,13 @@ aoj vPg vPg vPg -eLE -eLE -eLE -eLE -eLE -eLE -eLE +vPg +vPg +vPg +vPg +vPg +vPg +vPg vPg vPg vPg @@ -38231,15 +37973,14 @@ vPg vPg vPg vPg -eLE -oLt -oLt -oLt -oLt -oLt -oLt -oLt -eLE +vPg +vPg +vPg +vPg +vPg +vPg +aoj +vPg vPg aoj vPg @@ -38252,6 +37993,7 @@ vPg vPg vPg vPg +vPg aoj vPg vPg @@ -38488,17 +38230,10 @@ vPg vPg vPg vPg -eLE -oLt -gDB -hTy -uDJ -hTy -olq -oLt -eLE vPg vPg +aoj +aoj vPg vPg vPg @@ -38506,6 +38241,13 @@ vPg vPg vPg vPg +aoj +aoj +vPg +vPg +vPg +vPg +vPg vPg vPg vPg @@ -38745,19 +38487,19 @@ vPg vPg vPg vPg -eLE -oLt -oLt -oLt -rhV -oLt -oLt -oLt -eLE vPg vPg +aoj vPg vPg +aoj +aoj +vPg +vPg +vPg +vPg +vPg +aoj vPg vPg vPg @@ -39003,13 +38745,6 @@ vPg vPg vPg vPg -eLE -oLt -jAM -rhV -cwv -oLt -eLE vPg vPg vPg @@ -39018,6 +38753,13 @@ vPg vPg vPg vPg +aoj +vPg +vPg +vPg +vPg +vPg +vPg vPg vPg vPg @@ -39260,17 +39002,17 @@ vPg vPg vPg vPg -eLE -oLt -oLt -rhV -oLt -oLt -eLE +vPg +vPg +aoj +vPg +vPg vPg vPg vPg +aoj vPg +aoj vPg vPg vPg @@ -39517,13 +39259,13 @@ vPg vPg vPg vPg -eLE -oLt -vrY -rhV -vrY -oLt -eLE +vPg +vPg +vPg +vPg +vPg +vPg +vPg vPg vPg vPg @@ -39774,16 +39516,16 @@ vPg vPg vPg vPg -eLE -oLt -iYl -rhV -rNL -oLt -eLE -eLE vPg vPg +aoj +vPg +vPg +aoj +vPg +vPg +aoj +vPg vPg vPg vPg @@ -40031,15 +39773,15 @@ vPg vPg vPg vPg -eLE -oLt -oLt -hTy -oLt -nYo -oLt -oLt -eLE +vPg +aoj +aoj +aoj +vPg +vPg +vPg +vPg +vPg vPg vPg vPg @@ -40289,17 +40031,17 @@ vPg vPg vPg vPg -eLE -oLt -qSX -qSX -hLV -qSX -oLt -eLE -eLE -eLE -eLE +vPg +vPg +vPg +aoj +aoj +vPg +vPg +vPg +vPg +vPg +vPg vPg vPg vPg @@ -40381,7 +40123,7 @@ ise ise puJ bcN -qme +rZF bcN puJ bcN @@ -40522,7 +40264,7 @@ vPg vPg vPg vPg -eLE +vPg vPg eLE "} @@ -40546,18 +40288,18 @@ vPg vPg vPg vPg -eLE -oLt -vnX -qSX -qSX -cGx -oLt -oLt -cUx -oLt -oLt -eLE +vPg +vPg +vPg +vPg +vPg +vPg +aoj +aoj +vPg +vPg +vPg +vPg vPg vPg vPg @@ -40639,7 +40381,7 @@ ise puJ pzF lvr -bcN +wbp puJ pzF cFE @@ -40647,7 +40389,7 @@ wbp puJ pzF lvr -bcN +wbp puJ puJ puJ @@ -40780,7 +40522,7 @@ eLE eLE eLE eLE -vPg +eLE eLE "} (23,1,1) = {" @@ -40802,19 +40544,19 @@ vPg vPg vPg vPg +aoj +vPg +vPg +vPg +vPg +vPg +aoj +vPg +vPg +vPg +vPg +vPg vPg -eLE -oLt -oLt -dHk -osw -dHk -oLt -eXm -vcQ -tTx -oLt -eLE vPg vPg vPg @@ -41022,7 +40764,7 @@ eLE vPg vPg cRW -uPr +agq bjI vPg eLE @@ -41057,21 +40799,21 @@ vPg vPg vPg vPg +vPg +vPg +vPg +vPg aoj vPg vPg -eLE -oLt -sHX -qSX -qSX -qSX -lyR -vcQ -vcQ -sok -oLt -eLE +aoj +vPg +vPg +vPg +vPg +vPg +vPg +vPg vPg vPg vPg @@ -41317,18 +41059,18 @@ vPg vPg vPg vPg -eLE -oLt -huY -qSX -qSX -oOs -oLt -acI -vcQ -rby -oLt -eLE +vPg +aoj +vPg +vPg +aoj +vPg +vPg +vPg +vPg +vPg +vPg +vPg vPg vPg vPg @@ -41574,18 +41316,18 @@ vPg vPg vPg vPg -eLE -lIv -eEy -qSX -qSX -eEy -oLt -oLt -oLt -oLt -oLt -eLE +vPg +vPg +vPg +vPg +vPg +vPg +aoj +vPg +vPg +vPg +vPg +vPg vPg vPg vPg @@ -41789,7 +41531,7 @@ xVz xVz xVz eLE -ocD +nmy jqr kMU kMU @@ -41831,17 +41573,17 @@ vPg vPg vPg vPg -eLE -oLt -huY -qSX -qSX -oOs -oLt -eLE -eLE -eLE -eLE +vPg +vPg +vPg +vPg +vPg +vPg +vPg +aoj +vPg +vPg +vPg vPg vPg vPg @@ -42046,7 +41788,7 @@ xVz xVz xVz eLE -agq +nmy net xiW kMU @@ -42085,21 +41827,21 @@ aoj vPg vPg vPg +vPg +vPg +vPg +vPg aoj vPg vPg -eLE -oLt -eEy -qSX -roM -eEy -oLt -eLE vPg vPg vPg vPg +aoj +vPg +vPg +vPg vPg vPg vPg @@ -42305,7 +42047,7 @@ xVz eLE lpk moH -bQn +oNi oNi wcj nmy @@ -42342,23 +42084,23 @@ vPg vPg aoj vPg +vPg +vPg +vPg +vPg +vPg aoj vPg vPg -eLE -oLt -oLt -oLt -ydd -oLt -oLt -eLE vPg vPg vPg vPg vPg vPg +aoj +vPg +vPg vPg vPg vPg @@ -42562,8 +42304,8 @@ xVz eLE nmy nmy -agq -agq +nmy +nmy nmy nmy eLE @@ -42602,13 +42344,13 @@ vPg vPg vPg vPg +aoj +vPg +vPg +vPg +vPg +vPg vPg -eLE -eLE -eLE -eLE -eLE -eLE vPg vPg vPg @@ -42862,7 +42604,7 @@ vPg vPg vPg vPg -vPg +aoj vPg vPg vPg @@ -42956,7 +42698,7 @@ fmT puJ pzF pMM -bcN +wbp puJ rrE cFE @@ -43119,8 +42861,8 @@ vPg vPg vPg vPg -vPg -vPg +aoj +aoj vPg vPg vPg @@ -43374,18 +43116,18 @@ vPg vPg vPg vPg -aoj vPg vPg vPg -aoj vPg vPg vPg +aoj vPg vPg vPg aoj +aoj vPg vPg aoj @@ -43630,18 +43372,18 @@ vPg vPg vPg vPg +aoj vPg vPg +aoj vPg vPg vPg vPg vPg +aoj vPg -vPg -vPg -vPg -vPg +aoj vPg vPg vPg @@ -43886,19 +43628,19 @@ vPg vPg vPg vPg -aoj vPg vPg vPg +aoj vPg vPg vPg +aoj +aoj vPg vPg vPg vPg -aoj -aoj vPg vPg vPg @@ -47433,7 +47175,7 @@ vPg vPg xVz xVz -xVz +bjI xVz xVz vPg @@ -47690,7 +47432,7 @@ vPg vPg vPg xVz -hxa +jPC aoj aoj aoj @@ -47753,7 +47495,7 @@ vPg eLE vPg vPg -rZF +lnr lnr lnr vPg @@ -48362,7 +48104,7 @@ pmg wqW vPg lnr -lnr +sNX lnr vPg vPg @@ -48874,7 +48616,7 @@ vPg vPg vPg lnr -lnr +sNX lnr vPg vPg @@ -49386,7 +49128,7 @@ vPg vPg vPg lnr -lnr +sNX lnr vPg vPg @@ -50014,7 +49756,7 @@ xVz xVz xVz xVz -pOB +cAm vPg vPg vPg @@ -50410,7 +50152,7 @@ vPg vPg vPg vPg -lnr +sNX lnr vPg vPg @@ -50448,7 +50190,7 @@ weW jko hJq lCq -weW +cSE fDH rtL hfK @@ -50705,7 +50447,7 @@ weW hfK vfU fDH -weW +cSE nTD vfU hfK @@ -50962,7 +50704,7 @@ weW rAu cSE cSE -weW +cSE cSE cSE jls @@ -51696,7 +51438,7 @@ vPg vPg vPg lnr -lnr +sNX lnr vPg vPg @@ -58832,7 +58574,7 @@ vPg xVz xVz xVz -xVz +qkD vPg vPg vPg @@ -60113,7 +59855,7 @@ vPg vPg vPg xVz -xVz +qkD vPg vPg vPg @@ -64740,7 +64482,7 @@ rex vPg vPg vPg -ajL +vPg jPC bwT myy @@ -64997,7 +64739,7 @@ rex vPg vPg vPg -ajL +vPg jPC jPC myy @@ -65627,7 +65369,7 @@ ddg dIq ylL xVD -ylL +acI kUN kIf aPF @@ -83348,8 +83090,8 @@ vPg vPg tur tur -nBk -nBk +tur +tur tur vPg vPg @@ -83586,6 +83328,12 @@ tur weW weW tur +aoj +vPg +vPg +vPg +vPg +vPg vPg aoj vPg @@ -83594,23 +83342,17 @@ vPg vPg vPg vPg -eLE -eLE -eLE -eLE -eLE -eLE -eLE -eLE +vPg +aoj +vPg +vPg +vPg +vPg +vPg vPg vPg -eoy -nBk -nBk -eoy vPg vPg -eLE vPg vPg vPg @@ -83847,24 +83589,24 @@ vPg vPg vPg vPg +aoj +vPg +vPg +vPg +vPg +vPg vPg aoj -eLE -eLE vPg vPg -xVz -xVz vPg vPg vPg -eLE vPg vPg -eoy -nBk -nBk -eoy +vPg +vPg +vPg vPg vPg vPg @@ -84101,28 +83843,28 @@ weW weW tur vPg -aoj vPg vPg vPg vPg -eLE vPg vPg -xVz -lLd -xVz vPg -aoj vPg -eLE -eLE -eLE -tMD -rzi -rzi -tMD -eLE +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg vPg vPg vPg @@ -84358,30 +84100,30 @@ weW uAY tur vPg -aoj vPg -aoj vPg -eLE -eLE vPg vPg -xVz -lLd -lLd -xVz +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg aoj vPg vPg vPg vPg vPg -myy -myy -myy -eLE -eLE -eLE +vPg +vPg +aoj +vPg +vPg vPg vPg vPg @@ -84615,30 +84357,30 @@ weW weW tur vPg -aoj vPg vPg vPg -eLE vPg -aoj -xVz -lLd -noI -lLd -xVz -xVz vPg -aoj vPg -xVz -xVz -myy -myy -myy vPg vPg -eLE +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg vPg vPg vPg @@ -84875,27 +84617,27 @@ vPg vPg vPg vPg -eLE -eLE vPg -aoj -xVz -lLd -noI -noI -xVz -xVz vPg vPg -xVz -xVz -xVz -myy -myy vPg vPg vPg -eLE +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg vPg vPg aoj @@ -85130,29 +84872,29 @@ weW tur vPg aoj +vPg +vPg +vPg +vPg +vPg +vPg aoj vPg -eLE vPg vPg vPg -xVz -noI -noI -noI -qEm -xVz -xVz -xVz -xVz -myy -myy -myy -myy +vPg +vPg +vPg +aoj +vPg +vPg +vPg +vPg +vPg vPg aoj vPg -eLE vPg vPg vPg @@ -85386,30 +85128,30 @@ weW weW tur vPg +vPg +vPg aoj +vPg +vPg +vPg +vPg +vPg +vPg aoj -eLE -eLE vPg vPg -xVz -lLd -noI -noI -oHE -lLd -xVz -xVz -xVz -xVz -xVz -myy -myy -myy +vPg +vPg +vPg +vPg vPg aoj vPg -eLE +vPg +vPg +vPg +vPg +vPg aoj vPg vPg @@ -85645,28 +85387,28 @@ tur vPg vPg vPg -eLE vPg +aoj vPg vPg -lLd -noI -oEM -noI -noI -lLd vPg vPg vPg vPg -xVz -xVz -xVz -xVz +aoj +vPg +vPg +vPg +vPg +vPg +vPg +vPg +aoj +vPg +vPg vPg vPg vPg -eLE vPg aoj aoj @@ -85900,30 +85642,30 @@ mNE mNE tur vPg -aoj vPg -eLE vPg -aoj -lLd -noI -noI -noI -noI -lLd -xVz vPg vPg vPg -aoj vPg vPg vPg -aoj vPg vPg vPg -eLE +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg vPg vPg nBk @@ -86156,19 +85898,20 @@ tur weW weW tur +aoj vPg +aoj +vPg +vPg +vPg +vPg +aoj +vPg +aoj vPg vPg -eLE vPg vPg -noI -noI -noI -noI -noI -lLd -xVz vPg aoj vPg @@ -86178,9 +85921,8 @@ vPg vPg vPg vPg -eLE -eLE -eLE +aoj +vPg vPg vPg nBk @@ -86416,15 +86158,7 @@ tur vPg vPg vPg -eLE vPg -lLd -lLd -noI -noI -noI -lLd -xVz vPg vPg vPg @@ -86432,10 +86166,18 @@ vPg vPg vPg vPg -eLE -eLE -eLE -eLE +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg vPg vPg vPg @@ -86671,25 +86413,25 @@ weW uAY tur vPg -aoj vPg -eLE vPg -xVz -lLd -lLd -lLd -lLd vPg vPg vPg -eLE -eLE -eLE -eLE -eLE -eLE -eLE +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg +vPg vPg vPg vPg @@ -86930,17 +86672,13 @@ tur vPg vPg vPg -eLE -xVz -xVz -xVz -xVz +vPg vPg aoj vPg vPg -eLE -eLE +vPg +vPg vPg vPg aoj @@ -86951,6 +86689,10 @@ vPg vPg vPg vPg +aoj +vPg +vPg +vPg vPg vPg nBk @@ -87187,18 +86929,14 @@ tur vPg vPg vPg -eLE -xVz -xVz +aoj vPg +aoj vPg vPg -eLE -eLE -eLE -eLE vPg vPg +aoj vPg aoj vPg @@ -87206,6 +86944,10 @@ vPg vPg vPg vPg +aoj +vPg +aoj +vPg vPg vPg vPg @@ -87441,19 +87183,14 @@ tur weW weW tur +aoj vPg vPg vPg -eLE -eLE -eLE -eLE -eLE -eLE -eLE vPg vPg vPg +aoj vPg vPg vPg @@ -87464,6 +87201,11 @@ vPg aoj vPg vPg +vPg +vPg +vPg +vPg +vPg eLE eLE eLE @@ -87688,7 +87430,7 @@ dXE fLU fLU nNH -gqc +uLn nNH fLU fLU @@ -87699,20 +87441,19 @@ weW weW tur vPg -aoj -vPg vPg vPg vPg +aoj vPg vPg vPg vPg vPg vPg +aoj vPg vPg -aoj vPg vPg vPg @@ -87721,6 +87462,7 @@ vPg aoj vPg vPg +vPg eLE eSW eSW @@ -87956,28 +87698,28 @@ weW weW tur vPg -aoj -vPg -vPg -vPg -vPg -vPg -vPg -vPg vPg vPg vPg vPg +aoj +aoj vPg vPg vPg vPg vPg +aoj +aoj +aoj vPg vPg vPg vPg vPg +aoj +aoj +aoj eLE eSW mTA @@ -88295,7 +88037,7 @@ nBk nBk vPg vPg -vPg +eLE lnr sHo lnr @@ -88809,7 +88551,7 @@ nBk vPg hQE nBk -vPg +eLE lnr sHo uHU @@ -90835,7 +90577,7 @@ jJr pOa eSW sXN -goS +hlb eSW twj lTu @@ -93665,7 +93407,7 @@ fKy eSW tqH uaL -uLn +cLK eSW eLE eLE @@ -97265,7 +97007,7 @@ nWD uty wER guS -goS +hlb eSW eLE vPg @@ -97778,8 +97520,8 @@ eIi bCh dmq tdJ -iro -iro +ljv +ljv eSW eLE vPg diff --git a/_maps/map_files/Pahrump/old/Dungeons.dmm b/_maps/map_files/Pahrump/old/Dungeons.dmm index a2f586d04a..b56e497042 100644 --- a/_maps/map_files/Pahrump/old/Dungeons.dmm +++ b/_maps/map_files/Pahrump/old/Dungeons.dmm @@ -2266,7 +2266,7 @@ /area/f13/bunker) "gd" = ( /obj/structure/table/wood, -/obj/item/crafting/timer, +/obj/item/assembly/timer, /turf/open/floor/f13{ icon_state = "darkdirtysolid" }, @@ -3855,7 +3855,7 @@ /area/f13/bunker) "kh" = ( /obj/structure/table/wood, -/obj/item/crafting/timer, +/obj/item/assembly/timer, /turf/open/floor/f13{ icon_state = "darkdirty" }, @@ -13995,7 +13995,7 @@ /obj/item/crafting/capacitor, /obj/item/crafting/capacitor, /obj/item/crafting/capacitor, -/obj/item/crafting/sensor, +/obj/item/assembly/prox_sensor, /turf/open/floor/f13{ icon_state = "darkdirtysolid" }, @@ -14704,7 +14704,7 @@ "On" = ( /obj/structure/rack, /obj/item/crafting/large_gear, -/obj/item/crafting/sensor, +/obj/item/assembly/prox_sensor, /obj/item/crafting/small_gear, /obj/item/crafting/transistor, /obj/item/crafting/transistor, @@ -15604,7 +15604,7 @@ /obj/structure/table, /obj/item/crafting/board, /obj/item/crafting/board, -/obj/item/crafting/sensor, +/obj/item/assembly/prox_sensor, /turf/open/floor/plasteel/f13/vault_floor/plating, /area/f13/vault) "QA" = ( @@ -15728,7 +15728,7 @@ "QP" = ( /obj/item/storage/toolbox/electrical, /obj/structure/table, -/obj/item/crafting/timer, +/obj/item/assembly/timer, /turf/open/floor/plasteel/f13/vault_floor/plating, /area/f13/vault) "QQ" = ( @@ -17657,9 +17657,9 @@ /area/f13/vault) "VH" = ( /obj/structure/rack, -/obj/item/crafting/igniter, -/obj/item/crafting/igniter, -/obj/item/crafting/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, +/obj/item/assembly/igniter, /turf/open/floor/f13{ icon_state = "darkdirtysolid" }, @@ -18575,7 +18575,7 @@ /obj/item/crafting/buzzer, /obj/item/crafting/buzzer, /obj/item/crafting/buzzer, -/obj/item/crafting/timer, +/obj/item/assembly/timer, /turf/open/floor/f13{ icon_state = "darkdirtysolid" }, diff --git a/_maps/map_files/Pahrump/old/Pahrump.dmm b/_maps/map_files/Pahrump/old/Pahrump.dmm index b6904f5c93..3c98691b08 100644 --- a/_maps/map_files/Pahrump/old/Pahrump.dmm +++ b/_maps/map_files/Pahrump/old/Pahrump.dmm @@ -10794,7 +10794,7 @@ }, /area/f13/village) "aIA" = ( -/obj/effect/mine/stun, +/obj/item/mine/stun, /turf/open/floor/f13/wood{ icon_state = "housewood2" }, @@ -19532,7 +19532,7 @@ /turf/closed/wall/f13/wood/interior, /area/f13/city) "boi" = ( -/obj/effect/landmark/start/f13/slavemaster, +/obj/effect/landmark/start/f13/immune, /turf/open/floor/f13/wood, /area/f13/building) "boj" = ( @@ -25356,7 +25356,7 @@ }, /area/f13/clinic) "bJH" = ( -/obj/effect/mine/stun, +/obj/item/mine/stun, /turf/open/floor/f13{ icon_state = "yellowdirtyfull" }, @@ -25743,7 +25743,7 @@ }, /area/f13/clinic) "bKO" = ( -/obj/effect/mine/stun, +/obj/item/mine/stun, /turf/open/indestructible/ground/inside/mountain, /area/f13/tunnel) "bKP" = ( @@ -26611,7 +26611,7 @@ /area/f13/caves) "bNK" = ( /obj/structure/barricade/wooden, -/obj/effect/mine/stun, +/obj/item/mine/stun, /turf/open/indestructible/ground/inside/mountain, /area/f13/tunnel) "bNL" = ( @@ -26784,7 +26784,7 @@ /turf/closed/mineral/random/low_chance, /area/f13/caves) "bOr" = ( -/obj/effect/mine/stun, +/obj/item/mine/stun, /turf/closed/mineral/random/low_chance, /area/f13/caves) "bOs" = ( @@ -27011,7 +27011,7 @@ }, /area/f13/bunker) "bPb" = ( -/obj/effect/mine/stun, +/obj/item/mine/stun, /turf/open/floor/f13{ icon_state = "dark" }, @@ -34377,7 +34377,7 @@ /obj/effect/decal/cleanable/blood/tracks{ dir = 6 }, -/obj/effect/mine/stun, +/obj/item/mine/stun, /turf/open/indestructible/ground/inside/mountain, /area/f13/tunnel) "ewi" = ( @@ -43464,7 +43464,7 @@ /area/f13/tunnel) "rWq" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/start/f13/slavemaster, +/obj/effect/landmark/start/f13/immune, /turf/open/floor/f13/wood, /area/f13/building) "rYZ" = ( @@ -46524,7 +46524,7 @@ /obj/item/camera, /obj/item/camera_film, /obj/item/crafting/abraxo, -/obj/item/crafting/sensor, +/obj/item/assembly/prox_sensor, /obj/item/flashlight/seclite, /obj/item/flashlight, /obj/item/flashlight, diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 9baccffd96..598973464d 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -8573,7 +8573,7 @@ /turf/open/indestructible/ground/inside/subway, /area/centcom/evac) "yv" = ( -/obj/effect/mine/stun, +/obj/item/mine/stun, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/centcom/evac) "yy" = ( @@ -9984,7 +9984,7 @@ "EB" = ( /obj/structure/simple_door/metal/dirtystore, /obj/structure/decoration/rag, -/obj/effect/mine/stun, +/obj/item/mine/stun, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/centcom/evac) "EC" = ( @@ -11360,7 +11360,7 @@ /area/centcom/holding) "Mo" = ( /obj/structure/simple_door/dirtyglass, -/obj/effect/mine/stun, +/obj/item/mine/stun, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/centcom/evac) "Mq" = ( @@ -11768,7 +11768,7 @@ "QD" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/decoration/rag, -/obj/effect/mine/stun, +/obj/item/mine/stun, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/centcom/evac) "QE" = ( @@ -12366,7 +12366,7 @@ "Va" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, -/obj/effect/mine/stun, +/obj/item/mine/stun, /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/centcom/evac) "Vm" = ( diff --git a/_maps/map_files/templates/dungeons/north_bunker_1.dmm b/_maps/map_files/templates/dungeons/north_bunker_1.dmm index d4dc658005..fc9aed2aa2 100644 --- a/_maps/map_files/templates/dungeons/north_bunker_1.dmm +++ b/_maps/map_files/templates/dungeons/north_bunker_1.dmm @@ -528,6 +528,7 @@ /obj/structure/closet, /obj/effect/spawner/lootdrop/f13/blueprintLowPartsWeighted, /obj/effect/spawner/lootdrop/f13/blueprintLowPartsWeighted, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/plasteel/barber{ icon = 'icons/turf/f13floors2.dmi'; icon_state = "bluerustychess2" diff --git a/_maps/map_files/templates/dungeons/north_bunker_2.dmm b/_maps/map_files/templates/dungeons/north_bunker_2.dmm index bee58fe93a..8500a47845 100644 --- a/_maps/map_files/templates/dungeons/north_bunker_2.dmm +++ b/_maps/map_files/templates/dungeons/north_bunker_2.dmm @@ -1371,6 +1371,7 @@ /obj/structure/rack, /obj/item/clothing/glasses/meson/engine, /obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/plating/tunnel, /area/f13/bunker) "Dx" = ( @@ -2263,8 +2264,6 @@ /turf/open/floor/plating/tunnel, /area/f13/bunker) "XX" = ( -/obj/item/fusion_fuel, -/obj/item/fusion_fuel, /turf/open/floor/plating/tunnel, /area/f13/bunker) "XY" = ( diff --git a/_maps/map_files/templates/dungeons/north_bunker_3.dmm b/_maps/map_files/templates/dungeons/north_bunker_3.dmm index 4300aa5ed3..58f8e760ff 100644 --- a/_maps/map_files/templates/dungeons/north_bunker_3.dmm +++ b/_maps/map_files/templates/dungeons/north_bunker_3.dmm @@ -793,7 +793,7 @@ /turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust, /area/f13/bunker) "wT" = ( -/obj/effect/mine/gas/plasma, +/obj/item/mine/gas/plasma, /turf/open/indestructible/ground/inside/mountain, /area/f13/tunnel) "xd" = ( @@ -1677,7 +1677,7 @@ /turf/open/indestructible/ground/inside/mountain, /area/f13/tunnel) "Wl" = ( -/obj/effect/mine/gas/plasma, +/obj/item/mine/gas/plasma, /turf/open/indestructible/ground/inside/mountain, /area/f13/caves) "Ws" = ( diff --git a/_maps/map_files/templates/dungeons/oasis_bunker_1.dmm b/_maps/map_files/templates/dungeons/oasis_bunker_1.dmm index 200dd6611e..a93781ed9b 100644 --- a/_maps/map_files/templates/dungeons/oasis_bunker_1.dmm +++ b/_maps/map_files/templates/dungeons/oasis_bunker_1.dmm @@ -31,7 +31,7 @@ }, /area/f13/radiation) "bB" = ( -/obj/effect/spawner/lootdrop/f13/weapon/melee/random, +/obj/effect/spawner/lootdrop/f13/weapon/melee/random_mid, /turf/open/floor/plating/tunnel{ icon_state = "tunnelchess" }, @@ -86,7 +86,7 @@ "da" = ( /obj/structure/spider/stickyweb, /obj/structure/closet, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/plating/tunnel, /area/f13/bunker) "dl" = ( @@ -223,7 +223,7 @@ }, /area/f13/bunker) "gj" = ( -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/plating/tunnel{ icon_state = "tunnelchess2" }, @@ -463,7 +463,7 @@ /area/f13/radiation) "nz" = ( /obj/effect/decal/remains/human, -/obj/effect/spawner/lootdrop/f13/weapon/melee/random, +/obj/effect/spawner/lootdrop/f13/weapon/melee/random_high, /turf/open/floor/plating/tunnel, /area/f13/bunker) "nO" = ( @@ -695,7 +695,7 @@ }, /area/f13/bunker) "vJ" = ( -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/plating/tunnel{ icon_state = "tunnelrusty" }, @@ -805,7 +805,7 @@ /area/f13/bunker) "zc" = ( /obj/structure/spider/stickyweb, -/obj/effect/mine/stun, +/obj/item/mine/stun, /turf/open/floor/plating/tunnel, /area/f13/bunker) "zr" = ( @@ -1044,7 +1044,7 @@ "HX" = ( /obj/structure/spider/stickyweb, /obj/structure/closet, -/obj/effect/spawner/lootdrop/f13/weapon/melee/random_high, +/obj/effect/spawner/lootdrop/f13/weapon/melee/random_mid, /turf/open/floor/plating/tunnel, /area/f13/bunker) "IK" = ( @@ -1071,7 +1071,7 @@ }, /obj/effect/spawner/lootdrop/f13/traitbooks, /obj/effect/spawner/lootdrop/f13/traitbooks, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/plasteel/barber{ icon = 'icons/turf/f13floors2.dmi'; icon_state = "bluerustychess2" @@ -1315,7 +1315,7 @@ /obj/machinery/light/small{ dir = 8 }, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/plasteel/barber{ icon = 'icons/turf/f13floors2.dmi'; icon_state = "bluerustychess2" @@ -1343,7 +1343,7 @@ /area/f13/bunker) "Qd" = ( /obj/effect/spawner/lootdrop/trash, -/obj/effect/mine/stun, +/obj/item/mine/stun, /turf/open/indestructible/ground/inside/mountain, /area/f13/bunker) "Qi" = ( diff --git a/_maps/map_files/templates/dungeons/oasis_bunker_2.dmm b/_maps/map_files/templates/dungeons/oasis_bunker_2.dmm index 969be2e72b..86e7b20ccd 100644 --- a/_maps/map_files/templates/dungeons/oasis_bunker_2.dmm +++ b/_maps/map_files/templates/dungeons/oasis_bunker_2.dmm @@ -92,7 +92,7 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/plasteel/f13/vault_floor/red, /area/f13/bunker) "bK" = ( @@ -317,7 +317,7 @@ "fD" = ( /obj/structure/closet, /obj/effect/spawner/lootdrop/f13/weapon/gun/ammo/tier3, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/plasteel/f13/vault_floor/floor, /area/f13/bunker) "fG" = ( @@ -764,8 +764,8 @@ /area/f13/bunker) "on" = ( /obj/structure/closet/crate/secure/weapon, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, /obj/effect/spawner/lootdrop/f13/blueprintLowPartsWeighted, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/plating/tunnel{ icon_state = "tunnelrusty" }, @@ -2205,7 +2205,7 @@ "Ow" = ( /obj/structure/rack, /obj/item/poster/random_contraband, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid, /turf/open/floor/plasteel/f13/vault_floor/red, /area/f13/bunker) "OB" = ( @@ -2234,7 +2234,7 @@ /obj/effect/spawner/lootdrop/f13/weapon/gun/ammo/tier4, /obj/item/clothing/suit/radiation, /obj/item/clothing/head/radiation, -/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid, +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/high, /turf/open/floor/plasteel/f13/vault_floor/red, /area/f13/bunker) "PH" = ( @@ -2383,7 +2383,7 @@ /obj/item/clothing/glasses/hud/security/sunglasses, /obj/item/flashlight/seclite, /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/lootdrop/f13/weapon/melee/random, +/obj/effect/spawner/lootdrop/f13/weapon/melee/random_mid, /turf/open/floor/plasteel/f13/vault_floor/red, /area/f13/bunker) "St" = ( @@ -2791,7 +2791,7 @@ "XE" = ( /obj/structure/closet, /obj/item/flashlight/seclite, -/obj/effect/spawner/lootdrop/f13/weapon/melee/random, +/obj/effect/spawner/lootdrop/f13/weapon/melee/random_mid, /turf/open/floor/plasteel/f13/vault_floor/red, /area/f13/bunker) "XF" = ( @@ -2818,7 +2818,6 @@ /area/f13/radiation) "Yj" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/fusion_fuel, /turf/open/floor/engine, /area/f13/radiation) "Yk" = ( diff --git a/code/__DEFINES/_flags/shields.dm b/code/__DEFINES/_flags/shields.dm index f6de4226e8..abcc203a72 100644 --- a/code/__DEFINES/_flags/shields.dm +++ b/code/__DEFINES/_flags/shields.dm @@ -16,3 +16,7 @@ #define SHIELD_BASH_GROUND_SLAM_DISARM (1<<7) #define SHIELD_FLAGS_DEFAULT (SHIELD_CAN_BASH | SHIELD_BASH_WALL_KNOCKDOWN | SHIELD_BASH_WALL_DISARM | SHIELD_BASH_GROUND_SLAM) + +#define SHIELD_FLAGS_HEAVY (SHIELD_CAN_BASH | SHIELD_BASH_WALL_KNOCKDOWN | SHIELD_BASH_WALL_DISARM | SHIELD_BASH_GROUND_SLAM | SHIELD_BASH_ALWAYS_KNOCKDOWN) + +#define SHIELD_FLAGS_LIGHT (SHIELD_CAN_BASH | SHIELD_BASH_GROUND_SLAM | SHIELD_BASH_ALWAYS_DISARM) diff --git a/code/__DEFINES/construction.dm b/code/__DEFINES/construction.dm index 5b2df6603f..d3c74419c6 100644 --- a/code/__DEFINES/construction.dm +++ b/code/__DEFINES/construction.dm @@ -69,7 +69,7 @@ #define CAT_WEAPONRY "Weaponry" #define CAT_WEAPON "Ranged Weapons" #define CAT_MELEE "Melee Weapons" -#define CAT_AMMO "Explosives & Cells" +#define CAT_AMMO "Ammo & Cells" #define CAT_MISCWEP "Weapons Misc" #define CAT_PARTS "Weapon Parts" #define CAT_CRAFTING "Crafting" diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index e2bcfae2a6..8161b50760 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -414,9 +414,10 @@ #define COMSIG_ITEM_MOUSE_ENTER "item_mouse_enter" //from base of obj/item/MouseEntered(): (location, control, params) #define COMSIG_ITEM_DECONSTRUCTOR_DEEPSCAN "deconstructor_deepscan" //Called by deconstructive analyzers deepscanning an item: (obj/machinery/rnd/destructive_analyzer/analyzer_machine, mob/user, list/information_list) #define COMSIG_ITEM_DISABLE_EMBED "item_disable_embed" ///from [/obj/item/proc/disableEmbedding]: -#define COMSIG_MINE_TRIGGERED "minegoboom" ///from [/obj/effect/mine/proc/triggermine]: +#define COMSIG_EFFECT_MINE_TRIGGERED "minegoboom" ///from [/obj/effect/mine/proc/triggermine]: // Uncovered information #define COMPONENT_DEEPSCAN_UNCOVERED_INFORMATION 1 +#define COMSIG_ITEM_MINE_TRIGGERED "itemineboom" ///from [/obj/item/mine/proc/triggermine]: // /obj/item/grenade signals #define COMSIG_GRENADE_PRIME "grenade_prime" //called in /obj/item/gun/process_fire (user, target, params, zone_override) diff --git a/code/__DEFINES/food.dm b/code/__DEFINES/food.dm index 9e6713d30e..596483f729 100644 --- a/code/__DEFINES/food.dm +++ b/code/__DEFINES/food.dm @@ -14,6 +14,7 @@ #define BREAKFAST (1<<13) #define ANTITOXIC (1<<14) #define LONGPORK (1<<15) +#define NUKA (1<<16) #define DRINK_NICE 1 #define DRINK_GOOD 2 diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm index d94859dc65..5794967f20 100644 --- a/code/__DEFINES/inventory.dm +++ b/code/__DEFINES/inventory.dm @@ -166,6 +166,18 @@ #define TINT_DARKENED 2 //Threshold of tint level to apply weld mask overlay #define TINT_BLIND 3 //Threshold of tint level to obscure vision fully +// defines for AFK theft +/// How many messages you can remember while logged out before you stop remembering new ones +#define AFK_THEFT_MAX_MESSAGES 10 +/// If someone logs back in and there are entries older than this, just tell them they can't remember who it was or when +#define AFK_THEFT_FORGET_DETAILS_TIME 5 MINUTES +/// The index of the entry in 'afk_thefts' with the person's visible name at the time +#define AFK_THEFT_NAME 1 +/// The index of the entry in 'afk_thefts' with the text +#define AFK_THEFT_MESSAGE 2 +/// The index of the entry in 'afk_thefts' with the time it happened +#define AFK_THEFT_TIME 3 + //Allowed equipment lists for security vests and hardsuits. GLOBAL_LIST_INIT(advanced_hardsuit_allowed, typecacheof(list( diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index f1b3785384..c093c2b48d 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -192,7 +192,7 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list( #define isgrenade(A) (istype(A, /obj/item/grenade)) -#define islandmine(A) (istype(A, /obj/effect/mine)) +#define islandmine(A) (istype(A, /obj/item/mine)) #define isammocasing(A) (istype(A, /obj/item/ammo_casing)) diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm index 10de189158..a32af4684c 100644 --- a/code/__DEFINES/jobs.dm +++ b/code/__DEFINES/jobs.dm @@ -92,9 +92,9 @@ #define F13VETLEGIONARY (1<<10) #define F13LEGIONARY (1<<11) #define F13RECRUITLEG (1<<12) -#define F13AUXILIA (1<<13) +#define F13AUXILIA (1<<13) #define F13LEGIONSLAVE (1<<14) -#define F13SLAVEMASTER (1<<15) +#define F13IMMUNE (1<<15) #define F13CAMPFOLLOWER (1<<16) #define BOS (1<<5) @@ -262,7 +262,7 @@ #define JOB_DISPLAY_ORDER_LEGIONARY 59 #define JOB_DISPLAY_ORDER_RECRUITLEG 60 #define JOB_DISPLAY_ORDER_CAMPFOLLOWER 61 -#define JOB_DISPLAY_ORDER_SLAVEMASTER 62 +#define JOB_DISPLAY_ORDER_IMMUNE 62 #define JOB_DISPLAY_ORDER_AUXILIA 63 #define JOB_DISPLAY_ORDER_LEGIONSLAVE 64 diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 88f4e1e987..fda36d15f0 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -333,9 +333,13 @@ /// If you examine the same atom twice in this timeframe, we call examine_more() instead of examine() #define EXAMINE_MORE_TIME 1 SECONDS +//simplemob flagf #define SILENCE_RANGED_MESSAGE (1<<0) +//living flag +#define HIDE_OFFLINE_INDICATOR (1<<0) + //Respawn timer #define RESPAWN_TIMER 3000 diff --git a/code/__DEFINES/reagents.dm b/code/__DEFINES/reagents.dm index 44e97ef345..1ef39bfb76 100644 --- a/code/__DEFINES/reagents.dm +++ b/code/__DEFINES/reagents.dm @@ -63,6 +63,10 @@ #define THRESHOLD_UNHUSK 50 // health threshold for synthflesh/rezadone to unhusk someone +#define SYNTHTISSUE_BORROW_CAP 250 //The cap for synthtissue's borrowed health value when used on someone dead or already having borrowed health. +#define SYNTHTISSUE_DAMAGE_FLIP_CYCLES 45 //After how many cycles the damage will be pure toxdamage as opposed to clonedamage like initially. Gradually changes during its cycles. + + //reagent bitflags, used for altering how they works #define REAGENT_DEAD_PROCESS (1<<0) //calls on_mob_dead() if present in a dead body #define REAGENT_DONOTSPLIT (1<<1) //Do not split the chem at all during processing diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 20a4f98473..9cfd789708 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -101,6 +101,7 @@ #define TRAIT_SLEEPIMMUNE "sleep_immunity" #define TRAIT_PUSHIMMUNE "push_immunity" #define TRAIT_SHOCKIMMUNE "shock_immunity" +#define TRAIT_WIREVISION "wire omniescience" #define TRAIT_TESLA_SHOCKIMMUNE "tesla_shock_immunity" #define TRAIT_STABLEHEART "stable_heart" #define TRAIT_STABLELIVER "stable_liver" @@ -134,6 +135,7 @@ #define TRAIT_NODEATH "nodeath" #define TRAIT_NOHARDCRIT "nohardcrit" #define TRAIT_NOSOFTCRIT "nosoftcrit" +#define TRAIT_NUKA_LOVER "nukalover" #define TRAIT_MINDSHIELD "mindshield" #define TRAIT_HIJACKER "hijacker" #define TRAIT_SIXTHSENSE "sixthsense" @@ -186,6 +188,7 @@ #define TRAIT_SKITTISH "skittish" #define TRAIT_POOR_AIM "poor_aim" #define TRAIT_INSANE_AIM "insane_aim" //they don't miss. they never miss. it was all part of their immaculate plan. +#define SPREAD_CONTROL "spread_control" #define TRAIT_PROSOPAGNOSIA "prosopagnosia" #define TRAIT_DRUNK_HEALING "drunk_healing" #define TRAIT_TAGGER "tagger" @@ -213,6 +216,7 @@ #define TRAIT_NO_ALCOHOL "alcohol_intolerance" #define TRAIT_MUTATION_STASIS "mutation_stasis" //Prevents processed genetics mutations from processing. #define TRAIT_FAST_PUMP "fast_pump" +#define TRAIT_AUTO_DRAW "auto_draw" //can use bows good #define TRAIT_NO_PROCESS_FOOD "no-process-food" // You don't get benefits from nutriment, nor nutrition from reagent consumables #define TRAIT_NICE_SHOT "nice_shot" //hnnnnnnnggggg..... you're pretty good... #define TRAIT_PERFECT_ATTACKER "perfect_attacker" diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index dc0c6db7d6..346cd256bc 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -20,6 +20,8 @@ #define LAZYACCESS(L, I) (L ? (isnum(I) ? (I > 0 && I <= length(L) ? L[I] : null) : L[I]) : null) #define LAZYSET(L, K, V) if(!L) { L = list(); } L[K] = V; #define LAZYLEN(L) length(L) +//Sets a list to null +#define LAZYNULL(L) L = null #define LAZYCLEARLIST(L) if(L) L.Cut() #define SANITIZE_LIST(L) ( islist(L) ? L : list() ) #define reverseList(L) reverseRange(L.Copy()) diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index 052a537514..d8b4da530d 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -171,7 +171,7 @@ GLOBAL_LIST_INIT(trash_part, list( GLOBAL_LIST_INIT(trash_clothing, list( /obj/item/clothing/glasses/sunglasses/big = 5, /obj/item/clothing/glasses/sunglasses = 5, - /obj/item/clothing/glasses/eyepatch = 5, + /obj/item/clothing/suit/armor/f13/plates = 5, /obj/item/clothing/head/helmet/knight/f13/rider = 5, /obj/item/clothing/shoes/f13/cowboy = 5, /obj/item/clothing/shoes/f13/explorer = 5, @@ -483,13 +483,13 @@ GLOBAL_LIST_INIT(loot_t5_melee, list( /obj/item/twohanded/chainsaw, /obj/item/melee/transforming/energy/axe/protonaxe, /obj/item/melee/powered/ripper, - /obj/item/melee/powerfist/f13, + /obj/item/melee/unarmed/powerfist, /obj/item/twohanded/sledgehammer/rockethammer, /obj/item/gun/ballistic/revolver/ballisticfist, /obj/item/twohanded/sledgehammer/supersledge, /obj/item/shishkebabpack, /obj/item/melee/unarmed/deathclawgauntlet, - /obj/item/melee/powerfist/f13/moleminer + /obj/item/melee/unarmed/powerfist/moleminer )) GLOBAL_LIST_INIT(loot_t1_range, list( @@ -509,7 +509,7 @@ GLOBAL_LIST_INIT(loot_t1_range, list( /obj/item/ammo_box/magazine/m45, /obj/item/gun/ballistic/automatic/pistol/ninemil, /obj/item/ammo_box/magazine/m9mm, - /obj/item/gun/ballistic/revolver/colt6520, + /obj/item/gun/ballistic/automatic/pistol/n99, /obj/item/ammo_box/magazine/m10mm_adv/simple, /obj/item/gun/ballistic/automatic/varmint, /obj/item/ammo_box/magazine/m556/rifle/small diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index 91a5f4763b..dfbf36c227 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -33,6 +33,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_SLEEPIMMUNE" = TRAIT_SLEEPIMMUNE, "TRAIT_PUSHIMMUNE" = TRAIT_PUSHIMMUNE, "TRAIT_SHOCKIMMUNE" = TRAIT_SHOCKIMMUNE, + "TRAIT_WIREVISION" = TRAIT_WIREVISION, "TRAIT_TESLA_SHOCKIMMUNE" = TRAIT_TESLA_SHOCKIMMUNE, "TRAIT_STABLEHEART" = TRAIT_STABLEHEART, "TRAIT_STABLELIVER" = TRAIT_STABLELIVER, @@ -50,6 +51,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_NOFIRE" = TRAIT_NOFIRE, "TRAIT_NOGUNS" = TRAIT_NOGUNS, "TRAIT_NOHUNGER" = TRAIT_NOHUNGER, + "TRAIT_NUKA_LOVER" = TRAIT_NUKA_LOVER, "TRAIT_EASYDISMEMBER" = TRAIT_EASYDISMEMBER, "TRAIT_LIMBATTACHMENT" = TRAIT_LIMBATTACHMENT, "TRAIT_NOLIMBDISABLE" = TRAIT_NOLIMBDISABLE, diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 35c49755a4..c65ba184b1 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -89,15 +89,15 @@ to_chat(user, "You don't want to harm other living beings!") return - var/bigleagues = force*0.45 - var/buffout = force*0.55 + var/bigleagues = force*0.25 + var/buffout = force*0.50 //var/regular = force*(user.special_s/100)//SPECIAL integration //force += regular//SPECIAL integration - + if (force >= 5 && HAS_TRAIT(user, TRAIT_BIG_LEAGUES)) force += bigleagues - + if (force >= 5 && HAS_TRAIT(user, TRAIT_BUFFOUT_BUFF)) force += buffout @@ -119,7 +119,7 @@ if (force >= 5 && HAS_TRAIT(user, TRAIT_BIG_LEAGUES)) force -= bigleagues - + if (force >= 5 && HAS_TRAIT(user, TRAIT_BUFFOUT_BUFF)) force -= buffout diff --git a/code/datums/armor.dm b/code/datums/armor.dm index 6de909769f..da2c0c3768 100644 --- a/code/datums/armor.dm +++ b/code/datums/armor.dm @@ -1,16 +1,12 @@ -#define ARMORID "armor-[tier]-[linemelee]-[linebullet]-[linelaser]-[melee]-[bullet]-[laser]-[energy]-[bomb]-[bio]-[rad]-[fire]-[acid]-[magic]-[wound]" +#define ARMORID "armor-[melee]-[bullet]-[laser]-[energy]-[bomb]-[bio]-[rad]-[fire]-[acid]-[magic]-[wound]" /proc/getArmor(tier = 0, linemelee = 0, linebullet = 0, linelaser = 0, melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0, magic = 0, wound = 0) . = locate(ARMORID) if (!.) - . = new /datum/armor(tier, linemelee, linebullet, linelaser, melee, bullet, laser, energy, bomb, bio, rad, fire, acid, magic, wound) + . = new /datum/armor(melee, bullet, laser, energy, bomb, bio, rad, fire, acid, magic, wound) /datum/armor datum_flags = DF_USE_TAG - var/tier //1 to 11. Tier 1 - thin clothing, 2 - thick clothing , 3 - armored jackets, 4 - low quality/light armor, 5 - medium qual armor, 6 - medium high, 7 - high, 8 - exceptional/low qual PA, 9 - t45, 10 - t51, 11 - t60 - var/linemelee - var/linebullet - var/linelaser var/melee var/bullet var/laser @@ -22,20 +18,11 @@ var/acid var/magic var/wound - //var/tierline = list(10, 20, 45, 60, 75, 90, 105, 125, 210, 235, 260) //old - var/tierline = list(25, 50, 75, 100, 125, 150, 200, 250, 300, 350, 400, 500, 600) //new -/datum/armor/New(tier = 0, linemelee = 0, linebullet = 0, linelaser = 0, melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0, magic = 0, wound = 0) - - if(tier) //ASSIGNS ARMOR VALUES BASED ON TIER, IT WILL USE ARMOR VALUES INSTEAD OF THE TIER FOR THAT VALUE IF THE ARMOR VALUE IS PRESENT - linemelee = linemelee+tierline[tier] //If an armor has a tier value, having a linemelee value will add onto that tier value rather than replace it. - linebullet = linebullet+tierline[tier] - linelaser = linelaser+tierline[tier] - wound = wound+(tier*5) - - src.linemelee = linemelee - src.linebullet = linebullet - src.linelaser = linelaser +/datum/armor/New(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0, magic = 0, wound = 0) + src.melee = melee + src.bullet = bullet + src.laser = laser src.energy = energy src.bomb = bomb src.bio = bio @@ -44,27 +31,16 @@ src.acid = acid src.magic = magic src.wound = wound -//DESERT ROSE 2 LINEARMOR EXPLAINED: Heavily influenced by this Skyrim mod https://www.nexusmods.com/skyrim/mods/15860 % damage reduction is exponential (E.G. 90 doubles the effective health increase of 80). -//Linearmor is linear (so 100 armor is twice 50). Linearmor will never equal 100 armor. If a mob were to have 100 health, each point of linearmor would be the equivalent to +1 effective health. For example, 100 linearmor = 200 effective health or 50% damage reduction. - src.melee = 100*linemelee/(abs(linemelee)+100) || melee - src.bullet = 100*linebullet/(abs(linebullet)+100) || bullet - src.laser = 100*linelaser/(abs(linelaser)+100) || laser - - src.tier = 0 tag = ARMORID -/datum/armor/proc/modifyRating(tier = 0, linemelee = 0, linebullet = 0, linelaser = 0, melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0, magic = 0, wound = 0) - return getArmor(tier, src.linemelee+linemelee, src.linebullet+linebullet, src.linelaser+linelaser, src.melee+melee, src.bullet+bullet, src.laser+laser, src.energy+energy, src.bomb+bomb, src.bio+bio, src.rad+rad, src.fire+fire, src.acid+acid, src.magic+magic, src.wound+wound) +/datum/armor/proc/modifyRating(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0, magic = 0, wound = 0) + return getArmor(src.melee+melee, src.bullet+bullet, src.laser+laser, src.energy+energy, src.bomb+bomb, src.bio+bio, src.rad+rad, src.fire+fire, src.acid+acid, src.magic+magic, src.wound+wound) /datum/armor/proc/modifyAllRatings(modifier = 0) - return getArmor(tier, linemelee+modifier, linebullet+modifier, linelaser+modifier, melee, bullet, laser, energy+modifier, bomb+modifier, bio+modifier, rad+modifier, fire+modifier, acid+modifier, magic+modifier, wound+modifier) + return getArmor(melee+modifier, bullet+modifier, laser+modifier, energy+modifier, bomb+modifier, bio+modifier, rad+modifier, fire+modifier, acid+modifier, magic+modifier, wound+modifier) -/datum/armor/proc/setRating(tier, linemelee, linebullet, linelaser, melee, bullet, laser, energy, bomb, bio, rad, fire, acid, magic, wound) - return getArmor((isnull(tier) ? src.tier : tier),\ - (isnull(linemelee) ? src.linemelee : linemelee),\ - (isnull(linebullet) ? src.linebullet : linebullet),\ - (isnull(linelaser) ? src.linelaser : linelaser),\ - (isnull(melee) ? src.melee : melee),\ +/datum/armor/proc/setRating(melee, bullet, laser, energy, bomb, bio, rad, fire, acid, magic, wound) + return getArmor((isnull(melee) ? src.melee : melee),\ (isnull(bullet) ? src.bullet : bullet),\ (isnull(laser) ? src.laser : laser),\ (isnull(energy) ? src.energy : energy),\ @@ -80,13 +56,13 @@ return vars[rating] /datum/armor/proc/getList() - return list("tier" = tier, "linemelee" = linemelee, "linebullet" = linebullet, "linelaser" = linelaser, "melee" = melee, "bullet" = bullet, "laser" = laser, "energy" = energy, "bomb" = bomb, "bio" = bio, "rad" = rad, "fire" = fire, "acid" = acid, "magic" = magic, "wound" = wound) + return list("melee" = melee, "bullet" = bullet, "laser" = laser, "energy" = energy, "bomb" = bomb, "bio" = bio, "rad" = rad, "fire" = fire, "acid" = acid, "magic" = magic, "wound" = wound) /datum/armor/proc/attachArmor(datum/armor/AA) - return getArmor(tier, linemelee+AA.linemelee, linebullet+AA.linebullet, linelaser+AA.linelaser, melee+AA.melee, bullet+AA.bullet, laser+AA.laser, energy+AA.energy, bomb+AA.bomb, bio+AA.bio, rad+AA.rad, fire+AA.fire, acid+AA.acid, magic+AA.magic, wound+AA.wound) + return getArmor(melee+AA.melee, bullet+AA.bullet, laser+AA.laser, energy+AA.energy, bomb+AA.bomb, bio+AA.bio, rad+AA.rad, fire+AA.fire, acid+AA.acid, magic+AA.magic, wound+AA.wound) /datum/armor/proc/detachArmor(datum/armor/AA) - return getArmor(tier, linemelee-AA.linemelee, linebullet-AA.linebullet, linelaser-AA.linelaser, melee+AA.melee, bullet+AA.bullet, laser+AA.laser, energy-AA.energy, bomb-AA.bomb, bio-AA.bio, rad-AA.rad, fire-AA.fire, acid-AA.acid, magic-AA.magic, wound-AA.wound) + return getArmor(melee+AA.melee, bullet+AA.bullet, laser+AA.laser, energy-AA.energy, bomb-AA.bomb, bio-AA.bio, rad-AA.rad, fire-AA.fire, acid-AA.acid, magic-AA.magic, wound-AA.wound) /datum/armor/vv_edit_var(var_name, var_value) if (var_name == NAMEOF(src, tag)) diff --git a/code/datums/components/armor_plate.dm b/code/datums/components/armor_plate.dm index f801d03bbf..17e6f5b959 100644 --- a/code/datums/components/armor_plate.dm +++ b/code/datums/components/armor_plate.dm @@ -2,7 +2,7 @@ var/amount = 0 var/maxamount = 5 var/upgrade_item = /obj/item/stack/crafting/armor_plate - var/datum/armor/added_armor = list("melee" = 2, "bullet" = 2, "laser" = 2) + var/datum/armor/added_armor = list("melee" = 1, "bullet" = 1, "laser" = 1) var/upgrade_name /datum/component/armor_plate/Initialize(_maxamount,obj/item/_upgrade_item,datum/armor/_added_armor) diff --git a/code/datums/components/crafting/guncrafting.dm b/code/datums/components/crafting/guncrafting.dm index 0b940d4aa9..612305ca27 100644 --- a/code/datums/components/crafting/guncrafting.dm +++ b/code/datums/components/crafting/guncrafting.dm @@ -42,7 +42,7 @@ /obj/item/weaponcrafting/improvised_parts/trigger_assembly name = "firearm trigger assembly" - desc = "A modular trigger assembly with a firing pin, this can be used to make a whole bunch of improvised firearss." + desc = "A modular trigger assembly with a firing pin, this can be used to make a whole bunch of improvised firearms." icon_state = "trigger_assembly" w_class = WEIGHT_CLASS_SMALL @@ -83,7 +83,7 @@ return ..() if(istype(W,/obj/item/salvage)) var/obj/item/salvage/S = W - if(do_after(user,25,target = src)) + if(do_after(user,5,target = src)) if(HAS_TRAIT(user, TRAIT_TECHNOPHREAK)) var/obj/I = pick(S.Loot) new I (src.loc) @@ -97,6 +97,30 @@ new K (src.loc) stoplag(1) qdel(W) + + if(istype(W,/obj/item/storage)) + var/obj/item/storage/baggy = W + var/obj/item/salvage/checkitem + for(var/thingy in baggy.contents) + if(!istype(thingy, /obj/item/salvage))//how did we get here + break + checkitem = thingy + if(!user.transferItemToLoc(checkitem, drop_location())) + break + if(do_after(user,5,target = src)) + if(HAS_TRAIT(user, TRAIT_TECHNOPHREAK)) + var/obj/I = pick(checkitem.Loot) + new I (src.loc) + var/obj/I = pick(checkitem.Loot) + new I (src.loc) + if(prob(50)) + var/obj/J = pick(checkitem.Loot) + new J (src.loc) + if(prob(25)) + var/obj/K = pick(checkitem.Loot) + new K (src.loc) + stoplag(1) + qdel(checkitem) if(user.transferItemToLoc(W, drop_location())) return 1 diff --git a/code/datums/components/crafting/recipes/recipes_clothing.dm b/code/datums/components/crafting/recipes/recipes_clothing.dm index a3d38fc6ea..513b63c4f4 100644 --- a/code/datums/components/crafting/recipes/recipes_clothing.dm +++ b/code/datums/components/crafting/recipes/recipes_clothing.dm @@ -52,6 +52,16 @@ category = CAT_CLOTHING subcategory = CAT_BELTS +/datum/crafting_recipe/legholster + name = "Leg Holster" + result = /obj/item/storage/belt/holster/legholster + reqs = list(/obj/item/stack/sheet/leather = 2, + /obj/item/stack/sheet/hay = 3) + tools = list(TOOL_WORKBENCH) + time = 15 + category = CAT_CLOTHING + subcategory = CAT_BELTS + /datum/crafting_recipe/medolier name = "Medolier" result = /obj/item/storage/belt/medolier @@ -92,6 +102,28 @@ subcategory = CAT_GENCLOTHES always_available = FALSE +/datum/crafting_recipe/heavysheath + name = "Heavy-Duty Sheath" + result = /obj/item/storage/belt/sabre/heavy + reqs = list(/obj/item/stack/sheet/hay = 1, + /obj/item/stack/sheet/leather = 3, + /obj/item/stack/crafting/metalparts = 2) + tools = list(TOOL_WORKBENCH) + time = 15 + category = CAT_CLOTHING + subcategory = CAT_BELTS + +/datum/crafting_recipe/twinsheath + name = "Twin Sheath" + result = /obj/item/storage/belt/sabre/twin + reqs = list(/obj/item/stack/sheet/hay = 1, + /obj/item/stack/sheet/leather = 3, + /obj/item/stack/crafting/metalparts = 2) + tools = list(TOOL_WORKBENCH) + time = 15 + category = CAT_CLOTHING + subcategory = CAT_BELTS + ///////// //SHOES// ///////// diff --git a/code/datums/components/crafting/recipes/recipes_explosives.dm b/code/datums/components/crafting/recipes/recipes_explosives.dm index affb793bf8..0ffb98966f 100644 --- a/code/datums/components/crafting/recipes/recipes_explosives.dm +++ b/code/datums/components/crafting/recipes/recipes_explosives.dm @@ -42,20 +42,84 @@ reqs = list(/datum/reagent/blackpowder = 50, /obj/item/crafting/coffee_pot = 1, /obj/item/stack/cable_coil = 1, - /obj/item/crafting/timer = 1,) + /obj/item/assembly/timer = 1,) time = 30 category = CAT_EXPLOSIVE -/datum/crafting_recipe/shrapnelmine - name = "Shrapnel Mine (WARNING: MINE PLACED IMMEDIATLY)" - result = /obj/effect/mine/shrapnel - reqs = list(/obj/item/grenade/homemade/firebomb = 1, - /obj/item/ammo_casing/a22 = 5 - ) + +/datum/crafting_recipe/explosive/shrapnelmine + name = "Shrapnel Mine" + result = /obj/item/mine/shrapnel/random + reqs = list(/obj/item/stack/sheet/metal = 10, + /obj/item/stack/crafting/metalparts = 2, + /obj/item/stack/crafting/electronicparts = 1, + /obj/item/stack/ore/blackpowder = 1, + /obj/item/assembly/prox_sensor = 1, + /obj/item/stack/cable_coil = 5) + time = 15 + category = CAT_EXPLOSIVE + always_available = FALSE + +/datum/crafting_recipe/explosive/explomine + name = "High-Explosive Mine" + result = /obj/item/mine/explosive/random + reqs = list(/obj/item/stack/sheet/metal = 10, + /obj/item/stack/crafting/metalparts = 2, + /obj/item/stack/crafting/goodparts = 1, + /obj/item/stack/crafting/electronicparts = 1, + /obj/item/stack/ore/blackpowder = 2, + /obj/item/assembly/prox_sensor = 1, + /obj/item/stack/cable_coil = 5 + ) + time = 15 + category = CAT_EXPLOSIVE + always_available = FALSE + +/datum/crafting_recipe/explosive/stingmine + name = "Stingball Mine" + result = /obj/item/mine/shrapnel/sting/random + reqs = list(/obj/item/stack/sheet/metal = 5, + /obj/item/stack/sheet/plastic = 1, + /obj/item/stack/crafting/metalparts = 2, + /obj/item/stack/crafting/electronicparts = 1, + /obj/item/stack/ore/blackpowder = 1, + /obj/item/assembly/prox_sensor = 1, + /obj/item/stack/cable_coil = 5 + ) time = 15 category = CAT_EXPLOSIVE always_available = FALSE +/datum/crafting_recipe/explosive/pulsemine + name = "Pulse Mine" + result = /obj/item/mine/emp/random + reqs = list(/obj/item/stack/sheet/metal = 10, + /obj/item/stack/crafting/metalparts = 3, + /obj/item/stack/crafting/goodparts = 1, + /obj/item/stack/crafting/electronicparts = 5, + /obj/item/assembly/prox_sensor = 1, + /datum/reagent/iron = 30, + /datum/reagent/radium = 30, + /obj/item/stack/cable_coil = 30 + ) + time = 15 + category = CAT_EXPLOSIVE + always_available = FALSE + +/datum/crafting_recipe/explosive/stunmine + name = "Stun Mine" + result = /obj/item/mine/stun/random + reqs = list(/obj/item/stack/sheet/metal = 5, + /obj/item/stack/crafting/metalparts = 3, + /obj/item/stack/crafting/electronicparts = 5, + /obj/item/assembly/prox_sensor = 1, + /obj/item/stack/cable_coil = 5 + ) + time = 15 + category = CAT_EXPLOSIVE + always_available = FALSE + + /datum/crafting_recipe/lance name = "Explosive Spear (Grenade)" result = /obj/item/twohanded/spear @@ -75,7 +139,7 @@ /obj/item/stack/crafting/metalparts = 10, /obj/item/stack/crafting/goodparts = 3, /obj/item/stack/crafting/electronicparts = 5, - /obj/item/stack/ore/blackpowder = 4, + /obj/item/stack/ore/blackpowder = 4, /obj/item/assembly/prox_sensor = 1, /obj/item/stack/cable_coil = 5 ) @@ -94,7 +158,6 @@ /obj/item/stack/crafting/electronicparts = 5, /obj/item/stack/ore/blackpowder = 4, /obj/item/assembly/prox_sensor = 1, - /obj/item/crafting = 15, /obj/item/stack/cable_coil = 5 ) tools = list(TOOL_AWORKBENCH) @@ -112,7 +175,6 @@ /obj/item/stack/crafting/electronicparts = 5, /obj/item/stack/ore/blackpowder = 10, /obj/item/assembly/prox_sensor = 1, - /obj/item/crafting = 7, /datum/reagent/napalm = 100, /obj/item/stack/cable_coil = 5 ) @@ -146,7 +208,6 @@ /obj/item/stack/crafting/goodparts = 3, /obj/item/stack/crafting/electronicparts = 30, /obj/item/stack/ore/blackpowder = 4, - /obj/item/crafting = 15, /obj/item/assembly/prox_sensor = 1, /obj/item/advanced_crafting_components/flux = 2, /obj/item/stack/sheet/mineral/uranium = 5, @@ -202,7 +263,6 @@ /obj/item/assembly/prox_sensor = 1, /datum/reagent/iron = 50, /datum/reagent/radium = 50, - /obj/item/crafting = 10, /obj/item/stack/cable_coil = 200 ) tools = list(TOOL_AWORKBENCH) @@ -234,7 +294,6 @@ /obj/item/stack/crafting/electronicparts = 5, /obj/item/stack/sheet/mineral/titanium = 5, /obj/item/stack/ore/blackpowder = 5, - /obj/item/crafting = 5 ) tools = list(TOOL_AWORKBENCH) time = 5 @@ -249,7 +308,6 @@ /obj/item/stack/crafting/electronicparts = 5, /obj/item/stack/sheet/prewar = 5, /obj/item/stack/ore/blackpowder = 15, - /obj/item/crafting = 5 ) tools = list(TOOL_AWORKBENCH) time = 5 @@ -264,7 +322,6 @@ /obj/item/stack/crafting/electronicparts = 25, /obj/item/stack/sheet/prewar = 10, /obj/item/stack/ore/blackpowder = 15, - /obj/item/crafting = 10, /datum/reagent/phlogiston = 200 ) tools = list(TOOL_AWORKBENCH) diff --git a/code/datums/components/crafting/recipes/recipes_forge.dm b/code/datums/components/crafting/recipes/recipes_forge.dm index 7176d13971..5364907181 100644 --- a/code/datums/components/crafting/recipes/recipes_forge.dm +++ b/code/datums/components/crafting/recipes/recipes_forge.dm @@ -180,7 +180,7 @@ tools = list(TOOL_FORGE) category = CAT_WEAPONRY subcategory = CAT_MELEE - + /datum/crafting_recipe/melee/forged/throwing name = "Throwing Knife" result = /obj/item/melee/onehanded/knife/throwing @@ -293,7 +293,7 @@ subcategory = CAT_MELEE -/datum/crafting_recipe/spatha +/datum/crafting_recipe/scrapsabre name = "Scrap sabre" result = /obj/item/melee/onehanded/machete/scrapsabre reqs = list( @@ -305,7 +305,6 @@ tools = list(TOOL_FORGE) category = CAT_WEAPONRY subcategory = CAT_MELEE - always_available = FALSE // LEGION SPECIFIC @@ -468,6 +467,33 @@ category = CAT_WEAPONRY subcategory = CAT_MELEE +/datum/crafting_recipe/crusher + name = "Kinetic Crusher" + result = /obj/item/kinetic_crusher + time = 300 + reqs = list( + /obj/item/stack/sheet/metal = 25, + /obj/item/stack/crafting/metalparts = 2, + /obj/item/stack/crafting/electronicparts = 3 + ) + tools = list(TOOL_WORKBENCH, TOOL_WELDER) + category = CAT_WEAPONRY + subcategory = CAT_MELEE + +/datum/crafting_recipe/glaive + name = "Kinetic Glaive" + result = /obj/item/kinetic_crusher/glaive + time = 100 + reqs = list( + /obj/item/kinetic_crusher = 1, + /obj/item/stack/sheet/mineral/titanium = 1, + /obj/item/stack/crafting/electronicparts = 5 + ) + tools = list(TOOL_WORKBENCH, TOOL_MULTITOOL) + category = CAT_WEAPONRY + subcategory = CAT_MELEE + + /datum/crafting_recipe/tools/forged/fryingpan name = "Frying Pan" result = /obj/item/melee/onehanded/club/fryingpan diff --git a/code/datums/components/crafting/recipes/recipes_medicine.dm b/code/datums/components/crafting/recipes/recipes_medicine.dm index ab4bacbe92..e30a66750b 100644 --- a/code/datums/components/crafting/recipes/recipes_medicine.dm +++ b/code/datums/components/crafting/recipes/recipes_medicine.dm @@ -140,28 +140,24 @@ /datum/crafting_recipe/superstimpak name = "Super Stimpak" result = /obj/item/reagent_containers/hypospray/medipen/stimpak/super - reqs = list(/obj/item/reagent_containers/hypospray/medipen/stimpak = 1, + reqs = list(/datum/reagent/medicine/stimpak = 10, /obj/item/stack/sheet/leather = 2, - /obj/item/reagent_containers/food/snacks/grown/mutfruit = 2) + /obj/item/reagent_containers/food/snacks/grown/mutfruit = 2, + /obj/item/reagent_containers/syringe = 1) tools = list(TOOL_WORKBENCH) - blacklist = list(/obj/item/reagent_containers/hypospray/medipen/stimpak/imitation) time = 50 category = CAT_MEDICAL - blacklist = list(/obj/item/reagent_containers/hypospray/medipen/stimpak/super, - /obj/item/reagent_containers/hypospray/medipen/stimpak/custom) /datum/crafting_recipe/superstimpak5 name = "Super Stimpak (x5)" result = /obj/item/storage/box/medicine/stimpaks/superstimpaks5 - reqs = list(/obj/item/reagent_containers/hypospray/medipen/stimpak = 5, + reqs = list(/datum/reagent/medicine/stimpak = 50, /obj/item/stack/sheet/leather = 10, - /obj/item/reagent_containers/food/snacks/grown/mutfruit = 10) + /obj/item/reagent_containers/food/snacks/grown/mutfruit = 10, + /obj/item/reagent_containers/syringe = 5) tools = list(TOOL_WORKBENCH) - blacklist = list(/obj/item/reagent_containers/hypospray/medipen/stimpak/imitation) time = 60 category = CAT_MEDICAL - blacklist = list(/obj/item/reagent_containers/hypospray/medipen/stimpak/super, - /obj/item/reagent_containers/hypospray/medipen/stimpak/custom) /datum/crafting_recipe/salvage_stimpak name = "Salvage injector" diff --git a/code/datums/components/crafting/recipes/recipes_misc.dm b/code/datums/components/crafting/recipes/recipes_misc.dm index 44a1786c2c..c133b944d6 100644 --- a/code/datums/components/crafting/recipes/recipes_misc.dm +++ b/code/datums/components/crafting/recipes/recipes_misc.dm @@ -39,6 +39,16 @@ subcategory = CAT_MISCELLANEOUS category = CAT_MISC always_available = FALSE + +/datum/crafting_recipe/gate_khanate + name = "Khans steel-reinforced wood door" + result = /obj/machinery/door/unpowered/securedoor/khandoor + reqs = list(/obj/item/stack/sheet/metal = 5, + /obj/item/stack/sheet/mineral/wood = 10,) + time = 60 + subcategory = CAT_MISCELLANEOUS + category = CAT_MISC + always_available = FALSE /datum/crafting_recipe/plant name = "Potted plant" @@ -407,3 +417,47 @@ category = CAT_MISC */ + +/datum/crafting_recipe/rainbowbunchcrown + name = "Rainbow Flower Crown" + result = /obj/item/clothing/head/rainbowbunchcrown/ + time = 20 + reqs = list(/obj/item/reagent_containers/food/snacks/grown/rainbow_flower = 5, + /obj/item/stack/cable_coil = 3) + subcategory = CAT_MISCELLANEOUS + category = CAT_CLOTHING + +/datum/crafting_recipe/sunflowercrown + name = "Sunflower Crown" + result = /obj/item/clothing/head/sunflowercrown/ + time = 20 + reqs = list(/obj/item/grown/sunflower = 5, + /obj/item/stack/cable_coil = 3) + subcategory = CAT_MISCELLANEOUS + category = CAT_CLOTHING + +/datum/crafting_recipe/poppycrown + name = "Poppy Crown" + result = /obj/item/clothing/head/poppycrown/ + time = 20 + reqs = list(/obj/item/reagent_containers/food/snacks/grown/poppy = 5, + /obj/item/stack/cable_coil = 3) + subcategory = CAT_MISCELLANEOUS + category = CAT_CLOTHING + +/datum/crafting_recipe/lilycrown + name = "Lily Crown" + result = /obj/item/clothing/head/lilycrown/ + time = 20 + reqs = list(/obj/item/reagent_containers/food/snacks/grown/poppy/lily = 3, + /obj/item/stack/cable_coil = 3) + subcategory = CAT_MISCELLANEOUS + category = CAT_CLOTHING + +/datum/crafting_recipe/survivalkit + name = "survival kit" + result = /obj/item/storage/survivalkit_empty + time = 15 + reqs = list(/obj/item/stack/sheet/cloth = 5) + subcategory = CAT_MISCELLANEOUS + category = CAT_MISC diff --git a/code/datums/components/crafting/recipes/recipes_primal.dm b/code/datums/components/crafting/recipes/recipes_primal.dm index 9408611589..73ae505228 100644 --- a/code/datums/components/crafting/recipes/recipes_primal.dm +++ b/code/datums/components/crafting/recipes/recipes_primal.dm @@ -110,20 +110,16 @@ /obj/item/stack/sheet/mineral/bamboo = 5) result = /obj/structure/punji_sticks category = CAT_PRIMAL - always_available = FALSE /datum/crafting_recipe/tribal_pa name = "Tribal Salvaged Power Armor" time = 120 reqs = list( /obj/item/clothing/suit/armor/f13/power_armor/t45b = 1, - /obj/item/stack/sheet/cloth = 15, - /obj/item/stack/sheet/metal = 35, - /obj/item/stack/sheet/leather = 10, - /obj/item/stack/sheet/mineral/diamond = 5, - /obj/item/stack/sheet/bone = 20 + /obj/item/stack/sheet/sinew = 2, + /obj/item/stack/sheet/bone = 4 ) - result = /obj/item/clothing/suit/armor/f13/wayfarer/tribal_pa + result = /obj/item/clothing/suit/armor/f13/power_armor/t45b/tribal category = CAT_TRIBAL always_available = FALSE @@ -132,13 +128,10 @@ time = 120 reqs = list( /obj/item/clothing/head/helmet/f13/power_armor/t45b = 1, - /obj/item/stack/sheet/cloth = 10, - /obj/item/stack/sheet/metal = 15, - /obj/item/stack/sheet/leather = 20, - /obj/item/stack/sheet/mineral/diamond = 10, - /obj/item/stack/sheet/bone = 10 + /obj/item/stack/sheet/sinew = 1, + /obj/item/stack/sheet/bone = 2 ) - result = /obj/item/clothing/head/helmet/f13/wayfarer/pa_helmet + result = /obj/item/clothing/head/helmet/f13/power_armor/t45b/tribal category = CAT_TRIBAL always_available = FALSE @@ -147,11 +140,22 @@ time = 40 reqs = list( /obj/item/clothing/suit/armor/f13/combat = 1, - /obj/item/stack/sheet/cloth = 10, - /obj/item/stack/sheet/sinew = 5, - /obj/item/stack/sheet/bone = 5 + /obj/item/stack/sheet/sinew = 1, + /obj/item/stack/sheet/bone = 2 + ) + result = /obj/item/clothing/suit/armor/f13/combat/tribal + category = CAT_TRIBAL + always_available = FALSE + +/datum/crafting_recipe/tribal_r_combat_armor + name = "Tribal Reinforced Combat Armor" + time = 40 + reqs = list( + /obj/item/clothing/suit/armor/f13/combat/mk2 = 1, + /obj/item/stack/sheet/sinew = 1, + /obj/item/stack/sheet/bone = 2 ) - result = /obj/item/clothing/suit/armor/f13/tribal_combat_armor + result = /obj/item/clothing/suit/armor/f13/combat/mk2/tribal category = CAT_TRIBAL always_available = FALSE @@ -160,17 +164,27 @@ time = 40 reqs = list( /obj/item/clothing/head/helmet/f13/combat = 1, - /obj/item/stack/sheet/cloth = 5, - /obj/item/stack/sheet/sinew = 3, - /obj/item/stack/sheet/bone = 3 + /obj/item/stack/sheet/bone = 1 ) - result = /obj/item/clothing/head/helmet/f13/combat/wayfarer/tribe_helmet + result = /obj/item/clothing/head/helmet/f13/combat/tribal category = CAT_TRIBAL always_available = FALSE +/datum/crafting_recipe/tribal_r_combat_armor_helmet + name = "Tribal Reinforced Combat Helmet" + time = 40 + reqs = list( + /obj/item/clothing/head/helmet/f13/combat/mk2 = 1, + /obj/item/stack/sheet/bone = 1 + ) + result = /obj/item/clothing/head/helmet/f13/combat/mk2/tribal + category = CAT_TRIBAL + always_available = FALSE + + /datum/crafting_recipe/tribalwar/sturdybow name = "Sturdy Bow" - result = /obj/item/gun/ballistic/automatic/sturdybow + result = /obj/item/gun/ballistic/bow/sturdy time = 80 reqs = list(/obj/item/stack/sheet/mineral/wood = 5, /obj/item/stack/sheet/metal = 10, @@ -181,7 +195,7 @@ /datum/crafting_recipe/tribalwar/silverbow name = "Silver Bow" - result = /obj/item/gun/ballistic/automatic/silverbow + result = /obj/item/gun/ballistic/bow/silver time = 80 reqs = list(/obj/item/stack/sheet/mineral/silver = 10, /obj/item/stack/sheet/metal = 10, @@ -192,7 +206,7 @@ /datum/crafting_recipe/tribalwar/bonebow name = "Deathclaw Bow" - result = /obj/item/gun/ballistic/automatic/bonebow + result = /obj/item/gun/ballistic/bow/claw time = 80 reqs = list(/obj/item/stack/sheet/animalhide/deathclaw = 6, /obj/item/stack/sheet/bone = 10, @@ -203,7 +217,7 @@ /datum/crafting_recipe/tribalwar/tribe_bow name = "Short Bow" - result = /obj/item/gun/ballistic/automatic/tribalbow + result = /obj/item/gun/ballistic/bow/tribal time = 50 reqs = list(/obj/item/stack/sheet/mineral/wood = 10, /obj/item/stack/sheet/sinew = 3) @@ -212,7 +226,7 @@ /datum/crafting_recipe/tribalwar/crossbow name = "CrossBow" - result = /obj/item/gun/ballistic/automatic/crossbow + result = /obj/item/gun/ballistic/bow/crossbow time = 180 reqs = list(/obj/item/stack/sheet/metal = 10, /obj/item/stack/crafting/metalparts = 3, @@ -244,6 +258,15 @@ category = CAT_TRIBAL tools = list(TOOL_WORKBENCH) +/datum/crafting_recipe/tribalwar/arrowbronze + name = "Bronze Arrow" + result = /obj/item/ammo_casing/caseless/arrow/bronze + time = 30 + reqs = list(/obj/item/stack/sheet/bronze = 1, + /obj/item/stack/sheet/mineral/wood = 1) + category = CAT_TRIBAL + tools = list(TOOL_WORKBENCH) + /datum/crafting_recipe/tribalwar/arrowpoison name = "Poison Arrow" result = /obj/item/ammo_casing/caseless/arrow/poison @@ -259,8 +282,8 @@ name = "Bone Arrow" result = /obj/item/ammo_casing/caseless/arrow/bone time = 30 - reqs = list(/obj/item/stack/sheet/bone = 4, - /obj/item/stack/sheet/sinew = 1) + reqs = list(/obj/item/stack/sheet/bone = 1, + /obj/item/stack/sheet/mineral/wood = 1) category = CAT_TRIBAL tools = list(TOOL_WORKBENCH) always_available = FALSE @@ -274,7 +297,29 @@ /obj/item/stack/sheet/mineral/sandstone = 2) category = CAT_TRIBAL tools = list(TOOL_WORKBENCH) - always_available = FALSE + + +/datum/crafting_recipe/tribalwar/arrowwound + name = "Serrated Arrow" + result = /obj/item/ammo_casing/caseless/arrow/serrated + time = 10 + reqs = list( + /obj/item/stack/rods = 1, + /obj/item/stack/crafting/goodparts = 1 + ) + category = CAT_TRIBAL + tools = list(TOOL_WORKBENCH) + +/datum/crafting_recipe/tribalwar/arrowembed + name = "Broadhead Arrow" + result = /obj/item/ammo_casing/caseless/arrow/broadhead + time = 10 + reqs = list( + /obj/item/stack/rods = 1, + /obj/item/stack/crafting/goodparts = 1 + ) + category = CAT_TRIBAL + tools = list(TOOL_WORKBENCH) //MELEE @@ -411,3 +456,14 @@ category = CAT_TRIBAL tools = list(TOOL_WORKBENCH) always_available = FALSE + +/* tdo +/datum/crafting_recipe/beartrap + name = "Bear Trap" + result = /obj/item/restraints/legcuffs/beartrap + time = 25 + reqs = list(/obj/item/stack/crafting/metalparts = 2, + /obj/item/stack/sheet/metal = 1) + category = CAT_TRIBAL + tools = list(TOOL_WORKBENCH) +*/ diff --git a/code/datums/components/crafting/recipes/recipes_tailoring.dm b/code/datums/components/crafting/recipes/recipes_tailoring.dm index e6dcd1125a..d02387c9e0 100644 --- a/code/datums/components/crafting/recipes/recipes_tailoring.dm +++ b/code/datums/components/crafting/recipes/recipes_tailoring.dm @@ -99,6 +99,17 @@ category = CAT_CLOTHING subcategory = CAT_ARMOR +/datum/crafting_recipe/metalarmor/polish + name = "Polished Metal Armor" + result = /obj/item/clothing/suit/armor/f13/metalarmor/laserproof + reqs = list(/obj/item/clothing/suit/armor/f13/metalarmor = 1, + /obj/item/crafting/abraxo, + ) + tools = list(TOOL_WORKBENCH) + time = 60 + category = CAT_CLOTHING + subcategory = CAT_ARMOR + /datum/crafting_recipe/metalarmormk2 name = "Metal Armor, reinforced" result = /obj/item/clothing/suit/armor/f13/metalarmor/reinforced @@ -109,7 +120,7 @@ time = 120 category = CAT_CLOTHING subcategory = CAT_ARMOR - + datum/crafting_recipe/steelbib name = "Steel Breastplate" result = /obj/item/clothing/suit/armor/f13/metalarmor/steelbib @@ -121,7 +132,7 @@ datum/crafting_recipe/steelbib time = 120 category = CAT_CLOTHING subcategory = CAT_ARMOR - + datum/crafting_recipe/steelbib/heavy name = "Heavy Steel Breastplate" result = /obj/item/clothing/suit/armor/f13/metalarmor/steelbib/oasis @@ -131,7 +142,7 @@ datum/crafting_recipe/steelbib/heavy tools = list(TOOL_WORKBENCH) time = 120 category = CAT_CLOTHING - subcategory = CAT_ARMOR + subcategory = CAT_ARMOR always_available = FALSE /datum/crafting_recipe/metalmask @@ -321,7 +332,7 @@ datum/crafting_recipe/steelbib/heavy /datum/crafting_recipe/legionriothelmet_ncr name = "Shred veteran ranger helmet for armor plates" - result = /obj/item/stack/crafting/armor_plate/fifteen + result = list(/obj/item/stack/crafting/armor_plate/fifteen, /obj/item/clothing/glasses/night/polarizing) reqs = list(/obj/item/clothing/head/helmet/f13/ncr/rangercombat = 1,) time = 30 category = CAT_CLOTHING @@ -461,11 +472,11 @@ datum/crafting_recipe/steelbib/heavy time = 60 category = CAT_CLOTHING subcategory = CAT_ARMOR - + /datum/crafting_recipe/armyhelmetheavy name = "Heavy Steel Helmet" result = /obj/item/clothing/head/helmet/armyhelmet/heavy - reqs = list(/obj/item/clothing/head/helmet/armyhelmet, + reqs = list(/obj/item/clothing/head/helmet/armyhelmet = 1, /obj/item/stack/crafting/goodparts = 1, /obj/item/stack/sheet/prewar = 5) tools = list(TOOL_WORKBENCH) @@ -615,6 +626,17 @@ datum/crafting_recipe/steelbib/heavy subcategory = CAT_GENCLOTHES */ +/datum/crafting_recipe/combat_armor + name = "replace ballistic plates in combat armor with laser-proof plates" + result = /obj/item/clothing/suit/armor/f13/combat/laserproof + reqs = list(/obj/item/stack/sheet/mineral/titanium = 5, + /obj/item/clothing/suit/armor/f13/combat = 1, + /obj/item/stack/crafting/goodparts = 2) + tools = list(TOOL_AWORKBENCH) + time = 60 + category = CAT_CLOTHING + subcategory = CAT_GENCLOTHES + //CLOTHING// @@ -1277,5 +1299,3 @@ datum/crafting_recipe/steelbib/heavy category = CAT_CLOTHING subcategory = CAT_GENCLOTHES */ - - diff --git a/code/datums/components/crafting/recipes/recipes_tools.dm b/code/datums/components/crafting/recipes/recipes_tools.dm index bfb34b3a56..c4937363bc 100644 --- a/code/datums/components/crafting/recipes/recipes_tools.dm +++ b/code/datums/components/crafting/recipes/recipes_tools.dm @@ -120,3 +120,13 @@ tools = list(TOOL_WORKBENCH) category = CAT_CRAFTING subcategory = CAT_TOOL + +/datum/crafting_recipe/msreloader + name = "Makeshift Reloading Press" + result = /obj/item/crafting/reloader + time = 80 + reqs = list(/obj/item/stack/crafting/metalparts = 1, + /obj/item/stack/sheet/metal = 2, + /obj/item/stack/rods = 2) + category = CAT_CRAFTING + subcategory = CAT_TOOL diff --git a/code/datums/components/crafting/recipes/recipes_tribal.dm b/code/datums/components/crafting/recipes/recipes_tribal.dm index 3c3dd00f20..e59418df93 100644 --- a/code/datums/components/crafting/recipes/recipes_tribal.dm +++ b/code/datums/components/crafting/recipes/recipes_tribal.dm @@ -34,43 +34,20 @@ result = /obj/item/gun/syringe/blowgun time = 50 reqs = list(/obj/item/stack/sheet/mineral/bamboo = 10) - always_available = FALSE /datum/crafting_recipe/tribalwar/bow name = "String Wooden Bow" - result = /obj/item/gun/ballistic/bow + result = /obj/item/gun/ballistic/bow/tribal time = 65 reqs = list(/obj/item/stack/sheet/mineral/wood = 5, /obj/item/weaponcrafting/string = 1, /obj/item/melee/onehanded/knife ) -/datum/crafting_recipe/tribalwar/bone_bow - name = "Bone Bow" - result = /obj/item/gun/ballistic/bow/ashen - time = 120 // 80+120 = 200 - always_available = FALSE - reqs = list(/obj/item/stack/sheet/bone = 8, - /obj/item/stack/sheet/sinew = 4 - ) - -/datum/crafting_recipe/tribalwar/pipe_bow - name = "Pipe Bow" - result = /obj/item/gun/ballistic/bow/pipe - time = 80 - always_available = FALSE - reqs = list(/obj/item/stack/crafting/metalparts = 2, - /obj/item/crafting/duct_tape = 1, - /obj/item/stack/rods = 1, - /obj/item/weaponcrafting/string = 1 - ) - tools = list(TOOL_WORKBENCH) - /datum/crafting_recipe/tribalwar/xbow name = "Manual Crossbow" result = /obj/item/gun/ballistic/bow/xbow time = 120 - always_available = FALSE reqs = list(/obj/item/stack/crafting/metalparts = 5, /obj/item/stack/rods = 1, /obj/item/stack/sheet/mineral/wood = 15, @@ -215,8 +192,7 @@ reqs = list(/obj/item/stack/sheet/mineral/wood = 10, /obj/item/stack/sheet/cloth = 3) tools = list(TOOL_WORKBENCH) - category = CAT_PRIMAL - subcategory = CAT_TRIBAL + category = CAT_TRIBAL always_available = FALSE /*datum/crafting_recipe/voodoo @@ -436,3 +412,47 @@ reqs = list(/obj/item/stack/crafting/metalparts = 2, /obj/item/reagent_containers/food/snacks/meat/slab/bear = 2, /obj/item/clothing/head/bearpelt = 1) + +//Bone Dancers + +datum/crafting_recipe/tribalwar/bone + always_available = FALSE + +/datum/crafting_recipe/tribalwar/bone/lightarmour + name = "Bone Dancer Light Armor" + result = /obj/item/clothing/suit/f13/tribal/light/bone + time = 30 + reqs = list(/obj/item/stack/sheet/bone = 6) + +/datum/crafting_recipe/tribalwar/bone/armour + name = "Bone Dancer Reinforced Armor" + result = /obj/item/clothing/suit/f13/tribal/bone + time = 60 + reqs = list(/obj/item/stack/crafting/metalparts = 2, + /obj/item/stack/sheet/leather = 3, + /obj/item/stack/sheet/bone = 6) + +/datum/crafting_recipe/tribalwar/bone/heavyarmour + name = "Bone Dancer Heavy Armor" + result = /obj/item/clothing/suit/f13/tribal/heavy/bone + time = 60 + reqs = list(/obj/item/clothing/suit/f13/tribal/light/bone =1, + /obj/item/clothing/suit/f13/tribal/bone = 1, + /obj/item/stack/crafting/metalparts = 5, + /obj/item/stack/sheet/leather = 2, + /obj/item/stack/sheet/bone = 4) + +/datum/crafting_recipe/tribalwar/bone/garb + name = "Bone Dancer Garb" + result = /obj/item/clothing/under/f13/bone + time = 30 + reqs = list(/obj/item/stack/sheet/cloth = 3) + + +/datum/crafting_recipe/tribalwar/bone/helmet + name = "Bone Dancer helmet" + result = /obj/item/clothing/head/helmet/skull/bone + time = 30 + reqs = list(/obj/item/stack/sheet/cloth = 1, + /obj/item/stack/sheet/leather = 1, + /obj/item/clothing/head/helmet/skull = 1) diff --git a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm index b046ac08fa..becf97830b 100644 --- a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm +++ b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm @@ -30,6 +30,32 @@ category = CAT_WEAPONRY subcategory = CAT_MELEE + + +/datum/crafting_recipe/scraptower + name = "Scrap Towershield" + result = /obj/item/shield/riot/tower/scrap + reqs = list(/obj/item/stack/cable_coil = 30, + /obj/item/stack/sheet/metal = 35, + /obj/item/crafting/duct_tape = 1, + /obj/item/crafting/wonderglue = 1) + tools = list(TOOL_WELDER) + time = 100 + category = CAT_WEAPONRY + subcategory = CAT_MELEE + +/datum/crafting_recipe/steeltower + name = "Steel Towershield" + result = /obj/item/shield/riot/tower + reqs = list(/obj/item/stack/cable_coil = 30, + /obj/item/stack/sheet/metal = 15, + /obj/item/stack/crafting/metalparts = 5) + tools = list(TOOL_WELDER) + time = 100 + category = CAT_WEAPONRY + subcategory = CAT_MELEE + always_available = FALSE + /datum/crafting_recipe/buckler name = "Wooden Buckler" result = /obj/item/shield/riot/buckler @@ -96,9 +122,9 @@ subcategory = CAT_MELEE always_available = FALSE -///////////////////////// -///POWER CELL RECYCLING// -///////////////////////// +//////////////// +///POWER CELLS// +/////////////// /datum/crafting_recipe/ecrecharge name = "Small Energy Cell (recycle)" @@ -149,20 +175,12 @@ category = CAT_WEAPONRY subcategory = CAT_AMMO -/datum/crafting_recipe/gun/rockitlauncher - name = "Rock-It-Launcher" - result = /obj/item/rockitlauncher_pack - reqs = list(/obj/item/advanced_crafting_components/conductors = 1, - /obj/item/stack/crafting/electronicparts = 5, - /obj/item/stack/crafting/goodparts = 5, - /obj/item/stack/crafting/metalparts = 5, - /obj/item/stack/cable_coil = 5, - /obj/item/stack/sheet/plastic = 5, - /obj/item/stack/sheet/metal = 10) - tools = list(TOOL_WORKBENCH, TOOL_MULTITOOL, TOOL_SCREWDRIVER, TOOL_WRENCH) - time = 120 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON + + + +///////////////// +///ammo // +///////////////// /datum/crafting_recipe/flamerfuel name = "Flamethrower Fuel" @@ -174,11 +192,466 @@ category = CAT_WEAPONRY subcategory = CAT_AMMO +/datum/crafting_recipe/shotgunammo + name = "12g handloaded ammo bag" + result = /obj/item/ammo_box/shotgun/improvised + reqs = list(/obj/item/stack/sheet/metal = 5, + /datum/reagent/blackpowder = 25 + ) + tools = list(TOOL_MSRELOADER) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/shotgunammo3p + name = "12g 3p trainshot box" + result = /obj/item/ammo_box/shotgun/trainshot + reqs = list(/obj/item/stack/crafting/metalparts = 1, + /obj/item/stack/sheet/prewar = 2, + /obj/item/stack/sheet/metal = 1, + /datum/reagent/blackpowder = 50 + ) + tools = list(TOOL_AWORKBENCH) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + + +/datum/crafting_recipe/m22 + name = ".22 Long Rifle ammo box" + result = /obj/item/ammo_box/m22 + reqs = list(/obj/item/stack/crafting/metalparts = 1, + /obj/item/stack/sheet/metal = 1, + /datum/reagent/blackpowder = 30 + ) + tools = list(TOOL_MSRELOADER) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/m22shock + name = ".22 Long Rifle electroshock ammo box" + result = /obj/item/ammo_box/m22/shock + reqs = list(/obj/item/stack/crafting/metalparts = 1, + /obj/item/stack/cable_coil = 5, + /obj/item/stack/crafting/electronicparts = 2, + /obj/item/stack/sheet/metal = 1, + /datum/reagent/blackpowder = 50 + ) + tools = list(TOOL_MSRELOADER) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/c9mm + name = "9mm handloaded ammo bag" + result = /obj/item/ammo_box/c9mm/improv + reqs = list(/obj/item/stack/sheet/metal = 5, + /datum/reagent/blackpowder = 25 + ) + tools = list(TOOL_MSRELOADER) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/c9mmacid + name = "9mm acid-tipped ammo box" + result = /obj/item/ammo_box/c9mm/acid + reqs = list(/obj/item/stack/crafting/metalparts = 1, + /obj/item/stack/sheet/metal = 5, + /datum/reagent/toxin/acid = 20, + /datum/reagent/blackpowder = 50 + ) + tools = list(TOOL_AWORKBENCH) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/c9mmincin + name = "9mm incendiary-tipped ammo box" + result = /obj/item/ammo_box/c9mm/incendiary + reqs = list(/obj/item/stack/crafting/metalparts = 1, + /obj/item/stack/sheet/metal = 5, + /datum/reagent/fuel = 20, + /datum/reagent/blackpowder = 50 + ) + tools = list(TOOL_AWORKBENCH) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + + + +/datum/crafting_recipe/c38boxacid + name = ".38 acid-tipped ammo box" + result = /obj/item/ammo_box/c38box/acid + reqs = list(/obj/item/stack/crafting/metalparts = 1, + /obj/item/stack/sheet/metal = 5, + /datum/reagent/toxin/acid = 20, + /datum/reagent/blackpowder = 50 + ) + tools = list(TOOL_AWORKBENCH) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/c38boxincin + name = ".38 incendiary-tipped ammo box" + result = /obj/item/ammo_box/c38box/incendiary + reqs = list(/obj/item/stack/crafting/metalparts = 1, + /obj/item/stack/sheet/metal = 5, + /datum/reagent/fuel = 20, + /datum/reagent/blackpowder = 50 + ) + tools = list(TOOL_AWORKBENCH) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/c38box + name = ".38 handloaded ammo bag" + result = /obj/item/ammo_box/c38box/improvised + reqs = list(/obj/item/stack/sheet/metal = 5, + /datum/reagent/blackpowder = 25 + ) + tools = list(TOOL_MSRELOADER) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/c10mmincin + name = "10mm incendiary-tipped ammo box" + result = /obj/item/ammo_box/c10mm/fire + reqs = list(/obj/item/stack/crafting/metalparts = 1, + /obj/item/stack/sheet/metal = 6, + /datum/reagent/phosphorus = 20, + /datum/reagent/blackpowder = 50 + ) + tools = list(TOOL_AWORKBENCH) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/c10mm + name = "10mm handloaded ammo bag" + result = /obj/item/ammo_box/c10mm/improvised + reqs = list(/obj/item/stack/sheet/metal = 5, + /datum/reagent/blackpowder = 25 + ) + tools = list(TOOL_MSRELOADER) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + + +/datum/crafting_recipe/a357boxacid + name = ".357 acid-tipped ammo box" + result = /obj/item/ammo_box/a357box/acid + reqs = list(/obj/item/stack/crafting/metalparts = 1, + /obj/item/stack/sheet/metal = 5, + /datum/reagent/toxin/acid = 20, + /datum/reagent/blackpowder = 50 + ) + tools = list(TOOL_AWORKBENCH) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/a357boxincin + name = ".357 incendiary-tipped ammo box" + result = /obj/item/ammo_box/a357box/incendiary + reqs = list(/obj/item/stack/crafting/metalparts = 1, + /obj/item/stack/sheet/metal = 5, + /datum/reagent/phosphorus = 20, + /datum/reagent/blackpowder = 50 + ) + tools = list(TOOL_AWORKBENCH) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/a357boximprov + name = ".357 handloaded ammo bag" + result = /obj/item/ammo_box/a357box/improvised + reqs = list(/obj/item/stack/sheet/metal = 5, + /datum/reagent/blackpowder = 25 + ) + tools = list(TOOL_MSRELOADER) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/m44boxincin + name = ".44 incendiary-tipped ammo box" + result = /obj/item/ammo_box/m44box/incendiary + reqs = list(/obj/item/stack/crafting/metalparts = 1, + /obj/item/crafting/abraxo = 1, + /obj/item/stack/sheet/metal = 5, + /datum/reagent/phosphorus = 10, + /datum/reagent/fuel = 10, + /datum/reagent/blackpowder = 50 + ) + tools = list(TOOL_AWORKBENCH) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/m44box + name = ".44 handloaded ammo bag" + result = /obj/item/ammo_box/m44box/improvised + reqs = list(/obj/item/stack/sheet/metal = 6, + /datum/reagent/blackpowder = 25 + ) + tools = list(TOOL_MSRELOADER) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/c45incin + name = ".45 ACP incendiary-tipped ammo box" + result = /obj/item/ammo_box/c45/incendiary + reqs = list(/obj/item/stack/crafting/metalparts = 1, + /obj/item/crafting/abraxo = 1, + /obj/item/stack/sheet/metal = 5, + /datum/reagent/phosphorus = 10, + /datum/reagent/fuel = 10, + /datum/reagent/blackpowder = 50 + ) + tools = list(TOOL_AWORKBENCH) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/c45 + name = ".45 ACP handloaded ammo bag" + result = /obj/item/ammo_box/c45/improvised + reqs = list(/obj/item/stack/sheet/metal = 6, + /datum/reagent/blackpowder = 25 + ) + tools = list(TOOL_MSRELOADER) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/c4570boxacid + name = ".45-70 Gv'mt acid-tipped ammo box" + result = /obj/item/ammo_box/c4570box/acid + reqs = list(/obj/item/stack/crafting/metalparts = 2, + /obj/item/stack/sheet/metal = 2, + /datum/reagent/toxin/acid/fluacid = 20, + /datum/reagent/blackpowder = 50 + ) + tools = list(TOOL_AWORKBENCH) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/c4570boxheavy + name = ".45-70 Gv'mt ultradense ammo box" + result = /obj/item/ammo_box/c4570box/knockback + reqs = list(/obj/item/stack/crafting/metalparts = 2, + /obj/item/stack/sheet/mineral/titanium = 1, + /obj/item/stack/sheet/prewar = 2, + /datum/reagent/blackpowder = 50 + ) + tools = list(TOOL_AWORKBENCH) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/c4570boxheavy + name = ".45-70 Gv'mt ultradense ammo box" + result = /obj/item/ammo_box/c4570box/knockback + reqs = list(/obj/item/stack/crafting/metalparts = 1, + /obj/item/stack/sheet/mineral/titanium = 1, + /obj/item/stack/sheet/prewar = 1, + /datum/reagent/blackpowder = 50 + ) + tools = list(TOOL_AWORKBENCH) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/m5mmboxshock + name = "5mm ESD ammo box" + result = /obj/item/ammo_box/m5mmbox/shock + reqs = list(/obj/item/stack/crafting/metalparts = 1, + /obj/item/stack/sheet/mineral/titanium = 1, + /obj/item/stack/sheet/prewar = 1, + /obj/item/stack/cable_coil = 5, + /obj/item/stack/crafting/electronicparts = 2, + /datum/reagent/blackpowder = 50 + ) + tools = list(TOOL_AWORKBENCH) + time = 100 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/a556shrap + name = "5.56mm micro-shrapnel ammo box" + result = /obj/item/ammo_box/a556/microshrapnel + reqs = list(/obj/item/stack/crafting/metalparts = 1, + /obj/item/stack/sheet/prewar = 2, + /obj/item/stack/sheet/mineral/titanium = 1, + /datum/reagent/blackpowder = 50 + ) + tools = list(TOOL_AWORKBENCH) + time = 100 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/a556 + name = ".223 handloaded ammo bag" + result = /obj/item/ammo_box/a556/sport/improvised + reqs = list(/obj/item/stack/sheet/metal = 6, + /datum/reagent/blackpowder = 30 + ) + tools = list(TOOL_MSRELOADER) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/a762boxirr + name = "7.62 U-235 ammo box" + result = /obj/item/ammo_box/a762box/uraniumtipped + reqs = list(/obj/item/stack/crafting/metalparts = 1, + /obj/item/stack/sheet/mineral/titanium = 1, + /obj/item/stack/sheet/prewar = 1, + /obj/item/stack/sheet/mineral/uranium = 1, + /datum/reagent/blackpowder = 50 + ) + tools = list(TOOL_AWORKBENCH) + time = 100 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + + +/datum/crafting_recipe/a762boxshrap + name = "7.62mm micro-shrapnel ammo box" + result = /obj/item/ammo_box/a762box/microshrapnel + reqs = list(/obj/item/stack/crafting/metalparts = 1, + /obj/item/stack/sheet/prewar = 2, + /obj/item/stack/sheet/mineral/titanium = 1, + /datum/reagent/blackpowder = 50 + ) + tools = list(TOOL_AWORKBENCH) + time = 100 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/a308 + name = ".308 ammo box" + result = /obj/item/ammo_box/a308box + reqs = list(/obj/item/stack/sheet/metal = 7, + /datum/reagent/blackpowder = 25 + ) + tools = list(TOOL_MSRELOADER) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + + +/datum/crafting_recipe/a50MGboxuranium + name = "12.7mm U-235 ammo box" + result = /obj/item/ammo_box/a50MGbox/uraniumtipped + reqs = list(/obj/item/stack/crafting/metalparts = 1, + /obj/item/stack/sheet/mineral/titanium = 2, + /obj/item/stack/sheet/prewar = 2, + /obj/item/stack/sheet/mineral/uranium = 2, + /datum/reagent/blackpowder = 50 + ) + tools = list(TOOL_AWORKBENCH) + time = 100 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/a50MGboxcontaminated + name = "12.7mm contaminated ammo box" + result = /obj/item/ammo_box/a50MGbox/contam + reqs = list(/obj/item/stack/crafting/metalparts = 2, + /obj/item/stack/sheet/mineral/titanium = 2, + /obj/item/stack/sheet/prewar = 2, + /datum/reagent/toxin/formaldehyde = 25, + /datum/reagent/blackpowder = 50 + ) + tools = list(TOOL_AWORKBENCH) + time = 100 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + + +/datum/crafting_recipe/m14mmboxcontaminated + name = "14mm contaminated ammo box" + result = /obj/item/ammo_box/m14mm/contam + reqs = list(/obj/item/stack/crafting/metalparts = 1, + /obj/item/stack/sheet/mineral/titanium = 2, + /obj/item/stack/sheet/prewar = 2, + /datum/reagent/toxin/formaldehyde = 30, + /datum/reagent/blackpowder = 50 + ) + tools = list(TOOL_AWORKBENCH) + time = 100 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/m14mmboxuranium + name = "14mm uranium-tipped ammo box" + result = /obj/item/ammo_box/m14mm/uraniumtipped + reqs = list(/obj/item/stack/crafting/metalparts = 1, + /obj/item/stack/sheet/mineral/titanium = 1, + /obj/item/stack/sheet/mineral/uranium = 1, + /datum/reagent/blackpowder = 50 + ) + tools = list(TOOL_AWORKBENCH) + time = 100 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + +/datum/crafting_recipe/p14mm + name = "14mm handloaded ammo bag" + result = /obj/item/ammo_box/m14mm/improv + reqs = list(/obj/item/stack/sheet/metal = 6, + /datum/reagent/blackpowder = 30 + ) + tools = list(TOOL_MSRELOADER) + time = 75 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + + + +/datum/crafting_recipe/m2mmblender + name = "2mm \"Blender\" magazine" + result = /obj/item/ammo_box/magazine/m2mm/blender + reqs = list(/obj/item/stack/crafting/metalparts = 2, + /obj/item/stack/sheet/prewar = 2, + /obj/item/stack/crafting/goodparts = 1, + /obj/item/stack/sheet/mineral/titanium = 1, + ) + tools = list(TOOL_AWORKBENCH) + time = 100 + category = CAT_WEAPONRY + subcategory = CAT_AMMO + ///////////////// ///GUN CRAFTING// ///////////////// +/datum/crafting_recipe/gun/rockitlauncher + name = "Rock-It-Launcher" + result = /obj/item/rockitlauncher_pack + reqs = list(/obj/item/advanced_crafting_components/conductors = 1, + /obj/item/stack/crafting/electronicparts = 5, + /obj/item/stack/crafting/goodparts = 5, + /obj/item/stack/crafting/metalparts = 5, + /obj/item/stack/cable_coil = 5, + /obj/item/stack/sheet/plastic = 5, + /obj/item/stack/sheet/metal = 10) + tools = list(TOOL_WORKBENCH, TOOL_MULTITOOL, TOOL_SCREWDRIVER, TOOL_WRENCH) + time = 120 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON //Hobo Guns /datum/crafting_recipe/gun/zipgun @@ -288,6 +761,25 @@ category = CAT_WEAPONRY subcategory = CAT_WEAPON +/datum/crafting_recipe/plasmasniper + name = "Plasma Cannon" + result = /obj/item/gun/energy/laser/plasma/sniper + reqs = list(/obj/item/gun/ballistic/rifle/hobo/plasmacaster = 1, + /obj/item/stack/crafting/electronicparts = 5, + /obj/item/stack/sheet/metal = 4, + /obj/item/stack/crafting/goodparts = 3, + /obj/item/advanced_crafting_components/assembly = 1, + /obj/item/advanced_crafting_components/alloys = 1, + /obj/item/advanced_crafting_components/conductors = 1, + /obj/item/advanced_crafting_components/flux = 2, + /obj/item/stack/sheet/mineral/titanium = 1, + /obj/item/attachments/scope = 1, + /obj/item/stack/cable_coil = 10) + tools = list(TOOL_WORKBENCH, TOOL_MULTITOOL, TOOL_WELDER, TOOL_SCREWDRIVER) + time = 150 + always_available = FALSE + category = CAT_WEAPONRY + subcategory = CAT_WEAPON //browning hi-power /datum/crafting_recipe/ninemil @@ -302,20 +794,6 @@ subcategory = CAT_WEAPON always_available = FALSE -//colt 6520 -/datum/crafting_recipe/colt6520 - name = "Colt 6520 Revolver" - result = /obj/item/gun/ballistic/revolver/colt6520 - reqs = list(/obj/item/stack/sheet/mineral/wood = 1, - /obj/item/stack/crafting/metalparts = 5, - /datum/reagent/blackpowder = 10, - /obj/item/stack/sheet/metal = 1) - tools = list(TOOL_WORKBENCH) - time = 120 - category = CAT_WEAPONRY - subcategory = CAT_WEAPON - always_available = FALSE - //m1911 /datum/crafting_recipe/m1911 name = "M1911" @@ -384,9 +862,25 @@ subcategory = CAT_WEAPON always_available = FALSE +//craftable psuedo-ratslayer +/datum/crafting_recipe/verminkiller + name = "Upgraded Varmint Rifle" + result = /obj/item/gun/ballistic/automatic/varmint/verminkiller + reqs = list(/obj/item/gun/ballistic/automatic/varmint = 1, + /obj/item/gun/ballistic/automatic/delisle = 1, //silencer + /obj/item/weaponcrafting/improvised_parts/trigger_assembly = 1, + /obj/item/advanced_crafting_components/lenses = 1, //scope + /obj/item/stack/crafting/goodparts = 2, + /obj/item/stack/sheet/plastic = 2, + /obj/item/stack/sheet/metal = 10) + tools = list(TOOL_WORKBENCH) + time = 300 //30 sec + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + /datum/crafting_recipe/policerifle name = "Police Rifle" - result = /obj/item/gun/ballistic/automatic/marksman/policerifle + result = /obj/item/gun/ballistic/automatic/assault_carbine/policerifle reqs = list(/obj/item/stack/sheet/metal = 5, /obj/item/advanced_crafting_components/receiver = 1, /obj/item/stack/crafting/metalparts = 2, @@ -1001,6 +1495,21 @@ subcategory = CAT_WEAPON always_available = FALSE +//wattz 2000e +/datum/crafting_recipe/wattz2ke + name = "Wattz 2000 Laser Rifle Ext. Capacity" + result = /obj/item/gun/energy/laser/wattz2k/extended + reqs = list(/obj/item/gun/energy/laser/wattz2k = 1, + /obj/item/advanced_crafting_components/alloys = 2, + /obj/item/stock_parts/capacitor/adv = 1, + /obj/item/stack/crafting/electronicparts = 3 + ) + tools = list(TOOL_AWORKBENCH) + time = 120 + category = CAT_WEAPONRY + subcategory = CAT_WEAPON + always_available = FALSE + //magneto /datum/crafting_recipe/magnetowattz name = "Wattz 1000 Magneto-laser Pistol" diff --git a/code/datums/components/pellet_cloud.dm b/code/datums/components/pellet_cloud.dm index b15fd2c8db..89381d633d 100644 --- a/code/datums/components/pellet_cloud.dm +++ b/code/datums/components/pellet_cloud.dm @@ -12,7 +12,7 @@ * -Directed: This means you're shooting multiple pellets, like buckshot. If an ammo casing is defined as having multiple pellets, it will automatically create a pellet cloud * and call COMSIG_PELLET_CLOUD_INIT (see [/obj/item/ammo_casing/proc/fire_casing]). Thus, the only projectiles fired will be the ones fired here. * The magnitude var controls how many pellets are created. - * -Circular: This results in a big spray of shrapnel flying all around the detonation point when the grenade fires COMSIG_GRENADE_PRIME or landmine triggers COMSIG_MINE_TRIGGERED. + * -Circular: This results in a big spray of shrapnel flying all around the detonation point when the grenade fires COMSIG_GRENADE_PRIME or landmine triggers COMSIG_ITEM_MINE_TRIGGERED. * The magnitude var controls how big the detonation radius is (the bigger the magnitude, the more shrapnel is created). Grenades can be covered with bodies to reduce shrapnel output. * * Once all of the fired projectiles either hit a target or disappear due to ranging out/whatever else, we resolve the list of all the things we hit and print aggregate messages so we get @@ -85,10 +85,10 @@ RegisterSignal(parent, COMSIG_GRENADE_ARMED, .proc/grenade_armed) RegisterSignal(parent, COMSIG_GRENADE_PRIME, .proc/create_blast_pellets) else if(islandmine(parent)) - RegisterSignal(parent, COMSIG_MINE_TRIGGERED, .proc/create_blast_pellets) + RegisterSignal(parent, COMSIG_ITEM_MINE_TRIGGERED, .proc/create_blast_pellets) /datum/component/pellet_cloud/UnregisterFromParent() - UnregisterSignal(parent, list(COMSIG_PARENT_PREQDELETED, COMSIG_PELLET_CLOUD_INIT, COMSIG_GRENADE_PRIME, COMSIG_GRENADE_ARMED, COMSIG_MOVABLE_MOVED, COMSIG_MOVABLE_UNCROSSED, COMSIG_MINE_TRIGGERED, COMSIG_ITEM_DROPPED)) + UnregisterSignal(parent, list(COMSIG_PARENT_PREQDELETED, COMSIG_PELLET_CLOUD_INIT, COMSIG_GRENADE_PRIME, COMSIG_GRENADE_ARMED, COMSIG_MOVABLE_MOVED, COMSIG_MOVABLE_UNCROSSED, COMSIG_ITEM_MINE_TRIGGERED, COMSIG_ITEM_DROPPED)) /** * create_casing_pellets() is for directed pellet clouds for ammo casings that have multiple pellets (buckshot and scatter lasers for instance) diff --git a/code/datums/components/storage/concrete/pockets.dm b/code/datums/components/storage/concrete/pockets.dm index f957362449..3e2d7b6c45 100644 --- a/code/datums/components/storage/concrete/pockets.dm +++ b/code/datums/components/storage/concrete/pockets.dm @@ -82,7 +82,7 @@ . = ..() can_hold = GLOB.storage_medical_can_hold - + /datum/component/storage/concrete/pockets/tiny max_items = 1 max_w_class = WEIGHT_CLASS_TINY @@ -208,7 +208,7 @@ GLOBAL_LIST_INIT(storage_shoes_can_hold, typecacheof(list( /obj/item/reagent_containers/dropper, /obj/item/screwdriver, /obj/item/weldingtool/mini, - /obj/item/pen, + /obj/item/pen, /obj/item/gun/ballistic/revolver/detective, /obj/item/gun/ballistic/revolver/hobo/knifegun, /obj/item/melee/onehanded/knife, @@ -232,6 +232,7 @@ GLOBAL_LIST_INIT(storage_holster_can_hold, typecacheof(list( /obj/item/ammo_box/a308, /obj/item/ammo_box/c4570, /obj/item/ammo_box/a50MG, + /obj/item/ammo_box/c45rev, /obj/item/gun/energy/laser/solar, /obj/item/gun/energy/laser/pistol, /obj/item/gun/energy/laser/plasma/pistol, @@ -269,7 +270,6 @@ GLOBAL_LIST_INIT(storage_holdout_can_hold, typecacheof(list( /obj/item/gun/ballistic/automatic/pistol/sig, /obj/item/gun/ballistic/revolver/detective, /obj/item/gun/ballistic/automatic/hobo/zipgun, - /obj/item/gun/ballistic/automatic/pistol/m1911/compact, /obj/item/gun/ballistic/automatic/pistol/pistol14/compact, /obj/item/gun/ballistic/revolver/police, /obj/item/gun/ballistic/revolver/colt357/lucky, diff --git a/code/datums/elements/embed.dm b/code/datums/elements/embed.dm index c5b224e1fb..d5417f1428 100644 --- a/code/datums/elements/embed.dm +++ b/code/datums/elements/embed.dm @@ -38,7 +38,10 @@ return ELEMENT_INCOMPATIBLE RegisterSignal(target, COMSIG_ELEMENT_ATTACH, .proc/severancePackage) - if(isitem(target)) + if(isprojectile(target)) + payload_type = projectile_payload + RegisterSignal(target, COMSIG_PROJECTILE_SELF_ON_HIT, .proc/checkEmbedProjectile) + else if(isitem(target)) RegisterSignal(target, COMSIG_MOVABLE_IMPACT_ZONE, .proc/checkEmbedMob) RegisterSignal(target, COMSIG_MOVABLE_IMPACT, .proc/checkEmbedOther) RegisterSignal(target, COMSIG_PARENT_EXAMINE, .proc/examined) @@ -58,17 +61,16 @@ src.pain_stam_pct = pain_stam_pct src.embed_chance_turf_mod = embed_chance_turf_mod initialized = TRUE - else - payload_type = projectile_payload - RegisterSignal(target, COMSIG_PROJECTILE_SELF_ON_HIT, .proc/checkEmbedProjectile) + /datum/element/embed/Detach(obj/target) . = ..() - if(isitem(target)) - UnregisterSignal(target, list(COMSIG_MOVABLE_IMPACT_ZONE, COMSIG_ELEMENT_ATTACH, COMSIG_MOVABLE_IMPACT, COMSIG_PARENT_EXAMINE, COMSIG_EMBED_TRY_FORCE, COMSIG_ITEM_DISABLE_EMBED)) - else + if(isprojectile(target)) UnregisterSignal(target, list(COMSIG_PROJECTILE_SELF_ON_HIT, COMSIG_ELEMENT_ATTACH)) + else + UnregisterSignal(target, list(COMSIG_MOVABLE_IMPACT_ZONE, COMSIG_ELEMENT_ATTACH, COMSIG_MOVABLE_IMPACT, COMSIG_PARENT_EXAMINE, COMSIG_EMBED_TRY_FORCE, COMSIG_ITEM_DISABLE_EMBED)) + /// Checking to see if we're gonna embed into a human diff --git a/code/datums/materials/basemats.dm b/code/datums/materials/basemats.dm index fd65425142..ce4ed118cc 100644 --- a/code/datums/materials/basemats.dm +++ b/code/datums/materials/basemats.dm @@ -161,6 +161,7 @@ Unless you know what you're doing, only use the first three numbers. They're in color = "#caccd9" strength_modifier = 0.85 sheet_type = /obj/item/stack/sheet/plastic + categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) value_per_unit = 0.0125 beauty_modifier = -0.01 armor_modifiers = list("melee" = 1.5, "bullet" = 1.1, "laser" = 0.3, "energy" = 0.5, "bomb" = 1, "bio" = 1, "rad" = 1, "fire" = 1.1, "acid" = 1) diff --git a/code/datums/mood_events/drug_events.dm b/code/datums/mood_events/drug_events.dm index a5d7dc631d..547d87059e 100644 --- a/code/datums/mood_events/drug_events.dm +++ b/code/datums/mood_events/drug_events.dm @@ -48,6 +48,10 @@ timeout = 300 //special_screen_obj = "mood_happiness_good" Originally in tg, but I personally think they look dumb +/datum/mood_event/nuka + description = "the whole world loves Nuka-cola" + mood_change = 2 + /datum/mood_event/happiness_drug_bad_od description = "NO! NO!! NO!!!\n" mood_change = -20 diff --git a/code/datums/traits/good.dm b/code/datums/traits/good.dm index 45a2fcef88..7cdc2c57de 100644 --- a/code/datums/traits/good.dm +++ b/code/datums/traits/good.dm @@ -50,6 +50,23 @@ REMOVE_TRAIT(H, TRAIT_TRIBAL, "Former Tribal") +/datum/quirk/tribespeak + name = "Tribal Language Comprehension" + desc = "You're somehow capable of understanding and speaking the common tribal languages in the area." + value = 1 + gain_text = "You remember the old ways of your tribe.." + lose_text = "You've forgotten the ways of your ancestors.." + + +/datum/quirk/tribespeak/add() + var/mob/living/carbon/human/H = quirk_holder + H.grant_language(/datum/language/tribal) + +/datum/quirk/tribespeak/remove() + var/mob/living/carbon/human/H = quirk_holder + H.remove_language(/datum/language/tribal) + + /datum/quirk/apathetic name = "Apathetic" desc = "You just don't care as much as other people. That's nice to have in a place like this, I guess." @@ -259,6 +276,28 @@ var/mob/living/carbon/human/H = quirk_holder H.update_sight() +/datum/quirk/nukalover + name = "Nuka Fiend" + desc = "You are a fan of America's most popular pre-war soft drink. Your body simply loves the sugary drink so much, it rejects healthier alternatives." + value = 2 + mob_trait = TRAIT_NUKA_LOVER + gain_text = "You want to buy the whole world a nuka-cola!" + lose_text = "What's the big deal about nuka-cola?" + medical_record_text = "Patient has an addiction to the soft drink Nuka-Cola. Somehow, their metabolism has adapted to the sugars and artifical flavorings." + +/datum/quirk/nukalover/add() + var/mob/living/carbon/human/H = quirk_holder + var/datum/species/species = H.dna.species + species.liked_food |= NUKA + species.disliked_food |= VEGETABLES + +/datum/quirk/nukalover/remove() + var/mob/living/carbon/human/H = quirk_holder + if(H) + var/datum/species/species = H.dna.species + species.liked_food = initial(species.liked_food) + species.disliked_food = initial(species.disliked_food) + /datum/quirk/trapper name = "Trapper" desc = "As an experienced hunter and trapper you know your way around butchering animals for their products, and are able to get twice the usable materials by eliminating waste." diff --git a/code/datums/wires/_wires.dm b/code/datums/wires/_wires.dm index 020c7c240d..5e370ae81e 100644 --- a/code/datums/wires/_wires.dm +++ b/code/datums/wires/_wires.dm @@ -32,6 +32,7 @@ // Prevents wires from showing up in station blueprints var/req_knowledge = INFINITY //wiring skill level on which the functions are revealed. var/req_skill = JOB_SKILL_BASIC //used in user's cutting/pulsing/mending speed calculations. + var/req_trait = TRAIT_WIREVISION //trait required to see all wires var/list/current_users //list of untrained people currently interacting with this set of wires. /datum/wires/New(atom/holder) @@ -261,7 +262,7 @@ var/reveal_wires = FALSE // Admin ghost can see a purpose of each wire. - if(IsAdminGhost(user) || user.mind.get_skill_level(/datum/skill/level/job/wiring) >= req_knowledge) + if(IsAdminGhost(user) || user.mind.get_skill_level(/datum/skill/level/job/wiring) >= req_knowledge || HAS_TRAIT(user, req_trait)) reveal_wires = TRUE // Same for anyone with an abductor multitool. diff --git a/code/datums/wires/explosive.dm b/code/datums/wires/explosive.dm index 6e3c5318bf..1ce5e50899 100644 --- a/code/datums/wires/explosive.dm +++ b/code/datums/wires/explosive.dm @@ -1,3 +1,6 @@ +/datum/wires/explosive + req_trait = TRAIT_EXPLOSIVE_CRAFTING + /datum/wires/explosive/New(atom/holder) add_duds(2) // In this case duds actually explode. ..() @@ -80,3 +83,45 @@ /datum/wires/explosive/gibtonite/explode() var/obj/item/gibtonite/P = holder P.GibtoniteReaction(null, 2) + +/datum/wires/explosive/mine + holder_type = /obj/item/mine + randomize = FALSE + req_skill = JOB_SKILL_UNTRAINED + +/datum/wires/explosive/mine/New(atom/holder) + wires = list( + WIRE_DISARM + ) + add_duds(2) // Duds also explode here. + ..() + +/datum/wires/explosive/mine/interactable(mob/user) + return TRUE + +/datum/wires/explosive/mine/explode() + var/obj/item/mine/P = holder + P.arm() + +/datum/wires/explosive/mine/on_cut(wire, mend) + var/obj/item/mine/P = holder + switch(wire) + if(WIRE_DISARM) // Disarm and untrap the box. + if(!mend) + P.armed = FALSE + P.anchored = FALSE + else + if(!mend) + P.arm() + +/datum/wires/explosive/mine/on_pulse(wire) + var/obj/item/mine/P = holder + switch(wire) + if(WIRE_DISARM) // Pulse to toggle + P.armed = FALSE + P.anchored = FALSE + else // Boom + P.arm() + +/datum/wires/explosive/mine/random + randomize = TRUE //be careful! diff --git a/code/datums/wounds/burns.dm b/code/datums/wounds/burns.dm index 7ac9c31790..2d95ce5d3c 100644 --- a/code/datums/wounds/burns.dm +++ b/code/datums/wounds/burns.dm @@ -278,7 +278,7 @@ status_effect_type = /datum/status_effect/wound/burn/severe treatable_by = list(/obj/item/flashlight/pen/paramedic, /obj/item/stack/medical/ointment, /obj/item/stack/medical/mesh) infestation_rate = 0.05 // appx 13 minutes to reach sepsis without any treatment - flesh_damage = 12.5 + flesh_damage = 10.5 scar_keyword = "burnsevere" /datum/wound/burn/critical diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 4d2b09d347..036338c3c4 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -97,9 +97,12 @@ var/image/onlineholder = hud_list[ONLINE_HUD] var/icon/I = icon(icon, icon_state, dir) onlineholder.pixel_y = I.Height() - world.icon_size + if(living_flags & HIDE_OFFLINE_INDICATOR) + onlineholder.icon_state = "none" + return if(!istype(src, /mob/living/carbon/human) && !client) onlineholder.icon_state = "none" - else if(istype(src, /mob/living/carbon/human) && !client || !key) + else if(istype(src, /mob/living/carbon/human) && !key) onlineholder.icon_state = "offline" else onlineholder.icon_state = "none" diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index a288fbd44d..f5cb884b12 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -447,6 +447,12 @@ stored_research = /datum/techweb/specialized/autounlocking/autolathe/public base_print_speed = 20 +/obj/machinery/autolathe/basic + name = "makeshift workshop" + desc = "It produces items using metal and glass. Only very simple tools and designs can be built with this." + circuit = /obj/item/circuitboard/machine/autolathe/basic + base_print_speed = 30 + /obj/machinery/autolathe/toy name = "autoylathe" desc = "It produces toys using plastic, metal and glass." diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 0d32f506cf..1a42691dba 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -69,8 +69,7 @@ // circuit board for it and make the new machine if(!circuit) var/list/gameodds = list(/obj/item/circuitboard/computer/arcade/battle = 33, - /obj/item/circuitboard/computer/arcade/orion_trail = 33, - /obj/item/circuitboard/computer/arcade/minesweeper = 34) + /obj/item/circuitboard/computer/arcade/orion_trail = 33) var/thegame = pickweight(gameodds) var/obj/item/circuitboard/CB = new thegame() var/obj/machinery/computer/arcade/A = new CB.build_path(loc, CB) diff --git a/code/game/machinery/computer/arcade/minesweeper.dm b/code/game/machinery/computer/arcade/minesweeper.dm deleted file mode 100644 index 9b0afa8447..0000000000 --- a/code/game/machinery/computer/arcade/minesweeper.dm +++ /dev/null @@ -1,420 +0,0 @@ -#define MINESWEEPER_GAME_MAIN_MENU 0 -#define MINESWEEPER_GAME_PLAYING 1 -#define MINESWEEPER_GAME_LOST 2 -#define MINESWEEPER_GAME_WON 3 -#define MINESWEEPERIMG(what) {""} //Basically bypassing asset.icon_tag() - -/obj/machinery/computer/arcade/minesweeper - name = "Minesweeper" - desc = "An arcade machine that generates grids. It seems that the machine sparks and screeches when a grid is generated, as if it cannot cope with the intensity of generating the grid." - icon_state = "arcade" - circuit = /obj/item/circuitboard/computer/arcade/minesweeper - var/area - var/difficulty = "" //To show what difficulty you are playing - var/flag_text = "" - var/flagging = FALSE - var/game_status = MINESWEEPER_GAME_MAIN_MENU - var/mine_limit = 0 - var/mine_placed = 0 - var/mine_sound = TRUE //So it doesn't get repeated when multiple mines are exposed - var/randomcolour = 1 - var/randomnumber = 1 //Random emagged game iteration number to be displayed, put here so it is persistent across one individual arcade machine - var/safe_squares_revealed - var/saved_web = "" //To display the web if you click on the arcade - var/win_condition - var/rows = 1 - var/columns = 1 - var/table[31][51] //Make the board boys, 30x50 board - var/spark_spam = FALSE - -/obj/machinery/computer/arcade/minesweeper/interact(mob/user) - var/emagged = CHECK_BITFIELD(obj_flags, EMAGGED) - var/dat - if(game_status == MINESWEEPER_GAME_MAIN_MENU) - dat += "Minesweeper
Minesweeper[emagged ? " EXTREME EDITION: Iteration #[randomnumber]" : ""]
" //Different colour mix for every random number made - dat += " [emagged ? "Explode in the game, explode in real life" : "Reveal all the squares without hitting a mine"]!
What difficulty do you want to play?



Easy (9x9 board, 10 mines)
Intermediate (16x16 board, 40 mines)
Hard (16x30 board, 99 mines)
Custom" - else - dat = saved_web - user = usr - - var/datum/asset/assets = get_asset_datum(/datum/asset/spritesheet/simple/minesweeper) - assets.send(user) - - user << browse(dat,"window=minesweeper,size=400x500") - add_fingerprint(user) - - . = ..() - -/obj/machinery/computer/arcade/minesweeper/proc/reset_spark_spam() - spark_spam = FALSE - -/obj/machinery/computer/arcade/minesweeper/Topic(href, href_list) - . = ..() - if(.) - return - - var/exploding_hell = FALSE //For emagged failures - var/reset_board = FALSE - var/mob/living/user = usr //To identify who the hell is using this window, this should also make things like aliens and monkeys able to use the machine!! - var/web_difficulty_menu = " Reveal all the squares without hitting a mine!
What difficulty do you want to play?



Easy (9x9 board, 10 mines)
Intermediate (16x16 board, 40 mines)
Hard (16x30 board, 99 mines)
Custom" - var/web = "Minesweeper
Minesweeper
" - var/static_web = "Minesweeper
Minesweeper
" //When we need to revert to the main menu we set web as this - web = static_web - - if(CHECK_BITFIELD(obj_flags, EMAGGED)) - web = "Minesweeper
Minesweeper EXTREME EDITION: Iteration #[randomnumber]
" //Different colour mix for every random number made - if(!spark_spam) - do_sparks(5, 1, src) - spark_spam = TRUE - addtimer(CALLBACK(src, .proc/reset_spark_spam), 30) - - - var/startup_sound = CHECK_BITFIELD(obj_flags, EMAGGED) ? 'sound/arcade/minesweeper_emag2.ogg' : 'sound/arcade/minesweeper_startup.ogg' - - if(href_list["Main_Menu"]) - game_status = MINESWEEPER_GAME_MAIN_MENU - mine_limit = 0 - rows = 0 - columns = 0 - mine_placed = 0 - if(href_list["Easy"]) - playsound(loc, startup_sound, 10, 0, extrarange = -3, falloff = 10) - flag_text = "OFF" - game_status = MINESWEEPER_GAME_PLAYING - reset_board = TRUE - difficulty = "Easy" - rows = 10 //9x9 board - columns = 10 - mine_limit = 10 - if(href_list["Intermediate"]) - playsound(loc, startup_sound, 10, 0, extrarange = -3, falloff = 10) - flag_text = "OFF" - game_status = MINESWEEPER_GAME_PLAYING - reset_board = TRUE - difficulty = "Intermediate" - rows = 17 //16x16 board - columns = 17 - mine_limit = 40 - if(href_list["Hard"]) - playsound(loc, startup_sound, 10, 0, extrarange = -3, falloff = 10) - flag_text = "OFF" - game_status = MINESWEEPER_GAME_PLAYING - reset_board = TRUE - difficulty = "Hard" - rows = 17 //16x30 board - columns = 31 - mine_limit = 99 - if(href_list["Custom"]) - if(custom_generation(usr)) - flag_text = "OFF" - game_status = MINESWEEPER_GAME_PLAYING - reset_board = TRUE - difficulty = "Custom" - playsound(loc, startup_sound, 10, 0, extrarange = -3, falloff = 10) - if(href_list["Flag"]) - playsound(loc, 'sound/arcade/minesweeper_boardpress.ogg', 50, 0, extrarange = -3, falloff = 10) - if(!flagging) - flagging = TRUE - flag_text = "ON" - else - flagging = FALSE - flag_text = "OFF" - - if(game_status == MINESWEEPER_GAME_MAIN_MENU) - if(CHECK_BITFIELD(obj_flags, EMAGGED)) - playsound(loc, 'sound/arcade/minesweeper_emag2.ogg', 10, 0, extrarange = -3, falloff = 10) - web += "Explode in the game, explode in real life!
What difficulty do you want to play?



Easy (9x9 board, 10 mines)
Intermediate (16x16 board, 40 mines)
Hard (16x30 board, 99 mines)
Custom" - else - playsound(loc, 'sound/arcade/minesweeper_startup.ogg', 10, 0, extrarange = -3, falloff = 10) - web += web_difficulty_menu - - if(game_status == MINESWEEPER_GAME_PLAYING) - mine_sound = TRUE - - area = (rows-1)*(columns-1) - - if(reset_board) - mine_placed = 0 - var/reset_everything = TRUE - make_mines(reset_everything) - - safe_squares_revealed = 0 - win_condition = area-mine_placed - - if(game_status != MINESWEEPER_GAME_MAIN_MENU) - for(var/y1=1;y1= 0) //Check that it's not already revealed, and stop flag removal if we're out of flag mode - table[y1][x1] += 10 - if(table[y1][x1] != 10) - playsound(loc, 'sound/arcade/minesweeper_boardpress.ogg', 50, 0, extrarange = -3, falloff = 10) - else - if(game_status != MINESWEEPER_GAME_LOST && game_status != MINESWEEPER_GAME_WON) - game_status = MINESWEEPER_GAME_LOST - if(CHECK_BITFIELD(obj_flags, EMAGGED) && !exploding_hell) - exploding_hell = TRUE - explode_EVERYTHING() - if(QDELETED(src)) - return - if(mine_sound) - switch(rand(1,3)) //Play every time a mine is hit - if(1) - playsound(loc, 'sound/arcade/minesweeper_explosion1.ogg', 50, 0, extrarange = -3, falloff = 10) - if(2) - playsound(loc, 'sound/arcade/minesweeper_explosion2.ogg', 50, 0, extrarange = -3, falloff = 10) - if(3) - playsound(loc, 'sound/arcade/minesweeper_explosion3.ogg', 50, 0, extrarange = -3, falloff = 10) - mine_sound = FALSE - else - playsound(loc, 'sound/arcade/minesweeper_boardpress.ogg', 50, 0, extrarange = -3, falloff = 10) - if(table[y1][x1] >= 0) //Check that it's not already flagged - table[y1][x1] -= 10 - else if(table[y1][x1] < 0) //If flagged, remove the flag - table[y1][x1] += 10 - if(href_list["same_board"]) //Reset the board... kinda - if(game_status != MINESWEEPER_GAME_PLAYING) - mine_sound = TRUE - game_status = MINESWEEPER_GAME_PLAYING - if(table[y1][x1] >= 10) //If revealed, become unrevealed! - if(mine_sound) - playsound(loc, 'sound/arcade/minesweeper_menuselect.ogg', 50, 0, extrarange = -3, falloff = 10) - mine_sound = FALSE - table[y1][x1] -= 10 - if(table[y1][x1] > 10 && !reset_board) - safe_squares_revealed += 1 - var/y2 = y1 - var/x2 = x1 - work_squares(y2, x2) //Work squares while in this loop so there's less load - reset_board = FALSE - - web += "" //Start setting up the html table - web += "" - for(var/y1=1;y1= win_condition && game_status == MINESWEEPER_GAME_PLAYING) - game_status = MINESWEEPER_GAME_WON - if(rows < 10 || columns < 10) //If less than easy difficulty - playsound(loc, 'sound/arcade/minesweeper_winfail.ogg', 10, 0, extrarange = -3, falloff = 10) - say("You cleared the board of all mines, but you picked too small of a board! Try again with at least a 9x9 board!") - else - playsound(loc, 'sound/arcade/minesweeper_win.ogg', 10, 0, extrarange = -3, falloff = 10) - say("You cleared the board of all mines! Congratulations!") - if(CHECK_BITFIELD(obj_flags, EMAGGED)) - var/itemname - switch(rand(1,3)) - if(1) - itemname = "a syndicate bomb beacon" - new /obj/item/sbeacondrop/bomb(loc) - if(2) - itemname = "a rocket launcher" - new /obj/item/gun/ballistic/rocketlauncher(loc) - new /obj/item/ammo_casing/caseless/rocket(loc) - new /obj/item/ammo_casing/caseless/rocket(loc) - new /obj/item/ammo_casing/caseless/rocket(loc) - if(3) - itemname = "two bags of c4" - new /obj/item/storage/backpack/duffelbag/syndie/c4(loc) - new /obj/item/storage/backpack/duffelbag/syndie/x4(loc) - message_admins("[key_name_admin(user)] won emagged Minesweeper and got [itemname]!") - visible_message("[src] dispenses [itemname]!", "You hear a chime and a clunk.") - DISABLE_BITFIELD(obj_flags, EMAGGED) - else - var/dope_prizes = (area >= 480) ? list(ARCADE_WEIGHT_RARE) : (area >= 256) ? list(ARCADE_WEIGHT_RARE, ARCADE_WEIGHT_TRICK) : null - prizevend(user, dope_prizes) - - if(game_status == MINESWEEPER_GAME_WON) - web += "[(rows < 10 || columns < 10) ? "You won, but your board was too small! Pick a bigger board next time!" : "Congratulations, you have won!"]
Want to play again?
Easy (9x9 board, 10 mines)
Intermediate (16x16 board, 40 mines)
Hard (16x30 board, 99 mines)
Custom

Play on the same board
Return to Main Menu
" - - if(game_status == MINESWEEPER_GAME_LOST) - web += "You have lost!
Try again?
Easy (9x9 board, 10 mines)
Intermediate (16x16 board, 40 mines)
Hard (16x30 board, 99 mines)
Custom

Play on the same board
Return to Main Menu
" - - if(game_status == MINESWEEPER_GAME_PLAYING) - web += "Return to Main Menu
" - web += "
Difficulty: [difficulty]
Mines: [mine_placed]
Rows: [rows-1]
Columns: [columns-1]
Flagging mode: [flag_text]
" - - web += "" - var/datum/asset/spritesheet/sheet = get_asset_datum(/datum/asset/spritesheet/simple/minesweeper) - saved_web = sheet.css_tag() - saved_web += web - updateDialog() - return - -/obj/machinery/computer/arcade/minesweeper/emag_act(mob/user) - . = ..() - if(CHECK_BITFIELD(obj_flags, EMAGGED)) - return - desc = "An arcade machine that generates grids. It's clunking and sparking everywhere, almost as if threatening to explode at any moment!" - do_sparks(5, 1, src) - randomnumber = rand(1,255) - randomcolour = rgb(randomnumber,randomnumber/2,randomnumber/3) - ENABLE_BITFIELD(obj_flags, EMAGGED) - if(game_status == MINESWEEPER_GAME_MAIN_MENU) - to_chat(user, "An ominous tune plays from the arcade's speakers!") - playsound(user, 'sound/arcade/minesweeper_emag1.ogg', 10, 0, extrarange = 3, falloff = 10) - else //Can't let you do that, star fox! - to_chat(user, "The machine buzzes and sparks... the game has been reset!") - playsound(user, 'sound/machines/buzz-sigh.ogg', 10, 0, extrarange = 3, falloff = 10) //Loud buzz - game_status = MINESWEEPER_GAME_MAIN_MENU - return TRUE - -/obj/machinery/computer/arcade/minesweeper/proc/custom_generation(mob/user) - playsound(loc, 'sound/arcade/minesweeper_menuselect.ogg', 10, 0, extrarange = -3, falloff = 10) //Entered into the menu so ping sound - var/new_rows = input(user, "How many rows do you want? (Minimum: 4, Maximum: 30)", "Minesweeper Rows") as null|num - if(!new_rows || !user.canUseTopic(src, !hasSiliconAccessInArea(user))) - return FALSE - new_rows = clamp(new_rows + 1, 4, 30) - playsound(loc, 'sound/arcade/minesweeper_menuselect.ogg', 10, 0, extrarange = -3, falloff = 10) - var/new_columns = input(user, "How many columns do you want? (Minimum: 4, Maximum: 50)", "Minesweeper Squares") as null|num - if(!new_columns || !user.canUseTopic(src, !hasSiliconAccessInArea(user))) - return FALSE - new_columns = clamp(new_columns + 1, 4, 50) - playsound(loc, 'sound/arcade/minesweeper_menuselect.ogg', 10, 0, extrarange = -3, falloff = 10) - var/grid_area = (new_rows - 1) * (new_columns - 1) - var/lower_limit = round(grid_area*0.156) - var/upper_limit = round(grid_area*0.85) - var/new_mine_limit = input(user, "How many mines do you want? (Minimum: [lower_limit], Maximum: [upper_limit])", "Minesweeper Mines") as null|num - if(!new_mine_limit || !user.canUseTopic(src, !hasSiliconAccessInArea(user))) - return FALSE - playsound(loc, 'sound/arcade/minesweeper_menuselect.ogg', 10, 0, extrarange = -3, falloff = 10) - rows = new_rows - columns = new_columns - mine_limit = clamp(new_mine_limit, lower_limit, upper_limit) - return TRUE - -/obj/machinery/computer/arcade/minesweeper/proc/make_mines(reset_everything) - if(mine_placed < mine_limit) - for(var/y1=1;y1 0 && x3 > 0) - y2 = y3 - x2 = x3 - if(table[y2][x2] == 1) - for(y3=y2-1;y3= rows || y3 < 1) - continue - for(x3=x2-1;x3= columns || x3 < 1) - continue - if(table[y3][x3] == 0) - table[y2][x2] += 1 - if(table[y2][x2] == 11) - for(y3=y2-1;y3= rows || y3 < 1) - continue - for(x3=x2-1;x3= columns || x3 < 1) - continue - if(table[y3][x3] > 0 && table[y3][x3] < 10) - table[y3][x3] += 10 - work_squares(y3, x3) //Refresh so we check everything we might be missing - -/obj/machinery/computer/arcade/minesweeper/proc/explode_EVERYTHING() - var/mob/living/user = usr - to_chat(user, "You feel a great sense of dread wash over you, as if you just unleashed armageddon upon yourself!") - var/row_limit = rows-1 - var/column_limit = columns-1 - var/mine_limit_v2 = mine_limit - if(rows > 21) - row_limit = 20 - if(columns > 21) - column_limit = 20 - if(mine_limit > (rows*columns) * 0.25) - mine_limit_v2 = 24 - message_admins("[key_name_admin(user)] failed an emagged Minesweeper arcade and has unleashed an explosion armageddon of size [row_limit],[column_limit] around [ADMIN_LOOKUPFLW(user.loc)]!") - if(mine_limit_v2 < 10) - explosion(loc, 2, 5, 10, 15) //Thought you could survive by putting as few mines as possible, huh?? - else - explosion(loc, 1, 3, rand(1,5), rand(1,10)) - var/list/targets = list() - var/cur_y = y - round(row_limit * 0.5, 1) - var/starting_row = 1 - if(cur_y < 1) - starting_row -= cur_y - 1 - cur_y = 1 - var/start_x = x - round(column_limit * 0.5, 1) - var/starting_column = 1 - if(start_x < 1) - starting_column -= start_x - 1 - start_x = 1 - for(var/row in starting_row to length(table)) //translate the mines locations into actual turf coordinates. - if(!locate(cur_y, start_x, z)) - break - var/cur_x = start_x - for(var/column in starting_column to length(table[row])) - var/coord_value = table[row][column] - if(coord_value == 10 || coord_value == 0) //there is a mine in here. - var/turf/T = locate(cur_y, cur_x, z) - if(!T) - break - targets += T - cur_x++ - cur_y++ - var/num_explosions = 0 - for(var/T in shuffle(targets)) //Create a shitton of explosions in irl turfs if we lose, it will probably kill us - addtimer(CALLBACK(GLOBAL_PROC, /proc/explosion, T, 0, rand(1,2),rand(1,5),rand(3,10), FALSE), 15 * ++num_explosions) - if(num_explosions == mine_limit_v2) - return - -#undef MINESWEEPERIMG -#undef MINESWEEPER_GAME_MAIN_MENU -#undef MINESWEEPER_GAME_PLAYING -#undef MINESWEEPER_GAME_LOST -#undef MINESWEEPER_GAME_WON diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index d3b9725a6b..034f684939 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1383,7 +1383,7 @@ log_combat(user, src, message) //add_hiddenprint(user) -/obj/machinery/door/airlock/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) +/obj/machinery/door/airlock/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir, armour_penetration = 0) . = ..() if(obj_integrity < (0.75 * max_integrity)) update_icon() diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 7748d14e41..48ccf325f6 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -231,7 +231,7 @@ return 0 . = ..() -/obj/machinery/door/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) +/obj/machinery/door/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir, armour_penetration = 0) . = ..() if(. && obj_integrity > 0) if(damage_amount >= 10 && prob(30)) diff --git a/code/game/machinery/doors/unpowered.dm b/code/game/machinery/doors/unpowered.dm index f00b214b46..37c494d2b9 100644 --- a/code/game/machinery/doors/unpowered.dm +++ b/code/game/machinery/doors/unpowered.dm @@ -55,6 +55,11 @@ name = "Legion Castrum" req_access_txt = "123" +//khoor +/obj/machinery/door/unpowered/securedoor/khandoor + name = "khan door" + req_access_txt = "125" + // ------------------------------------ // NCR SECURE REINFORCED DOOR - tough airlock replacement diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index ab9c6c1bfd..4bb7c37874 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -598,8 +598,8 @@ obj/effect/landmark/start/f13/ncrlogisticsofficer /obj/effect/landmark/start/f13/orator name = "Legion Orator" -/obj/effect/landmark/start/f13/slavemaster - name = "Legion Slavemaster" +/obj/effect/landmark/start/f13/immune + name = "Legion Immune" /obj/effect/landmark/start/f13/priestess name = "Priestess of Mars" @@ -742,11 +742,10 @@ obj/effect/landmark/start/f13/ncrlogisticsofficer icon_state = "Lawyer" /obj/effect/landmark/start/f13/sheriff - name = "Sheriff" - icon_state = "Sheriff" + name = "Chief" /obj/effect/landmark/start/f13/deputy - name = "Deputy" + name = "Officer" /obj/effect/landmark/start/f13/farmer name = "Farmer" @@ -852,7 +851,7 @@ obj/effect/landmark/start/f13/ncrlogisticsofficer icon_state = "Tribal" /obj/effect/landmark/start/f13/chief - name = "Chief" + name = "Tribal Chief" icon_state = "Tribal" /obj/effect/landmark/start/f13/shaman diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index 3b76e8d0fd..2987b9b6f9 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -29,7 +29,7 @@ s.set_up(3, 1, src) s.start() mineEffect(victim) - SEND_SIGNAL(src, COMSIG_MINE_TRIGGERED) + SEND_SIGNAL(src, COMSIG_EFFECT_MINE_TRIGGERED) triggered = 1 qdel(src) @@ -37,73 +37,6 @@ . = ..() triggermine() -/obj/effect/mine/explosive - name = "explosive mine" - var/range_devastation = 0 - var/range_heavy = 1 - var/range_light = 2 - var/range_flash = 3 - -/obj/effect/mine/explosive/mineEffect(mob/victim) - explosion(loc, range_devastation, range_heavy, range_light, range_flash) - - -/obj/effect/mine/stun - name = "stun mine" - var/stun_time = 80 - -/obj/effect/mine/stun/mineEffect(mob/living/victim) - if(isliving(victim)) - victim.DefaultCombatKnockdown(stun_time) - -/obj/effect/mine/shrapnel - name = "shrapnel mine" - var/shrapnel_type = /obj/item/projectile/bullet/shrapnel - var/shrapnel_magnitude = 3 - -/obj/effect/mine/shrapnel/mineEffect(mob/victim) - AddComponent(/datum/component/pellet_cloud, projectile_type=shrapnel_type, magnitude=shrapnel_magnitude) - explosion(loc, 0, 0, 2, 2) - -/obj/effect/mine/shrapnel/sting - name = "stinger mine" - shrapnel_type = /obj/item/projectile/bullet/pellet/stingball - -/obj/effect/mine/kickmine - name = "kick mine" - -/obj/effect/mine/kickmine/mineEffect(mob/victim) - if(isliving(victim) && victim.client) - to_chat(victim, "You have been kicked FOR NO REISIN!") - qdel(victim.client) - - -/obj/effect/mine/gas - name = "oxygen mine" - var/gas_amount = 360 - var/gas_type = "o2" - -/obj/effect/mine/gas/mineEffect(mob/victim) - atmos_spawn_air("[gas_type]=[gas_amount]") - - -/obj/effect/mine/gas/plasma - name = "plasma mine" - gas_type = "plasma" - - -/obj/effect/mine/gas/n2o - name = "\improper N2O mine" - gas_type = "n2o" - -/* Some error -/obj/effect/mine/sound/mineEffect(mob/victim) - playsound(loc, sound, 100, 1) - -/obj/effect/mine/sound/bwoink - name = "bwoink mine" - sound = 'sound/effects/adminhelp.ogg' -*/ /obj/effect/mine/pickup name = "pickup" desc = "pick me up" diff --git a/code/game/objects/effects/spawners/f13lootdrop.dm b/code/game/objects/effects/spawners/f13lootdrop.dm index 3805260759..61781f3d20 100644 --- a/code/game/objects/effects/spawners/f13lootdrop.dm +++ b/code/game/objects/effects/spawners/f13lootdrop.dm @@ -225,7 +225,7 @@ name = "tier 1 armor" loot = list( /obj/item/clothing/suit/armor/f13/leather_jacket, - /obj/item/clothing/suit/armor/f13/kit, + /obj/item/clothing/suit/armor/f13/leatherarmor, /obj/effect/spawner/bundle/f13/armor/supafly, /obj/effect/spawner/bundle/f13/armor/sadist, /obj/effect/spawner/bundle/f13/armor/blastmaster, @@ -234,7 +234,8 @@ /obj/effect/spawner/bundle/f13/armor/psycho, /obj/item/clothing/suit/f13/duster, /obj/effect/spawner/bundle/f13/armor/combatduster, - /obj/item/clothing/suit/armor/f13/raider/iconoclast + /obj/item/clothing/suit/armor/f13/raider/iconoclast, + /obj/item/clothing/suit/armor/f13/plates, ) /obj/effect/spawner/bundle/f13/armor/supafly @@ -291,9 +292,11 @@ loot = list( /obj/effect/spawner/bundle/f13/armor/knight, /obj/effect/spawner/bundle/f13/armor/metal, - /obj/item/clothing/suit/armor/f13/leatherarmor, + /obj/effect/spawner/bundle/f13/armor/laserproofmetal, /obj/item/clothing/suit/armor/f13/leather_jacket/combat, - /obj/item/clothing/suit/armor/f13/leather_jacket/combat/coat + /obj/item/clothing/suit/armor/f13/leather_jacket/combat/coat, + /obj/item/clothing/suit/armor/vest, + /obj/item/clothing/suit/armor/vest/alt, ) /obj/effect/spawner/bundle/f13/armor/knight @@ -310,6 +313,14 @@ /obj/item/clothing/head/helmet/f13/metalmask ) +/obj/effect/spawner/bundle/f13/armor/laserproofmetal + name = "polsihed metal armor spawner" + items = list( + /obj/item/clothing/suit/armor/f13/metalarmor/laserproof, + /obj/item/clothing/head/helmet/f13/metalmask + ) + + /obj/effect/spawner/lootdrop/f13/armor/tier3 //TIER 3 ARMOR name = "tier 3 armor" loot = list( @@ -318,7 +329,8 @@ /obj/effect/spawner/bundle/f13/armor/combat, /obj/effect/spawner/bundle/f13/armor/bulletproof, /obj/effect/spawner/bundle/f13/armor/combat/dark, - /obj/effect/spawner/bundle/f13/armor/sulphite + /obj/effect/spawner/bundle/f13/armor/sulphite, + /obj/effect/spawner/bundle/f13/armor/vault, ) /obj/effect/spawner/bundle/f13/armor/metal/reinforced @@ -354,6 +366,7 @@ /obj/item/clothing/head/helmet/f13/combat/dark ) + /obj/effect/spawner/bundle/f13/armor/sulphite name = "sulphite raider armor spawner" items = list( @@ -384,6 +397,13 @@ /obj/item/clothing/head/helmet/f13/rangerbroken ) +/obj/effect/spawner/bundle/f13/armor/vault + name = "vault armor spawner" + items = list( + /obj/item/clothing/suit/armor/vest/big, + /obj/item/clothing/head/helmet/riot/vaultsec, + ) + /obj/effect/spawner/bundle/f13/armor/combat/mk2 name = "MkII combat armor spawner" items = list( @@ -542,6 +562,44 @@ /obj/item/reagent_containers/hypospray/medipen/medx, /obj/item/storage/pill_bottle/chem_tin/buffout ) + + +obj/effect/spawner/lootdrop/f13/medical/rnd/mid + name = "mid dungeon science loot" //to replace guns as treasure in slightly protected areas + lootcount = 1 + + loot = list( + /obj/item/screwdriver/power, + /obj/item/wrench/power, + /obj/item/storage/box/medicine/stimpaks/stimpaks5, + /obj/item/stack/sheet/prewar/twenty, + /obj/item/stack/sheet/plastic/twenty, + /obj/item/defibrillator/primitive, + /obj/item/reagent_containers/syringe/bluespace, + ) + + +obj/effect/spawner/lootdrop/f13/medical/rnd/good + name = "good dungeon science loot" //to replace guns as treasure in heavily guarded areas + lootcount = 1 + + loot = list( + /obj/item/reagent_containers/glass/beaker/meta = 5, + /obj/item/stack/sheet/mineral/abductor/ten = 5, + /obj/item/scalpel/advanced = 5, + /obj/item/surgical_drapes/advanced = 5, + /obj/effect/spawner/bundle/f13/needler = 5, + /obj/item/clothing/glasses/night = 5, + /obj/item/circuitboard/machine/chem_dispenser/apothecary = 5, + /obj/item/storage/box/stockparts/deluxe = 5, + /obj/item/storage/box/emps = 5, + /obj/item/organ/cyberimp/arm/janitor = 5, + /obj/item/reagent_containers/glass/bottle/fentanyl = 5, + /obj/item/reagent_containers/glass/bottle/frostoil = 5, + /obj/item/book/granter/trait/midsurgery = 5, + /obj/item/reagent_containers/glass/bottle/FEV_solution = 1, + ) + /* ------------------------------------------------ --------------WEAPON SPAWNERS------------------- ------------------------------------------------ */ @@ -570,15 +628,20 @@ /obj/effect/spawner/lootdrop/f13/weapon/melee/tier1 //TIER 1 MELEE WEAPON name = "tier 1 melee" lootcount = 1 - - loot = list( - /obj/item/crowbar, + loot = list(/obj/item/crowbar, /obj/item/extinguisher, /obj/item/hatchet, /obj/item/pickaxe/mini, /obj/item/wrench, /obj/item/kitchen/knife, /obj/item/kitchen/rollingpin, + /obj/item/weldingtool, + /obj/item/gavelhammer, + /obj/item/oar, + /obj/item/pickaxe, + /obj/item/shovel, + /obj/item/instrument/guitar, + /obj/item/surgicaldrill ) @@ -586,50 +649,40 @@ name = "tier 2 melee" lootcount = 1 - loot = list( - /obj/effect/spawner/bundle/f13/throwingknife3, - /obj/item/gavelhammer, - /obj/item/oar, - /obj/item/pickaxe, - /obj/item/shovel, + loot = list(/obj/effect/spawner/bundle/f13/throwingknife3, /obj/item/melee/onehanded/knife/switchblade, /obj/item/throwing_star/spear, - /obj/item/surgicaldrill, /obj/item/melee/onehanded/knife/hunting, /obj/item/melee/onehanded/knife/survival, /obj/item/melee/onehanded/knife/bone, - /obj/item/instrument/guitar, /obj/item/twohanded/spear/scrapspear, /obj/item/melee/onehanded/club, /obj/item/melee/onehanded/knife/cosmicdirty, + /obj/item/melee/onehanded/machete, /obj/item/melee/unarmed/brass, - /obj/item/melee/unarmed/brass/spiked, + /obj/item/melee/unarmed/brass/spiked ) /obj/effect/spawner/lootdrop/f13/weapon/melee/tier3 //TIER 3 MELEE WEAPON name = "tier 3 melee" lootcount = 1 - loot = list( - /obj/effect/spawner/bundle/f13/throwingknife3, - /obj/item/weldingtool, + loot = list(/obj/effect/spawner/bundle/f13/throwingknife3, /obj/item/twohanded/spear, /obj/item/twohanded/baseball, /obj/item/kitchen/knife/butcher, /obj/item/twohanded/baseball/golfclub, - /obj/item/melee/onehanded/machete, /obj/item/melee/onehanded/machete/forgedmachete, /obj/item/shield/riot/buckler, /obj/item/melee/unarmed/tigerclaw, - /obj/item/melee/unarmed/sappers, + /obj/item/melee/unarmed/sappers ) /obj/effect/spawner/lootdrop/f13/weapon/melee/tier4 //TIER 4 MELEE WEAPON name = "tier 4 melee" lootcount = 1 - loot = list( - /obj/item/twohanded/fireaxe, + loot = list(/obj/item/twohanded/fireaxe, /obj/item/twohanded/sledgehammer, /obj/item/twohanded/fireaxe/bmprsword, /obj/item/melee/unarmed/lacerator, @@ -637,25 +690,23 @@ /obj/item/melee/unarmed/punchdagger, /obj/item/twohanded/baseball/louisville, /obj/item/shield/riot, - /obj/effect/spawner/bundle/f13/throwingknife3 ) /obj/effect/spawner/lootdrop/f13/weapon/melee/tier5 //TIER 5 MELEE WEAPON name = "tier 5 melee" lootcount = 1 - loot = list( - /obj/item/twohanded/thermic_lance, + loot = list(/obj/item/twohanded/thermic_lance, /obj/item/twohanded/chainsaw, /obj/item/twohanded/sledgehammer/rockethammer, /obj/item/melee/powered/ripper, - /obj/item/melee/powerfist/f13, + /obj/item/melee/unarmed/powerfist, /obj/item/melee/transforming/energy/axe/protonaxe, /obj/item/gun/ballistic/revolver/ballisticfist, /obj/item/twohanded/sledgehammer/supersledge, /obj/item/shishkebabpack, /obj/item/melee/unarmed/deathclawgauntlet, - /obj/item/melee/powerfist/f13/moleminer + /obj/item/melee/unarmed/powerfist/moleminer ) /obj/effect/spawner/lootdrop/f13/weapon/melee/random @@ -669,14 +720,18 @@ /obj/effect/spawner/lootdrop/f13/weapon/melee/tier4 = 10 ) +/obj/effect/spawner/lootdrop/f13/weapon/melee/random_mid + name = "mid tier random melee loot" + loot = list( + /obj/effect/spawner/lootdrop/f13/weapon/melee/tier3 = 20, + /obj/effect/spawner/lootdrop/f13/weapon/melee/tier4 = 10 + ) + /obj/effect/spawner/lootdrop/f13/weapon/melee/random_high name = "high tier random melee loot" lootcount = 1 - - loot = list( - /obj/effect/spawner/lootdrop/f13/weapon/melee/tier3 = 45, - /obj/effect/spawner/lootdrop/f13/weapon/melee/tier4 = 35, - /obj/effect/spawner/lootdrop/f13/weapon/melee/tier5 = 20 + loot = list(/obj/effect/spawner/lootdrop/f13/weapon/melee/tier4 = 2, + /obj/effect/spawner/lootdrop/f13/weapon/melee/tier5 = 1 ) /* ------------------------------------------------ @@ -705,6 +760,13 @@ /obj/effect/spawner/bundle/f13/ionrifle = 5 ) +/obj/effect/spawner/lootdrop/f13/weapon/gun/energy/midhigh //overlaps with midtier + name = "mid-high tier energy gun" + loot = list(/obj/effect/spawner/bundle/f13/aer12, + /obj/effect/spawner/bundle/f13/wattz2kext, + /obj/effect/spawner/bundle/f13/plasmapistol, + /obj/effect/spawner/bundle/f13/ionrifle + ) /obj/effect/spawner/lootdrop/f13/weapon/gun/energy/high name = "high tier energy gun" loot = list(/obj/effect/spawner/bundle/f13/plasmarifle = 25, @@ -730,85 +792,93 @@ //Ballistic Weapon Spawners /obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/hobo name = "hobo tier ballistic gun" - loot = list(/obj/effect/spawner/bundle/f13/piperifle, + loot = list(/obj/effect/spawner/bundle/f13/pepperbox, /obj/effect/spawner/bundle/weapon/piperifle, /obj/effect/spawner/bundle/f13/zipgun, /obj/item/gun/ballistic/revolver/hobo/knifegun, /obj/item/gun/ballistic/revolver/hobo/knucklegun, /obj/effect/spawner/bundle/f13/autopipe, + /obj/effect/spawner/bundle/f13/pistol22, + /obj/item/gun/ballistic/revolver/winchesterrebored + ) + +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superlow + name = "very low tier non-hobo ballistic gun" + loot = list(/obj/effect/spawner/bundle/f13/ninemil, + /obj/effect/spawner/bundle/f13/sig, /obj/effect/spawner/bundle/f13/caravan_shotgun, /obj/effect/spawner/bundle/f13/mosin, /obj/effect/spawner/bundle/f13/remington, - /obj/item/gun/ballistic/revolver/winchesterrebored, /obj/effect/spawner/bundle/f13/widowmaker, /obj/effect/spawner/bundle/f13/varmint ) + /obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/low name = "low tier ballistic gun" loot = list(/obj/effect/spawner/bundle/f13/m1911, - /obj/effect/spawner/bundle/f13/m1911c, - /obj/effect/spawner/bundle/f13/ninemil, + /obj/effect/spawner/bundle/f13/thatgun, /obj/effect/spawner/bundle/f13/n99, - /obj/effect/spawner/bundle/f13/pistol22, - /obj/effect/spawner/bundle/f13/colt6520, /obj/effect/spawner/bundle/f13/colt357, - /obj/effect/spawner/bundle/f13/beretta, - /obj/effect/spawner/bundle/f13/mk23, - /obj/effect/spawner/bundle/f13/sig, /obj/effect/spawner/bundle/f13/huntingshotgun, /obj/effect/spawner/bundle/f13/police_pistol, /obj/effect/spawner/bundle/f13/guns/commando, /obj/effect/spawner/bundle/f13/m1carbine ) +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/lowmid + name = "low-mid tier ballistic gun" + loot = list(/obj/effect/spawner/bundle/f13/n99, + /obj/effect/spawner/bundle/f13/cowboy, + /obj/effect/spawner/bundle/f13/mk23, + /obj/effect/spawner/bundle/f13/hunting, + /obj/effect/spawner/lootdrop/f13/weapon/revolver44variants, + /obj/effect/spawner/bundle/f13/trenchshotgun, + /obj/effect/spawner/bundle/f13/m1carbine, + /obj/effect/spawner/bundle/f13/huntingshotgun, + /obj/effect/spawner/bundle/f13/revolver45 + ) + /obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/mid name = "mid tier ballistic gun" loot = list(/obj/effect/spawner/bundle/f13/trail, - /obj/effect/spawner/bundle/f13/cowboy, /obj/effect/spawner/bundle/f13/service, /obj/effect/spawner/bundle/f13/miniuzi, - /obj/effect/spawner/bundle/f13/smg10mm, - /obj/effect/spawner/bundle/f13/guns/rockwell, - /obj/effect/spawner/bundle/f13/mp5, - /obj/effect/spawner/bundle/f13/revolver44, - /obj/effect/spawner/bundle/f13/revolverm29, - /obj/effect/spawner/bundle/f13/revolverm29alt, - /obj/effect/spawner/bundle/f13/needler, - /obj/effect/spawner/bundle/f13/deagle, - /obj/effect/spawner/bundle/f13/automag, - /obj/effect/spawner/bundle/f13/beretta/select, - /obj/effect/spawner/bundle/f13/shotgunlever, /obj/effect/spawner/bundle/f13/auto5, - /obj/effect/spawner/bundle/f13/trenchshotgun, - /obj/effect/spawner/bundle/f13/revolver45, - /obj/effect/spawner/bundle/f13/thatgun, /obj/effect/spawner/bundle/f13/marksman, - /obj/effect/spawner/bundle/f13/hunting, /obj/effect/spawner/bundle/f13/m1garand, + /obj/effect/spawner/bundle/f13/deagle, + /obj/effect/spawner/bundle/f13/automag, /obj/item/gun/ballistic/automatic/smg/american180 ) +/obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/highmid + name = "high-mid tier ballistic gun" + loot = list(/obj/effect/spawner/bundle/f13/mp5, + /obj/effect/spawner/bundle/f13/smg10mm, + /obj/effect/spawner/bundle/f13/needler, + /obj/effect/spawner/bundle/f13/marksman, + /obj/effect/spawner/bundle/f13/guns/tommygun, + /obj/effect/spawner/bundle/f13/shotgunlever + ) + /obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/high name = "high tier ballistic gun" loot = list(/obj/effect/spawner/bundle/f13/assault_rifle = 20, /obj/effect/spawner/bundle/f13/r84 = 10, /obj/effect/spawner/bundle/f13/dkssniper = 15, - /obj/effect/spawner/bundle/f13/guns/tommygun = 15, /obj/effect/spawner/bundle/f13/pistol14 = 15, /obj/item/gun/ballistic/revolver/grenadelauncher = 5, + /obj/item/gun/ballistic/rocketlauncher = 5 ) /obj/effect/spawner/lootdrop/f13/weapon/gun/ballistic/superhigh name = "superhigh tier ballistic gun" - loot = list(/obj/effect/spawner/bundle/f13/citykiller = 12, - /obj/effect/spawner/bundle/f13/riotshotgun = 13, - /obj/effect/spawner/bundle/f13/bozar = 6, + loot = list(/obj/effect/spawner/bundle/f13/riotshotgun = 5, /obj/effect/spawner/bundle/f13/amr = 10, /obj/effect/spawner/bundle/f13/brushgun = 15, - /obj/effect/spawner/bundle/f13/rangemaster = 18, - /obj/effect/spawner/bundle/f13/gauss = 10, - /obj/effect/spawner/bundle/f13/fnfal = 6, + /obj/effect/spawner/bundle/f13/rangemaster = 15, + /obj/effect/spawner/bundle/f13/fnfal = 5, /obj/item/gun/ballistic/rocketlauncher = 10, ) @@ -827,6 +897,19 @@ /obj/item/gun/ballistic/automatic/pistol/pistol14/lildevil ) + +//Random-pick pools so that regular spawners aren't super diluted with shit like 3 .44 revolver variants + +/obj/effect/spawner/lootdrop/f13/weapon/revolver44variants + name = "random spawner for .44 revolvers/variants" + loot = list(/obj/effect/spawner/bundle/f13/revolverm29, + /obj/effect/spawner/bundle/f13/revolverm29alt, + /obj/effect/spawner/bundle/f13/revolver44, + /obj/effect/spawner/bundle/f13/revolverm29snub + ) + + + //Gun Bundles /obj/effect/spawner/bundle/f13/zipgun name = "zip gun spawner" @@ -881,14 +964,7 @@ name = "9mm pistol and ammo spawner" items = list( /obj/item/gun/ballistic/automatic/pistol/ninemil, - /obj/item/ammo_box/magazine/m9mm - ) - -/obj/effect/spawner/bundle/f13/colt6520 - name = "Colt 6520 and ammo spawner" - items = list( - /obj/item/gun/ballistic/revolver/colt6520, - /obj/item/ammo_box/l10mm + /obj/item/ammo_box/magazine/m9mmds ) /obj/effect/spawner/bundle/f13/varmint @@ -905,13 +981,6 @@ /obj/item/ammo_box/magazine/m22 ) -/obj/effect/spawner/bundle/f13/m1911c - name = "compact m1911 and ammo spawner" - items = list( - /obj/item/gun/ballistic/automatic/pistol/m1911/compact, - /obj/item/ammo_box/magazine/m45/ - ) - /obj/effect/spawner/bundle/f13/beretta name = "beretta pistol and ammo spawner" items = list( @@ -926,7 +995,7 @@ /obj/item/ammo_box/magazine/m9mm/ ) -/obj/effect/spawner/bundle/f13/piperifle +/obj/effect/spawner/bundle/f13/pepperbox name = "pepperbox gun spawner" items = list( /obj/item/gun/ballistic/revolver/hobo/pepperbox, @@ -961,6 +1030,14 @@ /obj/item/ammo_box/m44 ) +/obj/effect/spawner/bundle/f13/revolverm29snub + name = "m29 snub-nose revolver and ammo spawner" + items = list( + /obj/item/gun/ballistic/revolver/m29/snub, + /obj/item/ammo_box/m44/ + ) + + /obj/effect/spawner/bundle/f13/automag name = "automag and ammo spawner" items = list( @@ -1058,13 +1135,6 @@ /obj/item/ammo_box/magazine/uzim9mm/ ) -/obj/effect/spawner/bundle/f13/guns/rockwell - name = "rockwell gun and ammo spawner" - items = list( - /obj/item/gun/ballistic/automatic/smg/rockwell, - /obj/item/ammo_box/magazine/uzim9mm/rockwell/ - ) - /obj/effect/spawner/bundle/f13/smg10mm name = "10mm SMG and ammo spawner" items = list( @@ -1550,7 +1620,8 @@ /obj/item/grenade/plastic/c4, /obj/item/grenade/empgrenade, /obj/item/grenade/f13/radiation, - /obj/item/grenade/f13/frag + /obj/item/grenade/f13/frag, + /obj/effect/spawner/bundle/f13/grenadelauncher, ) /obj/effect/spawner/lootdrop/f13/bomb/top_tier lootcount = 1 @@ -1559,7 +1630,8 @@ /obj/item/grenade/f13/incendiary, /obj/item/grenade/f13/radiation, /obj/item/grenade/plastic/x4, - /obj/item/grenade/stingbang/shred = 1 + /obj/item/grenade/stingbang/shred = 1, + /obj/effect/spawner/bundle/f13/rocketlauncher, ) @@ -1738,7 +1810,7 @@ /obj/item/stack/crafting/electronicparts/three, /obj/item/stack/crafting/electronicparts/five, /obj/item/reagent_containers/glass/bottle/blackpowder, - /obj/item/crafting/timer, + /obj/item/assembly/timer, /obj/item/crafting/wonderglue, /obj/item/crafting/duct_tape) @@ -1928,12 +2000,25 @@ /obj/item/book/granter/trait/pa_wear = 1, /obj/item/book/granter/trait/explosives = 10, /obj/item/book/granter/trait/explosives_advanced = 1, - /obj/item/book/granter/crafting_recipe/gunsmith_one = 29, + /obj/item/book/granter/trait/rifleman = 5, /obj/item/book/granter/crafting_recipe/gunsmith_two = 20, /obj/item/book/granter/crafting_recipe/gunsmith_three = 10, /obj/item/book/granter/crafting_recipe/gunsmith_four = 10 ) +/obj/effect/spawner/lootdrop/f13/traitbooks/low + name = "low trait book spawner" + lootcount = 1 + loot = list(/obj/item/book/granter/trait/lowsurgery = 5, + /obj/item/book/granter/trait/chemistry = 1, + /obj/item/book/granter/trait/techno = 10, + /obj/item/book/granter/crafting_recipe/scav_one = 10, + /obj/item/book/granter/crafting_recipe/scav_two = 10, + /obj/item/book/granter/trait/explosives = 10, + /obj/item/book/granter/crafting_recipe/ODF = 10, + /obj/item/book/granter/action/drink_fling = 10, + /obj/item/book/granter/crafting_recipe/gunsmith_one = 10, + ) /obj/effect/spawner/lootdrop/f13/blueprintLow name = "gun comps spawner" icon_state = "blueprint_loot" @@ -1969,21 +2054,29 @@ /obj/item/attachments/auto_sear ) +/obj/effect/spawner/lootdrop/f13/blueprintLowMid + name = "blueprint-tier(Mid-Low) item spawner" + icon_state = "blueprint_loot" + lootcount = 1 + loot = list( + /obj/item/book/granter/crafting_recipe/blueprint/thatgun, + /obj/item/book/granter/crafting_recipe/blueprint/uzi, + /obj/item/book/granter/crafting_recipe/blueprint/greasegun, + /obj/item/book/granter/crafting_recipe/blueprint/commando, + /obj/item/book/granter/crafting_recipe/blueprint/m1carbine, + ) /obj/effect/spawner/lootdrop/f13/blueprintMid name = "blueprint-tier(Mid) item spawner" icon_state = "blueprint_loot" lootcount = 1 loot = list( - /obj/item/book/granter/crafting_recipe/blueprint/greasegun, /obj/item/book/granter/crafting_recipe/blueprint/r82, /obj/item/book/granter/crafting_recipe/blueprint/service, /obj/item/book/granter/crafting_recipe/blueprint/trailcarbine, - /obj/item/book/granter/crafting_recipe/blueprint/thatgun, - /obj/item/book/granter/crafting_recipe/blueprint/uzi, /obj/item/book/granter/crafting_recipe/blueprint/smg10mm, - /obj/item/book/granter/crafting_recipe/blueprint/m1carbine, + /obj/item/book/granter/crafting_recipe/blueprint/aep7, /obj/item/book/granter/crafting_recipe/blueprint/scoutcarbine, - /obj/item/book/granter/crafting_recipe/blueprint/commando, + /obj/item/book/granter/crafting_recipe/blueprint/sniper, ) /obj/effect/spawner/lootdrop/f13/blueprintHigh @@ -1993,12 +2086,9 @@ loot = list( /obj/item/book/granter/crafting_recipe/blueprint/leveraction, /obj/item/book/granter/crafting_recipe/blueprint/r91, - /obj/item/book/granter/crafting_recipe/blueprint/sniper, - /obj/item/book/granter/crafting_recipe/blueprint/riotshotgun, /obj/item/book/granter/crafting_recipe/blueprint/r84, /obj/item/book/granter/crafting_recipe/blueprint/deagle, /obj/item/book/granter/crafting_recipe/blueprint/marksman, - /obj/item/book/granter/crafting_recipe/blueprint/aep7, /obj/item/book/granter/crafting_recipe/blueprint/plasmapistol, /obj/item/book/granter/crafting_recipe/blueprint/brushgun, ) @@ -2008,8 +2098,8 @@ icon_state = "blueprint_loot" lootcount = 1 loot = list( - /obj/item/book/granter/crafting_recipe/blueprint/gauss, /obj/item/book/granter/crafting_recipe/blueprint/neostead, + /obj/item/book/granter/crafting_recipe/blueprint/riotshotgun, /obj/item/book/granter/crafting_recipe/blueprint/aer9, ) @@ -2018,6 +2108,7 @@ icon_state = "blueprint_loot" lootcount = 1 loot = list( + /obj/item/book/granter/crafting_recipe/blueprint/gauss, /obj/item/book/granter/crafting_recipe/blueprint/am_rifle, /obj/item/book/granter/crafting_recipe/blueprint/citykiller, /obj/item/book/granter/crafting_recipe/blueprint/rangemaster, @@ -2030,15 +2121,10 @@ lootcount = 3 lootdoubles = FALSE loot = list( - /obj/item/book/granter/crafting_recipe/blueprint/r91 , - /obj/item/book/granter/crafting_recipe/blueprint/r84 , - /obj/item/book/granter/crafting_recipe/blueprint/gauss = 3, - /obj/item/book/granter/crafting_recipe/blueprint/neostead = 3, - /obj/item/book/granter/crafting_recipe/blueprint/aer9 = 3, + /obj/item/book/granter/crafting_recipe/blueprint/r91 = 3, + /obj/item/book/granter/crafting_recipe/blueprint/r84 = 3, /obj/item/book/granter/crafting_recipe/blueprint/am_rifle = 3, - /obj/item/book/granter/crafting_recipe/blueprint/citykiller = 3, /obj/item/book/granter/crafting_recipe/blueprint/rangemaster = 3, - /obj/item/book/granter/crafting_recipe/blueprint/bozar = 3, /obj/item/advanced_crafting_components/flux, /obj/item/advanced_crafting_components/lenses, /obj/item/advanced_crafting_components/conductors, diff --git a/code/game/objects/effects/spawners/themed_loot_tables.dm b/code/game/objects/effects/spawners/themed_loot_tables.dm index 338d1cb336..7e2c6a5659 100644 --- a/code/game/objects/effects/spawners/themed_loot_tables.dm +++ b/code/game/objects/effects/spawners/themed_loot_tables.dm @@ -131,7 +131,6 @@ /obj/item/gun/ballistic/revolver/detective = 20, /obj/effect/spawner/bundle/f13/n99 = 11, /obj/effect/spawner/bundle/f13/pistol22 = 10, - /obj/effect/spawner/bundle/f13/m1911c = 10, /obj/item/gun/ballistic/revolver/m29/snub = 7, /obj/effect/spawner/bundle/f13/smg10mm = 5, /obj/item/gun/energy/laser/wattz = 5, @@ -153,13 +152,12 @@ /obj/item/gun/ballistic/revolver/hobo/piperifle = 10, /obj/effect/spawner/bundle/f13/zipgun = 8, /obj/item/gun/ballistic/revolver/hobo/pepperbox = 8, - /obj/item/gun/ballistic/revolver/colt6520 = 9, + /obj/item/gun/ballistic/automatic/pistol/n99 = 9, /obj/item/gun/ballistic/rifle/hunting/obrez = 5, /obj/item/gun/ballistic/revolver/colt357 = 4, /obj/item/gun/ballistic/revolver/winchesterrebored = 4, - /obj/item/gun/ballistic/automatic/pistol/m1911/no_mag = 4, + /obj/item/gun/ballistic/automatic/pistol/m1911 = 4, /obj/effect/spawner/bundle/f13/revolverm29 = 4, - /obj/effect/spawner/bundle/f13/guns/rockwell = 2, /obj/effect/spawner/bundle/weapon/worn10mmsmg = 1, /obj/effect/spawner/bundle/weapon/lasmusket = 1, /obj/item/melee/onehanded/machete = 5, @@ -322,7 +320,7 @@ /obj/item/gun/energy/laser/plasma/glock = 2, /obj/item/gun/energy/laser/plasma = 2, /obj/item/gun/energy/laser/plasma/scatter =1, - /obj/item/melee/powerfist/f13/moleminer = 10, + /obj/item/melee/unarmed/powerfist/moleminer = 10, /obj/item/melee/transforming/energy/axe/protonaxe = 10, /obj/item/gun/ballistic/revolver/ballisticfist = 5, ) @@ -390,7 +388,7 @@ /obj/item/reagent_containers/food/drinks/flask, /obj/item/reagent_containers/glass/bottle/blackpowder, /obj/item/stack/cable_coil, - /obj/item/crafting/timer, + /obj/item/assembly/timer, /obj/item/crafting/coffee_pot, /obj/item/assembly/igniter, /obj/item/ammo_box/jerrycan, diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index b58ffecb2c..b52090be8a 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -1112,7 +1112,8 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb jostle_chance = (!isnull(embedding["jostle_chance"]) ? embedding["jostle_chance"] : EMBEDDED_JOSTLE_CHANCE),\ jostle_pain_mult = (!isnull(embedding["jostle_pain_mult"]) ? embedding["jostle_pain_mult"] : EMBEDDED_JOSTLE_PAIN_MULTIPLIER),\ pain_stam_pct = (!isnull(embedding["pain_stam_pct"]) ? embedding["pain_stam_pct"] : EMBEDDED_PAIN_STAM_PCT),\ - embed_chance_turf_mod = (!isnull(embedding["embed_chance_turf_mod"]) ? embedding["embed_chance_turf_mod"] : EMBED_CHANCE_TURF_MOD)) + embed_chance_turf_mod = (!isnull(embedding["embed_chance_turf_mod"]) ? embedding["embed_chance_turf_mod"] : EMBED_CHANCE_TURF_MOD),\ + projectile_payload = embedding["projectile_payload"]) return TRUE /obj/item/proc/get_held_item_speechspans(mob/living/carbon/user) @@ -1137,4 +1138,3 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb played_sound = pick(equipsound) playsound(src, played_sound, volume, 1) - diff --git a/code/game/objects/items/binoculars.dm b/code/game/objects/items/binoculars.dm index a0f5cad62c..27d6cf93da 100644 --- a/code/game/objects/items/binoculars.dm +++ b/code/game/objects/items/binoculars.dm @@ -42,7 +42,10 @@ src.zoom_out_amt = 19 src.zoom_amt = 10 to_chat(user,"You see the horizon more clearly from this elevation.") - + else if(!is_above_level(T.z)) + src.zoom_out_amt = 6 + src.zoom_amt = 10 + switch(user.dir) if(NORTH) _y = zoom_amt diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index ebcf78d32b..c7abb6d35e 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -893,7 +893,7 @@ /obj/item/card/id/dogtag/deputy - name = "deputy's badge" + name = "officer's badge" desc = "A silver badge which shows honour and dedication." assignment = "badge" assignment = "Deputy" @@ -903,7 +903,7 @@ /obj/item/card/id/dogtag/deputy/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/card/id/dogtag/sheriff)) - var/newname = stripped_input(user, "Who do you want to designate as your deputy?", , "", MAX_NAME_LEN) + var/newname = stripped_input(user, "Who do you want to designate as your officer?", , "", MAX_NAME_LEN) if(newname) to_chat(user, "You scribble the [registered_name] for the name on the badge.") registered_name = newname @@ -911,8 +911,8 @@ return ..() /obj/item/card/id/dogtag/sheriff - name = "sheriff's badge" - desc = "A golden Sheriff's badge." + name = "chief's badge" + desc = "A golden Chief's badge." assignment = "badge" icon_state = "sheriff" item_state = "badge-sheriff" @@ -1051,12 +1051,12 @@ item_state = "card-id_leg" assignment = "prime medallion" -/obj/item/card/id/dogtag/legslavemaster - name = "slavemaster medallion" - desc = "A marked silver disc stamped with the Legion's Bull insignia and a whip. Worn by legionnaires on camp duty." +/obj/item/card/id/dogtag/legimmune + name = "immune medallion" + desc = "A marked silver disc stamped with the Legion's Bull insignia. Worn by legionnaires on camp duty." icon_state = "legionmedallionprime" item_state = "card-id_leg" - assignment = "slavemaster medallion" + assignment = "immune medallion" /obj/item/card/id/dogtag/legveteran name = "veteran medallion" diff --git a/code/game/objects/items/circuitboards/computer_circuitboards.dm b/code/game/objects/items/circuitboards/computer_circuitboards.dm index dc9e6a5900..019ab34d99 100644 --- a/code/game/objects/items/circuitboards/computer_circuitboards.dm +++ b/code/game/objects/items/circuitboards/computer_circuitboards.dm @@ -136,10 +136,6 @@ name = "Orion Trail (Computer Board)" build_path = /obj/machinery/computer/arcade/orion_trail -/obj/item/circuitboard/computer/arcade/minesweeper - name = "Minesweeper (Computer Board)" - build_path = /obj/machinery/computer/arcade/minesweeper - /obj/item/circuitboard/computer/arcade/amputation name = "Mediborg's Amputation Adventure (Computer Board)" build_path = /obj/machinery/computer/arcade/amputation diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index 404841715c..8dd05be624 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -50,6 +50,10 @@ /obj/item/circuitboard/machine/autolathe/secure name = "Secure Autolathe (Machine Board)" build_path = /obj/machinery/autolathe/secure + +/obj/item/circuitboard/machine/autolathe/basic + name = "Makeshift Workshop" + build_path = /obj/machinery/autolathe/basic /obj/item/circuitboard/machine/bloodbankgen name = "Blood Bank Generator (Machine Board)" diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index db18e2fde5..4ece058e90 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -69,6 +69,10 @@ var/pre_noise = FALSE var/post_noise = FALSE + var/precision_mode = FALSE + var/precision_x = 0 + var/precision_y = 0 + /obj/item/toy/crayon/proc/isValidSurface(surface) return istype(surface, /turf/open/floor) @@ -225,6 +229,13 @@ .["can_change_colour"] = can_change_colour .["current_colour"] = paint_color + .["precision_mode"] = precision_mode + .["x"] = precision_x + .["y"] = precision_y + .["min_offset"] = -world.icon_size/2 + .["max_offset"] = world.icon_size/2 + + /obj/item/toy/crayon/ui_act(action, list/params) if(..()) return @@ -253,6 +264,17 @@ . = TRUE paint_mode = PAINT_NORMAL drawtype = "a" + if("toggle_precision") + precision_mode = !precision_mode + . = TRUE + if("set_precision_x") + var/x = text2num(params["x"]) + precision_x = x + . = TRUE + if("set_precision_y") + var/y = text2num(params["y"]) + precision_y = y + . = TRUE update_icon() /obj/item/toy/crayon/proc/select_colour(mob/user) @@ -378,8 +400,12 @@ if(PAINT_NORMAL) var/obj/effect/decal/cleanable/crayon/C = new(target, paint_color, drawing, temp, graf_rot) C.add_hiddenprint(user) - C.pixel_x = clickx - C.pixel_y = clicky + if(precision_mode) + C.pixel_x = clamp(precision_x, -(world.icon_size/2), world.icon_size/2) + C.pixel_y = clamp(precision_y, -(world.icon_size/2), world.icon_size/2) + else + C.pixel_x = clickx + C.pixel_y = clicky affected_turfs += target if(PAINT_LARGE_HORIZONTAL) var/turf/left = locate(target.x-1,target.y,target.z) diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index ac8d3a8e7a..1450e43d93 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -239,7 +239,7 @@ item_state = "defibunit" cell = /obj/item/stock_parts/cell/high -/obj/item/defibrillator/primitive/Initialize() +/obj/item/defibrillator/primitive/Initialize() . = ..() paddles = make_paddlesprim() update_power() @@ -441,7 +441,7 @@ if((!req_defib && grab_ghost) || (req_defib && defib.grab_ghost)) H.notify_ghost_cloning("Your heart is being defibrillated!") H.grab_ghost() // Shove them back in their body. - else if(H.can_defib()) + else if(H.can_revive()) H.notify_ghost_cloning("Your heart is being defibrillated. Re-enter your corpse if you want to be revived!", source = src) do_help(H, user) diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index db94ea701f..78194cc2c9 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -32,11 +32,9 @@ if(!istype(SSticker.mode, /datum/game_mode/clockwork_cult)) invisibility = INVISIBILITY_OBSERVER alpha = 125 - emped = TRUE else invisibility = initial(invisibility) alpha = initial(alpha) - emped = FALSE ..() /obj/item/radio/intercom/Initialize(mapload, ndir, building) @@ -124,7 +122,7 @@ last_tick = world.timeofday var/area/A = get_area(src) - if(!A || emped) + if(!A) on = FALSE else on = A.powered(EQUIP) // set "on" to the power status @@ -150,13 +148,13 @@ /obj/item/radio/intercom/retro name = "vintage intercom" icon_state = "intercom_retro" - + /obj/item/radio/intercom/retro/process() if(((world.timeofday - last_tick) > 30) || ((world.timeofday - last_tick) < 0)) last_tick = world.timeofday var/area/A = get_area(src) - if(!A || emped) + if(!A) on = FALSE else on = A.powered(EQUIP) // set "on" to the power status @@ -169,30 +167,28 @@ /obj/item/radio/intercom/retro/kebob name = "Oasis intercom" freqlock = TRUE - frequency = 1369 + frequency = 1369 channels = list(RADIO_CHANNEL_TOWN = 1) /obj/item/radio/intercom/retro/kebob/mayor name = "Mayor's intercom" use_command = TRUE command = TRUE - + /obj/item/radio/intercom/retro/foa name = "Clinic intercom" freqlock = TRUE frequency = 1355 channels = list(RADIO_CHANNEL_MEDICAL = 1) - + /obj/item/radio/intercom/retro/pirate name = "Pirate Radio Broadcaster" desc = "A radio that has been hacked to send and recieve from any frequency." freerange = TRUE - canhear_range = 1 + canhear_range = 1 /obj/item/radio/intercom/retro/bear name = "NCR intercom" freqlock = TRUE frequency = 1363 channels = list(RADIO_CHANNEL_NCR = 1) - - diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index e709131080..869d04b7f5 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -17,7 +17,6 @@ var/on = TRUE var/frequency = FREQ_COMMON var/canhear_range = 3 // The range around the radio in which mobs can hear what it receives. - var/emped = 0 // Tracks the number of EMPs currently stacked. var/broadcasting = FALSE // Whether the radio will transmit dialogue it hears nearby. var/listening = TRUE // Whether the radio is currently receiving. @@ -399,22 +398,14 @@ . = ..() if (. & EMP_PROTECT_SELF) return - emped++ //There's been an EMP; better count it - var/curremp = emped //Remember which EMP this was - if (listening && ismob(loc)) // if the radio is turned on and on someone's person they notice - to_chat(loc, "\The [src] overloads.") - broadcasting = FALSE - listening = FALSE - for (var/ch_name in channels) - channels[ch_name] = 0 - on = FALSE - addtimer(CALLBACK(src, .proc/end_emp_effect, curremp), 2 SECONDS) - -/obj/item/radio/proc/end_emp_effect(curremp) - if(emped != curremp) //Don't fix it if it's been EMP'd again - return FALSE - emped = FALSE - return TRUE + if(prob(severity * 1.5)) + if(listening && ismob(loc)) // if the radio is turned on and on someone's person they notice + to_chat(loc, "\The [src] shorts out!") + broadcasting = FALSE + listening = FALSE + for (var/ch_name in channels) + channels[ch_name] = 0 + on = FALSE /////////////////////////////// //////////Borg Radios////////// @@ -487,9 +478,9 @@ qdel(implant) else return ..() - + /// Other Radios - + /obj/item/radio/tribal name = "primitive radio" icon_state = "radio" @@ -497,6 +488,3 @@ desc = "a homemade radio transceiver made out of transistors and wire." canhear_range = 2 w_class = WEIGHT_CLASS_NORMAL - - - diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm index 617cdca38f..0a0bd85bd2 100644 --- a/code/game/objects/items/granters.dm +++ b/code/game/objects/items/granters.dm @@ -603,7 +603,7 @@ icon_state = "gab2" oneuse = TRUE remarks = list("Always keep your gun well lubricated...", "Keep your barrel free of grime...", "Perfect fitment is the key to a good firearm...", "Maintain a proper trigger pull length...", "Keep your sights zeroed to proper range...") - crafting_recipe_types = list(/datum/crafting_recipe/n99, /datum/crafting_recipe/huntingrifle, /datum/crafting_recipe/m1911, /datum/crafting_recipe/varmintrifle, /datum/crafting_recipe/colt6520) + crafting_recipe_types = list(/datum/crafting_recipe/n99, /datum/crafting_recipe/huntingrifle, /datum/crafting_recipe/m1911, /datum/crafting_recipe/varmintrifle) /obj/item/book/granter/crafting_recipe/gunsmith_three name = "Guns and Bullets, Part 3" @@ -626,7 +626,7 @@ desc = "A popular post-war comic series detailing the trials and tribulations of scavengers and their tools." oneuse = TRUE remarks = list("And it was here that I stabbed a man over a desk fan...", "The paint was chipping, but that didn't matter when he lay dead...", "A tank here, a pipe there...", "A bit of duct tape wrapped around everything...", "My flamethrower spat fire! Wait, where are my eyebrows...") - crafting_recipe_types = list(/datum/crafting_recipe/chainsaw, /datum/crafting_recipe/tools/forged/entrenching_tool) + crafting_recipe_types = list(/datum/crafting_recipe/chainsaw, /datum/crafting_recipe/tools/forged/entrenching_tool, /datum/crafting_recipe/durathread_vest, /datum/crafting_recipe/steeltower) /obj/item/book/granter/crafting_recipe/scav_two name = "SCAV! Issue 2" @@ -810,7 +810,7 @@ /obj/item/book/granter/crafting_recipe/blueprint/trapper name = "guide to minelaying" icon_state = "blueprint2" - crafting_recipe_types = list(/datum/crafting_recipe/shrapnelmine) + crafting_recipe_types = list(/datum/crafting_recipe/explosive/shrapnelmine, /datum/crafting_recipe/explosive/explomine, /datum/crafting_recipe/explosive/stingmine, /datum/crafting_recipe/explosive/pulsemine, /datum/crafting_recipe/explosive/stunmine) /* /obj/item/book/granter/crafting_recipe/blueprint/fnfal @@ -844,13 +844,14 @@ icon_state = "book" remarks = list("Never make dreams...", "Don't pick from an empty list...", "Runtimes are not good for cardio...", "Report an issue to a nearby technician, and expect to be told to post it to their terminal...", "Probably don't adjust the default safety settings.", "Clean up any messes left in the pod before the next use.") crafting_recipe_types = list(/datum/crafting_recipe/set_vrboard/den) - + /obj/item/book/granter/crafting_recipe/ODF name = "Weapons of Yuma and the Oasis Defense Force" desc = "a book detailing weapons used in the region and by the local town, it has lithiographed pictures of hand-drawn schematics for each weapon type" oneuse = TRUE - crafting_recipe_types = list(/datum/crafting_recipe/policepistol, /datum/crafting_recipe/policerifle, /datum/crafting_recipe/steelbib/heavy, /datum/crafting_recipe/armyhelmetheavy, /datum/crafting_recipe/huntingshotgun) - remarks = list("Looks like Oasis hand-crafts replicas from a pre-war police armory", "Some of these weapons are more than 200 years old....", "Duct tape really can hold it together!", "So that is how you laminate armor sheets together", "Looks like you can beat metal into just the right shape to replace the bits") + crafting_recipe_types = list(/datum/crafting_recipe/policepistol, /datum/crafting_recipe/durathread_vest, /datum/crafting_recipe/policerifle, /datum/crafting_recipe/steelbib/heavy, /datum/crafting_recipe/armyhelmetheavy, /datum/crafting_recipe/huntingshotgun) + remarks = list("Looks like Oasis hand-crafts replicas from a pre-war police armory", "Some of these weapons are more than 200 years old....", "Duct tape really can hold it together!", "So that is how you laminate armor sheets together", "Looks like you can beat metal into just the right shape to replace the bits") + /obj/item/book/granter/trait/tagger name = "Picket Fences" @@ -911,9 +912,19 @@ oneuse = TRUE granted_trait = TRAIT_TECHNOPHREAK traitname = "craftsmanship" - crafting_recipe_types = list(/datum/crafting_recipe/tribalradio) + crafting_recipe_types = list(/datum/crafting_recipe/tribalradio, /datum/crafting_recipe/durathread_vest, /datum/crafting_recipe/plasmasniper) remarks = list("Troubleshooting is a systematic approach to problem solving, do not skip any steps in the process.", "Ensure you have all the required parts before you begin.", "Always wear personal protective equipment, electric shock can be fatal.", "Combustibles and sparks do not mix, store welding fuel in a safe location.", "Don't lose track of your tools, or you have a new problem to deal with.") +/obj/item/book/granter/trait/wirevision + name = "Popular Electronics" + desc = "An issue of Popular Electronics, dated January 1975. This one has a wiring guide for the Altair 8800 computer, and a few other projects to boot!" + oneuse = TRUE + granted_trait = TRAIT_WIREVISION + traitname = "wirevision" + remarks = list("Troubleshooting is a systematic approach to problem solving, do not skip any steps in the process.", "Ensure you have all the required parts before you begin.", "Don't lose track of your tools, or you have a new problem to deal with.", "Make sure you check the colouring of wires extremely carefully- you don't want to be mixing up yellow and lime, or purple and indigo!") + + + /obj/item/book/granter/trait/pa_wear name = "US Army: Mechanized Infantry Handbook" desc = "A battered olive-green handbook, detailing lessons to ancient mechanized US Army infantry units." @@ -938,7 +949,7 @@ traitname = "explosive crafting" remarks = list("If you want to get started making bombs, you're going to need a lot of igniters and black powder.", "Did a Follower write this book, or something?", "All thermite takes is some aluminum and iron.", "Coconut shells make acceptable grenade casings in a pinch.") crafting_recipe_types = list(/datum/crafting_recipe/frag_shrapnel, /datum/crafting_recipe/stinger, /datum/crafting_recipe/flashbang, -/datum/crafting_recipe/smokebomb, /datum/crafting_recipe/rocket_base, /datum/crafting_recipe/weakrocket, /datum/crafting_recipe/shrapnelmine) +/datum/crafting_recipe/smokebomb, /datum/crafting_recipe/rocket_base, /datum/crafting_recipe/weakrocket) /obj/item/book/granter/trait/explosives_advanced name = "Advanced Techniques for Winning at Postal Chess" @@ -948,7 +959,7 @@ traitname = "advanced explosive crafting" remarks = list("Is this actually a legal chess move...?", "If you hook electronic parts up to a flux capacitor-oh, that makes a lot of sense, actually.", "Radium? What would you use radium f-oh no.", "Why would anyone actually publish this?") crafting_recipe_types = list(/datum/crafting_recipe/incendiary, /datum/crafting_recipe/concussion, /datum/crafting_recipe/radgrenade, /datum/crafting_recipe/empgrenade, /datum/crafting_recipe/incendiaryrocket, /datum/crafting_recipe/strongrocket, /datum/crafting_recipe/frag_shrapnel, /datum/crafting_recipe/stinger, /datum/crafting_recipe/flashbang, -/datum/crafting_recipe/smokebomb, /datum/crafting_recipe/rocket_base, /datum/crafting_recipe/weakrocket, /datum/crafting_recipe/shrapnelmine) +/datum/crafting_recipe/smokebomb, /datum/crafting_recipe/rocket_base, /datum/crafting_recipe/weakrocket) /obj/item/book/granter/trait/gunslinger name = "Tycho: Life of a Lawman" @@ -1014,7 +1025,7 @@ if("Wasteland Survival Guide") granted_trait = TRAIT_HARD_YARDS traitname = "trekking" - remarks = list("Tribes and gangs often hide the best loot in the back room.", "Radiation is best avoided entirely, but it helps to carry spare rad-x.", "Whether ancient or recent, landmines are still a threat, and readers should look out for them.", "Injuries and open bleeding make it harder to travel, always carry spare medical supplies.", "Most animals are simple-minded, and can be led into easy lines of fire.") + remarks = list("Tribes and gangs often hide the best loot in the back room.", "Radiation is best avoided entirely, but it helps to carry spare rad-x.", "Whether ancient or recent, landmines are still a threat, and readers should look out for them. Their detonators can be removed with a screwdriver.", "Injuries and open bleeding make it harder to travel, always carry spare medical supplies.", "Most animals are simple-minded, and can be led into easy lines of fire.") if("First Aid Pamphlet") granted_trait = TRAIT_SURGERY_LOW traitname = "minor surgery" @@ -1027,7 +1038,7 @@ if("Dean's Electronics") granted_trait = TRAIT_TECHNOPHREAK traitname = "craftsmanship" - crafting_recipe_types = list(/datum/crafting_recipe/tribalradio) + crafting_recipe_types = list(/datum/crafting_recipe/tribalradio, /datum/crafting_recipe/durathread_vest, /datum/crafting_recipe/plasmasniper) remarks = list("Troubleshooting is a systematic approach to problem solving, do not skip any steps in the process.", "Ensure you have all the required parts before you begin.", "Always wear personal protective equipment, electric shock can be fatal.", "Combustibles and sparks do not mix, store welding fuel in a safe location.", "Don't lose track of your tools, or you have a new problem to deal with.") if("Grognak the Barbarian") granted_trait = TRAIT_BIG_LEAGUES @@ -1059,7 +1070,7 @@ if("Technophilia") granted_trait = TRAIT_TECHNOPHREAK traitname = "technology and crafting" - crafting_recipe_types = list(/datum/crafting_recipe/ninemil, /datum/crafting_recipe/huntingrifle, /datum/crafting_recipe/n99, /datum/crafting_recipe/huntingrifle, /datum/crafting_recipe/m1911, /datum/crafting_recipe/varmintrifle, /datum/crafting_recipe/colt6520, /datum/crafting_recipe/autoaxe, /datum/crafting_recipe/steelsaw, /datum/crafting_recipe/tools/forged/entrenching_tool, /datum/crafting_recipe/chainsaw) + crafting_recipe_types = list(/datum/crafting_recipe/ninemil, /datum/crafting_recipe/huntingrifle, /datum/crafting_recipe/n99, /datum/crafting_recipe/huntingrifle, /datum/crafting_recipe/m1911, /datum/crafting_recipe/varmintrifle, /datum/crafting_recipe/autoaxe, /datum/crafting_recipe/steelsaw, /datum/crafting_recipe/tools/forged/entrenching_tool, /datum/crafting_recipe/chainsaw, /datum/crafting_recipe/steeltower, /datum/crafting_recipe/durathread_vest) if("Pugilist") granted_trait = TRAIT_IRONFIST traitname = "using your fists" @@ -1084,7 +1095,7 @@ /obj/item/book/granter/crafting_recipe/tribal name = "Tribal traditions" desc = "A book of traditions passed down through generations within the tribe." - crafting_recipe_types = list(/datum/crafting_recipe/warmace, /datum/crafting_recipe/tribalwar/bone_bow, /datum/crafting_recipe/tribalwar/pipe_bow) + crafting_recipe_types = list(/datum/crafting_recipe/tribalwar/lighttribe, /datum/crafting_recipe/tribalwar/heavytribe, /datum/crafting_recipe/warmace) /obj/item/book/granter/crafting_recipe/tribal/whitelegs name = "White Legs traditions" @@ -1113,4 +1124,9 @@ /obj/item/book/granter/crafting_recipe/tribal/wayfarer name = "Wayfarer traditions" - crafting_recipe_types = list(/datum/crafting_recipe/tribal_pa,/datum/crafting_recipe/tribal_pa_helmet, /datum/crafting_recipe/tribal_combat_armor, /datum/crafting_recipe/tribal_combat_armor_helmet) + crafting_recipe_types = list(/datum/crafting_recipe/tribalwar/lighttribe, /datum/crafting_recipe/tribalwar/heavytribe, /datum/crafting_recipe/warmace) + +/obj/item/book/granter/crafting_recipe/tribal/bone + name = "Bone Dancer traditions" + crafting_recipe_types = list(/datum/crafting_recipe/tribalwar/bone/lightarmour,/datum/crafting_recipe/tribalwar/bone/armour, /datum/crafting_recipe/tribalwar/bone/heavyarmour, + /datum/crafting_recipe/tribalwar/bone/garb,/datum/crafting_recipe/tribalwar/bone/helmet) diff --git a/code/game/objects/items/grenades/emgrenade.dm b/code/game/objects/items/grenades/emgrenade.dm index 4020997334..57e1b2ad50 100644 --- a/code/game/objects/items/grenades/emgrenade.dm +++ b/code/game/objects/items/grenades/emgrenade.dm @@ -11,5 +11,5 @@ if(!empgrenade_turf) return playsound(empgrenade_turf, 'sound/f13weapons/pulsegrenade.ogg', 100, TRUE, 8, 0.9) - empulse_using_range(src, 14) + empulse_using_range(src, 7) qdel(src) diff --git a/code/game/objects/items/handcuffs.dm b/code/game/objects/items/handcuffs.dm index 4d50c975ef..7b0f908dc3 100644 --- a/code/game/objects/items/handcuffs.dm +++ b/code/game/objects/items/handcuffs.dm @@ -252,7 +252,7 @@ icon_state = "beartrap" desc = "A trap used to catch bears and other legged creatures." var/armed = FALSE - var/trap_damage = 20 + var/trap_damage = 30 /obj/item/restraints/legcuffs/beartrap/Initialize() . = ..() diff --git a/code/game/objects/items/melee/f13powerfist.dm b/code/game/objects/items/melee/f13powerfist.dm index d6e4201458..85a5171218 100644 --- a/code/game/objects/items/melee/f13powerfist.dm +++ b/code/game/objects/items/melee/f13powerfist.dm @@ -2,8 +2,8 @@ // POWER FISTS // ///////////////// -Uses power (gas currently) for knockback. Heavy AP, specialized for attacking heavy armor -// Power Fist Throws targets. Max damage 44. Full AP. -/obj/item/melee/powerfist/f13 +// Power Fist Throws targets. Max damage 44. 50% ap +/obj/item/melee/unarmed/powerfist name = "power fist" desc = "A metal gauntlet with a piston-powered ram on top for that extra 'oomph' in your punch." icon_state = "powerfist" @@ -15,46 +15,38 @@ force = 22 throwforce = 10 throw_range = 3 + armour_penetration = 0.5 w_class = WEIGHT_CLASS_NORMAL - slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_GLOVES var/transfer_prints = TRUE //prevents runtimes with forensics when held in glove slot - var/throw_distance = 1 + var/throw_distance = 1 //multipled by power to give actual throw dist + var/power = 1 + var/knockback_anchored = FALSE attack_speed = CLICK_CD_MELEE -/obj/item/melee/powerfist/f13/attackby(obj/item/W, mob/user, params) +/obj/item/melee/unarmed/powerfist/ComponentInitialize() + . = ..() + AddComponent(/datum/component/knockback, throw_distance, FALSE, knockback_anchored) + +/obj/item/melee/unarmed/powerfist/attackby(obj/item/W, mob/user, params) + if(!power) + return if(istype(W, /obj/item/wrench)) - switch(fisto_setting) + switch(power) if(1) - fisto_setting = 2 + power = 2 if(2) - fisto_setting = 1 + power = 1 + if(GetComponent(/datum/component/knockback)) + var/datum/component/knockback/KB = GetComponent(/datum/component/knockback) + KB.throw_distance = initial(throw_distance) * power W.play_tool_sound(src) - to_chat(user, "You tweak \the [src]'s piston valve to [fisto_setting].") - attack_speed = CLICK_CD_MELEE * fisto_setting + to_chat(user, "You tweak \the [src]'s piston valve to [power].") + force = initial(force) * power + attack_speed = CLICK_CD_MELEE * power -/obj/item/melee/powerfist/f13/updateTank(obj/item/tank/internals/thetank, removing = 0, mob/living/carbon/human/user) - return - -/obj/item/melee/powerfist/f13/attack(mob/living/target, mob/living/user, attackchain_flags = NONE) - if(HAS_TRAIT(user, TRAIT_PACIFISM)) - to_chat(user, "You don't want to harm other living beings!") - return FALSE - var/turf/T = get_turf(src) - if(!T) - return FALSE - var/totalitemdamage = target.pre_attacked_by(src, user) - target.apply_damage(totalitemdamage * fisto_setting, BRUTE, wound_bonus = -25*fisto_setting**2) - target.visible_message("[user]'s powerfist lets out a loud hiss as [user.p_they()] punch[user.p_es()] [target.name]!", \ - "You cry out in pain as [user]'s punch flings you backwards!") - new /obj/effect/temp_visual/kinetic_blast(target.loc) - playsound(loc, 'sound/weapons/resonator_blast.ogg', 50, 1) - playsound(loc, 'sound/weapons/genhit2.ogg', 50, 1) - var/atom/throw_target = get_edge_target_turf(target, get_dir(src, get_step_away(target, src))) - target.throw_at(throw_target, 2 * throw_distance, 0.5 + (throw_distance / 2)) - log_combat(user, target, "power fisted", src) // Goliath Throws targets far. Max damage 50. -/obj/item/melee/powerfist/f13/goliath +/obj/item/melee/unarmed/powerfist/goliath name = "Goliath" desc = "A massive, experimental metal gauntlet captured by the Legion. The piston-powered ram on top is designed to throw targets very, very far." icon = 'icons/fallout/objects/melee/melee.dmi' @@ -66,7 +58,7 @@ throw_distance = 3 -// Ballistic Fist Keywords: Damage max 42, AP 0.45, Shotgun +// Ballistic Fist Keywords: 30 damage, AP 0.45, Shotgun /obj/item/gun/ballistic/revolver/ballisticfist name = "ballistic fist" desc = "This powerfist has been modified to have two shotgun barrels welded to it, with the trigger integrated into the knuckle guard. For those times when you want to punch someone and shoot them in the face at the same time." @@ -86,8 +78,8 @@ var/transfer_prints = TRUE //prevents runtimes with forensics when held in glove slot -// Mole Miner -/obj/item/melee/powerfist/f13/moleminer +// Mole Miner +/obj/item/melee/unarmed/powerfist/moleminer name = "mole miner gauntlet" desc = "A hand-held mining and cutting implement, repurposed into a deadly melee weapon. Its name origins are a mystery..." icon_state = "mole_miner_g" @@ -95,9 +87,7 @@ lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi' flags_1 = CONDUCT_1 - force = 15 - throwforce = 10 - throw_range = 7 + force = 20 attack_verb = list("slashed", "sliced", "torn", "ripped", "diced", "cut") hitsound = 'sound/weapons/bladeslice.ogg' tool_behaviour = TOOL_MINING @@ -105,8 +95,6 @@ toolspeed = 0.4 sharpness = SHARP_EDGED w_class = WEIGHT_CLASS_NORMAL - slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_GLOVES - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) ///////////////////// diff --git a/code/game/objects/items/melee/f13twohanded.dm b/code/game/objects/items/melee/f13twohanded.dm index 028e7010b6..47747885f9 100644 --- a/code/game/objects/items/melee/f13twohanded.dm +++ b/code/game/objects/items/melee/f13twohanded.dm @@ -404,7 +404,7 @@ . = ..() if(!proximity || !wielded || IS_STAMCRIT(user)) return - if(istype(A, /obj/structure)) + if(istype(A, /obj/structure)) var/obj/structure/W = A W.take_damage(20, BRUTE, "melee", 0) @@ -500,7 +500,7 @@ obj/item/twohanded/sledgehammer/supersledge/afterattack(atom/A, mob/living/user, . = ..() if(!proximity || !wielded || IS_STAMCRIT(user)) return - if(istype(A, /obj/structure)) + if(istype(A, /obj/structure)) var/obj/structure/W = A W.take_damage(25, BRUTE, "melee", 0) playsound(loc, hitsound, 80, TRUE) @@ -535,7 +535,7 @@ obj/item/twohanded/sledgehammer/supersledge/afterattack(atom/A, mob/living/user, . = ..() if(!proximity || !wielded || IS_STAMCRIT(user)) return - if(istype(A, /obj/structure)) + if(istype(A, /obj/structure)) var/obj/structure/W = A W.take_damage(10, BRUTE, "melee", 0) playsound(loc, hitsound, 50, TRUE) @@ -558,7 +558,7 @@ obj/item/twohanded/sledgehammer/supersledge/afterattack(atom/A, mob/living/user, . = ..() if(!proximity || !wielded || IS_STAMCRIT(user)) return - if(istype(A, /obj/structure)) + if(istype(A, /obj/structure)) var/obj/structure/W = A W.take_damage(10, BRUTE, "melee", 0) playsound(loc, hitsound, 80, TRUE) @@ -601,8 +601,7 @@ obj/item/twohanded/sledgehammer/supersledge/afterattack(atom/A, mob/living/user, . = ..() AddComponent(/datum/component/two_handed, force_unwielded = 25, force_wielded = 45, icon_wielded="[icon_prefix]2") - -// Shaman staff Keywords: Damage 15/30, Big stamina damage buff +// Shaman staff Keywords: Damage 15/30, Big stamina damage buff /obj/item/twohanded/sledgehammer/shamanstaff name = "shaman staff" desc = "An intricate staff, carried for centuries by the shaman class of the Wayfayer Tribe." @@ -694,7 +693,7 @@ obj/item/twohanded/sledgehammer/supersledge/afterattack(atom/A, mob/living/user, playsound(loc, hitsound, 80, TRUE) -//Steel Saw Keywords: Damage 14/40, Fast, Wound Bonus, Tool saw-off +//Steel Saw Keywords: Damage 10/27, 2x attackspeed, Wound Bonus, Tool saw-off, structure bonus damage /obj/item/twohanded/steelsaw name = "steel saw" desc = "A long, heavy circular saw with reinforced blades, designed for cutting through I-beams." @@ -706,44 +705,45 @@ obj/item/twohanded/sledgehammer/supersledge/afterattack(atom/A, mob/living/user, icon_prefix = "steelsaw" force = 4 toolspeed = 0.5 - wound_bonus = 15 - attack_speed = CLICK_CD_MELEE * 0.9 + wound_bonus = 20 + bare_wound_bonus = 20 hitsound = 'sound/weapons/chainsawhit.ogg' tool_behaviour = TOOL_SAW sharpness = SHARP_EDGED resistance_flags = FIRE_PROOF w_class = WEIGHT_CLASS_BULKY slot_flags = null - total_mass = TOTAL_MASS_MEDIEVAL_WEAPON + total_mass = TOTAL_MASS_NORMAL_ITEM //it swings faster + var/structure_bonus_damage = 20 var/on_icon_state = "steelsaw_on" var/off_icon_state = "steelsaw" var/on_item_state = "steelsaw_on" var/off_item_state = "steelsaw" var/weight_class_on = WEIGHT_CLASS_HUGE var/on = FALSE - var/force_on = 40 - var/force_off = 14 - var/description_on = "You pull the cord, starting up the chainsaw with a roar and letting the blades spin up." - var/description_off = "You press the off button, stopping the noise and the carnage." + var/force_on = 27 //10 more dps than chainsaw, but less perhit + var/force_off = 10 var/on_sound = 'sound/weapons/chainsawhit.ogg' /obj/item/twohanded/steelsaw/attack_self(mob/user) on = !on if(on) - to_chat(user, description_on) + user.visible_message("[user] pulls the cord, starting up the [src] with a roar and letting the blades spin up.") icon_state = on_icon_state item_state = on_item_state w_class = weight_class_on force = force_on + attack_speed = CLICK_CD_MELEE * 0.5 attack_verb = list("sawed", "torn", "cut", "chopped", "diced") playsound(loc, on_sound, 50, TRUE) else - to_chat(user, description_off) + user.visible_message("[user] presses the off button, stopping the noise and the carnage.") icon_state = off_icon_state item_state = off_item_state w_class = WEIGHT_CLASS_BULKY force = force_off attack_verb = list("poked", "scraped") + attack_speed = CLICK_CD_MELEE * 1.2 add_fingerprint(user) /obj/item/twohanded/steelsaw/ComponentInitialize() @@ -752,6 +752,18 @@ obj/item/twohanded/sledgehammer/supersledge/afterattack(atom/A, mob/living/user, AddComponent(/datum/component/two_handed, require_twohands=TRUE) update_icon() +/obj/item/twohanded/steelsaw/afterattack(atom/A, mob/living/user, proximity) + . = ..() + if(!proximity || !wielded || IS_STAMCRIT(user)) + return + if(istype(A, /obj/structure)) //hurts structures more (it can cut through i-beams, it can ostensibly cut through weaker shit) + var/obj/structure/S = A + S.take_damage(structure_bonus_damage, BRUTE, "melee", 0, armour_penetration = src.armour_penetration) + else if(istype(A, /obj/machinery/door)) + var/obj/machinery/door/D = A + D.take_damage(structure_bonus_damage, BRUTE, "melee", 0, armour_penetration = src.armour_penetration) + + /obj/item/twohanded/steelsaw/suicide_act(mob/living/carbon/user) if(on) user.visible_message("[user] begins to tear [user.p_their()] head off with [src]! It looks like [user.p_theyre()] trying to commit suicide!") @@ -764,25 +776,43 @@ obj/item/twohanded/sledgehammer/supersledge/afterattack(atom/A, mob/living/user, playsound(src, 'sound/weapons/genhit1.ogg', 100, 1) return(BRUTELOSS) -//Auto Axe Keywords: Damage 14/40, AP 0.5, Wound Bonus +//autoaxe Keywords: Damage 10/29, 2x attackspeed, Wound Bonus, structure bonus damage, 0.3 AP /obj/item/twohanded/steelsaw/autoaxe name = "auto axe" - desc = "A reinforced and heavier steel saw, upgraded using the parts of a car engine." + desc = "A reinforced and heavier steel saw, upgraded using the parts of a car engine. A little heavy and ungainly to use as a tool, however." icon_state = "autoaxe" item_state = "autoaxe" icon_prefix = "autoaxe" - force = 6 - force_on = 40 - force_off = 14 + force_on = 29 + attack_speed = CLICK_CD_MELEE * 1.5 armour_penetration = 0.3 on_icon_state = "autoaxe_on" off_icon_state = "autoaxe" on_item_state = "autoaxe_on" off_item_state = "autoaxe" - wound_bonus = 10 - tool_behaviour = null - + toolspeed = 2 + structure_bonus_damage = 40 +/obj/item/twohanded/steelsaw/autoaxe/attack_self(mob/user) + on = !on + if(on) + user.visible_message("[user] turns the starting crank on the [src], starting it up with a guttral roar.") + icon_state = on_icon_state + item_state = on_item_state + w_class = weight_class_on + force = force_on + attack_speed = CLICK_CD_MELEE * 0.5 + attack_verb = list("sawed", "torn", "cut", "chopped", "diced") + playsound(loc, on_sound, 50, TRUE) + else + user.visible_message("[user] cuts the throttle on the [src], letting the blades slowly spin down.") + icon_state = off_icon_state + item_state = off_item_state + w_class = WEIGHT_CLASS_BULKY + force = force_off + attack_verb = list("poked", "scraped") + attack_speed = CLICK_CD_MELEE * 1.5 + add_fingerprint(user) /* CODE ARCHIVE diff --git a/code/game/objects/items/miscellaneous.dm b/code/game/objects/items/miscellaneous.dm index 4e25f1e2bb..0ec7b9b353 100644 --- a/code/game/objects/items/miscellaneous.dm +++ b/code/game/objects/items/miscellaneous.dm @@ -270,7 +270,7 @@ icon = 'icons/obj/crates.dmi' icon_state = "weaponcrate" item_state = "syringe_kit" - + /obj/item/choice_beacon/weapon/follower name = "Follower of the Apocalpyse standard issue self-defense weapon crate" desc = "Has that weapon you ordered" @@ -278,17 +278,28 @@ "lethal, energy" = /obj/item/gun/energy/laser/wattz, "lethal, ballistics" = /obj/item/gun/ballistic/revolver/colt357, ) - + /obj/item/choice_beacon/weapon/follower/generate_display_names() return follower_guns - + /obj/item/choice_beacon/weapon/wastelander name = "personal weapon stash" desc = "contains your personal weapon, whatever it may be" var/static/list/follower_guns = list("M1911" = /obj/item/gun/ballistic/automatic/pistol/m1911, - "M1911 compact" = /obj/item/gun/ballistic/automatic/pistol/m1911/compact, + "M1911" = /obj/item/gun/ballistic/automatic/pistol/m1911, "N99, 10mm" = /obj/item/gun/ballistic/automatic/pistol/n99, ".357 Police Pistol" = /obj/item/gun/ballistic/revolver/police, ".357 Single Action Revolver" = /obj/item/gun/ballistic/revolver/colt357, "5.56mm Varmint Rifle" = /obj/item/gun/ballistic/automatic/varmint ) + +/obj/item/choice_beacon/box/g11ammo + name = "choice box (tactical ammunition)" + desc = "Contains 50 rounds of your preferred tactical 4.73mm ammunition." + var/static/list/ammolist = list("4.73mm flat-nose bullets" = /obj/item/ammo_box/m473/dumdum, + "4.73mm incendiary bullets" = /obj/item/ammo_box/m473/incendiary, + "4.73mm electro-static discharge bullets" = /obj/item/ammo_box/m473/shock, + "4.73mm high-velocity bullets" = /obj/item/ammo_box/m473/hv) + +/obj/item/choice_beacon/box/g11ammo/generate_display_names() + return ammolist diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm index dfb4e65bc4..2a5e4a7785 100644 --- a/code/game/objects/items/shields.dm +++ b/code/game/objects/items/shields.dm @@ -5,25 +5,26 @@ icon = 'icons/fallout/objects/melee/shields.dmi' lefthand_file = 'icons/fallout/onmob/weapons/shields_lefthand.dmi' righthand_file = 'icons/fallout/onmob/weapons/shields_righthand.dmi' - item_flags = ITEM_CAN_BLOCK + item_flags = ITEM_CAN_BLOCK | SLOWS_WHILE_IN_HAND + slowdown = 0 block_parry_data = /datum/block_parry_data/shield - armor = list("linemelee" = 150, "linebullet" = 150, "linelaser" = 150, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 70) + armor = list("melee" = 60, "bullet" = 60, "laser" = 60, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 70) //this is how much armor the SHIELD has. how much it PROTECTS is defined by block_parry_data. look at riot/bulletproof shield for implementation and living_blocking_parrying.dm for more info re:block /// Shield flags var/shield_flags = SHIELD_FLAGS_DEFAULT /// Last shieldbash world.time var/last_shieldbash = 0 /// Shieldbashing cooldown - var/shieldbash_cooldown = 5 SECONDS + var/shieldbash_cooldown = 4 SECONDS /// Shieldbashing stamina cost var/shieldbash_stamcost = 7.5 /// Shieldbashing knockback var/shieldbash_knockback = 2 /// Shield bashing brute damage - var/shieldbash_brutedamage = 5 + var/shieldbash_brutedamage = 25 /// Shield bashing stamina damage - var/shieldbash_stamdmg = 15 + var/shieldbash_stamdmg = 35 /// Shield bashing stagger duration - var/shieldbash_stagger_duration = 3.5 SECONDS + var/shieldbash_stagger_duration = 5 SECONDS /// Shield bashing push distance var/shieldbash_push_distance = 1 @@ -49,11 +50,9 @@ /obj/item/shield/proc/on_shield_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance) return TRUE -/obj/item/shield/alt_pre_attack(atom/A, mob/living/user, params) - user_shieldbash(user, A, user.a_intent == INTENT_HARM) - return TRUE - /obj/item/shield/altafterattack(atom/target, mob/user, proximity_flag, click_parameters) + if(!proximity_flag) + return user_shieldbash(user, target, user.a_intent == INTENT_HARM) return TRUE @@ -195,7 +194,9 @@ icon_state = "shield_riot" item_state = "shield_riot" slot_flags = ITEM_SLOT_BACK + armor = list("melee" = 80, "bullet" = 65, "laser" = 60, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 70) force = 10 + block_parry_data = /datum/block_parry_data/shield/riot throwforce = 5 throw_speed = 2 throw_range = 3 @@ -206,15 +207,16 @@ var/repair_material = /obj/item/stack/sheet/plastic var/can_shatter = FALSE shield_flags = SHIELD_FLAGS_DEFAULT | SHIELD_TRANSPARENT - max_integrity = 450 + max_integrity = 2250 + +/datum/block_parry_data/shield/riot + block_damage_multiplier = 0.35 + block_stamina_efficiency = 5 + block_stamina_cost_per_second = 1 + block_damage_absorption = 7.5 /obj/item/shield/riot/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/melee)) - if(cooldown < world.time - 25) - user.visible_message("[user] bashes [src] with [W]!") - playsound(user.loc, 'sound/effects/shieldbash.ogg', 50, 1) - cooldown = world.time - else if(istype(W, repair_material)) + if(istype(W, repair_material)) if(obj_integrity >= max_integrity) to_chat(user, "[src] is already in perfect condition.") else @@ -222,6 +224,11 @@ S.use(1) obj_integrity = max_integrity to_chat(user, "You repair [src] with [S].") + else if(istype(W, /obj/item/melee)) + if(cooldown < world.time - 25) + user.visible_message("[user] bashes [src] with [W]!") + playsound(user.loc, 'sound/effects/shieldbash.ogg', 50, 1) + cooldown = world.time else return ..() @@ -250,28 +257,24 @@ take_damage(damage) return ..() -/obj/item/shield/riot/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item)) - if(cooldown < world.time - 25) - user.visible_message("[user] bashes [src] with [W]!") - playsound(user.loc, 'sound/effects/shieldbash.ogg', 50, 1) - cooldown = world.time - else - return ..() - - - //Bulletproof riot shield obj/item/shield/riot/bullet_proof name = "bullet resistant shield" desc = "Kevlar coated surface makes this riot shield a lot better for blocking projectiles." icon_state = "shield_bulletproof" item_state = "shield_bulletproof" - armor = list("linemelee" = 80, "linebullet" = 400, "laser" = 0, "energy" = 0, "bomb" = -40, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 50) - max_integrity = 350 + block_parry_data = /datum/block_parry_data/shield/bulletproof + armor = list("melee" = 50, "bullet" = 90, "laser" = 50, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 70) + max_integrity = 1750 custom_materials = list(/datum/material/plastic=8000, /datum/material/titanium=1000) repair_material = /obj/item/stack/sheet/mineral/titanium +/datum/block_parry_data/shield/bulletproof + block_damage_multiplier_override = list(ATTACK_TYPE_PROJECTILE_TEXT = 0.65) + block_damage_absorption_override = list(ATTACK_TYPE_PROJECTILE_TEXT = 12.5) + block_resting_stamina_penalty_multiplier = 2 + block_projectile_mitigation = 90 + block_damage_limit = 100 //Buckler. Cheapest shield, also the worst. /obj/item/shield/riot/buckler @@ -279,12 +282,15 @@ obj/item/shield/riot/bullet_proof desc = "A small wooden shield." icon_state = "shield_buckler" item_state = "shield_buckler" - block_chance = 30 - max_integrity = 150 + block_parry_data = /datum/block_parry_data/shield/scrap + armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 40) + max_integrity = 750 custom_materials = list(/datum/material/wood = 18000) resistance_flags = FLAMMABLE repair_material = /obj/item/stack/sheet/mineral/wood - shield_flags = SHIELD_FLAGS_DEFAULT + shield_flags = SHIELD_FLAGS_LIGHT + shieldbash_push_distance = 0 + shieldbash_knockback = 0 /obj/item/shield/riot/buckler/shatter(mob/living/carbon/human/owner) playsound(owner, 'sound/effects/bang.ogg', 50) @@ -297,7 +303,8 @@ obj/item/shield/riot/bullet_proof desc = "Made from a ancient roadsign, with handles made of rope." icon_state = "shield_stop" item_state = "shield_stop" - max_integrity = 200 + armor = list("melee" = 65, "bullet" = 60, "laser" = 65, "energy" = 0, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 40) + max_integrity = 1000 resistance_flags = null repair_material = /obj/item/stack/sheet/metal @@ -308,16 +315,22 @@ obj/item/shield/riot/bullet_proof desc = "Heavy shield with metal pieces bolted to a wood backing, with a painted yellow bull insignia in the centre." icon_state = "shield_legion" item_state = "shield_legion" + block_parry_data = /datum/block_parry_data/shield/legion + armor = list("melee" = 70, "bullet" = 60, "laser" = 60, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 40) force = 13 - max_integrity = 300 + max_integrity = 1500 custom_materials = list(/datum/material/wood = 16000, /datum/material/iron= 16000) repair_material = /obj/item/stack/sheet/mineral/wood - shield_flags = SHIELD_FLAGS_DEFAULT + shield_flags = SHIELD_FLAGS_HEAVY /obj/item/shield/riot/legion/shatter(mob/living/carbon/human/owner) playsound(owner, 'sound/effects/grillehit.ogg', 100) new /obj/item/stack/sheet/metal(get_turf(src)) +/datum/block_parry_data/shield/legion + block_damage_multiplier = 0.3 + block_damage_absorption = 7.5 + block_damage_limit = 60 //Scrap shield. Somewhat cheaper, simpler and worse than Legion shield but basically similar. /obj/item/shield/riot/scrapshield @@ -325,13 +338,17 @@ obj/item/shield/riot/bullet_proof desc = "A large shield made of glued and welded sheets of metal. Heavy and clumsy, but at least its handle is wrapped in some cloth." icon_state = "shield_scrap" item_state = "shield_scrap" - armor = list("linemelee" = 70, "linebullet" = 70, "linelaser" = 70, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 80) - max_integrity = 250 + block_parry_data = /datum/block_parry_data/shield/scrap + armor = list("melee" = 60, "bullet" = 60, "laser" = 60, "energy" = 0, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 40) + max_integrity = 1250 force = 13 custom_materials = list(/datum/material/iron = 16000) repair_material = /obj/item/stack/sheet/metal shield_flags = SHIELD_FLAGS_DEFAULT +/datum/block_parry_data/shield/scrap + block_damage_multiplier = 0.3 + block_damage_limit = 30 //Energy shield. Placeholder for the experimental BoS shield concept that never got implemented I suppose. /obj/item/shield/energy @@ -389,6 +406,94 @@ obj/item/shield/riot/bullet_proof to_chat(user, "[src] can now be concealed.") add_fingerprint(user) +/obj/item/shield/riot/tower + name = "tower shield" + desc = "A heavy metal tower shield. Very unwieldly." + icon_state = "shield_tower" + item_state = "shield_tower" + slowdown = 0.25 + slot_flags = ITEM_SLOT_BACK + shieldbash_cooldown = 8 SECONDS + shieldbash_brutedamage = 50//if you close in with this, and land a shieldbash you should deal a good bit of damage + shieldbash_stamdmg = 80//and stamina + force = 25 + block_parry_data = /datum/block_parry_data/shield/tower + throwforce = 5 + throw_speed = 1 + throw_range = 1 + w_class = WEIGHT_CLASS_HUGE + custom_materials = list(/datum/material/iron = 32000) + repair_material = /obj/item/stack/sheet/metal + shield_flags = SHIELD_FLAGS_HEAVY + max_integrity = 3000 + +/datum/block_parry_data/shield/tower + block_slowdown = 0.75 + block_damage_multiplier = 0.7 + block_stamina_efficiency = 10 + block_stamina_cost_per_second = 5 + block_damage_absorption = 20 + block_damage_limit = 160 + block_start_delay = 10 //1 second to start blocking + +/obj/item/shield/riot/tower/scrap + name = "scrap-tower shield" + desc = "A heavy metal tower shield, made from scrap metal. Very unwieldly." + icon_state = "shield_tower_scrap" + item_state = "shield_tower_scrap" + slowdown = 0.35 + shieldbash_brutedamage = 40 + shieldbash_stamdmg = 60 + shield_flags = SHIELD_FLAGS_DEFAULT //no guaranteed kd on bash, sorry + block_parry_data = /datum/block_parry_data/shield/tower/scrap + max_integrity = 1500 + +/datum/block_parry_data/shield/tower/scrap + block_damage_multiplier = 0.6 + block_stamina_efficiency = 7.5 + block_damage_absorption = 15 + +/obj/item/shield/riot/tele + name = "telescopic shield" + desc = "An advanced riot shield made of lightweight materials that collapses for easy storage." + icon_state = "teleriot0" + lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi' + slot_flags = null + force = 3 + throwforce = 3 + throw_speed = 3 + throw_range = 4 + w_class = WEIGHT_CLASS_NORMAL + var/active = FALSE + +/obj/item/shield/riot/tele/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) + if(!active) + return BLOCK_NONE + return ..() + +/obj/item/shield/riot/tele/can_active_block() + return ..() && active + +/obj/item/shield/riot/tele/attack_self(mob/living/user) + active = !active + icon_state = "teleriot[active]" + playsound(src.loc, 'sound/weapons/batonextend.ogg', 50, TRUE) + if(active) + force = 8 + throwforce = 5 + throw_speed = 2 + w_class = WEIGHT_CLASS_BULKY + slot_flags = ITEM_SLOT_BACK + to_chat(user, "You extend \the [src].") + else + force = 3 + throwforce = 3 + throw_speed = 3 + w_class = WEIGHT_CLASS_NORMAL + slot_flags = null + to_chat(user, "[src] can now be concealed.") + add_fingerprint(user) //////////////// //CODE ARCHIVE// @@ -438,46 +543,5 @@ The telescopic shields are legacy and don't fit, but the code might be of intere if(ismob(loc.loc)) //cyberimplant.user to_chat(loc, "[src] has recharged its reinforcement matrix and is ready for use!") -/obj/item/shield/riot/tele - name = "telescopic shield" - desc = "An advanced riot shield made of lightweight materials that collapses for easy storage." - icon_state = "teleriot0" - lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi' - slot_flags = null - force = 3 - throwforce = 3 - throw_speed = 3 - throw_range = 4 - w_class = WEIGHT_CLASS_NORMAL - var/active = FALSE -/obj/item/shield/riot/tele/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) - if(!active) - return BLOCK_NONE - return ..() - -/obj/item/shield/riot/tele/can_active_block() - return ..() && active - -/obj/item/shield/riot/tele/attack_self(mob/living/user) - active = !active - icon_state = "teleriot[active]" - playsound(src.loc, 'sound/weapons/batonextend.ogg', 50, TRUE) - - if(active) - force = 8 - throwforce = 5 - throw_speed = 2 - w_class = WEIGHT_CLASS_BULKY - slot_flags = ITEM_SLOT_BACK - to_chat(user, "You extend \the [src].") - else - force = 3 - throwforce = 3 - throw_speed = 3 - w_class = WEIGHT_CLASS_NORMAL - slot_flags = null - to_chat(user, "[src] can now be concealed.") - add_fingerprint(user) */ diff --git a/code/game/objects/items/shrapnel.dm b/code/game/objects/items/shrapnel.dm index db41b4ff40..b245236422 100644 --- a/code/game/objects/items/shrapnel.dm +++ b/code/game/objects/items/shrapnel.dm @@ -11,7 +11,6 @@ /obj/item/shrapnel/stingball // stingbang grenades name = "stingball" - embedding = list(embed_chance=90, fall_chance=3, jostle_chance=7, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.7, pain_mult=5, jostle_pain_mult=6, rip_time=15, embed_chance_turf_mod=-100) icon_state = "tiny" sharpness = SHARP_NONE @@ -36,14 +35,14 @@ dismemberment = 5 ricochets_max = 2 ricochet_chance = 70 - shrapnel_type = /obj/item/shrapnel + embedding = list(embed_chance=70, ignore_throwspeed_threshold=TRUE, fall_chance=4, embed_chance_turf_mod=-100, projectile_payload = /obj/item/shrapnel) ricochet_incidence_leeway = 60 sharpness = SHARP_EDGED wound_bonus = 50 /obj/item/projectile/bullet/shrapnel/plasma // plasma grenades name = "plasma split" - embedding = list(embed_chance=0, ignore_throwspeed_threshold=FALSE, fall_chance=0, embed_chance_turf_mod=0) + embedding = list(embed_chance=0, ignore_throwspeed_threshold=FALSE, fall_chance=0, embed_chance_turf_mod=0, payload = /obj/item/shrapnel) custom_materials = list(/datum/material/iron=50) damage = 35 armour_penetration = 0.8 @@ -52,7 +51,6 @@ dismemberment = 0 ricochets_max = 0 ricochet_chance = 0 - shrapnel_type = /obj/item/shrapnel ricochet_incidence_leeway = 0 sharpness = SHARP_EDGED wound_bonus = 60 @@ -71,7 +69,7 @@ /obj/item/projectile/bullet/pellet/stingball name = "stingball pellet" damage = 3 - stamina = 8 + stamina = 10 ricochets_max = 4 ricochet_chance = 66 ricochet_decay_chance = 1 @@ -79,7 +77,7 @@ ricochet_auto_aim_angle = 10 ricochet_auto_aim_range = 2 ricochet_incidence_leeway = 0 - shrapnel_type = /obj/item/shrapnel/stingball + embedding = list(embed_chance=90, fall_chance=3, jostle_chance=7, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.7, pain_mult=5, jostle_pain_mult=6, rip_time=15, embed_chance_turf_mod=-100, projectile_payload = /obj/item/shrapnel/stingball) /obj/item/projectile/bullet/pellet/stingball/mega name = "megastingball pellet" @@ -97,3 +95,9 @@ damage = 10 wound_bonus = 30 sharpness = SHARP_EDGED + +/obj/item/shrapnel/bullet/a556/microshrapnel + name = "\improper 5.56mm microshrapnel bullet" + +/obj/item/shrapnel/bullet/a762/microshrapnel + name = "\improper 7.62mm microshrapnel bullet" diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm index 883856c5c0..1f65c40687 100644 --- a/code/game/objects/items/stacks/sheets/leather.dm +++ b/code/game/objects/items/stacks/sheets/leather.dm @@ -184,6 +184,9 @@ GLOBAL_LIST_INIT(leather_recipes, list ( \ /obj/item/stack/sheet/leather/five amount = 5 +/obj/item/stack/sheet/leather/ten + amount = 10 + /obj/item/stack/sheet/leather/twenty amount = 20 diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index 67f2d2b2ca..6176305291 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -289,6 +289,7 @@ GLOBAL_LIST_INIT(silver_recipes, list ( \ GLOBAL_LIST_INIT(titanium_recipes, list ( \ new/datum/stack_recipe("titanium tile", /obj/item/stack/tile/mineral/titanium, 1, 4, 20), \ new/datum/stack_recipe("titanic ingot", /obj/item/ingot/titanium, 6, time = 100), \ + new/datum/stack_recipe("bear trap", /obj/item/restraints/legcuffs/beartrap, 1, time = 50), \ new/datum/stack_recipe("high quality parts", /obj/item/stack/crafting/goodparts, 5, time = 50) \ )) @@ -417,6 +418,9 @@ GLOBAL_LIST_INIT(snow_recipes, list ( \ merge_type = /obj/item/stack/sheet/mineral/abductor walltype = /turf/closed/wall/mineral/abductor +/obj/item/stack/sheet/mineral/abductor/ten + amount = 10 + GLOBAL_LIST_INIT(abductor_recipes, list ( \ new/datum/stack_recipe("poylmer bed", /obj/structure/bed/abductor, 2, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("polymer locker", /obj/structure/closet/abductor, 2, time = 15, one_per_turf = 1, on_floor = 1), \ diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 5fb881eb30..36caf39346 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -293,8 +293,9 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \ new /datum/stack_recipe("compost bin", /obj/structure/reagent_dispensers/compostbin, 25, time = 40, one_per_turf = TRUE, on_floor = TRUE), \ new /datum/stack_recipe("harvest bin", /obj/machinery/smartfridge/bottlerack/grownbin, 20, time = 40, one_per_turf = TRUE, on_floor = TRUE), \ new /datum/stack_recipe("seed bin", /obj/machinery/smartfridge/bottlerack/seedbin, 20, time = 40, one_per_turf = TRUE, on_floor = TRUE), \ - null, \ new /datum/stack_recipe("alchemy rack", /obj/machinery/smartfridge/bottlerack/alchemy_rack, 20, time = 40, one_per_turf = TRUE, on_floor = TRUE),\ + null, \ + new /datum/stack_recipe("primitive chemistry table", /obj/machinery/chem_master/primitive, 25, time = 15, one_per_turf = TRUE, on_floor = TRUE),\ new /datum/stack_recipe("loom", /obj/structure/loom, 10, time = 15, one_per_turf = TRUE, on_floor = TRUE),\ )), \ new/datum/stack_recipe_list("cooking", list( \ @@ -420,6 +421,7 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ new/datum/stack_recipe("medical bag", /obj/item/storage/bag/chemistry, 4), \ new/datum/stack_recipe("bio bag", /obj/item/storage/bag/bio, 4), \ new/datum/stack_recipe("casings bag", /obj/item/storage/bag/casings, 4), \ + new/datum/stack_recipe("salvage bag", /obj/item/storage/bag/salvage, 4), \ null, \ new/datum/stack_recipe("string", /obj/item/weaponcrafting/string, 1, time = 10), \ new/datum/stack_recipe("improvised gauze", /obj/item/stack/medical/gauze/improvised, 1, 2, 6), \ @@ -751,7 +753,7 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ GLOBAL_LIST_INIT(bone_recipes, list( new /datum/stack_recipe("bone dagger", /obj/item/melee/onehanded/knife/bone, 2, time = 20), null, \ - new /datum/stack_recipe("bone armor", /obj/item/clothing/suit/armor/bone, 6, time = 30), + new /datum/stack_recipe("bone armor", /obj/item/clothing/suit/f13/tribal/light/bone, 6, time = 30), new /datum/stack_recipe("skull helmet", /obj/item/clothing/head/helmet/skull, 4, time = 30), null, \ new/datum/stack_recipe_list("medicine", list( \ diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index 62b0dc52c0..4cdb995f58 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -120,6 +120,7 @@ AddComponent(/datum/component/rad_insulation, 0.01) //please datum mats no more cancer var/datum/component/storage/concrete/stack/STR = GetComponent(/datum/component/storage/concrete/stack) STR.allow_quick_empty = TRUE + STR.max_items = 14 STR.can_hold = typecacheof(list(/obj/item/stack/ore)) STR.max_w_class = WEIGHT_CLASS_HUGE STR.max_combined_stack_amount = 50 @@ -494,3 +495,22 @@ obj/item/storage/bag/chemistry/tribal STR.max_items = 2 STR.display_numerical_stacking = TRUE STR.can_hold = typecacheof(list(/obj/item/rcd_ammo, /obj/item/stack/sheet)) + +/obj/item/storage/bag/salvage + name = "salvage sack" + desc = "A sack for your salvage." + icon = 'icons/obj/janitor.dmi' //im lazy + icon_state = "trashbag" + item_state = "trashbag" + lefthand_file = 'icons/mob/inhands/equipment/custodial_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/custodial_righthand.dmi' + w_class = WEIGHT_CLASS_HUGE + resistance_flags = FLAMMABLE + +/obj/item/storage/bag/salvage/ComponentInitialize() + . = ..() + var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_NORMAL + STR.max_combined_w_class = WEIGHT_CLASS_NORMAL * 30 + STR.max_items = 30 + STR.can_hold = typecacheof(list(/obj/item/salvage)) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 7735d80905..afdcb6e8d3 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -186,7 +186,7 @@ new /obj/item/bonesetter(src) // END OF FALLOUT BELTS -// ------------------------------------------------------ +// ------------------------------------------------------ /obj/item/storage/belt/utility/servant/PopulateContents() new /obj/item/screwdriver/brass(src) @@ -506,7 +506,7 @@ STR.max_items = 7 -/obj/item/storage/belt/military/followers/PopulateContents() +/obj/item/storage/belt/military/army/military/followers/PopulateContents() new /obj/item/reagent_containers/spray/pepper(src) new /obj/item/restraints/handcuffs(src) new /obj/item/melee/classic_baton(src) @@ -776,6 +776,7 @@ /obj/item/ammo_box/c4570, /obj/item/ammo_box/a50MG, /obj/item/ammo_box/c45rev, + /obj/item/ammo_box/a45lcrev, /obj/item/gun/energy/laser/solar, /obj/item/gun/energy/laser/pistol, /obj/item/gun/energy/laser/complianceregulator, @@ -823,12 +824,6 @@ new /obj/item/ammo_box/c4570(src) new /obj/item/ammo_box/c4570(src) -/obj/item/storage/belt/holster/ranger10mm/PopulateContents() - new /obj/item/gun/ballistic/revolver/colt6520(src) - new /obj/item/ammo_box/l10mm(src) - new /obj/item/ammo_box/l10mm(src) - new /obj/item/ammo_box/l10mm(src) - /obj/item/storage/belt/holster/legholster name = "leg holster" desc = "A holster to carry a handgun and ammo worn on the leg." @@ -869,8 +864,8 @@ /obj/item/storage/belt/sabre name = "sabre sheath" desc = "An ornate sheath designed to hold an officer's blade." - icon_state = "sheath" - item_state = "sheath" + icon_state = "utilitybelt" + item_state = "utility" w_class = WEIGHT_CLASS_BULKY content_overlays = TRUE onmob_overlays = TRUE @@ -894,6 +889,33 @@ /obj/item/storage/belt/sabre/PopulateContents() new starting_sword(src) +/obj/item/storage/belt/sabre/heavy + name = "heavy-duty sheath" + desc = "A rugged set of leather straps and metal tips to comfortably carry a large variety of blades (and even blunt objects) on your side." + icon_state = "sheath" + item_state = "sheath" + w_class = WEIGHT_CLASS_BULKY + content_overlays = TRUE + onmob_overlays = TRUE + slot_flags = ITEM_SLOT_BELT | ITEM_SLOT_NECK + fitting_swords = list(/obj/item/melee/smith/shortsword, + /obj/item/melee/smith/wakizashi, + /obj/item/melee/smith/twohand/broadsword, + /obj/item/melee/smith/twohand/zweihander, + /obj/item/melee/smith/twohand/katana, + /obj/item/melee/smith/sabre, + /obj/item/melee/smith/cogheadclub, + /obj/item/melee/onehanded/machete, + /obj/item/melee/onehanded/club, + /obj/item/melee/classic_baton, + /obj/item/twohanded/fireaxe, + /obj/item/twohanded/baseball, + /obj/item/twohanded/sledgehammer, + /obj/item/melee/transforming/energy/axe/protonaxe, + /obj/item/melee/powered/ripper) + starting_sword = null + + /obj/item/storage/belt/sabre/rapier name = "rapier sheath" desc = "A sinister, thin sheath, suitable for a rapier." diff --git a/code/game/objects/items/storage/survivalkit.dm b/code/game/objects/items/storage/survivalkit.dm index cd058cd294..a1544c6865 100644 --- a/code/game/objects/items/storage/survivalkit.dm +++ b/code/game/objects/items/storage/survivalkit.dm @@ -2,7 +2,8 @@ name = "survival kit" desc = "A robust leather pouch containing the essentials for wasteland survival." icon_state = "survivalkit" - w_class = WEIGHT_CLASS_SMALL + slot_flags = ITEM_SLOT_POCKET + w_class = WEIGHT_CLASS_NORMAL /obj/item/storage/survivalkit/PopulateContents() . = ..() @@ -11,89 +12,71 @@ new /obj/item/flashlight/flare(src) new /obj/item/reagent_containers/pill/radx(src) -/obj/item/storage/survivalkit_khan - name = "survival kit" +/obj/item/storage/survivalkit/khan desc = "A robust leather pouch containing essentials a Khan might need in the wasteland." icon = 'icons/fallout/clothing/khans.dmi' icon_state = "survivalkit" - w_class = WEIGHT_CLASS_SMALL -/obj/item/storage/survivalkit_khan/PopulateContents() - . = ..() +/obj/item/storage/survivalkit/khan/PopulateContents() new /obj/item/reagent_containers/hypospray/medipen/stimpak(src) new /obj/item/reagent_containers/hypospray/medipen/stimpak(src) new /obj/item/reagent_containers/hypospray/medipen/medx(src) new /obj/item/stack/medical/gauze(src) new /obj/item/reagent_containers/pill/radx(src) -/obj/item/storage/survivalkit_tribal - name = "survival kit" - desc = "A robust leather pouch containing the essentials for wasteland survival." - icon_state = "survivalkit" - w_class = WEIGHT_CLASS_SMALL - -/obj/item/storage/survivalkit_tribal/PopulateContents() - . = ..() +/obj/item/storage/survivalkit/tribal/PopulateContents() new /obj/item/reagent_containers/pill/patch/healingpowder(src) new /obj/item/reagent_containers/pill/patch/healingpowder(src) new /obj/item/stack/medical/gauze(src) new /obj/item/flashlight/flare/torch(src) -/obj/item/storage/survivalkit_tribal/chief - -/obj/item/storage/survivalkit_tribal/chief/PopulateContents() +/obj/item/storage/survivalkit/tribal/adv/PopulateContents() . = ..() - new /obj/item/reagent_containers/pill/patch/healingpowder(src) - new /obj/item/reagent_containers/pill/patch/healingpowder(src) new /obj/item/reagent_containers/pill/patch/healpoultice(src) - new /obj/item/stack/medical/gauze(src) - new /obj/item/flashlight/flare/torch(src) -/obj/item/storage/survivalkit_adv - name = "survival kit" - desc = "A robust leather pouch containing the essentials for wasteland survival." - icon_state = "survivalkit" - w_class = WEIGHT_CLASS_SMALL +/obj/item/storage/survivalkit/outlaw/PopulateContents() + new /obj/item/reagent_containers/hypospray/medipen/stimpak(src) + new /obj/item/stack/medical/suture(src) + new /obj/item/stack/medical/ointment(src) + new /obj/item/stack/medical/gauze(src) + new /obj/item/flashlight/flare(src) + new /obj/item/reagent_containers/pill/radx(src) -/obj/item/storage/survivalkit_adv/PopulateContents() - . = ..() +/obj/item/storage/survivalkit/adv/PopulateContents() new /obj/item/reagent_containers/hypospray/medipen/stimpak(src) new /obj/item/stack/medical/gauze(src) new /obj/item/flashlight/seclite(src) new /obj/item/reagent_containers/pill/radx(src) -/obj/item/storage/survivalkit_aid +/obj/item/storage/survivalkit/aid name = "individual first aid kit" desc = "A robust leather pouch containing the essentials for trauma care." icon_state = "ifak" - w_class = WEIGHT_CLASS_SMALL -/obj/item/storage/survivalkit_aid/ComponentInitialize() +/obj/item/storage/survivalkit/aid/ComponentInitialize() . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) STR.max_items = 4 -/obj/item/storage/survivalkit_aid/PopulateContents() - . = ..() +/obj/item/storage/survivalkit/aid/PopulateContents() new /obj/item/reagent_containers/hypospray/medipen/stimpak(src) new /obj/item/stack/medical/gauze(src) new /obj/item/stack/medical/suture(src) new /obj/item/stack/medical/ointment(src) -/obj/item/storage/survivalkit_aid_adv +/obj/item/storage/survivalkit/aid/adv name = "advanced-individual first aid kit" desc = "A robust leather pouch containing the essentials for trauma care." icon_state = "ifak" - w_class = WEIGHT_CLASS_SMALL -/obj/item/storage/survivalkit_aid_adv/ComponentInitialize() - . = ..() - var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_items = 4 - -/obj/item/storage/survivalkit_aid_adv/PopulateContents() - . = ..() +/obj/item/storage/survivalkit/aid/adv/PopulateContents() new /obj/item/reagent_containers/hypospray/medipen/stimpak/super(src) new /obj/item/stack/medical/gauze/adv(src) new /obj/item/stack/medical/suture/medicated(src) new /obj/item/stack/medical/mesh(src) + +/obj/item/storage/survivalkit_empty + name = "survival kit" + desc = "A robust leather pouch containing the essentials for wasteland survival." + icon_state = "survivalkit" + w_class = WEIGHT_CLASS_SMALL diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm index 2e458ed5f6..b943451835 100644 --- a/code/game/objects/items/tools/weldingtool.dm +++ b/code/game/objects/items/tools/weldingtool.dm @@ -68,7 +68,7 @@ switch(welding) if(0) force = 3 - damtype = "brute" + damtype = BRUTE update_icon() if(!can_off_process) STOP_PROCESSING(SSobj, src) @@ -76,7 +76,7 @@ //Welders left on now use up fuel, but lets not have them run out quite that fast if(1) force = 15 - damtype = "fire" + damtype = BURN ++burned_fuel_for if(burned_fuel_for >= WELDER_FUEL_BURN_INTERVAL) use(1) diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 6fab329d53..519440541e 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -269,11 +269,7 @@ if (islist(result)) if (result["button"] != 2) // If the user pressed the cancel button // text2num conveniently returns a null on invalid values - armor = armor.setRating(tier = text2num(result["values"]["tier"]),\ - linemelee = text2num(result["values"]["linemelee"]),\ - linebullet = text2num(result["values"]["linebullet"]),\ - linelaser = text2num(result["values"]["linelaser"]),\ - melee = text2num(result["values"]["melee"]),\ + armor = armor.setRating(melee = text2num(result["values"]["melee"]),\ bullet = text2num(result["values"]["bullet"]),\ laser = text2num(result["values"]["laser"]),\ energy = text2num(result["values"]["energy"]),\ @@ -286,8 +282,8 @@ bullet = text2num(result["values"]["bullet"]),\ laser = text2num(result["values"]["laser"]) ) - log_admin("[key_name(usr)] modified the armor on [src] ([type]) to linemelee: [armor.linemelee], linebullet: [armor.linebullet], linelaser: [armor.linelaser], energy: [armor.energy], bomb: [armor.bomb], bio: [armor.bio], rad: [armor.rad], fire: [armor.fire], acid: [armor.acid], melee: [armor.melee], bullet: [armor.bullet], laser: [armor.laser]") - message_admins("[key_name_admin(usr)] modified the armor on [src] ([type]) to linemelee: [armor.linemelee], linebullet: [armor.linebullet], linelaser: [armor.linelaser], energy: [armor.energy], bomb: [armor.bomb], bio: [armor.bio], rad: [armor.rad], fire: [armor.fire], acid: [armor.acid], melee: [armor.melee], bullet: [armor.bullet], laser: [armor.laser]") + log_admin("[key_name(usr)] modified the armor on [src] ([type]) to melee: [armor.melee], bullet: [armor.bullet], laser: [armor.laser] energy: [armor.energy], bomb: [armor.bomb], bio: [armor.bio], rad: [armor.rad], fire: [armor.fire], acid: [armor.acid]") + message_admins("[key_name_admin(usr)] modified the armor on [src] ([type]) to melee: [armor.melee], bullet: [armor.bullet], laser: [armor.laser] energy: [armor.energy], bomb: [armor.bomb], bio: [armor.bio], rad: [armor.rad], fire: [armor.fire], acid: [armor.acid]") if(href_list[VV_HK_MASS_DEL_TYPE]) if(check_rights(R_DEBUG|R_SERVER)) var/action_type = alert("Strict type ([type]) or type and all subtypes?",,"Strict type","Type and subtypes","Cancel") diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index 819dedf589..cb11aa231d 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -753,7 +753,7 @@ backpack_contents = list( /obj/item/ammo_box/magazine/m556/rifle/assault = 1, /obj/item/clothing/head/helmet/f13/combat/ncr_patrol = 1, - /obj/item/storage/survivalkit_aid = 1, + /obj/item/storage/survivalkit/aid = 1, /obj/item/attachments/scope = 1, /obj/item/gun/ballistic/revolver/revolver44 = 1, /obj/item/ammo_box/m44 = 2, diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index fa6bab0fcc..080c9eb66f 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -48,14 +48,34 @@ return // no message spam ..() +/obj/structure/mirror/attacked_by(obj/item/I, mob/living/user) + if(broken || !istype(user) || !I.force) + return ..() + + . = ..() + if(broken) // breaking a mirror truly gets you bad luck! + to_chat(user, "A chill runs down your spine as [src] shatters...") + user.AddComponent(/datum/component/omen, silent=TRUE) // we have our own message + +/obj/structure/mirror/bullet_act(obj/item/projectile/P) + if(broken || !isliving(P.firer) || !P.damage) + return ..() + + . = ..() + if(broken) // breaking a mirror truly gets you bad luck! + var/mob/living/unlucky_dude = P.firer + to_chat(unlucky_dude, "A chill runs down your spine as [src] shatters...") + unlucky_dude.AddComponent(/datum/component/omen, silent=TRUE) // we have our own message + /obj/structure/mirror/obj_break(damage_flag, mapload) - if(!broken && !(flags_1 & NODECONSTRUCT_1)) - icon_state = "mirror_broke" - if(!mapload) - playsound(src, "shatter", 70, 1) - if(desc == initial(desc)) - desc = "Oh no, seven years of bad luck!" - broken = TRUE + if(broken || (flags_1 & NODECONSTRUCT_1)) + return + icon_state = "mirror_broke" + if(!mapload) + playsound(src, "shatter", 70, TRUE) + if(desc == initial(desc)) + desc = "Oh no, seven years of bad luck!" + broken = TRUE /obj/structure/mirror/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm index 62c0715d78..3c3b2b88bd 100644 --- a/code/game/objects/structures/safe.dm +++ b/code/game/objects/structures/safe.dm @@ -21,7 +21,7 @@ FLOOR SAFES var/tumbler_2_open var/dial = 0 //where is the dial pointing? var/space = 0 //the combined w_class of everything in the safe - var/maxspace = 24 //the maximum combined w_class of stuff in the safe + var/maxspace = 48 //the maximum combined w_class of stuff in the safe var/explosion_count = 0 //Tough, but breakable /obj/structure/safe/New() @@ -34,11 +34,14 @@ FLOOR SAFES /obj/structure/safe/Initialize(mapload) - . = ..() + ..() if(!mapload) return + else + return INITIALIZE_HINT_LATELOAD +obj/structure/safe/LateInitialize() for(var/obj/item/I in loc) if(space >= maxspace) return diff --git a/code/game/turfs/openspace/openspace.dm b/code/game/turfs/openspace/openspace.dm index df6b9da640..e3df2f8afc 100644 --- a/code/game/turfs/openspace/openspace.dm +++ b/code/game/turfs/openspace/openspace.dm @@ -83,6 +83,7 @@ Prevents players on higher Zs from seeing into buildings they arent meant to. if(!CanBuildHere()) return if(istype(C, /obj/item/stack/rods)) + var/support var/obj/item/stack/rods/R = C var/obj/structure/lattice/L = locate(/obj/structure/lattice, src) var/obj/structure/lattice/catwalk/W = locate(/obj/structure/lattice/catwalk, src) @@ -97,12 +98,19 @@ Prevents players on higher Zs from seeing into buildings they arent meant to. else to_chat(user, "You need two rods to build a catwalk!") return - if(R.use(1)) - to_chat(user, "You construct a lattice.") - playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE) - ReplaceWithLattice() + for(var/turf/T in range(2, SSmapping.get_turf_below(src))) + if(istype(T, /turf/closed)) + support++ + break + if(support) + if(R.use(1)) + to_chat(user, "You construct a lattice.") + playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE) + ReplaceWithLattice() + else + to_chat(user, "You need one rod to build a lattice.") else - to_chat(user, "You need one rod to build a lattice.") + to_chat(user, "You need some support under this space to make a lattice.") return if(istype(C, /obj/item/stack/tile/plasteel)) if(!CanCoverUp()) @@ -130,7 +138,7 @@ Prevents players on higher Zs from seeing into buildings they arent meant to. if(L) return list("mode" = RCD_FLOORWALL, "delay" = 0, "cost" = 1) else - return list("mode" = RCD_FLOORWALL, "delay" = 0, "cost" = 3) + return FALSE return FALSE /turf/open/transparent/openspace/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode) diff --git a/code/game/turfs/simulated/floor/fancy_floor.dm b/code/game/turfs/simulated/floor/fancy_floor.dm index ce27f8fd24..0986bf37f3 100644 --- a/code/game/turfs/simulated/floor/fancy_floor.dm +++ b/code/game/turfs/simulated/floor/fancy_floor.dm @@ -333,6 +333,10 @@ icon = 'icons/turf/floors/carpet_royalblue.dmi' floor_tile = /obj/item/stack/tile/carpet/royalblue canSmoothWith = list(/turf/open/floor/carpet/royalblue, /turf/open/floor/carpet/royalblue/airless) + +/turf/open/floor/carpet/vault + icon = 'icons/turf/floors/carpet_vault.dmi' + canSmoothWith = list(/turf/open/floor/carpet/vault) //*****Airless versions of all of the above.***** /turf/open/floor/carpet/airless diff --git a/code/modules/WVM/wmv_buyer.dm b/code/modules/WVM/wmv_buyer.dm index 940c6006ef..11e7b9bcef 100644 --- a/code/modules/WVM/wmv_buyer.dm +++ b/code/modules/WVM/wmv_buyer.dm @@ -280,7 +280,6 @@ Fence /obj/item/gun/ballistic/revolver/hobo/knifegun = 8, /obj/item/gun/ballistic/revolver/hobo/pepperbox = 8, /obj/item/gun/ballistic/revolver/single_shotgun = 8, - /obj/item/gun/ballistic/revolver/colt6520 = 8, /obj/item/gun/ballistic/automatic/pistol/n99 = 8, /obj/item/gun/ballistic/automatic/pistol/pistol22 = 8, /obj/item/gun/ballistic/automatic/pistol/ninemil = 8, @@ -297,7 +296,7 @@ Fence /obj/item/gun/ballistic/rifle/hobo/lasmusket = 15, /obj/item/stack/crafting/armor_plate = 20, ) - + /obj/machinery/mineral/wasteland_trader/gunbuyer/ui_interact(mob/user) . = ..() var/dat @@ -315,7 +314,7 @@ Fence dat += "Does not accept weapons of historical or artisanal value. Those belong in a musuem." dat += "" dat += "" - + var/datum/browser/popup = new(user, "tradingvendor", "Trading point", 400, 500) popup.set_content(dat) popup.open() diff --git a/code/modules/WVM/wvm.dm b/code/modules/WVM/wvm.dm index 5353752140..42ad587305 100644 --- a/code/modules/WVM/wvm.dm +++ b/code/modules/WVM/wvm.dm @@ -596,13 +596,19 @@ GLOBAL_VAR_INIT(vendor_cash, 0) new /datum/data/wasteland_equipment("Gas Mask", /obj/item/clothing/mask/gas, 50), new /datum/data/wasteland_equipment("Advanced Mop", /obj/item/mop/advanced, 100), new /datum/data/wasteland_equipment("Fixer", /obj/item/storage/pill_bottle/chem_tin/fixer, 200), - new /datum/data/wasteland_equipment("X-tra Large Beaker", /obj/item/reagent_containers/glass/beaker/plastic, 500), + new /datum/data/wasteland_equipment("Metamaterial Beaker", /obj/item/reagent_containers/glass/beaker/meta, 500), new /datum/data/wasteland_equipment("Medical HUD", /obj/item/clothing/glasses/hud/health, 500), + new /datum/data/wasteland_equipment("Prosthetic Left Arm", /obj/item/bodypart/l_arm/robot, 600), + new /datum/data/wasteland_equipment("Prosthetic Right Arm", /obj/item/bodypart/r_arm/robot, 600), + new /datum/data/wasteland_equipment("Prosthetic Left Leg", /obj/item/bodypart/l_leg/robot, 600), + new /datum/data/wasteland_equipment("Prosthetic Right Leg", /obj/item/bodypart/r_leg/robot, 600), + new /datum/data/wasteland_equipment("Integrated Toolset Implant", /obj/item/organ/cyberimp/arm/toolset, 700), new /datum/data/wasteland_equipment("Defibrillator", /obj/item/defibrillator, 1000), - new /datum/data/wasteland_equipment("Integrated Toolset Implant", /obj/item/organ/cyberimp/arm/toolset, 2000), - new /datum/data/wasteland_equipment("Upgraded Prosthethic Limbs", /obj/item/storage/box/sparelimbs, 2000), + new /datum/data/wasteland_equipment("Chest reviver Implant", /obj/item/organ/cyberimp/chest/reviver, 1500), + new /datum/data/wasteland_equipment("Upgraded Prosthetic Limbs", /obj/item/storage/box/sparelimbs, 2000), new /datum/data/wasteland_equipment("Cat", /mob/living/simple_animal/pet/cat/Runtime, 10000), ) + highpop_list = list( new /datum/data/wasteland_equipment("Medicated Suture", /obj/item/stack/medical/suture/medicated, 45), new /datum/data/wasteland_equipment("Advanced Regen. Mesh", /obj/item/stack/medical/mesh/advanced, 45), @@ -610,11 +616,16 @@ GLOBAL_VAR_INIT(vendor_cash, 0) new /datum/data/wasteland_equipment("Gas Mask", /obj/item/clothing/mask/gas, 50), new /datum/data/wasteland_equipment("Advanced Mop", /obj/item/mop/advanced, 100), new /datum/data/wasteland_equipment("Fixer", /obj/item/storage/pill_bottle/chem_tin/fixer, 200), - new /datum/data/wasteland_equipment("X-tra Large Beaker", /obj/item/reagent_containers/glass/beaker/plastic, 500), + new /datum/data/wasteland_equipment("Metamaterial Beaker", /obj/item/reagent_containers/glass/beaker/meta, 500), new /datum/data/wasteland_equipment("Medical HUD", /obj/item/clothing/glasses/hud/health, 500), + new /datum/data/wasteland_equipment("Prosthetic Left Arm", /obj/item/bodypart/l_arm/robot, 600), + new /datum/data/wasteland_equipment("Prosthetic Right Arm", /obj/item/bodypart/r_arm/robot, 600), + new /datum/data/wasteland_equipment("Prosthetic Left Leg", /obj/item/bodypart/l_leg/robot, 600), + new /datum/data/wasteland_equipment("Prosthetic Right Leg", /obj/item/bodypart/r_leg/robot, 600), + new /datum/data/wasteland_equipment("Integrated Toolset Implant", /obj/item/organ/cyberimp/arm/toolset, 700), new /datum/data/wasteland_equipment("Defibrillator", /obj/item/defibrillator, 1000), - new /datum/data/wasteland_equipment("Integrated Toolset Implant", /obj/item/organ/cyberimp/arm/toolset, 2000), - new /datum/data/wasteland_equipment("Upgraded Prosthethic Limbs", /obj/item/storage/box/sparelimbs, 2000), + new /datum/data/wasteland_equipment("Chest reviver Implant", /obj/item/organ/cyberimp/chest/reviver, 1500), + new /datum/data/wasteland_equipment("Upgraded Prosthetic Limbs", /obj/item/storage/box/sparelimbs, 2000), new /datum/data/wasteland_equipment("Cat", /mob/living/simple_animal/pet/cat/Runtime, 10000), ) @@ -632,7 +643,7 @@ GLOBAL_VAR_INIT(vendor_cash, 0) ) highpop_list = list( new /datum/data/wasteland_equipment("survival knife", /obj/item/melee/onehanded/knife/survival, 40), - new /datum/data/wasteland_equipment("9mm pistol", /obj/item/gun/ballistic/automatic/pistol/ninemil, 60), + new /datum/data/wasteland_equipment("9mm pistol", /obj/item/gun/ballistic/automatic/pistol/beretta, 60), new /datum/data/wasteland_equipment("M1911", /obj/item/gun/ballistic/automatic/pistol/m1911, 70), new /datum/data/wasteland_equipment("Guns and Bullets, Part 1", /obj/item/book/granter/crafting_recipe/gunsmith_one, 100), new /datum/data/wasteland_equipment("Guns and Bullets, Part 2", /obj/item/book/granter/crafting_recipe/gunsmith_two, 200), @@ -645,7 +656,7 @@ GLOBAL_VAR_INIT(vendor_cash, 0) icon_state = "ammo_idle" prize_list = list( new /datum/data/wasteland_equipment("Handgun magazine (.45)", /obj/item/ammo_box/magazine/m45, 50), - new /datum/data/wasteland_equipment("9mm pistol magazine (9mm)", /obj/item/ammo_box/magazine/m9mm, 50), + new /datum/data/wasteland_equipment("9mm pistol magazine (9mm)", /obj/item/ammo_box/magazine/m9mmds, 50), new /datum/data/wasteland_equipment("10mm pistol magazine (10mm)", /obj/item/ammo_box/magazine/m10mm_adv/simple, 60), new /datum/data/wasteland_equipment("Speed strip (.357)", /obj/item/ammo_box/a357, 70), new /datum/data/wasteland_equipment("Smoke Bomb", /obj/item/grenade/smokebomb, 70), diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index e7c6a5995e..563e90b7b9 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -367,6 +367,9 @@ GLOBAL_PROTECT(admin_verbs_hideable) message_admins("[key_name_admin(usr)] re-entered corpse") ghost.can_reenter_corpse = 1 //force re-entering even when otherwise not possible ghost.reenter_corpse() + if(isliving(mob)) + var/mob/living/L = mob + L.living_flags &= ~HIDE_OFFLINE_INDICATOR SSblackbox.record_feedback("tally", "admin_verb", 1, "Admin Reenter") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! else if(isnewplayer(mob)) to_chat(src, "Error: Aghost: Can't admin-ghost whilst in the lobby. Join or Observe first.") @@ -376,6 +379,9 @@ GLOBAL_PROTECT(admin_verbs_hideable) log_admin("[key_name(usr)] admin ghosted.") message_admins("[key_name_admin(usr)] admin ghosted.") var/mob/body = mob + if(isliving(body)) + var/mob/living/livingbody = body + livingbody.living_flags |= HIDE_OFFLINE_INDICATOR body.ghostize(1, voluntary = TRUE) if(body && !body.key) body.key = "@[key]" //Haaaaaaaack. But the people have spoken. If it breaks; blame adminbus diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2.dm b/code/modules/admin/verbs/SDQL2/SDQL_2.dm index bd9088eff2..f8fd94142f 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2.dm @@ -266,7 +266,7 @@ var/selectors_used = FALSE var/list/combined_refs = list() do - CHECK_TICK + stoplag(2) finished = TRUE for(var/i in running) var/datum/sdql2_query/query = i diff --git a/code/modules/arousal/arousal.dm b/code/modules/arousal/arousal.dm index 1d698ec111..863ab4f337 100644 --- a/code/modules/arousal/arousal.dm +++ b/code/modules/arousal/arousal.dm @@ -171,23 +171,6 @@ else if(!silent) to_chat(src, "You cannot do this without an appropriate container.") -/mob/living/carbon/human/proc/available_rosie_palms(silent = FALSE, list/whitelist_typepaths = list(/obj/item/dildo)) - if(restrained(TRUE)) //TRUE ignores grabs - if(!silent) - to_chat(src, "You can't do that while restrained!") - return FALSE - if(!get_num_arms() || !get_empty_held_indexes()) - if(whitelist_typepaths) - if(!islist(whitelist_typepaths)) - whitelist_typepaths = list(whitelist_typepaths) - for(var/path in whitelist_typepaths) - if(is_holding_item_of_type(path)) - return TRUE - if(!silent) - to_chat(src, "You need at least one free arm.") - return FALSE - return TRUE - //Here's the main proc itself /mob/living/carbon/human/proc/mob_climax(forced_climax=FALSE) //Forced is instead of the other proc, makes you cum if you have the tools for it, ignoring restraints if(mb_cd_timer > world.time) @@ -240,43 +223,8 @@ return //Ok, now we check what they want to do. - var/choice = input(src, "Select sexual activity", "Sexual activity:") as null|anything in list("Climax alone","Climax with partner", "Fill container") + var/choice = input(src, "Select sexual activity", "Sexual activity:") as null|anything in list("Climax with partner") if(!choice) return - switch(choice) - if("Climax alone") - if(!available_rosie_palms()) - return - var/obj/item/organ/genital/picked_organ = pick_climax_genitals() - if(picked_organ && available_rosie_palms(TRUE)) - mob_climax_outside(picked_organ) - if("Climax with partner") - //We need no hands, we can be restrained and so on, so let's pick an organ - var/obj/item/organ/genital/picked_organ = pick_climax_genitals() - if(picked_organ) - var/mob/living/partner = pick_partner() //Get someone - if(partner) - var/spillage = input(src, "Would your fluids spill outside?", "Choose overflowing option", "Yes") as null|anything in list("Yes", "No") - if(spillage && in_range(src, partner)) - mob_climax_partner(picked_organ, partner, spillage == "Yes" ? TRUE : FALSE) - if("Fill container") - //We'll need hands and no restraints. - if(!available_rosie_palms(FALSE, /obj/item/reagent_containers)) - return - //We got hands, let's pick an organ - var/obj/item/organ/genital/picked_organ - picked_organ = pick_climax_genitals() //Gotta be climaxable, not just masturbation, to fill with fluids. - if(picked_organ) - //Good, got an organ, time to pick a container - var/obj/item/reagent_containers/fluid_container = pick_climax_container() - if(fluid_container && available_rosie_palms(TRUE, /obj/item/reagent_containers)) - mob_fill_container(picked_organ, fluid_container) - mb_cd_timer = world.time + mb_cd_length - -/*/mob/living/carbon/human/verb/climax_verb() // LoneStar removal. - set category = "IC" - set name = "Climax" - set desc = "Lets you choose a couple ways to ejaculate." - mob_climax()*/ diff --git a/code/modules/arousal/toys/dildos.dm b/code/modules/arousal/toys/dildos.dm deleted file mode 100644 index 3f6fa9bb45..0000000000 --- a/code/modules/arousal/toys/dildos.dm +++ /dev/null @@ -1,160 +0,0 @@ -////////// -//DILDOS// -////////// -/obj/item/dildo - name = "dildo" - desc = "Floppy!" - icon = 'icons/obj/genitals/dildo.dmi' - force = 0 - hitsound = 'sound/weapons/tap.ogg' - throwforce = 0 - icon_state = "dildo_knotted_2" - alpha = 192//transparent - var/can_customize = FALSE - var/dildo_shape = "human" - var/dildo_size = 2 - var/dildo_type = "dildo"//pretty much just used for the icon state - var/random_color = TRUE - var/random_size = FALSE - var/random_shape = FALSE - var/is_knotted = FALSE - //Lists moved to _cit_helpers.dm as globals so they're not instanced individually - -/obj/item/dildo/proc/update_appearance() - icon_state = "[dildo_type]_[dildo_shape]_[dildo_size]" - var/sizeword = "" - switch(dildo_size) - if(1) - sizeword = "small " - if(3) - sizeword = "big " - if(4) - sizeword = "huge " - if(5) - sizeword = "gigantic " - - name = "[sizeword][dildo_shape] [can_customize ? "custom " : ""][dildo_type]" - -/obj/item/dildo/AltClick(mob/living/user) - . = ..() - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) - return - customize(user) - return TRUE - -/obj/item/dildo/proc/customize(mob/living/user) - if(!can_customize) - return FALSE - if(src && !user.incapacitated() && in_range(user,src)) - var/color_choice = input(user,"Choose a color for your dildo.","Dildo Color") as null|anything in GLOB.dildo_colors - if(src && color_choice && !user.incapacitated() && in_range(user,src)) - sanitize_inlist(color_choice, GLOB.dildo_colors, "Red") - color = GLOB.dildo_colors[color_choice] - update_appearance() - if(src && !user.incapacitated() && in_range(user,src)) - var/shape_choice = input(user,"Choose a shape for your dildo.","Dildo Shape") as null|anything in GLOB.dildo_shapes - if(src && shape_choice && !user.incapacitated() && in_range(user,src)) - sanitize_inlist(shape_choice, GLOB.dildo_colors, "Knotted") - dildo_shape = GLOB.dildo_shapes[shape_choice] - update_appearance() - if(src && !user.incapacitated() && in_range(user,src)) - var/size_choice = input(user,"Choose the size for your dildo.","Dildo Size") as null|anything in GLOB.dildo_sizes - if(src && size_choice && !user.incapacitated() && in_range(user,src)) - sanitize_inlist(size_choice, GLOB.dildo_colors, "Medium") - dildo_size = GLOB.dildo_sizes[size_choice] - update_appearance() - if(src && !user.incapacitated() && in_range(user,src)) - var/transparency_choice = input(user,"Choose the transparency of your dildo. Lower is more transparent!(192-255)","Dildo Transparency") as null|num - if(src && transparency_choice && !user.incapacitated() && in_range(user,src)) - sanitize_integer(transparency_choice, 192, 255, 192) - alpha = transparency_choice - update_appearance() - return TRUE - -/obj/item/dildo/Initialize() - . = ..() - if(random_color == TRUE) - var/randcolor = pick(GLOB.dildo_colors) - color = GLOB.dildo_colors[randcolor] - if(random_shape == TRUE) - var/randshape = pick(GLOB.dildo_shapes) - dildo_shape = GLOB.dildo_shapes[randshape] - if(random_size == TRUE) - var/randsize = pick(GLOB.dildo_sizes) - dildo_size = GLOB.dildo_sizes[randsize] - update_appearance() - alpha = rand(192, 255) - pixel_y = rand(-7,7) - pixel_x = rand(-7,7) - -/obj/item/dildo/examine(mob/user) - . = ..() - if(can_customize) - . += "Alt-Click \the [src.name] to customize it." - -/obj/item/dildo/random//totally random - name = "random dildo"//this name will show up in vendors and shit so you know what you're vending(or don't, i guess :^)) - random_color = TRUE - random_shape = TRUE - random_size = TRUE - -/obj/item/dildo/knotted - dildo_shape = "knotted" - name = "knotted dildo" - attack_verb = list("penetrated", "knotted", "slapped", "inseminated") - -obj/item/dildo/human - dildo_shape = "human" - name = "human dildo" - attack_verb = list("penetrated", "slapped", "inseminated") - -obj/item/dildo/plain - dildo_shape = "plain" - name = "plain dildo" - attack_verb = list("penetrated", "slapped", "inseminated") - -obj/item/dildo/flared - dildo_shape = "flared" - name = "flared dildo" - attack_verb = list("penetrated", "slapped", "neighed", "gaped", "prolapsed", "inseminated") - -obj/item/dildo/flared/huge - name = "literal horse cock" - desc = "THIS THING IS HUGE!" - dildo_size = 4 - force = 10 - -obj/item/dildo/custom - name = "customizable dildo" - desc = "Thanks to significant advances in synthetic nanomaterials, this dildo is capable of taking on many different forms to fit the user's preferences! Pricy!" - can_customize = TRUE - random_color = TRUE - random_shape = TRUE - random_size = TRUE - -// Suicide acts, by request - -/obj/item/dildo/proc/manual_suicide(mob/living/user) - user.visible_message("[user] finally finishes deepthroating the [src], and their life.") - user.adjustOxyLoss(200) - user.death(0) - -/obj/item/dildo/suicide_act(mob/living/user) -// is_knotted = ((src.dildo_shape == "knotted")?"They swallowed the knot":"Their face is turning blue") - if(do_after(user,17,target=src)) - user.visible_message("[user] tears-up and gags as they shove [src] down their throat! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) - user.Stun(150) - user.adjust_blurriness(8) - var/obj/item/organ/eyes/eyes = user.getorganslot(ORGAN_SLOT_EYES) - eyes?.applyOrganDamage(10) - return MANUAL_SUICIDE - -/obj/item/dildo/flared/huge/suicide_act(mob/living/user) - if(do_after(user,35,target=src)) - user.visible_message("[user] tears-up and gags as they try to deepthroat the [src]! WHY WOULD THEY DO THAT? It looks like [user.p_theyre()] trying to commit suicide!!") - playsound(loc, 'sound/weapons/gagging.ogg', 50, 2, -1) - user.Stun(300) - user.adjust_blurriness(8) - return MANUAL_SUICIDE - diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index 29e6d56ab8..d2bea5d1d2 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -245,24 +245,6 @@ ) */ -/datum/asset/spritesheet/simple/minesweeper - name = "minesweeper" - assets = list( - "1" = 'icons/ui_icons/minesweeper_tiles/one.png', - "2" = 'icons/ui_icons/minesweeper_tiles/two.png', - "3" = 'icons/ui_icons/minesweeper_tiles/three.png', - "4" = 'icons/ui_icons/minesweeper_tiles/four.png', - "5" = 'icons/ui_icons/minesweeper_tiles/five.png', - "6" = 'icons/ui_icons/minesweeper_tiles/six.png', - "7" = 'icons/ui_icons/minesweeper_tiles/seven.png', - "8" = 'icons/ui_icons/minesweeper_tiles/eight.png', - "empty" = 'icons/ui_icons/minesweeper_tiles/empty.png', - "flag" = 'icons/ui_icons/minesweeper_tiles/flag.png', - "hidden" = 'icons/ui_icons/minesweeper_tiles/hidden.png', - "mine" = 'icons/ui_icons/minesweeper_tiles/mine.png', - "minehit" = 'icons/ui_icons/minesweeper_tiles/minehit.png' - ) - /datum/asset/spritesheet/simple/pills name = "pills" assets = list( diff --git a/code/modules/cargo/packs/misc.dm b/code/modules/cargo/packs/misc.dm index c1319f5f83..0074f6839f 100644 --- a/code/modules/cargo/packs/misc.dm +++ b/code/modules/cargo/packs/misc.dm @@ -145,8 +145,6 @@ /obj/item/circuitboard/computer/arcade/battle, /obj/item/circuitboard/computer/arcade/orion_trail, /obj/item/circuitboard/computer/arcade/orion_trail, - /obj/item/circuitboard/computer/arcade/minesweeper, - /obj/item/circuitboard/computer/arcade/minesweeper, /obj/item/circuitboard/computer/slot_machine, /obj/item/circuitboard/computer/slot_machine, /obj/item/circuitboard/computer/slot_machine, @@ -395,26 +393,6 @@ /obj/item/stack/tile/noslip/thirty) crate_name = "high-traction floor tiles crate" -////////////////////////////////////////////////////////////////////////////// -//////////////////////////////// Lewd Supplies /////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -/datum/supply_pack/misc/lewd - name = "Lewd Crate" // OwO - desc = "Pssst, want to have a good time with your sluts? Well I got what you want! Maid clothing, dildos, collars and more!" - cost = 5250 - contraband = TRUE - contains = list(/obj/item/dildo/custom, - /obj/item/dildo/custom, - /obj/item/clothing/under/costume/maid, - /obj/item/clothing/under/costume/maid, - /obj/item/electropack/shockcollar, - /obj/item/electropack/shockcollar, - /obj/item/restraints/handcuffs/fake/kinky, - /obj/item/restraints/handcuffs/fake/kinky) - crate_name = "lewd kit" - crate_type = /obj/structure/closet/crate - ///Special supply crate that generates random syndicate gear up to a determined TC value /datum/supply_pack/misc/syndicate diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index c816d79d0f..04a332d914 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -717,9 +717,9 @@ Records disabled until a use for them is found dat += "Auto stand: [autostand ? "Enabled" : "Disabled"]
" dat += "Auto OOC: [auto_ooc ? "Disabled" : "Enabled" ]
" dat += "Force Slot Storage HUD: [no_tetris_storage ? "Enabled" : "Disabled"]
" -// dat += "Screen Shake: [(screenshake==100) ? "Full" : ((screenshake==0) ? "None" : "[screenshake]")]
" -// if (user && user.client && !user.client.prefs.screenshake==0) -// dat += "Damage Screen Shake: [(damagescreenshake==1) ? "On" : ((damagescreenshake==0) ? "Off" : "Only when down")]
" + dat += "Screen Shake: [(screenshake==100) ? "Full" : ((screenshake==0) ? "None" : "[screenshake]")]
" + if (user && user.client && !user.client.prefs.screenshake==0) + dat += "Damage Screen Shake: [(damagescreenshake==1) ? "On" : ((damagescreenshake==0) ? "Off" : "Only when down")]
" var/p_chaos if (!preferred_chaos) p_chaos = "No preference" diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index f4e1cb8479..575b09754d 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -262,22 +262,22 @@ if(LAZYLEN(armor_list)) armor_list.Cut() - if(armor.bio) - armor_list += list("TOXIN" = armor.bio) - if(armor.bomb) - armor_list += list("EXPLOSIVE" = armor.bomb) + if(armor.melee) + armor_list += list("MELEE" = armor.melee) if(armor.bullet) armor_list += list("BULLET" = armor.bullet) - if(armor.energy) - armor_list += list("ENERGY" = armor.energy) if(armor.laser) armor_list += list("LASER" = armor.laser) - if(armor.magic) - armor_list += list("MAGIC" = armor.magic) - if(armor.melee) - armor_list += list("MELEE" = armor.melee) + if(armor.energy) + armor_list += list("ENERGY" = armor.energy) + if(armor.bio) + armor_list += list("TOXIN" = armor.bio) + if(armor.bomb) + armor_list += list("EXPLOSIVE" = armor.bomb) if(armor.rad) armor_list += list("RADIATION" = armor.rad) + if(armor.magic) + armor_list += list("MAGIC" = armor.magic) if(LAZYLEN(durability_list)) durability_list.Cut() @@ -286,8 +286,8 @@ if(armor.acid) durability_list += list("ACID" = armor.acid) - //if(LAZYLEN(armor_list) || LAZYLEN(durability_list)) - // . += "It has a tag listing its protection classes." + if(LAZYLEN(armor_list) || LAZYLEN(durability_list)) + . += "It has a tag listing its protection classes." /obj/item/clothing/Topic(href, href_list) . = ..() @@ -298,48 +298,16 @@ readout += "\nARMOR" for(var/dam_type in armor_list) var/armor_amount = armor_list[dam_type] - readout += "\n[dam_type] [armor_to_protection_class(armor_amount)]" //e.g. BOMB IV + readout += "\n[dam_type] [armor_amount]" //e.g. MELEE 27 if(LAZYLEN(durability_list)) readout += "\nDURABILITY" for(var/dam_type in durability_list) var/durability_amount = durability_list[dam_type] - readout += "\n[dam_type] [armor_to_protection_class(durability_amount)]" //e.g. FIRE II + readout += "\n[dam_type] [durability_amount]" //e.g. ACID 20 readout += "" to_chat(usr, "[readout.Join()]") -/** - * Rounds armor_value to nearest 10, divides it by 10 and then expresses it in roman numerals up to 10 - * - * Rounds armor_value to nearest 10, divides it by 10 - * and then expresses it in roman numerals up to 10 - * Arguments: - * * armor_value - Number we're converting - */ -/obj/item/clothing/proc/armor_to_protection_class(armor_value) - armor_value = round(armor_value,10) / 10 - switch (armor_value) - if (1) - . = "I" - if (2) - . = "II" - if (3) - . = "III" - if (4) - . = "IV" - if (5) - . = "V" - if (6) - . = "VI" - if (7) - . = "VII" - if (8) - . = "VIII" - if (9) - . = "IX" - if (10 to INFINITY) - . = "X" - return . /obj/item/clothing/obj_break(damage_flag) damaged_clothes = CLOTHING_DAMAGED diff --git a/code/modules/clothing/head/f13factionhead.dm b/code/modules/clothing/head/f13factionhead.dm index 0512ee3f1c..2eac62f028 100644 --- a/code/modules/clothing/head/f13factionhead.dm +++ b/code/modules/clothing/head/f13factionhead.dm @@ -55,7 +55,7 @@ icon_state = "supafly" item_state = "supafly" flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH - armor = list("melee" = 35, "bullet" = 35, "laser" = 30, energy = "20", "bio" = 0, "rad" = 0, "fire" = 25, "acid" = 25) + armor = list("melee" = 35, "bullet" = 35, "laser" = 30, energy = "20", "bio" = 0, "rad" = 0, "fire" = 25, "acid" = 25, "wound" = 40) flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR slowdown = 0 @@ -86,7 +86,7 @@ icon_state = "arclight" item_state = "arclight" visor_flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE - armor = list("melee" = 30, "bullet" = 30, "laser" = 30, "bio" = 0, "rad" = 0, "fire" = 25, "acid" = 25) + armor = list("melee" = 30, "bullet" = 30, "laser" = 30, "bio" = 0, "rad" = 0, "fire" = 25, "acid" = 25, "wound" = 40) flash_protect = 2 tint = 0.5 @@ -99,7 +99,7 @@ desc = "A sturdy helmet to protect against both the elements and from harm, if only it was not looking in such poor condition." icon_state = "blastmaster" item_state = "blastmaster" - armor = list("melee" = 40, "bullet" = 20, "laser" = 40, "bio" = 0, "bomb" = 50, "rad" = 0, "fire" = 25, "acid" = 25) + armor = list("melee" = 40, "bullet" = 20, "laser" = 40, "bio" = 0, "bomb" = 50, "rad" = 0, "fire" = 25, "acid" = 25, "wound" = 40) dynamic_hair_suffix = "" dynamic_fhair_suffix = "" @@ -151,7 +151,7 @@ desc = "A leather cap cobbled together adorned with a bighorner skull, perfect for any drug-fueled frenzy." icon_state = "fiend" item_state = "fiend" - armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 20, "bomb" = 40, "bio" = 40, "rad" = 20, "fire" = 60, "acid" = 20) + armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 20, "bomb" = 40, "bio" = 40, "rad" = 20, "fire" = 60, "acid" = 20, "wound" = 40) flags_inv = HIDEEARS|HIDEHAIR /obj/item/clothing/head/helmet/f13/fiend_reinforced @@ -159,7 +159,7 @@ desc = "A leather cap cobbled together adorned with a bighorner skull, perfect for any drug-fueled frenzy. This helmet has been reinforced with metal plates under its skull" icon_state = "fiend" item_state = "fiend" - armor = list("melee" = 40, "bullet" = 40, "laser" = 35, "energy" = 20, "bomb" = 45, "bio" = 40, "rad" = 20, "fire" = 60, "acid" = 20) + armor = list("melee" = 40, "bullet" = 40, "laser" = 35, "energy" = 20, "bomb" = 45, "bio" = 40, "rad" = 20, "fire" = 60, "acid" = 20, "wound" = 40) flags_inv = HIDEEARS|HIDEHAIR slowdown = 0.025 @@ -169,7 +169,7 @@ icon_state = "raidermetal" item_state = "raidermetal" can_toggle = TRUE - armor = list("melee" = 35, "bullet" = 25, "laser" = 40, "energy" = 25, "bomb" = 45, "bio" = 30, "rad" = 15, "fire" = 60, "acid" = 0) + armor = list("melee" = 35, "bullet" = 25, "laser" = 40, "energy" = 25, "bomb" = 45, "bio" = 30, "rad" = 15, "fire" = 60, "acid" = 0, "wound" = 40) flags_inv = HIDEMASK|HIDEEYES|HIDEFACE strip_delay = 80 flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH @@ -180,7 +180,7 @@ desc = "A combat helmet modified with metal plating" icon_state = "raider_combat_helmet" item_state = "raider_combat_helmet" - armor = list("melee" = 37, "bullet" = 27, "laser" = 42, "energy" = 27, "bomb" = 47, "bio" = 30, "rad" = 15, "fire" = 60, "acid" = 0) + armor = list("melee" = 37, "bullet" = 27, "laser" = 42, "energy" = 27, "bomb" = 47, "bio" = 30, "rad" = 15, "fire" = 60, "acid" = 0, "wound" = 40) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR slowdown = 0.025 @@ -194,7 +194,6 @@ item_state = "hat_enclave_science" flags_inv = HIDEEARS|HIDEFACE flags_cover = null - armor = list("tier" = 1) /obj/item/clothing/head/helmet/f13/helmet/enclave/intel name = "intel beret" @@ -203,7 +202,6 @@ item_state = "hat_enclave_intel" flags_inv = HIDEEARS|HIDEFACE flags_cover = null - armor = list("tier" = 3) /obj/item/clothing/head/helmet/f13/helmet/enclave/peacekeeper name = "peacekeeper cap" @@ -214,14 +212,13 @@ strip_delay = 50 dynamic_hair_suffix = "" dynamic_fhair_suffix = "" - armor = list("tier" = 4) /obj/item/clothing/head/helmet/f13/helmet/enclave/officer name = "enclave officer hat" - desc = "(VII) Wheeled hat with a cap made of light-weight alloys beneath." + desc = "Wheeled hat with a cap made of light-weight alloys beneath." icon_state = "hat_enclave_officer" item_state = "hat_enclave_officer" - armor = list("tier" = 7, "energy" = 45, "bomb" = 60, "bio" = 60, "rad" = 15, "fire" = 60, "acid" = 30) // On par with BoS Knight + ////////// //LEGION// @@ -235,7 +232,7 @@ mob_overlay_icon = 'icons/fallout/onmob/clothes/head.dmi' lefthand_file = "" righthand_file = "" - armor = list("melee" = 30, "bullet" = 30, "laser" = 10, "energy" = 10, "bomb" = 15, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0) + armor = list("melee" = 30, "bullet" = 30, "laser" = 10, "energy" = 10, "bomb" = 15, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0, "wound" = 40) flags_inv = HIDEEARS|HIDEHAIR strip_delay = 50 dynamic_hair_suffix = "" @@ -257,14 +254,14 @@ desc = "It's a leather skullcap issued to recruits." icon_state = "legion-recruit" item_state = "legion-recruit" - + /obj/item/clothing/head/helmet/f13/legion/prime name = "legion prime helmet" desc = "A helmet from reinforced leather with a red peak." item_state = "legion-prime" icon_state = "legion-prime" - armor = list("melee" = 35, "bullet" = 35, "laser" = 15, "energy" = 10, "bomb" = 20, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0) + armor = list("melee" = 35, "bullet" = 35, "laser" = 15, "energy" = 10, "bomb" = 20, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0, "wound" = 40) /obj/item/clothing/head/helmet/f13/legion/prime/slavemaster name = "slavemaster helmet" @@ -280,21 +277,21 @@ desc = "It's a metal legion veteran helmet, clearly inspired by old world sports uniforms." icon_state = "legion-veteran" item_state = "legion-veteran" - armor = list("melee" = 37, "bullet" = 37, "laser" = 20, "energy" = 15, "bomb" = 30, "bio" = 5, "rad" = 5, "fire" = 35, "acid" = 0) - + armor = list("melee" = 37, "bullet" = 37, "laser" = 20, "energy" = 15, "bomb" = 30, "bio" = 5, "rad" = 5, "fire" = 35, "acid" = 0, "wound" = 40) + /obj/item/clothing/head/helmet/f13/legion/vet/explorer name = "legion explorer hood" desc = "(It's a leather hood with metal reinforcments and built in headphones to plug the radio into." icon_state = "legion-explorer" item_state = "legion-explorer" - armor = list("melee" = 35, "bullet" = 35, "laser" = 15, "energy" = 10, "bomb" = 20, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0) - + armor = list("melee" = 35, "bullet" = 35, "laser" = 15, "energy" = 10, "bomb" = 20, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0, "wound" = 40) + /obj/item/clothing/head/helmet/f13/legion/vet/combvexil name = "legion bear vexillarius helmet" desc = "This helmet is decorated with the pelt of a ashland bear." icon_state = "legion-vex" item_state = "legion-vex" - armor = list("melee" = 35, "bullet" = 35, "laser" = 15, "energy" = 10, "bomb" = 20, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0) + armor = list("melee" = 35, "bullet" = 35, "laser" = 15, "energy" = 10, "bomb" = 20, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0, "wound" = 40) /obj/item/clothing/head/helmet/f13/legion/vet/vexil name = "legion fox vexillarius helmet" @@ -302,34 +299,39 @@ icon_state = "legion-vex-alt" item_state = "legion-vex-alt" +/obj/item/clothing/head/helmet/f13/legion/vet/nightvexil + name = "legion nightstalker vexillarius helmet" + desc = "This helmet is decorated with the pelt of a nightstalker." + icon_state = "legion-vex-night" + item_state = "legion-vex-night" /obj/item/clothing/head/helmet/f13/legion/venator name = "legion venator hood" desc = "A leather hood with a sturdy metal skullcap and a gold bull insignia in the front." icon_state = "legion-venator" item_state = "legion-venator" - armor = list("melee" = 35, "bullet" = 35, "laser" = 15, "energy" = 10, "bomb" = 20, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0) + armor = list("melee" = 35, "bullet" = 35, "laser" = 15, "energy" = 10, "bomb" = 20, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0, "wound" = 40) /obj/item/clothing/head/helmet/f13/legion/recruit/decan name = "legion recruit decanus helmet" desc = "This reinforced leather helmet has a plume of black and dark red feathers." icon_state = "legion-decrec" item_state = "legion-decrec" - armor = list("melee" = 37, "bullet" = 37, "laser" = 20, "energy" = 15, "bomb" = 30, "bio" = 5, "rad" = 5, "fire" = 35, "acid" = 0) + armor = list("melee" = 37, "bullet" = 37, "laser" = 20, "energy" = 15, "bomb" = 30, "bio" = 5, "rad" = 5, "fire" = 35, "acid" = 0, "wound" = 40) /obj/item/clothing/head/helmet/f13/legion/prime/decan name = "legion prime decanus helmet" desc = "This reinforced leather helmet with a red peak has a plume of black feathers." item_state = "legion-decprime" icon_state = "legion-decprime" - armor = list("melee" = 37, "bullet" = 37, "laser" = 20, "energy" = 15, "bomb" = 30, "bio" = 5, "rad" = 5, "fire" = 35, "acid" = 0) + armor = list("melee" = 37, "bullet" = 37, "laser" = 20, "energy" = 15, "bomb" = 30, "bio" = 5, "rad" = 5, "fire" = 35, "acid" = 0, "wound" = 40) /obj/item/clothing/head/helmet/f13/legion/heavy name = "reinforced legion veteran decanus helmet" desc = "A metal helmet with ballistic visor and a plume, denoting veteran Decanus status." icon_state = "legion-decvet" item_state = "legion-decvet" - armor = list("melee" = 35, "bullet" = 50, "laser" = 15, "energy" = 15, "bomb" = 25, "bio" = 50, "rad" = 20, "fire" = 70, "acid" = 0) + armor = list("melee" = 35, "bullet" = 50, "laser" = 15, "energy" = 15, "bomb" = 25, "bio" = 50, "rad" = 20, "fire" = 70, "acid" = 0, "wound" = 40) actions_types = list(/datum/action/item_action/toggle) /obj/item/clothing/head/helmet/f13/legion/heavy/attack_self(mob/user) @@ -342,14 +344,14 @@ desc = "It's a metal helmet with an array of red, white and black feathers, unmistakably a Veteran Decanus." icon_state = "legion-decvet-alt" item_state = "legion-decvet-alt" - armor = list("melee" = 37, "bullet" = 37, "laser" = 20, "energy" = 15, "bomb" = 30, "bio" = 5, "rad" = 5, "fire" = 35, "acid" = 0) + armor = list("melee" = 37, "bullet" = 37, "laser" = 20, "energy" = 15, "bomb" = 30, "bio" = 5, "rad" = 5, "fire" = 35, "acid" = 0, "wound" = 50) /obj/item/clothing/head/helmet/f13/legion/centurion name = "legion centurion helmet" desc = "A sturdy helmet from steel and brass with a red horizontal plume." icon_state = "legion-centurion" item_state = "legion-centurion" - armor = list("melee" = 55, "bullet" = 55, "laser" = 20, "energy" = 10, "bomb" = 20, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0) + armor = list("melee" = 55, "bullet" = 55, "laser" = 20, "energy" = 10, "bomb" = 20, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0, "wound" = 55) resistance_flags = LAVA_PROOF | FIRE_PROOF /obj/item/clothing/head/helmet/f13/legion/rangercent @@ -357,7 +359,7 @@ desc = "The helmet of an NCR ranger, refit to serve as a Centurions helmet." icon_state = "legion-rangercent" item_state = "legion-rangercent" - armor = list("melee" = 50, "bullet" = 65, "laser" = 25, "energy" = 35, "bomb" = 39, "bio" = 60, "rad" = 20, "fire" = 80, "acid" = 0) + armor = list("melee" = 50, "bullet" = 65, "laser" = 25, "energy" = 35, "bomb" = 39, "bio" = 60, "rad" = 20, "fire" = 80, "acid" = 0, "wound" = 55) resistance_flags = LAVA_PROOF | FIRE_PROOF /obj/item/clothing/head/helmet/f13/legion/palacent @@ -365,7 +367,7 @@ desc = "The once-marvelous helmet of the T-45d power armor set, repurposed by the Legion into a symbol of its might. It has a large plume of red horse hair across the top of it going horizontally, donoting the rank of Centurion." icon_state = "legion-palacent" item_state = "legion-palacent" - armor = list("melee" = 65, "bullet" = 45, "laser" = 30, "energy" = 10, "bomb" = 20, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0) + armor = list("melee" = 65, "bullet" = 45, "laser" = 30, "energy" = 10, "bomb" = 20, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0, "wound" = 55) resistance_flags = LAVA_PROOF | FIRE_PROOF /obj/item/clothing/head/helmet/f13/legion/legate @@ -373,7 +375,7 @@ desc = "A custom forged steel full helmet complete with abstract points and arches. The face is extremely intimidating, as it was meant to be. This particular one was ordered to be forged by Caesar, given to his second legate in exchange for his undying loyalty to Caesar." icon_state = "legion-legate" item_state = "legion-legate" - armor = list("melee" = 60, "bullet" = 60, "laser" = 40, "energy" = 35, "bomb" = 45, "bio" = 60, "rad" = 20, "fire" = 80, "acid" = 0) + armor = list("melee" = 60, "bullet" = 60, "laser" = 40, "energy" = 35, "bomb" = 45, "bio" = 60, "rad" = 20, "fire" = 80, "acid" = 0, "wound" = 60) flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH flags_inv = HIDEEARS|HIDEEYES|HIDEHAIR resistance_flags = LAVA_PROOF | FIRE_PROOF @@ -420,9 +422,9 @@ /obj/item/clothing/head/f13/ncr name = "NCR trooper helmet" desc = "A standard issue NCR steel helmet. Looks like you can write on it and strap a few items on the helmet band." - icon_state = "ncr_steelpot" - item_state = "ncr_steelpot" - armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + icon_state = "ncr_old" + item_state = "ncr_old" + armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) strip_delay = 50 obj_flags = UNIQUE_RENAME @@ -433,8 +435,8 @@ /obj/item/clothing/head/f13/ncr/steelpot_goggles name = "NCR storm helmet" desc = "A standard issue NCR steel helmet, issued with an additional pair of storm goggles for weather resistance." - icon_state = "steelpot_goggles" - item_state = "steelpot_goggles" + icon_state = "ncr_goggles_helmet" + item_state = "ncr_goggles_helmet" alt_toggle_message = "You push the goggles down " can_toggle = 1 flags_inv = HIDEEARS @@ -468,33 +470,33 @@ /obj/item/clothing/head/f13/ncr/steelpot_med name = "NCR medic helmet" desc = "(III) A standard issue NCR steel helmet with the addition of decalling signifying a medic." - icon_state = "steelpot_med" - item_state = "steelpot_med" + icon_state = "ncr_old_med" + item_state = "ncr_old_med" /obj/item/clothing/head/f13/ncr/steelpot_mp name = "NCR military police helmet" desc = "A standard issue NCR steel helmet emblazoned with the initials of the military police." - icon_state = "steelpot_mp" - item_state = "steelpot_mp" + icon_state = "ncr_old_mp" + item_state = "ncr_old_mp" /obj/item/clothing/head/f13/ncr/steelpot_gambler name = "NCR gambler helmet" desc = "A standard issue NCR steel helmet. Stashed in the strap are decks of cards, dominoes and cigarettes for personal use." - icon_state = "steelpot_gambler" - item_state = "steelpot_gambler" + icon_state = "ncr_old_gambler" + item_state = "ncr_old_gambler" /obj/item/clothing/head/f13/ncr/steelpot_bandolier name = "NCR bandolier helmet" desc = "A standard issue NCR steel helmet. This one has clearly seen heavy use, as well as having additional bullets tucked into the strap." - icon_state = "steelpot_bandolier" - item_state = "steelpot_bandolier" + icon_state = "ncr_old_bandolier" + item_state = "ncr_old_bandolier" /obj/item/clothing/head/f13/ncr_flapcap name = "NCR field cap" desc = "A special issue canvas NCR field cap with cotton neckflap, for sun protection in arid climates." icon_state = "ncr_flapcap" item_state = "ncr_flapcap" - armor = list("tier" = 3, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) icon_state = "ncr_flapcap" item_state = "ncr_flapcap" @@ -503,107 +505,107 @@ desc = "An irregular issue NCR sun hat, the left side of the brim is pinned to the crown for ease with shouldering rifles." icon_state = "ncr_slouch" item_state = "ncr_slouch" - armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) - + armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) + /obj/item/clothing/head/beret/ncr name = "NCR officer beret" desc = "A green beret, standard issue for all commissioned NCR Officers." icon_state = "ncr_officer_beret" item_state = "ncr_officer_beret" - armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) /obj/item/clothing/head/beret/ncr/ncr_medic name = "NCR medical beret" desc = "A white beret, issued to officers of the medical corps." icon_state = "ncr_medical_beret" item_state = "ncr_medical_beret" - armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) /obj/item/clothing/head/beret/ncr_recon name = "NCR First Recon beret" desc = "A red beret, issued to members of NCR First Recon." icon_state = "ncr_recon_beret" item_state = "ncr_recon_beret" - armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) /obj/item/clothing/head/beret/ncr_recon/worn name = "Worn NCR First Recon beret" desc = "A red beret, issued to members of NCR First Recon. This one is worn, having been kept when a soldier was transfered from the unit." icon_state = "ncr_recon_beret" item_state = "ncr_recon_beret" - armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) /obj/item/clothing/head/beret/ncr_scout name = "NCR Third Scout beret" desc = "A brown beret, issued to members of the NCR Third Scout Battallion." icon_state = "scoutberet" item_state = "scoutberet" - armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) - + armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) + /obj/item/clothing/head/beret/ncr_scout_lt name = "NCR Third Scout officer beret" desc = "A brown beret, issued to officers of the NCR Third Scout Battallion." icon_state = "scoutberet" item_state = "scoutberet" - armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) /obj/item/clothing/head/beret/ncr_sapper name = "NCR Sapper beret" desc = "A grey beret, issued to troopers that have passed Sapper School." icon_state = "ncr_sapper_beret" item_state = "ncr_sapper_beret" - armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) /obj/item/clothing/head/beret/ncr_sof name = "NCR SOF beret" desc = "A tan beret, issued members of the New California Republic Special Operations Command." icon_state = "ncr_sof_beret" item_state = "ncr_sof_beret" - armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) - + armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) + /obj/item/clothing/head/f13/ncr_stetson name = "NCR air cavalry stetson" desc = "A black brahmin leather stetson, authorized for usage amongst all troopers assigned to Air Cavalry units." icon_state = "ncr_stetson" item_state = "ncr_stetson" - armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) /obj/item/clothing/head/f13/ncr_cap name = "NCR garrison cap" desc = "A simple cloth garrison cap to be worn when a helmet isn't necessary." icon_state = "ncr_cap" item_state = "ncr_cap" - armor = list("melee" = 20, "bullet" = 20, "laser" = 10, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 20, "bullet" = 20, "laser" = 10, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) /obj/item/clothing/head/f13/ncr_campaign name = "NCR campaign hat" desc = "A khaki campaign hat, popularly used by senior NCOs in the NCRA." icon_state = "ncr_campaign" item_state = "ncr_campaign" - armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) /obj/item/clothing/head/beret/ncr_dresscap name = "NCR peaked cap" desc = "A tan peaked cap with silver pin, designated for enlisted NCRA personnel." icon_state = "ncr_dresscap" item_state = "ncr_dresscap" - armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) /obj/item/clothing/head/beret/ncr_codresscap name = "NCR peaked cap" desc = "A tan peaked cap with golden pin, designated for commissioned NCRA personnel." icon_state = "ncr_codresscap" item_state = "ncr_codresscap" - armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 35, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) //NCR Ranger /obj/item/clothing/head/beret/ncr_recon_ranger name = "NCR Ranger scout beret" - desc = "(IV) A brown beret, issued to members of the NCR Recon Rangers." + desc = " A brown beret, issued to members of the NCR Recon Rangers." icon_state = "scoutberet" item_state = "scoutberet" - armor = list("melee" = 35, "bullet" = 45, "laser" = 25, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 35, "bullet" = 45, "laser" = 25, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) /obj/item/clothing/head/beret/ncr_recon_ranger/Initialize() . = ..() @@ -614,7 +616,7 @@ desc = "a rustic, homely style cowboy hat worn by NCR trail rangers. Yeehaw!" icon_state = "cowboyrang" item_state = "cowboyrang" - armor = list("melee" = 35, "bullet" = 45, "laser" = 25, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 35, "bullet" = 45, "laser" = 25, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) /obj/item/clothing/head/f13/trailranger/Initialize() . = ..() @@ -625,7 +627,7 @@ desc = "An NCR ranger hat, standard issue amongst all but the most elite rangers." icon_state = "rangerhat" item_state = "rangerhat" - armor = list("melee" = 35, "bullet" = 45, "laser" = 25, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 35, "bullet" = 45, "laser" = 25, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) /obj/item/clothing/head/f13/ranger/Initialize() . = ..() @@ -633,14 +635,14 @@ /obj/item/clothing/head/helmet/f13/combat/ncr_patrol name = "NCR patrol helmet" - desc = "(IV) A combat helmet hand-manufactured in the NCR and issued to patrol rangers." + desc = " A combat helmet hand-manufactured in the NCR and issued to patrol rangers." icon_state = "ncr_patrol_helmet" item_state = "ncr_patrol_helmet" flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDEFACE flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH - armor = list("melee" = 35, "bullet" = 45, "laser" = 25, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) - -/obj/item/clothing/head/f13/combat/ncr_patrol/Initialize() + armor = list("melee" = 35, "bullet" = 45, "laser" = 25, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) + +/obj/item/clothing/head/helmet/f13/combat/ncr_patrol/Initialize() . = ..() AddComponent(/datum/component/armor_plate) @@ -661,7 +663,7 @@ desc = "An old combat helmet, out of use around the time of the war." icon_state = "ranger" item_state = "ranger" - armor = list("melee" = 50, "bullet" = 50, "laser" = 40, "energy" = 22, "bomb" = 55, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20) + armor = list("melee" = 50, "bullet" = 50, "laser" = 40, "energy" = 22, "bomb" = 55, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20, "wound" = 55) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDEFACE flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH resistance_flags = LAVA_PROOF | FIRE_PROOF @@ -677,7 +679,7 @@ desc = "An old combat helmet seen in the divide, repurposed for higher ranking Rangers." icon_state = "elite_riot" item_state = "elite_riot" - armor = list("melee" = 55, "bullet" = 55, "laser" = 45, "energy" = 24, "bomb" = 55, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20) + armor = list("melee" = 55, "bullet" = 55, "laser" = 45, "energy" = 24, "bomb" = 55, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20, "wound" = 55) /obj/item/clothing/head/helmet/f13/ncr/rangercombat/desert @@ -694,7 +696,7 @@ darkness_view = null flash_protect = 0 resistance_flags = null - armor = list("melee" = 30, "bullet" = 30, "laser" = 30, "energy" = 15, "bomb" = 55, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20) + armor = list("melee" = 30, "bullet" = 30, "laser" = 30, "energy" = 15, "bomb" = 55, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20, "wound" = 40) /obj/item/clothing/head/helmet/f13/rangercombat/eliteriot/reclaimed @@ -702,7 +704,7 @@ desc = "A refurbished and personalized set of pre-unification desert ranger gear." icon_state = "desert_ranger" item_state = "desert_ranger" - armor = list("melee" = 30, "bullet" = 30, "laser" = 30, "energy" = 15, "bomb" = 55, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20) + armor = list("melee" = 30, "bullet" = 30, "laser" = 30, "energy" = 15, "bomb" = 55, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20, "wound" = 40) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDEFACE flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH @@ -720,14 +722,14 @@ desc = "An improved combat helmet, bearing the symbol of a Senior Knight." icon_state = "brotherhood_helmet_senior" item_state = "brotherhood_helmet_senior" - armor = list("melee" = 50, "bullet" = 50, "laser" = 40, "energy" = 22, "bomb" = 55, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20) - + armor = list("melee" = 50, "bullet" = 50, "laser" = 40, "energy" = 22, "bomb" = 55, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20, "wound" = 50) + /obj/item/clothing/head/helmet/f13/combat/brotherhood/captain name = "brotherhood head knight helmet" desc = "An improved combat helmet, bearing the symbol of the Head Knight." icon_state = "brotherhood_helmet_captain" item_state = "brotherhood_helmet_captain" - armor = list("melee" = 50, "bullet" = 50, "laser" = 40, "energy" = 22, "bomb" = 55, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20) + armor = list("melee" = 50, "bullet" = 50, "laser" = 40, "energy" = 22, "bomb" = 55, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20, "wound" = 50) /obj/item/clothing/head/helmet/f13/combat/brotherhood/initiate name = "initiate helmet" @@ -740,14 +742,14 @@ desc = "An advanced pre-war titanium plated, ceramic coated, kevlar, padded helmet designed to withstand extreme punishment of all forms, repainted to the colour scheme of the Brotherhood of Steel." icon_state = "brotherhood_helmet" item_state = "brotherhood_helmet" - armor = list("melee" = 45, "bullet" = 45, "laser" = 45, "energy" = 40, "bomb" = 50, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20) + armor = list("melee" = 45, "bullet" = 45, "laser" = 45, "energy" = 40, "bomb" = 50, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20, "wound" = 50) /obj/item/clothing/head/helmet/f13/combat/brotherhood/outcast name = "brotherhood helmet" desc = " An improved combat helmet, bearing a series of red markings." icon_state = "brotherhood_helmet_outcast" item_state = "brotherhood_helmet_outcast" - armor = list("melee" = 50, "bullet" = 50, "laser" = 40, "energy" = 22, "bomb" = 55, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20) + armor = list("melee" = 50, "bullet" = 50, "laser" = 40, "energy" = 22, "bomb" = 55, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20, "wound" = 50) /obj/item/clothing/head/f13/boscap name = "brotherhood formal cap" @@ -758,7 +760,7 @@ /obj/item/clothing/head/f13/boscap/beret name = "brotherhood beret" - desc = "(I) A beret typically worn with the standard fatigues of the local Brotherhood of Steel Chapter." + desc = " A beret typically worn with the standard fatigues of the local Brotherhood of Steel Chapter." icon_state = "bos_beret" item_state = "bos_beret" @@ -770,12 +772,12 @@ icon_state = "tricorn" item_state = "dethat" flags_inv = HIDEHAIR - armor = list("melee" = 25, "bullet" = 25, "laser" = 20, "energy" = 20, "bomb" = 20, "bio" = 5, "rad" = 0, "fire" = 15, "acid" = 5) + armor = list("melee" = 25, "bullet" = 25, "laser" = 20, "energy" = 20, "bomb" = 20, "bio" = 5, "rad" = 0, "fire" = 15, "acid" = 5, "wound" = 30) /obj/item/clothing/head/f13/town/mayor name = "mayoral tricorn" desc = "A tricorn in the desert. Stranger things have happened." - armor = list("melee" = 30, "bullet" = 35, "laser" = 25, "energy" = 25, "bomb" = 25, "bio" = 15, "rad" = 10, "fire" = 15, "acid" = 5) + armor = list("melee" = 30, "bullet" = 35, "laser" = 25, "energy" = 25, "bomb" = 25, "bio" = 15, "rad" = 10, "fire" = 15, "acid" = 5, "wound" = 55) /obj/item/clothing/head/f13/town/big name = "big hat" @@ -786,7 +788,7 @@ name = "deputy hat" desc = "A black cowboy hat." icon_state = "deputyhat" - armor = list("melee" = 45, "bullet" = 45, "laser" = 40, "energy" = 35, "bomb" = 30, "bio" = 40, "rad" = 40, "fire" = 50, "acid" = 10) + armor = list("melee" = 45, "bullet" = 45, "laser" = 40, "energy" = 35, "bomb" = 30, "bio" = 40, "rad" = 40, "fire" = 50, "acid" = 10, "wound" = 50) /obj/item/clothing/head/f13/town/deputy/Initialize() . = ..() @@ -799,17 +801,30 @@ mob_overlay_icon = 'icons/fallout/onmob/clothes/head.dmi' icon_state = "police_officer" item_state = "police_officer" - + armor = list("melee" = 40, "bullet" = 40, "laser" = 35, "energy" = 35, "bomb" = 30, "bio" = 40, "rad" = 40, "fire" = 50, "acid" = 10) /obj/item/clothing/head/f13/town/officer/Initialize() . = ..() AddComponent(/datum/component/armor_plate) +/obj/item/clothing/head/f13/town/marksman + name = "police marksman's cap" + desc = "A simple dark navy service cap, worn by police marksmen." + icon = 'icons/fallout/clothing/hats.dmi' + mob_overlay_icon = 'icons/fallout/onmob/clothes/head.dmi' + icon_state = "police_cap" + item_state = "police_cap" + + armor = list("melee" = 40, "bullet" = 40, "laser" = 35, "energy" = 35, "bomb" = 30, "bio" = 40, "rad" = 40, "fire" = 50, "acid" = 10) +/obj/item/clothing/head/f13/town/marksman/Initialize() + . = ..() + AddComponent(/datum/component/armor_plate) + /obj/item/clothing/head/f13/town/sheriff name = "sheriff hat" desc = "A black cowboy hat with a snakeskin band." icon_state = "sheriffhat" - armor = list("melee" = 50, "bullet" = 50, "laser" = 45, "energy" = 35, "bomb" = 30, "bio" = 40, "rad" = 40, "fire" = 50, "acid" = 10) + armor = list("melee" = 50, "bullet" = 50, "laser" = 45, "energy" = 35, "bomb" = 30, "bio" = 40, "rad" = 40, "fire" = 50, "acid" = 10, "wound" = 50) /obj/item/clothing/head/f13/town/sheriff/Initialize() . = ..() @@ -848,7 +863,7 @@ mob_overlay_icon = 'icons/fallout/onmob/clothes/khaans.dmi' icon_state = "khan_helmet" item_state = "khan_helmet" - armor = list("melee" = 30, "bullet" = 25, "laser" = 25, "energy" = 25, "bomb" = 30, "bio" = 40, "rad" = 40, "fire" = 50, "acid" = 10) + armor = list("melee" = 30, "bullet" = 25, "laser" = 25, "energy" = 25, "bomb" = 30, "bio" = 40, "rad" = 40, "fire" = 50, "acid" = 10, "wound" = 30) flags_inv = null flags_cover = null strip_delay = 20 @@ -919,7 +934,7 @@ desc = " A Khan helmet modified with steel horns and a full guard comprised of red sunglass lenses and a thick metal plate to conceal the lower face." icon_state = "khan_fullhelmet" item_state = "khan_fullhelmet" - armor = list("melee" = 40, "bullet" = 40, "laser" = 45, "energy" = 25, "bomb" = 35, "bio" = 10, "rad" = 10, "fire" = 10, "acid" = 0) + armor = list("melee" = 40, "bullet" = 40, "laser" = 45, "energy" = 25, "bomb" = 35, "bio" = 10, "rad" = 10, "fire" = 10, "acid" = 0, "wound" = 40) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH strip_delay = 20 @@ -951,7 +966,7 @@ desc = "An antler skull headdress traditionally worn by the spiritually inclined." icon_state = "antlerhelm" item_state = "antlerhelm" - + /obj/item/clothing/head/helmet/f13/wayfarer/shamanblue name = "ritual headdress" @@ -976,18 +991,25 @@ visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR -/obj/item/clothing/head/helmet/f13/combat/wayfarer/tribe_helmet - name = "tribalized helmet" - desc = "An old military grade pre-war combat helmet, repainted and re purposed with bones and sinew to worship some tribal diety." +/obj/item/clothing/head/helmet/f13/combat/tribal + name = "tribalized combat helmet" + desc = "An old military grade pre-war combat helmet, repainted and re-purposed with bones and sinew." icon_state = "tribe_helmet" item_state = "tribe_helmet" -/obj/item/clothing/head/helmet/f13/wayfarer/pa_helmet - name = "tribal full plate headdress" - desc = "The once-marvelous helmet of the T-45d power armor set, repurposed and painted with markings of a tribe to signify its holyness to Kwer. It has dye'd feathers addoring it to make it look fierce in battle." +/obj/item/clothing/head/helmet/f13/combat/mk2/tribal + name = "tribalized reinforced helmet" + desc = "An old military grade pre-war reinforced combat helmet, repainted and re-purposed with bones and sinew." + icon_state = "tribe_helmet" + item_state = "tribe_helmet" + +/obj/item/clothing/head/helmet/f13/power_armor/t45b/tribal + name = "tribal t-45b headdress" + desc = "A salvaged T-45b powered armor, with the servos removed and a feathered headdress. Certain bits of plating have been stripped out to retain more freedom of movement." icon_state = "tribal_PA_helmet" item_state = "tribal_PA_helmet" - armor = list("melee" = 60, "bullet" = 65, "laser" = 65, "energy" = 24, "bomb" = 50, "bio" = 60, "rad" = 50, "fire" = 80, "acid" = 0, "wound" = 40) + armor = list("melee" = 60, "bullet" = 60, "laser" = 60, "energy" = 20, "bomb" = 50, "bio" = 60, "rad" = 50, "fire" = 80, "acid" = 0, "wound" = 65) + slowdown = 0 resistance_flags = LAVA_PROOF | FIRE_PROOF /obj/item/clothing/head/helmet/f13/wayfarer/chief/attack_self(mob/user) @@ -1012,6 +1034,9 @@ /obj/item/clothing/head/helmet/riot/vaultsec name = "security helmet" desc = "A standard issue vault security helmet, pretty robust." + armor = list("melee" = 50, "bullet" = 50, "laser" = 25, energy = "25", "bomb" = 50, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50, "wound" = 50) + slowdown = 0.01 + /obj/item/clothing/head/helmet/riot/vaultsec/vc name = "vtcc riot helmet" @@ -1029,7 +1054,7 @@ mob_overlay_icon = 'icons/fallout/onmob/clothes/head.dmi' icon_state = "army_cap" item_state = "army_cap" - armor = list("melee" = 25, "bullet" = 10, "laser" = 10, "energy" = 15, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0) + armor = list("melee" = 25, "bullet" = 10, "laser" = 10, "energy" = 15, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0, "wound" = 30) dynamic_hair_suffix = "+generic" /obj/item/clothing/head/f13/army/officer @@ -1039,7 +1064,7 @@ mob_overlay_icon = 'icons/fallout/onmob/clothes/head.dmi' icon_state = "army_officer" item_state = "army_officer" - + /obj/item/clothing/head/f13/army/general name = "US Army general's cap" @@ -1048,7 +1073,7 @@ mob_overlay_icon = 'icons/fallout/onmob/clothes/head.dmi' icon_state = "army_general" item_state = "army_general" - armor = list("melee" = 27, "bullet" = 12, "laser" = 12, "energy" = 15, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0) + armor = list("melee" = 27, "bullet" = 12, "laser" = 12, "energy" = 15, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0, "wound" = 30) obj/item/clothing/head/f13/army/beret name = "US Army beret" @@ -1057,7 +1082,7 @@ obj/item/clothing/head/f13/army/beret mob_overlay_icon = 'icons/fallout/onmob/clothes/head.dmi' icon_state = "army_beret" item_state = "army_beret" - armor = list("melee" = 27, "bullet" = 12, "laser" = 12, "energy" = 15, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0) + armor = list("melee" = 27, "bullet" = 12, "laser" = 12, "energy" = 15, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0, "wound" = 30) /obj/item/clothing/head/f13/army/beret/airborne name = "US Army airborne beret" @@ -1066,7 +1091,7 @@ obj/item/clothing/head/f13/army/beret mob_overlay_icon = 'icons/fallout/onmob/clothes/head.dmi' icon_state = "army_beret_airborne" item_state = "army_beret_airborne" - + /obj/item/clothing/head/f13/army/beret/specialforces name = "US Army special forces beret" @@ -1075,7 +1100,7 @@ obj/item/clothing/head/f13/army/beret mob_overlay_icon = 'icons/fallout/onmob/clothes/head.dmi' icon_state = "army_beret_specialforces" item_state = "army_beret_specialforces" - + //People's Liberation Army /obj/item/clothing/head/f13/chinese @@ -1085,11 +1110,11 @@ obj/item/clothing/head/f13/army/beret mob_overlay_icon = 'icons/fallout/onmob/clothes/head.dmi' icon_state = "chinese_soldier" item_state = "chinese_soldier" - armor = list("melee" = 25, "bullet" = 10, "laser" = 10, "energy" = 15, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0) + armor = list("melee" = 25, "bullet" = 10, "laser" = 10, "energy" = 15, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0, "wound" = 30) /obj/item/clothing/head/f13/chinese/officer name = "PLA officer's cap" - desc = "(II) A People's Liberation Army peaked cap, worn by officers." + desc = " A People's Liberation Army peaked cap, worn by officers." icon = 'icons/fallout/clothing/hats.dmi' mob_overlay_icon = 'icons/fallout/onmob/clothes/head.dmi' icon_state = "chinese_officer" @@ -1105,8 +1130,8 @@ obj/item/clothing/head/f13/army/beret mob_overlay_icon = 'icons/fallout/onmob/clothes/head.dmi' icon_state = "police_officer" item_state = "police_officer" - armor = list("melee" = 25, "bullet" = 10, "laser" = 10, "energy" = 15, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0) - + armor = list("melee" = 25, "bullet" = 10, "laser" = 10, "energy" = 15, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0, "wound" = 30) + /obj/item/clothing/head/f13/police/sergeant name = "police campaign hat" desc = "A simple dark navy campaign hat, worn by police." @@ -1114,7 +1139,7 @@ obj/item/clothing/head/f13/army/beret mob_overlay_icon = 'icons/fallout/onmob/clothes/head.dmi' icon_state = "police_sergeant" item_state = "police_sergeant" - armor = list("melee" = 25, "bullet" = 10, "laser" = 10, "energy" = 15, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0) + armor = list("melee" = 25, "bullet" = 10, "laser" = 10, "energy" = 15, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0, "wound" = 30) /obj/item/clothing/head/f13/police/lieutenant name = "police lieutenant's cap" @@ -1123,7 +1148,7 @@ obj/item/clothing/head/f13/army/beret mob_overlay_icon = 'icons/fallout/onmob/clothes/head.dmi' icon_state = "police_lieutenant" item_state = "police_lieutenant" - armor = list("melee" = 25, "bullet" = 10, "laser" = 10, "energy" = 15, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0) + armor = list("melee" = 25, "bullet" = 10, "laser" = 10, "energy" = 15, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0, "wound" = 30) /obj/item/clothing/head/f13/police/chief name = "police chief's cap" @@ -1132,8 +1157,8 @@ obj/item/clothing/head/f13/army/beret mob_overlay_icon = 'icons/fallout/onmob/clothes/head.dmi' icon_state = "police_chief" item_state = "police_chief" - armor = list("melee" = 27, "bullet" = 12, "laser" = 12, "energy" = 15, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0) - + armor = list("melee" = 27, "bullet" = 12, "laser" = 12, "energy" = 15, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0, "wound" = 30) + /obj/item/clothing/head/f13/police/trooper name = "state police campaign hat" desc = "A gray campaign hat, worn by the State Police." @@ -1143,7 +1168,7 @@ obj/item/clothing/head/f13/army/beret item_state = "police_chief" icon_state = "state_trooper" item_state = "state_trooper" - armor = list("tier" = 2, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0) + armor = list("melee" = 27, "bullet" = 12, "laser" = 12, "energy" = 15, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0) //THE GRAVEYARD //UNUSED or LEGACY - RETAINED IN CASE DESIRED FOR ADMIN SPAWN OR REIMPLEMENATION. MAY NOT BE EVERYTHING THAT'S UNUSED. TEST BEFORE USING @@ -1151,13 +1176,13 @@ obj/item/clothing/head/f13/army/beret /obj/item/clothing/head/f13/ncr/medic name = "NCR medical helmet" - desc = "(V) A standard issue NCR Infantry helmet, colored to suit a medical officer." + desc = " A standard issue NCR Infantry helmet, colored to suit a medical officer." icon_state = "ncr_medical_helmet" item_state = "ncr_medical_helmet" /obj/item/clothing/head/f13/ncr/mp name = "NCR military police helmet" - desc = "(V) A standard issue NCR helmet, with the letters \"MP\" scrawled on the front." + desc = " A standard issue NCR helmet, with the letters \"MP\" scrawled on the front." icon_state = "ncr_MP" item_state = "ncr_MP" @@ -1184,7 +1209,6 @@ obj/item/clothing/head/f13/army/beret item_color = "ncr" flags_inv = HIDEEARS dog_fashion = null - armor = list("tier" = 5, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) strip_delay = 50 /obj/item/clothing/head/f13/ncr/goggles/attack_self(mob/user) @@ -1212,33 +1236,29 @@ obj/item/clothing/head/f13/army/beret //Enclave / Remnant /obj/item/clothing/head/donor/enclave name = "enclave forge cap" - desc = "(III) A resistant, black forage cap issued to Enclave soldiers." + desc = "A resistant, black forage cap issued to Enclave soldiers." icon_state = "enclave_cap" item_state = "enclave_cap" - armor = list("tier" = 3, "energy" = 20, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 0) /obj/item/clothing/head/helmet/f13/combat/enclave name = "enclave combat helmet" - desc = "(VI) An intimidating helmet that is issued with it's corresponding suit." + desc = "An intimidating helmet that is issued with it's corresponding suit." icon_state = "enclave_new" item_state = "enclave_new" - armor = list("tier" = 6, "energy" = 75, "bomb" = 70, "bio" = 80, "rad" = 80, "fire" = 80, "acid" = 50) /obj/item/clothing/head/helmet/f13/combat/remnant name = "remnant combat helmet" - desc = "(VI) A dark helmet with yellow lenses, used commonly in espionage or shadow ops." + desc = "A dark helmet with yellow lenses, used commonly in espionage or shadow ops." icon_state = "remnant_helmet" item_state = "remnant_helmet" - armor = list("tier" = 6, "energy" = 75, "bomb" = 70, "bio" = 80, "rad" = 80, "fire" = 80, "acid" = 50) /obj/item/clothing/head/helmet/f13/envirosuit name = "enclave envirosuit hood" icon_state = "envirohead" item_state = "envirohead" - desc = "(II) A white hazmat helmet with a coupling system, the visor looks to be made out of orange plexiglas." + desc = "A white hazmat helmet with a coupling system, the visor looks to be made out of orange plexiglas." clothing_flags = THICKMATERIAL flags_inv = HIDEMASK|HIDEEARS|HIDEFACE|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR - armor = list("tier" = 2,"energy" = 10, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 50, "acid" = 100) strip_delay = 60 equip_delay_other = 60 flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH @@ -1246,6 +1266,6 @@ obj/item/clothing/head/f13/army/beret /obj/item/clothing/head/soft/f13/enclave name = "officer hat" - desc = "(I) A standard-issue Enclave officer's cap." + desc = "A standard-issue Enclave officer's cap." icon_state = "enclave" item_color = "enclave" diff --git a/code/modules/clothing/head/f13head.dm b/code/modules/clothing/head/f13head.dm index 8d8d73248b..241ec59983 100644 --- a/code/modules/clothing/head/f13head.dm +++ b/code/modules/clothing/head/f13head.dm @@ -54,7 +54,7 @@ desc = "An old military grade pre-war combat helmet." icon_state = "combat_helmet" item_state = "combat_helmet" - armor = list("melee" = 45, "bullet" = 45, "laser" = 40, "energy" = 20, "bomb" = 50, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20) + armor = list("melee" = 45, "bullet" = 45, "laser" = 45, "energy" = 20, "bomb" = 50, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20, "wound" = 50) strip_delay = 50 flags_inv = HIDEEARS|HIDEEYES|HIDEHAIR flags_cover = HEADCOVERSEYES @@ -79,7 +79,7 @@ desc = "An advanced pre-war titanium plated, ceramic coated, kevlar, padded helmet designed to withstand extreme punishment of all forms." icon_state = "combat_helmet_mk2" item_state = "combat_helmet_mk2" - armor = list("melee" = 50, "bullet" = 50, "laser" = 40, "energy" = 22, "bomb" = 55, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20) + armor = list("melee" = 50, "bullet" = 50, "laser" = 40, "energy" = 22, "bomb" = 55, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20, "wound" = 50) /obj/item/clothing/head/helmet/f13/combat/mk2/dark name = "reinforced combat helmet" @@ -95,7 +95,7 @@ name = "broken riot helmet" icon_state = "ranger_broken" desc = "An old riot police helmet, out of use around the time of the war." - armor = list("melee" = 38, "bullet" = 45, "laser" = 38, "energy" = 18, "bomb" = 45, "bio" = 55, "rad" = 10, "fire" = 60, "acid" = 20) + armor = list("melee" = 38, "bullet" = 45, "laser" = 38, "energy" = 18, "bomb" = 45, "bio" = 55, "rad" = 10, "fire" = 60, "acid" = 20, "wound" = 50) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDEFACE flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH resistance_flags = LAVA_PROOF | FIRE_PROOF @@ -108,7 +108,7 @@ desc = "A prewar combat helmet issued to S.W.A.T. personnel." icon_state = "swatsyndie" item_state = "swatsyndie" - armor = list("melee" = 30, "bullet" = 50, "laser" = 30, "energy" = 20, "bomb" = 55, "bio" = 60, "rad" = 15, "fire" = 60, "acid" = 30) + armor = list("melee" = 30, "bullet" = 50, "laser" = 30, "energy" = 20, "bomb" = 55, "bio" = 60, "rad" = 15, "fire" = 60, "acid" = 30, "wound" = 40) /obj/item/clothing/head/helmet/f13/combat/environmental @@ -116,7 +116,7 @@ desc = "A full head helmet and gas mask, developed for use in heavily contaminated environments." icon_state = "env_helmet" item_state = "env_helmet" - armor = list("melee" = 35, "bullet" = 40, "laser" = 40,"energy" = 20, "bomb" = 55, "bio" = 70, "rad" = 100, "fire" = 60, "acid" = 50) + armor = list("melee" = 35, "bullet" = 40, "laser" = 40,"energy" = 20, "bomb" = 55, "bio" = 70, "rad" = 100, "fire" = 60, "acid" = 50, "wound" = 40) strip_delay = 60 equip_delay_other = 60 flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH @@ -132,7 +132,7 @@ desc = "A sulphite raider helmet, affixed with thick anti-ballistic glass over the eyes." icon_state = "sulphite_helm" item_state = "sulphite_helm" - armor = list("melee" = 25, "bullet" = 55,"laser" = 40, "energy" = 20, "bomb" = 50, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20) + armor = list("melee" = 25, "bullet" = 55,"laser" = 40, "energy" = 20, "bomb" = 50, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20, "wound" = 40) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH @@ -144,14 +144,14 @@ icon_state = "metalhelmet" item_state = "metalhelmet" flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - armor = list("melee" = 35, "bullet" = 20, "laser" = 40, "energy" = 15, "bomb" = 45, "bio" = 30, "rad" = 15, "fire" = 60, "acid" = 0) + armor = list("melee" = 35, "bullet" = 20, "laser" = 40, "energy" = 15, "bomb" = 45, "bio" = 30, "rad" = 15, "fire" = 60, "acid" = 0, "wound" = 40) /obj/item/clothing/head/helmet/knight/f13/metal/reinforced name = "reinforced metal helmet" icon_state = "metalhelmet_r" item_state = "metalhelmet_r" - armor = list("melee" = 37, "bullet" = 22, "laser" = 42, "energy" = 16, "bomb" = 45, "bio" = 30, "rad" = 15, "fire" = 60, "acid" = 0) - + armor = list("melee" = 37, "bullet" = 22, "laser" = 42, "energy" = 16, "bomb" = 45, "bio" = 30, "rad" = 15, "fire" = 60, "acid" = 0, "wound" = 40) + /obj/item/clothing/head/helmet/knight/f13/rider name = "rider helmet" //Not raider. Rider. desc = "It's a fancy dark metal helmet with orange spray painted flames." @@ -166,7 +166,7 @@ toggle_message = "You lower" alt_toggle_message = "You raise" can_toggle = 1 - armor = list("melee" = 35, "bullet" = 20, "laser" = 40, "energy" = 15, "bomb" = 45, "bio" = 30, "rad" = 15, "fire" = 60, "acid" = 0) + armor = list("melee" = 35, "bullet" = 20, "laser" = 40, "energy" = 15, "bomb" = 45, "bio" = 30, "rad" = 15, "fire" = 60, "acid" = 0, "wound" = 40) flags_inv = HIDEMASK|HIDEEYES|HIDEFACE strip_delay = 80 actions_types = list(/datum/action/item_action/toggle) @@ -189,14 +189,14 @@ desc = "A reinforced metal hockey mask." icon_state = "metal_mask2" item_state = "metal_mask2" - armor = list("melee" = 37, "bullet" = 25, "laser" = 42, "energy" = 15, "bomb" = 40, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 37, "bullet" = 25, "laser" = 42, "energy" = 15, "bomb" = 40, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) /obj/item/clothing/head/helmet/f13/tesla name = "tesla helmet" desc = "A prewar armor design by Nikola Tesla before being confiscated by the U.S. government. Provides high energy weapons resistance." icon_state = "tesla_helmet" item_state = "tesla_helmet" - armor = list("melee" = 25, "bullet" = 25,"laser" = 80, "energy" = 60, "bomb" = 40, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 25, "bullet" = 25,"laser" = 80, "energy" = 60, "bomb" = 40, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR var/hit_reflect_chance = 20 protected_zones = list(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_GROIN, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) @@ -235,73 +235,9 @@ light_system = MOVABLE_LIGHT_DIRECTIONAL light_range = 5 light_on = FALSE -// darkness_view = 128 -// lighting_alpha = LIGHTING_PLANE_ALPHA_NV_TRAIT - var/emped = 0 var/requires_training = TRUE - var/armor_block_chance = 0 -// protected_zones = list(BODY_ZONE_HEAD) -// var/deflection_chance = 0 -// var/armor_block_threshold = 0.2 //projectiles below this will deflect -// var/melee_block_threshold = 30 -// var/dmg_block_threshold = 42 - var/powerLevel = 7000 - var/powerMode = 3 var/powered = TRUE -/obj/item/clothing/head/helmet/f13/power_armor/attackby(obj/item/I, mob/user, params) - . = ..() - if(istype(I,/obj/item/fusion_fuel)&& powered) - var/obj/item/fusion_fuel/fuel = I - if(src.powerLevel>=50000) - to_chat(user, "The fusion core is full.") - return - if(fuel.fuel >= 5000) - src.powerLevel += 5000 - fuel.fuel -= 5000 - to_chat(user, "You charge the fusion core to [src.powerLevel] units of fuel. [fuel.fuel]/20000 left in the fuel cell.") - return - to_chat(user, "The fuel cell is empty.") - -/obj/item/clothing/head/helmet/f13/power_armor/proc/processPower() - if(powerLevel>0)//drain charge - powerLevel -= 1 - if(powerLevel > 20000)//switch to 3 power mode - if(powerMode <= 2) - powerUp() - return - if(powerLevel > 10000)//switch to 2 power - if(powerMode <= 1) - powerUp() - if(powerMode > 2) - powerDown() - return - if(powerLevel > 5000)//switch to 1 power - if(powerMode <= 0) - powerUp() - if(powerMode > 1) - powerDown() - return - if(powerLevel >= 1)//switch to 0 power - if(powerMode >= 0) - powerDown() - -/obj/item/clothing/head/helmet/f13/power_armor/proc/powerUp() - powerMode += 1 - slowdown -= 0.2 - var/mob/living/L = loc - if(istype(L)) - L.update_equipment_speed_mods() - armor = armor.modifyRating(linemelee = 75, linebullet = 75, linelaser = 75) - -/obj/item/clothing/head/helmet/f13/power_armor/proc/powerDown() - powerMode -= 1 - slowdown += 0.2 - var/mob/living/L = loc - if(istype(L)) - L.update_equipment_speed_mods() - armor = armor.modifyRating(linemelee = -75, linebullet = -75, linelaser = -75) - /obj/item/clothing/head/helmet/f13/power_armor/ComponentInitialize() . = ..() AddElement(/datum/element/update_icon_updates_onmob) @@ -318,6 +254,8 @@ var/mob/living/carbon/human/H = user if(src == H.head) //Suit is already equipped return ..() + if(!powered) + return ..() if (!HAS_TRAIT(H, TRAIT_PA_WEAR) && slot == SLOT_HEAD && requires_training) to_chat(user, "You don't have the proper training to operate the power armor!") return 0 @@ -325,54 +263,12 @@ return ..() return -/obj/item/clothing/head/helmet/f13/power_armor/emp_act(mob/living/carbon/human/owner, severity) - . = ..() - if(. & EMP_PROTECT_SELF) - return - emped++ - var/curremp = emped - if(ismob(loc)) - to_chat(loc, "Warning: electromagnetic surge detected in helmet. Rerouting power to emergency systems.") - armor = armor.modifyRating(melee = -100, bullet = -100, laser = -100) - addtimer(CALLBACK(src, .proc/end_emp_effect, curremp), 5 SECONDS) - -/obj/item/clothing/head/helmet/f13/power_armor/proc/end_emp_effect(curremp) - if(emped != curremp) //Don't fix it if it's been EMP'd again - return FALSE - if(ismob(loc)) - var/mob/living/L = loc - emped = FALSE - to_chat(loc, "Helmet power reroute successful. All systems operational.") - armor = armor.modifyRating(melee = 100, bullet = 100,laser = 100) - if(istype(L)) - L.update_equipment_speed_mods() - return TRUE -/* -/obj/item/clothing/head/helmet/f13/power_armor/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) - . = ..() - if(damage >= src.dmg_block_threshold && check_armor_penetration(object) >= 0) - return - if(check_armor_penetration(object) <= src.armor_block_threshold && (attack_type == ATTACK_TYPE_PROJECTILE) && (def_zone in protected_zones)) - if(prob(armor_block_chance)) - var/ratio = rand(0,100) - if(ratio <= deflection_chance) - block_return[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_DEFLECT - return BLOCK_SHOULD_REDIRECT | BLOCK_REDIRECTED | BLOCK_SUCCESS | BLOCK_PHYSICAL_INTERNAL - if(ismob(loc)) - to_chat(loc, "Your power armor absorbs the projectile's impact!") - block_return[BLOCK_RETURN_SET_DAMAGE_TO] = 0 - return BLOCK_SUCCESS | BLOCK_PHYSICAL_INTERNAL - return -*/ /obj/item/clothing/head/helmet/f13/power_armor/t45b name = "salvaged T-45b helmet" desc = "It's a salvaged T-45b power armor helmet." icon_state = "t45bhelmet" item_state = "t45bhelmet" - armor = list("melee" = 75, "bullet" = 75, "laser" = 75, "energy" = 20, "bomb" = 50, "bio" = 60, "rad" = 50, "fire" = 80, "acid" = 0, "wound" = 40) -// darkness_view = 0 -// armor_block_chance = 25 -// deflection_chance = 10 //10% chance to block damage from blockable bullets and redirect the bullet at a random angle. Not nearly as effective as true power armor + armor = list("melee" = 70, "bullet" = 70, "laser" = 70, "energy" = 20, "bomb" = 50, "bio" = 60, "rad" = 50, "fire" = 80, "acid" = 0, "wound" = 40) requires_training = FALSE powered = FALSE @@ -381,19 +277,14 @@ desc = "It's an NCR salvaged T-45b power armor helmet, better repaired than regular salvaged PA, and decorated with the NCR flag and other markings for an NCR Heavy Trooper." icon_state = "t45bhelmet_ncr" item_state = "t45bhelmet_ncr" - armor = list("melee" = 75, "bullet" = 75, "laser" = 75, "energy" = 24, "bomb" = 50, "bio" = 60, "rad" = 50, "fire" = 80, "acid" = 0, "wound" = 40) -// darkness_view = 0 -// armor_block_chance = 40 -// deflection_chance = 10 //10% chance to block damage from blockable bullets and redirect the bullet at a random angle. Not nearly as effective as true power armor + armor = list("melee" = 70, "bullet" = 70, "laser" = 70, "energy" = 24, "bomb" = 50, "bio" = 60, "rad" = 50, "fire" = 80, "acid" = 0, "wound" = 40) requires_training = FALSE powered = FALSE /obj/item/clothing/head/helmet/f13/power_armor/t45b/restored name = "restored T-45b helmet" desc = "It's a restored T-45b power armor helmet." - armor = list("melee" = 75, "bullet" = 75, "laser" = 75, "energy" = 22, "bomb" = 55, "bio" = 65, "rad" = 55, "fire" = 85, "acid" = 0, "wound" = 40) -// armor_block_chance = 60 -// deflection_chance = 10 //20% chance to block damage from blockable bullets and redirect the bullet at a random angle + armor = list("melee" = 70, "bullet" = 70, "laser" = 70, "energy" = 22, "bomb" = 55, "bio" = 65, "rad" = 55, "fire" = 85, "acid" = 0, "wound" = 40) requires_training = TRUE powered = TRUE @@ -404,47 +295,17 @@ item_state = "raiderpa_helm" armor = list("melee" = 65, "bullet" = 55, "laser" = 55, "energy" = 20, "bomb" = 50, "bio" = 60, "rad" = 50, "fire" = 80, "acid" = 0, "wound" = 40) requires_training = FALSE -// armor_block_chance = 20 -// deflection_chance = 10 powered = FALSE slowdown = 0.05 -/obj/item/clothing/head/helmet/f13/power_armor/hotrod - name = "hotrod T-45b power helmet" - desc = "This power armor helmet is so decrepit and battle-worn that it have lost most of its capability to protect the wearer from harm." - icon_state = "t45hotrod_helm" - item_state = "t45hotrod_helm" - armor = list("melee" = 55, "bullet" = 55, "laser" = 55, "energy" = 20, "bomb" = 50, "bio" = 60, "rad" = 50, "fire" = 80, "acid" = 0, "wound" = 40) - requires_training = FALSE -// armor_block_chance = 20 - powered = FALSE -// deflection_chance = 10 //5% chance to block damage from blockable bullets and redirect the bullet at a random angle. Stripped down version of an already stripped down version - slowdown = 0.05 - -/obj/item/clothing/head/helmet/f13/power_armor/vaulttec - name = "Vault-Tec power helmet" - desc = "(VIII) A refined suit of power armour, purpose-built by the residents of Vault-115 in order to better keep the peace in their new settlement." - icon_state = "vaultpahelm" - item_state = "vaultpahelm" - armor = list("tier" = 8, "energy" = 50, "bomb" = 48, "bio" = 60, "rad" = 50, "fire" = 80, "acid" = 0, "wound" = 40) -// armor_block_chance = 40 -// deflection_chance = 10 //10% chance to block damage from blockable bullets and redirect the bullet at a random angle. Not a heavy combat model - -/obj/item/clothing/head/helmet/f13/power_armor/vaulttecta - name = "Vault-Tec power helmet" - desc = "A refined suit of power armour, purpose-built by the residents of Vault-115 in order to better keep the peace in their new settlement." - icon_state = "vaulttahelm" - item_state = "vaulttahelm" - slowdown = 0.1 - /obj/item/clothing/head/helmet/f13/power_armor/t45d name = "T-45d power helmet" desc = "t's an old pre-War power armor helmet. It's pretty hot inside of it." icon_state = "t45dhelmet0" item_state = "t45dhelmet0" actions_types = list(/datum/action/item_action/toggle_helmet_light) - armor = list("melee" = 75, "bullet" = 75, "laser" = 75, "energy" = 25, "bomb" = 65, "bio" = 75, "rad" = 80, "fire" = 85, "acid" = 30, "wound" = 40) + armor = list("melee" = 72.5, "bullet" = 72.5, "laser" = 72.5, "energy" = 25, "bomb" = 65, "bio" = 75, "rad" = 80, "fire" = 85, "acid" = 30, "wound" = 40) // armor_block_chance = 60 // deflection_chance = 10 //20% chance to block damage from blockable bullets and redirect the bullet at a random angle @@ -460,42 +321,22 @@ icon_state = "t45dhelmet[light_on]" item_state = "t45dhelmet[light_on]" -/obj/item/clothing/head/helmet/f13/power_armor/t45d/gunslinger - name = "Gunslinger T-51b Helm" - desc = "(IX) With most of the external plating stripped to allow for internal thermal and night vision scanners, as well as aided targeting assist via onboard systems, this helm provides much more utility then protection. To support these systems, secondary power cells were installed into the helm, and covered with a stylish hat." - icon_state = "t51bgs" - item_state = "t51bgs" - slowdown = -0.2 - flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR - actions_types = list() - -/obj/item/clothing/head/helmet/f13/power_armor/t45d/sierra - name = "sierra power helmet" - desc = "(IX) A pre-war power armor helmet, issued to special NCR officers.." - icon_state = "sierra" - item_state = "sierra" - actions_types = list() - -/obj/item/clothing/head/helmet/f13/power_armor/midwest - name = "midwestern power helmet" - desc = "This helmet once belonged to the Midwestern branch of the Brotherhood of Steel, and now resides here." - icon_state = "midwestgrey_helm" - item_state = "midwestgrey_helm" - armor = list("melee" = 75, "bullet" = 75, "laser" = 80, "energy" = 27, "bomb" = 62, "bio" = 100, "rad" = 99, "fire" = 90, "acid" = 0, "wound" = 70) -// armor_block_chance = 60 -// deflection_chance = 10 //20% chance to block damage from blockable bullets and redirect the bullet at a random angle +/obj/item/clothing/head/helmet/f13/power_armor/hotrod + name = "hotrod T-45b power helmet" + desc = "This power armor helmet is so decrepit and battle-worn that it have lost most of its capability to protect the wearer from harm." + icon_state = "t45hotrod_helm" + item_state = "t45hotrod_helm" + armor = list("melee" = 55, "bullet" = 55, "laser" = 55, "energy" = 20, "bomb" = 50, "bio" = 60, "rad" = 50, "fire" = 80, "acid" = 0, "wound" = 40) + requires_training = FALSE + powered = FALSE /obj/item/clothing/head/helmet/f13/power_armor/t51b name = "T-51b power helmet" desc = "It's a T-51b power helmet, typically used by the Brotherhood. It looks somewhat charming." icon_state = "t51bhelmet0" item_state = "t51bhelmet0" - armor = list("melee" = 75, "bullet" = 75, "laser" = 75, "energy" = 27, "bomb" = 62, "bio" = 100, "rad" = 99, "fire" = 90, "acid" = 0, "wound" = 70) + armor = list("melee" = 70, "bullet" = 70, "laser" = 70, "energy" = 27, "bomb" = 62, "bio" = 100, "rad" = 99, "fire" = 90, "acid" = 0, "wound" = 70) actions_types = list(/datum/action/item_action/toggle_helmet_light) -// armor_block_chance = 70 -// deflection_chance = 10 //35% chance to block damage from blockable bullets and redirect the bullet at a random angle. Less overall armor compared to T-60, but higher deflection. -// armor_block_threshold = 0.25 -// melee_block_threshold = 35 /obj/item/clothing/head/helmet/f13/power_armor/t51b/update_icon_state() icon_state = "t51bhelmet[light_on]" @@ -509,27 +350,6 @@ icon_state = "t51bhelmet[light_on]" item_state = "t51bhelmet[light_on]" -/obj/item/clothing/head/helmet/f13/power_armor/t51b/wbos - name = "Washington power helmet" - desc = "It's a Washington Brotherhood power helmet. It looks somewhat terrifying." - icon_state = "t51wboshelmet" - item_state = "t51wboshelmet" - actions_types = list() - -/obj/item/clothing/head/helmet/f13/power_armor/t51b/reforgedwbos - name = "reforged Washington power helmet" - desc = "It's a reforged Washington Brotherhood power helmet, designed to induce fear in a target." - icon_state = "t51matthelmet" - item_state = "t51matthelmet" - actions_types = list() - -/obj/item/clothing/head/helmet/f13/power_armor/t51b/ultra - name = "Ultracite power helmet" - desc = "It's a T-51b power helmet, typically used by the Brotherhood. It looks somewhat charming. Now enhanced with ultracite." - icon_state = "ultracitepa_helm" - item_state = "ultracitepa_helm" - slowdown = 0 - actions_types = list() /obj/item/clothing/head/helmet/f13/power_armor/t60 name = "T-60a power helmet" @@ -538,10 +358,7 @@ item_state = "t60helmet0" armor = list("melee" = 80, "bullet" = 70, "laser" = 80, "energy" = 30, "bomb" = 82, "bio" = 100, "rad" = 100, "fire" = 95, "acid" = 0, "wound" = 80) actions_types = list(/datum/action/item_action/toggle_helmet_light) -// armor_block_chance = 80 -// deflection_chance = 15 //20% chance to block damage from blockable bullets and redirect the bullet at a random angle. Same deflection as T-45 due to it having the same general shape. -// melee_block_threshold = 40 -// armor_block_threshold = 0.3 + /obj/item/clothing/head/helmet/f13/power_armor/t60/update_icon_state() icon_state = "t60helmet[light_on]" @@ -549,69 +366,37 @@ /obj/item/clothing/head/helmet/f13/power_armor/excavator name = "excavator power helmet" - desc = "(VIII) The helmet of the excavator power armor suit." + desc = "The helmet of the excavator power armor suit." icon_state = "excavator" item_state = "excavator" - armor = list("tier" = 8, "energy" = 60, "bomb" = 62, "bio" = 100, "rad" = 90, "fire" = 90, "acid" = 0) -// armor_block_chance = 40 -// deflection_chance = 10 //10% chance to block damage from blockable bullets and redirect the bullet at a random angle. Not a heavy combat model + armor = list("melee" = 80, "bullet" = 50, "laser" = 50, "energy" = 15, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 95, "acid" = 80, "wound" = 80) + /obj/item/clothing/head/helmet/f13/power_armor/advanced name = "advanced power helmet" - desc = "(XII) It's an advanced power armor MK1 helmet, typically used by the Enclave. It looks somewhat threatening." + desc = "It's an advanced power armor MK1 helmet, typically used by the Enclave. It looks somewhat threatening." icon_state = "advhelmet1" item_state = "advhelmet1" armor = list("melee" = 80, "bullet" = 80, "laser" = 85, "energy" = 35, "bomb" = 72, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 0, "wound" = 90) -// armor_block_threshold = 0.45 -// melee_block_threshold = 45 -// armor_block_chance = 80 //Enclave. 'nuff said -// deflection_chance = 15 //40% chance to block damage from blockable bullets and redirect the bullet at a random angle. Your ride's over mutie, time to die. + /obj/item/clothing/head/helmet/f13/power_armor/advanced/hellfire name = "hellfire power armor" desc = "A deep black helmet of Enclave-manufactured heavy power armor with yellow ballistic glass, based on pre-war designs such as the T-51 and improving off of data gathered by post-war designs such as the X-01. Most commonly fielded on the East Coast, no other helmet rivals it's strength." icon_state = "hellfirehelm" item_state = "hellfirehelm" -// melee_block_threshold = 70 -// armor_block_threshold = 0.8 -// armor_block_chance = 99 -// deflection_chance = 70 armor = list("melee" = 85, "bullet" = 85, "laser" = 87, "energy" = 37, "bomb" = 72, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 0, "wound" = 100) -/obj/item/clothing/head/helmet/f13/power_armor/advanced/hellfire/wbos - name = "advanced Washington power helmet" - desc = "It's an improved model of the power armor helmet used exclusively by the Washington Brotherhood, designed to induce fear in a target." - icon_state = "t51wboshelmet" - item_state = "t51wboshelmet" - -/obj/item/clothing/head/helmet/f13/power_armor/tesla - name = "tesla power helmet" - desc = "A helmet typically used by Enclave special forces.
There are three orange energy capacitors on the side." - icon_state = "tesla" - item_state = "tesla" - armor = list("linemelee" = 200, "linebullet" = 200, "linelaser" = 300, "energy" = 95, "bomb" = 62, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 0, "wound" = 80) - var/hit_reflect_chance = 35 - -/obj/item/clothing/head/helmet/f13/power_armor/tesla/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) - if(is_energy_reflectable_projectile(object) && (attack_type == ATTACK_TYPE_PROJECTILE) && (def_zone in protected_zones)) - if(prob(hit_reflect_chance)) - block_return[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_DEFLECT - return BLOCK_SHOULD_REDIRECT | BLOCK_REDIRECTED | BLOCK_SUCCESS | BLOCK_PHYSICAL_INTERNAL - return ..() //Part of the peacekeeper enclave stuff, adjust values as needed. /obj/item/clothing/head/helmet/f13/power_armor/x02helmet name = "Enclave power armor helmet" - desc = "(XI) The Enclave Mark II Powered Combat Armor helmet." + desc = "The Enclave Mark II Powered Combat Armor helmet." icon_state = "advanced" item_state = "advanced" slowdown = 0.1 - armor = list("tier" = 11, "energy" = 65, "bomb" = 62, "bio" = 100, "rad" = 99, "fire" = 90, "acid" = 0, "wound" = 70) + armor = list("melee" = 85, "bullet" = 85, "laser" = 87, "energy" = 65, "bomb" = 62, "bio" = 100, "rad" = 99, "fire" = 90, "acid" = 0, "wound" = 70) actions_types = list(/datum/action/item_action/toggle_helmet_light) -// armor_block_threshold = 0.45 -// melee_block_threshold = 45 -// armor_block_chance = 80 -// deflection_chance = 15 //Generic Tribal - For Wayfarer specific, see f13factionhead.dm @@ -705,7 +490,7 @@ flags_inv = HIDEHAIR armor = list("melee" = 20, "bullet" = 15, "laser" = 10, "energy" = 10, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 0) -/obj/item/clothing/head/f13/cowboy/Initialize() +/obj/item/clothing/head/f13/cowboy/Initialize() . = ..() AddComponent(/datum/component/armor_plate) @@ -718,7 +503,7 @@ flags_inv = HIDEHAIR armor = list("melee" = 20, "bullet" = 15, "laser" = 10, "energy" = 10, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 0) -/obj/item/clothing/head/f13/bandit/Initialize() +/obj/item/clothing/head/f13/bandit/Initialize() . = ..() AddComponent(/datum/component/armor_plate) @@ -729,8 +514,8 @@ item_state = "dethat" flags_inv = HIDEHAIR armor = list("melee" = 20, "bullet" = 15, "laser" = 10, "energy" = 10, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 0) - -/obj/item/clothing/head/f13/gambler/Initialize() + +/obj/item/clothing/head/f13/gambler/Initialize() . = ..() AddComponent(/datum/component/armor_plate) @@ -744,10 +529,10 @@ armor = list("melee" = 35, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 0) flags_inv = HIDEMASK|HIDEEARS|HIDEHAIR strip_delay = 10 - -/obj/item/clothing/head/helmet/f13/motorcycle/Initialize() + +/obj/item/clothing/head/helmet/f13/motorcycle/Initialize() . = ..() - AddComponent(/datum/component/armor_plate) + AddComponent(/datum/component/armor_plate) /obj/item/clothing/head/helmet/f13/firefighter name = "firefighter helmet" @@ -780,10 +565,10 @@ item_state = "wastewar" armor = list("melee" = 35, "bullet" = 25, "laser" = 25, "energy" = 10, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 0) flags_inv = HIDEEARS|HIDEHAIR - -/obj/item/clothing/head/helmet/f13/wastewarhat/Initialize() + +/obj/item/clothing/head/helmet/f13/wastewarhat/Initialize() . = ..() - AddComponent(/datum/component/armor_plate) + AddComponent(/datum/component/armor_plate) /obj/item/clothing/head/helmet/f13/hoodedmask @@ -803,8 +588,8 @@ item_state = "brahmin_leather_cowboy_hat" armor = list("melee" = 25, "bullet" = 25, "laser" = 25, "energy" = 10, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 0) flags_inv = HIDEEARS|HIDEHAIR - -/obj/item/clothing/head/helmet/f13/brahmincowboyhat/Initialize() + +/obj/item/clothing/head/helmet/f13/brahmincowboyhat/Initialize() . = ..() AddComponent(/datum/component/armor_plate) @@ -816,8 +601,8 @@ flags_inv = HIDEEARS|HIDEHAIR armor = list("melee" = 25, "bullet" = 25, "laser" = 25, "energy" = 10, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 0) flags_inv = HIDEEARS|HIDEHAIR - -/obj/item/clothing/head/helmet/f13/rustedcowboyhat/Initialize() + +/obj/item/clothing/head/helmet/f13/rustedcowboyhat/Initialize() . = ..() AddComponent(/datum/component/armor_plate) @@ -833,7 +618,6 @@ desc = "A headband with a pair of cute kitty ears." icon_state = "kittyb" color = "#999999" - armor = list("tier" = 0) dynamic_hair_suffix = "" /obj/item/clothing/head/f13/riderw @@ -917,7 +701,7 @@ alt_toggle_message = "You take the sniper's veil off" can_toggle = 1 toggle_cooldown = 0 - armor = list("tier" = 2, "energy" = 20, "bomb" = 20, "bio" = 20, "rad" = 20, "fire" = 20, "acid" = 20) + /obj/item/clothing/head/helmet/f13/ncr/rangercombat/mosshelmet name = "veteran patrol stetson" @@ -982,7 +766,7 @@ desc = "(IV) A thick undyed felt cowboy hat, bleached from excessive sun exposure and creased from heavy usage." icon_state = "marlowhat" item_state = "marlowhat" - armor = list("tier" = 4, "energy" = 25, "bomb" = 30, "bio" = 20, "rad" = 0, "fire" = 50, "acid" = 0) + armor = list("energy" = 25, "bomb" = 30, "bio" = 20, "rad" = 0, "fire" = 50, "acid" = 0) flags_inv = HIDEEARS|HIDEHAIR /obj/item/clothing/head/helmet/f13/marlowhat/Initialize() @@ -995,7 +779,7 @@ icon_state = "ranger_grey_hat" item_state = "ranger_grey_hat" flags_inv = HIDEEARS|HIDEHAIR - + /obj/item/clothing/head/f13/ranger_hat/Initialize() //HQ parts reinforcement . = ..() AddComponent(/datum/component/armor_plate) @@ -1024,3 +808,13 @@ desc = "A set of heavy bandages wrapped around the head. Made to protect the eye from whatever injury occured." icon_state = "eyepatch_white_r" item_state = "eyepatch_white_r" + +/obj/item/clothing/head/helmet/skull/bone + name = "Reinforced skull helmet" + desc = "An intimidating tribal helmet reinforced with leather and cloth parts on the inside for more comfort, while styling it on the Bone dancers way." + flags_inv = HIDEEARS|HIDEFACE + flags_cover = HEADCOVERSEYES + armor = list("melee" = 30, "bullet" = 30, "laser" = 25, "energy" = 10, "bomb" = 15, "bio" = 60, "rad" = 15, "fire" = 60, "acid" = 30) + icon_state = "bone_dancer_helmet" + item_state = "bone_dancer_helmet" + strip_delay = 100 diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index dcf7a0c6b9..acfd8eb905 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -9,7 +9,7 @@ light_color = "#FFCC66" light_on = FALSE var/hat_type = "yellow" //Determines used sprites: hardhat[light_on]_[hat_type] and hardhat[light_on]_[hat_type]2 (lying down sprite) - armor = list("tier" = 2,"energy" = 10, "bomb" = 20, "bio" = 10, "rad" = 20, "fire" = 100, "acid" = 50) + armor = list("melee" = 35, "bullet" = 10, "laser" = 25,"energy" = 10, "bomb" = 30, "bio" = 0, "rad" = 20, "fire" = 100, "acid" = 50) flags_inv = 0 actions_types = list(/datum/action/item_action/toggle_helmet_light) resistance_flags = FIRE_PROOF @@ -53,6 +53,7 @@ dog_fashion = null name = "firefighter helmet" clothing_flags = STOPSPRESSUREDAMAGE + armor = list("melee" = 10, "bullet" = 10, "laser" = 35,"energy" = 10, "bomb" = 30, "bio" = 0, "rad" = 20, "fire" = 100, "acid" = 50) heat_protection = HEAD max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT cold_protection = HEAD diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 4cdb117728..e189e9533b 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -42,7 +42,6 @@ . += "[attached_light] looks like it can be unscrewed from [src]." else if(can_flashlight) . += "It has a mounting point for a seclite." - . += "This helmet provides [armor.bullet] bullet, [armor.laser] energy, and [armor.melee] melee resistance." /obj/item/clothing/head/helmet/handle_atom_del(atom/A) if(A == attached_light) @@ -459,7 +458,7 @@ icon_state = "policehelm" dynamic_hair_suffix = "" armor = list("tier" = 2) - + /obj/item/clothing/head/helmet/armyhelmet name = "steel helmet" desc = "a steel helmet, inspired by several pre-war designs. It provides some protection against impacts, cuts, and medium-velocity bullets." @@ -468,7 +467,7 @@ icon_state = "armyhelmet" item_state = "armyhelmet" armor = list("melee" = 20, "bullet" = 45, "laser" = 20, "energy" = 15, "bomb" = 20, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) - + /obj/item/clothing/head/helmet/armyhelmet/heavy name = "heavy steel helmet" desc = "a steel helmet, inspired by several pre-war designs. This one has been modified by oasis citizens to provide more protection to the face and neck." diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index d4bc799537..16dc47aa15 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -17,11 +17,10 @@ /obj/item/clothing/head/that name = "top-hat" - desc = "(I) It's an amish looking hat." + desc = "It's an amish looking hat." icon_state = "tophat" item_state = "that" throwforce = 1 - armor = list("tier" = 1) dog_fashion = /datum/dog_fashion/head beepsky_fashion = /datum/beepsky_fashion/tophat @@ -36,8 +35,7 @@ /obj/item/clothing/head/redcoat name = "redcoat's hat" icon_state = "redcoat" - desc = "(I) 'I guess it's a redhead.'" - armor = list("tier" = 1) + desc = "'I guess it's a redhead.'" /obj/item/clothing/head/mailman name = "mailman's hat" @@ -46,10 +44,10 @@ /obj/item/clothing/head/plaguedoctorhat name = "plague doctor's hat" - desc = "(I) These were once used by plague doctors. They're pretty much useless." + desc = "These were once used by plague doctors. They're pretty much useless." icon_state = "plaguedoctor" + armor = list("melee" = 10, "bullet" = 10, "laser" = 25, "energy" = 10, "bomb" = 15, "bio" = 25, "rad" = 0, "fire" = 30, "acid" = 0) permeability_coefficient = 0.01 - armor = list("tier" = 1) /obj/item/clothing/head/hasturhood @@ -299,12 +297,10 @@ /obj/item/clothing/head/crown name = "crown" - desc = "(I) A crown fit for a king, a petty king maybe." + desc = "A crown fit for a king, a petty king maybe." icon_state = "crown" - armor = list("tier" = 1,"energy" = 15, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF dynamic_hair_suffix = "" - beepsky_fashion = /datum/beepsky_fashion/king /obj/item/clothing/head/crown/fancy @@ -455,15 +451,16 @@ /obj/item/clothing/head/hunter name = "bounty hunting hat" - desc = "(I) Ain't nobody gonna cheat the hangman in my town." + desc = "Ain't nobody gonna cheat the hangman in my town." icon_state = "hunter" item_state = "hunter" - armor = list("tier" = 1, "energy" = 15, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) + armor = list("melee" = 15, "bullet" = 15, "laser" = 15, "energy" = 10, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 0) resistance_flags = FIRE_PROOF | ACID_PROOF /obj/item/clothing/head/kepi name = "kepi" desc = "A white cap with visor. Oui oui, mon capitane!" + armor = list("melee" = 15, "bullet" = 15, "laser" = 15, "energy" = 10, "bomb" = 15, "bio" = 5, "rad" = 5, "fire" = 30, "acid" = 5) icon_state = "kepi" /obj/item/clothing/head/kepi/old @@ -489,26 +486,72 @@ icon_state = "kabuto" item_state = "kabuto" flags_inv = HIDEHAIR|HIDEEARS + armor = list("melee" = 25, "bullet" = 25, "laser" = 25, "energy" = 10, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 0) /obj/item/clothing/head/fluff/bandit name = "bandit hat" - desc = "(I) A black cowboy hat with a large brim, curved to the sides, and a silver eagle pinned to the front." + desc = "A black cowboy hat with a large brim, curved to the sides, and a silver eagle pinned to the front." icon_state = "bandit" item_state = "fedora" - armor = list("tier" = 1) + armor = list("melee" = 15, "bullet" = 15, "laser" = 15, "energy" = 10, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 0) /obj/item/clothing/head/fluff/gambler name = "gambler hat" - desc = "(I) Perfect for a ramblin' gamblin' man." //But I got to ramble (ramblin' man) //Oh I got to gamble (gamblin' man) //Got to got to ramble (ramblin' man) //I was born a ramblin' gamblin' man + desc = "Perfect for a ramblin' gamblin' man." //But I got to ramble (ramblin' man) //Oh I got to gamble (gamblin' man) //Got to got to ramble (ramblin' man) //I was born a ramblin' gamblin' man icon_state = "gambler" item_state = "dethat" - armor = list("tier" = 1) + armor = list("melee" = 15, "bullet" = 15, "laser" = 15, "energy" = 10, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 0) /obj/item/clothing/head/fluff/Bikerhelmet name = "Future Helmet" - desc = "(II) A helmet of some sort as if from the distant future." + desc = "(A helmet of some sort as if from the distant future." icon_state = "biker_helmet" item_state = "biker_helmet" - armor = list("tier" = 2,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 0) + armor = list("melee" = 30, "bullet" = 15, "laser" = 25, "energy" = 10, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 0) resistance_flags = FIRE_PROOF flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + +/obj/item/clothing/head/rainbowbunchcrown + name = "rainbow flower crown" + desc = "A flower crown made out of the flowers of the rainbow bunch plant." + dynamic_hair_suffix = "" + attack_verb = list("crowned") + +/obj/item/clothing/head/rainbowbunchcrown/Initialize() + . = ..() + var/crown_type = rand(1,4) + switch(crown_type) + if(1) + desc += " This one has red, yellow and white flowers." + icon_state = "rainbow_bunch_crown_1" + if(2) + desc += " This one has blue, yellow, green and white flowers." + icon_state = "rainbow_bunch_crown_2" + if(3) + desc += " This one has red, blue, purple and pink flowers." + icon_state = "rainbow_bunch_crown_3" + if(4) + desc += " This one has yellow, green and white flowers." + icon_state = "rainbow_bunch_crown_4" + +/obj/item/clothing/head/sunflowercrown + name = "sunflower crown" + desc = "A bright flower crown made out sunflowers that is sure to brighten up anyone's day!" + icon_state = "sunflower_crown" + dynamic_hair_suffix = "" + attack_verb = list("crowned") + +/obj/item/clothing/head/poppycrown + name = "poppy crown" + desc = "A flower crown made out of a string of bright red poppies." + icon_state = "poppy_crown" + dynamic_hair_suffix = "" + attack_verb = list("crowned") + +/obj/item/clothing/head/lilycrown + name = "lily crown" + desc = "A leafy flower crown with a cluster of large white lilies at at the front." + icon_state = "lily_crown" + dynamic_hair_suffix = "" + attack_verb = list("crowned") + diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 646c887e4f..d4ebc382ab 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -125,6 +125,14 @@ light_range = 2 flags_cover = HEADCOVERSEYES +/obj/item/clothing/head/hardhat/pumpkinhead/blumpkin + name = "carved blumpkin" + desc = "A very blue jack o' lantern! Believed to ward off vengeful chemists." + icon_state = "hardhat0_blumpkin" + item_state = "hardhat0_blumpkin" + hat_type = "blumpkin" + light_color = "#76ff8e" + /* * Kitty ears */ diff --git a/code/modules/clothing/outfits/vr.dm b/code/modules/clothing/outfits/vr.dm index 18de254fc2..905da74486 100644 --- a/code/modules/clothing/outfits/vr.dm +++ b/code/modules/clothing/outfits/vr.dm @@ -78,7 +78,7 @@ shoes = /obj/item/clothing/shoes/combat/swat gloves = /obj/item/clothing/gloves/combat id = /obj/item/card/id/dogtag/virt - box = /obj/item/storage/survivalkit_adv + box = /obj/item/storage/survivalkit/adv starting_funds = 0 /datum/outfit/vr/followers diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 080cb4ed12..4d4298f3ac 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -8,14 +8,10 @@ equip_delay_other = 40 max_integrity = 250 resistance_flags = NONE - armor = list("melee" = 40, "bullet" = 40, "laser" = 40, energy = "25", "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50, "wound" = 25) + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0 , "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0, "wound" = 25) slowdown = 0.01 var/list/protected_zones = list(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_GROIN, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) -/obj/item/clothing/suit/armor/examine(mob/user) - . = ..() - . += "This armor provides [armor.bullet]% bullet, [armor.laser]% laser, and [armor.melee]% melee resistance." - /obj/item/clothing/suit/armor/Initialize() . = ..() if(!allowed) @@ -31,13 +27,24 @@ /obj/item/clothing/suit/armor/vest name = "armor vest" - desc = "A slim armored vest with a rigid exterior that provides decent protection against most types of damage." + desc = "A slim armored vest with a rigid exterior that provides decent protection against pistol rounds, stabs, and bludgeons." icon_state = "armoralt" item_state = "armoralt" blood_overlay_type = "armor" dog_fashion = /datum/dog_fashion/back mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON - armor = list("melee" = 40, "bullet" = 40, "laser" = 40, energy = "25", "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50, "wound" = 25) + armor = list("melee" = 35, "bullet" = 35, "laser" = 35, energy = "25", "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50, "wound" = 30) + slowdown = 0.05 + +/obj/item/clothing/suit/armor/vest/big + name = "security vest" + desc = "A thick bullet-resistant vest composed of ballistic plates and padding. Common with pre-war security forces." + icon = 'icons/fallout/clothing/armored_medium.dmi' + mob_overlay_icon = 'icons/fallout/onmob/clothes/armor_medium.dmi' + icon_state = "vest_armor" + item_state = "vest_armor" + armor = list("melee" = 50, "bullet" = 50, "laser" = 25, energy = "20", "bomb" = 50, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50, "wound" = 30) + slowdown = 0.18 /obj/item/clothing/suit/armor/vest/trench name = "followers trenchcoat" @@ -46,9 +53,11 @@ item_state = "followerstrench" /obj/item/clothing/suit/armor/vest/alt - desc = "A Type I armored vest that provides decent protection against most types of damage." + desc = "A thick armored vest that provides decent protection against most types of damage." icon_state = "armor" item_state = "armor" + armor = list("melee" = 40, "bullet" = 40, "laser" = 40, energy = "25", "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50, "wound" = 30) + slowdown = 0.1 /obj/item/clothing/suit/armor/vest/old name = "degrading armor vest" @@ -289,14 +298,13 @@ /obj/item/clothing/suit/armor/vest/durathread name = "makeshift vest" - desc = "A vest made of durathread with strips of leather acting as trauma plates." + desc = "A makeshift vest made of heat-resistant fiber." icon_state = "durathread" item_state = "durathread" strip_delay = 60 equip_delay_other = 40 max_integrity = 200 - resistance_flags = FLAMMABLE - armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 5, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 50) + armor = list("melee" = 25, "bullet" = 15, "laser" = 40, "energy" = 40, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 50) /obj/item/clothing/suit/armor/vest/russian name = "russian vest" diff --git a/code/modules/clothing/suits/f13armor.dm b/code/modules/clothing/suits/f13armor.dm index cb60a1244c..0cea743550 100644 --- a/code/modules/clothing/suits/f13armor.dm +++ b/code/modules/clothing/suits/f13armor.dm @@ -55,9 +55,9 @@ desc = "Separate armor parts you can wear over the clothing to get the most basic protection from the dangers of wasteland.
It sure is better than going into the battle without any armor at all." icon_state = "armorkit" item_state = "armorkit" - armor = list("melee" = 20, "bullet" = 40, "laser" = 15, "energy" = 15, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0, "wound" = 30) + armor = list("melee" = 25, "bullet" = 25, "laser" = 25, "energy" = 20, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 10, "wound" = 30) strip_delay = 30 - slowdown = 0.05 + slowdown = 0.025 /obj/item/clothing/suit/armor/f13/kit/Initialize() . = ..() @@ -68,16 +68,26 @@ desc = "A couple of armor parts that can be worn over the clothing for moderate protection against the dangers of wasteland.
Do you feel lucky now? Well, do ya, punk?" icon_state = "armorkit_punk" item_state = "armorkit_punk" - armor = list("melee" = 30, "bullet" = 30, "laser" = 30, "energy" = 20, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0, "wound" = 30) + armor = list("melee" = 20, "bullet" = 30, "laser" = 20, "energy" = 15, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 10, "wound" = 30) strip_delay = 30 icon = 'icons/fallout/clothing/armored_light.dmi' mob_overlay_icon = 'icons/fallout/onmob/clothes/armor_light.dmi' - slowdown = 0.05 + slowdown = 0.025 /obj/item/clothing/suit/armor/f13/punk/Initialize() . = ..() AddComponent(/datum/component/armor_plate) +/obj/item/clothing/suit/armor/f13/plates + name = "light armor plates" + desc = "Well-made metal plates covering your vital organs." + icon = 'icons/fallout/clothing/armored_light.dmi' + mob_overlay_icon = 'icons/fallout/onmob/clothes/armor_light.dmi' + icon_state = "light_plates" + item_state = "armorkit" + armor = list("melee" = 33, "bullet" = 33, "laser" = 40, "energy" = 15, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0, "wound" = 30) + slowdown = 0.08 + /obj/item/clothing/suit/armor/f13/leatherarmor name = "leather armor" desc = "Your basic all leather apparel. Finely crafted from tanned brahmin hide." @@ -103,15 +113,19 @@ mob_overlay_icon = 'icons/fallout/onmob/clothes/armor_medium.dmi' icon_state = "metal_chestplate" item_state = "metal_chestplate" - armor = list("melee" = 40, "bullet" = 40, "laser" = 50, "energy" = 15, "bomb" = 45, "bio" = 30, "rad" = 15, "fire" = 60, "acid" = 0, "wound" = 45) - slowdown = 0.3 + armor = list("melee" = 40, "bullet" = 45, "laser" = 50, "energy" = 15, "bomb" = 45, "bio" = 30, "rad" = 15, "fire" = 60, "acid" = 0, "wound" = 45) + slowdown = 0.22 strip_delay = 10 /obj/item/clothing/suit/armor/f13/metalarmor/laserproof name = "polished metal armor" desc = "A set of plates formed together to form a crude chestplate. These have been waxed and buffed to a mirror finish, but it looks a bit thinner." - armor = list("melee" = 40, "bullet" = 38, "laser" = 60, "energy" = 15, "bomb" = 45, "bio" = 30, "rad" = 15, "fire" = 60, "acid" = 0, "wound" = 45) - slowdown = 0.29 + icon = 'icons/fallout/clothing/armored_medium.dmi' + mob_overlay_icon = 'icons/fallout/onmob/clothes/armor_medium.dmi' + icon_state = "armor_enclave_peacekeeper" + item_state = "armor_enclave_peacekeeper" + armor = list("melee" = 38, "bullet" = 42, "laser" = 60, "energy" = 25, "bomb" = 45, "bio" = 30, "rad" = 15, "fire" = 60, "acid" = 0, "wound" = 45) + slowdown = 0.2 strip_delay = 10 /obj/item/clothing/suit/armor/fluff/metalarmor/Initialize() @@ -125,11 +139,11 @@ /obj/item/clothing/suit/armor/f13/metalarmor/reinforced name = "reinforced metal armor" - desc = "A set of polished plates formed together to provide effective protection." + desc = "A set of well-fitted plates formed together to provide effective protection." icon_state = "metal_chestplate2" item_state = "metal_chestplate2" - armor = list("melee" = 37, "bullet" = 25, "laser" = 42, "energy" = 15, "bomb" = 40, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 50) - slowdown = 0.27 + armor = list("melee" = 45, "bullet" = 50, "laser" = 55, "energy" = 15, "bomb" = 45, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 50) + slowdown = 0.25 strip_delay = 10 /obj/item/clothing/suit/armor/f13/metalarmor/steelbib @@ -138,7 +152,7 @@ icon_state = "steel_bib" item_state = "steel_bib" armor = list("melee" = 20, "bullet" = 45, "laser" = 20, "energy" = 15, "bomb" = 20, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) - slowdown = 0.05 + slowdown = 0.06 strip_delay = 5 //Combat armor (Faction specific is on f13factionarmor.dm) @@ -147,9 +161,14 @@ desc = "An old military grade pre war combat armor." icon_state = "combat_armor" item_state = "combat_armor" - armor = list("melee" = 45, "bullet" = 45, "laser" = 40, "energy" = 20, "bomb" = 50, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20, "wound" = 50) + armor = list("melee" = 45, "bullet" = 45, "laser" = 45, "energy" = 20, "bomb" = 50, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20, "wound" = 50) slowdown = 0.12 +/obj/item/clothing/suit/armor/f13/combat/laserproof + name = "ablative combat armor" + desc = "An old military grade pre war combat armor. This one switches out its ballistic fibers for an ablative coating that disrupts energy weapons." + armor = list("melee" = 35, "bullet" = 35, "laser" = 60, "energy" = 50, "bomb" = 50, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20, "wound" = 50) + /obj/item/clothing/suit/armor/f13/combat/dark name = "combat armor" desc = "An old military grade pre war combat armor. Now in dark, and extra-crispy!" @@ -170,9 +189,9 @@ icon = 'icons/obj/clothing/suits.dmi' icon_state = "combat_armor_mk2" item_state = "combat_armor_mk2" - armor = list("melee" = 50, "bullet" = 50, "laser" = 40, "energy" = 22, "bomb" = 55, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20, "wound" = 55) + armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 22, "bomb" = 55, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20, "wound" = 55) slowdown = 0.15 - + /obj/item/clothing/suit/armor/f13/combat/mk2/dark name = "reinforced combat armor" desc = "A reinforced model based of the pre-war combat armor. Now in dark, light, and smoky barbeque!" @@ -198,7 +217,7 @@ item_state = "rusted_combat_armor" armor = list("melee" = 38, "bullet" = 45, "laser" = 38, "energy" = 18, "bomb" = 45, "bio" = 55, "rad" = 10, "fire" = 60, "acid" = 20, "wound" = 45) slowdown = 0.12 - + /obj/item/clothing/suit/armor/f13/combat/environmental name = "environmental armor" desc = "A pre-war suit developed for use in heavily contaminated environments, and is prized in the Wasteland for its ability to protect against biological threats." @@ -243,84 +262,8 @@ max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT cold_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT - var/emped = 0 var/requires_training = TRUE var/powered = TRUE - var/armor_block_chance = 0 //Chance for the power armor to block a low penetration projectile - protected_zones = list(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_GROIN, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) - var/deflection_chance = 0 //Chance for the power armor to redirect a blocked projectile - var/armor_block_threshold = 0 //projectiles below this will deflect - var/melee_block_threshold = 0 - var/dmg_block_threshold = 0 - var/powerLevel = 7000 - var/powerMode = 3 - -/obj/item/fusion_fuel - name = "fusion fuel cell" - desc = "Some fusion fuel used to recharge the fusion cores of Power Armor." - icon = 'icons/obj/power.dmi' - icon_state = "cell" - item_state = "cell" - lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' - righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' - var/fuel = 20000 - -/obj/item/fusion_fuel/examine(mob/user) - . = ..() - to_chat(user, "The charge meter reads [fuel].") - -/obj/item/clothing/suit/armor/f13/power_armor/attackby(obj/item/I, mob/user, params) - . = ..() - if(istype(I,/obj/item/fusion_fuel)&& powered) - var/obj/item/fusion_fuel/fuel = I - if(src.powerLevel>=50000) - to_chat(user, "The fusion core is full.") - return - if(fuel.fuel >= 5000) - src.powerLevel += 5000 - fuel.fuel -= 5000 - to_chat(user, "You charge the fusion core to [src.powerLevel] units of fuel. [fuel.fuel]/20000 left in the fuel cell.") - return - to_chat(user, "The fuel cell is empty.") - -/obj/item/clothing/suit/armor/f13/power_armor/proc/processPower() - if(powerLevel>0)//drain charge - powerLevel -= 1 - if(powerLevel > 20000)//switch to 3 power mode - if(powerMode <= 2) - powerUp() - return - if(powerLevel > 10000)//switch to 2 power - if(powerMode <= 1) - powerUp() - if(powerMode > 2) - powerDown() - return - if(powerLevel > 5000)//switch to 1 power - if(powerMode <= 0) - powerUp() - if(powerMode > 1) - powerDown() - return - if(powerLevel >= 0)//switch to 0 power - if(powerMode >= 1) - powerDown() - -/obj/item/clothing/suit/armor/f13/power_armor/proc/powerUp(mob/user) - powerMode += 1 - slowdown -= 0.2 - var/mob/living/L = loc - if(istype(L)) - L.update_equipment_speed_mods() - armor = armor.modifyRating(melee = 75, bullet = 75, laser = 75) - -/obj/item/clothing/suit/armor/f13/power_armor/proc/powerDown(mob/user) - powerMode -= 1 - slowdown += 0.2 - var/mob/living/L = loc - if(istype(L)) - L.update_equipment_speed_mods() - armor = armor.modifyRating(melee = -75, bullet = -75, laser = -75) /obj/item/clothing/suit/armor/f13/power_armor/mob_can_equip(mob/user, mob/equipper, slot, disable_warning = 1) var/mob/living/carbon/human/H = user @@ -329,66 +272,53 @@ if (!HAS_TRAIT(H, TRAIT_PA_WEAR) && slot == SLOT_WEAR_SUIT && requires_training) to_chat(user, "You don't have the proper training to operate the power armor!") return 0 - if(slot == SLOT_WEAR_SUIT) - ADD_TRAIT(user, TRAIT_STUNIMMUNE, "stun_immunity") - ADD_TRAIT(user, TRAIT_PUSHIMMUNE, "push_immunity") + if(!powered) + return ..() + if(slot == SLOT_WEAR_SUIT && powered) + ADD_TRAIT(user, TRAIT_STUNIMMUNE, "PA_stun_immunity") + ADD_TRAIT(user, TRAIT_PUSHIMMUNE, "PA_push_immunity") + ADD_TRAIT(user, SPREAD_CONTROL, "PA_spreadcontrol") + return ..() return /obj/item/clothing/suit/armor/f13/power_armor/dropped(mob/user) - REMOVE_TRAIT(user, TRAIT_STUNIMMUNE, "stun_immunity") - REMOVE_TRAIT(user, TRAIT_PUSHIMMUNE, "push_immunity") + if(powered) + REMOVE_TRAIT(user, TRAIT_STUNIMMUNE, "PA_stun_immunity") + REMOVE_TRAIT(user, TRAIT_PUSHIMMUNE, "PA_push_immunity") + REMOVE_TRAIT(user, SPREAD_CONTROL, "PA_spreadcontrol") return ..() /obj/item/clothing/suit/armor/f13/power_armor/emp_act(mob/living/carbon/human/owner, severity) . = ..() if(. & EMP_PROTECT_SELF) return - emped++ - var/curremp = emped // keeps tabs on the current EMP cycle. - if(ismob(loc)) + if(!powered) + return + if(isliving(loc) && prob(severity*1.5)) + var/time_slowed = severity / 10 SECONDS var/mob/living/L = loc - to_chat(loc, "Warning: electromagnetic surge detected in armor. Rerouting power to emergency systems.") + to_chat(L, "Warning: electromagnetic surge detected in armor. Rerouting power to emergency systems.") slowdown += 1.2 - armor = armor.modifyRating(melee = -100, bullet = -100, laser = -100) if(istype(L)) L.update_equipment_speed_mods() - addtimer(CALLBACK(src, .proc/end_emp_effect, curremp), 5 SECONDS) + addtimer(CALLBACK(src, .proc/end_emp_effect), time_slowed) -/obj/item/clothing/suit/armor/f13/power_armor/proc/end_emp_effect(curremp) - if(emped != curremp) //Don't fix it if it's been EMP'd again - return FALSE - if(ismob(loc)) +/obj/item/clothing/suit/armor/f13/power_armor/proc/end_emp_effect() + if(isliving(loc)) var/mob/living/L = loc - armor = armor.modifyRating(melee = 100, bullet = 100, laser = 100) slowdown -= 1.2 - to_chat(loc, "Armor power reroute successful. All systems operational.") + to_chat(L, "Armor power reroute successful. All systems operational.") if(istype(L)) L.update_equipment_speed_mods() return TRUE -/obj/item/clothing/suit/armor/f13/power_armor/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) - . = ..() - if(damage >= src.dmg_block_threshold && check_armor_penetration(object) >= 0) - return - if(check_armor_penetration(object) <= src.armor_block_threshold && (attack_type == ATTACK_TYPE_PROJECTILE) && (def_zone in protected_zones)) - if(prob(armor_block_chance)) - var/ratio = rand(0,100) - if(ratio <= deflection_chance) - block_return[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_DEFLECT - return BLOCK_SHOULD_REDIRECT | BLOCK_REDIRECTED | BLOCK_SUCCESS | BLOCK_PHYSICAL_INTERNAL - if(ismob(loc)) - to_chat(loc, "Your power armor absorbs the projectile's impact!") - block_return[BLOCK_RETURN_SET_DAMAGE_TO] = 0 - return BLOCK_SUCCESS | BLOCK_PHYSICAL_INTERNAL - return - /obj/item/clothing/suit/armor/f13/power_armor/t45b name = "salvaged T-45b power armor" desc = "It's a set of early-model T-45 power armor with a custom air conditioning module and stripped out servomotors. Bulky and slow, but almost as good as the real thing." icon_state = "t45bpowerarmor" item_state = "t45bpowerarmor" - armor = list("melee" = 75, "bullet" = 75, "laser" = 75, "energy" = 20, "bomb" = 50, "bio" = 60, "rad" = 50, "fire" = 80, "acid" = 0, "wound" = 65) + armor = list("melee" = 70, "bullet" = 70, "laser" = 70, "energy" = 20, "bomb" = 50, "bio" = 60, "rad" = 50, "fire" = 80, "acid" = 0, "wound" = 65) requires_training = FALSE slowdown = 0.5 powered = FALSE @@ -397,7 +327,7 @@ name = "restored T-45b power armor" desc = "It's a set of early-model T-45 power armor with a custom air conditioning module and restored servomotors. Bulky, but almost as good as the real thing." requires_training = TRUE - armor = list("melee" = 75, "bullet" = 75, "laser" = 75, "energy" = 22, "bomb" = 55, "bio" = 65, "rad" = 55, "fire" = 85, "acid" = 0, "wound" = 65) + armor = list("melee" = 70, "bullet" = 70, "laser" = 70, "energy" = 22, "bomb" = 55, "bio" = 65, "rad" = 55, "fire" = 85, "acid" = 0, "wound" = 65) powered = TRUE slowdown = 0.3 @@ -427,29 +357,13 @@ slowdown = 0.25 requires_training = FALSE -/obj/item/clothing/suit/armor/f13/power_armor/vaulttec - name = "Vault-Tec power armour" - desc = "A refined suit of power armour, purpose-built by the residents of Vault-115 in order to better keep the peace in their new settlement." - icon_state = "vaultpa" - item_state = "vaultpa" - armor = list("melee" = 65, "bullet" = 65, "laser" = 65, "energy" = 22, "bomb" = 55, "bio" = 65, "rad" = 55, "fire" = 85, "acid" = 0, "wound" = 70) - slowdown = 0 - -/obj/item/clothing/suit/armor/f13/power_armor/vaulttecta - name = "Vault-Tec technical armour" - desc = "A primative suit of power armour, the first kind built by the residents of Vault-115 in order to fight off immediate threats." - icon_state = "vaulttecta" - item_state = "vaulttecta" - armor = list("melee" = 60, "bullet" = 60, "laser" = 60, "energy" = 25, "bomb" = 55, "bio" = 65, "rad" = 55, "fire" = 85, "acid" = 0, "wound" = 70) - slowdown = 0.4 - /obj/item/clothing/suit/armor/f13/power_armor/excavator name = "excavator power armor" desc = "Developed by Garrahan Mining Co. in collaboration with West Tek, the Excavator-class power armor was designed to protect miners from rockfalls and airborne contaminants while increasing the speed at which they could work. " icon_state = "excavator" item_state = "excavator" - slowdown = 0.5 - armor = list("melee" = 70, "bullet" = 50, "laser" = 50, "energy" = 25, "bomb" = 80, "bio" = 65, "rad" = 55, "fire" = 85, "acid" = 0, "wound" = 40) + slowdown = 0.4 + armor = list("melee" = 80, "bullet" = 50, "laser" = 50, "energy" = 15, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 95, "acid" = 80, "wound" = 80) /obj/item/clothing/suit/armor/f13/power_armor/t45d name = "T-45d power armor" @@ -457,26 +371,11 @@ icon_state = "t45dpowerarmor" item_state = "t45dpowerarmor" slowdown = 0.225 - armor = list("melee" = 75, "bullet" = 75, "laser" = 75, "energy" = 25, "bomb" = 65, "bio" = 75, "rad" = 80, "fire" = 85, "acid" = 30, "wound" = 70) - - -/obj/item/clothing/suit/armor/f13/power_armor/t45d/gunslinger - name = "Gunslinger T-51b" - desc = "(IX) What was once a suit of T-51 Power Armor is now an almost unrecognizable piece of art or garbage, depending on who you ask. Almost all of the external plating has either been removed or stripped to allow for maximum mobility, and overlapping underplates protect the user from small arms fire. Whoever designed this had a very specific purpose in mind: mobility and aesthetics over defense." - icon_state = "t51bgs" - item_state = "t51bgs" - slowdown = -0.2 - flags_inv = HIDEJUMPSUIT|HIDENECK - -/obj/item/clothing/suit/armor/f13/power_armor/t45d/sierra - name = "sierra power armor" - desc = "A captured set of T-45d power armor put into use by the NCR, it's been heavily modified and decorated with the head of a bear and intricate gold trimming. A two headed bear is scorched into the breastplate." - icon_state = "sierra" - item_state = "sierra" + armor = list("melee" = 72.5, "bullet" = 72.5, "laser" = 72.5, "energy" = 25, "bomb" = 65, "bio" = 75, "rad" = 80, "fire" = 85, "acid" = 30, "wound" = 70) /obj/item/clothing/suit/armor/f13/power_armor/t45d/knightcaptain - name = "Knight-Captain's T-45d Power Armour" - desc = "A classic set of T-45d Power Armour only to be used in armed combat, it signifies the Knight Captain and their place in the Brotherhood. A leader, and a beacon of structure in a place where chaos reigns. All must rally to his call, for he is the Knight Captain and your safety is his duty." + name = "Head-Knight's T-45d Power Armour" + desc = "A classic set of T-45d Power Armour only to be used in armed combat, it signifies the Head Knight and their place in the Brotherhood. A leader, and a beacon of structure in a place where chaos reigns. All must rally to his call, for he is the Head Knight and your safety is his duty." icon_state = "t45dkc" item_state = "t45dkc" slowdown = 0.16 @@ -487,20 +386,13 @@ icon_state = "t45dpowerarmor_bos" item_state = "t45dpowerarmor_bos" -/obj/item/clothing/suit/armor/f13/power_armor/midwest - name = "midwestern power armor" - desc = "This set of power armor once belonged to the Midwestern branch of the Brotherhood of Steel, and now resides here." - icon_state = "midwestgrey_pa" - item_state = "midwestgrey_pa" - armor = list("melee" = 75, "bullet" = 70, "laser" = 45, "energy" = 25, "bomb" = 65, "bio" = 75, "rad" = 80, "fire" = 85, "acid" = 30, "wound" = 70) - /obj/item/clothing/suit/armor/f13/power_armor/t51b name = "T-51b power armor" desc = "The pinnacle of pre-war technology. This suit of power armor provides substantial protection to the wearer." icon_state = "t51bpowerarmor" item_state = "t51bpowerarmor" - slowdown = 0.15 //+0.05 from helmet = total 0.175 - armor = list("melee" = 75, "bullet" = 75, "laser" = 75, "energy" = 30, "bomb" = 62, "bio" = 100, "rad" = 99, "fire" = 90, "acid" = 0, "wound" = 72) + slowdown = 0.15 //+0.05 from helmet = total 0.175 + armor = list("melee" = 72.5, "bullet" = 72.5, "laser" = 72.5, "energy" = 30, "bomb" = 62, "bio" = 100, "rad" = 99, "fire" = 90, "acid" = 0, "wound" = 72) /obj/item/clothing/suit/armor/f13/power_armor/t51green name = "Hardened T-51b power armor" @@ -508,7 +400,7 @@ icon_state = "t51green" item_state = "t51green" slowdown = 0.15 //+0.05 from helmet = total 0.2 - armor = list("melee" = 77, "bullet" = 77, "laser" = 72, "energy" = 27, "bomb" = 64, "bio" = 100, "rad" = 99, "fire" = 90, "acid" = 0, "wound" = 75) + armor = list("melee" = 75, "bullet" = 75, "laser" = 75, "energy" = 27, "bomb" = 64, "bio" = 100, "rad" = 99, "fire" = 90, "acid" = 0, "wound" = 75) /obj/item/clothing/suit/armor/f13/power_armor/t51b/bos name = "Brotherhood T-51b Power Armour" @@ -516,33 +408,6 @@ icon_state = "t51bpowerarmor_bos" item_state = "t51bpowerarmor_bos" -/obj/item/clothing/suit/armor/f13/power_armor/t51b/tesla - name = "T-51b tesla armor" - desc = "The pinnacle of pre-war technology. This suit of power armor provides substantial protection to the wearer, with the added benefit of tesla coils." - icon_state = "t51tesla" - item_state = "t51tesla" - slowdown = 0.15 //+0.1 from helmet = total 0.25 - armor = list("melee" = 70, "bullet" = 70, "laser" = 85, "energy" = 70, "bomb" = 62, "bio" = 100, "rad" = 99, "fire" = 90, "acid" = 0, "wound" = 72) - -/obj/item/clothing/suit/armor/f13/power_armor/t51b/wbos - name = "Washington power armor" - desc = "A dark mirror to the pinnacle of pre-war technology. This suit of power armor provides substantial protection to the wearer." - icon_state = "t51wbos" - item_state = "t51wbos" - -/obj/item/clothing/suit/armor/f13/power_armor/t51b/reforgedwbos - name = "reforged Washington power armor" - desc = "A dark mirror to the pinnacle of pre-war technology, reforged. This suit of power armor provides substantial protection to the wearer." - icon_state = "t51matt" - item_state = "t51matt" - -/obj/item/clothing/suit/armor/f13/power_armor/t51b/ultra - name = "Ultracite power armor" - desc = "(X) The pinnacle of pre-war technology. This suit of power armor provides substantial protection to the wearer. Now ultracite enhanced." - icon_state = "ultracitepa" - item_state = "ultracitepa" - slowdown = 0 - /obj/item/clothing/suit/armor/f13/power_armor/t60 name = "T-60a power armor" desc = "Developed in early 2077 after the Anchorage Reclamation, the T-60 series of power armor was designed to eventually replace the T-51b as the pinnacle of powered armor technology in the U.S. military arsenal." @@ -551,22 +416,6 @@ slowdown = 0.1 armor = list("melee" = 80, "bullet" = 70, "laser" = 80, "energy" = 30, "bomb" = 82, "bio" = 100, "rad" = 100, "fire" = 95, "acid" = 0, "wound" = 80) -/obj/item/clothing/suit/armor/f13/power_armor/t60/tesla - name = "T-60b tesla armor" - desc = "(X*) An experimental variant of T-60a power armor featuring an array of tesla coils. A small amount of protection has been sacrificed to give a chance to deflect energy projectiles." - icon_state = "t60tesla" - item_state = "t60tesla" - slowdown = 0.1 - armor = list("tier" = 10, "linelaser" = 25, "energy" = 70, "bomb" = 82, "bio" = 100, "rad" = 100, "fire" = 95, "acid" = 0, "wound" = 80) - var/hit_reflect_chance = 20 - -/obj/item/clothing/suit/armor/f13/power_armor/t60/tesla/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) - if(is_energy_reflectable_projectile(object) && (attack_type == ATTACK_TYPE_PROJECTILE) && (def_zone in protected_zones)) - if(prob(hit_reflect_chance)) - block_return[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_DEFLECT - return BLOCK_SHOULD_REDIRECT | BLOCK_REDIRECTED | BLOCK_SUCCESS | BLOCK_PHYSICAL_INTERNAL - return ..() - /obj/item/clothing/suit/armor/f13/power_armor/advanced name = "advanced power armor" desc = "An advanced suit of armor typically used by the Enclave.
It is composed of lightweight metal alloys, reinforced with ceramic castings at key stress points.
Additionally, like the T-51b power armor, it includes a recycling system that can convert human waste into drinkable water, and an air conditioning system for its user's comfort." @@ -574,56 +423,28 @@ item_state = "advpowerarmor1" armor = list("melee" = 80, "bullet" = 80, "laser" = 85, "energy" = 35, "bomb" = 72, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 0, "wound" = 90) -/obj/item/clothing/suit/armor/f13/power_armor/advanced/hellfire - name = "hellfire power armor" - desc = "A deep black suit of Enclave-manufactured heavy power armor, based on pre-war designs such as the T-51 and improving off of data gathered by post-war designs such as the X-01. Most commonly fielded on the East Coast, no suit rivals it's strength." - icon_state = "hellfire" - item_state = "hellfire" - armor = list("melee" = 85, "bullet" = 85, "laser" = 90, "energy" = 37, "bomb" = 72, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 0, "wound" = 100) - -/obj/item/clothing/suit/armor/f13/power_armor/advanced/hellfire/wbos - name = "advanced Washington power armor" - desc = "It's an improved model of the power armor used exclusively by the Washington Brotherhood." - icon_state = "apawbos" - item_state = "apawbos" - -/obj/item/clothing/suit/armor/f13/power_armor/tesla - name = "tesla power armor" - desc = "A variant of the Enclave's advanced power armor Mk I, jury-rigged with a Tesla device that is capable of dispersing a large percentage of the damage done by directed-energy attacks.
As it's made of complex composite materials designed to block most of energy damage - it's notably weaker against kinetic impacts." - icon_state = "tesla" - item_state = "tesla" - armor = list("melee" = 65, "bullet" = 65, "laser" = 90, "energy" = 95, "bomb" = 62, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 0, "wound" = 80) - var/hit_reflect_chance = 35 - -/obj/item/clothing/suit/armor/f13/power_armor/tesla/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return) - if(is_energy_reflectable_projectile(object) && (attack_type == ATTACK_TYPE_PROJECTILE) && (def_zone in protected_zones)) - if(prob(hit_reflect_chance)) - block_return[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_DEFLECT - return BLOCK_SHOULD_REDIRECT | BLOCK_REDIRECTED | BLOCK_SUCCESS | BLOCK_PHYSICAL_INTERNAL - return ..() - //Peacekeeper armor adjust as needed /obj/item/clothing/suit/armor/f13/power_armor/x02 name = "Enclave power armor" - desc = "(XI) Upgraded pre-war power armor design used by the Enclave. It is mildly worn due to it's age and lack of maintenance after the fall of the Enclave." + desc = "Upgraded pre-war power armor design used by the Enclave. It is mildly worn due to it's age and lack of maintenance after the fall of the Enclave." icon_state = "advanced" item_state = "advanced" slowdown = 0.15 //+0.1 from helmet = total 0.25 - armor = list("tier" = 11, "energy" = 65, "bomb" = 62, "bio" = 100, "rad" = 99, "fire" = 90, "acid" = 0, "wound" = 70) + armor = list("melee" = 85, "bullet" = 85, "laser" = 87, "energy" = 65, "bomb" = 62, "bio" = 100, "rad" = 99, "fire" = 90, "acid" = 0, "wound" = 70) /obj/item/clothing/suit/armor/f13/enclave/armorvest name = "armored vest" - desc = "(VI) Efficient prewar design issued to Enclave personell." + desc = "Efficient prewar design issued to Enclave personell." icon_state = "armor_enclave_peacekeeper" item_state = "armor_enclave_peacekeeper" - armor = list("tier" = 6) + armor = list("melee" = 55, "bullet" = 55, "laser" = 55, "energy" = 20, "bomb" = 50, "bio" = 60, "rad" = 50, "fire" = 80, "acid" = 0, "wound" = 70) /obj/item/clothing/suit/armor/f13/enclave/officercoat name = "armored coat" - desc = "(VII) Premium prewar armor fitted into a coat for Enclave officers." + desc = "Premium prewar armor fitted into a coat for Enclave officers." icon_state = "armor_enclave_officer" item_state = "armor_enclave_officer" - armor = list("tier" = 7) + armor = list("melee" = 60, "bullet" = 60, "laser" = 60, "energy" = 20, "bomb" = 50, "bio" = 60, "rad" = 50, "fire" = 80, "acid" = 0, "wound" = 70) //Generic Tribal - For Wayfarer specific, see f13factionhead.dm //Trying generic tribal armor stats for this one for now. @@ -712,7 +533,7 @@ equip_delay_other = 40 max_integrity = 250 resistance_flags = NONE - armor = list("tier" = 2, "energy" = 16, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + armor = list("melee" = 25, "bullet" = 25,"laser" = 25, "energy" = 16, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) togglename = "collar" /obj/item/clothing/suit/armor/f13/vaquero @@ -760,7 +581,7 @@ desc = "A heavy pre-war bomber coat, dyed blue with the number '113' embroidered on the back. Most often worn by leaders, such as the Overseer." icon_state = "maxson_battlecoat" item_state = "maxson_battlecoat" - + /obj/item/clothing/suit/armor/f13/battlecoat/vault/overseer name = "Overseer's battlecoat" @@ -797,16 +618,12 @@ icon_state = "bulletproof" item_state = "armor" blood_overlay_type = "armor" - armor = list("melee" = 25, "bullet" = 60, "laser" = 25, "energy" = 35, "bomb" = 50, "bio" = 40, "rad" = 10, "fire" = 60, "acid" = 10, "wound" = 50) + armor = list("melee" = 27, "bullet" = 60, "laser" = 27, "energy" = 35, "bomb" = 50, "bio" = 40, "rad" = 10, "fire" = 60, "acid" = 10, "wound" = 50) strip_delay = 70 equip_delay_other = 50 mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON slowdown = 0.05 -/obj/item/clothing/suit/armor/bulletproof/Initialize() - . = ..() - AddComponent(/datum/component/armor_plate) - /obj/item/clothing/suit/armor/bone name = "bone armor" desc = "A tribal armor plate, crafted from animal bone." @@ -853,9 +670,9 @@ obj/item/clothing/suit/armor/f13/exile/cust0m /obj/item/clothing/suit/armor/f13/harpercoat name = "outlaw coat" - desc = "(IV) A combat duster" + desc = " A combat duster" icon_state = "harperduster" - armor = list("tier" = 4, "energy" = 40, "bomb" = 25, "bio" = 40, "rad" = 35, "fire" = 80, "acid" = 0) + armor = list("energy" = 40, "bomb" = 25, "bio" = 40, "rad" = 35, "fire" = 80, "acid" = 0) /obj/item/clothing/suit/armor/f13/raider/reptiliatenebris name = "Reptilia Tenebris" @@ -936,11 +753,11 @@ obj/item/clothing/suit/armor/f13/exile/cust0m /obj/item/clothing/suit/armor/f13/herbertranger //Armor wise, it's reskinned raider armor. name = "weathered desert ranger armor" - desc = "(IV) A set of pre-unification desert ranger armor, made using parts of what was once USMC riot armor. It looks as if it has been worn for decades; the coat has become discoloured from years under the Mojave sun and has multiple tears and bullet holes in its leather. The armor plating itself seems to be in relatively good shape, though it could do with some maintenance." + desc = " A set of pre-unification desert ranger armor, made using parts of what was once USMC riot armor. It looks as if it has been worn for decades; the coat has become discoloured from years under the Mojave sun and has multiple tears and bullet holes in its leather. The armor plating itself seems to be in relatively good shape, though it could do with some maintenance." body_parts_covered = CHEST|GROIN|LEGS|ARMS icon_state = "usmc_riot_gear" item_state = "usmc_riot_gear" - armor = list("tier" = 4, "energy" = 35, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 25, "acid" = 25) + armor = list("melee" = 30, "bullet" = 30, "laser" = 30, "energy" = 35, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 25, "acid" = 25) strip_delay = 40 /obj/item/clothing/suit/armor/f13/herbertranger/Initialize() //HQ parts reinforcement, just like raider gear @@ -962,7 +779,7 @@ obj/item/clothing/suit/armor/f13/exile/cust0m /obj/item/clothing/suit/armor/f13/marlowsuit/ikesuit name = "gunfighter's overcoat" - desc = "(IV) A thick double-breasted red leather overcoat worn through with scattered tears and bullet holes." + desc = " A thick double-breasted red leather overcoat worn through with scattered tears and bullet holes." icon_state = "ikesuit" item_state = "ikesuit" @@ -972,7 +789,7 @@ obj/item/clothing/suit/armor/f13/exile/cust0m /obj/item/clothing/suit/armor/f13/marlowsuit/masonsuit name = "vagabond's vest" - desc = "(IV) A padded thick red leather vest, coated in stitched pockets and other mends." + desc = " A padded thick red leather vest, coated in stitched pockets and other mends." icon_state = "masonsuit" item_state = "masonsuit" @@ -992,55 +809,55 @@ obj/item/clothing/suit/armor/f13/exile/cust0m /obj/item/clothing/suit/armor/f13/atomzealot name = "zealot armor" - desc = "(IV) The armor of those true to the Division." + desc = " The armor of those true to the Division." icon_state = "atomzealot" item_state = "atomzealot" - armor = list("tier" = 4, "energy" = 45, "bomb" = 55, "bio" = 65, "rad" = 100, "fire" = 60, "acid" = 20) + armor = list("melee" = 40, "bullet" = 40,"laser" = 40, "energy" = 45, "bomb" = 55, "bio" = 65, "rad" = 100, "fire" = 60, "acid" = 20) /obj/item/clothing/suit/armor/f13/atomwitch name = "atomic seer robes" - desc = "(II) The robes worn by female seers of the Division." + desc = " The robes worn by female seers of the Division." icon_state = "atomwitch" item_state = "atomwitch" - armor = list("tier" = 2, "energy" = 45, "bomb" = 55, "bio" = 65, "rad" = 100, "fire" = 60, "acid" = 20) + armor = list("melee" = 30, "bullet" = 25,"laser" = 25, "energy" = 45, "bomb" = 55, "bio" = 65, "rad" = 100, "fire" = 60, "acid" = 20) /obj/item/clothing/suit/armor/f13/harbingermantle name = "Harbinger's Mantle" - desc = "(VII) An eerie, silken cloth that seems to be dripping with a thick mist. It is in truth a high-tech stealth device that allows for psionic amplification. The capacitors and manipulators in it utilise quantum technology and are highly volatile." + desc = " An eerie, silken cloth that seems to be dripping with a thick mist. It is in truth a high-tech stealth device that allows for psionic amplification. The capacitors and manipulators in it utilise quantum technology and are highly volatile." icon_state = "scloak" item_state = "scloak" - armor = list("tier" = 7, "energy" = 55, "bomb" = 45, "bio" = 45, "rad" = 45, "fire" = 45, "acid" = 0) + armor = list("melee" = 50, "bullet" = 50,"laser" = 50, "energy" = 55, "bomb" = 45, "bio" = 45, "rad" = 45, "fire" = 45, "acid" = 0) /obj/item/clothing/suit/armor/f13/ghostechoe name = "tattered peace coat" - desc = "(II) An old coat belonging to a Desert Ranger once. It has been stripped of most useful protection, and has seen better days. A crude peace symbol has been painted on the back in white." + desc = " An old coat belonging to a Desert Ranger once. It has been stripped of most useful protection, and has seen better days. A crude peace symbol has been painted on the back in white." icon_state = "ghostechoe" item_state = "ghostechoe" - armor = list("tier" = 2, "energy" = 0, "bomb" = 16, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) + armor = list("melee" = 30, "bullet" = 25,"laser" = 25, "energy" = 0, "bomb" = 16, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) //Mutants /obj/item/clothing/suit/armor/f13/mutant/poncho name = "mutant poncho" - desc = "(IV) An oversized poncho, made to fit the frame of a super mutant. Maybe he's the big ranger with an iron on his hip?" + desc = " An oversized poncho, made to fit the frame of a super mutant. Maybe he's the big ranger with an iron on his hip?" icon_state = "mutie_poncho" item_state = "mutie_poncho" - armor = list("tier" = 4, "energy" = 40, "bomb" = 50, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20) + armor = list("melee" = 30, "bullet" = 25,"laser" = 25, "energy" = 40, "bomb" = 50, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20) /obj/item/clothing/suit/armor/f13/mutant/metal name = "mutant armour" - desc = "(V) An oversized set of metal armour, made to fit the frame of a super mutant. Maybe he's the big iron with a ranger on his hip?" + desc = " An oversized set of metal armour, made to fit the frame of a super mutant. Maybe he's the big iron with a ranger on his hip?" icon_state = "mutie_metal_armour" item_state = "mutie_metal_armour" - armor = list("tier" = 5, "energy" = 40, "bomb" = 50, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20) + armor = list("melee" = 40, "bullet" = 40,"laser" = 40, "energy" = 40, "bomb" = 50, "bio" = 60, "rad" = 10, "fire" = 60, "acid" = 20) /obj/item/clothing/suit/armor/f13/mutant/metal/reinforced name = "mutant armour" desc = "(6) An oversized boiler plate, hammered to fit the frame of a super mutant. Maybe he's the big iron with a ranger on his hip?" icon_state = "mutie_metal_armour_mk2" item_state = "mutie_metal_armour_mk2" - armor = list("tier" = 6, "energy" = 40, "bomb" = 50, "bio" = 60, "rad" = 40, "fire" = 30, "acid" = 20) + armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 40, "bomb" = 50, "bio" = 60, "rad" = 40, "fire" = 30, "acid" = 20) //TRIBALS @@ -1051,10 +868,6 @@ obj/item/clothing/suit/armor/f13/exile/cust0m item_state = "tribal" armor = list("melee" = 35, "bullet" = 25, "laser" = 35, "energy" = 15, "bomb" = 50, "bio" = 40, "rad" = 10, "fire" = 60, "acid" = 10, "wound" = 40) slowdown = 0.05 - -/obj/item/clothing/suit/f13/tribal/examine(mob/user) - . = ..() - . += "This armor provides [armor.bullet]% bullet, [armor.laser]% laser, and [armor.melee]% melee resistance." /obj/item/clothing/suit/f13/tribal/light name = "light tribal armor" @@ -1091,7 +904,7 @@ obj/item/clothing/suit/armor/f13/exile/cust0m armor = list("melee" = 35, "bullet" = 40, "laser" = 35, "energy" = 10, "bomb" = 50, "bio" = 40, "rad" = 10, "fire" = 60, "acid" = 10) pocket_storage_component_path = /datum/component/storage/concrete/pockets/small slowdown = 0.1 - + /obj/item/clothing/suit/f13/tribal/heavy/rustwalkers name = "Rustwalkers heavy armor" desc = "A car seat leather duster, a timing belt bandolier, and armour plating made from various parts of a car, it surely would weigh the wearer down. Commonly worn by members of the Rustwalkers tribe." @@ -1153,7 +966,7 @@ obj/item/clothing/suit/armor/f13/exile/cust0m pocket_storage_component_path = /datum/component/storage/concrete/pockets/bulletbelt armor = list("melee" = 25, "bullet" = 20, "laser" = 20, "energy" = 10, "bomb" = 50, "bio" = 40, "rad" = 10, "fire" = 60, "acid" = 10) slowdown = 0.01 - + /obj/item/clothing/suit/f13/tribal/deadhorses name = "Dead Horses armour" @@ -1180,3 +993,35 @@ obj/item/clothing/suit/armor/f13/exile/cust0m item_state = "sorrows_armour" armor = list("melee" = 20, "bullet" = 45, "laser" = 20, "energy" = 10, "bomb" = 50, "bio" = 40, "rad" = 10, "fire" = 60, "acid" = 10) slowdown = 0.08 + +/obj/item/clothing/suit/f13/tribal/light/bone + name = "Bone armor" + desc = "A tribal armor plate, crafted from animal bone." + icon_state = "bone_dancer_armor_light" + item_state = "bone_dancer_armor_light" + blood_overlay_type = "armor" + armor = list("melee" = 30, "bullet" = 25, "laser" = 25, "energy" = 10, "bomb" = 50, "bio" = 40, "rad" = 10, "fire" = 60, "acid" = 10) + pocket_storage_component_path = /datum/component/storage/concrete/pockets + body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS + +/obj/item/clothing/suit/f13/tribal/bone + name = "Reinforced Bone armor" + desc = "A tribal armor plate, reinforced with leather and a few metal parts." + icon_state = "bone_dancer_armor" + item_state = "bone_dancer_armor" + blood_overlay_type = "armor" + armor = list("melee" = 40, "bullet" = 35, "laser" = 30, "energy" = 10, "bomb" = 50, "bio" = 40, "rad" = 10, "fire" = 60, "acid" = 10) + pocket_storage_component_path = /datum/component/storage/concrete/pockets/small + body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS + slowdown = 0.025 + +/obj/item/clothing/suit/f13/tribal/heavy/bone + name = "Heavy Bone armor" + desc = "A tribal full armor plate, crafted from animal bone, metal and leather. Usually worn by the Bone Dancers" + icon_state = "bone_dancer_armor_heavy" + item_state = "bone_dancer_armor_heavy" + blood_overlay_type = "armor" + armor = list("melee" = 45, "bullet" = 45, "laser" = 35, "energy" = 20, "bomb" = 50, "bio" = 40, "rad" = 10, "fire" = 60, "acid" = 10, "wound" = 45) + pocket_storage_component_path = /datum/component/storage/concrete/pockets/small + body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS + slowdown = 0.05 diff --git a/code/modules/clothing/suits/f13factionarmor.dm b/code/modules/clothing/suits/f13factionarmor.dm index a7ba943058..67549d1c57 100644 --- a/code/modules/clothing/suits/f13factionarmor.dm +++ b/code/modules/clothing/suits/f13factionarmor.dm @@ -6,15 +6,15 @@ name = "base raider armor" desc = "for testing" body_parts_covered = CHEST|GROIN|LEGS|ARMS - armor = list("melee" = 35, "bullet" = 35, "laser" = 30, "bio" = 0, "rad" = 0, "fire" = 25, "acid" = 25, "wound" = 35) + armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "bio" = 0, "rad" = 0, "fire" = 25, "acid" = 25, "wound" = 35) strip_delay = 40 slowdown = 0.05 /obj/item/clothing/suit/armor/f13/raider/supafly name = "supa-fly raider armor" desc = "Fabulous mutant powers were revealed to me the day I held aloft my bumper sword and said...
BY THE POWER OF NUKA-COLA, I AM RAIDER MAN!" - armor = list("melee" = 30, "bullet" = 30, "laser" = 25, "bio" = 0, "rad" = 0, "fire" = 25, "acid" = 25) - slowdown = 0.02 + armor = list("melee" = 30, "bullet" = 30, "laser" = 30, "bio" = 0, "rad" = 0, "fire" = 25, "acid" = 25, "wound" = 40) + slowdown = 0.01 icon_state = "supafly" item_state = "supafly" @@ -48,7 +48,7 @@ icon_state = "blastmaster" item_state = "blastmaster" max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT - armor = list("melee" = 40, "bullet" = 20, "laser" = 40, "bio" = 0, "bomb" = 50, "rad" = 0, "fire" = 25, "acid" = 25) + armor = list("melee" = 40, "bullet" = 25, "laser" = 40, "bio" = 0, "bomb" = 50, "rad" = 0, "fire" = 25, "acid" = 25, "wound" = 40) flash_protect = 2 /obj/item/clothing/suit/armor/f13/raider/blastmaster/Initialize() @@ -71,7 +71,7 @@ desc = "A leather top with a bandolier over it and a straps that cover the arms." icon_state = "badlands" item_state = "badlands" - armor = list("melee" = 25, "bullet" = 25, "laser" = 25, "bio" = 0, "rad" = 0, "fire" = 25, "acid" = 25) + armor = list("melee" = 30, "bullet" = 30, "laser" = 30, "bio" = 0, "rad" = 0, "fire" = 25, "acid" = 25, "wound" = 40) pocket_storage_component_path = /datum/component/storage/concrete/pockets/bulletbelt /obj/item/clothing/suit/armor/f13/raider/badlands/Initialize() @@ -83,7 +83,7 @@ desc = "A particularly unhuggable armor, even by raider standards. Extremely spiky." icon_state = "painspike" item_state = "painspike" - armor = list("melee" = 40, "bullet" = 30, "laser" = 30, "bio" = 0, "rad" = 0, "fire" = 25, "acid" = 25) + armor = list("melee" = 40, "bullet" = 30, "laser" = 30, "bio" = 0, "rad" = 0, "fire" = 25, "acid" = 25, "wound" = 40) /obj/item/clothing/suit/armor/f13/raider/painspike/Initialize() . = ..() @@ -102,7 +102,7 @@ /obj/item/clothing/suit/armor/f13/raider/combatduster name = "combat duster" desc = "An old military-grade pre-war combat armor under a weathered duster. It appears to be fitted with metal plates to replace the crumbling ceramic." - armor = list("melee" = 25, "bullet" = 50, "laser" = 25, "bio" = 0, "rad" = 0, "fire" = 25, "acid" = 25) + armor = list("melee" = 25, "bullet" = 50, "laser" = 25, "bio" = 0, "rad" = 0, "fire" = 25, "acid" = 25, "wound" = 40) icon_state = "combatduster" item_state = "combatduster" slowdown = 0.07 @@ -121,7 +121,7 @@ name = "base faction exile armor" desc = "this is for testing." body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS - armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 20, "bomb" = 40, "bio" = 40, "rad" = 20, "fire" = 60, "acid" = 20) + armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 20, "bomb" = 40, "bio" = 40, "rad" = 20, "fire" = 60, "acid" = 20, "wound" = 40) strip_delay = 30 icon = 'icons/fallout/clothing/armored_medium.dmi' mob_overlay_icon = 'icons/fallout/onmob/clothes/armor_medium.dmi' @@ -139,7 +139,7 @@ /obj/item/clothing/suit/armor/f13/exile/legexile name = "modified Legion armor" desc = "A modified detoriated armor kit consisting of Legion gear and scrap metal." - armor = list("melee" = 40, "bullet" = 30, "laser" = 35, "energy" = 20, "bomb" = 40, "bio" = 40, "rad" = 20, "fire" = 60, "acid" = 20) + armor = list("melee" = 40, "bullet" = 30, "laser" = 35, "energy" = 20, "bomb" = 40, "bio" = 40, "rad" = 20, "fire" = 60, "acid" = 20, "wound" = 40) icon_state = "legexile" item_state = "legexile" @@ -164,7 +164,7 @@ desc = "An old military-grade pre-war combat armor. It appears to be fitted with metal plates to replace the crumbling ceramic." icon_state = "raider_combat" item_state = "raider_combat" - armor = list("melee" = 40, "bullet" = 40 , "laser" = 35,"energy" = 25, "bomb" = 50, "bio" = 50, "rad" = 10, "fire" = 60, "acid" = 10) + armor = list("melee" = 40, "bullet" = 40 , "laser" = 40,"energy" = 25, "bomb" = 50, "bio" = 50, "rad" = 10, "fire" = 60, "acid" = 10, "wound" = 40) slowdown = 0.1 /obj/item/clothing/suit/armor/f13/raider/raidermetal @@ -172,7 +172,7 @@ desc = "A suit of welded, fused metal plates. Looks bulky, with great protection." icon_state = "raider_metal" item_state = "raider_metal" - armor = list("melee" = 35, "bullet" = 35, "laser" = 45, "energy" = 25, "bomb" = 45, "bio" = 30, "rad" = 15, "fire" = 60, "acid" = 0) + armor = list("melee" = 35, "bullet" = 35, "laser" = 45, "energy" = 25, "bomb" = 45, "bio" = 30, "rad" = 15, "fire" = 60, "acid" = 0, "wound" = 40) resistance_flags = FIRE_PROOF slowdown = 0.25 @@ -192,7 +192,7 @@ armor = list("melee" = 30, "bullet" = 30, "laser" = 10, "energy" = 10, "bomb" = 15, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0, "wound" = 40) slowdown = 0.05 pocket_storage_component_path = /datum/component/storage/concrete/pockets/tiny/legion - + /datum/component/storage/concrete/pockets/tiny/legion max_items = 3 @@ -205,19 +205,16 @@ desc = "Legion Recruits carry very basic protection, repurposed old sports gear with bits of leather and other tribal style armor that the wearer has managed to scrounge up." icon_state = "legion_recruit" item_state = "legion_recruit" - armor = list("melee" = 30, "bullet" = 25, "laser" = 20, "energy" = 10, "bomb" = 20, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0) + armor = list("melee" = 30, "bullet" = 25, "laser" = 20, "energy" = 10, "bomb" = 20, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0, "wound" = 40) slowdown = 0.04 + /obj/item/clothing/suit/armor/f13/legion/prime name = "legion prime armor" desc = "Legion Primes have survived some skirmishes, and when promoted often recieve a set of armor, padded leather modeled on ancient baseball catcher uniforms and various plates of metal or boiled leather." icon_state = "legion_prime" item_state = "legion_prime" - armor = list("melee" = 30, "bullet" = 33, "laser" = 20, "energy" = 10, "bomb" = 20, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0) - -/obj/item/clothing/suit/armor/f13/legion/vet/orator - icon_state = "legion_orator" - item_state = "legion_orator" + armor = list("melee" = 30, "bullet" = 33, "laser" = 20, "energy" = 10, "bomb" = 20, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0, "wound" = 40) /obj/item/clothing/suit/armor/f13/legion/prime/slavemaster name = "slavemaster armor" @@ -232,9 +229,19 @@ mob_overlay_icon = 'icons/fallout/onmob/clothes/armor_medium.dmi' icon_state = "legion_veteran" item_state = "legion_veteran" - armor = list("melee" = 35, "bullet" = 37, "laser" = 25, "energy" = 15, "bomb" = 30, "bio" = 5, "rad" = 5, "fire" = 35, "acid" = 0) + armor = list("melee" = 35, "bullet" = 37, "laser" = 25, "energy" = 15, "bomb" = 30, "bio" = 5, "rad" = 5, "fire" = 35, "acid" = 0, "wound" = 40) slowdown = 0.05 + +//We should probably move the sprite for this to a better place. +/obj/item/clothing/suit/armor/f13/legion/vet/orator + name = "legion orator armor" + desc = "Legion orators are rather lightly armored. Despite being high-ranking officers, they are there to be the legion's mouthpiece, and are armored as such." +//Copying armor over, it's actually pretty convluted to move the sprites and It's way too much work for this bounty hunter - Kitsunemitsu + armor = list("melee" = 30, "bullet" = 25, "laser" = 20, "energy" = 10, "bomb" = 20, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0) + icon_state = "legion_orator" + item_state = "legion_orator" + /obj/item/clothing/suit/armor/f13/legion/heavy name = "legion veteran decan armor" desc = "A Legion veterans armor reinforced with a patched bulletproof vest, the wearer has the markings of a Decanus." @@ -252,7 +259,7 @@ mob_overlay_icon = 'icons/fallout/onmob/clothes/armor_light.dmi' icon_state = "legion_explorer" item_state = "legion_explorer" - armor = list("melee" = 35, "bullet" = 35, "laser" = 15, "energy" = 10, "bomb" = 20, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0) + armor = list("melee" = 35, "bullet" = 35, "laser" = 15, "energy" = 10, "bomb" = 20, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0, "wound" = 40) slowdown = 0.03 /obj/item/clothing/suit/armor/f13/legion/vet/vexil @@ -261,7 +268,7 @@ desc = " Worn by Vexillarius, this armor has been reinforced with circular metal plates on the chest and a back mounted pole for the flag of the Bull, making the wearer easy to see at a distance." icon_state = "legion_vex" item_state = "legion_vex" - armor = list("melee" = 50, "bullet" = 40, "laser" = 25, "energy" = 20, "bomb" = 25, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0) + armor = list("melee" = 50, "bullet" = 40, "laser" = 25, "energy" = 20, "bomb" = 25, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0, "wound" = 40) slowdown = 0.12 /obj/item/clothing/suit/armor/f13/legion/venator @@ -269,7 +276,7 @@ desc = "Explorer armor reinforced with metal plates and chainmail." icon_state = "legion-venator" item_state = "legion-venator" - armor = list("melee" = 35, "bullet" = 35, "laser" = 15, "energy" = 20, "bomb" = 20, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0) + armor = list("melee" = 35, "bullet" = 35, "laser" = 15, "energy" = 20, "bomb" = 20, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0, "wound" = 55) /obj/item/clothing/suit/armor/f13/legion/centurion name = "legion centurion armor" @@ -288,7 +295,7 @@ desc = "A Centurion able to defeat a Brotherhood Paladin gets the honorific title 'Paladin-Slayer', and adds bits of the looted armor to his own." icon_state = "legion_palacent" item_state = "legion_palacent" - armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 20, "bomb" = 20, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0) + armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 20, "bomb" = 20, "bio" = 20, "rad" = 20, "fire" = 25, "acid" = 0, "wound" = 55) slowdown = 0.25 @@ -299,7 +306,7 @@ desc = "Centurions who have led many patrols and ambushes against NCR Rangers have a distinct look from the many looted pieces of Ranger armor, and are often experienced in skirmishing." icon_state = "legion_rangercent" item_state = "legion_rangercent" - armor = list("melee" = 55, "bullet" = 50, "laser" = 25, "energy" = 35, "bomb" = 39, "bio" = 60, "rad" = 20, "fire" = 80, "acid" = 0) + armor = list("melee" = 55, "bullet" = 50, "laser" = 25, "energy" = 35, "bomb" = 39, "bio" = 60, "rad" = 20, "fire" = 80, "acid" = 0, "wound" = 55) slowdown = 0.08 /obj/item/clothing/suit/armor/f13/legion/legate @@ -310,7 +317,7 @@ icon_state = "legion_legate" item_state = "legion_legate" body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS - armor = list("melee" = 60, "bullet" = 60, "laser" = 40, "energy" = 35, "bomb" = 45, "bio" = 60, "rad" = 20, "fire" = 80, "acid" = 0) + armor = list("melee" = 60, "bullet" = 60, "laser" = 40, "energy" = 35, "bomb" = 45, "bio" = 60, "rad" = 20, "fire" = 80, "acid" = 0, "wound" = 60) /obj/item/clothing/suit/armor/f13/combat/legion name = "Legion combat armor" @@ -336,16 +343,17 @@ icon_state = "legion_slaveleather" item_state = "legion_slaveleather" allowed = list(/obj/item/hatchet, /obj/item/scythe, /obj/item/cultivator, /obj/item/shovel) + armor = list("melee" = 20, "bullet" = 5, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 20, "fire" = 20, "acid" = 0, "wound" = 20) /* /obj/item/clothing/suit/armor/f13/legion/vet/orator name = "legion orator armor" desc = "he armor appears to be based off of a suit of Legion veteran armor, with the addition of bracers, a chainmail skirt, and large pauldrons. A tabard emblazoned with the bull is loosely draped over the torso." icon_state = "legheavy" - + /obj/item/clothing/suit/armor/f13/legion/palacent/custom_excess name = "Champion of Kanab's Armor" - desc = "(VI) The armor of the Champion and Conqueror of the city in Utah named Kanab. The armor is made up of pieces of Power Armor and pre-war Riot Gear, the shin guards are spraypainted a dark crimson and the Power Armour pauldron has a red trim. The symbol of a Pheonix is carefully engraved and painted upon the chest piece... I wonder what it means.." + desc = " The armor of the Champion and Conqueror of the city in Utah named Kanab. The armor is made up of pieces of Power Armor and pre-war Riot Gear, the shin guards are spraypainted a dark crimson and the Power Armour pauldron has a red trim. The symbol of a Pheonix is carefully engraved and painted upon the chest piece... I wonder what it means.." icon_state = "palacent_excess" item_state = "palacent_excess" */ @@ -358,8 +366,16 @@ item_state = "vest_utility" icon = 'icons/fallout/clothing/suits_utility.dmi' mob_overlay_icon = 'icons/fallout/onmob/clothes/suit_utility.dmi' - armor = list("melee" = 20, "bullet" = 20, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 10, "rad" = 20, "fire" = 30, "acid" = 0) - pocket_storage_component_path = /datum/component/storage/concrete/pockets + armor = list("melee" = 20, "bullet" = 20, "laser" = 20, "energy" = 10, "bomb" = 15, "bio" = 10, "rad" = 20, "fire" = 30, "acid" = 0, "wound" = 30) + pocket_storage_component_path = /datum/component/storage/concrete/pockets/utility + slowdown = 0.02 + +/datum/component/storage/concrete/pockets/utility + max_items = 4 + +/obj/item/clothing/suit/armor/f13/utilityvest/Initialize() + . = ..() + AddComponent(/datum/component/armor_plate) /obj/item/clothing/suit/armor/f13/ncrarmor name = "NCR patrol vest" @@ -370,10 +386,10 @@ armor = list("melee" = 30, "bullet" = 40, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) slowdown = 0.1 pocket_storage_component_path = /datum/component/storage/concrete/pockets/bulletbelt/ncr - + /datum/component/storage/concrete/pockets/bulletbelt/ncr max_items = 2 - + /obj/item/clothing/suit/armor/f13/ncrarmor/Initialize() . = ..() AddComponent(/datum/component/armor_plate) @@ -389,14 +405,14 @@ desc = "A standard issue NCR Infantry vest reinforced with a groinpad." icon_state = "ncr_reinforced_vest" item_state = "ncr_reinforced_vest" - armor = list("melee" = 32, "bullet" = 42, "laser" = 22, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 32, "bullet" = 42, "laser" = 22, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) slowdown = 0.12 /obj/item/clothing/suit/armor/f13/ncrarmor/mantle/reinforced name = "NCR reinforced mantle vest" desc = "A standard issue NCR Infantry vest reinforced with a groinpad and a mantle." icon_state = "ncr_reinforced_mantle" - armor = list("melee" = 32, "bullet" = 42, "laser" = 22, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 32, "bullet" = 42, "laser" = 22, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) slowdown = 0.12 /obj/item/clothing/suit/armor/f13/ncrarmor/labcoat @@ -404,7 +420,7 @@ desc = "An armored labcoat typically issued to NCR Medical Officers. It's a standard white labcoat with the Medical Officer's name stitched into the breast and a two headed bear sewn into the shoulder." icon_state = "ncr_labcoat" item_state = "ncr_labcoat" - armor = list("melee" = 30, "bullet" = 30, "laser" = 30, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 30, "bullet" = 30, "laser" = 30, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) allowed = list(/obj/item/gun, /obj/item/analyzer, /obj/item/stack/medical, /obj/item/dnainjector, /obj/item/reagent_containers/dropper, /obj/item/reagent_containers/syringe, /obj/item/reagent_containers/hypospray, /obj/item/healthanalyzer, /obj/item/flashlight/pen, /obj/item/reagent_containers/glass/bottle, /obj/item/reagent_containers/glass/beaker, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, /obj/item/paper, /obj/item/melee/classic_baton/telescopic, /obj/item/soap, /obj/item/sensor_device, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) /obj/item/clothing/suit/armor/f13/ncrarmor/captain @@ -412,15 +428,15 @@ desc = "A heavily reinforced set of NCR mantle armour, with large ceramic plating fitted to cover the torso and back, with additional plating on the shoulders and arms. Intended for use by high ranking officers." icon_state = "ncr_captain_armour" item_state = "ncr_captain_armour" - armor = list("melee" = 40, "bullet" = 42, "laser" = 35, "energy" = 20, "bomb" = 50, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 40, "bullet" = 42, "laser" = 35, "energy" = 20, "bomb" = 50, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 55) pocket_storage_component_path = /datum/component/storage/concrete/pockets/treasurer - + /obj/item/clothing/suit/armor/f13/ncrarmor/lieutenant name = "NCR officer vest" desc = "A reinforced set of NCR mantle armour, with added padding on the groin, neck and shoulders. Intended for use by the officer class." icon_state = "ncr_lt_armour" item_state = "ncr_lt_armour" - armor = list("melee" = 38, "bullet" = 40, "laser" = 33, "energy" = 20, "bomb" = 50, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 38, "bullet" = 40, "laser" = 33, "energy" = 20, "bomb" = 50, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 50) pocket_storage_component_path = /datum/component/storage/concrete/pockets/treasurer /obj/item/clothing/suit/armor/f13/ncrarmor/scout @@ -440,7 +456,7 @@ icon_state = "scout_armor_lt" item_state = "scout_armor_lt" desc = "A specialized variant of combat armor issued to officers of the 3rd Scout Battalion." - armor = list("tier" = 7, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 30, "fire" = 60, "acid" = 0) + armor = list("melee" = 38, "bullet" = 40, "laser" = 33,"energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 30, "fire" = 60, "acid" = 0) /obj/item/clothing/suit/armor/f13/combat/ncr name = "NCR combat armor" @@ -465,14 +481,14 @@ desc = "A brown dress uniform jacket intended for enlisted NCRA personnel." icon_state = "ncr_dressjack" item_state = "ncr_dressjack" - armor = list("melee" = 20, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 20, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 30) /obj/item/clothing/suit/armor/f13/ncrarmor/ncr_codressjack name = "NCR dress jacket" desc = "A brown dress uniform jacket for commissioned NCRA personnel." icon_state = "ncr_codressjack" item_state = "ncr_codressjack" - armor = list("tier" = 2, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 20, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) /obj/item/clothing/suit/armor/f13/ncrarmor/lieutenant/ncr_officer_coat name = "NCR officer vest" @@ -486,10 +502,10 @@ desc = "A thicker than average duster worn by NCR recon rangers out in the field. It's not heavily armored by any means, but is easy to move around in and provides excellent protection from the harsh desert environment." icon_state = "duster_recon" item_state = "duster_recon" - armor = list("melee" = 35, "bullet" = 45, "laser" = 25, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 35, "bullet" = 45, "laser" = 25, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) slowdown = 0.05 -/obj/item/clothing/suit/armor/f13/rangerrecon/Initialize() +/obj/item/clothing/suit/toggle/armor/f13/rangerrecon/Initialize() . = ..() AddComponent(/datum/component/armor_plate) @@ -498,17 +514,17 @@ desc = "a handmade tactical rig. The actual rig is made of a black, fiberous cloth, being attached to a dusty desert-colored belt. A flask and two ammo pouches hang from the belt." icon_state = "r_gear_rig" item_state = "r_gear_rig" - armor = list("melee" = 35, "bullet" = 40, "laser" = 35, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 35, "bullet" = 40, "laser" = 35, "energy" = 20, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 40) slowdown = 0.05 pocket_storage_component_path = /datum/component/storage/concrete/pockets/bulletbelt/ncr - + /obj/item/clothing/suit/armor/f13/trailranger name = "ranger vest" desc = "A quaint little jacket and scarf worn by NCR trail rangers." icon_state = "cowboyrang" item_state = "cowboyrang" - armor = list("melee" = 25, "bullet" = 25, "laser" = 10, "energy" = 10, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0) + armor = list("melee" = 25, "bullet" = 25, "laser" = 10, "energy" = 10, "bomb" = 25, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 30) slowdown = 0.01 /obj/item/clothing/suit/armor/f13/trailranger/Initialize() @@ -532,7 +548,7 @@ desc = "A set of standard issue ranger patrol armor that provides defense similar to a suit of pre-war combat armor. It's got NCR markings, making it clear who it was made by." icon_state = "ncr_patrol" item_state = "ncr_patrol" - armor = list("melee" = 30, "bullet" = 45, "laser" = 25, "energy" = 45, "bomb" = 55, "bio" = 60, "rad" = 15, "fire" = 60, "acid" = 30) + armor = list("melee" = 30, "bullet" = 45, "laser" = 25, "energy" = 45, "bomb" = 55, "bio" = 60, "rad" = 15, "fire" = 60, "acid" = 30, "wound" = 40) /obj/item/clothing/suit/armor/f13/combat/ncr_patrol/Initialize() . = ..() @@ -555,7 +571,7 @@ desc = "A refurbished set of NCRA 3rd Scouts armor, now with heavier plating together with arm and leg guards. A two-headed bear has been painted on its chest." icon_state = "refurb_scout" item_state = "refurb_scout" - armor = list("tier" = 5, "energy" = 45, "bomb" = 55, "bio" = 60, "rad" = 15, "fire" = 60, "acid" = 30) + armor = list("melee" = 50, "bullet" = 60, "laser" = 40, "energy" = 45, "bomb" = 55, "bio" = 60, "rad" = 15, "fire" = 60, "acid" = 30) /obj/item/clothing/suit/armor/f13/rangercombat name = "veteran ranger combat armor" @@ -564,8 +580,8 @@ item_state = "ranger" body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS slowdown = 0.08 - armor = list("melee" = 50, "bullet" = 60, "laser" = 40, "energy" = 40, "bomb" = 55, "bio" = 60, "rad" = 60, "fire" = 90, "acid" = 20) - + armor = list("melee" = 50, "bullet" = 60, "laser" = 40, "energy" = 40, "bomb" = 55, "bio" = 60, "rad" = 60, "fire" = 90, "acid" = 20, "wound" = 55) + /obj/item/clothing/suit/armor/f13/ncrcfjacket name = "NCRCF jacket" @@ -581,7 +597,7 @@ icon_state = "headscribe" item_state = "headscribe" body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS - armor = list("melee" = 10, "bullet" = 35, "laser" = 35, "energy" = 40, "bomb" = 36, "bio" = 50, "rad" = 69, "fire" = 10, "acid" = 70) + armor = list("melee" = 10, "bullet" = 35, "laser" = 35, "energy" = 40, "bomb" = 36, "bio" = 50, "rad" = 69, "fire" = 10, "acid" = 70, "wound" = 30) /obj/item/clothing/suit/f13/scribe name = "Brotherhood Scribe's robe" @@ -589,7 +605,7 @@ icon_state = "scribe" item_state = "scribe" body_parts_covered = CHEST|ARMS|LEGS - armor = list("melee" = 10, "bullet" = 25, "laser" = 25, "energy" = 10, "bomb" = 16, "bio" = 100, "rad" = 0, "fire" = 0, "acid" = 0) + armor = list("melee" = 10, "bullet" = 25, "laser" = 25, "energy" = 10, "bomb" = 16, "bio" = 100, "rad" = 0, "fire" = 0, "acid" = 0, "wound" = 30) /obj/item/clothing/suit/f13/seniorscribe name = "Brotherhood Senior Scribe's robe" @@ -597,7 +613,7 @@ icon_state = "seniorscribe" item_state = "seniorscribe" body_parts_covered = CHEST|ARMS|LEGS - armor = list("melee" = 10, "bullet" = 25, "laser" = 25, "energy" = 10, "bomb" = 16, "bio" = 100, "rad" = 0, "fire" = 0, "acid" = 0) + armor = list("melee" = 10, "bullet" = 25, "laser" = 25, "energy" = 10, "bomb" = 16, "bio" = 100, "rad" = 0, "fire" = 0, "acid" = 0, "wound" = 30) /obj/item/clothing/suit/f13/elder name = "Brotherhood Elder's robe" @@ -605,7 +621,7 @@ icon_state = "elder" item_state = "elder" body_parts_covered = CHEST|ARMS|LEGS - armor = list("melee" = 20, "bullet" = 25, "laser" = 25, "energy" = 10, "bomb" = 16, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) + armor = list("melee" = 20, "bullet" = 25, "laser" = 25, "energy" = 10, "bomb" = 16, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0, "wound" = 30) allowed = list(/obj/item/gun) /obj/item/clothing/suit/armor/f13/combat/brotherhood @@ -616,14 +632,14 @@ /obj/item/clothing/suit/armor/f13/combat/brotherhood/senior name = "brotherhood senior knight armor" - desc = "A combat armor set made by the Brotherhood of Steel, standard issue for all Senior Knight. It bears a silver stripe." + desc = "A combat armor set made by the Brotherhood of Steel, standard issue for all Senior Knights. It bears a silver stripe." icon_state = "brotherhood_armor_senior" item_state = "brotherhood_armor_senior" - - + + /obj/item/clothing/suit/armor/f13/combat/brotherhood/captain - name = "brotherhood knight-captain armor" - desc = "A combat armor set made by the Brotherhood of Steel, standard issue for all Knight-Captains. It bears golden embroidery." + name = "brotherhood head knight armor" + desc = "A combat armor set made by the Brotherhood of Steel, standard issue for all Head Knights. It bears golden embroidery." icon_state = "brotherhood_armor_captain" item_state = "brotherhood_armor_captain" @@ -658,12 +674,12 @@ body_parts_covered = CHEST|GROIN|LEGS|ARMS armor = list("melee" = 25, "bullet" = 25, "laser" = 20, "energy" = 20, "bomb" = 20, "bio" = 5, "rad" = 0, "fire" = 15, "acid" = 5, "wound" = 40) slowdown = 0.025 // zoom zoom - + /obj/item/clothing/suit/armor/f13/town/mayor name = "mayor trenchcoat" desc = "A symbol of the mayor's authority (or lack thereof). It has discrete armor plating in the lining, to foil assassination attempts." - armor = list("melee" = 40, "bullet" = 40, "laser" = 40, "energy" = 25, "bomb" = 25, "bio" = 15, "rad" = 10, "fire" = 15, "acid" = 5) + armor = list("melee" = 40, "bullet" = 40, "laser" = 40, "energy" = 25, "bomb" = 25, "bio" = 15, "rad" = 10, "fire" = 15, "acid" = 5, "wound" = 55) slowdown = 0.05 /obj/item/clothing/suit/armor/f13/town/sheriff @@ -672,7 +688,7 @@ icon_state = "towntrench_heavy" armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 35, "bomb" = 30, "bio" = 40, "rad" = 40, "fire" = 50, "acid" = 10, "wound" = 55) slowdown = 0.1 //reinforced combat armor, but less slowdown - + /obj/item/clothing/suit/armor/f13/town/sheriff/Initialize() . = ..() AddComponent(/datum/component/armor_plate) @@ -702,14 +718,25 @@ /obj/item/clothing/suit/armor/f13/town/deputy/Initialize() . = ..() AddComponent(/datum/component/armor_plate) - + +/obj/item/clothing/suit/armor/vest/oasis + name = "OPD vest" + desc = "A slim armored vest with a rigid exterior that provides decent protection against most types of damage. This one has pockets sewn into the front and OPD stitched on the back." + pocket_storage_component_path = /datum/component/storage/concrete/pockets + armor = list("melee" = 38, "bullet" = 38, "laser" = 38, "energy" = 30, "bomb" = 40, "bio" = 40, "rad" = 40, "fire" = 50, "acid" = 10, "wound" = 50) + slowdown = 0.06 + +/obj/item/clothing/suit/armor/vest/oasis/Initialize() + . = ..() + AddComponent(/datum/component/armor_plate) + /obj/item/clothing/suit/armor/f13/metalarmor/steelbib/oasis name = "heavy steel breastplate" desc = "a steel breastplate, inspired by a pre-war design. Looks like oasis citiznes added an additional layer of metal on the front face." icon_state = "steel_bib" item_state = "steel_bib" - armor = list( "melee" = 30, "bullet" = 50, "laser" = 30, "energy" = 15, "bomb" = 20, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 42) - slowdown = 0.1 + armor = list( "melee" = 25, "bullet" = 50, "laser" = 40, "energy" = 15, "bomb" = 20, "bio" = 30, "rad" = 20, "fire" = 60, "acid" = 0, "wound" = 42) + slowdown = 0.11 strip_delay = 5 //Great Khan @@ -734,29 +761,31 @@ item_state = "lightcloak" body_parts_covered = CHEST|GROIN|ARMS|LEGS slowdown = 0.05 - allowed = list(/obj/item/gun, /obj/item/kitchen, /obj/item/twohanded, /obj/item/melee/onehanded, /obj/item/twohanded/spear, /obj/item/melee/smith, /obj/item/melee/smith/twohand) pocket_storage_component_path = /datum/component/storage/concrete/pockets/small - -/obj/item/clothing/suit/armor/f13/tribal_combat_armor + +/obj/item/clothing/suit/armor/f13/combat/tribal name = "tribal combat armor" desc = "An old military grade pre war combat armor, now decorated with sinew and the bones of the hunted for its new wearer." icon_state = "tribecombatarmor" item_state = "tribecombatarmor" body_parts_covered = CHEST|GROIN|ARMS|LEGS - armor = list("melee" = 40, "bullet" = 40, "laser" = 35, "energy" = 25, "bomb" = 30, "bio" = 40, "rad" = 40, "fire" = 50, "acid" = 10, "wound" = 45) - allowed = list(/obj/item/gun, /obj/item/kitchen, /obj/item/twohanded, /obj/item/claymore, /obj/item/melee/onehanded, /obj/item/twohanded/spear, /obj/item/melee/smith, /obj/item/melee/smith/twohand) - slowdown = 0.07 - + +/obj/item/clothing/suit/armor/f13/combat/mk2/tribal + name = "tribal reinforced combat armor" + desc = "An old military grade pre-war reinforced combat armor, now decorated with sinew and the bones of the hunted for its new wearer." + icon_state = "tribecombatarmor" + item_state = "tribecombatarmor" + body_parts_covered = CHEST|GROIN|ARMS|LEGS + /obj/item/clothing/suit/armor/f13/tribe_armor name = "light tribal armor" - desc = "Light armor made of leather stips and a large, flat piece of turquoise.Armor commonplace among the Wayfinders." + desc = "Light armor made of leather stips and a large, flat piece of turquoise. Armor commonplace among the Wayfinders." icon_state = "tribal_armor" item_state = "tribal_armor" body_parts_covered = CHEST|GROIN|ARMS - armor = list("melee" = 40, "bullet" = 25, "laser" = 20, "energy" = 25, "bomb" = 25, "bio" = 70, "rad" = 65, "fire" = 80, "acid" = 100, "wound" = 47) - allowed = list(/obj/item/gun, /obj/item/kitchen, /obj/item/twohanded, /obj/item/claymore, /obj/item/melee/onehanded, /obj/item/twohanded/spear, /obj/item/melee/smith, /obj/item/melee/smith/twohand) + armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 25, "bomb" = 25, "bio" = 70, "rad" = 65, "fire" = 80, "acid" = 100, "wound" = 50) slowdown = 0.04 - + /obj/item/clothing/suit/armor/f13/tribe_heavy_armor name = "heavy tribal armor" desc = "Heavy armor make of sturdy leather and pieces of bone. Worn by seasoned veterans within the Wayfinder tribe." @@ -764,11 +793,8 @@ mob_overlay_icon = 'icons/fallout/onmob/clothes/armor_heavy.dmi' icon_state = "tribal_heavy" item_state = "tribal_heavy" - armor = list("melee" = 50, "bullet" = 35, "laser" = 30, "energy" = 30, "bomb" = 55, "bio" = 60, "rad" = 15, "fire" = 60, "acid" = 30, "wound" = 50) - slowdown = 0.15 - flags_inv = HIDEJUMPSUIT - allowed = list(/obj/item/gun, /obj/item/kitchen, /obj/item/twohanded, /obj/item/claymore, /obj/item/melee/onehanded, /obj/item/twohanded/spear, /obj/item/melee/smith, /obj/item/melee/smith/twohand -) + armor = list("melee" = 40, "bullet" = 40, "laser" = 35, "energy" = 30, "bomb" = 55, "bio" = 60, "rad" = 15, "fire" = 60, "acid" = 30, "wound" = 50) + slowdown = 0.10 /obj/item/clothing/suit/armor/f13/lightcloak name = "light tribal cloak" @@ -776,29 +802,15 @@ icon_state = "lightcloak" item_state = "lightcloak" body_parts_covered = CHEST|GROIN|ARMS|LEGS - armor = list("melee" = 25, "bullet" = 25, "laser" = 20, "energy" = 25, "bomb" = 25, "bio" = 70, "rad" = 65, "fire" = 80, "acid" = 100) - allowed = list(/obj/item/gun, /obj/item/kitchen, /obj/item/twohanded, /obj/item/claymore, /obj/item/melee/onehanded, /obj/item/twohanded/spear, /obj/item/melee/smith, /obj/item/melee/smith/twohand) + armor = list("melee" = 30, "bullet" = 30, "laser" = 30, "energy" = 25, "bomb" = 25, "bio" = 70, "rad" = 65, "fire" = 80, "acid" = 100, "wound" = 50) slowdown = 0.025 -/obj/item/clothing/suit/armor/f13/tribal_combat_armor - name = "tribal combat armor" - desc = "An old military grade pre war combat armor, now decorated with sinew and the bones of the hunted for its new wearer." - icon_state = "tribecombatarmor" - item_state = "tribecombatarmor" - body_parts_covered = CHEST|GROIN|ARMS|LEGS - allowed = list(/obj/item/gun, /obj/item/kitchen, /obj/item/twohanded, /obj/item/claymore, /obj/item/melee/onehanded, /obj/item/twohanded/spear, /obj/item/melee/smith, /obj/item/melee/smith/twohand) - armor = list("melee" = 35, "bullet" = 35, "laser" = 30, "energy" = 25, "bomb" = 25, "bio" = 70, "rad" = 65, "fire" = 80, "acid" = 100) - slowdown = 0.09 - - -/obj/item/clothing/suit/armor/f13/wayfarer/tribal_pa - name = "tribal full plate armor" - desc = "A set of power armor, now reborn in the paints of the Wayfarers, it serves its new owners as an idol to Kwer, as well as being a piece of heavy covering, with removed parts to allow for quick nimble speed, its hardly what it used to be long ago." +/obj/item/clothing/suit/armor/f13/power_armor/t45b/tribal + name = "tribal salvaged t45-b" + desc = "A set of salvaged power armor, with certain bits of plating stripped out to retain more freedom of movement. No cooling module, though." icon_state = "tribal_power_armor" item_state = "tribal_power_armor" - armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 30, "bomb" = 40, "bio" = 60, "rad" = 20, "fire" = 80, "acid" = 0) - allowed = list(/obj/item/gun, /obj/item/kitchen, /obj/item/twohanded, /obj/item/melee/onehanded, /obj/item/twohanded/spear, /obj/item/melee/smith, /obj/item/melee/smith/twohand - ) + armor = list("melee" = 65, "bullet" = 65, "laser" = 65, "energy" = 20, "bomb" = 50, "bio" = 60, "rad" = 50, "fire" = 80, "acid" = 0, "wound" = 65) slowdown = 0.3 //Followers @@ -806,10 +818,10 @@ /obj/item/clothing/suit/armor/f13/riot/vault name = "VTCC riot armour" - desc = "(VII) A suit of riot armour adapted from the design of the pre-war U.S.M.C. armour, painted blue and white." + desc = " A suit of riot armour adapted from the design of the pre-war U.S.M.C. armour, painted blue and white." icon_state = "vtcc_riot_gear" item_state = "vtcc_riot_gear" - armor = list("tier" = 7, "energy" = 35, "bomb" = 35, "bio" = 40, "rad" = 10, "fire" = 60, "acid" = 10) + armor = list("melee" = 50, "bullet" = 60, "laser" = 40, "energy" = 35, "bomb" = 35, "bio" = 40, "rad" = 10, "fire" = 60, "acid" = 10) //Old World Law Enforcement //Police @@ -821,7 +833,7 @@ mob_overlay_icon = 'icons/fallout/onmob/clothes/suit_cosmetic.dmi' icon_state = "police_officer" item_state = "police_officer" - armor = list("melee" = 15, "bullet" = 15, "laser" = 15, "energy" = 15, "bomb" = 20, "bio" = 5, "rad" = 0, "fire" = 15, "acid" = 5) + armor = list("melee" = 15, "bullet" = 15, "laser" = 15, "energy" = 15, "bomb" = 20, "bio" = 5, "rad" = 0, "fire" = 15, "acid" = 5, "wound" = 30) /obj/item/clothing/suit/f13/police/lieutenant name = "police lieutenant's jacket" @@ -830,7 +842,7 @@ mob_overlay_icon = 'icons/fallout/onmob/clothes/suit_cosmetic.dmi' icon_state = "police_lieutenant" item_state = "police_lieutenant" - armor = list("melee" = 15, "bullet" = 15, "laser" = 15, "energy" = 15, "bomb" = 20, "bio" = 5, "rad" = 0, "fire" = 15, "acid" = 5) + armor = list("melee" = 15, "bullet" = 15, "laser" = 15, "energy" = 15, "bomb" = 20, "bio" = 5, "rad" = 0, "fire" = 15, "acid" = 5, "wound" = 30) /obj/item/clothing/suit/f13/police/chief name = "police chief's jacket" @@ -839,7 +851,7 @@ mob_overlay_icon = 'icons/fallout/onmob/clothes/suit_cosmetic.dmi' icon_state = "police_chief" item_state = "police_chief" - armor = list("melee" = 15, "bullet" = 15, "laser" = 15, "energy" = 15, "bomb" = 20, "bio" = 5, "rad" = 0, "fire" = 15, "acid" = 5) + armor = list("melee" = 15, "bullet" = 15, "laser" = 15, "energy" = 15, "bomb" = 20, "bio" = 5, "rad" = 0, "fire" = 15, "acid" = 5, "wound" = 30) //THE GRAVEYARD @@ -848,22 +860,22 @@ /obj/item/clothing/suit/armor/f13/town/embroidered name = "embroidered trenchcoat" - desc = "(V) A custom armored trench coat with extra-length and a raised collar. There's a flower embroidered onto the back, although the color is a little faded." + desc = " A custom armored trench coat with extra-length and a raised collar. There's a flower embroidered onto the back, although the color is a little faded." icon_state = "towntrench_special" item_state = "towntrench_special" - armor = list("tier" = 5, "energy" = 40, "bomb" = 25, "bio" = 40, "rad" = 35, "fire" = 80, "acid" = 0) + armor = list("energy" = 40, "bomb" = 25, "bio" = 40, "rad" = 35, "fire" = 80, "acid" = 0) /obj/item/clothing/suit/armor/f13/rangercombat/eliteriot name = "elite riot gear" - desc = "(VIII) A heavily reinforced set of military grade armor, commonly seen in the Divide now repurposed and reissued to Chief Rangers." + desc = " A heavily reinforced set of military grade armor, commonly seen in the Divide now repurposed and reissued to Chief Rangers." icon_state = "elite_riot" item_state = "elite_riot" - armor = list("tier" = 8, "energy" = 60, "bomb" = 70, "bio" = 60, "rad" = 60, "fire" = 90, "acid" = 50) + armor = list("energy" = 60, "bomb" = 70, "bio" = 60, "rad" = 60, "fire" = 90, "acid" = 50) icon = 'icons/obj/clothing/suits.dmi' /obj/item/clothing/suit/armor/f13/rangercombat/desert name = "desert ranger combat armor" - desc = "(VIII) This is the original armor the NCR Ranger Combat armor was based off of. An awe inspiring suit of armor used by the legendary Desert Rangers." + desc = " This is the original armor the NCR Ranger Combat armor was based off of. An awe inspiring suit of armor used by the legendary Desert Rangers." icon_state = "desert_ranger" item_state = "desert_ranger" @@ -871,14 +883,14 @@ /obj/item/clothing/suit/armor/f13/combat/enclave name = "enclave combat armor" - desc = "(VI) An old set of pre-war combat armor, painted black." + desc = " An old set of pre-war combat armor, painted black." icon_state = "enclave_new" item_state = "enclave_new" - armor = list("tier" = 6, "energy" = 75, "bomb" = 70, "bio" = 80, "rad" = 80, "fire" = 80, "acid" = 50) + armor = list("energy" = 75, "bomb" = 70, "bio" = 80, "rad" = 80, "fire" = 80, "acid" = 50) /obj/item/clothing/suit/armor/f13/environmentalsuit name = "enclave envirosuit" - desc = "(II) An advanced white and airtight environmental suit. It seems to be equipped with a fire-resistant seal and a refitted internals system. This one looks to have been developed by the Enclave sometime after the Great War. You'd usually exclusively see this on scientists of the Enclave." + desc = " An advanced white and airtight environmental suit. It seems to be equipped with a fire-resistant seal and a refitted internals system. This one looks to have been developed by the Enclave sometime after the Great War. You'd usually exclusively see this on scientists of the Enclave." icon_state = "envirosuit" item_state = "envirosuit" w_class = WEIGHT_CLASS_BULKY @@ -886,7 +898,7 @@ permeability_coefficient = 0.5 clothing_flags = THICKMATERIAL body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - armor = list("tier" = 2,"energy" = 10, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 50, "acid" = 100) + armor = list("energy" = 10, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 50, "acid" = 100) strip_delay = 60 equip_delay_other = 60 flags_inv = HIDEJUMPSUIT @@ -894,7 +906,7 @@ /obj/item/clothing/suit/armor/f13/combat/remnant name = "remnant combat armor" - desc = "(VI) A dark armor, used commonly in espionage or shadow ops." + desc = " A dark armor, used commonly in espionage or shadow ops." icon_state = "remnant" item_state = "remnant" - armor = list("tier" = 6, "energy" = 75, "bomb" = 70, "bio" = 80, "rad" = 80, "fire" = 80, "acid" = 50) + armor = list("energy" = 75, "bomb" = 70, "bio" = 80, "rad" = 80, "fire" = 80, "acid" = 50) diff --git a/code/modules/clothing/suits/f13suits.dm b/code/modules/clothing/suits/f13suits.dm index 0f6d005c88..1b051dd267 100644 --- a/code/modules/clothing/suits/f13suits.dm +++ b/code/modules/clothing/suits/f13suits.dm @@ -116,7 +116,7 @@ desc = " A rather grisly selection of cured hides and skin, sewn together to form a ragged mantle." icon_state = "mantle_liz" item_state = "det_suit" - + /obj/item/clothing/suit/f13/mfp //Mad Max 1 1979 babe! name = "MFP jacket" desc = "A Main Force Patrol leather jacket.
Offbeat." @@ -137,7 +137,7 @@ item_state = "suit-command" armor = list("melee" = 25, "bullet" = 15, "laser" = 15, "energy" = 5, "bomb" = 16, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) pocket_storage_component_path = /datum/component/storage/concrete/pockets/small - + /obj/item/clothing/suit/f13/veteran name = "merc veteran coat" desc = " A blue leather coat adorned with war medals.
This type of outfit is common for professional mercenaries and bounty hunters." @@ -178,7 +178,7 @@ body_parts_covered = CHEST|GROIN|LEGS|FEET|ARMS armor = list("melee" = 30, "bullet" = 30, "laser" = 15, "energy" = 5, "bomb" = 16, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) pocket_storage_component_path = /datum/component/storage/concrete/pockets - + /obj/item/clothing/suit/f13/hubologist name = "hubologist robe" @@ -286,12 +286,12 @@ //Armored jacket /obj/item/clothing/suit/toggle/labcoat/f13/khan_jacket/armored name = "Great Khan armored jacket" - desc = "A black leather jacket with metal plates and a big Great Khan logo on the back. Some prefer to wear a leather vest (alt-click)." + desc = "A black leather jacket with ballistic plates and a big Great Khan logo on the back. Some prefer to wear a leather vest (alt-click)." icon_state = "khan_jacket_armored" item_state = "khan_jacket_armored" body_parts_covered = CHEST|GROIN|ARMS|LEGS|HANDS|FEET armor = list("melee" = 37, "bullet" = 37, "laser" = 40, "energy" = 25, "bomb" = 30, "bio" = 10, "rad" = 10, "fire" = 10, "acid" = 0) - slowdown = 0.12 + slowdown = 0.08 pocket_storage_component_path = /datum/component/storage/concrete/pockets/small /obj/item/clothing/suit/toggle/labcoat/f13/khan_jacket/armored/Initialize() @@ -379,7 +379,7 @@ name = "armored medical parka" icon_state = "armormedical" desc = "A staunch, practical parka made out of a wind-breaking jacket, reinforced with metal plates." - + hoodtype = /obj/item/clothing/head/hooded/parkahood/medical /obj/item/clothing/head/hooded/parkahood/medical @@ -465,10 +465,10 @@ /obj/item/clothing/suit/hooded/cloak/shunter name = "Quickclaw armour" - icon_state = "birdarmor" + icon_state = "birdarmor_t" desc = "A suit of armour fashioned out of the remains of a legendary deathclaw, this one has been crafted to remove a good portion of its protection to improve on speed and trekking." - slowdown = 0.025 - armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 25, "bomb" = 16, "bio" = 10, "rad" = 10, "fire" = 0, "acid" = 0) + slowdown = 0 + armor = list("melee" = 40, "bullet" = 40, "laser" = 35, "energy" = 20, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0, "wound" = 30) hoodtype = /obj/item/clothing/head/hooded/cloakhood/shunter heat_protection = CHEST|GROIN|LEGS|ARMS|HANDS body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS @@ -478,6 +478,6 @@ name = "Quickclaw hood" icon_state = "birdhood" desc = "A hood madde of deathclaw hides, light while also being comfortable to wear, designed for speed." - armor = list("melee" = 35, "bullet" = 35, "laser" = 35, "energy" = 25, "bomb" = 16, "bio" = 10, "rad" = 10, "fire" = 0, "acid" = 0) + armor = list("melee" = 40, "bullet" = 40, "laser" = 35, "energy" = 20, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 0, "wound" = 30) heat_protection = HEAD resistance_flags = FIRE_PROOF | ACID_PROOF diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index cd89a09cac..4a34a8ecc3 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -69,11 +69,11 @@ //Detective /obj/item/clothing/suit/det_suit name = "trenchcoat" - desc = "(III) An 18th-century multi-purpose trenchcoat. Someone who wears this means serious business." + desc = "An 18th-century multi-purpose trenchcoat. Someone who wears this means serious business." icon_state = "detective" item_state = "det_suit" blood_overlay_type = "coat" - armor = list("tier" = 3, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 45) + armor = list("melee" = 25, "bullet" = 15, "laser" = 33,"energy" = 15, "bomb" = 10, "bio" = 30, "rad" = 0, "fire" = 0, "acid" = 45) cold_protection = CHEST|GROIN|LEGS|ARMS heat_protection = CHEST|GROIN|LEGS|ARMS mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON @@ -84,7 +84,7 @@ /obj/item/clothing/suit/det_suit/grey name = "noir trenchcoat" - desc = "(III) A hard-boiled private investigator's grey trenchcoat." + desc = "A hard-boiled private investigator's grey trenchcoat." icon_state = "greydet" item_state = "greydet" @@ -117,7 +117,9 @@ item_state = "hazard" blood_overlay_type = "armor" resistance_flags = NONE + armor = list("melee" = 15, "bullet" = 10, "laser" = 35,"energy" = 10, "bomb" = 10, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 45) mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON + pocket_storage_component_path = /datum/component/storage/concrete/pockets/small //Lawyer /obj/item/clothing/suit/toggle/lawyer @@ -158,11 +160,11 @@ //Curator /obj/item/clothing/suit/curator name = "treasure hunter's coat" - desc = "(III) Both fashionable and lightly armoured, this jacket is favoured by treasure hunters the galaxy over." + desc = "Both fashionable and lightly armoured, this jacket is favoured by treasure hunters the wasteland over." icon_state = "curator" item_state = "curator" blood_overlay_type = "coat" - armor = list("tier" = 3, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 45) + armor = list("melee" = 10, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 10, "bio" = 10, "rad" = 10, "fire" = 40, "acid" = 40) cold_protection = CHEST|ARMS heat_protection = CHEST|ARMS mutantrace_variation = STYLE_DIGITIGRADE|STYLE_NO_ANTHRO_ICON diff --git a/code/modules/clothing/suits/medium_armor.dm b/code/modules/clothing/suits/medium_armor.dm index dbc7d47b57..68cd422cff 100644 --- a/code/modules/clothing/suits/medium_armor.dm +++ b/code/modules/clothing/suits/medium_armor.dm @@ -5,13 +5,6 @@ // WASTELAND // /////////////// -/obj/item/clothing/suit/armored/medium/bone - name = "bone armor" - desc = "Primitive armor made from animal bones and sinew. Rattles when walking. Hard for critters to bite through and fire to burn." - icon_state = "bone" - item_state = "bone" - armor = list("melee" = 45, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 15, "bio" = 0, "rad" = 5, "fire" = 25, "acid" = 0) - // Kevlar /obj/item/clothing/suit/armored/medium/vestarmor name = "armored vest" @@ -115,7 +108,7 @@ icon_state = "supafly" item_state = "supafly" armor = list("melee" = 25, "bullet" = 40, "laser" = 20, "energy" = 10, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 25, "acid" = 25) - + /obj/item/clothing/suit/armored/medium/rebel name = "rebel raider armor" desc = "Rebel, rebel. Your face is a mess." @@ -378,7 +371,7 @@ desc = "A trenchcoat which does a poor job at hiding the full-body combat armor beneath it." icon_state = "towntrench_heavy" armor = list("melee" = 45, "bullet" = 45, "laser" = 35, "energy" = 40, "bomb" = 30, "bio" = 40, "rad" = 40, "fire" = 50, "acid" = 10) - + /obj/item/clothing/suit/armored/medium/lawcoat/commissioner name = "commissioner's jacket" desc = "A navy-blue jacket with blue shoulder designations, '/OPD/' stitched into one of the chest pockets, and hidden ceramic trauma plates. It has a small compartment for a holdout pistol." diff --git a/code/modules/clothing/under/f13.dm b/code/modules/clothing/under/f13.dm index 916771c019..352acf100a 100644 --- a/code/modules/clothing/under/f13.dm +++ b/code/modules/clothing/under/f13.dm @@ -29,7 +29,7 @@ desc = "Khaki officers uniform with gold trimming over a black turtleneck." icon_state = "uniform_enclave_officer" item_state = "uniform_enclave_officer" - + /obj/item/clothing/under/f13/enclave/intel name = "intel officer uniform" desc = "Dark pants and turtleneck with hidden kevlar layers, since intel officers often wear no proper armor." @@ -957,11 +957,12 @@ /obj/item/clothing/under/f13/police/swat name = "SWAT officer uniform" - desc = "A US Army combat uniform, modified for SWAT team personnel." + desc = "The uniform of the Oasis Police Department, modified for SWAT team personnel." icon = 'icons/fallout/clothing/uniforms.dmi' mob_overlay_icon = 'icons/fallout/onmob/clothes/uniform.dmi' - icon_state = "army_uniform" - item_state = "army_uniform" + icon_state = "navy" + item_state = "bl_suit" + item_color = "navy" /obj/item/clothing/under/f13/machinist name = "workman outfit" @@ -1311,7 +1312,7 @@ item_state = "lb_suit" item_color = "general" armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 20, "fire" = 40, "acid" = 40) - + /obj/item/clothing/under/f13/general/oasis name = "dictator's overcoat" desc = "A grim looking overcoat - preferable standard for the ruler of oasis.
It's decorated with golden stars, each one adorned with a tree." @@ -1770,3 +1771,13 @@ item_state = "sorrows_under_f" item_color = "sorrows_under_f" +/obj/item/clothing/under/f13/bone + name = "Bone Dancer outfit" + desc = "A full body skin tight overalls, seemingly of brown color. Commonly worn by members of the Bone Dancers tribe." + icon_state = "bone_dancer" + item_state = "bone_dancer" + item_color = "bone_dancer" + var/sleeves_adjusted = 0 + alt_covers_chest = TRUE + fitted = FEMALE_UNIFORM_TOP + can_adjust = TRUE diff --git a/code/modules/crafting/items.dm b/code/modules/crafting/items.dm index 1a78be2064..69299ffa09 100644 --- a/code/modules/crafting/items.dm +++ b/code/modules/crafting/items.dm @@ -175,9 +175,9 @@ /obj/item/stack/crafting/electronicparts/three, /obj/item/stack/sheet/mineral/titanium, /obj/item/stack/sheet/metal/ten, + /obj/item/stack/sheet/cloth/ten, + /obj/item/stack/sheet/leather/ten, /obj/item/stack/sheet/glass/ten, - /obj/item/stack/sheet/cloth/five, - /obj/item/stack/sheet/leather/five, /obj/item/stack/sheet/prewar/five, /obj/item/stock_parts/cell/ammo/ec, /obj/item/stack/crafting/goodparts/five @@ -191,9 +191,8 @@ /obj/item/crafting/coffee_pot, /obj/item/crafting/wonderglue, /obj/item/crafting/abraxo, - /obj/item/crafting/igniter, - /obj/item/crafting/timer, - /obj/item/crafting/sensor, + /obj/item/stack/sheet/cloth/five, + /obj/item/stack/sheet/leather/five, /obj/item/crafting/lunchbox, /obj/item/reagent_containers/glass/bottle/blackpowder) @@ -230,4 +229,3 @@ /obj/item/attachments/burst_improvement, /obj/item/attachments/recoil_decrease, /obj/item/attachments/auto_sear) - diff --git a/code/modules/fallout/misc/gang_items.dm b/code/modules/fallout/misc/gang_items.dm index 56479fcb3f..05c578c0bb 100644 --- a/code/modules/fallout/misc/gang_items.dm +++ b/code/modules/fallout/misc/gang_items.dm @@ -103,7 +103,7 @@ /datum/gang_item/clothing/khan_battlecoat name = "Great Khan battlecoat" id = "khan_battlecoat" - cost = 1000 + cost = 300 item_path = /obj/item/clothing/suit/toggle/labcoat/f13/khan_jacket/coat // --------------------------- @@ -111,13 +111,13 @@ /datum/gang_item/clothing/prostitute_dress name = "Prostitute dress" id = "prostitute_dress" - cost = 25 + cost = 10 item_path = /obj/item/clothing/under/f13/female/flapper /datum/gang_item/clothing/hat name = "Pimp Hat" id = "hat" - cost = 30 + cost = 20 item_path = /obj/item/clothing/head/collectable/petehat/gang /obj/item/clothing/head/collectable/petehat/gang @@ -127,43 +127,43 @@ /datum/gang_item/clothing/glasses/sunglasses name = "Sunglasses" id = "sunglasses" - cost = 40 + cost = 20 item_path = /obj/item/clothing/glasses/sunglasses /datum/gang_item/clothing/raider_uniform name = "Raider uniform" id = "raider_uniform" - cost = 40 + cost = 20 item_path = /obj/item/clothing/under/f13/raider_leather /datum/gang_item/clothing/jester_uniform name = "Jester suit" id = "jester_uniform" - cost = 40 + cost = 20 item_path = /obj/item/clothing/under/jester /datum/gang_item/clothing/biker_uniform name = "Biker uniform" id = "biker_uniform" - cost = 40 + cost = 20 item_path = /obj/item/clothing/under/f13/Retro_Biker_Vest /datum/gang_item/clothing/scarecrow_uniform name = "Scarecrow uniform" id = "scarecrow_uniform" - cost = 40 + cost = 20 item_path = /obj/item/clothing/under/scarecrow /datum/gang_item/clothing/soviet_uniform name = "Soviet uniform" id = "soviet_uniform" - cost = 40 + cost = 20 item_path = /obj/item/clothing/under/soviet /datum/gang_item/clothing/chairmen_uniform name = "Chairmen uniform" id = "chairmen_uniform" - cost = 40 + cost = 20 item_path = /obj/item/clothing/under/f13/bennys/gang /obj/item/clothing/under/f13/bennys/gang @@ -203,7 +203,7 @@ /datum/gang_item/weapon/slugger name = "Louiseville Slugger" id = "slugger" - cost = 50 + cost = 40 item_path = /obj/item/twohanded/baseball/louisville /datum/gang_item/weapon/sappers @@ -317,7 +317,7 @@ /datum/gang_item/equipment/bundleanarchist name = "Mad Bomber Bundle" id = "bundleanarchist" - cost = 650 + cost = 550 item_path = /obj/item/storage/box/bundleanarchist /obj/item/storage/box/bundleanarchist @@ -336,7 +336,7 @@ /datum/gang_item/equipment/bundlegunner name = "Old Soldier Bundle" id = "bundlegunner" - cost = 500 + cost = 400 item_path = /obj/item/storage/box/bundlegunner /obj/item/storage/box/bundlegunner @@ -350,11 +350,12 @@ new /obj/item/storage/belt(src) new /obj/item/clothing/under/f13/army(src) new /obj/item/gun/ballistic/automatic/pistol/m1911(src) + new /obj/item/grenade/frag(src) /datum/gang_item/equipment/bundleelguapo name = "Bandito Bundle" id = "bundleelguapo" - cost = 500 + cost = 300 item_path = /obj/item/storage/box/bundleelguapo /obj/item/storage/box/bundleelguapo diff --git a/code/modules/fallout/misc/gangs.dm b/code/modules/fallout/misc/gangs.dm index e3bdebe9da..920bcba08b 100644 --- a/code/modules/fallout/misc/gangs.dm +++ b/code/modules/fallout/misc/gangs.dm @@ -46,6 +46,7 @@ GLOBAL_DATUM_INIT(denmob, /datum/gang/denmob, new) /datum/gang_item/weapon/type17, /datum/gang_item/weapon/uzi, /datum/gang_item/weapon/type93, + /datum/gang_item/equipment/frag, /datum/gang_item/clothing/prostitute_dress, /datum/gang_item/clothing/hat, @@ -86,6 +87,7 @@ GLOBAL_DATUM_INIT(denmob, /datum/gang/denmob, new) /datum/gang_item/equipment/c4, /datum/gang_item/equipment/emp, + /datum/gang_item/equipment/frag, /datum/gang_item/weapon/shuriken, /datum/gang_item/equipment/necklace, diff --git a/code/modules/fallout/obj/crafting.dm b/code/modules/fallout/obj/crafting.dm index c7d85ccc16..bf7879db32 100644 --- a/code/modules/fallout/obj/crafting.dm +++ b/code/modules/fallout/obj/crafting.dm @@ -152,21 +152,6 @@ icon_state = "reloader" tool_behaviour = TOOL_MSRELOADER -/obj/item/crafting/igniter - name = "igniter" - desc = "A small electronic device able to ignite combustable substances." - icon_state = "igniter" - -/obj/item/crafting/timer - name = "timer" - desc = "Used to time things. Works well with contraptions which has to count down. Tick tock." - icon_state = "timer" - -/obj/item/crafting/sensor - name = "proximity sensor" - desc = "Used for scanning and alerting when someone enters a certain proximity." - icon_state = "sensor" - /obj/item/crafting/lunchbox name = "lunch box" desc = "This was a promotional item created by Vault-Tec before the Great War and used in the company's advertisements. With the right schematics, it can be used to make bottlecap mines." diff --git a/code/modules/fallout/obj/explosives.dm b/code/modules/fallout/obj/explosives.dm index 4c67201d13..0d4cce16b6 100644 --- a/code/modules/fallout/obj/explosives.dm +++ b/code/modules/fallout/obj/explosives.dm @@ -81,3 +81,208 @@ . += span_warning("It seems to be activating!") if(ACTIVE) . += span_warning("It seems activated!") + + + + +/obj/item/grenade/plastic/c4/New() + wires = new /datum/wires/explosive/c4(src) + ..() + +/obj/item/grenade/plastic/c4/Destroy() + qdel(wires) + wires = null + target = null + return ..() + +/obj/item/mine + name = "dummy mine" + desc = "Better stay away from that thing." + w_class = WEIGHT_CLASS_NORMAL + density = FALSE + anchored = TRUE + icon = 'icons/obj/items_and_weapons.dmi' + icon_state = "uglymine" + var/armed = TRUE //we can be armed and unanchored if we want, but this isn't normally the case + var/random = FALSE //are our wires random? + /// We manually check to see if we've been triggered in case multiple atoms cross us in the time between the mine being triggered and it actually deleting, to avoid a race condition with multiple detonations + var/triggered = FALSE + +/obj/item/mine/ComponentInitialize() + . = ..() + AddElement(/datum/element/empprotection, EMP_PROTECT_WIRES) + +/obj/item/mine/Initialize() + . = ..() + if(random) + wires = new /datum/wires/explosive/mine/random(src) + else + wires = new /datum/wires/explosive/mine(src) + + +/obj/item/mine/Destroy() + qdel(wires) + wires = null + return ..() + +/obj/item/mine/attack_self(mob/user) + if(armed) + to_chat(user, "The mine is already armed!") //how did we get here + if(user.dropItemToGround(src)) + anchored = TRUE + addtimer(CALLBACK(src, .proc/arm), 5 SECONDS) + to_chat(user, "You drop the mine and activate the 5-second arming process.") + return + +/obj/item/mine/proc/arm() + visible_message("[src] beeps!") + if(armed) + triggermine() + return + armed = TRUE + +/obj/item/mine/attackby(obj/item/I, mob/user, params) + if(is_wire_tool(I)) + wires.interact(user) + else ..() + +/obj/item/mine/proc/mineEffect(mob/victim) + to_chat(victim, "*click*") + +/obj/item/mine/Crossed(atom/movable/AM) + if(!armed) + return + if(triggered || !isturf(loc) || !isliving(AM) || isstructure(AM) || isnottriggermine(AM)) + return + . = ..() + + if(AM.movement_type & FLYING) + return + + triggermine(AM) + +/obj/item/mine/proc/triggermine(mob/victim) + if(triggered) + return + visible_message("[victim] sets off [icon2html(src, viewers(src))] [src]!") + var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread + s.set_up(3, 1, src) + s.start() + mineEffect(victim) + SEND_SIGNAL(src, COMSIG_ITEM_MINE_TRIGGERED) + triggered = 1 + qdel(src) + +/obj/item/mine/take_damage(damage_amount, damage_type, damage_flag, sound_effect, attack_dir) + . = ..() + triggermine() + +/obj/item/mine/screwdriver_act(mob/living/user, obj/item/S) + if(!armed) + return + to_chat(user, "You begin carefully disarming [src].") + if(S.use_tool(src, user, 200, volume=100)) //20 seconds base, if you don't want to play the game of chance + to_chat(user, "You carefully destroy the detonator of the mine!") + qdel(src) + else + triggermine(user) + +/obj/item/mine/explosive + name = "explosive mine" + var/range_devastation = 0 + var/range_heavy = 1 + var/range_light = 2 + var/range_flash = 3 + +/obj/item/mine/explosive/mineEffect(mob/victim) + explosion(loc, range_devastation, range_heavy, range_light, range_flash) + +/obj/item/mine/explosive/random + random = TRUE + anchored = FALSE + armed = FALSE + +/obj/item/mine/stun + name = "stun mine" + var/stun_time = 80 + +/obj/item/mine/stun/mineEffect(mob/living/victim) + if(isliving(victim)) + victim.DefaultCombatKnockdown(stun_time) + +/obj/item/mine/stun/random + random = TRUE + anchored = FALSE + armed = FALSE + +/obj/item/mine/shrapnel + name = "shrapnel mine" + var/shrapnel_type = /obj/item/projectile/bullet/shrapnel + var/shrapnel_magnitude = 3 + +/obj/item/mine/shrapnel/mineEffect(mob/victim) + AddComponent(/datum/component/pellet_cloud, projectile_type=shrapnel_type, magnitude=shrapnel_magnitude) + explosion(loc, 0, 0, 2, 2) + +/obj/item/mine/shrapnel/random + random = TRUE + anchored = FALSE + armed = FALSE + +/obj/item/mine/shrapnel/sting + name = "stinger mine" + shrapnel_type = /obj/item/projectile/bullet/pellet/stingball + +/obj/item/mine/shrapnel/sting/random + random = TRUE + anchored = FALSE + armed = FALSE + +/obj/item/mine/kickmine + name = "kick mine" + +/obj/item/mine/kickmine/mineEffect(mob/victim) + if(isliving(victim) && victim.client) + to_chat(victim, "You have been kicked FOR NO REISIN!") + qdel(victim.client) + + +/obj/item/mine/gas + name = "oxygen mine" + var/gas_amount = 360 + var/gas_type = "o2" + +/obj/item/mine/gas/mineEffect(mob/victim) + atmos_spawn_air("[gas_type]=[gas_amount]") + + +/obj/item/mine/gas/plasma + name = "plasma mine" + gas_type = "plasma" + + +/obj/item/mine/gas/n2o + name = "\improper N2O mine" + gas_type = "n2o" + +/obj/item/mine/sound + name = "dummy mine" + var/soundtoplay + +/obj/item/mine/sound/mineEffect(mob/victim) + playsound(loc, soundtoplay, 100, 1) + +/obj/item/mine/sound/bwoink + soundtoplay = 'sound/effects/adminhelp.ogg' + +/obj/item/mine/emp + name = "pulse mine" + var/range = 3 + +/obj/item/mine/emp/mineEffect(mob/victim) + empulse_using_range(src, range) + +/obj/item/mine/emp/random + random = TRUE + anchored = FALSE + armed = FALSE diff --git a/code/modules/fallout/obj/food_and_drinks/wastefood.dm b/code/modules/fallout/obj/food_and_drinks/wastefood.dm index 5fc91f84d9..9ad54e25a1 100644 --- a/code/modules/fallout/obj/food_and_drinks/wastefood.dm +++ b/code/modules/fallout/obj/food_and_drinks/wastefood.dm @@ -7,489 +7,6 @@ bonus_reagents = list( /datum/reagent/consumable/nutriment/vitamin = 1, /datum/reagent/medicine/omnizine = 5, /datum/reagent/consumable/nutriment/vitamin = 5) tastes = list("Monkey" = 1) foodtype = MEAT | VEGETABLES - -/////PLANTS Fallout 13/////// - -/obj/item/seeds/buffalogourd - name = "pack of buffalo gourd seeds" - desc = "These seeds grow into buffalo vines.
they appear to be edible once cooked!" - icon_state = "seed-gourd" - species = "buffalo gourd" - plantname = "Buffalo Vines" - product = /obj/item/reagent_containers/food/snacks/grown/buffalogourd - growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' - icon_grow = "gourd-grow" - icon_dead = "gourd-dead" - icon_harvest = "gourd-harvest" - reagents_add = list(/datum/reagent/water = 0.2, /datum/reagent/toxin = 0.1) - lifespan = 50 - endurance = 40 - maturation = 10 - production = 1 - yield = 3 - growthstages = 3 - -/obj/item/seeds/buffalogourd/microwave_act(obj/machinery/microwave/MW) //The act allows it to be cooked over a bonfire grille too. - ..() - new /obj/item/reagent_containers/food/snacks/roastseeds/buffalogourd(drop_location()) - qdel(src) - -/obj/item/reagent_containers/food/snacks/roastseeds/buffalogourd //Inherits from pumpkin.dm's roast seeds, similarity commented out for clarity - name = "roasted gourd seeds" - desc = "Well prepared crispy buffalo gourd seeds, full of chewy protein." - //icon_state = "roasted_seeds" - list_reagents = list(/datum/reagent/consumable/cooking_oil = 1, /datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 1.5) - //bitesize = 2 - //w_class = WEIGHT_CLASS_TINY - //tastes = list("crunchy" = 1) - //foodtype = GRAIN - -/obj/item/reagent_containers/food/snacks/grown/buffalogourd - seed = /obj/item/seeds/buffalogourd - name = "buffalo gourd" - desc = "A bitter tasting vine plant, with a watery fleshy texture." - icon_state = "buffalo_gourd" - filling_color = "#008000" - bitesize_mod = 3 - foodtype = FRUIT | GROSS - juice_results = list(/datum/reagent/lye= 0.5) // The oil made from the gourd plant itself is used in Native American soap. - distill_reagent = list(/datum/chemical_reaction/pestkiller= 0.25) //Native Americans used the extract of gourd as small vermin pesticide. - -/obj/item/seeds/coyotetobacco - name = "pack of coyote tobacco seeds" - desc = "These seeds grow into coyote tobacco plants." - icon_state = "seed-coyote" - species = "coyote tobacco" - plantname = "Coyote Tobacco Bush" - product = /obj/item/reagent_containers/food/snacks/grown/coyotetobacco - genes = list(/datum/plant_gene/trait/plant_type/weed_hardy) - lifespan = 20 - maturation = 5 - production = 5 - yield = 10 - growthstages = 4 - growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' - icon_grow = "coyote-grow" - icon_dead = "coyote-dead" - icon_harvest = "coyote-harvest" - reagents_add = list(/datum/reagent/drug/nicotine = 0.1, /datum/reagent/consumable/nutriment = 0.1) - -/obj/item/reagent_containers/food/snacks/grown/coyotetobacco - seed = /obj/item/seeds/coyotetobacco - name = "coyote tobacco leaves" - desc = "This tobacco like plant is commonly used by tribals for a great variety of medicinal and ceremonial purposes." - icon_state = "Coyote Tobacco" - filling_color = "#008000" - juice_results = list(/datum/reagent/consumable/tea/coyotetea = 0) - distill_reagent = /datum/reagent/consumable/ethanol/deathroach - - -/obj/item/seeds/feracactus - name = "pack of barrel cactus seeds" - desc = "These seeds grow into a barrel cactus." - icon_state = "seed-feracactus" - growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' - icon_grow = "feracactus-grow" - icon_dead = "feracactus-dead" - icon_harvest = "feracactus-harvest" - species = "barrel cactus" - plantname = "Barrel Cactus" - product = /obj/item/reagent_containers/food/snacks/grown/feracactus - lifespan = 60 - endurance = 20 - yield = 2 - growthstages = 2 - production = 5 - maturation = 5 - reagents_add = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/medicine/calomel = 0.1,) - -/obj/item/reagent_containers/food/snacks/grown/feracactus - seed = /obj/item/seeds/feracactus - name = "barrel cactus fruit" - desc = "Carefully harvested spineless barrel-cactus fruit, it feels dry to the touch but appears more than edible." - icon_state = "feracactus" - filling_color = "#FF6347" - foodtype = FRUIT - juice_results = list(/datum/reagent/consumable/tea/feratea = 0) - distill_reagent = /datum/reagent/consumable/ethanol/yellowpulque - -/obj/item/seeds/poppy/broc - name = "pack of broc seeds" - desc = "These seeds grow into broc flowers." - icon_state = "seed-broc" - species = "broc" - plantname = "Broc Flowers" - product = /obj/item/reagent_containers/food/snacks/grown/broc - lifespan = 25 - endurance = 10 - yield = 4 - growthstages = 3 - production = 4 - maturation = 4 - growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi' - icon_harvest = "broc-harvest" - icon_grow = "broc-grow" - icon_dead = "broc-dead" - //mutatelist = list(/obj/item/seeds/geraniumseed, /obj/item/seeds/lilyseed) - reagents_add = list(/datum/reagent/medicine/dexalin = 0.2, /datum/reagent/medicine/salglu_solution = 0.05, /datum/reagent/consumable/nutriment = 0.1, /datum/reagent/medicine/bicaridine = 0.1,) - -/obj/item/reagent_containers/food/snacks/grown/broc - seed = /obj/item/seeds/poppy/broc - name = "broc flower" - desc = "This vibrant, orange flower grows on tall stalks in the wasteland and exhibits moderate healing properties, even when unprocessed." - icon_state = "broc" - //slot_flags = SLOT_HEAD - filling_color = "#FF6347" - juice_results = list(/datum/reagent/consumable/tea/broctea = 0) - distill_reagent = /datum/reagent/consumable/ethanol/brocbrew - - -/obj/item/seeds/xander - name = "pack of xander seeds" - desc = "These seeds grow into xander roots." - icon_state = "seed-xander" - species = "xander" - plantname = "Xander Roots" - product = /obj/item/reagent_containers/food/snacks/grown/xander - lifespan = 25 - endurance = 10 - yield = 3 - growthstages = 4 - production = 4 - maturation = 4 - growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' - icon_grow = "xander-grow" - icon_harvest = "xander-harvest" - icon_dead = "xander-dead" - reagents_add = list(/datum/reagent/medicine/antitoxin = 0.2, /datum/reagent/medicine/salglu_solution = 0.05, /datum/reagent/consumable/nutriment = 0.1) - -/obj/item/reagent_containers/food/snacks/grown/xander - seed = /obj/item/seeds/xander - name = "xander root" - desc = "Xander roots are large, hardy, turnip-like roots with mild healing properties." - icon_state = "xander" - filling_color = "#FF6347" - juice_results = list(/datum/reagent/consumable/tea/xandertea = 0) - distill_reagent = /datum/reagent/consumable/ethanol/salgam - -/*HRP*/ - -/obj/item/seeds/horsenettle - name = "pack of horsenettle seeds" - desc = "These seeds grow into white horsenettles." - icon_state = "seed-horsenettle" - species = "horsenettle" - plantname = "White Horsenettles" - product = /obj/item/reagent_containers/food/snacks/grown/horsenettle - lifespan = 30 - endurance = 40 - yield = 4 - growthstages = 4 - growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' - icon_grow = "horsenettle-grow" - icon_dead = "horsenettle-dead" - icon_harvest = "horsenettle-harvest" - genes = list(/datum/plant_gene/trait/plant_type/weed_hardy) - reagents_add = list( /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) - -/obj/item/reagent_containers/food/snacks/grown/horsenettle - seed = /obj/item/seeds/horsenettle - name = "horsenettle berries" - desc = "The tribes use these berries as a vegetable rennet." - icon_state = "White Horsenettle" - filling_color = "#FF00FF" - bitesize_mod = 2 - foodtype = FRUIT - juice_results = list(/datum/reagent/consumable/enzyme = 1) - tastes = list("searing pain" = 1) - distill_reagent = /datum/reagent/consumable/enzyme - - -/obj/item/seeds/mesquite - name = "pack of honey mesquite seeds" - desc = "These seeds grows into a mesquite plant." - icon_state = "mycelium-tower" - species = "honey mesquite" - plantname = "Honey Mesquite" - product = /obj/item/reagent_containers/food/snacks/grown/mesquite - lifespan = 80 - endurance = 50 - maturation = 6 - production = 5 - yield = 5 - potency = 50 - growthstages = 4 - growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' - icon_grow = "mesquite-grow" - icon_dead = "mesquite-dead" - icon_harvest = "mesquite-harvest" - genes = list(/datum/plant_gene/trait/repeated_harvest) - reagents_add = list(/datum/reagent/consumable/honey = 0.1, /datum/reagent/consumable/nutriment = 0.05) - -/obj/item/reagent_containers/food/snacks/grown/mesquite - seed = /obj/item/seeds/mesquite - name = "honey mesquite pods" - desc = "The honey mesquite pod grows on a short tree with willow-like branches. Trees with pickable pods will appear bushier in foliage and have strings of pods on them, resembling a fern pattern. Pods can be eaten or used in recipes" - gender = PLURAL - icon_state = "Mesquite Pod" - filling_color = "#F0E68C" - bitesize_mod = 2 - foodtype = VEGETABLES - juice_results = list(/datum/reagent/consumable/honey = 0.1) - tastes = list("crunchy sweetness" = 1) - distill_reagent = /datum/reagent/consumable/ethanol/wastemead - - -/obj/item/seeds/pinyon - name = "pack of pinyon pine seeds" - desc = "The seeds of the pinyon pine, known as pine nuts or pi��ns, are an important food for settlers and tribes living in the mountains of the North American Southwest. All species of pine produce edible seeds, but in North America only the pinyon produces seeds large enough to be a major source of food." - icon_state = "seed-pinyon" - species = "pinyon pine" - plantname = "Pinyon Pine" - product = /obj/item/reagent_containers/food/snacks/grown/pinyon - lifespan = 80 - endurance = 50 - maturation = 9 - production = 6 - yield = 5 - potency = 50 - growthstages = 4 - growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' - icon_grow = "pinyon-grow" - icon_dead = "pinyon-dead" - icon_harvest = "pinyon-harvest" - genes = list(/datum/plant_gene/trait/repeated_harvest) - reagents_add = list( /datum/reagent/consumable/nutriment = 0.05) - -/obj/item/reagent_containers/food/snacks/grown/pinyon - seed = /obj/item/seeds/pinyon - name = "pinyon nuts" - desc = "The seeds of the pinyon pine, known as pine nuts or pi��ns, are an important food for settlers and tribes living in the mountains of the North American Southwest. All species of pine produce edible seeds, but in North America only the pinyon produces seeds large enough to be a major source of food." - gender = PLURAL - icon_state = "Pinyon Nuts" - filling_color = "#F0E68C" - bitesize_mod = 2 - foodtype = GRAIN - grind_results = list(/datum/reagent/consumable/flour = 0) - tastes = list("pine nuts" = 1) - -/obj/item/seeds/pricklypear - name = "pack of prickly pear seeds" - desc = "These seeds grow into a prickly pear cactus." - icon_state = "seed-prickly" - growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' - icon_grow = "prickly-grow" - icon_dead = "prickly-dead" - icon_harvest = "prickly-harvest" - species = "prickly pear" - plantname = "Prickly pear cactus" - genes = list(/datum/plant_gene/trait/repeated_harvest) - product = /obj/item/reagent_containers/food/snacks/grown/pricklypear - reagents_add = list(/datum/reagent/consumable/nutriment = 0.2, /datum/reagent/water = 0.1, /datum/reagent/consumable/nutriment/vitamin = 0.05) - lifespan = 60 - endurance = 20 - yield = 2 - growthstages = 4 - production = 4 - maturation = 5 - -/obj/item/reagent_containers/food/snacks/grown/pricklypear - seed = /obj/item/seeds/pricklypear - name = "prickly pear fruit" - desc = "Distinguished by having cylindrical, rather than flattened, stem segments with large barbed spines. The stem joints are very brittle on young stems, readily breaking off when the barbed spines stick to clothing or animal fur." - icon_state = "Prickly Pear" - filling_color = "#FF6347" - foodtype = FRUIT - bitesize_mod = 2 - juice_results = list(/datum/reagent/consumable/tea/pricklytea = 0) - tastes = list("sweet cactus" = 1) - distill_reagent = /datum/reagent/consumable/ethanol/pinkpulque - -/obj/item/grown/pricklypear/pickup(mob/living/user) - ..() - if(!iscarbon(user)) - return FALSE - var/mob/living/carbon/C = user - if(C.gloves) - return FALSE - var/hit_zone = (C.held_index_to_dir(C.active_hand_index) == "l" ? "l_":"r_") + "arm" - var/obj/item/bodypart/affecting = C.get_bodypart(hit_zone) - if(affecting) - if(affecting.receive_damage(0, force)) - C.update_damage_overlays() - to_chat(C, "The thorns pierce your bare hand!") - return TRUE - -/obj/item/seeds/datura - name = "pack of datura seeds" - desc = "These seeds grow into datura plants." - icon_state = "seed-datura" - species = "Datura" - plantname = "Datura" - product = /obj/item/reagent_containers/food/snacks/grown/datura - lifespan = 30 - maturation = 6 - production = 5 - yield = 4 - growthstages = 5 - growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' - icon_grow = "datura-grow" - icon_dead = "datura-dead" - icon_harvest = "datura-harvest" - reagents_add = list(/datum/reagent/medicine/morphine = 0.2, /datum/reagent/drug/mushroomhallucinogen = 0.1, /datum/reagent/toxin = 0.05, /datum/reagent/consumable/nutriment = 0.1) - -/obj/item/reagent_containers/food/snacks/grown/datura - seed = /obj/item/seeds/datura - name = "Datura" - desc = "The sacred datura root, useful as an anesthetic for surgery and in healing salves, as well as for rites of passage rituals and ceremonies" - icon_state = "Datura" - filling_color = "#FFA500" - bitesize_mod = 2 - foodtype = VEGETABLES - juice_results = list(/datum/reagent/consumable/ethanol/daturatea = 0) - distill_reagent = /datum/reagent/consumable/ethanol/daturatea - -/obj/item/seeds/punga - name = "pack of punga seeds" - desc = "These small black pits grow into a punga bush" - icon_state = "seed-punga" - species = "punga" - plantname = "Punga Bush" - product = /obj/item/reagent_containers/food/snacks/grown/pungafruit - lifespan = 100 - endurance = 30 - maturation = 10 - production = 5 - yield = 3 - potency = 30 - growthstages = 4 - rarity = 20 - growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' - icon_grow = "punga-grow" - icon_dead = "punga-dead" - icon_harvest = "punga-harvest" - genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/repeated_harvest) - reagents_add = list(/datum/reagent/medicine/charcoal = 0.1, /datum/reagent/consumable/nutriment = 0.1, /datum/reagent/medicine/radaway = 0.05) - -/obj/item/reagent_containers/food/snacks/grown/pungafruit - seed = /obj/item/seeds/punga - name = "pungafruit" - desc = "Punga fruit plants flower at a single point at the terminus of their stems, gradually developing into large, fleshy fruits with a yellow/brown, thick skin. They are common throughout Point Lookout, due to the unique conditions offered by the swamps, and scrub radiation when ingested." - icon_state = "Punga Fruit" - filling_color = "#FF6347" - juice_results = list(/datum/reagent/consumable/ethanol/pungajuice = 0) - -/obj/item/seeds/yucca - name = "pack of banana yucca seeds" - desc = "These seeds grow into a yucca plant." - icon = 'icons/obj/hydroponics/seeds.dmi' - icon_state = "seed-yucca" - species = "banna yucca" - plantname = "Banana Yucca plant" - product = /obj/item/reagent_containers/food/snacks/grown/yucca - lifespan = 50 - endurance = 30 - yield = 5 - growthstages = 4 - maturation = 5 - production = 4 - growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' - icon_grow = "yucca-grow" - icon_dead = "yucca-dead" - icon_harvest = "yucca-harvest" - genes = list(/datum/plant_gene/trait/repeated_harvest) - reagents_add = list( /datum/reagent/consumable/nutriment = 0.2, /datum/reagent/consumable/sugar = 0.1, /datum/reagent/consumable/nutriment/vitamin = 0.2) - - -/obj/item/reagent_containers/food/snacks/grown/yucca - seed = /obj/item/seeds/yucca - name = "banana yucca fruit" - desc = "The fleshy banana like fruit, rougly 8 cm long and 6 cm across. It tastes similar to a sweet potato." - icon_state = "Bannana Yucca" - icon = 'icons/obj/hydroponics/harvest.dmi' - bitesize = 3 - juice_results = list(/datum/reagent/consumable/yuccajuice = 0) - distill_reagent = /datum/reagent/consumable/yuccajuice - -/obj/item/seeds/tato - name = "pack of tato seeds" - desc = "a pack of tato seeds" - icon_state = "seed-tato" - species = "tato" - plantname = "Tato Plants" - product = /obj/item/reagent_containers/food/snacks/grown/tato - lifespan = 30 - maturation = 7 - production = 3 - yield = 4 - growthstages = 4 - growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' - icon_grow = "tato-grow" - icon_dead = "tato-dead" - icon_harvest = "tato-harvest" - genes = list(/datum/plant_gene/trait/battery, /datum/plant_gene/trait/repeated_harvest) - reagents_add = list( /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) - -/obj/item/reagent_containers/food/snacks/grown/tato - seed = /obj/item/seeds/tato - name = "tato" - desc = "The outside looks like a tomato, but the inside is brown. Tastes as absolutely disgusting as it looks, but will keep you from starving." - icon_state = "Tato" - filling_color = "#E9967A" - bitesize = 100 - foodtype = VEGETABLES - juice_results = list(/datum/reagent/consumable/tato_juice = 0) - distill_reagent = /datum/reagent/consumable/ethanol/tatovodka - -/obj/item/reagent_containers/food/snacks/grown/tato/wedges - name = "tato wedges" - desc = "Slices of neatly cut tato." - icon_state = "potato_wedges" - filling_color = "#E9967A" - bitesize = 100 - -/obj/item/reagent_containers/food/snacks/grown/tato/attackby(obj/item/W, mob/user, params) - if(W.get_sharpness()) - to_chat(user, "You cut the tato into wedges with [W].") - var/obj/item/reagent_containers/food/snacks/grown/tato/wedges/Wedges = new /obj/item/reagent_containers/food/snacks/grown/tato/wedges - remove_item_from_storage(user) - qdel(src) - user.put_in_hands(Wedges) - else - return ..() - - -/obj/item/seeds/mutfruit - name = "pack of mutfruit seeds" - desc = "These seeds grow into a mutfruit sapling." - icon_state = "seed-mutfruit" - species = "mutfruit" - plantname = "Mutfruit Sapling" - growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' - icon_grow = "mutfruit-grow" - icon_dead = "mutfruit-dead" - product = /obj/item/reagent_containers/food/snacks/grown/mutfruit - lifespan = 30 - endurance = 20 - yield = 3 - growthstages = 3 - production = 5 - maturation = 5 - reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.05, /datum/reagent/consumable/nutriment = 0.1, /datum/reagent/radium = 0.15) - -/obj/item/reagent_containers/food/snacks/grown/mutfruit - seed = /obj/item/seeds/mutfruit - name = "mutfruit" - desc = "Mutfruit provides both hydration and sustenance, but the mutated plant also carries small amounts of radiation." - icon_state = "mutfruit" - filling_color = "#FF6347" - distill_reagent = /datum/reagent/consumable/ethanol/purplecider - juice_results = list(/datum/reagent/consumable/mutjuice = 0) - - -/*HRP*/ - - //// LAVALAND MUSHROOMS //// // Bracket (Shaving mushroom) @@ -584,6 +101,7 @@ desc = "Cave fungus is an edible mushroom which has the ability to purge bodily toxins." icon_state = "fungus" filling_color = "#FF6347" + distill_reagent = /datum/reagent/consumable/cavefungusjuice /obj/item/seeds/glow name = "pack of glowing fungus seeds" @@ -615,34 +133,3 @@ filling_color = "#FF6347" /*MRP*/ - - -/obj/item/seeds/agave - name = "pack of agave seeds" - desc = "These seeds grow into an agave plant." - icon = 'icons/obj/hydroponics/seeds.dmi' - icon_state = "seed-agave" - species = "agave" - plantname = "Agave plant" - product = /obj/item/reagent_containers/food/snacks/grown/agave - lifespan = 60 - endurance = 10 - yield = 5 - growthstages = 3 - production = 7 - maturation = 7 - growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' - icon_grow = "agave-grow" - icon_dead = "agave-dead" - icon_harvest = "agave-harvest" - reagents_add = list(/datum/reagent/medicine/kelotane = 0.1, /datum/reagent/toxin/lipolicide = 0.1 ) - - -/obj/item/reagent_containers/food/snacks/grown/agave - seed = /obj/item/seeds/agave - name = "agave leaf" - desc = "A strange kind of fleshy grass often used as a primitive burn medication that rapidly depletes stored nutrients in the body." - icon_state = "Agave Leaf" - icon = 'icons/obj/flora/wastelandflora.dmi' - juice_results = list(/datum/reagent/consumable/tea/agavetea = 0) - distill_reagent = /datum/reagent/consumable/ethanol/tequila diff --git a/code/modules/fallout/obj/smelling_salts.dm b/code/modules/fallout/obj/smelling_salts.dm index 970c766195..6d208d963c 100644 --- a/code/modules/fallout/obj/smelling_salts.dm +++ b/code/modules/fallout/obj/smelling_salts.dm @@ -130,6 +130,6 @@ var/policy = late? policies[POLICYCONFIG_ON_DEFIB_LATE] : policies[POLICYCONFIG_ON_DEFIB_INTACT] if(policy) to_chat(revived_mob, policy) - revived_mob.log_message("revived using strange reagent, [time_since_death / 10] seconds from time of death, considered [late? "late" : "memory-intact"] revival under configured policy limits.", LOG_GAME) + revived_mob.log_message("revived using smelling salts, [time_since_death / 10] seconds from time of death, considered [late? "late" : "memory-intact"] revival under configured policy limits.", LOG_GAME) //add_logs(user, revived_mob, "revived (smelling salts)", src) in_use = FALSE diff --git a/code/modules/fallout/obj/spawners/lootdrops.dm b/code/modules/fallout/obj/spawners/lootdrops.dm index 8e4b17c512..799990dfc6 100644 --- a/code/modules/fallout/obj/spawners/lootdrops.dm +++ b/code/modules/fallout/obj/spawners/lootdrops.dm @@ -21,10 +21,10 @@ /obj/item/crafting/wonderglue = 5, /obj/item/crafting/turpentine = 5, /obj/item/crafting/abraxo = 5, - /obj/item/crafting/igniter = 5, + /obj/item/assembly/igniter = 5, /obj/item/crafting/reloader = 5, - /obj/item/crafting/timer = 5, - /obj/item/crafting/sensor = 5) + /obj/item/assembly/timer = 5, + /obj/item/assembly/prox_sensor = 5) */ /obj/effect/spawner/lootdrop/wrange_low /* color = "#CCCCCC" diff --git a/code/modules/fallout/reagents/alcohol.dm b/code/modules/fallout/reagents/alcohol.dm index 3fb927b640..453963066b 100644 --- a/code/modules/fallout/reagents/alcohol.dm +++ b/code/modules/fallout/reagents/alcohol.dm @@ -25,6 +25,21 @@ M.radiation = max(M.radiation-3,0) return ..() +/datum/reagent/consumable/ethanol/buffalo + name = "buffalo juice" + description = "The fermented liquid of the buffalo gourd. Very bitter." + color = "#706A58" + boozepwr = 100 + taste_description = "bitter boozey sludge" + glass_icon_state = "glass_brown" + glass_name = "glass of fermented buffalo juice" + glass_desc = "The fermented liquid of the buffalo gourd. Very bitter." + +/datum/reagent/consumable/ethanol/buffalo/on_mob_life(mob/living/carbon/M) + if(M.disgust < 80) + M.adjust_disgust(10) + return ..() + /datum/reagent/consumable/ethanol/pungajuice name = "punga juice" description = "The fermented juice of the punga fruit, used to treat radiation sickness" @@ -401,6 +416,7 @@ glass_name = "Nuka Quantum" glass_desc = "An extremely blue and glowing combination of Nuka-Cola and (REDACTED)" var/datum/brain_trauma/special/psychotic_brawling/bath_salts/rage + /datum/reagent/consumable/ethanol/nukaquantum/on_mob_life(mob/living/carbon/M) M.drowsyness = 0 @@ -414,6 +430,9 @@ M.adjustStaminaLoss(-3, 0) M.hallucination += 20 M.Jitter(2) + if(HAS_TRAIT(M, TRAIT_NUKA_LOVER)) + M.adjustBruteLoss(-0.1) + M.adjustFireLoss(-0.1) ADD_TRAIT(M, TRAIT_SLEEPIMMUNE, "[type]") if(iscarbon(M)) var/mob/living/carbon/C = M diff --git a/code/modules/fallout/reagents/drinks.dm b/code/modules/fallout/reagents/drinks.dm index e6d0767b5f..bc4572d832 100644 --- a/code/modules/fallout/reagents/drinks.dm +++ b/code/modules/fallout/reagents/drinks.dm @@ -6,13 +6,21 @@ glass_icon_state = "nukacolaglass" glass_name = "Nuka Cola" glass_desc = "Don't cry, Don't raise your eye, It's only nuclear wasteland." + overdose_threshold = 100 /datum/reagent/consumable/nuka_cola/on_mob_life(mob/living/carbon/M) M.drowsyness = 0 M.AdjustSleeping(-40, FALSE) M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL) + if(HAS_TRAIT(M, TRAIT_NUKA_LOVER)) + M.adjustBruteLoss(-0.05) + M.adjustFireLoss(-0.05) ..() - . = TRUE + +/datum/reagent/consumable/nuka_cola/overdose_start(mob/living/M) + to_chat(M, "Too much Nuka-Cola! This cannot be good for you!") + M.AdjustSleeping(600, FALSE) + . = 1 /datum/reagent/consumable/sunset name = "Sunset Sarsaparilla" @@ -191,14 +199,22 @@ glass_icon_state = "nukaiceglass" glass_name = "Iced Nuka" glass_desc = "Nuka. Stay frosty." - + /datum/reagent/consumable/nukaice/on_mob_life(mob/living/carbon/M) M.adjust_bodytemperature(-20 * TEMPERATURE_DAMAGE_COEFFICIENT, T0C) //310.15 is the normal bodytemp. M.drowsyness = 0 M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL) + if(HAS_TRAIT(M, TRAIT_NUKA_LOVER)) + M.adjustBruteLoss(-0.075) + M.adjustFireLoss(-0.075) ..() . = TRUE +/datum/reagent/consumable/nukaice/overdose_start(mob/living/M) + to_chat(M, "Too much Nuka-Cola! This cannot be good for you!") + M.AdjustSleeping(600, FALSE) + . = 1 + /datum/reagent/consumable/nukawild name = "Nuka Wild" description = "A totally original concept of Nuka-Cola!" diff --git a/code/modules/fallout/reagents/drugs.dm b/code/modules/fallout/reagents/drugs.dm index 5a26aa1448..3e38703ef2 100644 --- a/code/modules/fallout/reagents/drugs.dm +++ b/code/modules/fallout/reagents/drugs.dm @@ -15,7 +15,7 @@ if(isliving(M)) to_chat(M, "You come down from your high. The wild ride is unfortunately over...") M.confused += 2 - + /datum/reagent/drug/jet/on_mob_life(mob/living/carbon/M) M.adjustStaminaLoss(-20, 0) M.set_drugginess(20) @@ -249,7 +249,7 @@ reagent_state = SOLID overdose_threshold = 20 addiction_threshold = 11 - metabolization_rate = 1.25 * REAGENTS_METABOLISM + metabolization_rate = 0.5 * REAGENTS_METABOLISM var/datum/brain_trauma/special/psychotic_brawling/bath_salts/rage /datum/reagent/drug/buffout/on_mob_add(mob/living/carbon/human/M) diff --git a/code/modules/fallout/reagents/medicines.dm b/code/modules/fallout/reagents/medicines.dm index 1d8504047b..0cdd843536 100644 --- a/code/modules/fallout/reagents/medicines.dm +++ b/code/modules/fallout/reagents/medicines.dm @@ -21,6 +21,7 @@ ..() /datum/reagent/medicine/stimpak/on_mob_life(mob/living/carbon/M) + M.adjust_nutrition(-2) if(M.health < 0) //Functions as epinephrine. M.adjustToxLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER, 0) M.adjustBruteLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER, 0) @@ -41,11 +42,13 @@ if(!M.reagents.has_reagent(/datum/reagent/medicine/healing_powder)) // We don't want these healing items to stack, so we only apply the healing if these chems aren't found.We only check for the less powerful chems, so the least powerful one always heals. M.adjustBruteLoss(-4*REAGENTS_EFFECT_MULTIPLIER) M.adjustFireLoss(-4*REAGENTS_EFFECT_MULTIPLIER) - M.adjustToxLoss(-1*REAGENTS_EFFECT_MULTIPLIER) M.AdjustStun(-5*REAGENTS_EFFECT_MULTIPLIER, 0) M.AdjustKnockdown(-5*REAGENTS_EFFECT_MULTIPLIER, 0) M.adjustStaminaLoss(-2*REAGENTS_EFFECT_MULTIPLIER) . = TRUE + if(M.nutrition <= NUTRITION_LEVEL_STARVING - 50) + M.adjustToxLoss(2*REAGENTS_EFFECT_MULTIPLIER, 0) + M.overeatduration = 0 ..() /datum/reagent/medicine/stimpak/overdose_process(mob/living/M) @@ -64,7 +67,7 @@ description = "Rapidly heals damage when injected. A poor man's stimpak." reagent_state = LIQUID color = "#FFA500" - + /datum/reagent/medicine/stimpakimitation/on_mob_life(mob/living/carbon/M) if(M.getBruteLoss() == 0 && M.getFireLoss() == 0) metabolization_rate = 1000 * REAGENTS_METABOLISM //instant metabolise if it won't help you, prevents prehealing before combat @@ -85,6 +88,7 @@ addiction_threshold = 16 datum/reagent/medicine/super_stimpak/on_mob_life(mob/living/M) + M.adjust_nutrition(-3) if(M.health < 0) //Functions as epinephrine. M.adjustToxLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER, 0) M.adjustBruteLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER, 0) @@ -105,11 +109,13 @@ datum/reagent/medicine/super_stimpak/on_mob_life(mob/living/M) if(!M.reagents.has_reagent(/datum/reagent/medicine/healing_powder/poultice) && !M.reagents.has_reagent(/datum/reagent/medicine/stimpak) && !M.reagents.has_reagent(/datum/reagent/medicine/healing_powder)) // We don't want these healing items to stack, so we only apply the healing if these chems aren't found. We only check for the less powerful chems, so the least powerful one always heals. M.adjustBruteLoss(-8*REAGENTS_EFFECT_MULTIPLIER) M.adjustFireLoss(-8*REAGENTS_EFFECT_MULTIPLIER) - M.adjustToxLoss(-2*REAGENTS_EFFECT_MULTIPLIER) M.AdjustStun(-10*REAGENTS_EFFECT_MULTIPLIER, 0) M.AdjustKnockdown(-10*REAGENTS_EFFECT_MULTIPLIER, 0) M.adjustStaminaLoss(-4*REAGENTS_EFFECT_MULTIPLIER) . = TRUE + if(M.nutrition <= NUTRITION_LEVEL_STARVING - 50) + M.adjustToxLoss(3*REAGENTS_EFFECT_MULTIPLIER, 0) + M.overeatduration = 0 ..() /datum/reagent/medicine/super_stimpak/overdose_process(mob/living/M) @@ -117,7 +123,7 @@ datum/reagent/medicine/super_stimpak/on_mob_life(mob/living/M) M.adjustOxyLoss(12*REAGENTS_EFFECT_MULTIPLIER) ..() . = TRUE - + // --------------------------- // LONGPORK STEW REAGENT @@ -158,7 +164,7 @@ datum/reagent/medicine/super_stimpak/on_mob_life(mob/living/M) reagent_state = SOLID color = "#7f7add" taste_description = "heaven." - metabolization_rate = 0.7 * REAGENTS_METABOLISM + metabolization_rate = 0.7 * REAGENTS_METABOLISM overdose_threshold = 30 //hard to OD on, besides if you use too much it kills you when it wears off /datum/reagent/medicine/berserker_powder/on_mob_life(mob/living/carbon/M) @@ -233,6 +239,7 @@ datum/reagent/medicine/super_stimpak/on_mob_life(mob/living/M) var/heal_factor_perk = -5 //Multiplier if you have the right perk. /datum/reagent/medicine/bitter_drink/on_mob_life(mob/living/carbon/M) + M.set_blurriness(7) var/is_tribal = FALSE if(HAS_TRAIT(M, TRAIT_TRIBAL)) is_tribal = TRUE @@ -300,13 +307,17 @@ datum/reagent/medicine/super_stimpak/on_mob_life(mob/living/M) // HEALING POULTICE REAGENT /datum/reagent/medicine/healing_powder/poultice - name = "ealing poultice" + name = "Healing poultice" description = "Restores limb condition and heals rapidly." color = "#C8A5DC" overdose_threshold = 20 heal_factor = -2 heal_factor_perk = -4 +/datum/reagent/medicine/healing_powder/poultice/on_mob_life(mob/living/carbon/M) + M.set_blurriness(5) + ..() + // --------------------------- // RAD-X REAGENT @@ -363,14 +374,14 @@ datum/reagent/medicine/super_stimpak/on_mob_life(mob/living/M) ..() if(isliving(M)) to_chat(M, "You feel tougher, able to shrug off pain more easily.") - M.maxHealth += 100 - M.health += 100 + M.maxHealth += 70 + M.health += 70 /datum/reagent/medicine/medx/on_mob_delete(mob/living/carbon/human/M) if(isliving(M)) to_chat(M, "You feel as vulnerable to pain as a normal person.") - M.maxHealth -= 100 - M.health -= 100 + M.maxHealth -= 70 + M.health -= 70 switch(current_cycle) if(1 to 40) M.confused += 10 @@ -402,7 +413,7 @@ datum/reagent/medicine/super_stimpak/on_mob_life(mob/living/M) M.set_heartattack(TRUE) M.visible_message("[M] clutches at their chest as if their heart stopped!") to_chat(M, "Your vision goes black and your heart stops beating as the amount of drugs in your system shut down your organs one by one. Say hello to Elvis in the afterlife. ") - + ..() /datum/reagent/medicine/medx/on_mob_life(mob/living/carbon/M) diff --git a/code/modules/fallout/reagents/teas.dm b/code/modules/fallout/reagents/teas.dm index bf833267ce..7c31149a8a 100644 --- a/code/modules/fallout/reagents/teas.dm +++ b/code/modules/fallout/reagents/teas.dm @@ -46,28 +46,7 @@ ..() . = TRUE -/datum/reagent/consumable/tea/broctea - name = "Broc Tea" - description = "A soothing herbal rememedy steeped from the Broc Flower. Increases the clearance and flow of airways." - color = "#FF6347" - nutriment_factor = 0 - taste_description = "bitterness" - glass_icon_state = "tea" - glass_name = "Broc Tea" - glass_desc = "A soothing herbal rememedy steeped from the Broc Flower. Increases the clearance and flow of airways." -/datum/reagent/consumable/tea/broctea/on_mob_life(mob/living/carbon/M) - M.adjustOxyLoss(-4*REAGENTS_EFFECT_MULTIPLIER, 0) - M.nutrition = max(M.nutrition - 3, 0) - M.dizziness = max(0,M.dizziness-2) - M.drowsyness = max(0,M.drowsyness-1) - M.jitteriness = max(0,M.jitteriness-3) - M.AdjustSleeping(-20, FALSE) - if(M.getToxLoss() && prob(20)) - M.adjustToxLoss(-1, 0) - M.adjust_bodytemperature(20 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL) - ..() - . = TRUE /datum/reagent/consumable/tea/coyotetea name = "Coyote Tea" @@ -97,34 +76,6 @@ ..() . = TRUE -/datum/reagent/consumable/tea/coyotetea - name = "Coyote Tea" - description = "A smokey herbal rememedy steeped from coyote tobacco stems. Natural caffeines keep the drinker alert and awake while numbing the senses." - color = "#008000" - nutriment_factor = 0 - taste_description = "smoke" - glass_icon_state = "chocolateglass" - glass_name = "Coyote Tea" - glass_desc = "A smokey herbal rememedy steeped from coyote tobacco stems. Natural caffeines keep the drinker alert and awake while numbing the senses." - -/datum/reagent/consumable/tea/coyotetea/on_mob_life(mob/living/carbon/M) - if(prob(10)) - var/smoke_message = pick("You feel relaxed.", "You feel calmed.","You feel alert.","You feel rugged.") - to_chat(M, "[smoke_message]") - M.AdjustStun(-40, 0) - M.AdjustKnockdown(-40, 0) - M.AdjustUnconscious(-40, 0) - M.adjustStaminaLoss(-1*REAGENTS_EFFECT_MULTIPLIER, 0) - M.dizziness = max(0,M.dizziness-2) - M.drowsyness = max(0,M.drowsyness-1) - M.jitteriness = max(0,M.jitteriness-3) - M.AdjustSleeping(-20, FALSE) - if(M.getToxLoss() && prob(20)) - M.adjustToxLoss(-1, 0) - M.adjust_bodytemperature(20 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL) - ..() - . = TRUE - /datum/reagent/consumable/tea/feratea name = "Barrel Tea" description = "A sour and dry rememedy steeped from barrel cactus fruit. Detoxifies the user through natural filteration and dehydration." @@ -158,13 +109,13 @@ /datum/reagent/consumable/tea/pricklytea name = "Prickly Tea" - description = "A sweet and fruitfel rememedy steeped from barrel cactus fruit. Keeps you on edge." + description = "A sweet and fruity rememedy steeped from prickly pear fruit. Keeps you on edge." color = "#FF6347" nutriment_factor = 0 taste_description = "sweetness" glass_icon_state = "cafe_latte" glass_name = "Prickly Tea" - glass_desc = "A sour and dry rememedy steeped from barrel cactus fruit. Keeps you on edge." + glass_desc = "A sweet and fruity rememedy steeped from prickly pear fruit. Keeps you on edge." /datum/reagent/consumable/tea/pricklytea/on_mob_life(mob/living/carbon/M) if(prob(33)) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index b1d3170df2..8db85a0171 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -31,7 +31,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( if(!hallucination) return - hallucination-- + hallucination = max(hallucination-1, 0) if(world.time < next_hallucination) return diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index 6a92e2385d..ec6a5e12f0 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -139,7 +139,7 @@ icon = 'icons/obj/f13vending.dmi' icon_state = "nukacola" list_reagents = list(/datum/reagent/consumable/nuka_cola = 25, /datum/reagent/radium = 5) - foodtype = SUGAR + foodtype = NUKA isGlass = TRUE /obj/item/reagent_containers/food/drinks/bottle/f13nukacola/radioactive @@ -152,7 +152,6 @@ icon = 'icons/obj/f13vending.dmi' icon_state = "sunset" list_reagents = list(/datum/reagent/consumable/ethanol/whiskey = 1, /datum/reagent/consumable/sunset = 15, /datum/reagent/medicine/salglu_solution = 5) - foodtype = SUGAR isGlass = TRUE @@ -693,6 +692,7 @@ desc = "You've really hit rock bottom now... yet theres nothing like homebrew nukashine in times like these!" icon_state = "nukashine" list_reagents = list(/datum/reagent/consumable/ethanol/nukashine = 100) + foodtype = NUKA // Empty bottles diff --git a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm index 8e5069925f..b73aba113e 100644 --- a/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm +++ b/code/modules/food_and_drinks/drinks/drinks/drinkingglass.dm @@ -92,6 +92,12 @@ /obj/item/reagent_containers/food/drinks/drinkingglass/filled/nuka_cola name = "Nuka Cola" list_reagents = list(/datum/reagent/consumable/nuka_cola = 50) + foodtype = NUKA + +obj/item/reagent_containers/food/drinks/drinkingglass/filled/nuka_float + name = "Nuka Float" + list_reagents = list(/datum/reagent/consumable/nukafloat = 50) + foodtype = NUKA /obj/item/reagent_containers/food/drinks/drinkingglass/filled/syndicatebomb name = "Syndicate Bomb" diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm index 1d134d61ce..e6b0aabcb4 100644 --- a/code/modules/food_and_drinks/food/condiment.dm +++ b/code/modules/food_and_drinks/food/condiment.dm @@ -341,3 +341,10 @@ /obj/item/reagent_containers/food/condiment/pack/soup name = "soup bouillon pack" list_reagents = list(/datum/reagent/consumable/dry_ramen = 10) + +/obj/item/reagent_containers/food/condiment/bbqsauce + name = "barbecue sauce" + desc = "Ahm I gehtin ah moar.. Sweet tangy, Byte?" + icon_state = "bbqsauce" + list_reagents = list(/datum/reagent/consumable/bbqsauce = 50) + possible_states = list() diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index ed6d0d83ec..a29dc54fb0 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -151,10 +151,13 @@ to_chat(user, "You need more cleaning agent!") return TRUE - if(istype(O, /obj/item/soap)) - var/obj/item/soap/P = O + if(istype(O, /obj/item/soap) || istype(O, /obj/item/reagent_containers/rag)) + var/cleanspeed = 50 + if(istype(O, /obj/item/soap)) + var/obj/item/soap/used_soap = O + cleanspeed = used_soap.cleanspeed user.visible_message("[user] starts to clean \the [src].", "You start to clean \the [src]...") - if(do_after(user, P.cleanspeed, target = src)) + if(do_after(user, cleanspeed, target = src)) user.visible_message("[user] has cleaned \the [src].", "You clean \the [src].") dirty = 0 update_icon() diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index 0dcf9a588f..33a1add9cc 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -823,7 +823,8 @@ /obj/item/reagent_containers/food/condiment/yeast = 1, /obj/item/reagent_containers/food/condiment/saltshaker = 1, /obj/item/reagent_containers/food/condiment/peppermill = 1, - /obj/item/reagent_containers/food/condiment/soysauce = 1) + /obj/item/reagent_containers/food/condiment/soysauce = 1, + /obj/item/reagent_containers/food/condiment/bbqsauce = 1) /obj/machinery/smartfridge/bottlerack/lootshelf/books desc = "A rusted pre-war shelf, this one has a faded label about magazines. " diff --git a/code/modules/food_and_drinks/recipes/drinks_recipes.dm b/code/modules/food_and_drinks/recipes/drinks_recipes.dm index 7ccd501f2e..d5c1c95dbf 100644 --- a/code/modules/food_and_drinks/recipes/drinks_recipes.dm +++ b/code/modules/food_and_drinks/recipes/drinks_recipes.dm @@ -860,7 +860,7 @@ results = list(/datum/reagent/consumable/ethanol/commander_and_chief = 50) required_reagents = list(/datum/reagent/consumable/ethanol/alliescocktail = 50, /datum/reagent/consumable/ethanol/champagne = 20, /datum/reagent/consumable/doctor_delight = 10, /datum/reagent/consumable/ethanol/quintuple_sec = 10, /datum/reagent/consumable/ethanol/screwdrivercocktail = 10) mix_message = "When your powers combine, I am Captain Pl-..." - + /datum/chemical_reaction/cherryshake name = "Cherry Shake" id = /datum/reagent/consumable/cherryshake @@ -949,7 +949,7 @@ name = "Cold Scales" id = /datum/reagent/consumable/ethanol/species_drink/coldscales results = list(/datum/reagent/consumable/ethanol/species_drink/coldscales = 3) - required_reagents = list(/datum/reagent/consumable/tea = 1, /datum/reagent/toxin/slimejelly = 1, /datum/reagent/consumable/menthol = 1) + required_reagents = list(/datum/reagent/consumable/tea = 1, /datum/reagent/celugel = 1, /datum/reagent/consumable/menthol = 1) /datum/chemical_reaction/oil_drum name = "Oil Drum" @@ -1010,7 +1010,7 @@ name = "Jell Wyrm" id = /datum/reagent/consumable/ethanol/species_drink/jell_wyrm results = list(/datum/reagent/consumable/ethanol/species_drink/jell_wyrm = 2) - required_reagents = list(/datum/reagent/toxin/slimejelly = 1, /datum/reagent/toxin/carpotoxin = 1, /datum/reagent/carbondioxide = 5) + required_reagents = list(/datum/reagent/celugel = 1, /datum/reagent/toxin/carpotoxin = 1, /datum/reagent/carbondioxide = 5) required_temp = 333 // (59.85'C) /datum/chemical_reaction/laval_spit @@ -1019,7 +1019,7 @@ results = list(/datum/reagent/consumable/ethanol/species_drink/laval_spit = 20) //Limited use required_reagents = list(/datum/reagent/iron = 5, /datum/reagent/consumable/ethanol/mauna_loa = 10, /datum/reagent/sulfur = 5) required_temp = 900 // (626.85'C) - + ///nuka variants /datum/chemical_reaction/nukafloat @@ -1039,7 +1039,7 @@ id = /datum/reagent/consumable/ethanol/nukashine results = list(/datum/reagent/consumable/ethanol/nukashine = 2) required_reagents = list(/datum/reagent/consumable/nuka_cola = 1, /datum/reagent/consumable/ethanol/beer = 1) - + /datum/chemical_reaction/rotgut name = "Rotgut" id = /datum/reagent/consumable/ethanol/rotgut @@ -1051,25 +1051,25 @@ id = /datum/reagent/consumable/ethanol/nukavictory results = list(/datum/reagent/consumable/ethanol/nukavictory = 2) required_reagents = list(/datum/reagent/consumable/nuka_cola = 1, /datum/reagent/consumable/ethanol/thirteenloko = 1) - + /datum/chemical_reaction/nukaquartz name = "Nuka Quartz" id = /datum/reagent/consumable/nukaquartz results = list(/datum/reagent/consumable/nukaquartz = 3) required_reagents = list(/datum/reagent/consumable/nuka_cola = 1, /datum/reagent/silicon = 1, /datum/reagent/consumable/sugar = 1) - + /datum/chemical_reaction/nukacherry name = "Nuka Cherry" id = /datum/reagent/consumable/nukacherry results = list(/datum/reagent/consumable/nukacherry = 4) required_reagents = list(/datum/reagent/consumable/nuka_cola = 3, /datum/reagent/consumable/cherryjelly = 1) - + /datum/chemical_reaction/nukalove name = "Nuka Love" id = /datum/reagent/consumable/ethanol/nukalove results = list(/datum/reagent/consumable/ethanol/nukalove = 2) required_reagents = list(/datum/reagent/consumable/nukacherry = 1, /datum/reagent/consumable/nukaquartz = 1) - + /datum/chemical_reaction/nukaquantum name = "Nuka Quantum" id = /datum/reagent/consumable/ethanol/nukaquantum @@ -1386,3 +1386,44 @@ results = list(/datum/reagent/consumable/yuccashake = 3) required_reagents = list(/datum/reagent/consumable/yuccajuice = 1, /datum/reagent/consumable/milk = 1, /datum/reagent/consumable/cream = 1) +/datum/chemical_reaction/broctea + name = "Broc Tea" + id = "broctea" + results = list(/datum/reagent/consumable/tea/broctea = 3) + required_reagents = list(/datum/reagent/consumable/brocjuice = 1, /datum/reagent/water = 2) + required_temp = 315 + +/datum/chemical_reaction/xandertea + name = "Xander Tea" + id = "xandertea" + results = list(/datum/reagent/consumable/tea/xandertea = 3) + required_reagents = list(/datum/reagent/consumable/xanderjuice = 1, /datum/reagent/water = 2) + required_temp = 315 + +/datum/chemical_reaction/agavetea + name = "Agave Tea" + id = "agavetea" + results = list(/datum/reagent/consumable/tea/agavetea = 3) + required_reagents = list(/datum/reagent/consumable/agavejuice = 1, /datum/reagent/water = 2) + required_temp = 315 + +/datum/chemical_reaction/feratea + name = "Barrel Tea" + id = "feratea" + results = list(/datum/reagent/consumable/tea/feratea = 3) + required_reagents = list(/datum/reagent/consumable/ferajuice = 1, /datum/reagent/water = 2) + required_temp = 315 + +/datum/chemical_reaction/daturatea + name = "Datura Tea" + id = "daturatea" + results = list(/datum/reagent/consumable/ethanol/daturatea = 3) + required_reagents = list(/datum/reagent/consumable/daturajuice = 1, /datum/reagent/water = 2) + required_temp = 315 + +/datum/chemical_reaction/coyotetea + name = "Coyote Tea" + id = "coyotetea" + results = list(/datum/reagent/consumable/tea/coyotetea = 3) + required_reagents = list(/datum/reagent/consumable/coyotejuice = 1, /datum/reagent/water = 2) + required_temp = 315 diff --git a/code/modules/hydroponics/grown/agave.dm b/code/modules/hydroponics/grown/agave.dm index 8f7630de92..1b49545d69 100644 --- a/code/modules/hydroponics/grown/agave.dm +++ b/code/modules/hydroponics/grown/agave.dm @@ -1,11 +1,10 @@ - /obj/item/seeds/agave name = "pack of agave seeds" desc = "These seeds grow into an agave plant." icon = 'icons/obj/hydroponics/seeds.dmi' icon_state = "seed-agave" species = "agave" - plantname = "agave plant" + plantname = "Agave plant" product = /obj/item/reagent_containers/food/snacks/grown/agave lifespan = 60 endurance = 10 @@ -17,7 +16,7 @@ icon_grow = "agave-grow" icon_dead = "agave-dead" icon_harvest = "agave-harvest" - reagents_add = list(/datum/reagent/medicine/kelotane = 0.05, /datum/reagent/toxin/lipolicide = 0.05, /datum/reagent/nitrogen = 0.05, /datum/reagent/oxygen = 0.05) + reagents_add = list(/datum/reagent/medicine/kelotane = 0.1, /datum/reagent/toxin/lipolicide = 0.1 ) /obj/item/reagent_containers/food/snacks/grown/agave @@ -26,5 +25,5 @@ desc = "A strange kind of fleshy grass often used as a primitive burn medication that rapidly depletes stored nutrients in the body." icon_state = "Agave Leaf" icon = 'icons/obj/flora/wastelandflora.dmi' - juice_results = list(/datum/reagent/agavetea = 0) + juice_results = list(/datum/reagent/consumable/agavejuice = 0) distill_reagent = /datum/reagent/consumable/ethanol/tequila diff --git a/code/modules/hydroponics/grown/broc.dm b/code/modules/hydroponics/grown/broc.dm index dc78440a15..c00c580f66 100644 --- a/code/modules/hydroponics/grown/broc.dm +++ b/code/modules/hydroponics/grown/broc.dm @@ -3,7 +3,7 @@ desc = "These seeds grow into broc flowers." icon_state = "seed-broc" species = "broc" - plantname = "broc flowers" + plantname = "Broc Flowers" product = /obj/item/reagent_containers/food/snacks/grown/broc lifespan = 25 endurance = 10 @@ -12,22 +12,17 @@ production = 4 maturation = 4 growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi' - //mutatelist = list(/obj/item/seeds/geraniumseed, /obj/item/seeds/lilyseed) + icon_harvest = "broc-harvest" + icon_grow = "broc-grow" + icon_dead = "broc-dead" + mutatelist = list(/obj/item/seeds/poppy/lily) //spaceman's trumpet + reagents_add = list(/datum/reagent/medicine/dexalin = 0.2, /datum/reagent/medicine/salglu_solution = 0.05, /datum/reagent/consumable/nutriment = 0.1, /datum/reagent/medicine/bicaridine = 0.1,) /obj/item/reagent_containers/food/snacks/grown/broc seed = /obj/item/seeds/poppy/broc name = "broc flower" desc = "This vibrant, orange flower grows on tall stalks in the wasteland and exhibits moderate healing properties, even when unprocessed." icon_state = "broc" - //slot_flags = SLOT_HEAD filling_color = "#FF6347" - juice_results = list(/datum/reagent/broctea = 0) + juice_results = list(/datum/reagent/consumable/brocjuice = 0) distill_reagent = /datum/reagent/consumable/ethanol/brocbrew - - -/obj/item/reagent_containers/food/snacks/grown/broc/add_juice() - if(..()) - reagents.add_reagent(/datum/reagent/dexalin, 1 + round((seed.potency / 5), 1)) - reagents.add_reagent(/datum/reagent/medicine/salglu_solution, 1 + round((seed.potency / 20), 1)) - reagents.add_reagent(/datum/reagent/consumable/brocjuice, 1 + round((seed.potency / 5), 1)) - bitesize = 1 + round(reagents.total_volume / 3, 1) diff --git a/code/modules/hydroponics/grown/buffalogourd.dm b/code/modules/hydroponics/grown/buffalogourd.dm index 2eb1ae0566..1289bba5ec 100644 --- a/code/modules/hydroponics/grown/buffalogourd.dm +++ b/code/modules/hydroponics/grown/buffalogourd.dm @@ -1,15 +1,20 @@ +/obj/item/reagent_containers/food/snacks/roastseeds/buffalogourd + name = "roasted gourd seeds" + desc = "Well prepared crispy buffalo gourd seeds, full of chewy protein." + list_reagents = list(/datum/reagent/consumable/cooking_oil = 1, /datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 1.5) + /obj/item/seeds/buffalogourd name = "pack of buffalo gourd seeds" - desc = "These seeds grow into buffalo vines." + desc = "These seeds grow into buffalo vines.
they appear to be edible once cooked!" icon_state = "seed-gourd" species = "buffalo gourd" - plantname = "buffalo vines" + plantname = "Buffalo Vines" product = /obj/item/reagent_containers/food/snacks/grown/buffalogourd growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' icon_grow = "gourd-grow" icon_dead = "gourd-dead" - icon_harvest = "tato-harvest" - reagents_add = list(/datum/reagent/water = 0.2, /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.2) + icon_harvest = "gourd-harvest" + reagents_add = list(/datum/reagent/water = 0.2, /datum/reagent/toxin = 0.1) lifespan = 50 endurance = 40 maturation = 10 @@ -17,13 +22,23 @@ yield = 3 growthstages = 3 +/obj/item/seeds/buffalogourd/microwave_act(obj/machinery/microwave/MW) //The act allows it to be cooked over a bonfire grille too. + ..() + new /obj/item/reagent_containers/food/snacks/roastseeds/buffalogourd(drop_location()) + qdel(src) + +/obj/item/reagent_containers/food/snacks/roastseeds/buffalogourd + name = "roasted gourd seeds" + desc = "Well prepared crispy buffalo gourd seeds, full of chewy protein." + list_reagents = list(/datum/reagent/consumable/cooking_oil = 1, /datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/nutriment/vitamin = 1.5) + /obj/item/reagent_containers/food/snacks/grown/buffalogourd seed = /obj/item/seeds/buffalogourd name = "buffalo gourd" - desc = "It's full of watery goodness." - icon_state = "Buffalo Gourd" - w_class = WEIGHT_CLASS_NORMAL + desc = "A bitter tasting vine plant, with a watery fleshy texture." + icon_state = "buffalo_gourd" filling_color = "#008000" bitesize_mod = 3 - foodtype = FRUIT + foodtype = FRUIT | GROSS + juice_results = list(/datum/reagent/lye= 0.5) // The oil made from the gourd plant itself is used in Native American soap. distill_reagent = /datum/reagent/consumable/ethanol/buffalo diff --git a/code/modules/hydroponics/grown/coyotetobacco.dm b/code/modules/hydroponics/grown/coyotetobacco.dm index 26d6f40a07..6ad61d1809 100644 --- a/code/modules/hydroponics/grown/coyotetobacco.dm +++ b/code/modules/hydroponics/grown/coyotetobacco.dm @@ -15,7 +15,7 @@ icon_grow = "coyote-grow" icon_dead = "coyote-dead" icon_harvest = "coyote-harvest" - reagents_add = list(/datum/reagent/drug/nicotine = 0.03, /datum/reagent/consumable/nutriment = 0.03) + reagents_add = list(/datum/reagent/drug/nicotine = 0.1, /datum/reagent/consumable/nutriment = 0.1) /obj/item/reagent_containers/food/snacks/grown/coyotetobacco seed = /obj/item/seeds/coyotetobacco @@ -23,5 +23,5 @@ desc = "This tobacco like plant is commonly used by tribals for a great variety of medicinal and ceremonial purposes." icon_state = "Coyote Tobacco" filling_color = "#008000" - juice_results = list(/datum/reagent/consumable/coyotetea = 0) + juice_results = list(/datum/reagent/consumable/coyotejuice = 0) distill_reagent = /datum/reagent/consumable/ethanol/deathroach diff --git a/code/modules/hydroponics/grown/datura.dm b/code/modules/hydroponics/grown/datura.dm index 0624e3f3cc..ae7672af79 100644 --- a/code/modules/hydroponics/grown/datura.dm +++ b/code/modules/hydroponics/grown/datura.dm @@ -6,23 +6,23 @@ plantname = "Datura" product = /obj/item/reagent_containers/food/snacks/grown/datura lifespan = 30 - maturation = 10 - production = 1 + maturation = 6 + production = 5 yield = 4 growthstages = 5 growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' icon_grow = "datura-grow" icon_dead = "datura-dead" icon_harvest = "datura-harvest" - reagents_add = list(/datum/reagent/medicine/morphine = 0.35, /datum/reagent/drug/mushroomhallucinogen = 0.12, /datum/reagent/toxin = 0.3, /datum/reagent/consumable/nutriment = 0.05) + reagents_add = list(/datum/reagent/medicine/morphine = 0.2, /datum/reagent/drug/mushroomhallucinogen = 0.1, /datum/reagent/toxin = 0.05, /datum/reagent/consumable/nutriment = 0.1) /obj/item/reagent_containers/food/snacks/grown/datura seed = /obj/item/seeds/datura - name = "datura-harvest" + name = "Datura" desc = "The sacred datura root, useful as an anesthetic for surgery and in healing salves, as well as for rites of passage rituals and ceremonies" icon_state = "Datura" filling_color = "#FFA500" bitesize_mod = 2 foodtype = VEGETABLES - juice_results = list(/datum/reagent/consumable/ethanol/daturatea = 0) + juice_results = list(/datum/reagent/consumable/daturajuice = 0) distill_reagent = /datum/reagent/consumable/ethanol/daturatea diff --git a/code/modules/hydroponics/grown/feracactus.dm b/code/modules/hydroponics/grown/feracactus.dm index 3283256d1d..d2372dc17c 100644 --- a/code/modules/hydroponics/grown/feracactus.dm +++ b/code/modules/hydroponics/grown/feracactus.dm @@ -1,3 +1,4 @@ + /obj/item/seeds/feracactus name = "pack of barrel cactus seeds" desc = "These seeds grow into a barrel cactus." @@ -7,7 +8,7 @@ icon_dead = "feracactus-dead" icon_harvest = "feracactus-harvest" species = "barrel cactus" - plantname = "barrel cactus" + plantname = "Barrel Cactus" product = /obj/item/reagent_containers/food/snacks/grown/feracactus lifespan = 60 endurance = 20 @@ -15,20 +16,14 @@ growthstages = 2 production = 5 maturation = 5 - + reagents_add = list(/datum/reagent/consumable/nutriment = 0.1, /datum/reagent/medicine/calomel = 0.1,) /obj/item/reagent_containers/food/snacks/grown/feracactus seed = /obj/item/seeds/feracactus name = "barrel cactus fruit" - desc = "Barrel cactus fruit are found on spherical barrel cacti and are both nutritious and highly toxic." + desc = "Carefully harvested spineless barrel-cactus fruit, it feels dry to the touch but appears more than edible." icon_state = "feracactus" filling_color = "#FF6347" - juice_results = list(/datum/reagent/consumable/feratea = 0) - distill_reagent = /datum/reagent/consumable/yellowpulque - -/obj/item/reagent_containers/food/snacks/grown/feracactus/add_juice() - if(..()) - reagents.add_reagent(/datum/reagent/consumable/nutriment, 3 + round((seed.potency / 20), 1)) - reagents.add_reagent(/datum/reagent/calomel, 3 + round((seed.potency / 20), 1)) - reagents.add_reagent(/datum/reagent/radium, 0 + round((seed.potency / 20), 1)) - bitesize = 3 + round(reagents.total_volume / 3, 1) + foodtype = FRUIT + juice_results = list(/datum/reagent/consumable/ferajuice = 0) + distill_reagent = /datum/reagent/consumable/ethanol/yellowpulque diff --git a/code/modules/hydroponics/grown/flowers.dm b/code/modules/hydroponics/grown/flowers.dm index 0cf76479c2..87ca33c22e 100644 --- a/code/modules/hydroponics/grown/flowers.dm +++ b/code/modules/hydroponics/grown/flowers.dm @@ -37,6 +37,10 @@ species = "lily" plantname = "Lily Plants" product = /obj/item/reagent_containers/food/snacks/grown/poppy/lily + growthstages = 3 + growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi' + icon_grow = "lily-grow" + icon_dead = "lily-dead" mutatelist = list(/obj/item/seeds/bee_balm, /obj/item/seeds/poppy/lily/trumpet) /obj/item/reagent_containers/food/snacks/grown/poppy/lily @@ -96,16 +100,45 @@ species = "geranium" plantname = "Geranium Plants" product = /obj/item/reagent_containers/food/snacks/grown/poppy/geranium - mutatelist = list() + growthstages = 3 + growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi' + icon_grow = "geranium-grow" + icon_dead = "geranium-dead" + mutatelist = list(/obj/item/seeds/poppy/geranium/forgetmenot) /obj/item/reagent_containers/food/snacks/grown/poppy/geranium seed = /obj/item/seeds/poppy/geranium name = "geranium" - desc = "A beautiful blue flower." + desc = "A cluster of small purple geranium flowers. They symbolize happiness, good health, wishes and friendship and are generally associated with positive emotions." icon_state = "geranium" filling_color = "#008B8B" tastes = list("pelts " = 1) +//Forget-Me-Not +/obj/item/seeds/poppy/geranium/forgetmenot + name = "pack of forget-me-not seeds" + desc = "These seeds grow into forget-me-nots." + icon_state = "seed-forget_me_not" + species = "forget_me_not" + plantname = "Forget-Me-Not Plants" + product = /obj/item/reagent_containers/food/snacks/grown/poppy/geranium/forgetmenot + endurance = 30 + maturation = 5 + yield = 4 + potency = 25 + icon_grow = "forget_me_not-grow" + icon_dead = "forget_me_not-dead" + mutatelist = list() + reagents_add = list(/datum/reagent/medicine/kelotane = 0.2, /datum/reagent/consumable/nutriment = 0.05) + +/obj/item/reagent_containers/food/snacks/grown/poppy/geranium/forgetmenot + seed = /obj/item/seeds/poppy/geranium/forgetmenot + name = "forget-me-not" + desc = "A clump of small blue flowers, they are primarily associated with rememberance, respect and loyalty." + icon_state = "forget_me_not" + filling_color = "#4466ff" + bitesize_mod = 2 + // Harebell /obj/item/seeds/harebell name = "pack of harebell seeds" @@ -337,3 +370,65 @@ tastes = list("wax" = 1) foodtype = SUGAR distill_reagent = /datum/reagent/consumable/ethanol/mead + +// Roses +/obj/item/seeds/rose + name = "pack of rose seeds" + desc = "These seeds grow into roses." + icon_state = "seed-rose" + species = "rose" + plantname = "Rose Bush" + product = /obj/item/grown/rose + endurance = 12 + yield = 6 + potency = 15 + instability = 20 //Roses crossbreed easily, and there's many many species of them. + growthstages = 3 + genes = list(/datum/plant_gene/trait/repeated_harvest) + growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi' + icon_grow = "rose-grow" + icon_dead = "rose-dead" + mutatelist = list(/obj/item/seeds/carbon_rose) + //Roses are commonly used as herbal medicines (diarrhodons) and for their 'rose oil'. + reagents_add = list(/datum/reagent/consumable/nutriment = 0.05) + +/obj/item/grown/rose + seed = /obj/item/seeds/rose + name = "\improper rose" + desc = "The classic fleur d'amour - flower of love. Watch for its thorns!" + icon_state = "rose" + lefthand_file = 'icons/mob/inhands/misc/food_lefthand.dmi' + righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi' + slot_flags = ITEM_SLOT_HEAD|ITEM_SLOT_MASK + +// Carbon Roses +/obj/item/seeds/carbon_rose + name = "pack of carbon rose seeds" + desc = "These seeds grow into carbon roses." + icon_state = "seed-carbonrose" + species = "carbonrose" + plantname = "Carbon Rose Flower" + product = /obj/item/grown/carbon_rose + endurance = 12 + yield = 6 + potency = 15 + instability = 3 + growthstages = 3 + growing_icon = 'icons/obj/hydroponics/growing_flowers.dmi' + icon_grow = "carbonrose-grow" + icon_dead = "carbonrose-dead" + reagents_add = list(/datum/reagent/carbon = 0.05) + rarity = 10 + +/obj/item/grown/carbon_rose + seed = /obj/item/seeds/carbon_rose + name = "carbon rose" + desc = "The all new fleur d'amour gris - the flower of love, modernized, with no harsh thorns." + icon_state = "carbonrose" + lefthand_file = 'icons/mob/inhands/weapons/plants_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/plants_righthand.dmi' + force = 0 + throwforce = 0 + slot_flags = ITEM_SLOT_HEAD + throw_speed = 1 + throw_range = 3 diff --git a/code/modules/hydroponics/grown/horsenettle.dm b/code/modules/hydroponics/grown/horsenettle.dm index 7c70ee704a..499aba1ef3 100644 --- a/code/modules/hydroponics/grown/horsenettle.dm +++ b/code/modules/hydroponics/grown/horsenettle.dm @@ -14,7 +14,7 @@ icon_dead = "horsenettle-dead" icon_harvest = "horsenettle-harvest" genes = list(/datum/plant_gene/trait/plant_type/weed_hardy) - reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) + reagents_add = list( /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) /obj/item/reagent_containers/food/snacks/grown/horsenettle seed = /obj/item/seeds/horsenettle diff --git a/code/modules/hydroponics/grown/mesquite.dm b/code/modules/hydroponics/grown/mesquite.dm index a26c1d0d6e..8afe1ea4fb 100644 --- a/code/modules/hydroponics/grown/mesquite.dm +++ b/code/modules/hydroponics/grown/mesquite.dm @@ -1,14 +1,14 @@ /obj/item/seeds/mesquite name = "pack of honey mesquite seeds" - desc = "This mycelium grows into tower-cap mushrooms." + desc = "These seeds grows into a mesquite plant." icon_state = "mycelium-tower" species = "honey mesquite" - plantname = "honey mesquite" + plantname = "Honey Mesquite" product = /obj/item/reagent_containers/food/snacks/grown/mesquite lifespan = 80 endurance = 50 - maturation = 15 - production = 1 + maturation = 6 + production = 5 yield = 5 potency = 50 growthstages = 4 @@ -17,6 +17,7 @@ icon_dead = "mesquite-dead" icon_harvest = "mesquite-harvest" genes = list(/datum/plant_gene/trait/repeated_harvest) + reagents_add = list(/datum/reagent/consumable/honey = 0.1, /datum/reagent/consumable/nutriment = 0.05) /obj/item/reagent_containers/food/snacks/grown/mesquite seed = /obj/item/seeds/mesquite @@ -27,6 +28,6 @@ filling_color = "#F0E68C" bitesize_mod = 2 foodtype = VEGETABLES - juice_results = list(/datum/reagent/consumable/honey = 0) + juice_results = list(/datum/reagent/consumable/honey = 0.1) tastes = list("crunchy sweetness" = 1) distill_reagent = /datum/reagent/consumable/ethanol/wastemead diff --git a/code/modules/hydroponics/grown/mutfruit.dm b/code/modules/hydroponics/grown/mutfruit.dm index f26e3e41d3..0d3a08b1a5 100644 --- a/code/modules/hydroponics/grown/mutfruit.dm +++ b/code/modules/hydroponics/grown/mutfruit.dm @@ -3,7 +3,7 @@ desc = "These seeds grow into a mutfruit sapling." icon_state = "seed-mutfruit" species = "mutfruit" - plantname = "mutfruit sapling" + plantname = "Mutfruit Sapling" growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' icon_grow = "mutfruit-grow" icon_dead = "mutfruit-dead" @@ -14,6 +14,7 @@ growthstages = 3 production = 5 maturation = 5 + reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.05, /datum/reagent/consumable/nutriment = 0.1, /datum/reagent/radium = 0.15) /obj/item/reagent_containers/food/snacks/grown/mutfruit seed = /obj/item/seeds/mutfruit @@ -21,13 +22,5 @@ desc = "Mutfruit provides both hydration and sustenance, but the mutated plant also carries small amounts of radiation." icon_state = "mutfruit" filling_color = "#FF6347" - distill_reagent = /datum/reagent/consumable/purplecider + distill_reagent = /datum/reagent/consumable/ethanol/purplecider juice_results = list(/datum/reagent/consumable/mutjuice = 0) - -/obj/item/reagent_containers/food/snacks/grown/mutfruit/add_juice() - if(..()) - reagents.add_reagent(/datum/reagent/consumable/nutriment, 3 + round((seed.potency / 20), 1)) - reagents.add_reagent(/datum/reagent/radium, 1 + round((seed.potency / 20), 1)) - bitesize = 1 + round(reagents.total_volume / 3, 1) - -/*HRP*/ diff --git a/code/modules/hydroponics/grown/pinyon.dm b/code/modules/hydroponics/grown/pinyon.dm index 6b181a0a85..3ed8c2d57e 100644 --- a/code/modules/hydroponics/grown/pinyon.dm +++ b/code/modules/hydroponics/grown/pinyon.dm @@ -7,8 +7,8 @@ product = /obj/item/reagent_containers/food/snacks/grown/pinyon lifespan = 80 endurance = 50 - maturation = 15 - production = 1 + maturation = 9 + production = 6 yield = 5 potency = 50 growthstages = 4 @@ -17,7 +17,7 @@ icon_dead = "pinyon-dead" icon_harvest = "pinyon-harvest" genes = list(/datum/plant_gene/trait/repeated_harvest) - reagents_add = list(/datum/reagent/consumable/nutriment = 0.04) + reagents_add = list( /datum/reagent/consumable/nutriment = 0.05) /obj/item/reagent_containers/food/snacks/grown/pinyon seed = /obj/item/seeds/pinyon diff --git a/code/modules/hydroponics/grown/prickly.dm b/code/modules/hydroponics/grown/prickly.dm index 53d17f3c46..542dbd6ff4 100644 --- a/code/modules/hydroponics/grown/prickly.dm +++ b/code/modules/hydroponics/grown/prickly.dm @@ -7,10 +7,10 @@ icon_dead = "prickly-dead" icon_harvest = "prickly-harvest" species = "prickly pear" - plantname = "prickly pear" + plantname = "Prickly pear cactus" genes = list(/datum/plant_gene/trait/repeated_harvest) product = /obj/item/reagent_containers/food/snacks/grown/pricklypear - reagents_add = list(/datum/reagent/nutriment/vitamin = 0.02, /datum/reagent/consumable/nutriment = 0.2, /datum/reagent/water = 0.04) + reagents_add = list(/datum/reagent/consumable/nutriment = 0.2, /datum/reagent/water = 0.1, /datum/reagent/consumable/nutriment/vitamin = 0.05) lifespan = 60 endurance = 20 yield = 2 @@ -26,7 +26,7 @@ filling_color = "#FF6347" foodtype = FRUIT bitesize_mod = 2 - juice_results = list(/datum/reagent/pricklytea = 0) + juice_results = list(/datum/reagent/consumable/tea/pricklytea = 0) tastes = list("sweet cactus" = 1) distill_reagent = /datum/reagent/consumable/ethanol/pinkpulque @@ -37,8 +37,6 @@ var/mob/living/carbon/C = user if(C.gloves) return FALSE - if(C.has_trait(TRAIT_PIERCEIMMUNE)) - return FALSE var/hit_zone = (C.held_index_to_dir(C.active_hand_index) == "l" ? "l_":"r_") + "arm" var/obj/item/bodypart/affecting = C.get_bodypart(hit_zone) if(affecting) diff --git a/code/modules/hydroponics/grown/pumpkin.dm b/code/modules/hydroponics/grown/pumpkin.dm index 4c2d707da5..9dc24cfb74 100644 --- a/code/modules/hydroponics/grown/pumpkin.dm +++ b/code/modules/hydroponics/grown/pumpkin.dm @@ -73,3 +73,13 @@ foodtype = FRUIT juice_results = list(/datum/reagent/consumable/blumpkinjuice = 0) wine_power = 50 + +/obj/item/reagent_containers/food/snacks/grown/blumpkin/attackby(obj/item/W as obj, mob/user as mob, params) + if(W.get_sharpness()) + user.show_message("You carve a face into [src]!", MSG_VISUAL) + new /obj/item/clothing/head/hardhat/pumpkinhead/blumpkin(user.loc) + qdel(src) + return + else + return ..() + diff --git a/code/modules/hydroponics/grown/punga.dm b/code/modules/hydroponics/grown/punga.dm index 314e2ca660..badc996503 100644 --- a/code/modules/hydroponics/grown/punga.dm +++ b/code/modules/hydroponics/grown/punga.dm @@ -3,12 +3,12 @@ desc = "These small black pits grow into a punga bush" icon_state = "seed-punga" species = "punga" - plantname = "punga bush" + plantname = "Punga Bush" product = /obj/item/reagent_containers/food/snacks/grown/pungafruit lifespan = 100 endurance = 30 - maturation = 15 - production = 1 + maturation = 10 + production = 5 yield = 3 potency = 30 growthstages = 4 @@ -18,18 +18,12 @@ icon_dead = "punga-dead" icon_harvest = "punga-harvest" genes = list(/datum/plant_gene/trait/plant_type/fungal_metabolism, /datum/plant_gene/trait/repeated_harvest) - reagents_add = list(/datum/reagent/medicine/charcoal = 0.1, /datum/reagent/phosphorus = 0.1, /datum/reagent/consumable/nutriment = 0.04) + reagents_add = list(/datum/reagent/medicine/charcoal = 0.1, /datum/reagent/consumable/nutriment = 0.1, /datum/reagent/medicine/radaway = 0.05) /obj/item/reagent_containers/food/snacks/grown/pungafruit seed = /obj/item/seeds/punga name = "pungafruit" - desc = "Punga fruit plants flower at a single point at the terminus of their stems, gradually developing into large, fleshy fruits with a yellow/brown, thick skin. They are common throughout Point Lookout, due to the unique conditions offered by the swamps, and the further unique function of scrubbing radiation from the system" + desc = "Punga fruit plants flower at a single point at the terminus of their stems, gradually developing into large, fleshy fruits with a yellow/brown, thick skin. They are common throughout Point Lookout, due to the unique conditions offered by the swamps, and scrub radiation when ingested." icon_state = "Punga Fruit" filling_color = "#FF6347" - distill_reagent = /datum/reagent/consumable/ethanol/pungajuice - -/obj/item/reagent_containers/food/snacks/grown/pungafruit/add_juice() - if(..()) - reagents.add_reagent(/datum/reagent/medicine/charcoal, 1 + round((seed.potency / 20), 1)) - reagents.add_reagent(/datum/reagent/medicine/mutadone, 1 + round((seed.potency / 20), 1)) - bitesize = 1 + round(reagents.total_volume / 3, 1) + juice_results = list(/datum/reagent/consumable/ethanol/pungajuice = 0) diff --git a/code/modules/hydroponics/grown/tato.dm b/code/modules/hydroponics/grown/tato.dm index e7a5f9de21..14aaf05196 100644 --- a/code/modules/hydroponics/grown/tato.dm +++ b/code/modules/hydroponics/grown/tato.dm @@ -6,8 +6,8 @@ plantname = "Tato Plants" product = /obj/item/reagent_containers/food/snacks/grown/tato lifespan = 30 - maturation = 10 - production = 1 + maturation = 7 + production = 3 yield = 4 growthstages = 4 growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' @@ -15,7 +15,7 @@ icon_dead = "tato-dead" icon_harvest = "tato-harvest" genes = list(/datum/plant_gene/trait/battery, /datum/plant_gene/trait/repeated_harvest) - reagents_add = list(/datum/reagent/consumable/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) + reagents_add = list( /datum/reagent/consumable/nutriment/vitamin = 0.04, /datum/reagent/consumable/nutriment = 0.1) /obj/item/reagent_containers/food/snacks/grown/tato seed = /obj/item/seeds/tato @@ -25,7 +25,7 @@ filling_color = "#E9967A" bitesize = 100 foodtype = VEGETABLES - juice_results = list(/datum/reagent/tato = 0) + juice_results = list(/datum/reagent/consumable/tato_juice = 0) distill_reagent = /datum/reagent/consumable/ethanol/tatovodka /obj/item/reagent_containers/food/snacks/grown/tato/wedges diff --git a/code/modules/hydroponics/grown/xander.dm b/code/modules/hydroponics/grown/xander.dm index 8c5370b5ba..e4cbe8cb3d 100644 --- a/code/modules/hydroponics/grown/xander.dm +++ b/code/modules/hydroponics/grown/xander.dm @@ -3,17 +3,19 @@ desc = "These seeds grow into xander roots." icon_state = "seed-xander" species = "xander" - plantname = "xander roots" + plantname = "Xander Roots" product = /obj/item/reagent_containers/food/snacks/grown/xander lifespan = 25 endurance = 10 yield = 3 growthstages = 4 - production = 2 - maturation = 2 + production = 4 + maturation = 4 growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' - icon_grow = "potato-grow" - icon_dead = "potato-dead" + icon_grow = "xander-grow" + icon_harvest = "xander-harvest" + icon_dead = "xander-dead" + reagents_add = list(/datum/reagent/medicine/antitoxin = 0.2, /datum/reagent/medicine/salglu_solution = 0.05, /datum/reagent/consumable/nutriment = 0.1) /obj/item/reagent_containers/food/snacks/grown/xander seed = /obj/item/seeds/xander @@ -21,14 +23,5 @@ desc = "Xander roots are large, hardy, turnip-like roots with mild healing properties." icon_state = "xander" filling_color = "#FF6347" - juice_results = list(/datum/reagent/xandertea = 0) + juice_results = list(/datum/reagent/consumable/xanderjuice = 0) distill_reagent = /datum/reagent/consumable/ethanol/salgam - -/obj/item/reagent_containers/food/snacks/grown/xander/add_juice() - if(..()) - reagents.add_reagent(/datum/reagent/medicine/antitoxin, 1 + round((seed.potency / 5), 1)) - reagents.add_reagent(/datum/reagent/consumable/xanderjuice, 1 + round((seed.potency/5), 1)) - reagents.add_reagent(/datum/reagent/medicine/salglu, 1 + round((seed.potency / 20), 1)) - bitesize = 1 + round(reagents.total_volume / 3, 1) - -/*HRP*/ diff --git a/code/modules/hydroponics/grown/yucca.dm b/code/modules/hydroponics/grown/yucca.dm index 4a1163c84f..03063fa983 100644 --- a/code/modules/hydroponics/grown/yucca.dm +++ b/code/modules/hydroponics/grown/yucca.dm @@ -1,31 +1,31 @@ /obj/item/seeds/yucca name = "pack of banana yucca seeds" - desc = "These seeds grow into an agave plant." + desc = "These seeds grow into a yucca plant." icon = 'icons/obj/hydroponics/seeds.dmi' icon_state = "seed-yucca" species = "banna yucca" - plantname = "banana yucca plant" + plantname = "Banana Yucca plant" product = /obj/item/reagent_containers/food/snacks/grown/yucca lifespan = 50 endurance = 30 yield = 5 growthstages = 4 - production = 2 - maturation = 1 + maturation = 5 + production = 4 growing_icon = 'icons/obj/hydroponics/growing_vegetables.dmi' icon_grow = "yucca-grow" icon_dead = "yucca-dead" icon_harvest = "yucca-harvest" genes = list(/datum/plant_gene/trait/repeated_harvest) - reagents_add = list(/datum/reagent/consumable/nutriment/vitamin = 0.2, /datum/reagent/consumable/sugar = 0.1, /datum/reagent/consumable/nutriment = 0.2) + reagents_add = list( /datum/reagent/consumable/nutriment = 0.2, /datum/reagent/consumable/sugar = 0.1, /datum/reagent/consumable/nutriment/vitamin = 0.2) /obj/item/reagent_containers/food/snacks/grown/yucca seed = /obj/item/seeds/yucca name = "banana yucca fruit" - desc = "The fleshy banana banana like fruit, rougly 8 cm long and 6 cm across. It smells tastes similar to a sweet potato." + desc = "The fleshy banana like fruit, rougly 8 cm long and 6 cm across. It tastes similar to a sweet potato." icon_state = "Bannana Yucca" icon = 'icons/obj/hydroponics/harvest.dmi' bitesize = 3 - juice_results = list(/datum/reagent/yuccajuice = 0) + juice_results = list(/datum/reagent/consumable/yuccajuice = 0) distill_reagent = /datum/reagent/consumable/yuccajuice diff --git a/code/modules/jobs/job_types/bos.dm b/code/modules/jobs/job_types/bos.dm index 27122e1748..7d99f44053 100644 --- a/code/modules/jobs/job_types/bos.dm +++ b/code/modules/jobs/job_types/bos.dm @@ -25,7 +25,7 @@ Main doors: ACCESS_CAPTAIN 20 shoes = /obj/item/clothing/shoes/combat/swat gloves = /obj/item/clothing/gloves/combat id = /obj/item/card/id/dogtag - box = /obj/item/storage/survivalkit_adv + box = /obj/item/storage/survivalkit/adv /datum/outfit/job/bos/pre_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() @@ -44,7 +44,6 @@ Main doors: ACCESS_CAPTAIN 20 H.mind.teach_crafting_recipe(/datum/crafting_recipe/boscombathelmetmk2) H.mind.teach_crafting_recipe(/datum/crafting_recipe/set_vrboard/bos) H.mind.teach_crafting_recipe(/datum/crafting_recipe/gate_bos) - /* Elder */ @@ -111,7 +110,8 @@ Head Paladin /datum/outfit/loadout/sentvet, //xl70e3 /datum/outfit/loadout/sentheavy, //Gauss + Glock /datum/outfit/loadout/sentgat, // Gatling - /datum/outfit/loadout/sentmini // Minigun + /datum/outfit/loadout/sentmini, // Minigun + /datum/outfit/loadout/senttactical //G11, ammo choice box ) outfit = /datum/outfit/job/bos/f13sentinel @@ -151,6 +151,7 @@ Head Paladin neck = /obj/item/storage/belt/holster backpack_contents = list( /obj/item/melee/onehanded/knife/hunting = 1, + /obj/item/melee/unarmed/powerfist = 1, /obj/item/gun/ballistic/automatic/pistol/n99/crusader = 1, /obj/item/ammo_box/magazine/m10mm_adv/simple = 2, /obj/item/reagent_containers/hypospray/medipen/stimpak = 3, @@ -193,6 +194,15 @@ Head Paladin /obj/item/stock_parts/cell/ammo/ec=2, ) +/datum/outfit/loadout/senttactical + name = "Tactical Head Paladin" + backpack_contents = list( + /obj/item/gun/ballistic/automatic/g11 = 1, + /obj/item/ammo_box/magazine/m473 = 2, + /obj/item/ammo_box/magazine/m473/empty = 1, + /obj/item/choice_beacon/box/g11ammo = 1, + ) + /* Head Scribe @@ -304,6 +314,7 @@ Head Knight H.mind.teach_crafting_recipe(/datum/crafting_recipe/dks) H.mind.teach_crafting_recipe(/datum/crafting_recipe/R93) H.mind.teach_crafting_recipe(/datum/crafting_recipe/rcw) + H.mind.teach_crafting_recipe(/datum/crafting_recipe/plasmasniper) /datum/outfit/job/bos/f13knightcap @@ -373,13 +384,14 @@ Star Paladin loadout_options = list( /datum/outfit/loadout/spaladina, //R91 Assault Rifle /datum/outfit/loadout/spaladinb, //AER12 - /datum/outfit/loadout/spaladinc //Minigun + /datum/outfit/loadout/spaladinc, //Minigun + /datum/outfit/loadout/spaladintactical //WT-550, ammo choice box ) outfit = /datum/outfit/job/bos/f13seniorpaladin - access = list(ACCESS_ROBOTICS, ACCESS_BOS, ACCESS_ENGINE_EQUIP, ACCESS_ENGINE, ACCESS_HYDROPONICS, ACCESS_KITCHEN, ACCESS_BAR, ACCESS_SEC_DOORS) - minimal_access = list(ACCESS_ROBOTICS, ACCESS_BOS, ACCESS_ENGINE_EQUIP, ACCESS_ENGINE, ACCESS_HYDROPONICS, ACCESS_KITCHEN, ACCESS_BAR, ACCESS_SEC_DOORS) + access = list(ACCESS_BROTHERHOOD_COMMAND, ACCESS_ROBOTICS, ACCESS_BOS, ACCESS_ENGINE_EQUIP, ACCESS_ENGINE, ACCESS_HYDROPONICS, ACCESS_KITCHEN, ACCESS_BAR, ACCESS_SEC_DOORS) + minimal_access = list(ACCESS_BROTHERHOOD_COMMAND, ACCESS_ROBOTICS, ACCESS_BOS, ACCESS_ENGINE_EQUIP, ACCESS_ENGINE, ACCESS_HYDROPONICS, ACCESS_KITCHEN, ACCESS_BAR, ACCESS_SEC_DOORS) matchmaking_allowed = list( /datum/matchmaking_pref/friend = list( /datum/job/bos, @@ -418,21 +430,20 @@ Star Paladin backpack_contents = list( /obj/item/melee/onehanded/knife/hunting = 1, /obj/item/reagent_containers/hypospray/medipen/stimpak = 2, - /obj/item/melee/powerfist/f13 = 1, + /obj/item/melee/unarmed/powerfist = 1, /obj/item/tank/internals/oxygen = 1, ) /datum/outfit/loadout/spaladina name = "Firesupport Senior Paladin" backpack_contents = list( - /obj/item/gun/ballistic/automatic/assault_rifle = 1, - /obj/item/ammo_box/magazine/m556/rifle/assault = 3, + /obj/item/minigunpackbal5mm = 1, /obj/item/gun/energy/laser/pistol=1, /obj/item/stock_parts/cell/ammo/ec=2, ) /datum/outfit/loadout/spaladinb - name = "Mainline Senior Paladin" + name = "Frontline Senior Paladin" backpack_contents = list( /obj/item/gun/energy/laser/aer12 = 1, /obj/item/attachments/scope = 1, @@ -442,13 +453,23 @@ Star Paladin ) /datum/outfit/loadout/spaladinc - name = "Vanguard Senior Paladin" + name = "Overwatch Senior Paladin" backpack_contents = list( - /obj/item/minigunpackbal5mm = 1, + /obj/item/gun/ballistic/automatic/m72 = 1, + /obj/item/ammo_box/magazine/m2mm = 3, /obj/item/gun/energy/laser/pistol=1, /obj/item/stock_parts/cell/ammo/ec=2, ) +/datum/outfit/loadout/spaladintactical + name = "Tactical Senior Paladin" + backpack_contents = list( + /obj/item/gun/ballistic/automatic/wt550 = 1, + /obj/item/ammo_box/magazine/m473/small = 3, + /obj/item/ammo_box/magazine/m473/small/empty = 3, + /obj/item/choice_beacon/box/g11ammo = 1, + ) + /* Paladin */ @@ -598,8 +619,8 @@ Senior Scribe outfit = /datum/outfit/job/bos/f13seniorscribe - access = list(ACCESS_ROBOTICS, ACCESS_BOS, ACCESS_ENGINE_EQUIP, ACCESS_ENGINE, ACCESS_HYDROPONICS, ACCESS_KITCHEN, ACCESS_BAR, ACCESS_SEC_DOORS) - minimal_access = list(ACCESS_ROBOTICS, ACCESS_BOS, ACCESS_ENGINE_EQUIP, ACCESS_ENGINE, ACCESS_HYDROPONICS, ACCESS_KITCHEN, ACCESS_BAR, ACCESS_SEC_DOORS) + access = list(ACCESS_BROTHERHOOD_COMMAND, ACCESS_ROBOTICS, ACCESS_BOS, ACCESS_ENGINE_EQUIP, ACCESS_ENGINE, ACCESS_HYDROPONICS, ACCESS_KITCHEN, ACCESS_BAR, ACCESS_SEC_DOORS) + minimal_access = list(ACCESS_BROTHERHOOD_COMMAND, ACCESS_ROBOTICS, ACCESS_BOS, ACCESS_ENGINE_EQUIP, ACCESS_ENGINE, ACCESS_HYDROPONICS, ACCESS_KITCHEN, ACCESS_BAR, ACCESS_SEC_DOORS) matchmaking_allowed = list( /datum/matchmaking_pref/friend = list( /datum/job/bos, @@ -719,7 +740,7 @@ Scribe ) /* -Senior Knight +Senior */ /datum/job/bos/f13seniorknight @@ -743,8 +764,8 @@ Senior Knight outfit = /datum/outfit/job/bos/f13seniorknight - access = list(ACCESS_ROBOTICS, ACCESS_BOS, ACCESS_ENGINE_EQUIP, ACCESS_ENGINE, ACCESS_HYDROPONICS, ACCESS_KITCHEN, ACCESS_BAR, ACCESS_SEC_DOORS) - minimal_access = list(ACCESS_ROBOTICS, ACCESS_BOS, ACCESS_ENGINE_EQUIP, ACCESS_ENGINE, ACCESS_HYDROPONICS, ACCESS_KITCHEN, ACCESS_BAR, ACCESS_SEC_DOORS) + access = list(ACCESS_BROTHERHOOD_COMMAND, ACCESS_ROBOTICS, ACCESS_BOS, ACCESS_ENGINE_EQUIP, ACCESS_ENGINE, ACCESS_HYDROPONICS, ACCESS_KITCHEN, ACCESS_BAR, ACCESS_SEC_DOORS) + minimal_access = list(ACCESS_BROTHERHOOD_COMMAND, ACCESS_ROBOTICS, ACCESS_BOS, ACCESS_ENGINE_EQUIP, ACCESS_ENGINE, ACCESS_HYDROPONICS, ACCESS_KITCHEN, ACCESS_BAR, ACCESS_SEC_DOORS) matchmaking_allowed = list( /datum/matchmaking_pref/friend = list( /datum/job/bos, @@ -765,6 +786,8 @@ Senior Knight H.mind.teach_crafting_recipe(/datum/crafting_recipe/AEP7) H.mind.teach_crafting_recipe(/datum/crafting_recipe/dks) H.mind.teach_crafting_recipe(/datum/crafting_recipe/R93) + H.mind.teach_crafting_recipe(/datum/crafting_recipe/wattz2ke) + H.mind.teach_crafting_recipe(/datum/crafting_recipe/plasmasniper) /datum/outfit/job/bos/f13seniorknight name = "Senior Knight" @@ -820,7 +843,6 @@ Senior Knight /datum/outfit/loadout/sknightd name = "Cavalry" backpack_contents = list( - /obj/item/clothing/accessory/bos/knight=1, /obj/item/melee/powered/ripper/prewar=1, /obj/item/shield/riot/bullet_proof=1, ) @@ -876,6 +898,7 @@ Knight H.mind.teach_crafting_recipe(/datum/crafting_recipe/AER9) H.mind.teach_crafting_recipe(/datum/crafting_recipe/AEP7) H.mind.teach_crafting_recipe(/datum/crafting_recipe/dks) + H.mind.teach_crafting_recipe(/datum/crafting_recipe/plasmasniper) /datum/outfit/job/bos/f13knight name = "Knight" diff --git a/code/modules/jobs/job_types/enclave.dm b/code/modules/jobs/job_types/enclave.dm index 55dc339b77..0e74d5402b 100644 --- a/code/modules/jobs/job_types/enclave.dm +++ b/code/modules/jobs/job_types/enclave.dm @@ -11,7 +11,7 @@ /datum/outfit/job/enclave id = null ears = /obj/item/radio/headset/headset_enclave - box = /obj/item/storage/survivalkit_aid + box = /obj/item/storage/survivalkit/aid /datum/outfit/job/enclave/peacekeeper id = /obj/item/card/id/dogtag/enclave/trooper diff --git a/code/modules/jobs/job_types/followers.dm b/code/modules/jobs/job_types/followers.dm index acb26d864f..ad32042807 100644 --- a/code/modules/jobs/job_types/followers.dm +++ b/code/modules/jobs/job_types/followers.dm @@ -363,10 +363,10 @@ Follower Volunteer /datum/outfit/job/followers/f13followerguard name = "Followers Guard" jobtype = /datum/job/followers/f13followerguard - belt = /obj/item/storage/belt/military/followers + belt = /obj/item/storage/belt/military/army/military/followers id = /obj/item/card/id/silver uniform = /obj/item/clothing/under/f13/bodyguard - suit = /obj/item/clothing/suit/armor/vest + suit = /obj/item/clothing/suit/armor/vest/big head = /obj/item/clothing/head/helmet/riot/vaultsec glasses = /obj/item/clothing/glasses/sunglasses shoes = /obj/item/clothing/shoes/combat diff --git a/code/modules/jobs/job_types/legion.dm b/code/modules/jobs/job_types/legion.dm index 7742cfd2fc..a1459e9f40 100644 --- a/code/modules/jobs/job_types/legion.dm +++ b/code/modules/jobs/job_types/legion.dm @@ -58,7 +58,7 @@ Weapons Lever shotgun, Grease gun, Repeater carbines, Revolvers, simple guns al uniform = /obj/item/clothing/under/f13/legskirt shoes = /obj/item/clothing/shoes/f13/military/legion gloves = /obj/item/clothing/gloves/legion - box = /obj/item/storage/survivalkit_tribal + box = /obj/item/storage/survivalkit/tribal /datum/outfit/job/CaesarsLegion/Legionnaire/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() @@ -136,58 +136,13 @@ Weapons Lever shotgun, Grease gun, Repeater carbines, Revolvers, simple guns al suit_store = /obj/item/gun/ballistic/automatic/pistol/pistol14 r_pocket = /obj/item/storage/bag/money/small/legion l_pocket = /obj/item/flashlight/lantern - r_hand = /obj/item/melee/powerfist/f13/goliath + r_hand = /obj/item/melee/unarmed/powerfist/goliath l_hand = /obj/item/tank/internals/oxygen backpack = null satchel = null box = /obj/item/storage/box/legate -// ORATOR - -/datum/job/CaesarsLegion/Legionnaire/f13orator - title = "Legion Orator" - flag = F13ORATOR - supervisors = "Legate" - selection_color = "#ffdddd" - req_admin_notify = 1 - total_positions = 0 - spawn_positions = 0 - outfit = /datum/outfit/job/CaesarsLegion/Legionnaire/f13orator - display_order = JOB_DISPLAY_ORDER_ORATOR - access = list(ACCESS_LEGION, ACCESS_CHANGE_IDS, ACCESS_LEGION_COMMAND) - minimal_access = list(ACCESS_LEGION, ACCESS_CHANGE_IDS, ACCESS_LEGION_COMMAND) - -/datum/outfit/job/CaesarsLegion/Legionnaire/f13orator // 10mm Revolver, Spatha - name = "Orator" - jobtype = /datum/job/CaesarsLegion/Legionnaire/f13orator - neck = /obj/item/storage/belt/holster - shoes = /obj/item/clothing/shoes/f13/military/legate - suit = /obj/item/clothing/suit/armor/f13/legion/legate - head = null - id = /obj/item/card/id/dogtag/legcenturion - gloves = null - shoes = /obj/item/clothing/shoes/roman - suit_store = /obj/item/gun/ballistic/revolver/colt6520 - r_pocket = /obj/item/storage/bag/money/small/legofficers - l_pocket = /obj/item/flashlight/lantern - l_hand = /obj/item/melee/onehanded/machete/spatha - backpack_contents = list( - /obj/item/ammo_box/l10mm = 2, - /obj/item/reagent_containers/pill/patch/bitterdrink = 1, - ) - -/datum/outfit/job/CaesarsLegion/Legionnaire/f13orator/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) - ..() - if(visualsOnly) - return - ADD_TRAIT(H, TRAIT_HARD_YARDS, src) - ADD_TRAIT(H, TRAIT_LIFEGIVER, src) - ADD_TRAIT(H, TRAIT_IRONFIST, src) - ADD_TRAIT(H, TRAIT_BIG_LEAGUES, src) - if(H.mind) - var/obj/effect/proc_holder/spell/terrifying_presence/S = new /obj/effect/proc_holder/spell/terrifying_presence - H.mind.AddSpell(S) ///////////////// //// Officers /// @@ -241,7 +196,7 @@ Weapons Lever shotgun, Grease gun, Repeater carbines, Revolvers, simple guns al shoes = /obj/item/clothing/shoes/f13/military/plated r_pocket = /obj/item/restraints/handcuffs l_pocket = /obj/item/flashlight/lantern - box = /obj/item/storage/survivalkit_tribal/chief + box = /obj/item/storage/survivalkit/tribal/adv backpack_contents = list( /obj/item/restraints/legcuffs/bola = 1, /obj/item/storage/bag/money/small/legion = 1, @@ -258,6 +213,7 @@ Weapons Lever shotgun, Grease gun, Repeater carbines, Revolvers, simple guns al suit_store = /obj/item/gun/ballistic/automatic/m1919 backpack_contents = list( /obj/item/melee/onehanded/machete/spatha = 1, + /obj/item/melee/unarmed/powerfist/goliath = 1, /obj/item/ammo_box/magazine/mm762 = 1, ) @@ -336,7 +292,7 @@ commented out pending rework*/ glasses = /obj/item/clothing/glasses/sunglasses/big shoes = /obj/item/clothing/shoes/f13/military/plated r_pocket = /obj/item/flashlight/lantern - box = /obj/item/storage/survivalkit_tribal/chief + box = /obj/item/storage/survivalkit/tribal/adv backpack_contents = list( /obj/item/ammo_box/a357 = 1, /obj/item/gun/ballistic/revolver/colt357 = 1, @@ -383,6 +339,7 @@ commented out pending rework*/ loadout_options = list( /datum/outfit/loadout/decprimfront, // Grease Gun, Gladius, Smoke bomb /datum/outfit/loadout/decprimrear, // Trail carbine, 10mm Revolver, Gladius, Smoke bomb + /datum/outfit/loadout/decprimboom, // Grenade rifle, .44 revolver, Gladius ) matchmaking_allowed = list( @@ -415,12 +372,12 @@ commented out pending rework*/ shoes = /obj/item/clothing/shoes/f13/military/plated r_pocket = /obj/item/flashlight/lantern l_pocket = /obj/item/restraints/handcuffs - box = /obj/item/storage/survivalkit_tribal/chief + box = /obj/item/storage/survivalkit/tribal/adv backpack_contents = list( /obj/item/melee/onehanded/machete/gladius = 1, /obj/item/storage/bag/money/small/legofficers = 1, /obj/item/grenade/smokebomb = 1, - /obj/item/binoculars, + /obj/item/binoculars = 1, ) /datum/outfit/loadout/decprimfront @@ -428,6 +385,8 @@ commented out pending rework*/ suit_store = /obj/item/gun/ballistic/automatic/smg/smg10mm backpack_contents = list( /obj/item/ammo_box/magazine/m10mm_adv/ext = 2, + /obj/item/gun/ballistic/revolver/colt357 = 1, + /obj/item/ammo_box/a357 = 1, ) /datum/outfit/loadout/decprimrear @@ -439,6 +398,15 @@ commented out pending rework*/ /obj/item/ammo_box/a357 = 1, ) +/datum/outfit/loadout/decprimboom + name = "Lead from the rubble" + suit_store = /obj/item/gun/ballistic/revolver/grenadelauncher + backpack_contents = list( + /obj/item/ammo_box/a40mm = 2, + /obj/item/gun/ballistic/revolver/m29 = 1, + /obj/item/ammo_box/m44 = 3, + ) + // RECRUIT DECANUS @@ -451,6 +419,8 @@ commented out pending rework*/ supervisors = "the Prime/Veteran Decanus and the Centurion" display_order = JOB_DISPLAY_ORDER_DECANREC outfit = /datum/outfit/job/CaesarsLegion/Legionnaire/f13decanrec + access = list(ACCESS_LEGION, ACCESS_LEGION_COMMAND) + minimal_access = list(ACCESS_LEGION, ACCESS_LEGION_COMMAND) exp_requirements = 600 loadout_options = list( @@ -485,7 +455,7 @@ commented out pending rework*/ neck = /obj/item/storage/belt/holster glasses = /obj/item/clothing/glasses/legiongoggles r_pocket = /obj/item/flashlight/lantern - l_pocket = /obj/item/storage/survivalkit_tribal + l_pocket = /obj/item/storage/survivalkit/tribal backpack_contents = list( /obj/item/reagent_containers/pill/patch/healingpowder = 1, /obj/item/restraints/handcuffs = 1, @@ -518,6 +488,49 @@ commented out pending rework*/ ///Specialist/////// //////////////////// +// ORATOR +//No longer admin only. This will be great, let's see how this goes. +//I just want to preface this by saying I have never, and will never play legion. +// - Kitsunemitsu (Kirie Saito!) + +/datum/job/CaesarsLegion/Legionnaire/f13orator + title = "Legion Orator" + flag = F13ORATOR + supervisors = "Centurion" + req_admin_notify = 1 + total_positions = 1 + spawn_positions = 1 + outfit = /datum/outfit/job/CaesarsLegion/Legionnaire/f13orator + display_order = JOB_DISPLAY_ORDER_ORATOR + access = list(ACCESS_LEGION, ACCESS_CHANGE_IDS, ACCESS_LEGION_COMMAND) + minimal_access = list(ACCESS_LEGION, ACCESS_CHANGE_IDS, ACCESS_LEGION_COMMAND) + +/datum/outfit/job/CaesarsLegion/Legionnaire/f13orator // 10mm Revolver, Spatha + name = "Orator" + jobtype = /datum/job/CaesarsLegion/Legionnaire/f13orator + neck = /obj/item/storage/belt/holster + suit = /obj/item/clothing/suit/armor/f13/legion/vet/orator + head = null + id = /obj/item/card/id/dogtag/legveteran + gloves = null + shoes = /obj/item/clothing/shoes/roman + suit_store = /obj/item/gun/ballistic/automatic/pistol/n99 + r_pocket = /obj/item/storage/bag/money/small/legofficers + l_pocket = /obj/item/flashlight/lantern + backpack_contents = list( + /obj/item/ammo_box/magazine/m10mm_adv/simple = 2, + /obj/item/reagent_containers/pill/patch/bitterdrink = 1, + ) + +/datum/outfit/job/CaesarsLegion/Legionnaire/f13orator/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + ..() + if(visualsOnly) + return + ADD_TRAIT(H, TRAIT_LIFEGIVER, src) + ADD_TRAIT(H, TRAIT_IRONFIST, src) + ADD_TRAIT(H, TRAIT_BIG_LEAGUES, src) + + // VEXILLARIUS /datum/job/CaesarsLegion/Legionnaire/f13vexillarius @@ -529,6 +542,8 @@ commented out pending rework*/ supervisors = "the Veteran Decanus and Centurion" display_order = JOB_DISPLAY_ORDER_VEXILLARIUS outfit = /datum/outfit/job/CaesarsLegion/Legionnaire/f13vexillarius + access = list(ACCESS_LEGION, ACCESS_LEGION_COMMAND) + minimal_access = list(ACCESS_LEGION, ACCESS_LEGION_COMMAND) exp_requirements = 720 loadout_options = list( @@ -587,17 +602,16 @@ commented out pending rework*/ suit_store = /obj/item/gun/ballistic/automatic/smg/smg10mm backpack_contents = list( /obj/item/ammo_box/magazine/m10mm_adv/ext = 2, - /obj/item/melee/onehanded/machete/gladius = 1, + /obj/item/melee/onehanded/machete/spatha = 1, ) - //EXPLORER /datum/job/CaesarsLegion/Legionnaire/f13explorer title = "Legion Explorer" flag = F13EXPLORER - total_positions = 2 - spawn_positions = 2 + total_positions = 3 + spawn_positions = 3 description = "Scout the area, secure key points, but do not ignore orders or wordlessly die some place. A good explorer helps his unit by taking initiative and helping the commander without needing micro-managment." supervisors = "the Veteran Decanus and Centurion must be obeyed, and as always, respect must be given to other Decanus. You are not a officer, but you are a specialist." display_order = JOB_DISPLAY_ORDER_EXPLORER @@ -655,9 +669,11 @@ commented out pending rework*/ /datum/outfit/loadout/expsniper name = "Sniper" glasses = /obj/item/clothing/glasses/sunglasses/big - suit_store = /obj/item/gun/ballistic/automatic/marksman/sniper + suit_store = /obj/item/gun/ballistic/rifle/enfield backpack_contents = list( - /obj/item/ammo_box/magazine/w308 = 3, + /obj/item/ammo_box/a762 = 3, + /obj/item/book/granter/trait/rifleman = 1, + /obj/item/attachments/scope = 1, /obj/item/grenade/smokebomb = 1, ) @@ -684,6 +700,7 @@ commented out pending rework*/ /datum/outfit/loadout/vetshielder, // .44 DA Revolver, Shield, Gladius, Armor plate /datum/outfit/loadout/vetrifle, // Trail gun, Gladius /datum/outfit/loadout/vetberserker, // Lever shotgun, Fireaxe, Bola + /datum/outfit/loadout/vetsmg, // Carl Gustaf ) matchmaking_allowed = list( /datum/matchmaking_pref/friend = list( @@ -734,7 +751,7 @@ commented out pending rework*/ suit_store = /obj/item/gun/ballistic/rifle/repeater/trail backpack_contents = list( /obj/item/ammo_box/tube/m44 = 3, - /obj/item/gun/ballistic/revolver/colt357, + /obj/item/gun/ballistic/revolver/colt357 = 1, /obj/item/ammo_box/a357 = 1, ) @@ -749,7 +766,14 @@ commented out pending rework*/ /obj/item/restraints/legcuffs/bola = 2, ) - +/datum/outfit/loadout/vetsmg + name = "Flanker" + suit_store = /obj/item/gun/ballistic/automatic/smg/cg45 + backpack_contents = list( + /obj/item/ammo_box/magazine/cg45 = 2, + /obj/item/gun/ballistic/revolver/colt357 = 1, + /obj/item/ammo_box/a357 = 1, + ) // PRIME /datum/job/CaesarsLegion/Legionnaire/f13legionary @@ -901,48 +925,39 @@ commented out pending rework*/ ////Support Roles //// ////////////////////// -// SLAVEMASTER Kind off duty, camp defender, making sure slaves and prisoners are in order. +// Immunes are mostly an off-duty role meant to attend to the camp itself and the slaves or prisoners within. -/datum/job/CaesarsLegion/Legionnaire/f13slavemaster - title = "Legion Slavemaster" - flag = F13SLAVEMASTER - total_positions = 1 +/datum/job/CaesarsLegion/Legionnaire/f13immune + title = "Legion Immune" + flag = F13IMMUNE + total_positions = 5 spawn_positions = 1 - description = " The Slavemaster is a legionnaire temporarily assigned to keeping slaves and prisoners in check." + description = " An Immune is a legionnaire temporarily assigned to keeping the camp in order, according to their tasking on any given week." supervisors = "the Centurion." - display_order = JOB_DISPLAY_ORDER_SLAVEMASTER - outfit = /datum/outfit/job/CaesarsLegion/Legionnaire/f13slavemaster + display_order = JOB_DISPLAY_ORDER_IMMUNE + outfit = /datum/outfit/job/CaesarsLegion/Legionnaire/f13immune exp_requirements = 300 -/datum/outfit/job/CaesarsLegion/Legionnaire/f13slavemaster - name = "Slavemaster" - jobtype = /datum/job/CaesarsLegion/Legionnaire/f13slavemaster - id = /obj/item/card/id/dogtag/legslavemaster +/datum/outfit/job/CaesarsLegion/Legionnaire/f13immune + name = "Immune" + jobtype = /datum/job/CaesarsLegion/Legionnaire/f13immune + id = /obj/item/card/id/dogtag/legimmune mask = /obj/item/clothing/mask/bandana/legion/camp uniform = /obj/item/clothing/under/f13/legskirt - suit = /obj/item/clothing/suit/armor/f13/legion/prime/slavemaster - head = /obj/item/clothing/head/helmet/f13/legion/prime/slavemaster glasses = /obj/item/clothing/glasses/sunglasses - shoes = /obj/item/clothing/shoes/roman - r_pocket = /obj/item/restraints/handcuffs + shoes = /obj/item/clothing/shoes/f13/military/leather l_pocket = /obj/item/flashlight/lantern suit_store = /obj/item/gun/ballistic/revolver/caravan_shotgun backpack_contents = list( /obj/item/storage/bag/money/small/legenlisted = 1, - /obj/item/melee/onehanded/machete = 1, - /obj/item/ammo_box/shotgun/bean = 1, - /obj/item/melee/onehanded/slavewhip = 1, - /obj/item/razor = 1, - /obj/item/restraints/legcuffs/bola = 1, - /obj/item/electropack/shockcollar/explosive = 1, - /obj/item/warpaint_bowl + /obj/item/melee/onehanded/machete/forgedmachete = 1, + /obj/item/reagent_containers/pill/patch/healingpowder = 2 ) -/datum/outfit/job/CaesarsLegion/Legionnaire/f13slavemaster/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) +/datum/outfit/job/CaesarsLegion/Legionnaire/f13immune/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() if(visualsOnly) return - ADD_TRAIT(H, TRAIT_BIG_LEAGUES, src) ADD_TRAIT(H, TRAIT_MARS_TEACH, src) // FORGE MASTER @@ -950,8 +965,8 @@ commented out pending rework*/ /datum/job/CaesarsLegion/Legionnaire/f13campfollower // Chainsaw, Extra materials, Blueprints title = "Legion Forgemaster" flag = F13CAMPFOLLOWER - total_positions = 1 - spawn_positions = 1 + total_positions = 2 + spawn_positions = 2 description = "The Forgemaster makes weapons of all sorts and upgrades them, keeping order in the Forge and makes sure the camp is defended." supervisors = "the Centurion." display_order = JOB_DISPLAY_ORDER_CAMPFOLLOWER @@ -992,16 +1007,13 @@ commented out pending rework*/ H.mind.teach_crafting_recipe(/datum/crafting_recipe/lever_action) H.mind.teach_crafting_recipe(/datum/crafting_recipe/grease_gun) H.mind.teach_crafting_recipe(/datum/crafting_recipe/brush) - H.mind.teach_crafting_recipe(/datum/crafting_recipe/colt6520) H.mind.teach_crafting_recipe(/datum/crafting_recipe/huntingshotgun) H.mind.teach_crafting_recipe(/datum/crafting_recipe/legionlance) H.mind.teach_crafting_recipe(/datum/crafting_recipe/concussion) H.mind.teach_crafting_recipe(/datum/crafting_recipe/strongrocket) H.mind.teach_crafting_recipe(/datum/crafting_recipe/empgrenade) - H.mind.teach_crafting_recipe(/datum/crafting_recipe/tribalwar/xbow) - H.mind.teach_crafting_recipe(/datum/crafting_recipe/tribalwar/cheaparrow) - - + H.mind.teach_crafting_recipe(/datum/crafting_recipe/steeltower) + // AUXILIA - Civilians with special training. Can sow new uniforms for soldiers who lost theirs, and are loyal so they would never abuse this. @@ -1019,6 +1031,7 @@ commented out pending rework*/ loadout_options = list( /datum/outfit/loadout/auxassist, // Keep track of the money, handle trading beneath the warriors /datum/outfit/loadout/auxmedicus, // Do surgery, medical tasks. + /datum/outfit/loadout/auxopifex, // Build defenses, craft necessary items ) matchmaking_allowed = list( @@ -1084,6 +1097,24 @@ commented out pending rework*/ /obj/item/clothing/under/f13/legauxilia = 1, ) +/datum/outfit/loadout/auxopifex + name = "Opifex (Artisan)" + neck = /obj/item/clothing/neck/apron/labor/forge + gloves = /obj/item/clothing/gloves/legion/forgemaster + belt = /obj/item/storage/belt + glasses = /obj/item/clothing/glasses/welding + shoes = /obj/item/clothing/shoes/f13/military/plated + r_pocket = /obj/item/flashlight/lantern + backpack_contents = list( + /obj/item/storage/bag/money/small/legenlisted = 1, + /obj/item/stack/sheet/metal/twenty = 2, + /obj/item/stack/sheet/mineral/wood/twenty = 1, + /obj/item/stack/sheet/leather/twenty = 1, + /obj/item/stack/sheet/cloth/thirty = 1, + /obj/item/stack/sheet/prewar/twenty = 1, + /obj/item/weldingtool = 1, + /obj/item/book/granter/trait/explosives = 1 + ) // LEGION SLAVES - Servant cook, and assist with medical, low surgery. Worker farm and mine. // Both get Mars teachings to help out when normal work is done. diff --git a/code/modules/jobs/job_types/ncr.dm b/code/modules/jobs/job_types/ncr.dm index 1c952723f6..53c2705b5b 100644 --- a/code/modules/jobs/job_types/ncr.dm +++ b/code/modules/jobs/job_types/ncr.dm @@ -10,7 +10,7 @@ Money Commanding Officer (LT and CAP) - "small" money bag Officers and Rangers - /obj/item/storage/bag/money/small/ncrofficers Rest - /obj/item/storage/bag/money/small/ncrenlisted Sidearm Officers & a few specialists - 9mm pistol -Weapons Service Rifle, Rockwell, 9mm pistol, all good. +Weapons Service Rifle, Grease Gun, 9mm pistol, all good. Don't use Greaseguns, Lever shotguns, Police shotguns, Berettas, Hunting knives */ @@ -87,11 +87,11 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. uniform = /obj/item/clothing/under/f13/ncr/ncr_officer shoes = /obj/item/clothing/shoes/f13/military/ncr_officer_boots accessory = /obj/item/clothing/accessory/ncr - head = /obj/item/clothing/head/helmet/f13/power_armor/t45d/sierra + head = /obj/item/clothing/head/helmet/f13/power_armor/t45d neck = /obj/item/storage/belt/holster/legholster glasses = /obj/item/clothing/glasses/sunglasses/big gloves = /obj/item/clothing/gloves/f13/leather - suit = /obj/item/clothing/suit/armor/f13/power_armor/t45d/sierra + suit = /obj/item/clothing/suit/armor/f13/power_armor/t45d r_pocket = /obj/item/binoculars suit_store = /obj/item/gun/ballistic/automatic/pistol/deagle backpack_contents = list( @@ -136,7 +136,7 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. backpack_contents = list( /obj/item/ammo_box/magazine/m44 = 2, /obj/item/storage/bag/money/small/ncrenlisted = 1, - /obj/item/storage/survivalkit_aid = 1, + /obj/item/storage/survivalkit/aid = 1, ) @@ -262,7 +262,7 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. backpack_contents = list( /obj/item/melee/onehanded/knife/bayonet = 1, \ /obj/item/gun/ballistic/automatic/pistol/ninemil = 1, \ - /obj/item/ammo_box/magazine/m9mm = 2, \ + /obj/item/ammo_box/magazine/m9mmds = 2, \ /obj/item/storage/bag/money/small/ncrofficers = 1, /obj/item/ammo_box/magazine/garand308 = 1, ) @@ -316,7 +316,7 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. suit = /obj/item/clothing/suit/armor/f13/ncrarmor/mantle/reinforced neck = /obj/item/storage/belt/holster/legholster backpack_contents = list( - /obj/item/storage/survivalkit_aid = 1, + /obj/item/storage/survivalkit/aid = 1, /obj/item/storage/bag/money/small/ncrofficers = 1, ) @@ -329,7 +329,7 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. /obj/item/storage/box/ration/menu_two = 1, /obj/item/melee/onehanded/knife/bowie = 1, /obj/item/gun/ballistic/automatic/pistol/ninemil = 1, - /obj/item/ammo_box/magazine/m9mm = 3, + /obj/item/ammo_box/magazine/m9mmds = 3, /obj/item/flashlight/seclite = 1, ) @@ -340,7 +340,7 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. backpack_contents = list( /obj/item/ammo_box/magazine/m10mm_adv/ext = 2, /obj/item/gun/ballistic/automatic/pistol/ninemil = 1, - /obj/item/ammo_box/magazine/m9mm = 3, + /obj/item/ammo_box/magazine/m9mmds = 3, /obj/item/storage/box/ration/menu_eight = 1, /obj/item/attachments/scope = 1, /obj/item/book/granter/trait/trekking = 1, @@ -356,7 +356,7 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. /obj/item/grenade/smokebomb = 2, /obj/item/melee/onehanded/knife/bayonet = 1, /obj/item/gun/ballistic/automatic/pistol/ninemil = 1, - /obj/item/ammo_box/magazine/m9mm = 3, + /obj/item/ammo_box/magazine/m9mmds = 3, ) /datum/job/ncr/f13representative @@ -396,7 +396,7 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. /obj/item/gun/ballistic/revolver/revolver45 = 1, /obj/item/ammo_box/c45rev = 2, /obj/item/storage/bag/money/small/ncr = 2, - /obj/item/storage/survivalkit_aid = 1 + /obj/item/storage/survivalkit/aid = 1 ) /datum/outfit/loadout/repbrahminbaron @@ -454,6 +454,7 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. /datum/outfit/loadout/vrclassic, // AMR, Sequoia /datum/outfit/loadout/vrlite, // Brush Gun, Sequoia /datum/outfit/loadout/vrcqc, // 2 x .45 Long colt revolvers + /datum/outfit/loadout/vrshotgunner //Riot shotty, Sequoia ) /datum/outfit/job/ncr/f13vetranger/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -481,7 +482,7 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. r_pocket = /obj/item/binoculars backpack_contents = list( /obj/item/melee/onehanded/knife/bowie = 1, - /obj/item/storage/survivalkit_aid_adv = 1, + /obj/item/storage/survivalkit/aid/adv = 1, /obj/item/storage/bag/money/small/ncrofficers = 1, ) @@ -504,6 +505,16 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. /obj/item/ammo_box/c4570 = 1, ) +/datum/outfit/loadout/vrshotgunner + name = "Veteran Ranger Shotgunner" + suit_store = /obj/item/gun/ballistic/automatic/shotgun/riot + backpack_contents = list( + /obj/item/ammo_box/shotgun/buck = 2, + /obj/item/ammo_box/shotgun/slug = 1, + /obj/item/gun/ballistic/revolver/sequoia = 1, + /obj/item/ammo_box/c4570 = 1, + ) + /datum/outfit/loadout/vrcqc name = "Gunslinger" mask = /obj/item/clothing/mask/cigarette/cigar/havana @@ -520,8 +531,8 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. /datum/job/ncr/f13ranger title = "NCR Ranger" flag = F13RANGER - total_positions = 2 - spawn_positions = 2 + total_positions = 3 + spawn_positions = 3 description = "As an NCR Ranger, you are the premier special forces unit of the NCR. You are the forward observations and support the Army in it's campaigns, as well as continuing the tradition of stopping slavery in it's tracks." supervisors = "Veteran Ranger" selection_color = "#fff5cc" @@ -574,7 +585,7 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. suit_store = /obj/item/gun/ballistic/automatic/marksman/sniper backpack_contents = list( /obj/item/ammo_box/magazine/w308 = 3, - /obj/item/storage/survivalkit_aid = 1, + /obj/item/storage/survivalkit/aid = 1, /obj/item/gun/ballistic/revolver/revolver45 = 1, /obj/item/ammo_box/c45rev = 2, ) @@ -588,7 +599,7 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. backpack_contents = list( /obj/item/ammo_box/tube/m44 = 3, /obj/item/melee/classic_baton/telescopic = 1, - /obj/item/storage/survivalkit_aid = 1, + /obj/item/storage/survivalkit/aid = 1, /obj/item/attachments/scope = 1, /obj/item/gun/ballistic/revolver/colt357 = 2, /obj/item/ammo_box/a357=4, @@ -604,7 +615,7 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. backpack_contents = list( /obj/item/ammo_box/magazine/m556/rifle/assault = 1, /obj/item/clothing/head/helmet/f13/combat/ncr_patrol = 1, - /obj/item/storage/survivalkit_aid = 1, + /obj/item/storage/survivalkit/aid = 1, /obj/item/attachments/scope = 1, /obj/item/gun/ballistic/revolver/revolver44 = 1, /obj/item/ammo_box/m44 = 2, @@ -621,7 +632,7 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. /obj/item/ammo_box/shotgun/buck = 1, /obj/item/ammo_box/shotgun/slug = 1, /obj/item/clothing/head/helmet/f13/combat/ncr_patrol = 1, - /obj/item/storage/survivalkit_aid = 1, + /obj/item/storage/survivalkit/aid = 1, /obj/item/gun/ballistic/revolver/m29/snub = 1, /obj/item/ammo_box/m44box = 1, ) @@ -664,8 +675,8 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. suit = /obj/item/clothing/suit/armor/f13/power_armor/t45b/ncr backpack_contents = list( /obj/item/gun/ballistic/automatic/pistol/ninemil = 1, - /obj/item/storage/survivalkit_aid = 1, - /obj/item/ammo_box/magazine/m9mm = 2, + /obj/item/storage/survivalkit/aid = 1, + /obj/item/ammo_box/magazine/m9mmds = 2, /obj/item/storage/bag/money/small/ncrenlisted = 1, ) @@ -690,8 +701,8 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. /datum/job/ncr/f13combatengineer title = "NCR Combat Engineer" flag = F13COMBATENGINEER - total_positions = 1 - spawn_positions = 1 + total_positions = 2 + spawn_positions = 2 description = "You are a senior enlisted trooper with an engineering skill set. You work closely with your squad, taking orders from the officers. You have the authority to command troopers if there are no non-commissioned officers present." supervisors = "Corporals and Above" access = list(ACCESS_NCR, ACCESS_NCR_ARMORY) @@ -701,7 +712,7 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. loadout_options = list( // ALL: Trench tool, Limited blueprints /datum/outfit/loadout/combatengineerbuilder, // M1/n carbine, X4 explosive, Extra materials - /datum/outfit/loadout/combatengineertrapper, // Rockwell SMG, Minelaying, Explosive Crafting + /datum/outfit/loadout/combatengineertrapper, // Grease Gun, Minelaying, Explosive Crafting /datum/outfit/loadout/combatengineerflamethrower, // Flamer, M1/n carbine ) @@ -743,7 +754,7 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. belt = null backpack_contents = list( /obj/item/shovel/trench = 1, - /obj/item/storage/survivalkit_aid = 1, + /obj/item/storage/survivalkit/aid = 1, /obj/item/storage/bag/money/small/ncrenlisted = 1, ) @@ -764,9 +775,9 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. name = "Minelayer" head = /obj/item/clothing/head/f13/ncr belt = /obj/item/storage/belt/military/assault/ncr/engineer - suit_store = /obj/item/gun/ballistic/automatic/smg/rockwell + suit_store = /obj/item/gun/ballistic/automatic/smg/greasegun backpack_contents = list( - /obj/item/ammo_box/magazine/uzim9mm/rockwell = 2, + /obj/item/ammo_box/magazine/greasegun = 2, /obj/item/book/granter/crafting_recipe/blueprint/trapper = 1, /obj/item/book/granter/trait/explosives = 1 ) @@ -805,14 +816,14 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. accessory = /obj/item/clothing/accessory/armband/black glasses = /obj/item/clothing/glasses/sunglasses/big head = /obj/item/clothing/head/f13/ncr/steelpot_mp - suit = /obj/item/clothing/suit/armor/f13/ncrarmor + suit = /obj/item/clothing/suit/armor/f13/ncrarmor/mantle/reinforced gloves = /obj/item/clothing/gloves/f13/leather/fingerless backpack = /obj/item/storage/backpack/satchel/trekker suit_store = /obj/item/melee/classic_baton/militarypolice backpack_contents = list( /obj/item/gun/ballistic/automatic/pistol/m1911 = 1, /obj/item/ammo_box/magazine/m45 = 3, - /obj/item/storage/survivalkit_aid = 1, + /obj/item/storage/survivalkit/aid = 1, /obj/item/storage/bag/money/small/ncrenlisted = 1, ) @@ -828,8 +839,8 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. /datum/job/ncr/f13combatmedic title = "NCR Combat Medic" flag = F13COMBATMEDIC - total_positions = 1 - spawn_positions = 1 + total_positions = 2 + spawn_positions = 2 description = "You are a senior enlisted with a medical skill set. You work closely with your squad, taking orders from your officers. You have the authority to command troopers if there are no non-commissioned officers present." supervisors = "Corporals and Above" selection_color = "#fff5cc" @@ -858,7 +869,7 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. backpack_contents = list( /obj/item/ammo_box/magazine/m10mm_adv/simple = 2, /obj/item/melee/onehanded/knife/survival = 1, - /obj/item/storage/survivalkit_aid_adv = 1, + /obj/item/storage/survivalkit/aid/adv = 1, /obj/item/storage/bag/money/small/ncrenlisted = 1, /obj/item/storage/firstaid/regular = 1, ) @@ -911,7 +922,7 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. backpack_contents = list( /obj/item/melee/onehanded/knife/bayonet = 1, /obj/item/storage/bag/money/small/ncrenlisted = 1, - /obj/item/storage/survivalkit_aid = 1, + /obj/item/storage/survivalkit/aid = 1, ) /datum/outfit/loadout/corporaldesignatedmarksman @@ -924,7 +935,7 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. /obj/item/attachments/scope = 1, /obj/item/ammo_box/a762 = 4, /obj/item/gun/ballistic/automatic/pistol/ninemil = 1, - /obj/item/ammo_box/magazine/m9mm = 1, + /obj/item/ammo_box/magazine/m9mmds = 1, /obj/item/storage/box/ration/menu_two = 1, ) @@ -1046,8 +1057,8 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. /obj/item/gun/ballistic/automatic/pistol/m1911/custom = 1, /obj/item/ammo_box/magazine/m45 = 2, /obj/item/melee/classic_baton/telescopic = 1, - /obj/item/storage/survivalkit_aid = 1, - /obj/item/storage/survivalkit_aid_adv = 1, + /obj/item/storage/survivalkit/aid = 1, + /obj/item/storage/survivalkit/aid/adv = 1, /obj/item/storage/bag/money/small/ncrofficers = 1, /obj/item/storage/firstaid/regular = 1, ) @@ -1102,9 +1113,10 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. H.mind.teach_crafting_recipe(/datum/crafting_recipe/marksmancarbine) H.mind.teach_crafting_recipe(/datum/crafting_recipe/servicerifle) H.mind.teach_crafting_recipe(/datum/crafting_recipe/scoutcarbine) + H.mind.teach_crafting_recipe(/datum/crafting_recipe/plasmasniper) ADD_TRAIT(H, TRAIT_TECHNOPHREAK, src) -/datum/outfit/job/ncr/f13logisticsofficer // Rockwell, 9mm sidearm, Survival knife, C-4 bomb, Extra materials, Full blueprints +/datum/outfit/job/ncr/f13logisticsofficer // Grease Gun, 9mm sidearm, Survival knife, C-4 bomb, Extra materials, Full blueprints name = "NCR Logistics Officer" jobtype = /datum/job/ncr/f13logisticsofficer id = /obj/item/card/id/dogtag/ncrlieutenant @@ -1116,14 +1128,14 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. glasses = /obj/item/clothing/glasses/welding belt = /obj/item/storage/belt/military/assault/ncr/engineer gloves = /obj/item/clothing/gloves/color/yellow - suit_store = /obj/item/gun/ballistic/automatic/smg/rockwell + suit_store = /obj/item/gun/ballistic/automatic/smg/greasegun backpack_contents = list( - /obj/item/ammo_box/magazine/uzim9mm/rockwell = 2, + /obj/item/ammo_box/magazine/greasegun = 2, /obj/item/gun/ballistic/automatic/pistol/ninemil = 1, /obj/item/ammo_box/magazine/m9mm = 2, /obj/item/grenade/plastic/c4 = 1, /obj/item/melee/onehanded/knife/survival = 1, - /obj/item/storage/survivalkit_aid = 1, + /obj/item/storage/survivalkit/aid = 1, /obj/item/storage/bag/money/small/ncrofficers = 1, /obj/item/stack/sheet/metal/twenty = 2, /obj/item/stack/sheet/glass/ten = 2, @@ -1209,7 +1221,7 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. neck = /obj/item/storage/belt/holster/legholster backpack_contents = list( /obj/item/gun/ballistic/automatic/pistol/ninemil = 1, - /obj/item/ammo_box/magazine/m9mm = 2, + /obj/item/ammo_box/magazine/m9mmds = 2, /obj/item/melee/onehanded/knife/survival = 1, /obj/item/storage/firstaid/regular = 1, /obj/item/book/granter/trait/chemistry = 1, @@ -1224,7 +1236,7 @@ Weapons Service Rifle, Rockwell, 9mm pistol, all good. belt = /obj/item/storage/belt/military/NCR_Bandolier backpack_contents = list( /obj/item/gun/ballistic/automatic/pistol/ninemil = 1, - /obj/item/ammo_box/magazine/m9mm = 2, + /obj/item/ammo_box/magazine/m9mmds = 2, /obj/item/melee/onehanded/knife/bayonet = 1, /obj/item/reagent_containers/food/snacks/cheesyburrito = 2, /obj/item/reagent_containers/food/drinks/bottle/f13nukacola = 1, diff --git a/code/modules/jobs/job_types/oasis.dm b/code/modules/jobs/job_types/oasis.dm index 6b9ce2660f..78231e9190 100644 --- a/code/modules/jobs/job_types/oasis.dm +++ b/code/modules/jobs/job_types/oasis.dm @@ -1,6 +1,6 @@ /* Town access doors -Sheriff/Deputy, Gatehouse etc: 62 ACCESS_GATEWAY +Chief/Officer, Gatehouse etc: 62 ACCESS_GATEWAY General access: 25 ACCESS_BAR Clinic surgery/storage: 68 ACCESS_CLONING Shopkeeper: 34 ACCESS_CARGO_BOT @@ -66,14 +66,12 @@ Mayor satchel = /obj/item/storage/backpack/satchel/explorer l_pocket = /obj/item/storage/bag/money/small/settler r_pocket = /obj/item/flashlight/seclite - belt = /obj/item/gun/ballistic/automatic/wt550 shoes = /obj/item/clothing/shoes/f13/tan uniform = /obj/item/clothing/under/f13/gentlesuit head = /obj/item/clothing/head/f13/town/big backpack_contents = list( /obj/item/storage/box/citizenship_permits = 1, \ /obj/item/pen/fountain/captain = 1, - /obj/item/ammo_box/magazine/m473/small = 2, ) @@ -200,7 +198,7 @@ Mayor /*--------------------------------------------------------------*/ /datum/job/oasis/f13sheriff - title = "Sheriff" + title = "Chief" flag = F13SHERIFF department_flag = DEP_OASIS head_announce = list("Security") @@ -230,47 +228,41 @@ Mayor ) /datum/outfit/job/den/f13sheriff - name = "Sheriff" + name = "Chief" jobtype = /datum/job/oasis/f13sheriff id = /obj/item/card/id/dogtag/sheriff belt = null backpack = /obj/item/storage/backpack/satchel/explorer satchel = /obj/item/storage/backpack/satchel/explorer - - ears = /obj/item/radio/headset/headset_town - uniform = /obj/item/clothing/under/f13/sheriff - belt = /obj/item/storage/belt/military/army - shoes = /obj/item/clothing/shoes/f13/cowboy - glasses = /obj/item/clothing/glasses/sunglasses - l_pocket = /obj/item/storage/bag/money/small/den + ears = /obj/item/radio/headset/headset_town + uniform = /obj/item/clothing/under/f13/police/formal + suit = /obj/item/clothing/suit/armor/f13/town/chief + head = /obj/item/clothing/head/f13/town/chief + neck = /obj/item/storage/belt/holster/legholster + belt = /obj/item/storage/belt/military/army + shoes = /obj/item/clothing/shoes/jackboots + glasses = /obj/item/clothing/glasses/sunglasses + l_pocket = /obj/item/storage/bag/money/small/den backpack_contents = list( /obj/item/storage/box/deputy_badges = 1, - /obj/item/restraints/handcuffs = 1, + /obj/item/restraints/handcuffs = 2, /obj/item/melee/classic_baton = 1, /obj/item/melee/onehanded/knife/bowie = 1, ) /datum/outfit/loadout/thelaw name = "The Law Man" - suit = /obj/item/clothing/suit/armor/f13/town/sheriff - head = /obj/item/clothing/head/f13/town/sheriff - neck = /obj/item/storage/belt/holster - r_hand = /obj/item/gun/ballistic/rifle/repeater/brush - belt = /obj/item/gun/ballistic/revolver/m29/peacekeeper + suit_store = /obj/item/gun/ballistic/rifle/repeater/brush backpack_contents = list( /obj/item/ammo_box/tube/c4570 = 3, /obj/item/ammo_box/m44 = 2, + /obj/item/gun/ballistic/revolver/m29/peacekeeper = 1, ) /datum/outfit/loadout/thechief name = "The Chief" - uniform = /obj/item/clothing/under/f13/police/formal - suit = /obj/item/clothing/suit/armor/f13/town/chief - head = /obj/item/clothing/head/f13/town/chief - neck = /obj/item/storage/belt/holster/legholster - shoes = /obj/item/clothing/shoes/jackboots - r_hand = /obj/item/gun/energy/laser/aer9/oasis + suit_store = /obj/item/gun/energy/laser/aer9/oasis backpack_contents = list( /obj/item/stock_parts/cell/ammo/mfc = 2, /obj/item/gun/ballistic/automatic/pistol/sig = 1, @@ -304,11 +296,11 @@ Mayor /*--------------------------------------------------------------*/ /datum/job/oasis/f13deputy - title = "Deputy" + title = "Officer" flag = F13DEPUTY department_flag = DEP_OASIS - total_positions = 4 - spawn_positions = 4 + total_positions = 6 + spawn_positions = 6 supervisors = "Oasis Police Department" description = "You've passed the training and tests to join the OPD, and your loyalty to the Chief is absolute - this is your new home, your family. This oasis of civilization will not fall as long as you breathe. Protect its citizens and property, for that is your new purpose." selection_color = "#dcba97" @@ -317,7 +309,7 @@ Mayor exp_requirements = 600 loadout_options = list( - /datum/outfit/loadout/frontierjustice, + /datum/outfit/loadout/standardpd, /datum/outfit/loadout/police, /datum/outfit/loadout/swat,) @@ -334,64 +326,61 @@ Mayor ) /datum/outfit/job/den/f13deputy - name = "Deputy" + name = "Officer" jobtype = /datum/job/oasis/f13deputy ears = /obj/item/radio/headset/headset_town id = /obj/item/card/id/dogtag/deputy backpack = /obj/item/storage/backpack/satchel/explorer satchel = /obj/item/storage/backpack/satchel/explorer - belt = /obj/item/storage/belt/security + belt = /obj/item/storage/belt/military/assault + suit = /obj/item/clothing/suit/armor/bulletproof + neck = /obj/item/storage/belt/holster/legholster l_pocket = /obj/item/storage/bag/money/small/settler r_pocket = /obj/item/flashlight/flare - shoes = /obj/item/clothing/shoes/f13/explorer - uniform = /obj/item/clothing/under/f13/cowboyb + shoes = /obj/item/clothing/shoes/jackboots + uniform = /obj/item/clothing/under/f13/police/officer backpack_contents = list( - /obj/item/restraints/handcuffs = 1, + /obj/item/restraints/handcuffs = 2, /obj/item/melee/onehanded/knife/bowie = 1, + /obj/item/flashlight/seclite = 1, ) -/datum/outfit/loadout/frontierjustice - name = "Frontier Justice" - suit = /obj/item/clothing/suit/armor/f13/town/deputy - head = /obj/item/clothing/head/f13/town/deputy - neck = /obj/item/storage/belt/holster - r_hand = /obj/item/gun/ballistic/rifle/repeater/trail - backpack_contents = list( - /obj/item/ammo_box/tube/m44 = 2, - /obj/item/ammo_box/m44 = 2, - /obj/item/gun/ballistic/revolver/m29 = 1, - ) - -/datum/outfit/loadout/police - name = "Oasis PD" - uniform = /obj/item/clothing/under/f13/police/officer - suit = /obj/item/clothing/suit/armor/bulletproof +/datum/outfit/loadout/standardpd + name = "Standard" head = /obj/item/clothing/head/f13/town/officer - neck = /obj/item/storage/belt/holster/legholster - r_hand = /obj/item/gun/ballistic/shotgun/police - shoes = /obj/item/clothing/shoes/jackboots + suit_store = /obj/item/gun/ballistic/shotgun/police backpack_contents = list( /obj/item/ammo_box/shotgun/bean = 1, /obj/item/ammo_box/shotgun/buck = 1, /obj/item/ammo_box/a357 = 3, - /obj/item/flashlight/seclite = 1, /obj/item/gun/ballistic/revolver/police = 1, ) +/datum/outfit/loadout/police + name = "Police Marksman" + head = /obj/item/clothing/head/f13/town/marksman + gloves = /obj/item/clothing/gloves/rifleman + suit_store = /obj/item/gun/ballistic/rifle/hunting/remington + backpack_contents = list( + /obj/item/attachments/scope = 1, + /obj/item/ammo_box/a762 = 3, + /obj/item/gun/ballistic/revolver/police = 1, + /obj/item/ammo_box/a357 = 3, + /obj/item/book/granter/trait/rifleman = 1, + ) + /datum/outfit/loadout/swat name = "S.W.A.T. Officer" uniform = /obj/item/clothing/under/f13/police/swat - suit = /obj/item/clothing/suit/armor/bulletproof head = /obj/item/clothing/head/helmet/alt - neck = /obj/item/storage/belt/holster/legholster - l_hand = /obj/item/gun/ballistic/automatic/marksman/policerifle - shoes = /obj/item/clothing/shoes/jackboots + mask = /obj/item/clothing/mask/balaclava + gloves = /obj/item/clothing/gloves/f13/military + suit_store = /obj/item/gun/ballistic/automatic/assault_carbine/policerifle backpack_contents = list( - /obj/item/ammo_box/magazine/m556/rifle = 2, - /obj/item/gun/ballistic/automatic/pistol/mk23=1, - /obj/item/ammo_box/magazine/m45exp=2, - /obj/item/flashlight/seclite = 1, + /obj/item/ammo_box/magazine/m45exp= 2, + /obj/item/gun/ballistic/automatic/pistol/mk23 = 1, + /obj/item/ammo_box/magazine/m5mm = 1, ) /datum/outfit/job/den/f13deputy/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -418,8 +407,8 @@ Mayor title = "Farmer" flag = F13FARMER department_flag = DEP_OASIS - total_positions = 4 - spawn_positions = 4 + total_positions = 0 + spawn_positions = 0 supervisors = "Oasis Government & Police Department" description = "Growing up in the Oasis, you have an endless love for the sacred Oak, for nowhere in the valley is the soil as fertile, the bounty as rich. Behind the safety of the walls, you grow crops, medicines, and raise livestock. The community depends on you, you are a manifestation of the Oak’s will." selection_color = "#dcba97" @@ -664,8 +653,8 @@ Mayor title = "Citizen" flag = F13SETTLER department_flag = DEP_OASIS - total_positions = 8 - spawn_positions = 8 + total_positions = 9 + spawn_positions = 9 supervisors = "Oasis Government & Police Department" description = "You are a citizen living in the Town of Oasis - as the name suggests, it is a somewhat safe place amidst the chaos of the continent. Treat it as such, be sure to follow the laws of the land and do not associate with those who have a tendency not to, or you are likely to face exile. Remember that Oasis is your home, DO NOT act in a manner that would threaten it's safety or other citizens." selection_color = "#dcba97" @@ -679,6 +668,7 @@ Mayor /datum/outfit/loadout/outdoorsman, /datum/outfit/loadout/militia, /datum/outfit/loadout/singer, + /datum/outfit/loadout/ofarmer, ) access = list(ACCESS_BAR) minimal_access = list(ACCESS_BAR) @@ -696,7 +686,6 @@ Mayor name = "Citizen" jobtype = /datum/job/oasis/f13settler ears = /obj/item/radio/headset/headset_town - belt = null id = /obj/item/card/id/dogtag/town ears = /obj/item/radio/headset/headset_town uniform = /obj/item/clothing/under/f13/settler @@ -767,6 +756,20 @@ Mayor gloves = /obj/item/clothing/gloves/f13/leather backpack_contents = list(/obj/item/ammo_box/a308 = 2, ) + +/datum/outfit/loadout/ofarmer + name = "Farmer" + belt = /obj/item/storage/belt/utility + shoes = /obj/item/clothing/shoes/workboots + suit = /obj/item/clothing/suit/overalls + r_hand = /obj/item/gun/ballistic/automatic/pistol/n99 + backpack_contents = list( + /obj/item/cultivator = 1, + /obj/item/hatchet = 1, + /obj/item/shovel/spade = 1, + /obj/item/storage/bag/plants = 1, + /obj/item/ammo_box/magazine/m10mm_adv/simple = 2, + ) /* /datum/outfit/loadout/secretary name = "Secretary" @@ -987,6 +990,7 @@ Mayor H.mind.teach_crafting_recipe(/datum/crafting_recipe/thatgun) H.mind.teach_crafting_recipe(/datum/crafting_recipe/uzi) H.mind.teach_crafting_recipe(/datum/crafting_recipe/smg10mm) + H.mind.teach_crafting_recipe(/datum/crafting_recipe/plasmasniper) /datum/outfit/job/den/f13shopkeeper/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) ..() diff --git a/code/modules/jobs/job_types/tribals.dm b/code/modules/jobs/job_types/tribals.dm index a9db01088d..4abb83004a 100644 --- a/code/modules/jobs/job_types/tribals.dm +++ b/code/modules/jobs/job_types/tribals.dm @@ -66,7 +66,7 @@ Tribal Chief ADD_TRAIT(H, TRAIT_BIG_LEAGUES, src) /datum/outfit/job/tribal/f13chief - name = "Chief" + name = "Tribal Chief" jobtype = /datum/job/tribal/f13chief head = /obj/item/clothing/head/helmet/f13/wayfarer/chief/green uniform = /obj/item/clothing/under/f13/wayfarer diff --git a/code/modules/jobs/job_types/vault.dm b/code/modules/jobs/job_types/vault.dm index d596eed95d..f63a009d33 100644 --- a/code/modules/jobs/job_types/vault.dm +++ b/code/modules/jobs/job_types/vault.dm @@ -114,7 +114,7 @@ Head of Security head = /obj/item/clothing/head/collectable/police/cos belt = /obj/item/storage/belt/security glasses = /obj/item/clothing/glasses/sunglasses - r_hand = /obj/item/gun/ballistic/revolver/colt6520 + r_hand = /obj/item/gun/ballistic/automatic/pistol/n99 r_pocket = /obj/item/assembly/flash/handheld l_pocket = /obj/item/restraints/handcuffs backpack = /obj/item/storage/backpack/security diff --git a/code/modules/jobs/job_types/wasteland.dm b/code/modules/jobs/job_types/wasteland.dm index 01621d3af8..f95d7db103 100644 --- a/code/modules/jobs/job_types/wasteland.dm +++ b/code/modules/jobs/job_types/wasteland.dm @@ -257,7 +257,7 @@ uniform = /obj/item/clothing/under/f13/khan r_hand = /obj/item/book/granter/trait/selection r_pocket = /obj/item/flashlight/flare - l_pocket = /obj/item/storage/survivalkit_khan + l_pocket = /obj/item/storage/survivalkit/khan gloves = /obj/item/melee/unarmed/brass/spiked box = null backpack_contents = list( @@ -296,7 +296,7 @@ H.mind.teach_crafting_recipe(/datum/crafting_recipe/thatgun) H.mind.teach_crafting_recipe(/datum/crafting_recipe/uzi) H.mind.teach_crafting_recipe(/datum/crafting_recipe/smg10mm) - H.mind.teach_crafting_recipe(/datum/crafting_recipe/colt6520) + H.mind.teach_crafting_recipe(/datum/crafting_recipe/gate_khanate) /datum/outfit/loadout/enforcer name = "Enforcer" @@ -371,7 +371,6 @@ Raider /datum/outfit/loadout/raider_bos, /datum/outfit/loadout/quack_doctor, /datum/outfit/loadout/raider_mobster, - /datum/outfit/loadout/raider_cannibal, /datum/outfit/loadout/raider_tribal ) @@ -379,7 +378,7 @@ Raider /datum/outfit/job/wasteland/f13raider name = "Outlaw" jobtype = /datum/job/wasteland/f13raider - + box = /obj/item/storage/survivalkit/outlaw id = null ears = null belt = null @@ -436,11 +435,10 @@ Raider suit_store = pick( /obj/item/gun/ballistic/revolver/detective, \ - /obj/item/gun/ballistic/rifle/hunting, \ - /obj/item/gun/ballistic/automatic/hobo/zipgun, \ - /obj/item/gun/ballistic/revolver/hobo/pepperbox, \ - /obj/item/gun/ballistic/revolver/caravan_shotgun, \ - /obj/item/gun/ballistic/revolver/single_shotgun) + /obj/item/gun/ballistic/automatic/pistol/ninemil,\ + /obj/item/gun/ballistic/automatic/pistol/m1911, \ + /obj/item/gun/ballistic/automatic/pistol/type17, \ + ) /datum/outfit/job/wasteland/f13raider/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -457,11 +455,13 @@ Raider suit = /obj/item/clothing/suit/armor/f13/raider/supafly head = /obj/item/clothing/head/helmet/f13/raider/supafly backpack_contents = list( - /obj/item/gun/ballistic/automatic/autopipe = 1, - /obj/item/ammo_box/magazine/autopipe = 3, - /obj/item/melee/onehanded/knife/cosmic = 1, - /obj/item/storage/box/dice = 1, - /obj/item/storage/fancy/cigarettes/cigpack_cannabis = 1, + /obj/item/gun/ballistic/automatic/varmint = 1, + /obj/item/ammo_box/magazine/m556/rifle/assault = 1, + /obj/item/gun/ballistic/revolver/hobo/knucklegun = 1, + /obj/item/ammo_box/c45rev = 2, + /obj/item/attachments/scope = 1, + /obj/item/reagent_containers/food/drinks/bottle/f13nukacola/radioactive = 1, + /obj/item/grenade/smokebomb = 2, /obj/item/book/granter/trait/trekking = 1 ) @@ -470,10 +470,10 @@ Raider suit = /obj/item/clothing/suit/armor/f13/raider/yankee head = /obj/item/clothing/head/helmet/f13/raider/yankee backpack_contents = list( - /obj/item/twohanded/fireaxe/bmprsword = 1, + /obj/item/shishkebabpack = 1, /obj/item/storage/fancy/cigarettes/cigpack_cannabis=1, /obj/item/megaphone=1, - /obj/item/book/granter/trait/bigleagues = 1) + /obj/item/storage/pill_bottle/chem_tin/buffout = 1) /datum/outfit/loadout/raider_blast name = "Blastmaster" @@ -493,9 +493,9 @@ Raider suit = /obj/item/clothing/suit/armor/f13/raider/sadist head = /obj/item/clothing/head/helmet/f13/raider/arclight backpack_contents = list( - /obj/item/gun/ballistic/revolver/colt357 = 1, + /obj/item/melee/onehanded/knife/throwing = 5, /obj/item/clothing/mask/gas/explorer/folded=1, - /obj/item/storage/belt/tribe_quiver = 1, + /obj/item/storage/belt = 1, /obj/item/restraints/legcuffs/beartrap = 2, /obj/item/reverse_bear_trap = 1, /obj/item/melee/unarmed/lacerator = 1, @@ -507,6 +507,7 @@ Raider head = /obj/item/clothing/head/helmet/f13/fiend backpack_contents = list( /obj/item/gun/energy/laser/wattz/magneto = 1, + /obj/item/gun/energy/laser/wattz = 1, /obj/item/stock_parts/cell/ammo/ec = 2, /obj/item/reagent_containers/hypospray/medipen/psycho = 3, /obj/item/reagent_containers/pill/patch/turbo = 2, @@ -540,6 +541,7 @@ Raider /obj/item/storage/pill_bottle/happy = 1, /obj/item/book/granter/trait/chemistry = 1, /obj/item/stack/sheet/mineral/silver=2, + /obj/item/defibrillator/primitive=1, ) /datum/outfit/loadout/raider_ncr @@ -550,6 +552,8 @@ Raider backpack_contents = list( /obj/item/gun/ballistic/automatic/service = 1, /obj/item/ammo_box/magazine/m556/rifle=2, + /obj/item/melee/onehanded/knife/bayonet = 1, + /obj/item/storage/box/ration/ranger_breakfast = 1, /obj/item/book/granter/crafting_recipe/blueprint/r82 = 1) /datum/outfit/loadout/raider_legion @@ -560,18 +564,21 @@ Raider backpack_contents = list( /obj/item/melee/onehanded/machete/gladius = 1, /obj/item/storage/backpack/spearquiver = 1, - /obj/item/gun/ballistic/automatic/smg/greasegun/worn = 1, + /obj/item/gun/ballistic/automatic/smg/greasegun = 1, /obj/item/ammo_box/magazine/greasegun = 1, /obj/item/book/granter/trait/trekking = 1 ) - + /datum/outfit/loadout/raider_bos name = "Brotherhood Exile" suit = /obj/item/clothing/suit/armor/f13/exile/bosexile id = /obj/item/card/id/rusted/brokenholodog backpack_contents = list( /obj/item/gun/energy/laser/pistol=1, - /obj/item/stock_parts/cell/ammo/ec=2) + /obj/item/stock_parts/cell/ammo/ec = 2, + /obj/item/book/granter/crafting_recipe/blueprint/aep7 = 1, + /obj/item/grenade/f13/frag = 2, + ) /datum/outfit/loadout/raider_sheriff name = "Desperado" @@ -579,12 +586,10 @@ Raider uniform = /obj/item/clothing/under/syndicate/tacticool head = /obj/item/clothing/head/f13/town/big backpack_contents = list( - /obj/item/gun/ballistic/revolver/colt357=1, - /obj/item/gun/ballistic/revolver/m29/snub=1, - /obj/item/ammo_box/a357=1, + /obj/item/gun/ballistic/revolver/m29/snub=2, /obj/item/storage/belt/holster=1, - /obj/item/ammo_box/m44=1, - /obj/item/book/granter/trait/trekking = 1) + /obj/item/ammo_box/m44=3, + /obj/item/book/granter/trait/gunslinger = 1) /datum/outfit/loadout/raider_smith name = "Raider Smith" @@ -595,50 +600,38 @@ Raider backpack_contents = list( /obj/item/gun/ballistic/automatic/pistol/m1911/custom = 1, /obj/item/ammo_box/magazine/m45 = 1, - /obj/item/melee/onehanded/machete/scrapsabre = 1, + /obj/item/twohanded/steelsaw = 1, /obj/item/melee/smith/hammer = 1, /obj/item/stack/sheet/mineral/sandstone = 50, /obj/item/book/granter/trait/techno = 1, + /obj/item/book/granter/crafting_recipe/scav_one = 1, ) /datum/outfit/loadout/raider_vault name = "Vault Renegade" - suit = /obj/item/clothing/suit/armor/f13/leather_jacket/combat + suit = /obj/item/clothing/suit/armor/vest/big uniform = /obj/item/clothing/under/f13/exile/vault id = /obj/item/card/id/rusted/fadedvaultid backpack_contents = list( - /obj/item/gun/ballistic/automatic/smg/smg10mm/worn = 1, + /obj/item/gun/ballistic/automatic/smg/smg10mm = 1, /obj/item/ammo_box/magazine/m10mm_adv/ext = 1, /obj/item/reagent_containers/hypospray/medipen/stimpak/imitation = 2, ) -/datum/outfit/loadout/raider_cannibal - name = "Humanitarian" - suit = /obj/item/clothing/suit/armor/bone - head = /obj/item/clothing/head/helmet/skull - backpack_contents = list( - /obj/item/twohanded/fireaxe/boneaxe = 1, - /obj/item/restraints/legcuffs/bola = 2, - /obj/item/stack/sheet/sinew = 8, - /obj/item/stack/sheet/animalhide/human = 10, - /obj/item/reagent_containers/food/snacks/soup/longpork_stew = 1, - /obj/item/gun/ballistic/automatic/pistol/n99 = 1, - /obj/item/ammo_box/magazine/m10mm_adv = 2, - ) - /datum/outfit/loadout/raider_tribal name = "Tribal Outcast" uniform = /obj/item/clothing/under/f13/exile/tribal suit = /obj/item/clothing/suit/hooded/tribaloutcast - suit_store = /obj/item/melee/onehanded/club/warclub + suit_store = /obj/item/twohanded/spear/bonespear shoes = /obj/item/clothing/shoes/sandal belt = /obj/item/storage/backpack/spearquiver - box = /obj/item/storage/survivalkit_tribal - id = /obj/item/card/id/outcasttattoo + box = /obj/item/storage/survivalkit/tribal back = /obj/item/storage/backpack/satchel/explorer backpack_contents = list( /obj/item/clothing/mask/cigarette/pipe = 1, /obj/item/melee/onehanded/knife/bone = 1, + /obj/item/radio/tribal = 1, + /obj/item/book/granter/trait/bigleagues = 1, ) /datum/outfit/loadout/raider_mobster @@ -653,8 +646,9 @@ Raider backpack_contents = list( /obj/item/gun/ballistic/shotgun/police = 1, /obj/item/melee/onehanded/knife/hunting = 1, - /obj/item/gun/ballistic/automatic/smg/rockwell = 1, - /obj/item/ammo_box/magazine/uzim9mm/rockwell = 2, + /obj/item/gun/ballistic/automatic/smg/greasegun = 1, + /obj/item/melee/onehanded/knife/switchblade = 1, + /obj/item/ammo_box/magazine/greasegun = 2, /obj/item/card/id/dogtag/town/mafia=1, ) @@ -745,7 +739,7 @@ Raider gloves = /obj/item/clothing/gloves/f13/blacksmith head = /obj/item/clothing/head/welding r_hand = /obj/item/weldingtool/largetank - backpack_contents = list(/obj/item/gun/ballistic/automatic/pistol/m1911/compact=1) + backpack_contents = list(/obj/item/gun/ballistic/automatic/pistol/m1911=1) /datum/outfit/loadout/scavenger name = "Scavenger" @@ -756,7 +750,7 @@ Raider backpack_contents = list(/obj/item/mining_scanner=1, /obj/item/metaldetector=1, /obj/item/shovel=1, - /obj/item/gun/ballistic/automatic/pistol/m1911/compact=1) + /obj/item/gun/ballistic/automatic/pistol/m1911=1) /datum/outfit/loadout/settler name = "Settler" @@ -788,7 +782,7 @@ Raider /obj/item/smelling_salts=1, /obj/item/healthanalyzer=1, /obj/item/stack/sheet/mineral/silver=1, - /obj/item/gun/ballistic/automatic/pistol/m1911/compact=1, + /obj/item/gun/ballistic/automatic/pistol/m1911=1, /obj/item/lighter=1, /obj/item/screwdriver=1, /obj/item/wirecutters=1, @@ -805,7 +799,7 @@ Raider glasses = /obj/item/clothing/glasses/f13/biker l_hand = /obj/item/gun/ballistic/revolver/caravan_shotgun backpack_contents = list(/obj/item/storage/box/vendingmachine=1, - /obj/item/gun/ballistic/automatic/pistol/m1911/compact=1) + /obj/item/gun/ballistic/automatic/pistol/m1911=1) //end new @@ -817,7 +811,7 @@ Raider backpack_contents = list( /obj/item/gun/ballistic/automatic/pistol/n99=1, /obj/item/ammo_box/magazine/m10mm_adv/simple=2, - /obj/item/pda) + /obj/item/pda=1,) /datum/outfit/loadout/warrior name = "Wasteland Warrior" @@ -1422,7 +1416,8 @@ datum/job/wasteland/f13dendoctor /datum/outfit/loadout/eightiesshaman, /datum/outfit/loadout/rustwalkersscipher, /datum/outfit/loadout/rustwalkersscrapper, - /datum/outfit/loadout/rustwalkersshaman + /datum/outfit/loadout/rustwalkersshaman, + /datum/outfit/loadout/bonedancerexile ) /datum/outfit/job/wasteland/f13tribal/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) @@ -1433,10 +1428,43 @@ datum/job/wasteland/f13dendoctor ADD_TRAIT(H, TRAIT_GENERIC, src) ADD_TRAIT(H, TRAIT_TRAPPER, src) ADD_TRAIT(H, TRAIT_MACHINE_SPIRITS, src) + ADD_TRAIT(H, TRAIT_AUTO_DRAW, src) + ADD_TRAIT(H, TRAIT_HARD_YARDS, src) + H.grant_language(/datum/language/tribal) + var/list/recipes = list( + /datum/crafting_recipe/tribal_pa, + /datum/crafting_recipe/tribal_pa_helmet, + /datum/crafting_recipe/tribal_combat_armor, + /datum/crafting_recipe/tribal_combat_armor_helmet, + /datum/crafting_recipe/tribal_r_combat_armor, + /datum/crafting_recipe/tribal_r_combat_armor_helmet, + /datum/crafting_recipe/tribalwar/chitinarmor, + /datum/crafting_recipe/tribalwar/deathclawspear, + /datum/crafting_recipe/tribalwar/lightcloak, + /datum/crafting_recipe/tribalwar/legendaryclawcloak, + /datum/crafting_recipe/warpaint, + /datum/crafting_recipe/tribalradio, + /datum/crafting_recipe/tribalwar/goliathcloak, + /datum/crafting_recipe/tribalwar/bonebow, + /datum/crafting_recipe/tribalwar/tribe_bow, + /datum/crafting_recipe/tribalwar/sturdybow, + /datum/crafting_recipe/tribalwar/warclub, + /datum/crafting_recipe/tribalwar/silverbow, + /datum/crafting_recipe/tribalwar/arrowbone, + /datum/crafting_recipe/tribalwar/bonespear, + /datum/crafting_recipe/tribalwar/bonecodpiece, + /datum/crafting_recipe/tribalwar/bracers, + /datum/crafting_recipe/tribal/bonetalisman, + /datum/crafting_recipe/tribal/bonebag, + /datum/crafting_recipe/tribalwar/spearquiver + ) + for(var/datum/crafting_recipe/recipe as() in recipes) + H.mind.teach_crafting_recipe(recipe) H.grant_language(/datum/language/tribal) H.social_faction = FACTION_WASTELAND add_verb(H, /mob/living/proc/create_tribe) + /datum/outfit/job/wasteland/f13tribal name = "Tribal" jobtype = /datum/job/wasteland/f13tribal @@ -1445,7 +1473,7 @@ datum/job/wasteland/f13dendoctor ears = null belt = /obj/item/melee/onehanded/knife/bone uniform = /obj/item/clothing/under/f13/settler - box = /obj/item/storage/survivalkit_tribal + box = /obj/item/storage/survivalkit/tribal shoes = /obj/item/clothing/shoes/sandal gloves = /obj/item/clothing/gloves/f13/handwraps r_hand = /obj/item/book/granter/trait/selection/tribal @@ -1650,7 +1678,7 @@ datum/job/wasteland/f13dendoctor head = /obj/item/clothing/head/helmet/f13/wayfarer/antler neck = /obj/item/clothing/neck/mantle/brown backpack_contents = list( - /obj/item/gun/ballistic/automatic/sturdybow = 1, + /obj/item/gun/ballistic/bow/sturdy = 1, /obj/item/storage/belt/tribe_quiver/bone = 1, /obj/item/storage/belt/tribe_quiver = 1, /obj/item/binoculars = 1, @@ -1708,37 +1736,17 @@ datum/job/wasteland/f13dendoctor /obj/item/reagent_containers/pill/patch/healpoultice = 2, /obj/item/storage/belt/utility/full = 1, /obj/item/book/granter/crafting_recipe/tribal/rustwalkers = 1 -) -/datum/outfit/job/wasteland/f13tribal/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) - ..() - if(visualsOnly) - return - ADD_TRAIT(H, TRAIT_GENERIC, src) - ADD_TRAIT(H, TRAIT_HARD_YARDS, src) - H.grant_language(/datum/language/tribal) - var/list/recipes = list( - /datum/crafting_recipe/punji_sticks, - /datum/crafting_recipe/tribalwar/chitinarmor, - /datum/crafting_recipe/tribalwar/deathclawspear, - /datum/crafting_recipe/tribalwar/lightcloak, - /datum/crafting_recipe/tribalwar/legendaryclawcloak, - /datum/crafting_recipe/warpaint, - /datum/crafting_recipe/tribalradio, - /datum/crafting_recipe/tribalwar/goliathcloak, - /datum/crafting_recipe/tribalwar/bonebow, - /datum/crafting_recipe/tribalwar/tribe_bow, - /datum/crafting_recipe/tribalwar/sturdybow, - /datum/crafting_recipe/tribalwar/warclub, - /datum/crafting_recipe/tribalwar/silverbow, - /datum/crafting_recipe/tribalwar/arrowbone, - /datum/crafting_recipe/tribalwar/bonespear, - /datum/crafting_recipe/tribalwar/bonecodpiece, - /datum/crafting_recipe/tribalwar/bracers, - /datum/crafting_recipe/tribal/bonetalisman, - /datum/crafting_recipe/tribal/bonebag, - /datum/crafting_recipe/tribalwar/spearquiver ) +//Bone Dancer +/datum/outfit/loadout/bonedancerexile + name = "Bone Dancer Exile" + backpack_contents = list( + /obj/item/clothing/under/f13/bone = 1, + /obj/item/clothing/head/helmet/skull/bone = 1, + /obj/item/book/granter/crafting_recipe/tribal/bone = 1, + /obj/item/twohanded/spear/bonespear = 1, + /obj/item/warpaint_bowl=1, + /obj/item/reagent_containers/pill/patch/healpoultice = 2 - for(var/datum/crafting_recipe/recipe as() in recipes) - H.mind.teach_crafting_recipe(recipe) + ) diff --git a/code/modules/jobs/jobs.dm b/code/modules/jobs/jobs.dm index 011da3c6ef..744adb5c30 100644 --- a/code/modules/jobs/jobs.dm +++ b/code/modules/jobs/jobs.dm @@ -48,21 +48,15 @@ GLOBAL_LIST_INIT(nonhuman_positions, list( )) GLOBAL_LIST_INIT(command_positions, list( - "Head Scribe", "Head Paladin", "Head Knight", "NCR Captain", - "NCR Lieutenant", "NCR Veteran Ranger", "Legion Centurion", - "Legion Veteran Decanus", - "Mayor", "Sheriff", - - "Followers Administrator", )) GLOBAL_LIST_INIT(silicon_whitelist_positions, list( @@ -97,14 +91,14 @@ GLOBAL_LIST_INIT(faction_whitelist_positions, list( "Legion Slave", "Mayor", -"Sheriff", -"Deputy", +"Chief", +"Officer", "Shopkeeper", "Doctor", "Prospector", "Detective", -"Chief", +"Tribal Chief", "Shaman", "Head Hunter", "Druid", @@ -140,10 +134,10 @@ GLOBAL_LIST_INIT(brotherhood_positions, list( GLOBAL_LIST_INIT(oasis_positions, list( "Mayor", "Secretary", - "Sheriff", + "Chief", "Doctor", "Citizen", - "Deputy", + "Officer", "Shopkeeper", "Farmer", "Prospector", @@ -170,7 +164,7 @@ GLOBAL_LIST_INIT(legion_positions, list( "Prime Legionnaire", "Recruit Legionnaire", "Legion Forgemaster", - "Legion Slavemaster", + "Legion Immune", "Legion Auxilia", "Legion Slave", "Legion Venator", @@ -237,7 +231,7 @@ GLOBAL_LIST_INIT(silicon_positions, list( )) GLOBAL_LIST_INIT(tribal_positions, list( - "Chief", + "Tribal Chief", "Shaman", "Head Hunter", "Druid", diff --git a/code/modules/keybindings/keybind/living.dm b/code/modules/keybindings/keybind/living.dm index b5921b378a..1bbc5dfef4 100644 --- a/code/modules/keybindings/keybind/living.dm +++ b/code/modules/keybindings/keybind/living.dm @@ -25,3 +25,25 @@ /datum/keybinding/living/toggle_resting/down(client/user) var/mob/living/L = user.mob L.lay_down() + +/datum/keybinding/living/cancel_action + hotkey_keys = list("Unbound") + name = "cancel_action" + full_name = "Cancel Action" + description = "Cancel the current action." + +/// Technically you shouldn't be doing any actions if you were sleeping either but... +/datum/keybinding/living/can_use(client/user) + . = ..() + var/mob/living/mob = user.mob + return . && (mob.stat == CONSCIOUS) + +/datum/keybinding/living/cancel_action/down(client/user) + var/mob/M = user.mob + if(length(M.do_afters)) + var/atom/target = M.do_afters[M.do_afters.len] + to_chat(M, "You stop interacting with \the [target].") + LAZYREMOVE(M.do_afters, target) + else + to_chat(M, "There's nothing that you can cancel right now.") + return TRUE diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index bac5bf8e5a..1fd229a42b 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -25,14 +25,14 @@ var/list/trophies = list() var/charged = TRUE var/charge_time = 15 - var/detonation_damage = 50 + var/detonation_damage = 30 var/backstab_bonus = 30 var/wielded = FALSE // track wielded status on item /obj/item/kinetic_crusher/cyborg //probably give this a unique sprite later desc = "An integrated version of the standard kinetic crusher with a grinded down axe head to dissuade mis-use against crewmen. Deals damage equal to the standard crusher against creatures, however." force = 10 //wouldn't want to give a borg a 20 brute melee weapon unemagged now would we - detonation_damage = 60 + detonation_damage = 90 wielded = 1 /obj/item/kinetic_crusher/Initialize() @@ -43,7 +43,7 @@ /obj/item/kinetic_crusher/ComponentInitialize() . = ..() AddComponent(/datum/component/butchering, 60, 110) //technically it's huge and bulky, but this provides an incentive to use it - AddComponent(/datum/component/two_handed, force_unwielded=0, force_wielded=20) + AddComponent(/datum/component/two_handed, force_unwielded=0, force_wielded=40) /obj/item/kinetic_crusher/Destroy() QDEL_LIST(trophies) @@ -177,6 +177,7 @@ attack_verb = list("stabbed", "diced", "sliced", "cleaved", "chopped", "lacerated", "cut", "jabbed", "punctured") icon_state = "crusher-glaive" item_state = "crusher0-glaive" + detonation_damage = 40 block_parry_data = /datum/block_parry_data/crusherglaive //ideas: altclick that lets you pummel people with the handguard/handle? //parrying functionality? diff --git a/code/modules/mob/dead/new_player/sprite_accessories/socks.dm b/code/modules/mob/dead/new_player/sprite_accessories/socks.dm index a6a270ec2a..59823bb49a 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/socks.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/socks.dm @@ -114,11 +114,13 @@ /datum/sprite_accessory/underwear/socks/stockings_orange name = "Stockings - Orange" icon_state = "stockings_orange" +*/ /datum/sprite_accessory/underwear/socks/stockings_programmer name = "Stockings - Programmer" icon_state = "stockings_lpink" +/* /datum/sprite_accessory/underwear/socks/stockings_purple name = "Stockings - Purple" icon_state = "stockings_purple" @@ -156,6 +158,8 @@ name = "Thigh-high - Freedom" icon_state = "assblastusa_thigh" +*/ + /datum/sprite_accessory/underwear/socks/rainbow_thigh name = "Thigh-high - Rainbow" icon_state = "rainbow_thigh" @@ -172,7 +176,7 @@ name = "Thigh-high - Striped" icon_state = "striped_thigh" has_color = TRUE -*/ + /datum/sprite_accessory/underwear/socks/thin_thigh name = "Thigh-high - Thin" diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index e7ad67d240..b943ebd1f6 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -19,7 +19,6 @@ /// How much brute damage they do to simple animals var/meleeSlashSAPower = 35 - var/obj/item/card/id/wear_id = null // Fix for station bounced radios -- Skie var/has_fine_manipulation = 0 var/move_delay_add = 0 // movement delay to add diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index bdd23c235d..93f02010c9 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -873,16 +873,16 @@ update_inv_handcuffed() update_hud_handcuffed() -/mob/living/carbon/proc/can_defib() +/mob/living/carbon/proc/can_revive(ignore_timelimit = FALSE, maximum_brute_dam = MAX_REVIVE_BRUTE_DAMAGE, maximum_fire_dam = MAX_REVIVE_FIRE_DAMAGE, ignore_heart = FALSE) var/tlimit = DEFIB_TIME_LIMIT * 10 var/obj/item/organ/heart = getorgan(/obj/item/organ/heart) if(suiciding || hellbound || HAS_TRAIT(src, TRAIT_HUSK) || AmBloodsucker(src)) return - if((world.time - timeofdeath) > tlimit) + if(!ignore_timelimit && (world.time - timeofdeath) > tlimit) return - if((getBruteLoss() >= MAX_REVIVE_BRUTE_DAMAGE) || (getFireLoss() >= MAX_REVIVE_FIRE_DAMAGE)) + if((getBruteLoss() >= maximum_brute_dam) || (getFireLoss() >= maximum_fire_dam)) return - if(!heart || (heart.organ_flags & ORGAN_FAILING)) + if(!ignore_heart && (!heart || (heart.organ_flags & ORGAN_FAILING))) return var/obj/item/organ/brain/BR = getorgan(/obj/item/organ/brain) if(QDELETED(BR) || BR.brain_death || (BR.organ_flags & ORGAN_FAILING) || suiciding) diff --git a/code/modules/mob/living/carbon/carbon_movement.dm b/code/modules/mob/living/carbon/carbon_movement.dm index 65e59d0e29..436c0732ba 100644 --- a/code/modules/mob/living/carbon/carbon_movement.dm +++ b/code/modules/mob/living/carbon/carbon_movement.dm @@ -29,7 +29,7 @@ var/loss = HUNGER_FACTOR/10 if(m_intent == MOVE_INTENT_RUN) loss *= 2 - adjust_nutrition(loss) + adjust_nutrition(-loss) /mob/living/carbon/can_move_under_living(mob/living/other) . = ..() diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 64aa2c3690..22f66399db 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -140,7 +140,7 @@ if(getorgan(/obj/item/organ/brain) && !key && !get_ghost(FALSE, TRUE)) . += "[t_He] [t_is] limp and unresponsive; there are no signs of life and resuscitation is not possible..." else - . += "[t_He] [t_is] limp and unresponsive; there are no signs of life..." + . += "[t_He] [t_is] limp and unresponsive; there are no signs of life, however resuscitation may be possible..." if(get_bodypart(BODY_ZONE_HEAD) && !getorgan(/obj/item/organ/brain)) . += "It appears that [t_his] brain is missing..." @@ -227,7 +227,7 @@ msg += "[t_He] [t_has] severe cellular damage!\n" else msg += "[t_He] [t_has] extreme cellular damage!\n" - + if(fire_stacks > 0) @@ -366,11 +366,15 @@ msg += "[t_He] [t_has] a stupid expression on [t_his] face.\n" if(InCritical()) msg += "[t_He] [t_is] barely conscious.\n" - if(getorgan(/obj/item/organ/brain)) + if(getorgan(/obj/item/organ/brain) && !(living_flags & HIDE_OFFLINE_INDICATOR)) if(!key) msg += "[t_He] [t_is] totally catatonic. The stresses of the Wasteland must have been too much for [t_him]. Any recovery is unlikely.\n" else if(!client) msg += "[t_He] [t_has] a blank, absent-minded stare and appears completely unresponsive to anything. [t_He] may snap out of it soon.\n" + else if(client && ((client.inactivity / 10) / 60 > 10)) //10 Minutes + msg += "\[Inactive for [round((client.inactivity/10)/60)] minutes\]" + else if(disconnect_time) + msg += "\[Disconnected/ghosted [round(((world.realtime - disconnect_time)/10)/60)] minutes ago\]" if(digitalcamo) msg += "[t_He] [t_is] moving [t_his] body in an unnatural and blatantly inhuman manner.\n" @@ -446,7 +450,7 @@ "\[Add comment\]"), "") else if(isobserver(user) && traitstring) . += "Traits: [traitstring]" - + . += "\n[print_special()]\n" SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, user, .) //This also handles flavor texts now @@ -468,4 +472,4 @@ dat += "[new_text]\n" //dat.Join("\n") doesn't work here, for some reason if(dat.len) dat.Join() - return + return diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 1feddd8fc7..33879d5452 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -53,6 +53,9 @@ var/obj/item/l_store = null var/obj/item/s_store = null +/// When an braindead player has their equipment fiddled with, we log that info here for when they come back so they know who took their ID while they were DC'd for 30 seconds + var/list/afk_thefts + var/special_voice = "" // For changing our voice. Used by a symptom. var/bleedsuppress = 0 //for stopping bloodloss, eventually this will be limb-based like bleeding diff --git a/code/modules/mob/living/carbon/human/login.dm b/code/modules/mob/living/carbon/human/login.dm index a89921143a..ebf76eeafa 100644 --- a/code/modules/mob/living/carbon/human/login.dm +++ b/code/modules/mob/living/carbon/human/login.dm @@ -2,3 +2,33 @@ ..() if(dna?.species?.has_field_of_vision && CONFIG_GET(flag/use_field_of_vision)) LoadComponent(/datum/component/field_of_vision, field_of_vision_type) + + if(!LAZYLEN(afk_thefts)) + return + + var/list/print_msg = list() + print_msg += "*---------*" + print_msg += "As you snap back to consciousness, you recall people messing with your stuff..." + + afk_thefts = reverseRange(afk_thefts) + + for(var/list/iter_theft as anything in afk_thefts) + if(!islist(iter_theft) || LAZYLEN(iter_theft) != AFK_THEFT_TIME) + stack_trace("[src] ([ckey]) returned to their body and had a null/malformed afk_theft entry. Contents: [json_encode(iter_theft)]") + continue + + var/thief_name = iter_theft[AFK_THEFT_NAME] + var/theft_message = iter_theft[AFK_THEFT_MESSAGE] + var/time_since = world.time - iter_theft[AFK_THEFT_TIME] + + if(time_since > AFK_THEFT_FORGET_DETAILS_TIME) + print_msg += "\tSomeone [theft_message], but it was at least [DisplayTimeText(AFK_THEFT_FORGET_DETAILS_TIME)] ago." + else + print_msg += "\t[thief_name] [theft_message] roughly [DisplayTimeText(time_since, 10)] ago." + + if(LAZYLEN(afk_thefts) >= AFK_THEFT_MAX_MESSAGES) + print_msg += "There may have been more, but that's all you can remember..." + print_msg += "*---------*" + + to_chat(src, print_msg.Join("\n")) + LAZYNULL(afk_thefts) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 6c02e9f8a9..6ac194995e 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1743,12 +1743,10 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) "[M] attempted to touch you!", target = M, \ target_message = "You attempted to touch [H]!") return TRUE + if(M == H) + althelp(M, H, attacker_style) + return TRUE switch(M.a_intent) - if(INTENT_HELP) - if(M == H) - althelp(M, H, attacker_style) - return TRUE - return FALSE if(INTENT_DISARM) altdisarm(M, H, attacker_style) return TRUE diff --git a/code/modules/mob/living/carbon/human/species_types/supermutant.dm b/code/modules/mob/living/carbon/human/species_types/supermutant.dm index b9c3be84ef..816d9f2f92 100644 --- a/code/modules/mob/living/carbon/human/species_types/supermutant.dm +++ b/code/modules/mob/living/carbon/human/species_types/supermutant.dm @@ -3,19 +3,46 @@ id = "smutant" say_mod = "yells" limbs_id = "smutant" - species_traits = list(NOTRANSSTING,NOGENITALS,NOAROUSAL) - inherent_traits = list(TRAIT_RADIMMUNE,TRAIT_VIRUSIMMUNE) + offset_features = list ( + OFFSET_HEAD = list(1,5) + ) + // Whitelist for initial release, potential shitters + whitelisted = 1 + // Addself these only ones I know. + whitelist = list("ADanimator", "PilotBland", "Cythisia", "Kneesox", "Foxeye", "Oddbomber3768", "Poots13", "Scheveningen", "Akoy") + species_traits = list(NOEYES,NO_UNDERWEAR,NOTRANSSTING,NOGENITALS,NOAROUSAL) + inherent_traits = list(TRAIT_RADIMMUNE,TRAIT_VIRUSIMMUNE, TRAIT_HEAVY_SLEEPER, TRAIT_POOR_AIM, TRAIT_STRONG_GRABBER, TRAIT_QUICK_CARRY, TRAIT_UNARMED_WEAPON, TRAIT_IRONFIST,TRAIT_BIG_LEAGUES) inherent_biotypes = list(MOB_INORGANIC, MOB_HUMANOID) punchstunthreshold = 20 + punchdamagelow = 10 + punchdamagehigh = 20 + // No jumpsuit cause no armor yet, remove when armor is added. + nojumpsuit = 1 use_skintones = 0 sexes = 0 + armor = 60 // Until armor is added in loot pools, then move down to 20-30 + speedmod = 0.75 liked_food = JUNKFOOD | FRIED | RAW +//TODO +// Disable Prosthetics or make custom ones +// Armor lootable +// Helmet sprites variants +// Whitelist/Blacklist clothes/armor. +// Changing organs/blood +// Better NCR Sprites. +// Nightkin? + /datum/species/smutant/on_species_gain(mob/living/carbon/C, datum/species/old_species) ..() for(var/obj/item/bodypart/b in C.bodyparts) - b.max_damage += 50 + b.max_damage += 100 // Pretty sure this just didn't work but like whatever. C.faction |= "supermutant" + +// TODO +// Someone pls make to add mutie_boots and mutie_shorts on spawn. +// Look at Plasmaman for refrence + /datum/species/smutant/on_species_loss(mob/living/carbon/C) ..() C.faction -= "supermutant" diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 0c9b5e6740..fc5e6f9e43 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -418,6 +418,30 @@ to_chat(src, "You have given up life and succumbed to death.") death() +/mob/living/verb/lookup() + set name = "Look Up" + set category = "IC" + if(src.incapacitated()) + to_chat(src, "You can't look up right now!") + var/turf/T = SSmapping.get_turf_above(get_turf(src)) + if(!istype(T, /turf/open/transparent/openspace)) + if(istype(T, /turf/open) || istype(T, /turf/closed)) + to_chat(src, "You look up at the ceiling. You can see ceiling.") + return + else + src.reset_perspective(T) + RegisterSignal(src, COMSIG_MOB_CLIENT_CHANGE_VIEW, .proc/stop_looking_up) //no binos/scops + RegisterSignal(src, COMSIG_MOVABLE_MOVED, .proc/stop_looking_up) + RegisterSignal(src, COMSIG_LIVING_STATUS_KNOCKDOWN, .proc/stop_looking_up) + RegisterSignal(src, COMSIG_LIVING_STATUS_PARALYZE, .proc/stop_looking_up) + RegisterSignal(src, COMSIG_LIVING_STATUS_UNCONSCIOUS, .proc/stop_looking_up) + RegisterSignal(src, COMSIG_LIVING_STATUS_SLEEP, .proc/stop_looking_up) + +/mob/living/proc/stop_looking_up() + reset_perspective(null) + UnregisterSignal(src, list(COMSIG_LIVING_STATUS_PARALYZE, COMSIG_LIVING_STATUS_UNCONSCIOUS, COMSIG_LIVING_STATUS_SLEEP, COMSIG_LIVING_STATUS_KNOCKDOWN, COMSIG_MOVABLE_MOVED, COMSIG_MOB_CLIENT_CHANGE_VIEW)) + + /mob/living/incapacitated(ignore_restraints = FALSE, ignore_grab = FALSE, check_immobilized = FALSE) if(stat || IsUnconscious() || IsStun() || IsParalyzed() || (combat_flags & COMBAT_FLAG_HARD_STAMCRIT) || (check_immobilized && IsImmobilized()) || (!ignore_restraints && restrained(ignore_grab))) return TRUE @@ -865,6 +889,12 @@ "[src] tries to remove your [what.name].", target = src, target_message = "You try to remove [who]'s [what.name].") what.add_fingerprint(src) + if(ishuman(who)) + var/mob/living/carbon/human/victim_human = who + if(victim_human.key && !victim_human.client) // AKA braindead + if(victim_human.stat <= SOFT_CRIT && LAZYLEN(victim_human.afk_thefts) <= AFK_THEFT_MAX_MESSAGES) + var/list/new_entry = list(list(src.name, "tried unequipping your [what]", world.time)) + LAZYADD(victim_human.afk_thefts, new_entry) else to_chat(src,"You try to remove [who]'s [what.name].") what.add_fingerprint(src) @@ -911,6 +941,13 @@ to_chat(src, "\The [what.name] doesn't fit in that place!") return + if(ishuman(who)) + var/mob/living/carbon/human/victim_human = who + if(victim_human.key && !victim_human.client) // AKA braindead + if(victim_human.stat <= SOFT_CRIT && LAZYLEN(victim_human.afk_thefts) <= AFK_THEFT_MAX_MESSAGES) + var/list/new_entry = list(list(src.name, "tried equipping you with [what]", world.time)) + LAZYADD(victim_human.afk_thefts, new_entry) + who.visible_message("[src] tries to put [what] on [who].", "[src] tries to put [what] on you.", target = src, target_message = "You try to put [what] on [who].") diff --git a/code/modules/mob/living/living_blocking_parrying.dm b/code/modules/mob/living/living_blocking_parrying.dm index 9d39d724a0..090448ec40 100644 --- a/code/modules/mob/living/living_blocking_parrying.dm +++ b/code/modules/mob/living/living_blocking_parrying.dm @@ -42,17 +42,17 @@ GLOBAL_LIST_EMPTY(block_parry_data) /// Amount of "free" damage blocking absorbs var/block_damage_absorption = 10 - /// Override absorption, list("[ATTACK_TYPE_DEFINE]" = absorption), see [block_damage_absorption] + /// Override absorption, list(ATTACK_TYPE_DEFINE_TEXT = absorption), see [block_damage_absorption] var/list/block_damage_absorption_override /// Ratio of damage to allow through above absorption and below limit. Multiplied by damage to determine how much to let through. Lower is better. var/block_damage_multiplier = 0.5 - /// Override damage overrun efficiency, list("[ATTACK_TYPE_DEFINE]" = absorption), see [block_damage_efficiency] + /// Override damage overrun efficiency, list(ATTACK_TYPE_DEFINE_TEXT = absorption), see [block_damage_efficiency] var/list/block_damage_multiplier_override /// Upper bound of damage block, anything above this will go right through. var/block_damage_limit = 80 - /// Override upper bound of damage block, list("[ATTACK_TYPE_DEFINE]" = absorption), see [block_damage_limit] + /// Override upper bound of damage block, list(ATTACK_TYPE_DEFINE_TEXT = absorption), see [block_damage_limit] var/list/block_damage_limit_override /// The blocked variable of on_hit() on projectiles is impacted by this. Higher is better, 0 to 100, percentage. @@ -67,7 +67,7 @@ GLOBAL_LIST_EMPTY(block_parry_data) /// Default damage-to-stamina coefficient, higher is better. This is based on amount of damage BLOCKED, not initial damage, to prevent damage from "double dipping". var/block_stamina_efficiency = 2 - /// Override damage-to-stamina coefficient, see [block_efficiency], this should be list("[ATTACK_TYPE_DEFINE]" = coefficient_number) + /// Override damage-to-stamina coefficient, see [block_efficiency], this should be list(ATTACK_TYPE_DEFINE_TEXT = coefficient_number) var/list/block_stamina_efficiency_override /// Ratio of stamina incurred by blocking that goes to the arm holding the object instead of the chest. Has no effect if this is not held in hand. var/block_stamina_limb_ratio = 0.5 @@ -83,7 +83,7 @@ GLOBAL_LIST_EMPTY(block_parry_data) var/block_resting_attack_types_directional = ATTACK_TYPE_PROJECTILE | ATTACK_TYPE_THROWN /// Multiplier to stamina damage taken for attacks blocked while downed. var/block_resting_stamina_penalty_multiplier = 1.5 - /// Override list for multiplier to stamina damage taken for attacks blocked while down. list("[ATTACK_TYPE_DEFINE]" = multiplier_number) + /// Override list for multiplier to stamina damage taken for attacks blocked while down. list(ATTACK_TYPE_DEFINE_TEXT = multiplier_number) var/list/block_resting_stamina_penalty_multiplier_override /// Sounds for blocking @@ -118,15 +118,15 @@ GLOBAL_LIST_EMPTY(block_parry_data) var/parry_time_perfect = 2.5 /// Time on both sides of perfect parry that still counts as part of the perfect window. var/parry_time_perfect_leeway = 1 - /// [parry_time_perfect_leeway] override for attack types, list("[ATTACK_TYPE_DEFINE]" = deciseconds) + /// [parry_time_perfect_leeway] override for attack types, list(ATTACK_TYPE_DEFINE_TEXT = deciseconds) var/list/parry_time_perfect_leeway_override /// Parry "efficiency" falloff in percent per decisecond once perfect window is over. var/parry_imperfect_falloff_percent = 20 - /// [parry_imperfect_falloff_percent] override for attack types, list("[ATTACK_TYPE_DEFINE]" = deciseconds) + /// [parry_imperfect_falloff_percent] override for attack types, list(ATTACK_TYPE_DEFINE_TEXT = deciseconds) var/list/parry_imperfect_falloff_percent_override /// Efficiency in percent on perfect parry. var/parry_efficiency_perfect = 120 - /// Override for attack types, list("[ATTACK_TYPE_DEFINE]" = perecntage) for perfect efficiency. + /// Override for attack types, list(ATTACK_TYPE_DEFINE_TEXT = perecntage) for perfect efficiency. var/parry_efficiency_perfect_override /// Parry effect data. var/list/parry_data = list( diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 45f57890c0..299705e704 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -30,6 +30,7 @@ var/mobility_flags = MOBILITY_FLAGS_DEFAULT + var/living_flags = NONE // Combat - Blocking/Parrying system /// Our block_parry_data for unarmed blocks/parries. Currently only used for parrying, as unarmed block isn't implemented yet. YOU MUST RUN [get_block_parry_data(this)] INSTEAD OF DIRECTLY ACCESSING! var/datum/block_parry_data/block_parry_data = /datum/block_parry_data // defaults to *something* because [combat_flags] dictates whether or not we can unarmed block/parry. @@ -159,3 +160,5 @@ var/sprint_buffer_regen_last = 0 //last world.time this was regen'd for math. var/sprint_stamina_cost = 0.70 //stamina loss per tile while insufficient sprint buffer. //---End + + var/disconnect_time //how long have we been dc'd for diff --git a/code/modules/mob/living/login.dm b/code/modules/mob/living/login.dm index 1b7ee4e9c7..81f59302f3 100644 --- a/code/modules/mob/living/login.dm +++ b/code/modules/mob/living/login.dm @@ -1,5 +1,6 @@ /mob/living/Login() ..() + disconnect_time = null //we are connected //Mind updates sync_mind() mind.show_memory(src, 0) diff --git a/code/modules/mob/living/logout.dm b/code/modules/mob/living/logout.dm index 794adfca49..a349750c1e 100644 --- a/code/modules/mob/living/logout.dm +++ b/code/modules/mob/living/logout.dm @@ -1,6 +1,7 @@ /mob/living/Logout() update_z(null) ..() + disconnect_time = world.realtime if(!key && mind) //key and mind have become separated. mind.active = 0 //This is to stop say, a mind.transfer_to call on a corpse causing a ghost to re-enter its body. hud_client_check() diff --git a/code/modules/mob/living/simple_animal/hostile/f13/eyebot.dm b/code/modules/mob/living/simple_animal/hostile/f13/eyebot.dm index 4d4965163f..64ff8d219e 100644 --- a/code/modules/mob/living/simple_animal/hostile/f13/eyebot.dm +++ b/code/modules/mob/living/simple_animal/hostile/f13/eyebot.dm @@ -8,7 +8,7 @@ icon = 'icons/fallout/mobs/robots/eyebots.dmi' icon_state = "eyebot" icon_living = "eyebot" - icon_dead = "eyebot_d" + icon_dead = "robot_dead" speak_chance = 0 turns_per_move = 6 environment_smash = 0 @@ -38,6 +38,7 @@ vision_range = 7 //reduced from 13 to 7 because who needs that kind of shit in their life aggro_vision_range = 7 //as above ranged = 1 + loot = list(/obj/effect/decal/remains/deadeyebot, /obj/item/clothing/head/helmet/f13/raider/eyebot) projectiletype = /obj/item/projectile/beam/laser/pistol/wattz projectilesound = 'sound/weapons/resonator_fire.ogg' aggrosound = list('sound/f13npc/eyebot/aggro.ogg', ) diff --git a/code/modules/mob/living/simple_animal/hostile/f13/raider.dm b/code/modules/mob/living/simple_animal/hostile/f13/raider.dm index e1ffcd0190..6b595961e3 100644 --- a/code/modules/mob/living/simple_animal/hostile/f13/raider.dm +++ b/code/modules/mob/living/simple_animal/hostile/f13/raider.dm @@ -106,7 +106,7 @@ health = 600 retreat_distance = 1 minimum_distance = 2 - projectiletype = /obj/item/projectile/bullet/m44 + projectiletype = /obj/item/projectile/bullet/m44/simple projectilesound = 'sound/f13weapons/44mag.ogg' extra_projectiles = 1 aggro_vision_range = 15 diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index feb8757342..05473a6044 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -3,6 +3,7 @@ stop_automated_movement_when_pulled = 0 obj_damage = 40 environment_smash = ENVIRONMENT_SMASH_STRUCTURES //Bitflags. Set to ENVIRONMENT_SMASH_STRUCTURES to break closets,tables,racks, etc; ENVIRONMENT_SMASH_WALLS for walls; ENVIRONMENT_SMASH_RWALLS for rwalls + mob_size = MOB_SIZE_LARGE var/atom/target var/ranged = FALSE var/rapid = 0 //How many shots per volley. diff --git a/code/modules/projectiles/ammunition/ballistic/pistol.dm b/code/modules/projectiles/ammunition/ballistic/pistol.dm index 937c41bbd7..56502cc411 100644 --- a/code/modules/projectiles/ammunition/ballistic/pistol.dm +++ b/code/modules/projectiles/ammunition/ballistic/pistol.dm @@ -9,31 +9,36 @@ name = "A 10mm rubber bullet casing." projectile_type = /obj/item/projectile/bullet/c10mm/rubber -/obj/item/ammo_casing/c10mm/wounding - name = "A 10mm-wounding bullet casing." - projectile_type = /obj/item/projectile/bullet/c10mm/wounding - /obj/item/ammo_casing/c10mm/incendiary name = "A 10mm incendiary bullet casing." projectile_type = /obj/item/projectile/bullet/c10mm/incendiary -// 9mm +// 9mm /obj/item/ammo_casing/c9mm name = "9mm FMJ bullet casing" desc = "A 9mm FMJ bullet casing." caliber = "9mm" projectile_type = /obj/item/projectile/bullet/c9mm +/obj/item/ammo_casing/c9mm/improv + name = "homemade 9mm bullet casing" + desc = "A homemade 9mm bullet casing." + projectile_type = /obj/item/projectile/bullet/c9mm/improv + /obj/item/ammo_casing/c9mm/rubber name = "9mm rubber bullet casing" desc = "A 9mm rubber bullet casing." projectile_type = /obj/item/projectile/bullet/c9mm/rubber -/obj/item/ammo_casing/c9mm/wounding - name = "9mm wounding bullet casing" - desc = "A 9mm wounding bullet casing." - projectile_type = /obj/item/projectile/bullet/c9mm/wounding +/obj/item/ammo_casing/c9mm/acid + name = "9mm acid-tipped bullet casing" + desc = "A 9mm acid-tipped bullet casing." + projectile_type = /obj/item/projectile/bullet/c9mm/acid +/obj/item/ammo_casing/c9mm/incendiary + name = "9mm incendiary bullet casing" + desc = "A 9mm incendiary bullet casing." + projectile_type = /obj/item/projectile/bullet/c9mm/incendiary //14mm /obj/item/ammo_casing/p14mm name = "14mm FMJ bullet casing" @@ -41,6 +46,17 @@ caliber = "14" projectile_type = /obj/item/projectile/bullet/mm14 +/obj/item/ammo_casing/p14mm/contam + name = "14mm contaminated bullet casing" + desc = "A 14mm contaminated bullet casing." + caliber = "14" + projectile_type = /obj/item/projectile/bullet/mm14/contam + +/obj/item/ammo_casing/p14mm/uraniumtipped + name = "14mm uranium-tipped bullet casing" + desc = "A 14mm uranium-tipped bullet casing." + caliber = "14" + projectile_type = /obj/item/projectile/bullet/mm14/uraniumtipped // 22lr /obj/item/ammo_casing/a22 @@ -54,6 +70,11 @@ desc = "A .22lr rubber bullet casing." projectile_type = /obj/item/projectile/bullet/c22/rubber +/obj/item/ammo_casing/a22/shock + name = ".22lr shock bullet casing" + desc = "A .22lr shock bullet casing." + projectile_type = /obj/item/projectile/bullet/c22/shock + // BETA AMMO // Obsolete /obj/item/ammo_casing/testcasing name = "casing" diff --git a/code/modules/projectiles/ammunition/ballistic/revolver.dm b/code/modules/projectiles/ammunition/ballistic/revolver.dm index 250601d45d..2a56ddaa06 100644 --- a/code/modules/projectiles/ammunition/ballistic/revolver.dm +++ b/code/modules/projectiles/ammunition/ballistic/revolver.dm @@ -1,4 +1,4 @@ -// .357 +// .357 /obj/item/ammo_casing/a357 name = ".357 FMJ bullet casing" desc = "A .357 FMJ bullet casing." @@ -10,7 +10,20 @@ desc = "A .357 ricochet bullet casing." projectile_type = /obj/item/projectile/bullet/a357/ricochet +/obj/item/ammo_casing/a357/incendiary + name = ".357 incendiary bullet casing" + desc = "A .357 incendiary bullet casing." + projectile_type = /obj/item/projectile/bullet/a357/incendiary +/obj/item/ammo_casing/a357/improv + name = ".357 improvised bullet casing" + desc = "A .357 bullet casing, made by hand." + projectile_type = /obj/item/projectile/bullet/a357/improv + +/obj/item/ammo_casing/a357/acid + name = ".357 special acid-tipped bullet casing" + desc = "A .357 acid-tipped bullet casing." + projectile_type = /obj/item/projectile/bullet/a357/acid // .38 special /obj/item/ammo_casing/c38 name = ".38 special bullet casing" @@ -18,11 +31,28 @@ caliber = "38" projectile_type = /obj/item/projectile/bullet/c38 +/obj/item/ammo_casing/c38/improv + name = "homemade .38 special bullet casing" + desc = "A .38 special bullet casing." + caliber = "38" + projectile_type = /obj/item/projectile/bullet/c38/improv + /obj/item/ammo_casing/c38/rubber name = ".38 special rubber bullet casing" desc = "A .38 specia rubber bullet casing. For when you want to be extra useless." projectile_type = /obj/item/projectile/bullet/c38/rubber - + +/obj/item/ammo_casing/c38/incendiary + name = ".38 special incendiary bullet casing" + desc = "A .38 special incendiary bullet casing. For when you want to be slightly less useless." + projectile_type = /obj/item/projectile/bullet/c38/incendiary + +/obj/item/ammo_casing/c38/acid + name = ".38 special acid-tipped bullet casing" + desc = "A .38 special acid-tipped bullet casing. For when you want to be slightly less useless." + projectile_type = /obj/item/projectile/bullet/c38/acid + + // .44 magnum /obj/item/ammo_casing/m44 name = ".44 magnum FMJ bullet casing" @@ -30,6 +60,11 @@ caliber = "44" projectile_type = /obj/item/projectile/bullet/m44 +/obj/item/ammo_casing/m44/incendiary + name = ".44 magnum incendiary bullet casing" + desc = "A .44 magnum incendiary bullet casing." + projectile_type = /obj/item/projectile/bullet/c45/incendiary + // .45-70 Gov't /obj/item/ammo_casing/c4570 name = ".45-70 FMJ bullet casing" @@ -42,9 +77,19 @@ desc = "A .45-70 explosive bullet casing." projectile_type = /obj/item/projectile/bullet/c4570/explosive +/obj/item/ammo_casing/c4570/acid + name = ".45-70 acid-tipped bullet casing" + desc = "A .45-70 acid-tipped bullet casing." + projectile_type = /obj/item/projectile/bullet/c4570/acid + +/obj/item/ammo_casing/c4570/knockback + name = ".45-70 ultradense bullet casing" + desc = "A .45-70 ultradense bullet casing." + projectile_type = /obj/item/projectile/bullet/c4570/knockback + //.45 Long Colt bouncing /obj/item/ammo_casing/a45lc name = ".45 Long Colt bullet casing" - desc = "An arcaich .45 long colt bullet casing." + desc = "An archaic .45 long colt bullet casing." caliber = "a45lc" projectile_type = /obj/item/projectile/bullet/a45lc diff --git a/code/modules/projectiles/ammunition/ballistic/rifle.dm b/code/modules/projectiles/ammunition/ballistic/rifle.dm index 0cd71ff7d8..e503e8a7ea 100644 --- a/code/modules/projectiles/ammunition/ballistic/rifle.dm +++ b/code/modules/projectiles/ammunition/ballistic/rifle.dm @@ -11,6 +11,11 @@ desc = "A .308 sporting bullet casing." projectile_type = /obj/item/projectile/bullet/a762/sport +/obj/item/ammo_casing/a762/microshrapnel + name = "7.62mm microshrapnel bullet casing" + desc = "Like shrapnel, but smaller, and thus more annoying." + projectile_type = /obj/item/projectile/bullet/a762/microshrapnel + /obj/item/ammo_casing/a762/uraniumtipped name = "7.62 uranium tipped bullet casing" desc = "Not depleted uranium. Regular uranium." @@ -33,10 +38,10 @@ desc = "A 5.56mm rubber bullet casing, for training purposes." projectile_type = /obj/item/projectile/bullet/a556/rubber -/obj/item/ammo_casing/a556/uraniumtipped - name = "5.56mm uranium-tipped bullet casing" - desc = "Not depleted uranium. Regular uranium." - projectile_type = /obj/item/projectile/bullet/a556/uraniumtipped +/obj/item/ammo_casing/a556/microshrapnel + name = "5.56mm microshrapnel bullet casing" + desc = "Like shrapnel, but smaller, and thus more annoying." + projectile_type = /obj/item/projectile/bullet/a556/microshrapnel /obj/item/ammo_casing/a556/sport //.223 name = ".223 bullet casing" @@ -51,6 +56,12 @@ caliber = "m5mm" projectile_type = /obj/item/projectile/bullet/m5mm + +/obj/item/ammo_casing/m5mm/shock + name = "5mm shock bullet casing" + desc = "A 5mm shock bullet casing." + projectile_type = /obj/item/projectile/bullet/m5mm/shock + // 40mm (Grenade Launcher) /obj/item/ammo_casing/a40mm name = "40mm HE shell" @@ -65,3 +76,9 @@ desc = "A 2mm gauss projectile casing." caliber = "2mm" projectile_type = /obj/item/projectile/bullet/c2mm + +/obj/item/ammo_casing/c2mm/blender + name = "2mm gauss blender projectile casing" + desc = "A 2mm gauss projectile casing, \"Blender\" variant. Bounces off walls at hypersonic speeds." + caliber = "2mm" + projectile_type = /obj/item/projectile/bullet/c2mm/blender diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm index c43f4aca99..f94a541b73 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -32,7 +32,7 @@ icon_state = "bshell" projectile_type = /obj/item/projectile/bullet/shotgun_beanbag custom_materials = list(/datum/material/iron=250, /datum/material/blackpowder=70) - + obj/item/ammo_casing/shotgun/executioner name = "executioner slug" @@ -175,6 +175,14 @@ obj/item/ammo_casing/shotgun/executioner pellets = 7 variance = 15 +/obj/item/ammo_casing/shotgun/trainshot + name = "12 gauge trainshot shell" + desc = "It's a 12-gauge, 3-pellet tungsten trainshot shotgun shell. Sometimes referred to as the tungsten trinity." + icon_state = "magshell" + projectile_type = /obj/item/projectile/bullet/pellet/trainshot + pellets = 3 + variance = 15 + // BETA STUFF // Obsolete /obj/item/ammo_casing/shotgun/buckshot/test diff --git a/code/modules/projectiles/ammunition/ballistic/sniper.dm b/code/modules/projectiles/ammunition/ballistic/sniper.dm index 1eb265a169..b3c7786a6e 100644 --- a/code/modules/projectiles/ammunition/ballistic/sniper.dm +++ b/code/modules/projectiles/ammunition/ballistic/sniper.dm @@ -32,3 +32,15 @@ desc = "This titanium-reinforced highpower bullet will penetrate anything. Yes. Anything." projectile_type = /obj/item/projectile/bullet/a50MG/penetrator icon_state = "50ap2" + +/obj/item/ammo_casing/a50MG/contam + name = "12.7mm contaminated bullet casing" + desc = "A 12.7mm explosive round where the explosive has been replaced with a chemical smoke payload." + icon_state = "50ex2" + projectile_type = /obj/item/projectile/bullet/a50MG/contam + +/obj/item/ammo_casing/a50MG/uraniumtipped + name = "12.7mm uranium-tipped bullet casing" + desc = "Enriched uranium-tipped 12.7mm rifle rounds." + projectile_type = /obj/item/projectile/bullet/a50MG/uraniumtipped + icon_state = "50ap2" diff --git a/code/modules/projectiles/ammunition/caseless/_caseless.dm b/code/modules/projectiles/ammunition/caseless/_caseless.dm index 213777744d..74ce85472c 100644 --- a/code/modules/projectiles/ammunition/caseless/_caseless.dm +++ b/code/modules/projectiles/ammunition/caseless/_caseless.dm @@ -43,3 +43,11 @@ icon_state = "plasmacan" projectile_type = /obj/item/projectile/f13plasma/plasmacaster firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect/energy + +/obj/item/ammo_casing/caseless/plasmamusket + name = "Plasma can" + desc = "A single use can of plasma for the plasma musket." + caliber = "plasmacaster" + icon_state = "plasmacan" + projectile_type = /obj/item/projectile/f13plasma/plasmamusket + firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect/energy diff --git a/code/modules/projectiles/ammunition/caseless/arrow.dm b/code/modules/projectiles/ammunition/caseless/arrow.dm index 51a1e9000e..bd6c265dff 100644 --- a/code/modules/projectiles/ammunition/caseless/arrow.dm +++ b/code/modules/projectiles/ammunition/caseless/arrow.dm @@ -37,6 +37,20 @@ projectile_type = /obj/item/projectile/bullet/reusable/arrow/burning icon_state = "arrow_burning" +/obj/item/ammo_casing/caseless/arrow/broadhead + name = "broadhead arrow" + desc = "A sharp metal arrow with a broad head. Likely to stick in a wound." + icon = 'icons/fallout/objects/guns/ammo.dmi' + icon_state = "arrow_broadhead" + projectile_type = /obj/item/projectile/bullet/reusable/arrow/broadhead + +/obj/item/ammo_casing/caseless/arrow/serrated + name = "serrated arrow" + icon = 'icons/fallout/objects/guns/ammo.dmi' + desc = "A sharp metal arrow with a wicked sharp serrated teeth. Likely to shred an artery." + icon_state = "arrow_serrated" + projectile_type = /obj/item/projectile/bullet/reusable/arrow/serrated + //CIT ARROWS /obj/item/ammo_casing/caseless/arrow/wood name = "wooden arrow" @@ -50,7 +64,7 @@ /obj/item/ammo_casing/caseless/arrow/bone name = "bone arrow" - desc = "An arrow made of bone and sinew. The tip is sharp enough to pierce through a goliath plate." + desc = "An arrow made of bone and sinew. The tip is sharp enough to pierce through deathclaw hide." icon_state = "bonearrow" projectile_type = /obj/item/projectile/bullet/reusable/arrow/bone diff --git a/code/modules/projectiles/ammunition/caseless/ballistic.dm b/code/modules/projectiles/ammunition/caseless/ballistic.dm index 791a1f9165..7e911c9e02 100644 --- a/code/modules/projectiles/ammunition/caseless/ballistic.dm +++ b/code/modules/projectiles/ammunition/caseless/ballistic.dm @@ -12,11 +12,11 @@ /obj/item/ammo_casing/caseless/g11/incendiary name = "4.73mm tracer cartridge" projectile_type = /obj/item/projectile/bullet/a473/incendiary - + /obj/item/ammo_casing/caseless/g11/uraniumtipped name = "4.73mm U-235 cartridge" projectile_type = /obj/item/projectile/bullet/a473/uraniumtipped - + /obj/item/ammo_casing/caseless/g11/dumdum name = "4.73mm flat-nose cartridge" projectile_type = /obj/item/projectile/bullet/a473/dumdum @@ -27,3 +27,11 @@ caliber = "473mm" icon_state = "762-casing" projectile_type = /obj/item/projectile/bullet/a473/explosive + +/obj/item/ammo_casing/caseless/g11/shock + name = "4.73mm electro-static discharge cartridge" + projectile_type = /obj/item/projectile/bullet/a473/shock + +/obj/item/ammo_casing/caseless/g11/hv + name = "4.73mm highvelocity cartridge" + projectile_type = /obj/item/projectile/bullet/a473/hv diff --git a/code/modules/projectiles/ammunition/caseless/misc.dm b/code/modules/projectiles/ammunition/caseless/misc.dm index c184895c53..14076a6bde 100644 --- a/code/modules/projectiles/ammunition/caseless/misc.dm +++ b/code/modules/projectiles/ammunition/caseless/misc.dm @@ -4,9 +4,21 @@ projectile_type = /obj/item/projectile/bullet/reusable/magspear caliber = "speargun" icon_state = "magspear" - throwforce = 15 //still deadly when thrown + throwforce = 30 //still deadly when thrown throw_speed = 3 +/obj/item/ammo_casing/caseless/magspear/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) + if(!ishuman(hit_atom)) + return ..() + var/mob/living/carbon/human/H = hit_atom + if(istype(H.get_active_held_item(), /obj/item/gun/ballistic/automatic/speargun)) + var/obj/item/gun/ballistic/automatic/speargun/SG = H.get_active_held_item() + if(LAZYLEN(SG.magazine.stored_ammo)) + return ..() + SG.magazine.give_round(src) + SG.chamber_round() + to_chat(H, "[src] magnetically loads itself into the [SG]!") + /obj/item/ammo_casing/caseless/laser name = "laser casing" desc = "You shouldn't be seeing this." diff --git a/code/modules/projectiles/ammunition/energy/plasma.dm b/code/modules/projectiles/ammunition/energy/plasma.dm index d104cb490d..0dd2d7c2cf 100644 --- a/code/modules/projectiles/ammunition/energy/plasma.dm +++ b/code/modules/projectiles/ammunition/energy/plasma.dm @@ -55,3 +55,15 @@ icon_state = "ion" fire_sound = 'sound/f13weapons/plasma_pistol.ogg' e_cost = 1000 //four shots and you're out. use them wisely. + +/obj/item/ammo_casing/energy/plasma/miner + projectile_type = /obj/item/projectile/f13plasma/repeater/mining + select_name = "mining plasma stream" + fire_sound = 'sound/f13weapons/plasma_rifle.ogg' + e_cost = 2.4 //this seems very low but the weapon fires 5 5-damage shots per burst and only fires in bursts + +/obj/item/ammo_casing/energy/plasma/sniper + projectile_type = /obj/item/projectile/f13plasma/plasmasniper + select_name = "plasma bolt" + fire_sound = 'sound/f13weapons/lasmusket_fire.ogg' + e_cost = 1000 diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index 14843bde77..60b582dade 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -6,14 +6,14 @@ //////////////////// -//Shotguns +//Shotguns /obj/item/ammo_box/shotgun icon = 'icons/fallout/objects/guns/ammo.dmi' max_ammo = 12 custom_materials = list(/datum/material/iron = 6000, /datum/material/blackpowder = 1000) ammo_type = /obj/item/ammo_casing/shotgun multiple_sprites = 1 - + /obj/item/ammo_box/shotgun/slug name = "Slug shotgun ammo box" desc = "A box full of shotgun shells." @@ -44,13 +44,11 @@ ammo_type = /obj/item/ammo_casing/shotgun/rubbershot icon_state = "stunbox" -/obj/item/ammo_box/shotgun/improvised +/obj/item/ammo_box/shotgun/improvised name = "homemade shotgun shells" desc = "Recycled paper, plastic, little pieces of metal and gunpowder. Loud but not very effective." - w_class = WEIGHT_CLASS_SMALL max_ammo = 8 multiple_sprites = 1 - custom_materials = list(/datum/material/iron = 2000, /datum/material/blackpowder = 500) ammo_type = /obj/item/ammo_casing/shotgun/improvised icon_state = "improvshotbag" @@ -60,6 +58,11 @@ ammo_type = /obj/item/ammo_casing/shotgun/incendiary icon_state = "mbox" +/obj/item/ammo_box/shotgun/trainshot + name = "trainshot shotshell ammo box" + desc = "A box full of trainshot shells. For hunting trains, you suppose." + ammo_type = /obj/item/ammo_casing/shotgun/trainshot + icon_state = "trainshotbox" //.22 LR /obj/item/ammo_box/m22 @@ -77,6 +80,13 @@ desc = "A box of .22 rubber rounds. For when you want to be useless." ammo_type = /obj/item/ammo_casing/a22/rubber +/obj/item/ammo_box/m22/shock + name = "ammo box (.22lr electroshock)" + icon_state = "22shockbox" + multiple_sprites = 1 + desc = "A box of .22 electroshock rounds." + ammo_type = /obj/item/ammo_casing/a22/shock + //9mm and .38 /obj/item/ammo_box/c9mm name = "ammo box (9mm)" @@ -88,15 +98,6 @@ max_ammo = 30 custom_materials = list(/datum/material/iron = 15000, /datum/material/blackpowder = 1000) -/obj/item/ammo_box/c9mm/wounding - name = "ammo box (9mm wounding)" - icon = 'icons/fallout/objects/guns/ammo.dmi' - icon_state = "9mmbox" - multiple_sprites = 2 - caliber = "9mm" - desc = "A box full of 9mm wounding bullets. They do more damage the closer you are." - ammo_type = /obj/item/ammo_casing/c9mm/wounding - /obj/item/ammo_box/c9mm/rubber name = "ammo box (9mm rubber)" icon = 'icons/fallout/objects/guns/ammo.dmi' @@ -105,6 +106,24 @@ caliber = "9mm" ammo_type = /obj/item/ammo_casing/c9mm/rubber +/obj/item/ammo_box/c9mm/acid + name = "ammo box (9mm acid-tipped)" + desc = "A box of 9mm acid-tipped rounds. This'll sting." + ammo_type = /obj/item/ammo_casing/c9mm/acid + +/obj/item/ammo_box/c9mm/incendiary + name = "ammo box (9mm incendiary-tipped)" + desc = "A box of 9mm incendiary-tipped rounds. This'll burn." + ammo_type = /obj/item/ammo_casing/c9mm/incendiary + +/obj/item/ammo_box/c9mm/improv + name = "bag with reloaded 9mm bullets" + desc = "The casings are worn, the gunpowder some homebrew mix of dubious quality. At least it goes bang." + icon_state = "improvshotbag" + multiple_sprites = 1 + custom_materials = list(/datum/material/iron = 10000, /datum/material/blackpowder = 1000) + ammo_type = /obj/item/ammo_casing/c9mm/improv + /obj/item/ammo_box/c38box name = "ammo box (.38)" icon = 'icons/fallout/objects/guns/ammo.dmi' @@ -122,14 +141,22 @@ multiple_sprites = 2 ammo_type = /obj/item/ammo_casing/c38/rubber +/obj/item/ammo_box/c38box/acid + name = "ammo box (.38 acid-tipped)" + desc = "A box of .38 acid-tipped rounds. This'll sting." + ammo_type = /obj/item/ammo_casing/c38/acid + +/obj/item/ammo_box/c38box/incendiary + name = "ammo box (.38 incendiary-tipped)" + desc = "A box of .38 incendiary-tipped rounds. This'll burn." + ammo_type = /obj/item/ammo_casing/c38/incendiary + /obj/item/ammo_box/c38box/improvised name = "bag with reloaded .38 bullets" desc = "The casings are worn, the gunpowder some homebrew mix of dubious quality. At least it goes bang." icon_state = "improvshotbag" - w_class = WEIGHT_CLASS_SMALL - max_ammo = 8 multiple_sprites = 1 - custom_materials = list(/datum/material/iron = 2000, /datum/material/blackpowder = 500) + ammo_type = /obj/item/ammo_casing/c38/improv //10mm @@ -145,36 +172,20 @@ /obj/item/ammo_box/c10mm/fire - name = "ammo box (10mm Incendiary)" - icon_state = "10mmbox" - max_ammo = 20 + name = "ammo box (10mm incendiary-tipped)" + desc = "A box of 10mm incendiary-tipped rounds. This'll burn." icon = 'icons/fallout/objects/guns/ammo.dmi' - icon_state = "10mmbox" - multiple_sprites = 2 ammo_type = /obj/item/ammo_casing/c10mm/incendiary /obj/item/ammo_box/c10mm/rubber name = "ammo box (10mm rubber)" - icon = 'icons/fallout/objects/guns/ammo.dmi' - icon_state = "10mmbox" - multiple_sprites = 2 ammo_type = /obj/item/ammo_casing/c10mm/rubber -/obj/item/ammo_box/c10mm/wounding - name = "ammo box (10mm wounding)" - icon = 'icons/fallout/objects/guns/ammo.dmi' - icon_state = "10mmbox" - multiple_sprites = 2 - ammo_type = /obj/item/ammo_casing/c10mm/wounding - /obj/item/ammo_box/c10mm/improvised name = "bag with reloaded 10mm bullets" desc = "The casings are worn, the gunpowder some homebrew mix of dubious quality. At least it goes bang." icon_state = "improvshotbag" - w_class = WEIGHT_CLASS_SMALL - max_ammo = 8 multiple_sprites = 1 - custom_materials = list(/datum/material/iron = 2000, /datum/material/blackpowder = 500) //.357 Magnum /obj/item/ammo_box/a357box @@ -190,13 +201,27 @@ /obj/item/ammo_box/a357box/ricochet name = "ammo box (.357 Magnum ricochet)" - max_ammo = 6 - icon = 'icons/fallout/objects/guns/ammo.dmi' - icon_state = "357box" - multiple_sprites = 2 - desc = "Six shots...more than enough to kill anything that moves." + desc = "Six shots...more than enough to kill anything that moves. This box has thirty, so you can kill five things." ammo_type = /obj/item/ammo_casing/a357/ricochet + +/obj/item/ammo_box/a357box/incendiary + name = "ammo box (.357 magnum incendiary-tipped)" + desc = ".357 incendiary-tipped ammo. There's not much else to it." + ammo_type = /obj/item/ammo_casing/a357/incendiary + +/obj/item/ammo_box/a357box/acid + name = "ammo box (.357 magnum acid-tipped)" + desc = ".357 acid-tipped ammo. There's not much else to it, really." + ammo_type = /obj/item/ammo_casing/a357/acid + +/obj/item/ammo_box/a357box/improvised + name = "bag with reloaded .357 bullets" + desc = "The casings are worn, the gunpowder some homebrew mix of dubious quality. At least it goes bang." + ammo_type = /obj/item/ammo_casing/a357/improv + icon_state = "improvshotbag" + multiple_sprites = 1 + //.44 Magnum /obj/item/ammo_box/m44box name = "ammo box (.44 Magnum FMJ)" @@ -209,6 +234,12 @@ w_class = WEIGHT_CLASS_NORMAL custom_materials = list(/datum/material/iron = 14000, /datum/material/blackpowder = 1000) +/obj/item/ammo_box/m44box/incendiary + name = "ammo box (.44 magnum incendiary-tipped)" + desc = "A box of .44 (not 10mm) incendiary-tipped rounds. Filled with a safe homemade naplam made from phosphorus, welding fuel, thickened with abraxo cleaner." + icon = 'icons/fallout/objects/guns/ammo.dmi' + ammo_type = /obj/item/ammo_casing/m44/incendiary + /obj/item/ammo_box/a45lcbox name = "ammo box (.45 Long Colt)" icon = 'icons/fallout/objects/guns/ammo.dmi' @@ -223,10 +254,7 @@ name = "bag with reloaded .44 bullets" desc = "The casings are worn, the gunpowder some homebrew mix of dubious quality. At least it goes bang." icon_state = "improvshotbag" - w_class = WEIGHT_CLASS_SMALL - max_ammo = 8 multiple_sprites = 1 - custom_materials = list(/datum/material/iron = 2000, /datum/material/blackpowder = 500) // .45 ACP @@ -249,22 +277,15 @@ ammo_type = /obj/item/ammo_casing/c45/rubber /obj/item/ammo_box/c45/incendiary - name = "ammo box (.45 incendiary)" + name = "ammo box (.45 incendiary-tipped)" ammo_type = /obj/item/ammo_casing/c45/incendiary - icon = 'icons/fallout/objects/guns/ammo.dmi' - caliber = ".45" - multiple_sprites = 2 - icon_state = "45box" desc = "It's a completely safe idea to fill up a .45 pistol with napalm cartridges. This will not backfire." //it's telling the truth /obj/item/ammo_box/c45/improvised name = "bag with reloaded .45 ACP bullets" desc = "The casings are worn, the gunpowder some homebrew mix of dubious quality. At least it goes bang." icon_state = "improvshotbag" - w_class = WEIGHT_CLASS_SMALL - max_ammo = 8 multiple_sprites = 1 - custom_materials = list(/datum/material/iron = 2000, /datum/material/blackpowder = 500) //.45-70 Gov't @@ -279,6 +300,21 @@ w_class = WEIGHT_CLASS_NORMAL custom_materials = list(/datum/material/iron = 16000, /datum/material/blackpowder = 1500) +/obj/item/ammo_box/c4570box/explosive + name = "ammo box (.45-70 HE)" + desc = ".45-70 Goverment rounds with explosive tips. Surely an archaic blackpowder cartridge with an explosive payload is completely safe." + ammo_type = /obj/item/ammo_casing/c4570/explosive + +/obj/item/ammo_box/c4570box/acid + name = "ammo box (.45-70 acid-tip)" + desc = ".45-70 Goverment rounds with acid tips. Surely an archaic blackpowder cartridge with an acid tip is completely safe." + ammo_type = /obj/item/ammo_casing/c4570/acid + +/obj/item/ammo_box/c4570box/knockback + name = "ammo box (.45-70 ultradense)" + desc = ".45-70 Goverment rounds with heavy, blunt bullets. Sure to knock even an elephant off their footing." + ammo_type = /obj/item/ammo_casing/c4570/knockback + //5mm /obj/item/ammo_box/m5mmbox @@ -292,6 +328,11 @@ w_class = WEIGHT_CLASS_NORMAL custom_materials = list(/datum/material/iron = 24000, /datum/material/blackpowder = 1500) +/obj/item/ammo_box/m5mmbox/shock + name = "ammo box (5mm ESD)" + desc = "Advanced 5mm bullets with electrostatic discharger tips." + ammo_type = /obj/item/ammo_casing/m5mm/shock + custom_materials = list(/datum/material/iron = 24000, /datum/material/blackpowder = 1500, /datum/material/glass = 8000) //5.56x45 /obj/item/ammo_box/a556 name = "ammo box (5.56 FMJ)" @@ -317,28 +358,17 @@ caliber = "a556" ammo_type = /obj/item/ammo_casing/a556/rubber -/obj/item/ammo_box/a556/uraniumtipped - name = "ammo box (5.56 uranium)" - ammo_type = /obj/item/ammo_casing/a556/uraniumtipped - desc = "Even the box is glowing!" - -/obj/item/ammo_box/a556/uraniumtipped/Initialize() - . = ..() - AddComponent(/datum/component/radioactive, 5, src, 0, TRUE, TRUE) //half-life of 0 because we keep on going. - START_PROCESSING(SSradiation,src) - -/obj/item/ammo_box/a556/uraniumtipped/Destroy() - STOP_PROCESSING(SSradiation,src) - ..() - +/obj/item/ammo_box/a556/microshrapnel + name = "ammo box (5.56 microshrapnel)" + desc = "Now with fragments!" + ammo_type = /obj/item/ammo_casing/a556/microshrapnel + custom_materials = list(/datum/material/iron = 20000, /datum/material/blackpowder = 1000) /obj/item/ammo_box/a556/sport/improvised name = "bag with reloaded .223 bullets" desc = "The casings are worn, the gunpowder some homebrew mix of dubious quality. At least it goes bang." - w_class = WEIGHT_CLASS_SMALL - max_ammo = 8 multiple_sprites = 1 - custom_materials = list(/datum/material/iron = 2000, /datum/material/blackpowder = 500) + custom_materials = list(/datum/material/iron = 2000, /datum/material/blackpowder = 500) icon_state = "improvshotbag" @@ -379,13 +409,17 @@ STOP_PROCESSING(SSradiation,src) ..() +/obj/item/ammo_box/a762box/microshrapnel + name = "ammo box (7.62x51 microshrapnel)" + desc = "Now with EVEN MORE fragments!" + ammo_type = /obj/item/ammo_casing/a762/microshrapnel + /obj/item/ammo_box/a762box/rubber name = "ammo box (7.62x51 rubber)" icon = 'icons/fallout/objects/guns/ammo.dmi' icon_state = "762box" multiple_sprites = 2 caliber = "a762" - ammo_type = /obj/item/ammo_casing/a762 ammo_type = /obj/item/ammo_casing/a762/rubber @@ -409,6 +443,17 @@ caliber = "a50MG" ammo_type = /obj/item/ammo_casing/a50MG/rubber +/obj/item/ammo_box/a50MGbox/contam + name = "ammo box (12.7mm contaminated)" + max_ammo = 15 + desc = "12.7mm bullets loaded with a gaseous hepatoxic payload, which reduces the effectiveness of medicine and toxins." + ammo_type = /obj/item/ammo_casing/a50MG/contam + +/obj/item/ammo_box/a50MGbox/uraniumtipped + name = "ammo box (12.7mm uranium-tipped)" + max_ammo = 15 + desc = "12.7mm bullets loaded with enriched-uranium penetrators." + ammo_type = /obj/item/ammo_casing/a50MG/uraniumtipped /obj/item/ammo_box/m14mm name = "ammo box (14mm)" @@ -421,7 +466,21 @@ w_class = WEIGHT_CLASS_NORMAL custom_materials = list(/datum/material/iron = 11000, /datum/material/blackpowder = 1500) +/obj/item/ammo_box/m14mm/contam + name = "ammo box (14mm contaminated)" + desc = "14mm bullets loaded with a gaseous hepatoxic payload, which reduces the effectiveness of medicine and toxins." + ammo_type = /obj/item/ammo_casing/p14mm/contam +/obj/item/ammo_box/m14mm/uraniumtipped + name = "ammo box (14mm contaminated)" + desc = "14mm cartridges loaded with enriched uranium bullets." + ammo_type = /obj/item/ammo_casing/p14mm/uraniumtipped + +/obj/item/ammo_box/m14mm/improv + name = "bag with reloaded 14mm bullets" + desc = "The casings are worn, the gunpowder some homebrew mix of dubious quality. At least it goes bang. Should you really be handloading 14mm like this?" + icon_state = "improvshotbag" + multiple_sprites = 1 //Misc. /obj/item/ammo_box/m473 @@ -432,6 +491,35 @@ ammo_type = /obj/item/ammo_casing/caseless/g11 max_ammo = 50 +/obj/item/ammo_box/m473/rubber + name = "ammo box (4.73mm less-than-lethal)" + ammo_type = /obj/item/ammo_casing/caseless/g11/rubber + +/obj/item/ammo_box/m473/incendiary + name = "ammo box (4.73mm incendiary)" + ammo_type = /obj/item/ammo_casing/caseless/g11/incendiary + +/obj/item/ammo_box/m473/uraniumtipped + name = "ammo box (4.73mm uranium-tipped)" + ammo_type = /obj/item/ammo_casing/caseless/g11/uraniumtipped + +/obj/item/ammo_box/m473/dumdum + name = "ammo box (4.73mm flat-nose)" + ammo_type = /obj/item/ammo_casing/caseless/g11/dumdum + +/obj/item/ammo_box/m473/explosive + name = "ammo box (4.73mm explosive)" + desc = "Explosive caseless rounds. Very safe." + ammo_type = /obj/item/ammo_casing/caseless/g11/explosive + +/obj/item/ammo_box/m473/shock + name = "ammo box (4.73mm ESD)" + ammo_type = /obj/item/ammo_casing/caseless/g11/shock + +/obj/item/ammo_box/m473/hv + name = "ammo box (4.73mm high-velocity)" + ammo_type = /obj/item/ammo_casing/caseless/g11/hv + /obj/item/ammo_box/lasmusket name = "Battery box (Laser musket)" icon = 'icons/fallout/objects/guns/ammo.dmi' @@ -447,7 +535,7 @@ icon = 'icons/fallout/objects/guns/ammo.dmi' icon_state = "plasmusketbox" multiple_sprites = 2 - ammo_type = /obj/item/ammo_casing/caseless/plasmacaster + ammo_type = /obj/item/ammo_casing/caseless/plasmamusket max_ammo = 6 custom_materials = list(MAT_METAL = 1000) w_class = WEIGHT_CLASS_NORMAL @@ -588,7 +676,7 @@ /obj/item/ammo_box/a45lcrev/empty start_empty = 1 - + //.45-70 Gov't /obj/item/ammo_box/c4570 name = "speed loader (.45-70)" @@ -678,6 +766,9 @@ custom_materials = list(/datum/material/iron = 2000) w_class = WEIGHT_CLASS_SMALL +/obj/item/ammo_box/a762/empty + start_empty = 1 + /obj/item/ammo_box/a308 name = "stripper clip (.308)" desc = "A stripper clip." @@ -689,6 +780,9 @@ custom_materials = list(/datum/material/iron = 2000) w_class = WEIGHT_CLASS_SMALL +/obj/item/ammo_box/a308/empty + start_empty = 1 + /obj/item/ammo_box/a762/doublestacked name = "double stack stripper clip (.308)" desc = "A stripper clip." @@ -700,6 +794,9 @@ custom_materials = list(/datum/material/iron = 2000) w_class = WEIGHT_CLASS_SMALL +/obj/item/ammo_box/a762/doublestacked/empty + start_empty = 1 + //5.56x45mm /obj/item/ammo_box/a556/stripper name = "stripper clip (5.56x45mm)" @@ -758,6 +855,11 @@ ammo_type = /obj/item/ammo_casing/a50MG/penetrator icon_state = "50ap" +/obj/item/ammo_box/a50MG/uraniumtipped + name = "anti-materiel uranium-tipped ammo rack (.50MG)" + desc = "5 rounds of uranium-tipped .50 MG, when you really want something to remember what it was like back in '77.'" + ammo_type = /obj/item/ammo_casing/a50MG/uraniumtipped + icon_state = "50ap" //////////////////////////////// // FLAMER FUEL AND OTHER MISC // diff --git a/code/modules/projectiles/boxes_magazines/external/lmg.dm b/code/modules/projectiles/boxes_magazines/external/lmg.dm index 7d587ac045..91973467be 100644 --- a/code/modules/projectiles/boxes_magazines/external/lmg.dm +++ b/code/modules/projectiles/boxes_magazines/external/lmg.dm @@ -70,14 +70,6 @@ /obj/item/ammo_box/magazine/mg34/empty start_empty = 1 -/obj/item/ammo_box/magazine/m2mm - name = "2mm electromagnetic magazine" - icon_state = "2mm" - ammo_type = /obj/item/ammo_casing/c2mm - caliber = "2mm" - max_ammo = 10 - multiple_sprites = 2 - /obj/item/ammo_box/magazine/mm762 name = "ammo belt (.308)" icon_state = "762belt" diff --git a/code/modules/projectiles/boxes_magazines/external/pistol.dm b/code/modules/projectiles/boxes_magazines/external/pistol.dm index 08adcd679c..3e5f06c992 100644 --- a/code/modules/projectiles/boxes_magazines/external/pistol.dm +++ b/code/modules/projectiles/boxes_magazines/external/pistol.dm @@ -53,7 +53,7 @@ icon_state = "m9mmds" ammo_type = /obj/item/ammo_casing/c9mm caliber = "9mm" - max_ammo = 15 + max_ammo = 13 multiple_sprites = 2 diff --git a/code/modules/projectiles/boxes_magazines/external/rifle.dm b/code/modules/projectiles/boxes_magazines/external/rifle.dm index b1302966a7..84b9f9bc3b 100644 --- a/code/modules/projectiles/boxes_magazines/external/rifle.dm +++ b/code/modules/projectiles/boxes_magazines/external/rifle.dm @@ -148,6 +148,14 @@ max_ammo = 50 multiple_sprites = 2 +/obj/item/ammo_box/magazine/m473 + name = "g11 magazine (4.73mm)" + icon_state = "473mm" + caliber = "473mm" + ammo_type = /obj/item/ammo_casing/caseless/g11 + max_ammo = 50 + multiple_sprites = 2 + /obj/item/ammo_box/magazine/m473/explosive name = "g11 magazine (4.73mm explosive)" icon_state = "473mm" @@ -164,3 +172,19 @@ icon_state = "473small" max_ammo = 20 +/obj/item/ammo_box/magazine/m473/small/empty + start_empty = 1 + +/obj/item/ammo_box/magazine/m2mm + name = "2mm electromagnetic magazine" + icon_state = "2mm" + ammo_type = /obj/item/ammo_casing/c2mm + caliber = "2mm" + max_ammo = 10 + multiple_sprites = 2 + +/obj/item/ammo_box/magazine/m2mm/blender + name = "2mm \"Blender\" electromagnetic magazine" + ammo_type = /obj/item/ammo_casing/c2mm/blender + max_ammo = 10 + multiple_sprites = 2 diff --git a/code/modules/projectiles/boxes_magazines/external/smg.dm b/code/modules/projectiles/boxes_magazines/external/smg.dm index 93f515ab00..27c60d021a 100644 --- a/code/modules/projectiles/boxes_magazines/external/smg.dm +++ b/code/modules/projectiles/boxes_magazines/external/smg.dm @@ -16,11 +16,11 @@ start_empty = TRUE /obj/item/ammo_box/magazine/greasegun - name = "Grease gun magazine (9mm)" + name = "SMG magazine (.45)" icon = 'icons/fallout/objects/guns/ammo.dmi' icon_state = "grease" - ammo_type = /obj/item/ammo_casing/c9mm - caliber = "9mm" + ammo_type = /obj/item/ammo_casing/c45 + caliber = ".45" max_ammo = 30 multiple_sprites = 2 diff --git a/code/modules/projectiles/boxes_magazines/internal/bow.dm b/code/modules/projectiles/boxes_magazines/internal/bow.dm index 26ee2db20f..9f9f0ef219 100644 --- a/code/modules/projectiles/boxes_magazines/internal/bow.dm +++ b/code/modules/projectiles/boxes_magazines/internal/bow.dm @@ -1,11 +1,30 @@ /obj/item/ammo_box/magazine/internal/bow - name = "bow... magazine?" //shouldn't be seeing this + name = "bow internal magazine" ammo_type = /obj/item/ammo_casing/caseless/arrow caliber = "arrow" max_ammo = 1 - start_empty = 1 + /obj/item/ammo_box/magazine/internal/bow/xbow - name = "crossbow magazine" //shouldn't be seeing this + name = "crossbow magazine" max_ammo = 4 start_empty = 1 + +//Deathclaw Bow Ammo +/obj/item/ammo_box/magazine/internal/bow/claw + name = "bow internal magazine" + ammo_type = /obj/item/ammo_casing/caseless/arrow + caliber = "arrow" + max_ammo = 7 // 8 shots in total + +//Sturdy Bow Ammo +/obj/item/ammo_box/magazine/internal/bow/sturdy + max_ammo = 2 // 3 shots in total + +//Silver Bow Ammo +/obj/item/ammo_box/magazine/internal/bow/silver + max_ammo = 5 // 6 shots in total + +//Crossbow Ammo +/obj/item/ammo_box/magazine/internal/bow/cross + max_ammo = 3 // 4 shots in total diff --git a/code/modules/projectiles/boxes_magazines/internal/misc.dm b/code/modules/projectiles/boxes_magazines/internal/misc.dm index fca4e7c518..90303bcac1 100644 --- a/code/modules/projectiles/boxes_magazines/internal/misc.dm +++ b/code/modules/projectiles/boxes_magazines/internal/misc.dm @@ -22,40 +22,6 @@ caliber = "m5mm" max_ammo = 480 -//Basic Bow Ammo -/obj/item/ammo_box/magazine/internal/tribalbow - name = "bow internal magazine" - ammo_type = /obj/item/ammo_casing/caseless/arrow - caliber = "arrow" - max_ammo = 1 // 2 shots in total - -//Deathclaw Bow Ammo -/obj/item/ammo_box/magazine/internal/bonebow - name = "bow internal magazine" - ammo_type = /obj/item/ammo_casing/caseless/arrow - caliber = "arrow" - max_ammo = 7 // 8 shots in total - -//Sturdy Bow Ammo -/obj/item/ammo_box/magazine/internal/sturdybow - name = "bow internal magazine" - ammo_type = /obj/item/ammo_casing/caseless/arrow - caliber = "arrow" - max_ammo = 2 // 3 shots in total - -//Silver Bow Ammo -/obj/item/ammo_box/magazine/internal/silverbow - name = "bow internal magazine" - ammo_type = /obj/item/ammo_casing/caseless/arrow - caliber = "arrow" - max_ammo = 5 // 6 shots in total - -//Crossbow Ammo -/obj/item/ammo_box/magazine/internal/crossbow - name = "bow internal magazine" - ammo_type = /obj/item/ammo_casing/caseless/arrow - caliber = "arrow" - max_ammo = 3 // 4 shots in total /obj/item/ammo_box/magazine/internal/m2flamethrower name = "m2 flamethower fuel tank" ammo_type = /obj/item/ammo_casing/caseless/flamethrower diff --git a/code/modules/projectiles/boxes_magazines/internal/shotgun.dm b/code/modules/projectiles/boxes_magazines/internal/shotgun.dm index f05b05ce3a..87ad6cccea 100644 --- a/code/modules/projectiles/boxes_magazines/internal/shotgun.dm +++ b/code/modules/projectiles/boxes_magazines/internal/shotgun.dm @@ -100,3 +100,11 @@ caliber = "plasmacaster" max_ammo = 2 multiload = 1 + +/obj/item/ammo_box/magazine/internal/plasmamusket + name = "plasmamusket magazine" + desc = "Oh god, this shouldn't be here" + ammo_type = /obj/item/ammo_casing/caseless/plasmamusket + caliber = "plasmacaster" + max_ammo = 2 + multiload = 1 diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 8cc7101712..d444c746f1 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -17,11 +17,11 @@ KEYWORDS spread = 1 DOUBLE ACTION REVOLVER - fire_delay = 5 + fire_delay = 5 spread = 1 SEMI-AUTOMATIC PISTOL - fire_delay = 3-5 + fire_delay = 3-5 spread = 2 SEMI-AUTOMATIC RIFLE @@ -38,7 +38,7 @@ KEYWORDS burst_shot_delay = 3 spread = 7-12 - REPEATER + REPEATER fire_delay = 6 spread = 0 @@ -86,14 +86,14 @@ GENERAL RULES SMALL GUNS slowdown = 0.1-0.2 w_class = WEIGHT_CLASS_SMALL - weapon_weight = WEAPON_LIGHT - MEDIUM + weapon_weight = WEAPON_LIGHT - MEDIUM MEDIUM GUNS slowdown = 0.3-0.4 w_class = WEIGHT_CLASS_NORMAL - BULKY - weapon_weight = WEAPON_MEDIUM - HEAVY + weapon_weight = WEAPON_MEDIUM - HEAVY - RIFLES + RIFLES slowdown = 0.5 w_class = WEIGHT_CLASS_BULKY weapon_weight = WEAPON_HEAVY @@ -235,8 +235,6 @@ ATTACHMENTS var/suppressor_y_offset = 0 var/equipsound = 'sound/f13weapons/equipsounds/pistolequip.ogg' - var/isenergy = null - var/isbow = null var/extra_damage = 0 //Number to add to individual bullets. var/extra_penetration = 0 //Number to add to armor penetration of individual bullets. @@ -252,8 +250,10 @@ ATTACHMENTS var/worn_out = FALSE //If true adds overlay with suffix _worn, and a slight malus to stats /// Just 'slightly' snowflakey way to modify projectile damage for projectiles fired from this gun. // var/projectile_damage_multiplier = 1 + var/dryfire_sound = "gun_dry_fire" + var/dryfire_text = "*click*" - var/automatic = 0 //can gun use it, 0 is no, anything above 0 is the delay between clicks in ds + var/automatic = 0 //can gun use it, 0 is no, anything above 0 is the delay between clicks in ds /obj/item/gun/Initialize() . = ..() @@ -319,15 +319,8 @@ ATTACHMENTS return TRUE /obj/item/gun/proc/shoot_with_empty_chamber(mob/living/user as mob|obj) - if (isenergy == TRUE) - to_chat(user, "*power failure*") - playsound(src, 'sound/f13weapons/noammoenergy.ogg', 30, 1) - return - if (isbow == TRUE) - to_chat(user, "*no arrows*") //Insert cool plink plink sound here - return - to_chat(user, "*click*") - playsound(src, "gun_dry_fire", 30, 1) + to_chat(user, "[dryfire_text]") + playsound(src, dryfire_sound, 30, 1) /obj/item/gun/proc/shoot_live_shot(mob/living/user, pointblank = FALSE, mob/pbtarget, message = 1, stam_cost = 0) if(recoil) @@ -455,6 +448,7 @@ ATTACHMENTS addtimer(CALLBACK(G, /obj/item/gun.proc/process_fire, target, user, TRUE, params, null, bonus_spread, stam_cost), loop_counter) var/stam_cost = getstamcost(user) + process_fire(target, user, TRUE, params, null, bonus_spread, stam_cost) /obj/item/gun/can_trigger_gun(mob/living/user) @@ -529,7 +523,9 @@ ATTACHMENTS else if(burst_size > 1 && burst_spread) randomized_gun_spread = rand(0, burst_spread) var/randomized_bonus_spread = rand(0, bonus_spread) - + if(HAS_TRAIT(user, SPREAD_CONTROL)) + randomized_gun_spread = max(0, randomized_gun_spread-8) + randomized_bonus_spread = max(0, randomized_bonus_spread-8) if(burst_size > 1) do_burst_shot(user, target, message, params, zone_override, sprd, randomized_gun_spread, randomized_bonus_spread, rand_spr, 1) for(var/i in 2 to burst_size) @@ -680,7 +676,7 @@ ATTACHMENTS if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) return - + if(can_flashlight && gun_light) I.play_tool_sound(src) var/obj/item/flashlight/seclite/S = gun_light @@ -820,7 +816,7 @@ ATTACHMENTS . += knife_overlay else knife_overlay = null - + if(scope) if(scope.icon_state in icon_states('icons/fallout/objects/guns/attachments.dmi')) scope_overlay = scope.icon_state @@ -964,7 +960,7 @@ ATTACHMENTS UnregisterSignal(user, COMSIG_MOVABLE_MOVED) user.client.change_view(CONFIG_GET(string/default_view)) user.client.pixel_x = 0 - user.client.pixel_y = 0 + user.client.pixel_y = 0 /obj/item/gun/proc/rotate(mob/living/user, old_dir, direction = FALSE) var/_x = 0 @@ -981,7 +977,7 @@ ATTACHMENTS user.client.change_view(zoom_out_amt) user.client.pixel_x = world.icon_size*_x user.client.pixel_y = world.icon_size*_y - + //Proc, so that gun accessories/scopes/etc. can easily add zooming. /obj/item/gun/proc/build_zooming() if(azoom) @@ -1260,4 +1256,3 @@ ICON UPDATE FOR GRADUAL DEPLETION, PLASTIC MAGS ETC /obj/item/gun/ballistic/automatic/wt550/update_icon_state() icon_state = "wt550[magazine ? "-[CEILING(((get_ammo(FALSE) / magazine.max_ammo) * 20) /4, 1)*4]" : "-0"]" //Sprites only support up to 20. */ - diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index 462af0b365..220fe1d26a 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -16,7 +16,7 @@ weapon_weight = WEAPON_HEAVY slot_flags = 0 force = 15 - burst_size = 2 + burst_size = 1 burst_shot_delay = 3 var/automatic_burst_overlay = TRUE var/semi_auto = FALSE @@ -24,6 +24,7 @@ var/auto_eject_sound = null var/alarmed = 0 var/select = 1 + var/is_automatic = FALSE can_suppress = FALSE equipsound = 'sound/f13weapons/equipsounds/riflequip.ogg' @@ -85,7 +86,10 @@ /obj/item/gun/ballistic/automatic/ui_action_click(mob/user, action) if(istype(action, /datum/action/item_action/toggle_firemode)) - burst_select() + if(is_automatic == FALSE) + burst_select() + if(is_automatic == TRUE) + auto_select() else return ..() @@ -108,6 +112,25 @@ var/datum/action/A = X A.UpdateButtonIcon() +/obj/item/gun/ballistic/automatic/proc/auto_select() + var/mob/living/carbon/human/user = usr + if(semi_auto) + to_chat(user, "This weapon is semi-automatic only.") + return + else + select = !select + if(!select) + disable_auto() + to_chat(user, "You switch to semi-automatic.") + else + enable_auto() + to_chat(user, "You switch to automatic fire.") + playsound(user, 'sound/weapons/empty.ogg', 100, 1) + update_icon() + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + /obj/item/gun/ballistic/automatic/proc/enable_burst() burst_size = initial(burst_size) if(auto_sear) @@ -120,6 +143,12 @@ /obj/item/gun/ballistic/automatic/proc/disable_burst() burst_size = initial(burst_size) +/obj/item/gun/ballistic/automatic/proc/enable_auto() + automatic = 1 + +/obj/item/gun/ballistic/automatic/proc/disable_auto() + automatic = 0 + /obj/item/gun/ballistic/automatic/can_shoot() return get_ammo() @@ -169,22 +198,6 @@ force = 12 actions_types = list(/datum/action/item_action/toggle_firemode) - -//Rockwell gun Keywords: 9mm, Automatic, 20/32 rounds. Special modifiers: damage -2 -/obj/item/gun/ballistic/automatic/smg/rockwell - name = "Rockwell gun" - desc = "Post-war submachine gun in 9mm, based on old schematics by T.G. Rockwell for home-made weapons if under enemy occupation. The Rockwell is basically a toploaded sten gun with a pistol grip, allowing makeshift magazines without a spring." - icon_state = "rockwell" - item_state = "rockwell" - mag_type = /obj/item/ammo_box/magazine/uzim9mm - init_mag_type = /obj/item/ammo_box/magazine/uzim9mm/rockwell - burst_shot_delay = 2.75 - recoil = 0.1 - spread = 12 - extra_damage = 18 - can_attachments = TRUE - actions_types = null - //American 180 Keywords: .22 LR, Automatic, 180 rounds /obj/item/gun/ballistic/automatic/smg/american180 name = "American 180" @@ -195,8 +208,12 @@ w_class = WEIGHT_CLASS_BULKY mag_type = /obj/item/ammo_box/magazine/m22smg can_unsuppress = FALSE - burst_shot_delay = 1.5 //rapid fire - extra_damage = 16 + is_automatic = TRUE + automatic = 1 + autofire_shot_delay = 1.75 + spread = 18 + burst_shot_delay = 1.5 + extra_damage = 11 suppressed = 1 actions_types = null fire_sound = 'sound/f13weapons/american180.ogg' @@ -205,13 +222,17 @@ //Greasegun Keywords: 9mm, Automatic, 30 rounds /obj/item/gun/ballistic/automatic/smg/greasegun name = "Grease Gun" - desc = "An inexpensive submachine gun, downscaled and rechambered in 9mm. Very high rate of fire in bursts." + desc = "An inexpensive submachine gun. Has a relatively tame rate of fire." icon_state = "grease_gun" item_state = "smg9mm" mag_type = /obj/item/ammo_box/magazine/greasegun - spread = 8 - extra_damage = 19 - burst_shot_delay = 2.75 + spread = 6 + extra_damage = 20 + burst_shot_delay = 3.25 + is_automatic = TRUE + automatic = 1 + autofire_shot_delay = 3.25 //barely faster than semi-auto + spread = 14 can_attachments = TRUE suppressor_state = "uzi_suppressor" suppressor_x_offset = 26 @@ -219,13 +240,13 @@ actions_types = list(/datum/action/item_action/toggle_firemode) fire_sound = 'sound/f13weapons/greasegun.ogg' -/obj/item/gun/ballistic/automatic/smg/greasegun/burst_select() +/obj/item/gun/ballistic/automatic/smg/greasegun/auto_select() var/mob/living/carbon/human/user = usr switch(select) if(0) select += 1 - burst_size = 2 - spread = 8 + automatic = 1 + spread = 14 fire_delay = 3.25 recoil = 0.1 weapon_weight = WEAPON_HEAVY @@ -233,7 +254,7 @@ enable_burst() if(1) select = 0 - burst_size = 1 + automatic = 0 fire_delay = 3.25 spread = 2 weapon_weight = WEAPON_MEDIUM @@ -246,16 +267,17 @@ name = "beat up M3A1 Grease Gun" desc = "What was once an inexpensive, but reliable submachine gun is now an inexpensive piece of shit. It's impressive this thing still fires at all." can_attachments = FALSE + spread = 16.5 recoil = 0.3 - extra_damage = 17 + extra_damage = 19 -/obj/item/gun/ballistic/automatic/smg/greasegun/worn/burst_select() +/obj/item/gun/ballistic/automatic/smg/greasegun/worn/auto_select() var/mob/living/carbon/human/user = usr switch(select) if(0) select += 1 - burst_size = 2 - spread = 12.5 + automatic = 1 + spread = 16.5 fire_delay = 3.75 recoil = 0.3 weapon_weight = WEAPON_HEAVY @@ -263,7 +285,7 @@ enable_burst() if(1) select = 0 - burst_size = 1 + automatic = 0 fire_delay = 3.75 spread = 2 weapon_weight = WEAPON_HEAVY @@ -282,6 +304,10 @@ icon_prefix = "smg10mm" mag_type = /obj/item/ammo_box/magazine/m10mm_adv init_mag_type = /obj/item/ammo_box/magazine/m10mm_adv/ext + is_automatic = TRUE + automatic = 1 + autofire_shot_delay = 2.25 + spread = 12 extra_damage = 20 extra_penetration = 0.1 recoil = 0.05 @@ -302,13 +328,13 @@ extra_damage = 18 spread = 10 -/obj/item/gun/ballistic/automatic/smg/smg10mm/burst_select() +/obj/item/gun/ballistic/automatic/smg/smg10mm/auto_select() var/mob/living/carbon/human/user = usr switch(select) if(0) select += 1 - burst_size = 2 - spread = 9 + automatic = 1 + spread = 12 fire_delay = 3.25 recoil = 0.1 weapon_weight = WEAPON_HEAVY @@ -316,7 +342,7 @@ enable_burst() if(1) select = 0 - burst_size = 1 + automatic = 0 fire_delay = 3.25 spread = 2 weapon_weight = WEAPON_MEDIUM @@ -334,7 +360,11 @@ mag_type = /obj/item/ammo_box/magazine/uzim9mm fire_delay = 3 burst_shot_delay = 2.5 - extra_damage = 18 + is_automatic = TRUE + automatic = 1 + autofire_shot_delay = 2 + spread = 18 + extra_damage = 15 can_suppress = TRUE can_attachments = TRUE spread = 10 @@ -343,21 +373,21 @@ suppressor_y_offset = 16 actions_types = list(/datum/action/item_action/toggle_firemode) -/obj/item/gun/ballistic/automatic/smg/mini_uzi/burst_select() +/obj/item/gun/ballistic/automatic/smg/mini_uzi/auto_select() var/mob/living/carbon/human/user = usr switch(select) if(0) select += 1 - burst_size = 2 - spread = 11 + automatic = 1 + spread = 16 fire_delay = 3 - recoil = 0.1 + recoil = 0.2 weapon_weight = WEAPON_HEAVY to_chat(user, "You switch to automatic fire.") enable_burst() if(1) select = 0 - burst_size = 1 + automatic = 0 fire_delay = 3 spread = 3 weapon_weight = WEAPON_MEDIUM @@ -374,9 +404,12 @@ icon_state = "cg45" item_state = "cg45" mag_type = /obj/item/ammo_box/magazine/cg45 + is_automatic = TRUE + automatic = 1 + autofire_shot_delay = 2.25 + spread = 12 fire_delay = 3.5 extra_damage = 20 - spread = 8 recoil = 0.1 can_attachments = TRUE fire_sound = 'sound/f13weapons/10mm_fire_03.ogg' @@ -393,7 +426,9 @@ mag_type = /obj/item/ammo_box/magazine/tommygunm45 init_mag_type = /obj/item/ammo_box/magazine/tommygunm45/stick fire_sound = 'sound/weapons/gunshot_smg.ogg' - burst_size = 3 + is_automatic = TRUE + automatic = 1 + autofire_shot_delay = 2.25 burst_shot_delay = 2.75 fire_delay = 3.75 extra_damage = 25 @@ -405,11 +440,9 @@ name = "Storm Drum" desc = "A recovered ancient Thompson from an armory far up North. Commonly used by raiders of the White Legs tribe." mag_type = /obj/item/ammo_box/magazine/tommygunm45/stick - semi_auto = TRUE fire_delay = 3.75 extra_damage = 23 - burst_size = 2 - spread = 10 + spread = 19 //P90 Keywords: 10mm, Automatic, 50 rounds. Special modifiers: damage +1 /obj/item/gun/ballistic/automatic/smg/p90 @@ -421,9 +454,12 @@ mag_type = /obj/item/ammo_box/magazine/m10mm_p90 extra_damage = 22 extra_penetration = 0.15 - burst_size = 3 + burst_size = 1 fire_delay = 3 - spread = 7 + spread = 14 + is_automatic = TRUE + automatic = 1 + autofire_shot_delay = 2 burst_shot_delay = 2.5 extra_damage = 1 recoil = 0.25 @@ -436,8 +472,8 @@ /obj/item/gun/ballistic/automatic/smg/p90/worn name = "Worn FN P90c" desc = "A FN P90 manufactured by Fabrique Nationale. This one is beat to hell but still works." - fire_delay = 4 - burst_size = 2 + autofire_shot_delay = 2.25 + spread = 16 extra_damage = 20 @@ -448,8 +484,11 @@ icon_state = "mp5" item_state = "fnfal" mag_type = /obj/item/ammo_box/magazine/uzim9mm - spread = 8 + spread = 10 fire_delay = 3.5 + is_automatic = TRUE + automatic = 1 + autofire_shot_delay = 2 burst_shot_delay = 2 extra_damage = 18 suppressed = 1 @@ -469,8 +508,10 @@ w_class = WEIGHT_CLASS_BULKY mag_type = /obj/item/ammo_box/magazine/pps9mm spread = 20 - burst_size = 3 fire_delay = 6 + is_automatic = TRUE + automatic = 1 + autofire_shot_delay = 2.25 burst_shot_delay = 1.5 extra_damage = 18 extra_penetration = 0.05 @@ -564,23 +605,25 @@ icon_state = "[initial(icon_state)][magazine ? "-[magazine.max_ammo]" : ""][chambered ? "" : "-e"][stock ? "" : "-f"]" -//WT-550 4.7mm, 20 round magazine, low damage/low AP +//WT-550 4.7mm, 20 round magazine /obj/item/gun/ballistic/automatic/wt550 - name = "Prototype Carbine" - desc = "A carbine made by vault-tec, chambered in a curious caseless round and designed to fire a multitude of bullets. It has 'WT-550' on the side. This one looks like it was repaired by the Oasis citizenry." - item_state = "wt550" + name = "WT-550" + desc = "A compact PDW derived from the G11, firing the same 4.73mm rounds." + item_state = "WT550" mag_type = /obj/item/ammo_box/magazine/m473/small - semi_auto = TRUE burst_size = 1 - extra_damage = 15 + is_automatic = TRUE + automatic = TRUE + extra_damage = 20 + autofire_shot_delay = 1.75 extra_penetration = 0.2 w_class = WEIGHT_CLASS_NORMAL weapon_weight = WEAPON_MEDIUM - spread = 0 //low-recoil + forward grip - fire_delay = 3 - - - + spread = 0 + fire_delay = 1 + can_bayonet = TRUE + knife_x_offset = 25 + knife_y_offset = 12 //////////////////// //SEMI-AUTO RIFLES// @@ -645,6 +688,23 @@ scope_x_offset = 6 scope_y_offset = 14 +//'Verminkiller' Keywords: 5.56, 10/20/30 round magazine, Suppressed, Scoped, 25 damage +//Basically an obtainable ratslayer +/obj/item/gun/ballistic/automatic/varmint/verminkiller + name = "verminkiller rifle" + desc = "Legends are told of the \"Ratslayer\", a custom-made souped-up varmint rifle with a sick paintjob. This is a pale imitation, made of chopped-up bits of other guns." + icon_state = "verminrifle" + item_state = "ratslayer" + extra_damage = 25 + suppressed = 1 + zoomable = TRUE + zoom_amt = 10 + zoom_out_amt = 13 + can_scope = FALSE + can_unsuppress = FALSE + suppressor_state = "none" + fire_sound = 'sound/weapons/Gunshot_large_silenced.ogg' + //Ratslayer Keywords: UNIQUE, 5.56, 10/20/30 round magazine, Suppressed, Scoped, Extra damage +3 /obj/item/gun/ballistic/automatic/varmint/ratslayer name = "Ratslayer" @@ -669,7 +729,7 @@ icon_prefix = "servicerifle" mag_type = /obj/item/ammo_box/magazine/m556/rifle slowdown = 0.45 - fire_delay = 3.5 + fire_delay = 3 burst_size = 1 spread = 1 extra_damage = 25 @@ -708,9 +768,8 @@ name = "scout carbine" desc = "A cut down version of the standard-issue service rifle tapped with mounting holes for a scope. Shorter barrel, lower muzzle velocity." icon_state = "scout_carbine" - fire_delay = 4 - spread = 1.1 - slowdown = 0.4 + spread = 1.2 + slowdown = 0.3 extra_damage = 25 can_scope = TRUE scope_state = "scope_short" @@ -723,7 +782,7 @@ //Police rifle Keywords: OASIS, 5.56mm, Semi-auto, 20 (10-50) round magazine /obj/item/gun/ballistic/automatic/marksman/policerifle name = "Police Rifle" - desc = "A pre-war Rifle that has been constantly repaired and rebuilt by the Oasis Police Department. Held together by duct tape and prayers, it somehow still shoots." + desc = "A pre-war Rifle that has been constantly repaired and rebuilt by the Oasis Police Department. Held together by duct tape and prayers, it somehow still shoots. This one is chambered in 5.56." icon = 'icons/fallout/objects/guns/ballistic.dmi' lefthand_file = 'icons/fallout/onmob/weapons/guns_lefthand.dmi' righthand_file = 'icons/fallout/onmob/weapons/guns_righthand.dmi' @@ -769,6 +828,23 @@ suppressor_y_offset = 15 fire_sound = 'sound/f13weapons/marksman_rifle.ogg' +/obj/item/gun/ballistic/automatic/marksman/policerifle + name = "Police Rifle" + desc = "A pre-war Rifle that has been constantly repaired and rebuilt by the Oasis Police Department. Held together by duct tape and prayers, it somehow still shoots. This one has been re-chambered to 5.56" + icon = 'icons/fallout/objects/guns/ballistic.dmi' + lefthand_file = 'icons/fallout/onmob/weapons/guns_lefthand.dmi' + righthand_file = 'icons/fallout/onmob/weapons/guns_righthand.dmi' + icon_prefix = "assault_carbine" + icon_state = "rifle-police" + item_state = "assault_carbine" + init_mag_type = /obj/item/ammo_box/magazine/m556/rifle + extra_damage = 25 + extra_penetration = 0.1 + spread = 1.1 + fire_delay = 4.5 + can_suppress = FALSE + can_scope = TRUE + zoomable = FALSE //Colt Rangemaster Keywords: 7.62mm, Semi-auto, 10/20 round magazine, 35dmg /obj/item/gun/ballistic/automatic/rangemaster @@ -906,7 +982,7 @@ fire_sound = 'sound/f13weapons/hunting_rifle.ogg' -//DKS 501 sniper rifle Keywords: .308, Semi-auto, 7 round magazine, Scoped, Extra speed +500, Fire delay +1, 45dmg +//DKS 501 sniper rifle Keywords: .308, Semi-auto, 7 round magazine, Scoped, Extra speed +500, Fire delay +1, 45dmg /obj/item/gun/ballistic/automatic/marksman/sniper name = "sniper rifle" desc = "A DKS 501, chambered in .308 Winchester. With a light polymer body, it's suited for long treks through the desert." @@ -917,8 +993,8 @@ fire_delay = 8 burst_size = 1 extra_speed = 800 - extra_penetration = 0.25 - extra_damage = 45 + extra_penetration = 0.2 + extra_damage = 35 zoom_amt = 10 zoom_out_amt = 13 semi_auto = TRUE @@ -946,8 +1022,12 @@ icon_state = "R82" item_state = "R84" icon_prefix = "r82" - extra_damage = 28 + extra_damage = 25 fire_delay = 2.5 + is_automatic = TRUE + automatic = 1 //pseudo-automatic + autofire_shot_delay = 4 + spread = 1.5 can_suppress = TRUE suppressor_state = "rifle_suppressor" suppressor_x_offset = 27 @@ -961,10 +1041,14 @@ icon_state = "assault_rifle" item_state = "fnfal" mag_type = /obj/item/ammo_box/magazine/m556/rifle - fire_delay = 4 - spread = 8 + fire_delay = 2.5 + slowdown = 0.45 + spread = 12 extra_damage = 23 - recoil = 0.1 + recoil = 0.15 + is_automatic = TRUE + automatic = 1 + autofire_shot_delay = 2.5 can_attachments = TRUE can_bayonet = FALSE bayonet_state = "rifles" @@ -989,6 +1073,9 @@ spread = 9 fire_delay = 3.5 burst_shot_delay = 2 + is_automatic = TRUE + automatic = 1 + autofire_shot_delay = 3 recoil = 0.6 can_suppress = FALSE can_unsuppress = FALSE @@ -1023,7 +1110,7 @@ can_bayonet = FALSE fire_sound = 'sound/weapons/Gunshot_large_silenced.ogg' -//Type 93 Chinese rifle Keywords: 5.56mm, Automatic, 20 (10-50) round magazine, 26dmg +//Type 93 Chinese rifle Keywords: 5.56mm, Automatic, 20 (10-50) round magazine /obj/item/gun/ballistic/automatic/type93 name = "type 93 assault rifle" desc = "The Type 93 Chinese assault rifle was designed and manufactured by a Chinese industrial conglomerate for the People's Liberation Army during the Resource Wars, for the purpose of equipping the Chinese infiltrators and American fifth-columnists. Chambered in 5.56x45." @@ -1032,10 +1119,13 @@ icon_prefix = "handmade_rifle" mag_type = /obj/item/ammo_box/magazine/m556/rifle fire_delay = 4 - spread = 10 + spread = 14 extra_damage = 23 extra_penetration = 0.05 - recoil = 0.1 + is_automatic = TRUE + automatic = 1 + autofire_shot_delay = 3 + recoil = 0.2 can_suppress = TRUE suppressor_state = "rifle_suppressor" suppressor_x_offset = 27 @@ -1063,11 +1153,13 @@ item_state = "sniper" slot_flags = SLOT_BACK mag_type = /obj/item/ammo_box/magazine/m556/rifle - burst_size = 3 + is_automatic = TRUE + automatic = 1 + autofire_shot_delay = 2 burst_shot_delay = 1.5 extra_damage = 25 fire_delay = 3 - spread = 4 + spread = 10 recoil = 0.1 can_attachments = FALSE zoomable = TRUE @@ -1078,7 +1170,7 @@ fire_sound = 'sound/f13weapons/bozar_fire.ogg' -//Assault Carbine Keywords: 5mm, Automatic, 30 round magazine, Flashlight, 19dmg/0.15AP +//Assault Carbine Keywords: 5mm, Automatic, 30 round magazine, Flashlight, 20dmg/0.25AP /obj/item/gun/ballistic/automatic/assault_carbine name = "assault carbine" desc = "The U.S. army carbine version of the R91, made by Colt and issued to special forces." @@ -1089,9 +1181,12 @@ mag_type = /obj/item/ammo_box/magazine/m5mm fire_delay = 3 burst_shot_delay = 2.0 + is_automatic = TRUE + automatic = 1 + autofire_shot_delay = 2.2 extra_damage = 20 extra_penetration = 0.25 - spread = 6 //high-velocity + spread = 10 //high-velocity can_attachments = TRUE can_scope = TRUE scope_state = "scope_short" @@ -1107,16 +1202,29 @@ flight_y_offset = 21 actions_types = list(/datum/action/item_action/toggle_firemode) fire_sound = 'sound/f13weapons/assault_carbine.ogg' - -/obj/item/gun/ballistic/automatic/assault_carbine/worn + + //Police rifle Keywords: OASIS, 5mm, Semi-auto, 30 round magazine +/obj/item/gun/ballistic/automatic/assault_carbine/policerifle + name = "Police Rifle" + desc = "A pre-war Rifle that has been constantly repaired and rebuilt by the Oasis Police Department. Held together by duct tape and prayers, it somehow still shoots." + icon = 'icons/fallout/objects/guns/ballistic.dmi' + lefthand_file = 'icons/fallout/onmob/weapons/guns_lefthand.dmi' + righthand_file = 'icons/fallout/onmob/weapons/guns_righthand.dmi' + icon_state = "rifle-police" + autofire_shot_delay = 3.5 //not a real auto-gun + extra_damage = 22 + spread = 9 //longer barrel + can_scope = TRUE + +/obj/item/gun/ballistic/automatic/assault_carbine/worn name = "worn assault carbine" desc = "The U.S. army carbine version of the R91, made by Colt and issued to special forces. This one is beat-up and falling apart." icon_state = "assault_carbine" fire_delay = 3.5 - burst_shot_delay = 2.5 - extra_penetration = 0.15 - spread = 10 - extra_damage = 18 + burst_shot_delay = 2.2 + spread = 14 + extra_damage = 17 + extra_penetration = 0.2 //FN-FAL Keywords: 7.62mm, Automatic, 10/20 round magazine /obj/item/gun/ballistic/automatic/fnfal @@ -1127,35 +1235,100 @@ force = 20 extra_damage = 30 fire_delay = 3.5 + is_automatic = TRUE + automatic = 1 + autofire_shot_delay = 3 mag_type = /obj/item/ammo_box/magazine/m762 spread = 12 recoil = 0.25 actions_types = list(/datum/action/item_action/toggle_firemode) fire_sound = 'sound/f13weapons/assaultrifle_fire.ogg' +/obj/item/gun/ballistic/automatic/bar + name = "automatic rifle (.308)" + desc = "An ancient machine gun that looks like outdated even by pre-war standards. It has Colt etched on one-side and Sierra Madre on the other. It is alarmingly heavy for a rifle." + icon = 'icons/fallout/objects/guns/bar.dmi' + slot_flags = ITEM_SLOT_BACK + icon_state = "BAR" + item_state = "BAR" + icon_prefix = "BAR" + automatic = 1 + force = 24 //club + slowdown = 1.25 //really goddamn big + autofire_shot_delay = 2.75 + extra_damage = 28 + spread = 12 + recoil = 0.3 + actions_types = list(/datum/action/item_action/toggle_firemode) + fire_sound = 'sound/f13weapons/assaultrifle_fire.ogg' //H&K G11 Keywords: 4.73mm, Automatic, 50 round magazine /obj/item/gun/ballistic/automatic/g11 name = "g11" - desc = "This experimental german gun fires a caseless cartridge consisting of a block of propellant with a bullet buried inside. The weight and space savings allows for a very high magazine capacity. Chambered in 4.73mm." + desc = "This experimental gun fires a caseless cartridge consisting of a block of propellant with a bullet buried inside. The weight and space savings allows for a very high magazine capacity. Chambered in 4.73mm." icon_state = "g11" item_state = "g11" mag_type = /obj/item/ammo_box/magazine/m473 - extra_damage = 23 - fire_delay = 2.5 - burst_shot_delay = 1.5 + burst_size = 1 + extra_damage = 22.5 + fire_delay = 2 + is_automatic = TRUE + automatic = FALSE extra_penetration = 0.1 - extra_damage = 3 + autofire_shot_delay = 1.75 + burst_shot_delay = 0.5 can_attachments = TRUE - can_automatic = TRUE semi_auto = TRUE can_scope = FALSE - spread = 8 + spread = 0 zoomable = TRUE zoom_amt = 10 zoom_out_amt = 13 + actions_types = list(/datum/action/item_action/toggle_firemode) + select = 0 +/obj/item/gun/ballistic/automatic/g11/ui_action_click(mob/user, action) + if(istype(action, /datum/action/item_action/toggle_firemode)) + burst_select() + else + return ..() +/obj/item/gun/ballistic/automatic/g11/burst_select() + var/mob/living/carbon/human/user = usr + switch(select) + if(0) + select += 1 + if(burst_improvement) + burst_size = 5 + else + burst_size = 3 + automatic = FALSE + if(recoil_decrease) + burst_spread = 5.5 + else + burst_spread = 7.5 + recoil = 0.25 + to_chat(user, "You switch to burst fire.") + if(1) + select += 1 + burst_size = 1 + automatic = TRUE + if(recoil_decrease) + burst_spread = 8.5 + else + burst_spread = 12.5 + recoil = 0.5 + to_chat(user, "You switch to full-auto.") + if(2) + select = 0 + burst_size = 1 + automatic = FALSE + spread = 0 + recoil = 0 + to_chat(user, "You switch to semi-auto.") + playsound(user, 'sound/weapons/empty.ogg', 100, 1) + update_icon() + return //////////////// //MACHINE-GUNS// @@ -1171,35 +1344,16 @@ slowdown = 1 mag_type = /obj/item/ammo_box/magazine/lmg extra_damage = 23 - burst_size = 1 fire_delay = 6 burst_shot_delay = 2.5 + is_automatic = TRUE + automatic = 1 + autofire_shot_delay = 3 + spread = 11 can_attachments = FALSE - actions_types = list(/datum/action/item_action/toggle_firemode) + actions_types = null fire_sound = 'sound/f13weapons/assaultrifle_fire.ogg' -/obj/item/gun/ballistic/automatic/r84/burst_select() - var/mob/living/carbon/human/user = usr - switch(select) - if(0) - select += 1 - burst_size = 2 - spread = 8 - extra_damage = 23 - recoil = 0.25 - to_chat(user, "You switch to burst fire.") - if(1) - select = 0 - burst_size = 5 - spread = 14 - extra_damage = 23 - recoil = 0.75 - to_chat(user, "You switch to full auto.") - playsound(user, 'sound/weapons/empty.ogg', 100, 1) - update_icon() - return - - //LSW squad support weapon Keywords: 5.56mm, Automatic, 20 (10-50) round magazine, Scoped, Damage decrease (bullethose) /obj/item/gun/ballistic/automatic/lsw name = "LSW (Light Support Weapon)" @@ -1255,15 +1409,18 @@ slot_flags = 0 slowdown = 1.25 mag_type = /obj/item/ammo_box/magazine/mm762 - burst_size = 1 burst_shot_delay = 1.5 + is_automatic = TRUE + automatic = 1 + autofire_shot_delay = 3.25 fire_delay = 4 extra_damage = 28 - spread = 8 + extra_penetration = 0.05 + spread = 14 //open bolt machine gun with no stock can_attachments = FALSE var/cover_open = FALSE var/require_twohands = FALSE - actions_types = list(/datum/action/item_action/toggle_firemode) + actions_types = null fire_sound = 'sound/f13weapons/assaultrifle_fire.ogg' /obj/item/gun/ballistic/automatic/m1919/update_icon() @@ -1313,27 +1470,6 @@ return ..() -/obj/item/gun/ballistic/automatic/m1919/burst_select() - var/mob/living/carbon/human/user = usr - switch(select) - if(0) - select += 1 - burst_size = 2 - spread = 8 - extra_damage = 28 - recoil = 0.25 - to_chat(user, "You switch to burst fire.") - if(1) - select = 0 - burst_size = 4 - spread = 18 - extra_damage = 28 - recoil = 1 - to_chat(user, "You switch to full auto.") - playsound(user, 'sound/weapons/empty.ogg', 100, 1) - update_icon() - return - //////// @@ -1366,9 +1502,12 @@ mag_type = /obj/item/ammo_box/magazine/m556/rifle fire_delay = 2 burst_shot_delay = 2 + is_automatic = TRUE + automatic = 1 + autofire_shot_delay = 2.5 spawnwithmagazine = TRUE extra_damage = 25 - spread = 4 + spread = 8 can_attachments = TRUE zoomable = TRUE zoom_amt = 10 diff --git a/code/modules/projectiles/guns/ballistic/bow.dm b/code/modules/projectiles/guns/ballistic/bow.dm index b482212d21..c3e5939bf2 100644 --- a/code/modules/projectiles/guns/ballistic/bow.dm +++ b/code/modules/projectiles/guns/ballistic/bow.dm @@ -1,69 +1,81 @@ /obj/item/gun/ballistic/bow - name = "wooden bow" - desc = "Some sort of primitive projectile weapon. Used to fire arrows." + name = "base bow" + desc = "base type of bow used to define features for multiple-loading bows" icon_state = "bow" item_state = "bow" icon_prefix = "bow" - w_class = WEIGHT_CLASS_BULKY + w_class = WEIGHT_CLASS_NORMAL weapon_weight = WEAPON_HEAVY //need both hands to fire force = 5 mag_type = /obj/item/ammo_box/magazine/internal/bow fire_sound = 'sound/weapons/bowfire.wav' slot_flags = ITEM_SLOT_BACK item_flags = NONE - casing_ejector = FALSE inaccuracy_modifier = 0 //to counteract the innaccuracy from WEAPON_HEAVY, bows are supposed to be accurate but only able to be fired with both hands pin = null no_pin_required = TRUE trigger_guard = TRIGGER_GUARD_NONE //so ashwalkers can use it spawnwithmagazine = TRUE + var/recentdraw + var/draw_sound = 'sound/weapons/bowdraw.wav' + dryfire_text = "*no arrows*" + dryfire_sound = "" -/obj/item/gun/ballistic/bow/shoot_with_empty_chamber() - return - -/obj/item/gun/ballistic/bow/chamber_round() - chambered = magazine.get_round(1) +/obj/item/gun/ballistic/bow/process_chamber(mob/living/user, empty_chamber = 0) + var/obj/item/ammo_casing/AC = chambered //Find chambered round + if(istype(AC)) //there's a chambered round + if(casing_ejector) + AC.forceMove(drop_location()) //Eject casing onto ground. + AC.bounce_away(TRUE) + chambered = null + else if(empty_chamber) + chambered = null -/obj/item/gun/ballistic/bow/process_chamber() - chambered = null - magazine.get_round(0) - update_icon() +/obj/item/gun/ballistic/bow/can_shoot() + return chambered /obj/item/gun/ballistic/bow/attack_self(mob/living/user) - if (chambered) + if(chambered) user.put_in_hands(chambered) chambered = null + update_icon() to_chat(user, "You gently release the bowstring, removing the arrow.") - else if (get_ammo()) - to_chat(user, "You draw back the bowstring.") - playsound(src, 'sound/weapons/bowdraw.wav', 75, 0) //gets way too high pitched if the freq varies - chamber_round() + return + if(recentdraw > world.time || !get_ammo(FALSE)) + return + draw(user, TRUE) + recentdraw = world.time + 2 + return + +/obj/item/gun/ballistic/bow/proc/draw(mob/M, visible = TRUE) + if(visible) + M.visible_message("[M] draws the string on [src]!", "You draw the string on [src]!") + playsound(M, draw_sound, 60, 1) + draw_load(M) update_icon() + return 1 + +/obj/item/gun/ballistic/bow/proc/draw_load(mob/M) + if(!magazine.ammo_count()) + return 0 + var/obj/item/ammo_casing/AC = magazine.get_round() //load next casing. + chambered = AC -/obj/item/gun/ballistic/bow/attackby(obj/item/I, mob/user, params) - if (magazine.attackby(I, user, params, 1)) - to_chat(user, "You notch the arrow.") +/obj/item/gun/ballistic/bow/attackby(obj/item/A, mob/user, params) + if(magazine.attackby(A, user, params, 1)) + to_chat(user, "You load [A] into \the [src].") update_icon() -/obj/item/gun/ballistic/bow/update_icon_state() +/obj/item/gun/ballistic/bow/update_icon() icon_state = "[initial(icon_state)]_[get_ammo() ? (chambered ? "firing" : "loaded") : "unloaded"]" -/obj/item/gun/ballistic/bow/can_shoot() - return chambered - -/obj/item/gun/ballistic/bow/ashen - name = "bone bow" - desc = "Some sort of primitive projectile weapon made of bone and sinew. Used to fire arrows." - icon_state = "ashenbow" - item_state = "ashenbow" - force = 8 -/obj/item/gun/ballistic/bow/pipe - name = "pipe bow" - desc = "Some sort of pipe-based projectile weapon made of string and lots of bending. Used to fire arrows." - icon_state = "pipebow" - item_state = "pipebow" - force = 2 +/obj/item/gun/ballistic/bow/do_fire(atom/target, mob/living/user, message = TRUE, params, zone_override = "", bonus_spread = 0, stam_cost = 0) + ..() + if(HAS_TRAIT(user, TRAIT_AUTO_DRAW) && !chambered && get_ammo(FALSE)) + user.visible_message("[user] instinctively draws the string on [src]!", "You instinctively draw the string on [src]!") + draw(user, FALSE) + recentdraw = world.time + 2 /obj/item/gun/ballistic/bow/xbow name = "magazine-fed crossbow" @@ -73,9 +85,63 @@ icon_prefix = "xbow" extra_damage = 3 //generally won't reduce TTK, but does increase performance against armor, especially with AP arrows mag_type = /obj/item/ammo_box/magazine/internal/bow/xbow + extra_speed = 400 -/obj/item/gun/ballistic/bow/xbow/attackby(obj/item/I, mob/user, params) - if (magazine.attackby(I, user, params, 1)) - to_chat(user, "You slide the arrow into the magazine.") - update_icon() +//Regular Bow +/obj/item/gun/ballistic/bow/tribal + name = "short bow" + desc = "A simple wooden bow with small pieces of turquiose, cheaply made and small enough to fit most bags, better then nothing I guess." + icon_state = "tribalbow" + item_state = "tribalbow" + icon_prefix = "tribalbow" + w_class = WEIGHT_CLASS_NORMAL + force = 10 + + +//Bone Bow +/obj/item/gun/ballistic/bow/claw + name = "deathclaw bow" + desc = "A bone bow, made of pieces of sinew and deathclaw skin for extra structure, it is a fierce weapon that all expert hunters and bowmen carry, allowing for ease of firing many arrows." + icon_state = "ashenbow" + item_state = "ashenbow" + icon_prefix = "ashenbow" + force = 20 + mag_type = /obj/item/ammo_box/magazine/internal/bow/claw + fire_delay = 2 + extra_speed = 100 + +//Sturdy Bow +/obj/item/gun/ballistic/bow/sturdy + name = "sturdy bow" + desc = "A firm sturdy wooden bow with leather handles and sinew wrapping, for extra stopping power in the shot speed of the arrows." + force = 15 + mag_type = /obj/item/ammo_box/magazine/internal/bow/sturdy + extra_speed = 300 + +//Silver Bow +/obj/item/gun/ballistic/bow/silver + name = "silver bow" + desc = "A firm sturdy silver bow created by the earth, its durability and rather strong material allow it to be an excellent option for those looking for the ability to fire more arrows than normally." + icon_state = "pipebow" + item_state = "pipebow" + icon_prefix = "pipebow" + force = 15 + mag_type = /obj/item/ammo_box/magazine/internal/bow/silver + fire_delay = 1.5 + +//Crossbow +/obj/item/gun/ballistic/bow/crossbow + name = "crossbow" + desc = "A crossbow." + icon_state = "crossbow" + item_state = "crossbow" + icon_prefix = "crossbow" + force = 10 + mag_type = /obj/item/ammo_box/magazine/internal/bow/cross + fire_delay = 1.5 + extra_speed = 400 + zoomable = TRUE + zoom_amt = 10 + zoom_out_amt = 13 + can_scope = FALSE diff --git a/code/modules/projectiles/guns/ballistic/launchers.dm b/code/modules/projectiles/guns/ballistic/launchers.dm index f085afbd4e..dc8764142d 100644 --- a/code/modules/projectiles/guns/ballistic/launchers.dm +++ b/code/modules/projectiles/guns/ballistic/launchers.dm @@ -56,8 +56,12 @@ burst_size = 1 fire_delay = 0 select = 0 - actions_types = list() + zoomable = TRUE + zoom_amt = 10 + zoom_out_amt = 13 + actions_types = list(/datum/action/item_action/retract_spears) casing_ejector = FALSE + var/list/ourcasings = list() /obj/item/gun/ballistic/automatic/speargun/ComponentInitialize() . = ..() @@ -73,6 +77,27 @@ update_icon() chamber_round() +/datum/action/item_action/retract_spears + name = "Magentize Spears" + desc = "Magnetically re-attract all your launched spears!" + check_flags = AB_CHECK_CONSCIOUS|AB_CHECK_RESTRAINED|AB_CHECK_STUN|AB_CHECK_LYING + icon_icon = 'icons/mob/actions/actions_items.dmi' + button_icon_state = "recall_spear" + +/datum/action/item_action/retract_spears/Trigger() + var/obj/item/gun/ballistic/automatic/speargun/SG = target + var/obj/item/thethrown + for(var/i in SG.ourcasings) + thethrown = i + thethrown.safe_throw_at(owner, 50, 2) + SG.ourcasings.Cut() + +/datum/action/item_action/retract_spears/IsAvailable() + . = ..() + var/obj/item/gun/ballistic/automatic/speargun/SG = target + if(!LAZYLEN(SG.ourcasings)) + return FALSE + /obj/item/gun/ballistic/rocketlauncher name = "\improper rocket launcher" desc = "Technically, this is actually a rocket propelled grenade launcher, rather than a true rocket launcher. The person you shot is unlikely to care much, though." @@ -157,165 +182,3 @@ "You look around after realizing you're still here, then proceed to choke yourself to death with [src]!") sleep(20) return OXYLOSS - -//Regular Bow -/obj/item/gun/ballistic/automatic/tribalbow - name = "short bow" - desc = "A simple wooden bow with small pieces of turquiose, cheaply made and small enough to fit most bags, better then nothing I guess." - icon_state = "tribalbow" - item_state = "tribalbow" - w_class = WEIGHT_CLASS_NORMAL - force = 10 - can_suppress = FALSE - mag_type = /obj/item/ammo_box/magazine/internal/tribalbow - fire_sound = 'sound/weapons/grenadelaunch.ogg' - burst_size = 1 - fire_delay = 0.5 - select = 0 - actions_types = list() - casing_ejector = FALSE - isbow = TRUE - -/obj/item/gun/ballistic/automatic/tribalbow/update_icon() - return - -/obj/item/gun/ballistic/automatic/tribalbow/attack_self() - return - -/obj/item/gun/ballistic/automatic/tribalbow/attackby(obj/item/A, mob/user, params) - var/num_loaded = magazine.attackby(A, user, params, 1) - if(num_loaded) - to_chat(user, "You load [num_loaded] arrow\s into \the [src].") - update_icon() - chamber_round() - -//Bone Bow -/obj/item/gun/ballistic/automatic/bonebow - name = "deathclaw bow" - desc = "A bone bow, made of pieces of sinew and deathclaw skin for extra structure, it is a fierce weapon that all expert hunters and bowmen carry, allowing for ease of firing many arrows." - icon_state = "ashenbow_unloaded" - item_state = "ashenbow" - w_class = WEIGHT_CLASS_BULKY - force = 20 - can_suppress = FALSE - mag_type = /obj/item/ammo_box/magazine/internal/bonebow - fire_sound = 'sound/weapons/grenadelaunch.ogg' - burst_size = 1 - fire_delay = 2 - select = 0 - extra_speed = 100 - actions_types = list() - casing_ejector = FALSE - isbow = TRUE - -/obj/item/gun/ballistic/automatic/bonebow/update_icon() - return - -/obj/item/gun/ballistic/automatic/bonebow/attack_self() - return - -/obj/item/gun/ballistic/automatic/bonebow/attackby(obj/item/A, mob/user, params) - var/num_loaded = magazine.attackby(A, user, params, 1) - if(num_loaded) - to_chat(user, "You load [num_loaded] arrow\s into \the [src].") - update_icon() - chamber_round() - -//Sturdy Bow -/obj/item/gun/ballistic/automatic/sturdybow - name = "sturdy bow" - desc = "A firm sturdy wooden bow with leather handles and sinew wrapping, for extra stopping power in the shot speed of the arrows." - icon_state = "bow_unloaded" - item_state = "bow" - w_class = WEIGHT_CLASS_NORMAL - force = 15 - can_suppress = FALSE - mag_type = /obj/item/ammo_box/magazine/internal/sturdybow - fire_sound = 'sound/weapons/grenadelaunch.ogg' - burst_size = 1 - fire_delay = 1 - select = 0 - extra_speed = 300 - actions_types = list() - casing_ejector = FALSE - isbow = TRUE - -/obj/item/gun/ballistic/automatic/sturdybow/update_icon() - return - -/obj/item/gun/ballistic/automatic/sturdybow/attack_self() - return - -/obj/item/gun/ballistic/automatic/sturdybow/attackby(obj/item/A, mob/user, params) - var/num_loaded = magazine.attackby(A, user, params, 1) - if(num_loaded) - to_chat(user, "You load [num_loaded] arrow\s into \the [src].") - update_icon() - chamber_round() - -//Silver Bow -/obj/item/gun/ballistic/automatic/silverbow - name = "silver bow" - desc = "A firm sturdy silver bow created by the earth, its durability and rather strong material allow it to be an excellent option for those looking for the ability to fire more arrows than normally." - icon_state = "pipebow_unloaded" - item_state = "pipebow" - w_class = WEIGHT_CLASS_BULKY - force = 15 - can_suppress = FALSE - mag_type = /obj/item/ammo_box/magazine/internal/silverbow - fire_sound = 'sound/weapons/grenadelaunch.ogg' - burst_size = 1 - fire_delay = 1.5 - select = 0 - actions_types = list() - casing_ejector = FALSE - isbow = TRUE - -/obj/item/gun/ballistic/automatic/silverbow/update_icon() - return - -/obj/item/gun/ballistic/automatic/silverbow/attack_self() - return - -/obj/item/gun/ballistic/automatic/silverbow/attackby(obj/item/A, mob/user, params) - var/num_loaded = magazine.attackby(A, user, params, 1) - if(num_loaded) - to_chat(user, "You load [num_loaded] arrow\s into \the [src].") - update_icon() - chamber_round() - -//Crossbow -/obj/item/gun/ballistic/automatic/crossbow - name = "crossbow" - desc = "A crossbow." - icon_state = "crossbow" - item_state = "crossbow" - w_class = WEIGHT_CLASS_NORMAL - force = 10 - can_suppress = FALSE - mag_type = /obj/item/ammo_box/magazine/internal/crossbow - fire_sound = 'sound/weapons/grenadelaunch.ogg' - burst_size = 1 - fire_delay = 1.5 - select = 0 - extra_speed = 400 - actions_types = list() - casing_ejector = FALSE - isbow = TRUE - zoomable = TRUE - zoom_amt = 10 - zoom_out_amt = 13 - can_scope = FALSE - -/obj/item/gun/ballistic/automatic/crossbow/update_icon() - return - -/obj/item/gun/ballistic/automatic/crossbow/attack_self() - return - -/obj/item/gun/ballistic/automatic/crossbow/attackby(obj/item/A, mob/user, params) - var/num_loaded = magazine.attackby(A, user, params, 1) - if(num_loaded) - to_chat(user, "You load [num_loaded] arrow\s into \the [src].") - update_icon() - chamber_round() diff --git a/code/modules/projectiles/guns/ballistic/minigun.dm b/code/modules/projectiles/guns/ballistic/minigun.dm index 820bafe91d..634363007c 100644 --- a/code/modules/projectiles/guns/ballistic/minigun.dm +++ b/code/modules/projectiles/guns/ballistic/minigun.dm @@ -94,11 +94,13 @@ slowdown = 2 slot_flags = null w_class = WEIGHT_CLASS_HUGE - burst_size = 5 + burst_size = 1 + automatic = 1 + autofire_shot_delay = 1.25 burst_shot_delay = 1 fire_delay = 1 ranged_attack_speed = CLICK_CD_RAPID - spread = 10 + spread = 12 weapon_weight = WEAPON_HEAVY extra_penetration = 0 extra_damage = 10 diff --git a/code/modules/projectiles/guns/ballistic/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm index 1e634dc0f6..788a251420 100644 --- a/code/modules/projectiles/guns/ballistic/pistol.dm +++ b/code/modules/projectiles/guns/ballistic/pistol.dm @@ -118,13 +118,14 @@ fire_sound = 'sound/f13weapons/10mm_fire_02.ogg' -//Browning Hi-power Keywords: 9mm, Semi-auto, 10 round magazine +//Browning Hi-power Keywords: 9mm, Semi-auto /obj/item/gun/ballistic/automatic/pistol/ninemil name = "Browning Hi-power" desc = "A mass produced pre-war Browning Hi-power 9mm pistol." icon_state = "ninemil" - mag_type = /obj/item/ammo_box/magazine/m9mm + mag_type = /obj/item/ammo_box/magazine/m9mmds weapon_weight = WEAPON_LIGHT + w_class = WEIGHT_CLASS_SMALL extra_damage = 20 fire_delay = 2.5 can_attachments = TRUE @@ -159,24 +160,15 @@ suppressor_y_offset = 20 fire_sound = 'sound/f13weapons/9mm.ogg' -//side grade to the peacemaker Keywords: OASIS, 9mm, Semi-auto, 10 round magazine, 0 spread, faster rate of fire, bullet speed +100, probably needs a new sprite -/obj/item/gun/ballistic/automatic/pistol/sig/commissioner - name = "The Defender" - desc = "A modified Sig P225 salvaged from the boneyard. Boasts a faster rate of fire and laser-like accuracy. It has 'To Protect and Serve' etched on the side." - w_class = WEIGHT_CLASS_SMALL - extra_damage = 30 - fire_delay = 1.7 - extra_speed = 100 - spread = 0 - -//Beretta M9FS Keywords: 9mm, Semi-auto, 15 round magazine. Special modifiers: spread -1 +//Beretta M9FS Keywords: 9mm, Semi-auto. Special modifiers: spread -1 /obj/item/gun/ballistic/automatic/pistol/beretta name = "Beretta M9FS" desc = "One of the more common 9mm pistols, the Beretta is popular due to its reliability, 15 round magazine and good looks." icon_state = "beretta" mag_type = /obj/item/ammo_box/magazine/m9mmds fire_delay = 3.5 + weapon_weight = WEAPON_LIGHT extra_damage = 20 spread = 1 can_attachments = TRUE @@ -246,21 +238,6 @@ recoil = 0.05 fire_delay = 4 -//M1911 compact Keywords: .45 ACP, Semi-auto, Short barrel, 8 round magazine. Special modifiers: damage +1 -/obj/item/gun/ballistic/automatic/pistol/m1911/compact - name = "M1911 compact" - desc = "The compact version of the classic .45 handgun." - icon_state = "c1911" - w_class = WEIGHT_CLASS_SMALL - weapon_weight = WEAPON_LIGHT - extra_damage = 28 - spread = 4 - suppressor_x_offset = 29 - suppressor_y_offset = 21 - -/obj/item/gun/ballistic/automatic/pistol/m1911/no_mag - spawnwithmagazine = FALSE - //Mk. 23 Keywords: .45 ACP, Semi-auto, Long barrel (lasersight), 12 round magazine, Flashlight /obj/item/gun/ballistic/automatic/pistol/mk23 diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index b64ed171da..9deb7a080b 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -7,7 +7,7 @@ desc = "should not exist." icon_state = "revolver" mag_type = /obj/item/ammo_box/magazine/internal/cylinder - fire_delay = 4.5 + fire_delay = 4.5 spread = 1 force = 12 // Pistol whip casing_ejector = FALSE @@ -139,27 +139,10 @@ obj_flags = UNIQUE_RENAME var/list/safe_calibers -///////////////////// -// 10 MM REVOLVERS // -///////////////////// - -//Colt 6520 Keywords: 10mm, Double action, 12 rounds cylinder -/obj/item/gun/ballistic/revolver/colt6520 - name = "Colt 6520" - desc = "The Colt 6520 10mm double action revolver is a highly durable weapon developed by Colt Firearms prior to the Great War. It proved to be resistant to the desert-like conditions of the post-nuclear wasteland and is a fine example of workmanship and quality construction." - icon_state = "colt6520" - extra_damage = 24 - extra_penetration = 0.1 - fire_delay = 4.5 - recoil = 0.05 - mag_type = /obj/item/ammo_box/magazine/internal/cylinder/rev6520 - fire_sound = 'sound/f13weapons/10mm_fire_02.ogg' - - - -/////////////////////// +/////////////////// // .45 ACP REVOLVERS // -/////////////////////// +/////////////////// + //S&W 45 Keywords: .45, Single action, 7 rounds cylinder, Long barrel /obj/item/gun/ballistic/revolver/revolver45 @@ -202,8 +185,8 @@ extra_damage = 40 fire_delay = 3 block_chance = 20 - -//Police revolver Keywords: .357, Double action, 6 rounds cylinder, Pocket Pistol + +//Police revolver Keywords: .357, Double action, 6 rounds cylinder, Pocket Pistol /obj/item/gun/ballistic/revolver/police name = "police revolver" desc = "Pre-war double action police revolver chambered in .357 magnum." @@ -389,6 +372,7 @@ desc = "A strange pistol firing rifle ammunition, possibly damaging the users wrist and with poor accuracy." icon_state = "thatgun" mag_type = /obj/item/ammo_box/magazine/internal/cylinder/thatgun + weapon_weight = WEAPON_MEDIUM extra_damage = 33 extra_penetration = 0.2 spread = 4 diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index 16f819df6b..c7ce0d52b7 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -31,6 +31,7 @@ spawnwithmagazine = TRUE var/pump_sound = 'sound/weapons/shotgunpump.ogg' fire_sound = 'sound/f13weapons/shotgun.ogg' + var/pump_stam_cost = 2 /obj/item/gun/ballistic/rifle/process_chamber(mob/living/user, empty_chamber = 0) return ..() //changed argument value @@ -50,7 +51,7 @@ else recentpump = world.time + 10 if(istype(user))//CIT CHANGE - makes pumping shotguns cost a lil bit of stamina. - user.adjustStaminaLossBuffered(2) //CIT CHANGE - DITTO. make this scale inversely to the strength stat when stats/skills are added + user.adjustStaminaLossBuffered(pump_stam_cost) //CIT CHANGE - DITTO. make this scale inversely to the strength stat when stats/skills are added return /obj/item/gun/ballistic/rifle/blow_up(mob/user) @@ -98,6 +99,7 @@ can_scope = TRUE scope_state = "scope_long" fire_delay = 5 + slowdown = 0.35 scope_x_offset = 5 scope_y_offset = 13 pump_sound = 'sound/f13weapons/cowboyrepeaterreload.ogg' @@ -115,7 +117,7 @@ item_state = "cowboyrepeater" mag_type = /obj/item/ammo_box/magazine/internal/shot/tube357 extra_damage = 35 - fire_delay = 4.5 + extra_speed = 300 fire_sound = 'sound/f13weapons/cowboyrepeaterfire.ogg' @@ -127,6 +129,7 @@ item_state = "trailcarbine" mag_type = /obj/item/ammo_box/magazine/internal/shot/tube44 extra_damage = 40 + extra_speed = 200 fire_sound = 'sound/f13weapons/44mag.ogg' @@ -139,6 +142,7 @@ mag_type = /obj/item/ammo_box/magazine/internal/shot/tube4570 extra_damage = 50 extra_penetration = 0.05 + extra_speed = 100 fire_delay = 5.1 recoil = 0.15 fire_sound = 'sound/f13weapons/brushgunfire.ogg' @@ -248,16 +252,16 @@ pump_sound = 'sound/weapons/boltpump.ogg' fire_sound = 'sound/f13weapons/boltfire.ogg' -//Lee-Enfield,SMLE Keywords: 7.62, Bolt-action, 5 rounds internal, short barrel (-2 damage, -100 velocity, -2 melee, less slowdown), faster firing rate +//Lee-Enfield,SMLE Keywords: 7.62, Bolt-action, 5 rounds internal, very fast firing rate, high stamina cost on working bolt /obj/item/gun/ballistic/rifle/enfield name = "Lee-Enfield rifle" desc = "A british rifle sometimes known as the SMLE. It seems to have been re-chambered in .308." icon_state = "enfield2" item_state = "308" mag_type = /obj/item/ammo_box/magazine/internal/boltaction - extra_damage = 35 - extra_speed = 500 - fire_delay = 10 + extra_damage = 40 + extra_speed = 600 + fire_delay = 6 slowdown = 0.35 force = 16 can_scope = TRUE @@ -270,6 +274,7 @@ knife_y_offset = 21 pump_sound = 'sound/weapons/boltpump.ogg' fire_sound = 'sound/f13weapons/boltfire.ogg' + pump_stam_cost = 15 diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index 41a783d7ed..b6946f3987 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -39,7 +39,8 @@ /// SET THIS TO TRUE IF YOU OVERRIDE altafterattack() or ANY right click action! If this is FALSE, the gun will show in examine its default right click behavior, which is to switch modes. var/right_click_overridden = FALSE - isenergy = TRUE + dryfire_sound = 'sound/f13weapons/noammoenergy.ogg' + dryfire_text = "*power failure*" /obj/item/gun/energy/emp_act(severity) . = ..() @@ -105,12 +106,6 @@ recharge_newshot(TRUE) update_icon() -// ATTACK SELF IGNORING PARENT RETURN VALUE -/obj/item/gun/energy/attack_self(mob/living/user) - . = ..() - if(can_select_fire(user)) - select_fire(user) - /obj/item/gun/energy/can_shoot() var/obj/item/ammo_casing/energy/shot = ammo_type[current_firemode_index] return !QDELETED(cell) ? (cell.charge >= shot.e_cost) : FALSE @@ -204,7 +199,7 @@ return user_set_firemode_to_next(user) /obj/item/gun/energy/proc/can_select_fire(mob/living/user) - return TRUE + return (length(ammo_type) > 1) #define INCREMENT_OR_WRAP(i) i = (i >= length(ammo_type))? 1 : (i + 1) #define DECREMENT_OR_WRAP(i) i = (i <= 1)? length(ammo_type) : (i - 1) @@ -361,25 +356,14 @@ else to_chat(user, "There's no cell in \the [src].") return - else + else return /obj/item/gun/energy/attack_self(mob/living/user) - if (!ishuman(user)) + . = ..() + if(can_select_fire(user)) + select_fire(user) return - if(cell) - if(can_charge == 0 && can_remove == 0) - to_chat(user, "You can't remove the cell from \the [src].") - return - cell.forceMove(drop_location()) - user.put_in_hands(cell) - cell.update_icon() - cell = null - to_chat(user, "You pull the cell out of \the [src].") - playsound(src, 'sound/f13weapons/equipsounds/laserreload.ogg', 50, 1) - else - to_chat(user, "There's no cell in \the [src].") - return /obj/item/gun/energy/attackby(obj/item/A, mob/user, params) diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 48202255f2..ae3c577ef4 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -206,7 +206,7 @@ fire_delay = 0 slowdown = 0.2 w_class = WEIGHT_CLASS_NORMAL - weapon_weight = WEAPON_LIGHT + weapon_weight = WEAPON_MEDIUM slot_flags = ITEM_SLOT_BELT ammo_type = list(/obj/item/ammo_casing/energy/laser/pistol/wattz/hitscan) cell_type = /obj/item/stock_parts/cell/ammo/ec @@ -227,8 +227,9 @@ can_remove = 0 can_charge = 0 selfcharge = 1 + icon_state = "rechargerpistol" w_class = WEIGHT_CLASS_SMALL - weapon_weight = WEAPON_LIGHT + weapon_weight = WEAPON_MEDIUM slot_flags = ITEM_SLOT_BELT ammo_type = list(/obj/item/ammo_casing/energy/laser/pistol/recharger/hitscan) cell_type = /obj/item/stock_parts/cell/ammo/breeder @@ -242,7 +243,7 @@ icon_state = "AEP7" item_state = "laser-pistol" w_class = WEIGHT_CLASS_NORMAL - weapon_weight = WEAPON_LIGHT + weapon_weight = WEAPON_MEDIUM slot_flags = ITEM_SLOT_BELT ammo_type = list(/obj/item/ammo_casing/energy/laser/pistol/hitscan) cell_type = /obj/item/stock_parts/cell/ammo/ec @@ -450,7 +451,10 @@ icon_state = "lasercw" item_state = "rcw" fire_delay = 3 - burst_size = 2 + burst_size = 1 + automatic = 1 + autofire_shot_delay = 2 + spread = 14 ammo_type = list(/obj/item/ammo_casing/energy/laser/rcw/hitscan) cell_type = /obj/item/stock_parts/cell/ammo/ecp equipsound = 'sound/f13weapons/equipsounds/RCWequip.ogg' @@ -476,7 +480,7 @@ icon_state = "alienblaster" desc = "This weapon is unlike any other you've ever seen before, and appears to be made out of metals not usually found on Earth. It certainly packs a punch, though." w_class = WEIGHT_CLASS_NORMAL - weapon_weight = WEAPON_LIGHT + weapon_weight = WEAPON_MEDIUM slot_flags = ITEM_SLOT_BELT can_charge = FALSE ammo_type = list(/obj/item/ammo_casing/energy/plasma/pistol/alien) @@ -490,7 +494,7 @@ icon_state = "gammagun" item_state = "gammagun" w_class = WEIGHT_CLASS_NORMAL - weapon_weight = WEAPON_LIGHT + weapon_weight = WEAPON_MEDIUM slot_flags = ITEM_SLOT_BELT ammo_type = list(/obj/item/ammo_casing/energy/gammagun) cell_type = /obj/item/stock_parts/cell/ammo/mfc @@ -596,9 +600,11 @@ slot_flags = null w_class = WEIGHT_CLASS_HUGE custom_materials = null - burst_size = 5 + burst_size = 1 burst_shot_delay = 1 - ranged_attack_speed = CLICK_CD_RAPID + automatic = 1 + autofire_shot_delay = 1.8 + spread = 6 fire_delay = 1 weapon_weight = WEAPON_HEAVY fire_sound = 'sound/weapons/laser.ogg' diff --git a/code/modules/projectiles/guns/energy/plasmaf13.dm b/code/modules/projectiles/guns/energy/plasmaf13.dm index 570e6d0dd3..4d3b775807 100644 --- a/code/modules/projectiles/guns/energy/plasmaf13.dm +++ b/code/modules/projectiles/guns/energy/plasmaf13.dm @@ -11,7 +11,7 @@ icon_state = "plasma-pistol" desc = "A pistol-sized miniaturized plasma caster built by REPCONN. It fires a bolt of superhot ionized gas." w_class = WEIGHT_CLASS_NORMAL - weapon_weight = WEAPON_LIGHT + weapon_weight = WEAPON_MEDIUM slot_flags = ITEM_SLOT_BELT ammo_type = list(/obj/item/ammo_casing/energy/plasma/pistol) cell_type = /obj/item/stock_parts/cell/ammo/ec @@ -103,3 +103,74 @@ equipsound = 'sound/f13weapons/equipsounds/plasequip.ogg' ammo_type = list(/obj/item/ammo_casing/energy/plasma/scatter) cell_type = /obj/item/stock_parts/cell/ammo/mfc + + +/obj/item/gun/energy/laser/plasma/spear + name = "ergonomic plasmacaster" + icon = 'icons/fallout/objects/melee/twohanded.dmi' + lefthand_file = 'icons/fallout/onmob/weapons/melee2h_lefthand.dmi' + righthand_file = 'icons/fallout/onmob/weapons/melee2h_righthand.dmi' + mob_overlay_icon = 'icons/fallout/onmob/backslot_weapon.dmi' + item_state = "plasma" + icon_state = "plasma" + w_class = WEIGHT_CLASS_BULKY + weapon_weight = WEAPON_LIGHT //you need to wield it to fire it + slot_flags = ITEM_SLOT_BACK + desc = "An ergonomic pre-war plasmacaster designed for precision mining work. This one appears to be built into a single thick staff, with a bulbous hilt and sharp saturnite alloy blades ringing the caster assembly- strongly resembling sort of spear." + ammo_type = list(/obj/item/ammo_casing/energy/plasma/miner) + cell_type = /obj/item/stock_parts/cell/ammo/ecp + sharpness = SHARP_EDGED + max_reach = 2 + force = 20 + burst_size = 5 + burst_shot_delay = 0.5 + fire_delay = 10 + scope_y_offset = 16 + equipsound = 'sound/f13weapons/equipsounds/plasequip.ogg' + var/twohands = FALSE + +/obj/item/gun/energy/laser/plasma/spear/ComponentInitialize() + . = ..() + AddComponent(/datum/component/two_handed, force_unwielded=20, force_wielded=40, icon_wielded="[item_state]2") + AddElement(/datum/element/update_icon_updates_onmob) + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, .proc/allow_fire) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, .proc/deny_fire) + +/obj/item/gun/energy/laser/plasma/spear/proc/allow_fire() + twohands = TRUE +/obj/item/gun/energy/laser/plasma/spear/proc/deny_fire() + twohands = FALSE + +/obj/item/gun/energy/laser/plasma/spear/Destroy() + ..() + UnregisterSignal(src, list(COMSIG_TWOHANDED_WIELD, + COMSIG_TWOHANDED_UNWIELD)) + +/obj/item/gun/energy/laser/plasma/spear/can_shoot() + . = ..() + if(!twohands) + return FALSE + + +//Plasma Cannon. +/obj/item/gun/energy/laser/plasma/sniper + name = "Plasma Cannon" + desc = "A refined design, taking the common wasteland plasma musket and improving upon it. Trash parts and safety hazards give way to proper stamped and machined construction. It's even been fitted with a scope and designed to take MFCs rather than shoddy plasma cans." + icon = 'icons/fallout/objects/guns/energy.dmi' + icon_state = "plasmasniper" + item_state = "plasmamusket" + slowdown = 0.3 + ammo_type = list(/obj/item/ammo_casing/energy/plasma/sniper) + cell_type = /obj/item/stock_parts/cell/ammo/mfc + fire_delay = 30 + dryfire_sound = 'sound/f13weapons/noammoenergy.ogg' + dryfire_text = "*power failure*" + can_bayonet = TRUE + knife_x_offset = 22 + knife_y_offset = 20 + bayonet_state = "bayonet" + zoomable = TRUE + zoom_amt = 10 + zoom_out_amt = 13 + fire_sound = 'sound/f13weapons/lasmusket_fire.ogg' + equipsound = 'sound/f13weapons/equipsounds/plasequip.ogg' diff --git a/code/modules/projectiles/guns/hoboguns.dm b/code/modules/projectiles/guns/hoboguns.dm index eb5bf3e90a..8c665f92c2 100644 --- a/code/modules/projectiles/guns/hoboguns.dm +++ b/code/modules/projectiles/guns/hoboguns.dm @@ -176,7 +176,7 @@ item_state = "knucklegun" w_class = WEIGHT_CLASS_SMALL weapon_weight = WEAPON_LIGHT - slot_flags = ITEM_SLOT_GLOVES + slot_flags = ITEM_SLOT_GLOVES mag_type = /obj/item/ammo_box/magazine/internal/cylinder/improvised45 force = 24 fire_delay = 0.25 @@ -224,13 +224,14 @@ item_state = "lasmusket" mag_type = /obj/item/ammo_box/magazine/internal/shot/lasmusket fire_delay = 15 - isenergy = TRUE + dryfire_sound = 'sound/f13weapons/noammoenergy.ogg' + dryfire_text = "*power failure*" var/bolt_open = FALSE can_bayonet = TRUE knife_x_offset = 22 knife_y_offset = 20 bayonet_state = "bayonet" - scope_state = "scope_long" + scope_state = "scope_short" scope_x_offset = 11 scope_y_offset = 14 fire_sound = 'sound/f13weapons/lasmusket_fire.ogg' @@ -244,13 +245,12 @@ desc = "The cooling looks dubious and is that a empty can of beans used as a safety valve? Pray the plasma goes towards the enemy and not your face when you pull the trigger." icon_state = "plasmamusket" item_state = "plasmamusket" - mag_type = /obj/item/ammo_box/magazine/internal/plasmacaster + mag_type = /obj/item/ammo_box/magazine/internal/plasmamusket fire_delay = 20 var/bolt_open = FALSE - isenergy = TRUE - scope_state = "scope_medium" - scope_x_offset = 9 - scope_y_offset = 20 + dryfire_sound = 'sound/f13weapons/noammoenergy.ogg' + dryfire_text = "*power failure*" + can_scope = FALSE fire_sound = 'sound/f13weapons/lasmusket_fire.ogg' pump_sound = 'sound/f13weapons/lasmusket_crank.ogg' equipsound = 'sound/f13weapons/equipsounds/aep7equip.ogg' diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 8e5104f8d2..76825bbdeb 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -147,10 +147,11 @@ var/impact_effect_type //what type of impact effect to show when hitting something var/log_override = FALSE //is this type spammed enough to not log? (KAs) + var/supereffective_damage = 0 + var/list/supereffective_faction //Any mob with a faction that exists in this list will take bonus damage + var/temporary_unstoppable_movement = FALSE - ///If defined, on hit we create an item of this type then call hitby() on the hit target with this, mainly used for embedding items (bullets) in targets - var/shrapnel_type ///If TRUE, hit mobs even if they're on the floor and not our target var/hit_stunned_targets = FALSE @@ -166,7 +167,7 @@ . = ..() permutated = list() decayedRange = range - if(embedding) + if(LAZYLEN(embedding)) updateEmbedding() /** @@ -178,7 +179,7 @@ if(wound_bonus != CANT_WOUND) wound_bonus += wound_falloff_tile bare_wound_bonus = max(0, bare_wound_bonus + wound_falloff_tile) - if(embedding) + if(LAZYLEN(embedding)) embedding["embed_chance"] += embed_falloff_tile if(range <= 0 && loc) on_range() @@ -359,6 +360,12 @@ #define FORCE_QDEL 3 //Force deletion. /obj/item/projectile/proc/process_hit(turf/T, atom/target, qdel_self, hit_something = FALSE) //probably needs to be reworked entirely when pixel movement is done. + if(isliving(target) && LAZYLEN(supereffective_faction)) + var/mob/living/L = target + for(var/F in L.faction) + if(F in supereffective_faction) + damage += supereffective_damage + break if(QDELETED(src) || !T || !target) //We're done, nothing's left. if((qdel_self == FORCE_QDEL) || ((qdel_self == QDEL_SELF) && !temporary_unstoppable_movement && !CHECK_BITFIELD(movement_type, UNSTOPPABLE))) qdel(src) @@ -480,8 +487,8 @@ /obj/item/projectile/proc/fire(angle, atom/direct_target) if(fired_from) SEND_SIGNAL(fired_from, COMSIG_PROJECTILE_BEFORE_FIRE, src, original) //If no angle needs to resolve it from xo/yo! - if(shrapnel_type) - AddElement(/datum/element/embed, projectile_payload = shrapnel_type) + if(LAZYLEN(embedding))//our embedding stats change, possibly + updateEmbedding() if(!log_override && firer && original) log_combat(firer, original, "fired at", src, "from [get_area_name(src, TRUE)]") if(direct_target) diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 3ee0f975a6..43dc39f32c 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -272,7 +272,29 @@ icon_state = "plasma_clot" damage_type = BURN damage = 60 - flag = "laser" + flag = "energy" + eyeblur = 0 + is_reflectable = TRUE + pixels_per_second = TILES_TO_PIXELS(50) + +//plasma musket +/obj/item/projectile/f13plasma/plasmamusket + name = "plasma bolt" + icon_state = "plasma_clot" + damage_type = BURN + damage = 50 + flag = "energy" + eyeblur = 0 + is_reflectable = TRUE + pixels_per_second = TILES_TO_PIXELS(50) + +//plasma cannon +/obj/item/projectile/f13plasma/plasmasniper + name = "plasma bolt" + icon_state = "plasma_clot" + damage_type = BURN + damage = 53 + flag = "energy" eyeblur = 0 is_reflectable = TRUE pixels_per_second = TILES_TO_PIXELS(50) @@ -326,7 +348,7 @@ /obj/item/projectile/beam/laser/pistol/hitscan //hitscan AEP7 name = "laser beam" - damage = 19 + damage = 20 hitscan = TRUE armour_penetration = 0.02 tracer_type = /obj/effect/projectile/tracer/laser @@ -377,7 +399,7 @@ /obj/item/projectile/beam/laser/pistol/wattz/hitscan //hitscan wattz name = "weak laser beam" - damage = 15 + damage = 17 hitscan = TRUE tracer_type = /obj/effect/projectile/tracer/laser muzzle_type = /obj/effect/projectile/muzzle/laser @@ -390,9 +412,9 @@ /obj/item/projectile/beam/laser/pistol/wattz/magneto/hitscan name = "penetrating laser beam" - damage = 15 + damage = 17 hitscan = TRUE - armour_penetration = 0.2 //rare laser to keep its AP, since base model is so bad + armour_penetration = 0.22 //rare laser to keep its AP, since base model is so bad tracer_type = /obj/effect/projectile/tracer/laser muzzle_type = /obj/effect/projectile/muzzle/laser impact_type = /obj/effect/projectile/impact/laser @@ -453,6 +475,21 @@ eyeblur = 0 is_reflectable = FALSE +/obj/item/projectile/f13plasma/repeater/mining + name = "mining plasma stream" + icon_state = "plasma_clot" + damage_type = BURN + damage = 5 + flag = "energy" + eyeblur = 0 + is_reflectable = FALSE + +/obj/item/projectile/f13plasma/repeater/mining/on_hit(atom/target) + . = ..() + if(ismineralturf(target)) + var/turf/closed/mineral/M = target + M.gets_drilled(firer) + /obj/item/projectile/f13plasma/pistol //Plasma pistol damage = 33 @@ -475,7 +512,7 @@ /obj/item/projectile/beam/laser/rcw/hitscan //RCW name = "rapidfire beam" icon_state = "emitter" - damage = 25 //ALWAYS does 50, this is a burstfire hitscan weapon that fires in bursts of 2. + damage = 15 hitscan = TRUE muzzle_type = /obj/effect/projectile/muzzle/laser/emitter tracer_type = /obj/effect/projectile/tracer/laser/emitter @@ -568,6 +605,7 @@ damage = 25 wound_bonus = 10 bare_wound_bonus = 20 + armour_penetration = 0 tracer_type = /obj/effect/projectile/tracer/heavy_laser muzzle_type = /obj/effect/projectile/muzzle/heavy_laser impact_type = /obj/effect/projectile/impact/heavy_laser diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index b408957aa7..117e6bfe7d 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -9,10 +9,6 @@ hitsound_wall = "ricochet" impact_effect_type = /obj/effect/temp_visual/impact_effect sharpness = SHARP_POINTY - shrapnel_type = /obj/item/shrapnel/bullet - embedding = list(embed_chance=15, fall_chance=2, jostle_chance=0, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.5, pain_mult=3, rip_time=10) - wound_falloff_tile = -5 - embed_falloff_tile = -5 /obj/item/projectile/bullet/smite name = "divine retribution" diff --git a/code/modules/projectiles/projectile/bullets/pistol.dm b/code/modules/projectiles/projectile/bullets/pistol.dm index e95264fb4b..5fb7dcbe15 100644 --- a/code/modules/projectiles/projectile/bullets/pistol.dm +++ b/code/modules/projectiles/projectile/bullets/pistol.dm @@ -5,12 +5,27 @@ ////////////////////// /* FMJ (full metal jacket) = Baseline -AP (armor piercing) = -20% damage. AP increased by 0.2. Wound bonus -50% -JHP (jacketed hollow point) = +15% damage. AP reduced by 0.2 (not below zero). Wound bonus + 50% -SWC (semi wadcutter) = AP reduced by 0.1. Wound bonus +50% -P+ (overpressure) = extra speed 500. AP +25% -Match = extra speed 200. AP +10%. Wound bonus -10% -Civilian round = -10% damage. AP reduced by 50% ++P/+P+ = used by simplemobs +SHOCK = low-severity emp, -damage base, bonus burn damage (5-10) +Incin = -damage, sets target on fire +Acid = Heavy -damage, coats target in small amount of acid (1-5u) +Uranium = Irradiates, high AP, lower damage +Micro-Shrapnel = Wound bonus, embed bonus, high falloff for both +Contaminated = -damage, spawns a gas cloud that heavily reduces healing efficiency +Improvised = -1 to -4 damage +Civilian round = -10% damage. AP reduced by 50% +*/ + +/* +Ammo groupings for specialty: +5mm/22lr: Shock +Small Pistol calibers (38 357 9mm): Acid/Incin +Large Pistol Calibers (44 45 10mm): Incin +Very Large pistol (45-70): Knockback, Acid +autorifle calibers (5.56 7.62): +Micro-Shrapnel (wound/embed) +heavy rifle calibers (12.7, 14mm, 7.62): +Uranium, Contaminated */ // Explanation: Two major ammo stats, AP and Damage. Bullets placed in classes. Light rounds for example balanced with each other, one more AP, one more Damage. @@ -32,6 +47,21 @@ Civilian round = -10% damage. AP reduced by 50% wound_bonus = 0 sharpness = SHARP_NONE +/obj/item/projectile/bullet/c22/shock + name = ".22lr shock bullet" + damage = -8 //about -50% damage + wound_bonus = 0 + sharpness = SHARP_NONE + var/energy_damage = 5 + +/obj/item/projectile/bullet/c22/shock/on_hit(atom/target, blocked = FALSE) + ..() + target.emp_act(5)//5 severity is very, very low + if(blocked != 100 && isliving(target)) + var/mob/living/L = target + L.electrocute_act(energy_damage, "shock bullet", 1, SHOCK_NOGLOVES | SHOCK_NOSTUN) //this might be spammy todo: check + //if it is, use O.take_damage(energy_damage, BURN, "energy", FALSE) + ///////////////// // .38 SPECIAL // ///////////////// -Light round, damage focus @@ -48,6 +78,42 @@ Civilian round = -10% damage. AP reduced by 50% wound_bonus = 0 sharpness = SHARP_NONE +/obj/item/projectile/bullet/c38/improv + damage = -3 + +/obj/item/projectile/bullet/c38/acid + name = ".38 acid-tipped bullet" + damage = -5 + wound_bonus = 0 + sharpness = SHARP_NONE + var/acid_type = /datum/reagent/toxin/acid/fluacid + +/obj/item/projectile/bullet/c38/acid/Initialize() + . = ..() + create_reagents(5, NO_REACT, NO_REAGENTS_VALUE) + reagents.add_reagent(acid_type, 5) + +/obj/item/projectile/bullet/c38/acid/on_hit(atom/target, blocked = FALSE) + ..() + if(isliving(target)) + var/mob/living/M = target + reagents.reaction(M, TOUCH) + reagents.trans_to(M, reagents.total_volume) + + +/obj/item/projectile/bullet/c38/incendiary + name = ".38 incendiary bullet" + damage = -5 + var/fire_stacks = 1 + +/obj/item/projectile/bullet/c38/incendiary/on_hit(atom/target, blocked = FALSE) + . = ..() + if(iscarbon(target)) + var/mob/living/carbon/M = target + M.adjust_fire_stacks(fire_stacks) + M.IgniteMob() + + ////////// // 9 MM // @@ -70,14 +136,39 @@ Civilian round = -10% damage. AP reduced by 50% wound_bonus = 0 sharpness = SHARP_NONE -/obj/item/projectile/bullet/c9mm/wounding - name = "9mm wounding bullet" - damage = 0 - ricochets_max = 0 - sharpness = SHARP_EDGED - wound_bonus = 25 - bare_wound_bonus = 25 - wound_falloff_tile = -8 +/obj/item/projectile/bullet/c9mm/acid + name = "9mm acid-tipped bullet" + damage = -10 + wound_bonus = 0 + sharpness = SHARP_NONE + var/acid_type = /datum/reagent/toxin/acid/fluacid + +/obj/item/projectile/bullet/c9mm/acid/Initialize() + . = ..() + create_reagents(2.5, NO_REACT, NO_REAGENTS_VALUE) + reagents.add_reagent(acid_type, 2.5) + +/obj/item/projectile/bullet/c9mm/acid/on_hit(atom/target, blocked = FALSE) + . = ..() + if(isliving(target)) + var/mob/living/M = target + reagents.reaction(M, TOUCH) + reagents.trans_to(M, reagents.total_volume) + +/obj/item/projectile/bullet/c9mm/incendiary + name = "9mm incendiary bullet" + damage = -8 + var/fire_stacks = 1 + +/obj/item/projectile/bullet/c9mm/incendiary/on_hit(atom/target, blocked = FALSE) + . = ..() + if(iscarbon(target)) + var/mob/living/carbon/M = target + M.adjust_fire_stacks(fire_stacks) + M.IgniteMob() + +/obj/item/projectile/bullet/c9mm/improv + damage = -3 /obj/item/projectile/bullet/c9mm/simple //for simple mobs, separate to allow balancing name = "9mm bullet" @@ -106,18 +197,9 @@ Civilian round = -10% damage. AP reduced by 50% wound_bonus = 0 sharpness = SHARP_NONE -/obj/item/projectile/bullet/c10mm/wounding - name = "10mm wounding bullet" - damage = 0 - ricochets_max = 0 - sharpness = SHARP_EDGED - wound_bonus = 33 - bare_wound_bonus = 33 - wound_falloff_tile = -8 - /obj/item/projectile/bullet/c10mm/incendiary name = "10mm incendiary bullet" - damage = -5 + damage = -8 var/fire_stacks = 1 /obj/item/projectile/bullet/c10mm/incendiary/on_hit(atom/target, blocked = FALSE) @@ -156,9 +238,9 @@ Civilian round = -10% damage. AP reduced by 50% /obj/item/projectile/bullet/c45/incendiary name = ".45 incendiary bullet" - damage = 0 + damage = -8 var/fire_stacks = 1 - + /obj/item/projectile/bullet/c45/incendiary/on_hit(atom/target, blocked = FALSE) . = ..() if(iscarbon(target)) @@ -186,6 +268,40 @@ Civilian round = -10% damage. AP reduced by 50% ricochet_auto_aim_range = 6 ricochet_incidence_leeway = 80 +/obj/item/projectile/bullet/a357/acid + name = ".357 acid-tipped bullet" + damage = -10 + wound_bonus = 0 + sharpness = SHARP_NONE + var/acid_type = /datum/reagent/toxin/acid/fluacid + +/obj/item/projectile/bullet/a357/acid/Initialize() + . = ..() + create_reagents(5, NO_REACT, NO_REAGENTS_VALUE) + reagents.add_reagent(acid_type, 5) + +/obj/item/projectile/bullet/a357/acid/on_hit(atom/target, blocked = FALSE) + . = ..() + if(isliving(target)) + var/mob/living/M = target + reagents.reaction(M, TOUCH) + reagents.trans_to(M, reagents.total_volume) + +/obj/item/projectile/bullet/a357/incendiary + name = ".357 incendiary bullet" + damage = -8 + var/fire_stacks = 2 + +/obj/item/projectile/bullet/a357/incendiary/on_hit(atom/target, blocked = FALSE) + . = ..() + if(iscarbon(target)) + var/mob/living/carbon/M = target + M.adjust_fire_stacks(fire_stacks) + M.IgniteMob() + +/obj/item/projectile/bullet/a357/improv + name = "poor .357 bullet" + damage = -2 //////////////// // .44 MAGNUM // //////////////// - Higher power round @@ -201,6 +317,18 @@ Civilian round = -10% damage. AP reduced by 50% name = ".44 bullet" damage = 40 +/obj/item/projectile/bullet/m44/incendiary + name = ".44 incendiary bullet" + damage = -8 + var/fire_stacks = 3 + +/obj/item/projectile/bullet/m44/incendiary/on_hit(atom/target, blocked = FALSE) + . = ..() + if(iscarbon(target)) + var/mob/living/carbon/M = target + M.adjust_fire_stacks(fire_stacks) + M.IgniteMob() + //////////// // .45-70 // //////////// -very heavy round @@ -220,17 +348,78 @@ Civilian round = -10% damage. AP reduced by 50% ..() explosion(target, 0, 0, 1, 1, flame_range = 1) +/obj/item/projectile/bullet/c4570/acid + name = ".45-70 acid-tipped bullet" + damage = -10 + wound_bonus = 0 + sharpness = SHARP_NONE + var/acid_type = /datum/reagent/toxin/acid/fluacid + +/obj/item/projectile/bullet/c4570/acid/Initialize() + . = ..() + create_reagents(10, NO_REACT, NO_REAGENTS_VALUE) + reagents.add_reagent(acid_type, 10) + +/obj/item/projectile/bullet/c4570/acid/on_hit(atom/target, blocked = FALSE) + . = ..() + if(isliving(target)) + var/mob/living/M = target + reagents.reaction(M, TOUCH) + reagents.trans_to(M, reagents.total_volume) + +/obj/item/projectile/bullet/c4570/knockback + name = ".45-70 ultradense bullet" + damage = -15 + wound_bonus = 0 + sharpness = SHARP_NONE + pixels_per_second = TILES_TO_PIXELS(500) + +/obj/item/projectile/bullet/c4570/knockback/on_hit(atom/target, blocked = FALSE) + . = ..() + if(isliving(target) && prob(50)) + var/atom/movable/M = target + var/atom/throw_target = get_edge_target_turf(M, get_dir(src, get_step_away(M, src))) + M.safe_throw_at(throw_target, 2, 3) + /////////// // 14 MM // /////////// -very heavy round, AP (reference to FO1/2) /obj/item/projectile/bullet/mm14 - name = "14mm AP bullet" + name = "14mm FMJ bullet" damage = 0 wound_bonus = 25 bare_wound_bonus = -28 +/obj/item/projectile/bullet/mm14/contam + name = "14mm contaiminated bullet" + damage = -10 + var/smoke_radius = 1 + +/obj/item/projectile/bullet/mm14/contam/Initialize() + . = ..() + create_reagents(15, NO_REACT, NO_REAGENTS_VALUE) + reagents.add_reagent(/datum/reagent/toxin/metabtoxin, 15) + +/obj/item/projectile/bullet/mm14/contam/on_hit(atom/target, blocked = FALSE) + . = ..() + var/location = get_turf(src) + var/datum/effect_system/smoke_spread/chem/S = new + S.attach(location) + playsound(location, 'sound/effects/smoke.ogg', 50, 1, -3) + if(S) + S.set_up(src.reagents, smoke_radius, location, 0) + S.start() + + +/obj/item/projectile/bullet/mm14/uraniumtipped + name = "14mm uranium-tipped bullet" + damage = -5 + armour_penetration = 0.1 + irradiate = 300 + + ////////////////////// diff --git a/code/modules/projectiles/projectile/bullets/rifle.dm b/code/modules/projectiles/projectile/bullets/rifle.dm index db0c5ca39f..9ffbaccba1 100644 --- a/code/modules/projectiles/projectile/bullets/rifle.dm +++ b/code/modules/projectiles/projectile/bullets/rifle.dm @@ -5,14 +5,31 @@ ////////////////////// /* FMJ (full metal jacket) = Baseline -AP (armor piercing) = -20% damage. AP increased by 0.2. Wound bonus -50% -JHP (jacketed hollow point) = +15% damage. AP reduced by 0.2 (not below zero). Wound bonus + 50% -SWC (semi wadcutter) = AP reduced by 0.1. Wound bonus +50% -P+ (overpressure) = extra speed 500. AP +25% -Match = extra speed 200. AP +10%. Wound bonus -10% -Civilian round = -10% damage for .223. AP reduced by 50% ++P/+P+ = used by simplemobs +SHOCK = low-severity emp, -damage base, bonus burn damage (5-10) +Incin = -damage, sets target on fire +Acid = Heavy -damage, coats target in small amount of acid (1-5u) +Uranium = Irradiates, high AP, lower damage +Micro-Shrapnel = Wound bonus, embed bonus, high falloff for both +Contaminated = -damage, spawns a gas cloud that heavily reduces healing efficiency +Improvised = -1 to -4 damage +Civilian round = -10% damage. AP reduced by 50% */ +/* +Ammo groupings for specialty: +5mm/22lr: Shock +Small Pistol calibers (38 357 9mm): Acid/Incin +Large Pistol Calibers (44 45 10mm): Incin +Very Large pistol (45-70): Knockback, Acid +autorifle calibers (5.56 7.62): Micro-Shrapnel (wound/embed) +heavy rifle calibers (12.7, 14mm, 7.62): Uranium, Contaminated, Incin +*/ + +// Explanation: Two major ammo stats, AP and Damage. Bullets placed in classes. Light rounds for example balanced with each other, one more AP, one more Damage. +// Balance between classes mostly done on the gun end, bigger rounds typically fire slower and have more recoil. They are not supposed to be totally equal either. + + // Explanation: Two major ammo stats, AP and Damage. Bullets placed in classes. Light rounds for example balanced with each other, one more AP, one more Damage. // Balance between classes mostly done on the gun end, bigger rounds typically fire slower and have more recoil. They are not supposed to be totally equal either. @@ -49,11 +66,14 @@ Civilian round = -10% damage for .223. AP reduced by 50% wound_bonus = 0 bare_wound_bonus = 0 -/obj/item/projectile/bullet/a556/uraniumtipped - name = "5.56 uranium-tipped bullet" +/obj/item/projectile/bullet/a556/microshrapnel + name = "5.56 microshrapnel bullet" damage = -5 - armour_penetration = 0.1 - irradiate = 300 + wound_bonus = 15 + bare_wound_bonus = 15 + wound_falloff_tile = 0.5 + embed_falloff_tile = 0.5 + embedding = list(embed_chance=5, fall_chance=1, jostle_chance=1, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.5, pain_mult=5, jostle_pain_mult=6, rip_time=10, embed_chance_turf_mod=100, projectile_payload = /obj/item/shrapnel/bullet/a556/microshrapnel) /obj/item/projectile/bullet/a556/simple //for simple mobs, separate to allow balancing name = "5.56 bullet" @@ -99,6 +119,15 @@ Civilian round = -10% damage for .223. AP reduced by 50% armour_penetration = 0.18 irradiate = 300 +/obj/item/projectile/bullet/a762/microshrapnel + name = "7.62 microshrapnel bullet" + damage = -7 + wound_bonus = 15 + bare_wound_bonus = 15 + wound_falloff_tile = 0.5 + embed_falloff_tile = 0.5 + embedding = list(embed_chance=12, fall_chance=1, jostle_chance=1, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.3, pain_mult=5, jostle_pain_mult=6, rip_time=10, embed_chance_turf_mod=100, projectile_payload = /obj/item/shrapnel/bullet/a762/microshrapnel) + ///////// // .50 // ///////// -Very heavy rifle round. @@ -139,6 +168,31 @@ Civilian round = -10% damage for .223. AP reduced by 50% damage = -10 movement_type = FLYING | UNSTOPPABLE +/obj/item/projectile/bullet/a50MG/uraniumtipped + name = "12.7mm uranium-tipped bullet" + damage = -15 + armour_penetration = 0.2 + irradiate = 500 + +/obj/item/projectile/bullet/a50MG/contam + name = "12.7mm contaminated bullet" + damage = -10 + var/smoke_radius = 1 + +/obj/item/projectile/bullet/a50MG/contam/Initialize() + . = ..() + create_reagents(15, NO_REACT, NO_REAGENTS_VALUE) + reagents.add_reagent(/datum/reagent/toxin/metabtoxin, 15) + +/obj/item/projectile/bullet/a50MG/contam/on_hit(atom/target, blocked = FALSE) + var/location = get_turf(src) + var/datum/effect_system/smoke_spread/chem/S = new + S.attach(location) + playsound(location, 'sound/effects/smoke.ogg', 50, 1, -3) + if(S) + S.set_up(src.reagents, smoke_radius, location, 0) + S.start() + ..() ////////////////////// // 4.73 MM CASELESS // @@ -151,8 +205,8 @@ Civilian round = -10% damage for .223. AP reduced by 50% bare_wound_bonus = -10 /obj/item/projectile/bullet/a473/rubber - name = "4.73 polyurethane bullet " - damage = 5 + name = "4.73 polyurethane bullet" + damage = -20 stamina = 18 sharpness = SHARP_NONE armour_penetration = 0.05 @@ -161,21 +215,30 @@ Civilian round = -10% damage for .223. AP reduced by 50% /obj/item/projectile/bullet/a473/incendiary name = "4.73 tracer bullet" - damage = 15 + damage = -10 armour_penetration = 0.1 var/fire_stacks = 3 zone_accuracy_factor = 100 +/obj/item/projectile/bullet/a473/incendiary/on_hit(atom/target, blocked = FALSE) + . = ..() + if(iscarbon(target)) + var/mob/living/carbon/M = target + M.adjust_fire_stacks(fire_stacks) + M.IgniteMob() + /obj/item/projectile/bullet/a473/uraniumtipped name = "4.73 U-235 bullet" - damage = 15 + damage = -10 armour_penetration = 0.3 irradiate = 300 /obj/item/projectile/bullet/a473/dumdum name = "4.73 flat-nose bullet" - damage = 20 - armour_penetration = 0.1 + damage = 5 + supereffective_damage = 10 + supereffective_faction = list("hostile", "ant", "supermutant", "deathclaw", "cazador", "raider", "china", "gecko", "wastebot") + armour_penetration = -0.2 wound_bonus = 20 bare_wound_bonus = 30 @@ -184,7 +247,31 @@ Civilian round = -10% damage for .223. AP reduced by 50% /obj/item/projectile/bullet/a473/explosive/on_hit(atom/target, blocked = FALSE) ..() - explosion(target, 0, 0, 1, 0, adminlog = FALSE, flame_range = 1) + if(prob(10)) + explosion(target, 0, 0, 1, 1, adminlog = FALSE, flame_range = 0) + else + explosion(target, 0, 0, 0, 1, adminlog = FALSE, flame_range = 1) //no boom, just flame and flash + +/obj/item/projectile/bullet/a473/shock + name = "4.73mm shock bullet" + damage = -12 // -50% damage + wound_bonus = 0 + sharpness = SHARP_NONE + var/energy_damage = 4 + +/obj/item/projectile/bullet/a473/shock/on_hit(atom/target, blocked = FALSE) + ..() + target.emp_act(5)//5 severity is very, very low + if(blocked != 100 && isliving(target)) + var/mob/living/L = target + L.electrocute_act(energy_damage, "shock bullet", 1, SHOCK_NOGLOVES | SHOCK_NOSTUN) + +/obj/item/projectile/bullet/a473/hv + name = "4.73mm highvelocity bullet" + damage = -14 //about -60% damage for hitscan + hitscan = TRUE + wound_bonus = 0 + ////////////////////////// @@ -202,6 +289,21 @@ Civilian round = -10% damage for .223. AP reduced by 50% damage = 19 armour_penetration = 0.19 +/obj/item/projectile/bullet/m5mm/shock + name = "5mm shock bullet" + damage = -9 //about -50% damage + wound_bonus = 0 + sharpness = SHARP_NONE + var/energy_damage = 5 + +/obj/item/projectile/bullet/m5mm/shock/on_hit(atom/target, blocked = FALSE) + ..() + target.emp_act(5)//5 severity is very, very low + if(blocked != 100 && isliving(target)) + var/mob/living/L = target + L.electrocute_act(energy_damage, "shock bullet", 1, SHOCK_NOGLOVES | SHOCK_NOSTUN) //this might be spammy todo: check + //if it is, use O.take_damage(energy_damage, BURN, "energy", FALSE) + ////////////////////////// // 5 MM minigun special // ////////////////////////// @@ -219,3 +321,24 @@ Civilian round = -10% damage for .223. AP reduced by 50% damage = 0 armour_penetration = 0.9 //if only one bullet has built in AP, its this one pixels_per_second = TILES_TO_PIXELS(100) + + +/obj/item/projectile/bullet/c2mm/blender //welcome to pain town + name = "2mm blender projectile" + damage = -20 + hitscan = TRUE + pass_flags = PASSTABLE + armour_penetration = 1 + ricochets_max = 9 //ain't called the 'blender' for nothin' + ricochet_incidence_leeway = 130 + ricochet_decay_damage = 1 + ricochet_decay_chance = 11 + ricochet_chance = 100 + var/collats = 3 + +/obj/item/projectile/bullet/c2mm/blender/process_hit(turf/T, atom/target, qdel_self, hit_something = FALSE) + if(isliving(target) && collats) + collats-- + temporary_unstoppable_movement = TRUE + ENABLE_BITFIELD(movement_type, UNSTOPPABLE) + ..() diff --git a/code/modules/projectiles/projectile/bullets/shotgun.dm b/code/modules/projectiles/projectile/bullets/shotgun.dm index a91d050b7c..9cc79b79dc 100644 --- a/code/modules/projectiles/projectile/bullets/shotgun.dm +++ b/code/modules/projectiles/projectile/bullets/shotgun.dm @@ -47,7 +47,7 @@ . = ..() if(iscarbon(target)) var/mob/living/carbon/M = target - M.adjust_fire_stacks(3) + M.adjust_fire_stacks(3) M.IgniteMob() /obj/item/projectile/bullet/shotgun_stunslug @@ -146,6 +146,23 @@ do_sparks(1, TRUE, src) ..() +/obj/item/projectile/bullet/pellet/trainshot + damage = 15 + stamina = 10 + armour_penetration = 0.45 + wound_bonus = 10 + bare_wound_bonus = 10 + sharpness = SHARP_NONE //crunch + tile_dropoff = 0 + tile_dropoff_s = 0 + +/obj/item/projectile/bullet/pellet/trainshot/on_hit(atom/target) + . = ..() + if(isliving(target) && prob(8)) + var/mob/living/M = target + var/atom/throw_target = get_edge_target_turf(M, get_dir(src, get_step_away(M, src))) + M.safe_throw_at(throw_target, 2, 3) + // Mech Scattershots /obj/item/projectile/bullet/scattershot @@ -166,7 +183,7 @@ armour_penetration = 0.15 wound_bonus = 10 bare_wound_bonus = 10 - + // BETA STUFF // Obsolete /obj/item/projectile/bullet/pellet/shotgun_buckshot/test name = "buckshot pellet" diff --git a/code/modules/projectiles/projectile/reusable/arrow.dm b/code/modules/projectiles/projectile/reusable/arrow.dm index 648520e341..2229c0c5a4 100644 --- a/code/modules/projectiles/projectile/reusable/arrow.dm +++ b/code/modules/projectiles/projectile/reusable/arrow.dm @@ -13,17 +13,20 @@ damage = 0.5 ammo_type = /obj/item/ammo_casing/caseless/arrow/ash -/obj/item/projectile/bullet/reusable/arrow/bone //AP for ashwalkers +/obj/item/projectile/bullet/reusable/arrow/bone //extra mob damage name = "bone arrow" desc = "Arrow made of bone and sinew." - damage = 30 - armour_penetration = 0.35 + damage = 20 + armour_penetration = 0.10 + supereffective_damage = 40 + supereffective_faction = list("hostile", "ant", "supermutant", "deathclaw", "cazador", "raider", "china", "gecko", "wastebot") ammo_type = /obj/item/ammo_casing/caseless/arrow/bone /obj/item/projectile/bullet/reusable/arrow/bronze //Just some AP shots name = "bronze arrow" desc = "Bronze tipped arrow." - armour_penetration = 0.2 + damage = 30 + armour_penetration = 0.35 ammo_type = /obj/item/ammo_casing/caseless/arrow/bronze //FO13 ARROWS @@ -71,3 +74,28 @@ var/mob/living/carbon/human/targetHuman = target targetHuman.adjust_fire_stacks(5) targetHuman.IgniteMob() //you just got burned! + + +/obj/item/projectile/bullet/reusable/arrow/broadhead + name = "broadhead arrow" + desc = "An arrow that sticks in wounds. Badly." + armour_penetration = 0.1 + damage = 20 + sharpness = SHARP_EDGED + ammo_type = /obj/item/ammo_casing/caseless/arrow/broadhead + embedding = list(embed_chance=100, fall_chance=0, jostle_chance=3, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.2, pain_mult=3, jostle_pain_mult=5, rip_time=25, projectile_payload = /obj/item/ammo_casing/caseless/arrow/broadhead) + +/obj/item/projectile/bullet/reusable/arrow/broadhead/on_hit(atom/target, blocked) + if(iscarbon(target)) + dropped = TRUE + ..() + +/obj/item/projectile/bullet/reusable/arrow/serrated + name = "serrated arrow" + desc = "An arrow that can sever arteries!" + wound_bonus = 25 + bare_wound_bonus = 20 + sharpness = SHARP_EDGED + armour_penetration = 0.05 + damage = 30 + ammo_type = /obj/item/ammo_casing/caseless/arrow/serrated diff --git a/code/modules/projectiles/projectile/reusable/magspear.dm b/code/modules/projectiles/projectile/reusable/magspear.dm index 9c7c7d201c..a7b91b88bf 100644 --- a/code/modules/projectiles/projectile/reusable/magspear.dm +++ b/code/modules/projectiles/projectile/reusable/magspear.dm @@ -1,6 +1,18 @@ /obj/item/projectile/bullet/reusable/magspear name = "magnetic spear" desc = "WHITE WHALE, HOLY GRAIL" - damage = 30 //takes 3 spears to kill a mega carp, one to kill a normal carp + damage = 35 //it's single-firing and pretty wierd so it gets good damage + supereffective_damage = 45 //it's for hunting + supereffective_faction = list("hostile", "ant", "supermutant", "deathclaw", "cazador", "raider", "china", "gecko", "wastebot") + armour_penetration = 0.5 icon_state = "magspear" ammo_type = /obj/item/ammo_casing/caseless/magspear + +/obj/item/projectile/bullet/reusable/magspear/handle_drop() + if(!dropped) + var/turf/T = get_turf(src) + var/obj/item/ammo_casing/caseless/magspear/MS = new ammo_type(T) + if(istype(fired_from, /obj/item/gun/ballistic/automatic/speargun)) + var/obj/item/gun/ballistic/automatic/speargun/SG = fired_from + SG.ourcasings += MS + dropped = TRUE diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 49ce14b53b..f64b8dd4a2 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -198,6 +198,7 @@ var/transfer_amount = T.volume * part if(preserve_data) trans_data = copy_data(T) + post_copy_data(T) transferred += "[T] - [transfer_amount]" R.add_reagent(T.type, transfer_amount * multiplier, trans_data, chem_temp, T.purity, pH, no_react = TRUE, ignore_pH = TRUE) //we only handle reaction after every reagent has been transfered. @@ -1087,6 +1088,9 @@ return trans_data +/datum/reagents/proc/post_copy_data(datum/reagent/current_reagent) + return current_reagent.post_copy_data() + /datum/reagents/proc/get_reagent(type) var/list/cached_reagents = reagent_list . = locate(type) in cached_reagents diff --git a/code/modules/reagents/chemistry/machinery/chem_heater.dm b/code/modules/reagents/chemistry/machinery/chem_heater.dm index 28f0b2366a..7f56d2b38f 100644 --- a/code/modules/reagents/chemistry/machinery/chem_heater.dm +++ b/code/modules/reagents/chemistry/machinery/chem_heater.dm @@ -83,6 +83,15 @@ updateUsrDialog() update_icon() return + if(beaker) + if(istype(I, /obj/item/reagent_containers/dropper)) + var/obj/item/reagent_containers/dropper/D = I + D.afterattack(beaker, user, 1) + return + if(istype(I, /obj/item/reagent_containers/syringe)) + var/obj/item/reagent_containers/syringe/S = I + S.afterattack(beaker, user, 1) + return return ..() /obj/machinery/chem_heater/on_deconstruction() diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index aa7ceb6973..3684dc7969 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -11,6 +11,7 @@ resistance_flags = FIRE_PROOF | ACID_PROOF circuit = /obj/item/circuitboard/machine/chem_master + var/basereagents = 100 var/obj/item/reagent_containers/beaker = null var/obj/item/storage/pill_bottle/bottle = null var/mode = 1 @@ -25,7 +26,7 @@ var/fermianalyze //Give more detail on fermireactions on analysis /obj/machinery/chem_master/Initialize() - create_reagents(100) + create_reagents(basereagents) //Calculate the span tags and ids fo all the available pill icons var/datum/asset/spritesheet/simple/assets = get_asset_datum(/datum/asset/spritesheet/simple/pills) @@ -529,6 +530,7 @@ idle_power_usage = 0 flags_1 = NODECONSTRUCT_1 can_be_unanchored = TRUE + basereagents = 240 /obj/machinery/chem_master/primitive/update_icon_state() if(beaker) @@ -536,6 +538,28 @@ else icon_state = "alchemy_table" +/obj/machinery/chem_master/primitive/attackby(obj/item/I, mob/user, params) + if(default_unfasten_wrench(user, I)) + return + if(istype(I, /obj/item/reagent_containers) && !(I.item_flags & ABSTRACT) && I.is_open_container()) + . = TRUE // no afterattack + var/obj/item/reagent_containers/B = I + if(!user.transferItemToLoc(B, src)) + return + replace_beaker(user, B) + to_chat(user, "You add [B] to [src].") + updateUsrDialog() + update_icon() + else if(!condi && istype(I, /obj/item/storage/pill_bottle)) + . = TRUE // no afterattack + if(!user.transferItemToLoc(I, src)) + return + replace_pillbottle(user, I) + to_chat(user, "You add [I] into the dispenser slot.") + updateUsrDialog() + else + return ..() + /obj/machinery/chem_master/primitive/ui_interact(mob/living/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) if(istype(user, /mob/dead/observer)) diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index a53c57a3e7..6d6e6900f2 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -15,7 +15,7 @@ resistance_flags = ACID_PROOF var/operating = FALSE var/obj/item/reagent_containers/beaker = null - var/limit = 10 + var/limit = 20 var/speed = 1 var/list/holdingitems diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index 958c0365be..8ae8ec0698 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -182,6 +182,10 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) /datum/reagent/proc/on_update(atom/A) return +//Ran by a reagent holder on a specific reagent after copying its data. +/datum/reagent/proc/post_copy_data() + return + // Called when the reagent container is hit by an explosion /datum/reagent/proc/on_ex_act(severity) return diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 14c3e40b47..e594f40bf1 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -382,18 +382,98 @@ /datum/reagent/consumable/brocjuice name = "Broc Flower Juice" - description = "The juice of a ground-up broc flower." + description = "The juice of a ground-up broc flower. Heals mild hypoxia." nutriment_factor = 1 * REAGENTS_METABOLISM color = "#302000" // rgb: 48, 32, 0 taste_description = "flowers" +/datum/reagent/consumable/brocjuice/on_mob_life(mob/living/carbon/M) + M.adjustOxyLoss(-1*REAGENTS_EFFECT_MULTIPLIER, 0) + ..() + /datum/reagent/consumable/xanderjuice name = "Xander Root Juice" - description = "Ground up xander root, mashed into juicy pulp." + description = "Ground up xander root, mashed into juicy pulp. Stimulates blood production." nutriment_factor = 1 * REAGENTS_METABOLISM color = "#302000" // rgb: 48, 32, 0 taste_description = "dirt" +/datum/reagent/consumable/xanderjuice/on_mob_life(mob/living/carbon/M) + if(M.blood_volume < BLOOD_VOLUME_NORMAL) + M.blood_volume = min(BLOOD_VOLUME_NORMAL, M.blood_volume + 1) + ..() + +/datum/reagent/consumable/agavejuice + name = "Agave Leaf Juice" + description = "Ground up agave leaf, mashed into juicy pulp. Heals minor burns." + nutriment_factor = 1 * REAGENTS_METABOLISM + color = "#BAE3B4" + taste_description = "plants" + +/datum/reagent/consumable/agavejuice/on_mob_life(mob/living/carbon/M) + M.adjustFireLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER, 0) + ..() + +/datum/reagent/consumable/ferajuice + name = "Barrel Fruit Juice" + description = "Squeezed barrelfruit juice. Heals damage caused by poisons and venoms." + nutriment_factor = 1 * REAGENTS_METABOLISM + color = "#E8E67E" + taste_description = "bitter" + +/datum/reagent/consumable/ferajuice/on_mob_life(mob/living/carbon/M) + if(M.health > 20) + M.adjustToxLoss(-1*REAGENTS_EFFECT_MULTIPLIER, 0) + ..() + +/datum/reagent/consumable/daturajuice + name = "Datura Juice" + description = "Ground up bits of the datura plant. Mildly hallucinogenic." + nutriment_factor = 1 * REAGENTS_METABOLISM + color = "#ACDFCE" + taste_description = "bitter leaves" + +/datum/reagent/consumable/daturajuice/on_mob_life(mob/living/carbon/M) + M.set_drugginess(5) + M.hallucination += 2 + ..() + +/datum/reagent/consumable/coyotejuice + name = "Coyote Leaf Juice" + description = "Juiced coyote tobacco leaves. Stimulates the nervous system." + nutriment_factor = 1 * REAGENTS_METABOLISM + color = "#168B64" + taste_description = "leaves" + +/datum/reagent/consumable/coyotejuice/on_mob_life(mob/living/carbon/M) + if(prob(10)) + var/smoke_message = pick("You feel relaxed.", "You feel calmed.","You feel alert.","You feel rugged.") + to_chat(M, "[smoke_message]") + M.AdjustStun(-4, 0) + M.AdjustKnockdown(-4, 0) + M.AdjustUnconscious(-4, 0) + ..() + +/datum/reagent/consumable/cavefungusjuice + name = "Cave Fungus Juice" + description = "Juiced cave fungus fruiting bodies." + nutriment_factor = 1 * REAGENTS_METABOLISM + color = "#274E13" + taste_description = "nuts" + +/datum/reagent/consumable/cavefungusjuice/on_mob_life(mob/living/carbon/M) + M.adjustToxLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER, 0) + ..() + +/datum/reagent/consumable/tato_juice + name = "Tato Juice" + description = "Juiced tatos." + nutriment_factor = 1 * REAGENTS_METABOLISM + color = "#274E13" + taste_description = "tato" + + + /datum/reagent/consumable/blackpepper name = "Black Pepper" description = "A powder ground from peppercorns. *AAAACHOOO*" @@ -889,4 +969,3 @@ taste_mult = 2 taste_description = "fizzy sweetness" value = REAGENT_VALUE_COMMON - diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index d077d2aebc..d914c2b270 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -910,7 +910,7 @@ /datum/reagent/aslimetoxin/reaction_mob(mob/living/L, method=TOUCH, reac_volume) if(method != TOUCH) L.ForceContractDisease(new /datum/disease/transformation/slime(), FALSE, TRUE) -*/ +*/ /datum/reagent/gluttonytoxin name = "Gluttony's Blessing" @@ -2594,6 +2594,11 @@ datum/reagent/eldritch color = "#E6E6DA" taste_mult = 0 +/datum/reagent/celugel + name = "Plasticized Cellulose" + description = "A plastic formed from esterized cellulose fibers. Organic!" + reagent_state = SOLID + color = "#E6E6DA" /datum/reagent/hairball name = "Hairball" diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index 9852216422..5ef7dfe3dd 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -1101,3 +1101,31 @@ to_chat(M, "Ah, what was that? You thought you heard something...") M.confused += 5 return ..() + +/datum/reagent/toxin/metabtoxin + name = "metabolism-inhibiting toxin" + description = "A mix of hepatoxic and nephrotoxic chemicals that cause the liver and kidneys to process medicine less effectively." + reagent_state = SOLID + color = "#30ff21" // rgb: 0 132 0 + toxpwr = 0.1 + metabolization_rate = 0.07 * REAGENTS_METABOLISM + taste_mult = 1.3 + taste_description = "bitter sludge" + var/metab_inibition = 0.75 + +/datum/reagent/toxin/metabtoxin/on_mob_metabolize(mob/living/L) + ..() + var/obj/item/organ/liver/liber = L.getorganslot(ORGAN_SLOT_LIVER) + if(liber) + liber.applyOrganDamage(5) + liber.filterToxins = FALSE + L.metabolism_efficiency -= metab_inibition + +/datum/reagent/toxin/metabtoxin/on_mob_end_metabolize(mob/living/L) + ..() + var/obj/item/organ/liver/liber = L.getorganslot(ORGAN_SLOT_LIVER) + if(liber) + liber.applyOrganDamage(5) + if(initial(liber.filterToxins)) + liber.filterToxins = TRUE + L.metabolism_efficiency += metab_inibition diff --git a/code/modules/reagents/chemistry/recipes/drugs.dm b/code/modules/reagents/chemistry/recipes/drugs.dm index a1c0e0c0b9..ce2ea11883 100644 --- a/code/modules/reagents/chemistry/recipes/drugs.dm +++ b/code/modules/reagents/chemistry/recipes/drugs.dm @@ -12,7 +12,6 @@ mix_message = "The mixture violently reacts, leaving behind a few crystalline shards." required_temp = 390 - /datum/chemical_reaction/krokodil name = "Krokodil" id = /datum/reagent/drug/krokodil @@ -70,3 +69,75 @@ results = list(/datum/reagent/moonsugar = 1, /datum/reagent/medicine/morphine = 2.5) required_temp = 315 //a little above normal body temperature required_reagents = list(/datum/reagent/drug/skooma = 1) + +/datum/chemical_reaction/jet + name = "Jet" + id = /datum/reagent/drug/jet + results = list(/datum/reagent/drug/jet = 5) + required_reagents = list(/datum/reagent/drug/nicotine = 2, /datum/reagent/consumable/milk = 2, /datum/reagent/fuel = 1, /datum/reagent/consumable/ethanol = 1) + OptimalTempMin = 600 + OptimalTempMax = 675 + ExplodeTemp = 700 + OptimalpHMin = 7 + OptimalpHMax = 10 + ReactpHLim = 2 + CurveSharpT = 5 + CurveSharppH = 0.7 + ThermicConstant = -6 + HIonRelease = -0.5 + RateUpLim = 10 + FermiChem = TRUE + +/datum/chemical_reaction/turbo + name = "Turbo" + id = /datum/reagent/drug/turbo + results = list(/datum/reagent/drug/turbo = 4) + required_reagents = list(/datum/reagent/cellulose = 1, /datum/reagent/toxin/cyanide = 1, /datum/reagent/consumable/brocjuice = 1, /datum/reagent/drug/jet = 1) //fairly close to the ingame recipe + OptimalTempMin = 410 + OptimalTempMax = 525 + ExplodeTemp = 585 + OptimalpHMin = 4 + OptimalpHMax = 7 + ReactpHLim = 2 + CurveSharpT = 5 + CurveSharppH = 0.7 + ThermicConstant = 8 + HIonRelease = 0.5 + RateUpLim = 7 + FermiChem = TRUE + +/datum/chemical_reaction/psycho + name = "Psycho" + id = /datum/reagent/drug/psycho + results = list(/datum/reagent/drug/psycho = 3) + required_reagents = list(/datum/reagent/toxin/acid = 1, /datum/reagent/consumable/cavefungusjuice = 1, /datum/reagent/ash = 1, /datum/reagent/drug/methamphetamine = 1) + OptimalTempMin = 223 + OptimalTempMax = 303 + ExplodeTemp = 323 + OptimalpHMin = 3 + OptimalpHMax = 6 + ReactpHLim = 1 + CurveSharpT = 5 + CurveSharppH = 0.7 + ThermicConstant = 5 + HIonRelease = 0.5 + RateUpLim = 5 + FermiChem = TRUE + +/datum/chemical_reaction/buffout + name = "Buffout" + id = /datum/reagent/drug/buffout + results = list(/datum/reagent/drug/buffout = 10) + required_reagents = list(/datum/reagent/consumable/sugar = 1, /datum/reagent/phosphorus = 1, /datum/reagent/sulfur = 1, /datum/reagent/drug/crank = 1, /datum/reagent/carbondioxide = 1, /datum/reagent/nitrous_oxide = 1, /datum/reagent/consumable/yuccajuice = 1) + OptimalTempMin = 165 + OptimalTempMax = 215 + ExplodeTemp = 223 + OptimalpHMin = 8 + OptimalpHMax = 11 + ReactpHLim = 1 + CurveSharpT = 5 + CurveSharppH = 0.7 + ThermicConstant = 2 + HIonRelease = 0.25 + RateUpLim = 3 + FermiChem = TRUE diff --git a/code/modules/reagents/chemistry/recipes/medicine.dm b/code/modules/reagents/chemistry/recipes/medicine.dm index 0e22bf81f5..005c8ebda7 100644 --- a/code/modules/reagents/chemistry/recipes/medicine.dm +++ b/code/modules/reagents/chemistry/recipes/medicine.dm @@ -152,7 +152,7 @@ datum/chemical_reaction/rezadone name = "Pentetic Jelly" id = /datum/reagent/medicine/pen_acid/pen_jelly results = list(/datum/reagent/medicine/pen_acid/pen_jelly = 2) - required_reagents = list(/datum/reagent/medicine/pen_acid = 1, /datum/reagent/toxin/slimejelly = 1) + required_reagents = list(/datum/reagent/medicine/pen_acid = 1, /datum/reagent/celugel = 1) /datum/chemical_reaction/sal_acid name = "Salicyclic Acid" @@ -260,7 +260,7 @@ datum/chemical_reaction/rezadone name = "Pyroxadone" id = /datum/reagent/medicine/pyroxadone results = list(/datum/reagent/medicine/pyroxadone = 2) - required_reagents = list(/datum/reagent/medicine/cryoxadone = 1, /datum/reagent/toxin/slimejelly = 1) + required_reagents = list(/datum/reagent/medicine/cryoxadone = 1, /datum/reagent/celugel = 1) /datum/chemical_reaction/clonexadone name = "Clonexadone" @@ -303,7 +303,7 @@ datum/chemical_reaction/rezadone name = "Regenerative Jelly" id = /datum/reagent/medicine/regen_jelly results = list(/datum/reagent/medicine/regen_jelly = 2) - required_reagents = list(/datum/reagent/medicine/tricordrazine = 1, /datum/reagent/toxin/slimejelly = 1) + required_reagents = list(/datum/reagent/medicine/tricordrazine = 1, /datum/reagent/celugel = 1) /datum/chemical_reaction/jelly_convert name = "Blood Jelly Conversion" @@ -338,7 +338,7 @@ datum/chemical_reaction/rezadone required_reagents = list( /datum/reagent/medicine/mannitol = 2, /datum/reagent/water = 2, /datum/reagent/impedrezene = 1) /datum/chemical_reaction/medsuture - required_reagents = list(/datum/reagent/cellulose = 10, /datum/reagent/toxin/formaldehyde = 20, /datum/reagent/medicine/polypyr = 15) //This might be a bit much, reagent cost should be reviewed after implementation. + required_reagents = list(/datum/reagent/cellulose = 10, /datum/reagent/toxin/formaldehyde = 20, /datum/reagent/medicine/polypyr = 10) //This might be a bit much, reagent cost should be reviewed after implementation. /datum/chemical_reaction/medsuture/on_reaction(datum/reagents/holder, created_volume) var/location = get_turf(holder.my_atom) @@ -346,7 +346,7 @@ datum/chemical_reaction/rezadone new /obj/item/stack/medical/suture/medicated(location) /datum/chemical_reaction/medmesh - required_reagents = list(/datum/reagent/cellulose = 20, /datum/reagent/consumable/aloejuice = 20, /datum/reagent/abraxo_cleaner/sterilizine = 10) + required_reagents = list(/datum/reagent/cellulose = 10, /datum/reagent/consumable/aloejuice = 10, /datum/reagent/abraxo_cleaner/sterilizine = 10) /datum/chemical_reaction/medmesh/on_reaction(datum/reagents/holder, created_volume) var/location = get_turf(holder.my_atom) @@ -391,8 +391,8 @@ datum/chemical_reaction/rezadone /datum/chemical_reaction/stimpak2 name = "Imitation Stimpak Fluid" id = /datum/reagent/medicine/stimpakimitation - results = list(/datum/reagent/medicine/stimpakimitation = 1) - required_reagents = list(/datum/reagent/consumable/brocjuice = 3, /datum/reagent/consumable/xanderjuice = 3) + results = list(/datum/reagent/medicine/stimpakimitation = 2) + required_reagents = list(/datum/reagent/consumable/brocjuice = 1, /datum/reagent/consumable/xanderjuice = 1) OptimalTempMin = 500 // Lower area of bell curve for determining heat based rate reactions OptimalTempMax = 650 // Upper end for above ExplodeTemp = 9999 //Temperature at which reaction explodes @@ -407,6 +407,43 @@ datum/chemical_reaction/rezadone FermiChem = TRUE//If the chemical uses the Fermichem reaction mechanics FermiExplode = FALSE //If the chemical explodes in a special way +/datum/chemical_reaction/superstimpak + name = "Super Stimpak Fluid" + id = /datum/reagent/medicine/super_stimpak + results = list(/datum/reagent/medicine/super_stimpak = 5) + required_reagents = list(/datum/reagent/blood/synthetics = 1, /datum/reagent/medicine/stimpak = 1, /datum/reagent/consumable/mutjuice = 1) //1 mutfruit at 50 potency yields 6 mutfruit juice + OptimalTempMin = 65 + OptimalTempMax = 95 + ExplodeTemp = 100 + OptimalpHMin = 0.5 + OptimalpHMax = 3 + ReactpHLim = 1 + CurveSharpT = 1 //flat tcurve + CurveSharppH = 0.5 + ThermicConstant = 1.5 + HIonRelease = 0.1 + RateUpLim = 50 //this seems quite high but 1. runaway thermals 2. it's very slow since it's 100K + FermiChem = TRUE + FermiExplode = FALSE + +/datum/chemical_reaction/medx + name = "Med-X" + id = /datum/reagent/medicine/medx + results = list(/datum/reagent/medicine/medx = 4) + required_reagents = list(/datum/reagent/drug/aranesp = 1, /datum/reagent/phenol = 1, /datum/reagent/drug/heroin = 1, /datum/reagent/medicine/stimpakimitation = 1) + OptimalTempMin = 780 + OptimalTempMax = 821 + ExplodeTemp = 824 + OptimalpHMin = 10 + OptimalpHMax = 14 + ReactpHLim = 1 + CurveSharpT = 10 + CurveSharppH = 0.5 + ThermicConstant = 8 + HIonRelease = -0.5 + RateUpLim = 40 + FermiChem = TRUE + /datum/chemical_reaction/mentats name = "mentats" diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index 1a4d48787a..93217920af 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -850,6 +850,28 @@ required_reagents = list(/datum/reagent/cellulose = 1) required_temp = 512 + +/datum/chemical_reaction/celugel + name = "Cellulose Plasticization" + id = /datum/reagent/celugel + required_catalysts = list(/datum/reagent/lithium = 5, /datum/reagent/chlorine = 5) + results = list(/datum/reagent/celugel = 4) + required_reagents = list(/datum/reagent/cellulose = 1, /datum/reagent/diethylamine = 1, /datum/reagent/fermi/acidic_buffer = 0.5, /datum/reagent/acetone = 1, /datum/reagent/carbondioxide = 1) //not a super easy recipe as it replaces a hard-to-get chemical + OptimalTempMin = 430 + OptimalTempMax = 520 + ExplodeTemp = 9999 + OptimalpHMin = 3 + OptimalpHMax = 6 + ReactpHLim = 2 + CurveSharpT = 5 + CurveSharppH = 0.5 + ThermicConstant = 4 + HIonRelease = 0.1 + RateUpLim = 6 + FermiChem = TRUE + FermiExplode = FALSE + + /datum/chemical_reaction/nutracid_reaction name = "Nutracid Nutriment Reaction" id = "nutracid" diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index 0c954c0450..8a758ed252 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -417,8 +417,8 @@ name = "Energized Jelly" id = /datum/reagent/teslium/energized_jelly results = list(/datum/reagent/teslium/energized_jelly = 2) - required_reagents = list(/datum/reagent/toxin/slimejelly = 1, /datum/reagent/teslium = 1) - mix_message = "The slime jelly starts glowing intermittently." + required_reagents = list(/datum/reagent/celugel = 1, /datum/reagent/teslium = 1) + mix_message = "The cellulose gel starts glowing intermittently." /datum/chemical_reaction/reagent_explosion/teslium_lightning name = "Teslium Destabilization" diff --git a/code/modules/reagents/reagent_containers/blood_pack.dm b/code/modules/reagents/reagent_containers/blood_pack.dm index ec734af764..4cd79a1306 100644 --- a/code/modules/reagents/reagent_containers/blood_pack.dm +++ b/code/modules/reagents/reagent_containers/blood_pack.dm @@ -155,3 +155,10 @@ labelled = 1 blood_type = null list_reagents = list(/datum/reagent/medicine/radaway = 200) + + +/obj/item/reagent_containers/blood/small + name = "small blood pack" + volume = 150 //same as plasbucket + w_class = WEIGHT_CLASS_SMALL + reagent_flags = INJECTABLE | DRAINABLE | AMOUNT_VISIBLE diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 2a6b7d3395..49a5c0b2be 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -337,6 +337,7 @@ desc = "An ancient, simple tool used in conjunction with a mortar to grind or juice items." icon = 'icons/obj/chemical.dmi' icon_state = "bone_pestle" + w_class = WEIGHT_CLASS_SMALL force = 6 /obj/item/reagent_containers/glass/mortar @@ -344,67 +345,112 @@ desc = "A specially formed bowl of ancient design. It is possible to crush or juice items placed in it using a pestle; however the process, unlike modern methods, is slow and physically exhausting." icon_state = "bone_mortar" amount_per_transfer_from_this = 10 - possible_transfer_amounts = list(5, 10, 15, 20, 25, 30, 50) + possible_transfer_amounts = list(5, 10, 15, 20, 25, 30, 50, 60, 120) + volume = 120 item_flags = NO_MAT_REDEMPTION reagent_flags = OPENCONTAINER spillable = TRUE - var/obj/item/grinded + var/list/holdingitems var/mortar_mode = MORTAR_JUICE var/blacklistchems = list( /obj/item/reagent_containers/pill/patch/turbo, /obj/item/reagent_containers/pill/buffout, /obj/item/reagent_containers/pill/patch/jet, ) - +/obj/item/reagent_containers/glass/mortar/Initialize() + . = ..() + holdingitems = list() /obj/item/reagent_containers/glass/mortar/examine(mob/user) . = ..() . += "Alt-click to eject any item put inside." . += "Alt-click while the mortar is empty to change between grind/juice mode." /obj/item/reagent_containers/glass/mortar/AltClick(mob/user) - if(grinded) - grinded.forceMove(drop_location()) - grinded = null - to_chat(user, "You eject the item inside.") - return TRUE + if(LAZYLEN(holdingitems)) + eject() else mortar_mode = !mortar_mode - to_chat(user, "You decide to hold [src] differently to [mortar_mode == MORTAR_JUICE ? "juice the harvest" : "grind the harvest"].") + to_chat(user, "You decide to [mortar_mode == MORTAR_JUICE ? "juice the harvest" : "grind the harvest"].") /obj/item/reagent_containers/glass/mortar/attackby(obj/item/I, mob/living/carbon/human/user) - if (is_type_in_list(I, blacklistchems)) + if(is_type_in_list(I, blacklistchems)) return - ..() if(istype(I,/obj/item/pestle)) - if(grinded) + if(LAZYLEN(holdingitems)) if(IS_STAMCRIT(user)) to_chat(user, "You are too tired to work!") return - to_chat(user, "You start grinding...") - if((do_after(user, 25, target = src))) - user.adjustStaminaLoss(15) - if(grinded.juice_results && (mortar_mode== MORTAR_JUICE)) // will prioritize juicing IF the Mortar's toggled to juice. - grinded.on_juice() - reagents.add_reagent_list(grinded.juice_results) - to_chat(user, "You juice [grinded] into a fine liquid.") - QDEL_NULL(grinded) - return - grinded.on_grind() - reagents.add_reagent_list(grinded.grind_results) - if(grinded.reagents && (mortar_mode== MORTAR_GRIND)) //food and pills - grinded.reagents.trans_to(src, grinded.reagents.total_volume, log = "mortar powdering") - to_chat(user, "You grind [grinded] into a fine powder.") - QDEL_NULL(grinded) + user.adjustStaminaLoss(2 * holdingitems.len) //max 40 + if(mortar_mode== MORTAR_JUICE) + juice() + return + else + grind() return - return else to_chat(user, "There is nothing to grind!") return - if(grinded) - to_chat(user, "There is something inside already!") + if(holdingitems.len >= 10) + to_chat(user, "The [src] is full!") + return + if(istype(I, /obj/item/storage/bag)) + var/list/inserted = list() + if(SEND_SIGNAL(I, COMSIG_TRY_STORAGE_TAKE_TYPE, /obj/item/reagent_containers/food/snacks/grown, src, 10 - length(holdingitems), null, null, user, inserted)) + for(var/i in inserted) + holdingitems[i] = TRUE + if(!I.contents.len) + to_chat(user, "You empty [I] into [src].") + else + to_chat(user, "You fill [src] to the brim.") + return TRUE + if(!I.grind_requirements(src)) //Error messages should be in the objects' definitions return if(I.juice_results || I.grind_results) - I.forceMove(src) - grinded = I + if(user.transferItemToLoc(I, src)) + to_chat(user, "You add [I] to [src].") + holdingitems[I] = TRUE + return FALSE + to_chat(user, "You can't put this in the mortar!") + ..() + +/obj/item/reagent_containers/glass/mortar/proc/eject(mob/user) + for(var/i in holdingitems) + var/obj/item/O = i + O.forceMove(drop_location()) + holdingitems -= O + +/obj/item/reagent_containers/glass/mortar/proc/remove_object(obj/item/O) + holdingitems -= O + qdel(O) + +/obj/item/reagent_containers/glass/mortar/proc/juice() + for(var/obj/item/i in holdingitems) + if(reagents.total_volume >= reagents.maximum_volume) + break + var/obj/item/I = i + if(I.juice_results) + juice_item(I) + +/obj/item/reagent_containers/glass/mortar/proc/juice_item(obj/item/I) //Juicing results can be found in respective object definitions + if(I.on_juice(src) == -1) + to_chat(usr, "[src] cannot juice [I].") + return + reagents.add_reagent_list(I.juice_results) + remove_object(I) + +/obj/item/reagent_containers/glass/mortar/proc/grind() + for(var/i in holdingitems) + if(reagents.total_volume >= reagents.maximum_volume) + break + var/obj/item/I = i + if(I.grind_results) + grind_item(i) + +/obj/item/reagent_containers/glass/mortar/proc/grind_item(obj/item/I) //Grind results can be found in respective object definitions + if(I.on_grind(src) == -1) //Call on_grind() to change amount as needed, and stop grinding the item if it returns -1 + to_chat(usr, "[src] cannot grind [I].") return - to_chat(user, "You can't grind this!") + reagents.add_reagent_list(I.grind_results) + if(I.reagents) + I.reagents.trans_to(reagents, I.reagents.total_volume) + remove_object(I) diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 7685150530..ffb65eff87 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -485,7 +485,7 @@ return var/fp_verb = mode == HYPO_SPRAY ? "spray" : "inject" - var/method = mode == HYPO_SPRAY ? TOUCH : INJECT + var/method = mode == HYPO_SPRAY ? PATCH : INJECT if(L != user) L.visible_message("[user] is trying to [fp_verb] [L] with [src]!", \ diff --git a/code/modules/research/designs/ammolathe_designs.dm b/code/modules/research/designs/ammolathe_designs.dm index 189c236fc2..2027749c3e 100644 --- a/code/modules/research/designs/ammolathe_designs.dm +++ b/code/modules/research/designs/ammolathe_designs.dm @@ -97,6 +97,20 @@ build_path = /obj/item/ammo_box/magazine/m556/rifle/small/empty category = list("initial", "Simple Magazines") +/datum/design/ammolathe/m762_rifle_small + name = "empty stripper clip (7.62mm)" + id = "m762_rifle_small" + materials = list(/datum/material/iron = 3000) + build_path = /obj/item/ammo_box/a762/empty + category = list("initial", "Simple Magazines") + +/datum/design/ammolathe/m762_rifle_small + name = "empty stripper clip (.308)" + id = "ma762_rifle_small" + materials = list(/datum/material/iron = 3000) + build_path = /obj/item/ammo_box/a308/empty + category = list("initial", "Simple Magazines") + /datum/design/ammolathe/m45magazine name = "empty handgun magazine (.45)" id = "m45magazine" @@ -226,6 +240,12 @@ build_path = /obj/item/ammo_box/magazine/uzim9mm/empty category = list("initial", "Basic Magazines") +/datum/design/ammolathe/carl_gustafmag + name = "empty carl gustaf magazine (10mm)" + id = "carl_gustafmag" + materials = list(/datum/material/iron = 4000) + build_path = /obj/item/ammo_box/magazine/cg45/empty + category = list("initial", "Basic Magazines") /datum/design/ammolathe/pistol22mag name = "empty pistol magazine (.22lr)" @@ -371,6 +391,13 @@ build_path = /obj/item/ammo_box/c4570/empty category = list("initial", "Intermediate Magazines") +/datum/design/ammolathe/m762_rifle_doublestack + name = "empty double stack stripper clip (7.62mm)" + id = "m762_rifle_doublestack" + materials = list(/datum/material/iron = 5000) + build_path = /obj/item/ammo_box/a762/doublestacked/empty + category = list("initial", "Intermediate Magazines") + /datum/design/ammolathe/tube4570 name = "empty speed loader tube (.45-70)" id = "tube4570" @@ -456,7 +483,6 @@ build_path = /obj/item/ammo_box/c4570box category = list("initial", "Intermediate Ammo") - /datum/design/ammolathe/lc45 name = ".45 LC ammo box" id = "c45lc" @@ -478,27 +504,6 @@ materials = list(/datum/material/iron = 15000, /datum/material/blackpowder = 2000) category = list("initial", "Intermediate Ammo") -/datum/design/ammolathe/a10mmwounding - name = "10mm wounding ammo box" - id = "a10mmwound" - build_path = /obj/item/ammo_box/c10mm/wounding - materials = list(/datum/material/iron = 15000, /datum/material/blackpowder = 5000) - category = list("initial", "Intermediate Ammo") - -/datum/design/ammolathe/a10mmfire - name = "10mm incendiary ammo box" - id = "10mmincend" - build_path = /obj/item/ammo_box/c10mm/fire - materials = list(/datum/material/iron = 15000, /datum/material/blackpowder = 10000) - category = list("initial", "Intermediate Ammo") - -/datum/design/ammolathe/a9mmwounding - name = "9mm wounding ammo box" - id = "9mmincend" - build_path = /obj/item/ammo_box/c9mm/wounding - materials = list(/datum/material/iron = 15000, /datum/material/blackpowder = 5000) - category = list("initial", "Intermediate Ammo") - /*/datum/design/ammolathe/a45op name = ".45 ACP +P ammo box" id = "a45op" @@ -551,6 +556,14 @@ build_path = /obj/item/ammo_box/magazine/m473/empty category = list("initial", "Advanced Magazines") +/datum/design/ammolathe/m473s + name = "empty wt550 magazine (4.73mm)" + id = "m473s" + materials = list(/datum/material/iron = 2000) + build_path = /obj/item/ammo_box/magazine/m473/small/empty + category = list("initial", "Advanced Magazines") + + /datum/design/ammolathe/m762ext name = "empty extended rifle magazine (7.62x51)" id = "m762ext" @@ -598,31 +611,65 @@ /datum/design/ammolathe/m473fmj name = "4.73mm caseless ammo box" id = "m473fmj" - materials = list(/datum/material/iron = 25000, /datum/material/blackpowder = 2000) + materials = list(/datum/material/iron = 20000, /datum/material/blackpowder = 2000) build_path = /obj/item/ammo_box/m473 category = list("initial", "Advanced Ammo") -/datum/design/ammolathe/a556uraniumtipped - name = "5.56mm uranium-tipped ammo box" - id = "a556uranium" - materials = list(/datum/material/iron = 40000, /datum/material/titanium = 15000, /datum/material/blackpowder = 5000, /datum/material/uranium = 4000) - build_path = /obj/item/ammo_box/a556/uraniumtipped +/datum/design/ammolathe/m473rubber + name = "4.73mm caseless rubber ammo box" + id = "m473rubber" + materials = list(/datum/material/plastic = 12000, /datum/material/blackpowder = 1000) + build_path = /obj/item/ammo_box/m473/rubber + category = list("initial", "Advanced Ammo") + +/datum/design/ammolathe/m473incin + name = "4.73mm incendiary caseless ammo box" + id = "m473incin" + materials = list(/datum/material/iron = 20000, /datum/material/blackpowder = 3000) + build_path = /obj/item/ammo_box/m473/incendiary + category = list("initial", "Advanced Ammo") + +/datum/design/ammolathe/m473u235 + name = "4.73mm uranium-tipped caseless ammo box" + id = "m473u235" + materials = list(/datum/material/titanium = 10000, /datum/material/uranium = 4000, /datum/material/blackpowder = 2000) + build_path = /obj/item/ammo_box/m473/uraniumtipped + category = list("initial", "Advanced Ammo") + +/datum/design/ammolathe/m473wound + name = "4.73mm flat-nose caseless ammo box" + id = "m473wound" + materials = list(/datum/material/iron = 12000,/datum/material/titanium = 2000, /datum/material/blackpowder = 2000) + build_path = /obj/item/ammo_box/m473/dumdum category = list("initial", "Advanced Ammo") -/datum/design/ammolathe/a762uraniumtipped - name = "7.62 uranium-tipped ammo box" - id = "a762uranium" - materials = list(/datum/material/iron = 40000, /datum/material/titanium = 15000, /datum/material/blackpowder = 5000, /datum/material/uranium = 4000) - build_path = /obj/item/ammo_box/a762box/uraniumtipped +/datum/design/ammolathe/m473explosive + name = "4.73mm explosive caseless ammo box" + id = "m473explosive" + materials = list(/datum/material/iron = 24000, /datum/material/titanium = 10000, /datum/material/blackpowder = 10000) + build_path = /obj/item/ammo_box/m473/explosive category = list("initial", "Advanced Ammo") -/datum/design/ammolathe/a45incendiary - name = ".45 incendiary ammo box" - id = "45incend" - materials = list(/datum/material/iron = 20000, /datum/material/blackpowder = 15000) - build_path = /obj/item/ammo_box/c45/incendiary +/datum/design/ammolathe/m473esd + name = "4.73mm ESD caseless ammo box" + id = "m473esd" + materials = list(/datum/material/iron = 12000, /datum/material/gold = 2000, /datum/material/silver = 2000, /datum/material/titanium = 2000, /datum/material/blackpowder = 2000) + build_path = /obj/item/ammo_box/m473/shock category = list("initial", "Advanced Ammo") +/datum/design/ammolathe/m473hv + name = "4.73mm high-velocity caseless ammo box" + id = "m473hv" + materials = list(/datum/material/iron = 12000, /datum/material/titanium = 8000, /datum/material/blackpowder = 3000) + build_path = /obj/item/ammo_box/m473/hv + category = list("initial", "Advanced Ammo") + + + + + + + /datum/design/ammolathe/a357ricochet name = ".357 ricochet ammo" id = "357ricochet" diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index a639f71c13..face6d75b2 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -421,6 +421,14 @@ build_path = /obj/item/reagent_containers/glass/beaker/large category = list("initial", "Medical") +/datum/design/xl_beaker + name = "Extra-Large Beaker" + id = "xl_beaker" + build_type = AUTOLATHE + materials = list(MAT_GLASS = 2500, /datum/material/plastic = 3000) + build_path = /obj/item/reagent_containers/glass/beaker/plastic + category = list("initial", "Medical") + /datum/design/solids name = "Solid Beaker" id = "solids" diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm index 8f8500e69f..21a3474b94 100644 --- a/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm @@ -172,6 +172,23 @@ category = list("initial", "Medical","Medical Designs") departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SERVICE | DEPARTMENTAL_FLAG_SCIENCE +/datum/design/xl_beaker + name = "Extra-Large Beaker" + id = "xl_beaker" + build_type = AUTOLATHE + materials = list(/datum/material/glass = 2500, /datum/material/plastic = 3000) + build_path = /obj/item/reagent_containers/glass/beaker/plastic + category = list("initial", "Medical") + +/datum/design/blood_bag_s + name = "Empty Small Blood Bag" + desc = "A small sterilized plastic bag for blood." + id = "blood_bag_s" + build_path = /obj/item/reagent_containers/blood/small + build_type = AUTOLATHE + materials = list(/datum/material/glass = 1500, /datum/material/plastic = 3500) + category = list("initial", "Medical") + /datum/design/healthanalyzer name = "Health Analyzer" id = "healthanalyzer" diff --git a/code/modules/research/designs/autoylathe_designs.dm b/code/modules/research/designs/autoylathe_designs.dm index 354fbfe53d..f7ff0208fc 100644 --- a/code/modules/research/designs/autoylathe_designs.dm +++ b/code/modules/research/designs/autoylathe_designs.dm @@ -437,13 +437,6 @@ build_path = /obj/item/toy/figure/wizard category = list("hacked", "Figurines") -/datum/design/autoylathe/dildo - name = "Customizable Dildo" - id = "dildo" - materials = list(/datum/material/plastic = 2000) - build_path = /obj/item/dildo/custom - category = list("initial", "Adult") - /datum/design/autoylathe/collar name = "Collar" id = "collar" diff --git a/code/modules/research/designs/comp_board_designs/comp_board_designs_all_misc.dm b/code/modules/research/designs/comp_board_designs/comp_board_designs_all_misc.dm index 99caa5b480..8ea883edf1 100644 --- a/code/modules/research/designs/comp_board_designs/comp_board_designs_all_misc.dm +++ b/code/modules/research/designs/comp_board_designs/comp_board_designs_all_misc.dm @@ -21,14 +21,6 @@ category = list("Computer Boards") departmental_flags = DEPARTMENTAL_FLAG_ALL -/datum/design/board/minesweeper - name = "Computer Design (Minesweeper Arcade Machine)" - desc = "Allows for the construction of circuit boards used to build a new Minesweeper machine." - id = "arcade_minesweeper" - build_path = /obj/item/circuitboard/computer/arcade/minesweeper - category = list("Computer Boards") - departmental_flags = DEPARTMENTAL_FLAG_ALL - /datum/design/board/slot_machine name = "Computer Design (Slot Machine)" desc = "Allows for the construction of circuit boards used to build a new slot machine." diff --git a/code/modules/research/nanites/nanite_programs/healing.dm b/code/modules/research/nanites/nanite_programs/healing.dm index 18307ce2c5..b00554e52c 100644 --- a/code/modules/research/nanites/nanite_programs/healing.dm +++ b/code/modules/research/nanites/nanite_programs/healing.dm @@ -230,7 +230,7 @@ var/mob/living/carbon/C = host_mob if(C.get_ghost()) return FALSE - return C.can_defib() + return C.can_revive() /datum/nanite_program/defib/proc/zap() var/mob/living/carbon/C = host_mob @@ -247,4 +247,3 @@ log_game("[C] has been successfully defibrillated by nanites.") else playsound(C, 'sound/machines/defib_failed.ogg', 50, FALSE) - diff --git a/code/modules/research/techweb/_techweb.dm b/code/modules/research/techweb/_techweb.dm index c1fde62cdf..9992c6b2fd 100644 --- a/code/modules/research/techweb/_techweb.dm +++ b/code/modules/research/techweb/_techweb.dm @@ -404,6 +404,10 @@ design_autounlock_buildtypes = AUTOLATHE allowed_buildtypes = AUTOLATHE|TOYLATHE|AMMOLATHE +/datum/techweb/specialized/autounlocking/basiclathe + design_autounlock_buildtypes = BASIC + allowed_buildtypes = BASIC + /datum/techweb/specialized/autounlocking/autolathe/public design_autounlock_skip_types = NO_PUBLIC_LATHE diff --git a/code/modules/research/techweb/nodes/computer_hud_nodes.dm b/code/modules/research/techweb/nodes/computer_hud_nodes.dm index 1c83ddd4c6..02c1606e71 100644 --- a/code/modules/research/techweb/nodes/computer_hud_nodes.dm +++ b/code/modules/research/techweb/nodes/computer_hud_nodes.dm @@ -60,5 +60,5 @@ display_name = "Games and Toys" description = "For the slackers on the station." prereq_ids = list("comptech") - design_ids = list("arcade_battle", "arcade_orion", "arcade_minesweeper", "slotmachine", "autoylathe") + design_ids = list("arcade_battle", "arcade_orion", "slotmachine", "autoylathe") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) diff --git a/code/modules/smithing/anvil.dm b/code/modules/smithing/anvil.dm index c43ecacb32..0fd16dd9fd 100644 --- a/code/modules/smithing/anvil.dm +++ b/code/modules/smithing/anvil.dm @@ -47,7 +47,7 @@ var/rng = FALSE var/debug = FALSE //vv this if you want an artifact var/artifactrolled = FALSE - var/itemqualitymax = 20 + var/itemqualitymax = 8 var/list/smithrecipes = list(RECIPE_HAMMER = /obj/item/smithing/hammerhead, RECIPE_SCYTHE = /obj/item/smithing/scytheblade, RECIPE_SHOVEL = /obj/item/smithing/shovelhead, @@ -305,7 +305,6 @@ icon_state = "ratvaranvil" anvilquality = 1 itemqualitymax = 8 - /obj/structure/anvil/obtainable/ratvar/attackby(obj/item/I, mob/user) if(is_servant_of_ratvar(user)) return ..() diff --git a/code/modules/smithing/finished_items.dm b/code/modules/smithing/finished_items.dm index 6c2a048e53..ff7fa90a7c 100644 --- a/code/modules/smithing/finished_items.dm +++ b/code/modules/smithing/finished_items.dm @@ -8,8 +8,9 @@ material_flags = MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS total_mass = TOTAL_MASS_MEDIEVAL_WEAPON //yeah ok slot_flags = ITEM_SLOT_BELT + obj_flags = UNIQUE_RENAME w_class = WEIGHT_CLASS_NORMAL - force = 6 + force = 5 lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi' var/quality @@ -32,7 +33,7 @@ /obj/item/melee/smith/twohand item_flags = NEEDS_PERMIT //it's a bigass sword/spear. beepsky is going to give you shit for it. sharpness = SHARP_EDGED - obj_flags = UNIQUE_RENAME + attack_speed = CLICK_CD_MELEE * 1.1 material_flags = MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS force = 10 wielded_mult = 1.75 @@ -116,10 +117,10 @@ icon_state = "halberd" w_class = WEIGHT_CLASS_HUGE overlay_state = "spearhandle" + attack_speed = CLICK_CD_MELEE * 1.25 max_reach = 2 slot_flags = ITEM_SLOT_BACK - obj_flags = UNIQUE_RENAME - wielded_mult = 1.8 + wielded_mult = 1.75 /obj/item/melee/smith/twohand/halberd/ComponentInitialize() . = ..() @@ -130,9 +131,9 @@ name = "javelin" icon_state = "javelin" overlay_state = "longhandle" - wielded_mult = 1.5 + wielded_mult = 1.25 + armour_penetration = 0.2 slot_flags = ITEM_SLOT_BACK - obj_flags = UNIQUE_RENAME sharpness = SHARP_POINTY @@ -146,8 +147,7 @@ overlay_state = "longhandle" max_reach = 2 slot_flags = ITEM_SLOT_BACK - obj_flags = UNIQUE_RENAME - wielded_mult = 1.5 + wielded_mult = 1.45 /obj/item/melee/smith/twohand/glaive/ComponentInitialize() . = ..() @@ -158,10 +158,9 @@ name = "pike" icon_state = "pike" overlay_state = "longhandle" - max_reach = 2 //yeah ok - wielded_mult = 1.3 + max_reach = 3 //yeah ok + wielded_mult = 1.25 slot_flags = ITEM_SLOT_BACK - obj_flags = UNIQUE_RENAME sharpness = SHARP_POINTY ////////////////////////// @@ -176,7 +175,6 @@ var/qualitymod = 0 /obj/item/scythe/smithed //we need to inherit scythecode, but that's about it. - obj_flags = UNIQUE_RENAME material_flags = MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS @@ -184,14 +182,14 @@ name = "coghead club" icon_state = "coghead" item_flags = NEEDS_PERMIT - obj_flags = UNIQUE_RENAME overlay_state = "stick" + bare_wound_bonus = 5 + wound_bonus = 5 /obj/item/melee/smith/shortsword name = "gladius" - force = 9 + force = 4 item_flags = NEEDS_PERMIT - obj_flags = UNIQUE_RENAME sharpness = SHARP_EDGED icon_state = "gladius" overlay_state = "gladiushilt" @@ -199,16 +197,14 @@ /obj/item/melee/smith/shortsword/scimitar name = "scimitar" sharpness = SHARP_EDGED - obj_flags = UNIQUE_RENAME icon_state = "scimitar" overlay_state = "scimitarhilt" /obj/item/melee/smith/wakizashi name = "wakizashi" sharpness = SHARP_EDGED - force = 7 + force = 3 item_flags = NEEDS_PERMIT | ITEM_CAN_PARRY - obj_flags = UNIQUE_RENAME icon_state = "waki" overlay_state = "wakihilt" block_parry_data = /datum/block_parry_data/waki @@ -225,33 +221,45 @@ parry_efficiency_considered_successful = 80 parry_efficiency_perfect = 120 parry_failed_stagger_duration = 3 SECONDS + parry_efficiency_perfect_override = list( + ATTACK_TYPE_PROJECTILE_TEXT = 10, + ) parry_data = list(PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN = 1.9) /obj/item/melee/smith/twohand/broadsword name = "broadsword" icon_state = "broadsword" overlay_state = "broadhilt" - obj_flags = UNIQUE_RENAME wielded_mult = 1.8 /obj/item/melee/smith/twohand/zweihander name = "zweihander" icon_state = "zwei" overlay_state = "zweihilt" - total_mass = TOTAL_MASS_MEDIEVAL_WEAPON * 2 - force = 4 - obj_flags = UNIQUE_RENAME - wielded_mult = 2 //affected more by quality. a -1 is 25% less damage, a +1 is 25% more. These bonuses are tripled when wielded. + attack_speed = CLICK_CD_MELEE * 1.2 + wielded_mult = 3.5 //affected more by quality due to its high wielded mult /obj/item/melee/smith/twohand/katana name = "katana" icon_state = "katana" overlay_state = "katanahilt" - force = 7 - wielded_mult = 2 - item_flags = ITEM_CAN_PARRY | NEEDS_PERMIT //want to name your katana "DEMON BLADE" or some shit? go ahead, idiot. - obj_flags = UNIQUE_RENAME - block_parry_data = /datum/block_parry_data/captain_saber //todo + wielded_mult = 1.25 + item_flags = ITEM_CAN_PARRY | NEEDS_PERMIT + block_parry_data = /datum/block_parry_data/katana + +/datum/block_parry_data/katana + parry_time_windup = 0.5 + parry_time_active = 4 + parry_time_spindown = 1 + parry_time_perfect = 0.75 + parry_time_perfect_leeway = 0.75 + parry_imperfect_falloff_percent = 30 + parry_efficiency_perfect = 100 + parry_failed_stagger_duration = 3 SECONDS + parry_failed_clickcd_duration = 2 SECONDS + parry_efficiency_perfect_override = list( + ATTACK_TYPE_PROJECTILE_TEXT = 10, + ) /obj/item/melee/smith/sabre name = "sabre" @@ -259,27 +267,25 @@ sharpness = SHARP_EDGED overlay_state = "sabrehilt" armour_penetration = 0.3 - force = 9 + force = 3 hitsound = 'sound/weapons/rapierhit.ogg' item_flags = NEEDS_PERMIT | ITEM_CAN_PARRY - obj_flags = UNIQUE_RENAME - block_parry_data = /datum/block_parry_data/captain_saber //yeah this is fine i guess + block_parry_data = /datum/block_parry_data/katana //yeah this is fine i guess /obj/item/melee/smith/sabre/rapier name = "rapier" icon_state = "rapier" sharpness = SHARP_EDGED overlay_state = "rapierhilt" - force = 6 //less force, stronger parry + force = 2 //less force, stronger parry sharpness = SHARP_POINTY armour_penetration = 0.6 - obj_flags = UNIQUE_RENAME block_parry_data = /datum/block_parry_data/smithrapier -/datum/block_parry_data/smithrapier //parry into riposte. i am pretty sure this is going to be nearly fucking impossible to land. - parry_stamina_cost = 12 //dont miss - parry_time_active = 4 - parry_time_perfect = 2 +/datum/block_parry_data/smithrapier + parry_stamina_cost = 20 //dont miss + parry_time_active = 3 + parry_time_perfect = 1 parry_time_perfect_leeway = 2 parry_failed_stagger_duration = 3 SECONDS parry_failed_clickcd_duration = 3 SECONDS @@ -289,6 +295,9 @@ parry_efficiency_to_counterattack = 100 parry_efficiency_considered_successful = 120 parry_efficiency_perfect = 120 + parry_efficiency_perfect_override = list( + ATTACK_TYPE_PROJECTILE_TEXT = 10, + ) parry_data = list(PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN = 4) //unique hammers diff --git a/code/modules/smithing/smithed_items.dm b/code/modules/smithing/smithed_items.dm index fb78f564b5..c2a884b383 100644 --- a/code/modules/smithing/smithed_items.dm +++ b/code/modules/smithing/smithed_items.dm @@ -164,8 +164,8 @@ /obj/item/smithing/scytheblade/startfinish() finalitem = new /obj/item/scythe/smithed(src) - finalitem.force += quality*2.5 - //finalitem.armour_penetration += quality*0.0375 + finalitem.force = quality*4.5 //36 at 8 quality + ..() /obj/item/smithing/shovelhead @@ -189,7 +189,7 @@ /obj/item/smithing/cogheadclubhead/startfinish() finalitem = new /obj/item/melee/smith/cogheadclub(src) - finalitem.force += quality*3.4 + finalitem.force += quality*3.5 //33 at 8 quality, 38 for wounding, and 43 for bare wounding ..() /obj/item/smithing/javelinhead @@ -199,11 +199,11 @@ /obj/item/smithing/javelinhead/startfinish() var/obj/item/melee/smith/twohand/javelin/finalforreal = new /obj/item/melee/smith/twohand/javelin(src) - finalforreal.force += quality*2.5 - //finalforreal.armour_penetration += quality*0.0375 + finalforreal.force += quality*2 //26 at 8 quality + finalforreal.wield_force = finalforreal.force*finalforreal.wielded_mult - finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]") - finalforreal.throwforce = finalforreal.force*2 + finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]") //32.5 at 8 quality, wielded + finalforreal.throwforce = finalforreal.force*2 //52 at 8 quality, but no embed finalitem = finalforreal ..() @@ -214,10 +214,10 @@ /obj/item/smithing/pikehead/startfinish() var/obj/item/melee/smith/twohand/pike/finalforreal = new /obj/item/melee/smith/twohand/pike(src) - finalforreal.force += quality*2.5 - //finalforreal.armour_penetration += quality*0.0375 + finalforreal.force += quality*2//26 at 8 quality + finalforreal.wield_force = finalforreal.force*finalforreal.wielded_mult - finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]") + finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]")//32.5 at 8 quality, wielded finalforreal.throwforce = finalforreal.force/10 //its a pike not a javelin finalitem = finalforreal ..() @@ -269,8 +269,8 @@ /obj/item/smithing/shortswordblade/startfinish() finalitem = new /obj/item/melee/smith/shortsword(src) - finalitem.force += quality*2.5 - //finalitem.armour_penetration += quality*0.0375 + finalitem.force += quality*4 //36 at 8 quality + ..() /obj/item/smithing/scimitarblade @@ -281,8 +281,8 @@ /obj/item/smithing/scimitarblade/startfinish() finalitem = new /obj/item/melee/smith/shortsword/scimitar(src) - finalitem.force += quality*2.5 - //finalitem.armour_penetration += quality*0.0025 + finalitem.force += quality*4 //36 at 8 quality + ..() /obj/item/smithing/wakiblade @@ -293,8 +293,8 @@ /obj/item/smithing/wakiblade/startfinish() finalitem = new /obj/item/melee/smith/wakizashi(src) - finalitem.force += quality*2.5 - //finalitem.armour_penetration += quality*0.0375 + finalitem.force += quality*3.5 //31 at 8 quality + ..() /obj/item/smithing/sabreblade @@ -305,8 +305,8 @@ /obj/item/smithing/sabreblade/startfinish() finalitem = new /obj/item/melee/smith/sabre(src) - finalitem.force += quality*2.5 - //finalitem.armour_penetration += quality*0.0375 + finalitem.force += quality*3.5 //31 at 8 quality + ..() /obj/item/smithing/rapierblade @@ -317,8 +317,8 @@ /obj/item/smithing/rapierblade/startfinish() finalitem = new /obj/item/melee/smith/sabre/rapier(src) - finalitem.force += quality*2.5 - //finalitem.armour_penetration += quality*0.0375 + finalitem.force += quality*3 //26 at 8 quality, but 0.6 ap + ..() /obj/item/smithing/knifeblade @@ -328,9 +328,8 @@ icon_state = "dagger" /obj/item/smithing/knifeblade/startfinish() - finalitem = new /obj/item/kitchen/knife(src) - finalitem.force = 4 + quality/2 - finalitem.armour_penetration += quality*0.0375 + finalitem = new /obj/item/melee/onehanded/knife/survival(src) + finalitem.force = 3 + quality*3.5//31 at 8 quality finalitem.icon = 'icons/obj/smith.dmi' finalitem.icon_state = "dagger" finalitem.name = "dagger" @@ -351,10 +350,9 @@ /obj/item/smithing/broadblade/startfinish() var/obj/item/melee/smith/twohand/broadsword/finalforreal = new /obj/item/melee/smith/twohand/broadsword(src) - finalforreal.force += quality*2.5 - //finalforreal.armour_penetration += quality*0.0375 + finalforreal.force += quality*2.5//30 force onehanded 8 quality finalforreal.wield_force = finalforreal.force*finalforreal.wielded_mult - finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]") + finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]")//54 force twohanded at 8 quality finalitem = finalforreal ..() @@ -366,10 +364,9 @@ /obj/item/smithing/zweiblade/startfinish() var/obj/item/melee/smith/twohand/zweihander/finalforreal = new /obj/item/melee/smith/twohand/zweihander(src) - finalforreal.force += quality*2.5 - //finalforreal.armour_penetration += quality*0.0375 + finalforreal.force += quality //18 force onehanded 8 quality finalforreal.wield_force = finalforreal.force*finalforreal.wielded_mult - finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]") + finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]")//63 force wielded at 8 quality finalitem = finalforreal ..() @@ -380,11 +377,10 @@ /obj/item/smithing/halberdhead/startfinish() var/obj/item/melee/smith/twohand/halberd/finalforreal = new /obj/item/melee/smith/twohand/halberd(src) - finalforreal.force += quality*2.5 - //finalforreal.armour_penetration += quality*0.025 + finalforreal.force += quality*2 //26 force onehanded, which is impossible finalforreal.wield_force = finalforreal.force*finalforreal.wielded_mult finalforreal.throwforce = finalforreal.force/3 - finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]") + finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]") //50.7 force twohanded finalitem = finalforreal ..() @@ -395,11 +391,10 @@ /obj/item/smithing/glaivehead/startfinish() var/obj/item/melee/smith/twohand/glaive/finalforreal = new /obj/item/melee/smith/twohand/glaive(src) - finalforreal.force += quality*2.5 - //finalforreal.armour_penetration += quality*0.0025 + finalforreal.force += quality*2 finalforreal.wield_force = finalforreal.force*finalforreal.wielded_mult finalforreal.throwforce = finalforreal.force - finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]") + finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]")//37.7 force wielded at 8 quality finalitem = finalforreal ..() @@ -412,10 +407,9 @@ /obj/item/smithing/katanablade/startfinish() var/obj/item/melee/smith/twohand/katana/finalforreal = new /obj/item/melee/smith/twohand/katana(src) - finalforreal.force += quality*2.5 - //finalforreal.armour_penetration += quality*0.0375 + finalforreal.force += quality*2.5 //30 force onehanded at 8 quality finalforreal.wield_force = finalforreal.force*finalforreal.wielded_mult - finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]") + finalforreal.AddComponent(/datum/component/two_handed, force_unwielded=finalforreal.force, force_wielded=finalforreal.wield_force, icon_wielded="[icon_state]") //37.5 force twohanded. low for a 2h, but it gets parry to make up for it finalitem = finalforreal ..() diff --git a/code/modules/surgery/burn_dressing.dm b/code/modules/surgery/burn_dressing.dm index 6af9ebf731..789da6ee7a 100644 --- a/code/modules/surgery/burn_dressing.dm +++ b/code/modules/surgery/burn_dressing.dm @@ -48,8 +48,8 @@ "[user] successfully excises some of the infected flesh from [target]'s [parse_zone(target_zone)]!") log_combat(user, target, "excised infected flesh in", addition="INTENT: [uppertext(user.a_intent)]") surgery.operated_bodypart.receive_damage(brute=3, wound_bonus=CANT_WOUND) - burn_wound.infestation -= 0.5 - burn_wound.sanitization += 0.5 + burn_wound.infestation -= 0.85 + burn_wound.sanitization += 0.75 if(burn_wound.infestation <= 0) repeatable = FALSE else diff --git a/code/modules/vehicles/rubbish.dm b/code/modules/vehicles/rubbish.dm index 0ba92cb6a3..70607d7f17 100644 --- a/code/modules/vehicles/rubbish.dm +++ b/code/modules/vehicles/rubbish.dm @@ -27,14 +27,14 @@ resistance_flags = INDESTRUCTIBLE bound_height = 64 bound_width = 64 - var/uses_left = 5 + var/uses_left = 2 var/inuse = FALSE /obj/structure/car/welder_act(mob/living/user, obj/item/I) . = TRUE - var/obj/item/l = user.get_inactive_held_item() + if(inuse || uses_left <= 0) //this means that if mappers or admins want an nonharvestable version, set the uses_left to 0 return inuse = TRUE //one at a time boys, this isn't some kind of weird party @@ -43,32 +43,32 @@ return //the tool fails this check, so stop user.visible_message("[user] starts disassembling [src].") for(var/i1 in 1 to 2) - if(!I.use_tool(src, user, 100, volume=100)) + if(!I.use_tool(src, user, 75, volume=100)) user.visible_message("[user] stops disassembling [src].") - if(l && l.name == "welding⠀tool") //Checks for the off-hand welding tool to make welding faster - var/a = input(user, "") as text - var/s = text2path(a) - if(s) new s(get_turf(user)) inuse = FALSE return //you did something, like moving, so stop - var/fake_dismantle = pick("plating", "rod", "rim", "part of the frame") user.visible_message("[user] slices through a [fake_dismantle].") var/turf/usr_turf = get_turf(user) //Bellow are the changes made by PR#256 var/modifier = 0 if(HAS_TRAIT(user,TRAIT_TECHNOPHREAK)) - modifier = rand(1,3) - for(var/i2 in 1 to (3+modifier)) - if(prob(25)) - if(prob(50)) - new /obj/item/salvage/crafting(usr_turf) - else if(prob(30)) - new /obj/item/salvage/tool(usr_turf) - else - new /obj/item/salvage/low(usr_turf) + modifier += rand(1,3) + var/obj/item/l = user.get_inactive_held_item() + if(istype(l,/obj/item/weldingtool)) + var/obj/item/weldingtool/WO = l + if(WO.tool_start_check(user, amount=3)) + WO.use(3) + modifier++ + for(var/i2 in 1 to (2+modifier)) + if(prob(50)) + new /obj/item/salvage/low(usr_turf) + else if(prob(40)) + new /obj/item/salvage/tool(usr_turf) + else + new /obj/item/salvage/crafting(usr_turf) for(var/i3 in 1 to (1+modifier)) //this is just less lines for the same thing - if(prob(5)) + if(prob(7.5)) new /obj/item/salvage/high(usr_turf) uses_left-- inuse = FALSE //putting this after the -- because the first check prevents cheesing diff --git a/code/modules/vending/megaseed.dm b/code/modules/vending/megaseed.dm index 5ddd49e7ad..4dee459e49 100644 --- a/code/modules/vending/megaseed.dm +++ b/code/modules/vending/megaseed.dm @@ -33,7 +33,9 @@ /obj/item/seeds/potato = 3, /obj/item/seeds/poppy = 3, /obj/item/seeds/pumpkin = 3, + /obj/item/seeds/rainbow_bunch = 3, /obj/item/seeds/wheat/rice = 3, + /obj/item/seeds/rose = 3, /obj/item/seeds/soya = 3, /obj/item/seeds/sugarcane = 3, /obj/item/seeds/sunflower = 3, @@ -48,6 +50,7 @@ contraband = list(/obj/item/seeds/amanita = 2, /obj/item/seeds/glowshroom = 2, /obj/item/seeds/liberty = 2, + /obj/item/seeds/poppy/lily = 2, /obj/item/seeds/nettle = 2, /obj/item/seeds/plump = 2, /obj/item/seeds/reishi = 2, diff --git a/config/game_options.txt b/config/game_options.txt index 2d86f8b230..92ff13caa6 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -446,6 +446,7 @@ SILICON_MAX_LAW_AMOUNT 12 ## You probably want humans on your space station, but technically speaking you can turn them off without any ill effect ROUNDSTART_RACES human ROUNDSTART_RACES ghoul +ROUNDSTART_RACES smutant ## Races that are strictly worse than humans that could probably be turned on without balance concerns #ROUNDSTART_RACES lizard diff --git a/fortune13.dme b/fortune13.dme index 91ff9f269b..97d639cf42 100644 --- a/fortune13.dme +++ b/fortune13.dme @@ -881,7 +881,6 @@ #include "code\game\machinery\computer\teleporter.dm" #include "code\game\machinery\computer\terminal.dm" #include "code\game\machinery\computer\arcade\battle.dm" -#include "code\game\machinery\computer\arcade\minesweeper.dm" #include "code\game\machinery\computer\arcade\misc_arcade.dm" #include "code\game\machinery\computer\arcade\orion_trail.dm" #include "code\game\machinery\computer\prisoner\_prisoner.dm" @@ -1745,7 +1744,6 @@ #include "code\modules\arousal\organs\testicles.dm" #include "code\modules\arousal\organs\vagina.dm" #include "code\modules\arousal\organs\womb.dm" -#include "code\modules\arousal\toys\dildos.dm" #include "code\modules\assembly\assembly.dm" #include "code\modules\assembly\bomb.dm" #include "code\modules\assembly\doorcontrol.dm" @@ -2244,11 +2242,14 @@ #include "code\modules\hydroponics\beekeeping\beekeeper_suit.dm" #include "code\modules\hydroponics\beekeeping\honey_frame.dm" #include "code\modules\hydroponics\beekeeping\honeycomb.dm" +#include "code\modules\hydroponics\grown\agave.dm" #include "code\modules\hydroponics\grown\ambrosia.dm" #include "code\modules\hydroponics\grown\apple.dm" #include "code\modules\hydroponics\grown\banana.dm" #include "code\modules\hydroponics\grown\beans.dm" #include "code\modules\hydroponics\grown\berries.dm" +#include "code\modules\hydroponics\grown\broc.dm" +#include "code\modules\hydroponics\grown\buffalogourd.dm" #include "code\modules\hydroponics\grown\cannabis.dm" #include "code\modules\hydroponics\grown\cereals.dm" #include "code\modules\hydroponics\grown\chili.dm" @@ -2256,29 +2257,41 @@ #include "code\modules\hydroponics\grown\cocoa_vanilla.dm" #include "code\modules\hydroponics\grown\corn.dm" #include "code\modules\hydroponics\grown\cotton.dm" +#include "code\modules\hydroponics\grown\coyotetobacco.dm" +#include "code\modules\hydroponics\grown\datura.dm" #include "code\modules\hydroponics\grown\eggplant.dm" +#include "code\modules\hydroponics\grown\feracactus.dm" #include "code\modules\hydroponics\grown\flowers.dm" #include "code\modules\hydroponics\grown\garlic.dm" #include "code\modules\hydroponics\grown\grass_carpet.dm" +#include "code\modules\hydroponics\grown\horsenettle.dm" #include "code\modules\hydroponics\grown\melon.dm" +#include "code\modules\hydroponics\grown\mesquite.dm" #include "code\modules\hydroponics\grown\misc.dm" #include "code\modules\hydroponics\grown\mushrooms.dm" +#include "code\modules\hydroponics\grown\mutfruit.dm" #include "code\modules\hydroponics\grown\nettle.dm" #include "code\modules\hydroponics\grown\onion.dm" #include "code\modules\hydroponics\grown\peach.dm" #include "code\modules\hydroponics\grown\peanuts.dm" #include "code\modules\hydroponics\grown\peas.dm" #include "code\modules\hydroponics\grown\pineapple.dm" +#include "code\modules\hydroponics\grown\pinyon.dm" #include "code\modules\hydroponics\grown\potato.dm" +#include "code\modules\hydroponics\grown\prickly.dm" #include "code\modules\hydroponics\grown\pumpkin.dm" +#include "code\modules\hydroponics\grown\punga.dm" #include "code\modules\hydroponics\grown\rainbow_bunch.dm" #include "code\modules\hydroponics\grown\random.dm" #include "code\modules\hydroponics\grown\replicapod.dm" #include "code\modules\hydroponics\grown\root.dm" +#include "code\modules\hydroponics\grown\tato.dm" #include "code\modules\hydroponics\grown\tea_coffee.dm" #include "code\modules\hydroponics\grown\tobacco.dm" #include "code\modules\hydroponics\grown\tomato.dm" #include "code\modules\hydroponics\grown\towercap.dm" +#include "code\modules\hydroponics\grown\xander.dm" +#include "code\modules\hydroponics\grown\yucca.dm" #include "code\modules\instruments\instrument_data\_instrument_data.dm" #include "code\modules\instruments\instrument_data\_instrument_key.dm" #include "code\modules\instruments\instrument_data\brass.dm" diff --git a/icons/fallout/UI/buttons_fallout2.dmi b/icons/fallout/UI/buttons_fallout2.dmi index 5f03c465a2..7baa9b069f 100644 Binary files a/icons/fallout/UI/buttons_fallout2.dmi and b/icons/fallout/UI/buttons_fallout2.dmi differ diff --git a/icons/fallout/clothing/armored_heavy.dmi b/icons/fallout/clothing/armored_heavy.dmi index 6115078e15..fc7d59284c 100644 Binary files a/icons/fallout/clothing/armored_heavy.dmi and b/icons/fallout/clothing/armored_heavy.dmi differ diff --git a/icons/fallout/clothing/armored_light.dmi b/icons/fallout/clothing/armored_light.dmi index b636404987..5da36ecb37 100644 Binary files a/icons/fallout/clothing/armored_light.dmi and b/icons/fallout/clothing/armored_light.dmi differ diff --git a/icons/fallout/clothing/armored_medium.dmi b/icons/fallout/clothing/armored_medium.dmi index ec1db934b5..a79cd7faf5 100644 Binary files a/icons/fallout/clothing/armored_medium.dmi and b/icons/fallout/clothing/armored_medium.dmi differ diff --git a/icons/fallout/clothing/hats.dmi b/icons/fallout/clothing/hats.dmi index 2eef1bc1cb..d1817805a6 100644 Binary files a/icons/fallout/clothing/hats.dmi and b/icons/fallout/clothing/hats.dmi differ diff --git a/icons/fallout/objects/guns/ammo.dmi b/icons/fallout/objects/guns/ammo.dmi index 375b320af9..878fcd2570 100644 Binary files a/icons/fallout/objects/guns/ammo.dmi and b/icons/fallout/objects/guns/ammo.dmi differ diff --git a/icons/fallout/objects/guns/ballistic.dmi b/icons/fallout/objects/guns/ballistic.dmi index 4dff22d2e7..fa829b3fa1 100644 Binary files a/icons/fallout/objects/guns/ballistic.dmi and b/icons/fallout/objects/guns/ballistic.dmi differ diff --git a/icons/fallout/objects/guns/bar.dmi b/icons/fallout/objects/guns/bar.dmi new file mode 100644 index 0000000000..f23f6e675c Binary files /dev/null and b/icons/fallout/objects/guns/bar.dmi differ diff --git a/icons/fallout/objects/guns/energy.dmi b/icons/fallout/objects/guns/energy.dmi index a08d87c731..d3bed683ad 100644 Binary files a/icons/fallout/objects/guns/energy.dmi and b/icons/fallout/objects/guns/energy.dmi differ diff --git a/icons/fallout/objects/melee/shields.dmi b/icons/fallout/objects/melee/shields.dmi index 63b9a40568..d8462a4d7a 100644 Binary files a/icons/fallout/objects/melee/shields.dmi and b/icons/fallout/objects/melee/shields.dmi differ diff --git a/icons/fallout/objects/melee/twohanded.dmi b/icons/fallout/objects/melee/twohanded.dmi index 6bbb40cb71..a936f6c0e8 100644 Binary files a/icons/fallout/objects/melee/twohanded.dmi and b/icons/fallout/objects/melee/twohanded.dmi differ diff --git a/icons/fallout/onmob/backslot_weapon.dmi b/icons/fallout/onmob/backslot_weapon.dmi index 416231766e..1b281a3cdd 100644 Binary files a/icons/fallout/onmob/backslot_weapon.dmi and b/icons/fallout/onmob/backslot_weapon.dmi differ diff --git a/icons/fallout/onmob/clothes/armor_heavy.dmi b/icons/fallout/onmob/clothes/armor_heavy.dmi index 4ef19254a6..2acef409b5 100644 Binary files a/icons/fallout/onmob/clothes/armor_heavy.dmi and b/icons/fallout/onmob/clothes/armor_heavy.dmi differ diff --git a/icons/fallout/onmob/clothes/armor_light.dmi b/icons/fallout/onmob/clothes/armor_light.dmi index cc7bdbc2c1..32c8d92408 100644 Binary files a/icons/fallout/onmob/clothes/armor_light.dmi and b/icons/fallout/onmob/clothes/armor_light.dmi differ diff --git a/icons/fallout/onmob/clothes/armor_medium.dmi b/icons/fallout/onmob/clothes/armor_medium.dmi index 0aa3cb1848..e55c5ed7ef 100644 Binary files a/icons/fallout/onmob/clothes/armor_medium.dmi and b/icons/fallout/onmob/clothes/armor_medium.dmi differ diff --git a/icons/fallout/onmob/clothes/head.dmi b/icons/fallout/onmob/clothes/head.dmi index 4a6986322c..8a954805dc 100644 Binary files a/icons/fallout/onmob/clothes/head.dmi and b/icons/fallout/onmob/clothes/head.dmi differ diff --git a/icons/fallout/onmob/weapons/melee2h_lefthand.dmi b/icons/fallout/onmob/weapons/melee2h_lefthand.dmi index f862577a6e..d8ef717ec7 100644 Binary files a/icons/fallout/onmob/weapons/melee2h_lefthand.dmi and b/icons/fallout/onmob/weapons/melee2h_lefthand.dmi differ diff --git a/icons/fallout/onmob/weapons/melee2h_righthand.dmi b/icons/fallout/onmob/weapons/melee2h_righthand.dmi index 1f22533c7c..af6d8b973e 100644 Binary files a/icons/fallout/onmob/weapons/melee2h_righthand.dmi and b/icons/fallout/onmob/weapons/melee2h_righthand.dmi differ diff --git a/icons/fallout/onmob/weapons/shields_lefthand.dmi b/icons/fallout/onmob/weapons/shields_lefthand.dmi index 577812f1c9..65075a124a 100644 Binary files a/icons/fallout/onmob/weapons/shields_lefthand.dmi and b/icons/fallout/onmob/weapons/shields_lefthand.dmi differ diff --git a/icons/fallout/onmob/weapons/shields_righthand.dmi b/icons/fallout/onmob/weapons/shields_righthand.dmi index 043cc4c498..c6aa4bbdb6 100644 Binary files a/icons/fallout/onmob/weapons/shields_righthand.dmi and b/icons/fallout/onmob/weapons/shields_righthand.dmi differ diff --git a/icons/mob/actions/actions_items.dmi b/icons/mob/actions/actions_items.dmi index 252536b063..14be7cf2da 100644 Binary files a/icons/mob/actions/actions_items.dmi and b/icons/mob/actions/actions_items.dmi differ diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi index 4bfea2f9c8..7cadecdd41 100644 Binary files a/icons/mob/clothing/back.dmi and b/icons/mob/clothing/back.dmi differ diff --git a/icons/mob/clothing/belt_mirror.dmi b/icons/mob/clothing/belt_mirror.dmi index db59536900..ecdb6cb8b7 100644 Binary files a/icons/mob/clothing/belt_mirror.dmi and b/icons/mob/clothing/belt_mirror.dmi differ diff --git a/icons/mob/clothing/feet.dmi b/icons/mob/clothing/feet.dmi index e1b0df446f..d568a57acb 100644 Binary files a/icons/mob/clothing/feet.dmi and b/icons/mob/clothing/feet.dmi differ diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi index db70f2ce42..ecbb58e013 100644 Binary files a/icons/mob/clothing/head.dmi and b/icons/mob/clothing/head.dmi differ diff --git a/icons/mob/clothing/mask.dmi b/icons/mob/clothing/mask.dmi index 192f7c1139..b04878cee1 100644 Binary files a/icons/mob/clothing/mask.dmi and b/icons/mob/clothing/mask.dmi differ diff --git a/icons/mob/clothing/suit.dmi b/icons/mob/clothing/suit.dmi index 85d5c86b3d..da2b52c676 100644 Binary files a/icons/mob/clothing/suit.dmi and b/icons/mob/clothing/suit.dmi differ diff --git a/icons/mob/clothing/uniform.dmi b/icons/mob/clothing/uniform.dmi index 465b22eb01..f3bd1abca6 100644 Binary files a/icons/mob/clothing/uniform.dmi and b/icons/mob/clothing/uniform.dmi differ diff --git a/icons/mob/human_parts.dmi b/icons/mob/human_parts.dmi index 685b910b34..a5b3e496e9 100644 Binary files a/icons/mob/human_parts.dmi and b/icons/mob/human_parts.dmi differ diff --git a/icons/mob/inhands/misc/food_lefthand.dmi b/icons/mob/inhands/misc/food_lefthand.dmi index 19e0706d01..305c11dc5c 100644 Binary files a/icons/mob/inhands/misc/food_lefthand.dmi and b/icons/mob/inhands/misc/food_lefthand.dmi differ diff --git a/icons/mob/inhands/misc/food_righthand.dmi b/icons/mob/inhands/misc/food_righthand.dmi index da8eda329d..17803d1161 100644 Binary files a/icons/mob/inhands/misc/food_righthand.dmi and b/icons/mob/inhands/misc/food_righthand.dmi differ diff --git a/icons/mob/inhands/weapons/guns_lefthand.dmi b/icons/mob/inhands/weapons/guns_lefthand.dmi index b114d1c4c8..9563a8c4b3 100644 Binary files a/icons/mob/inhands/weapons/guns_lefthand.dmi and b/icons/mob/inhands/weapons/guns_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/guns_righthand.dmi b/icons/mob/inhands/weapons/guns_righthand.dmi index 48e725de54..cf940b4e6a 100644 Binary files a/icons/mob/inhands/weapons/guns_righthand.dmi and b/icons/mob/inhands/weapons/guns_righthand.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 9c82f53339..fa8e618879 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index ff599310fd..43fb699076 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index 045a927ad3..2ee9f90c62 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/food/containers.dmi b/icons/obj/food/containers.dmi index a6ea323551..933682ac7c 100644 Binary files a/icons/obj/food/containers.dmi and b/icons/obj/food/containers.dmi differ diff --git a/icons/obj/food/soupsalad.dmi b/icons/obj/food/soupsalad.dmi index b39bec3b0d..8d83970507 100644 Binary files a/icons/obj/food/soupsalad.dmi and b/icons/obj/food/soupsalad.dmi differ diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index 032f728d08..183721af5d 100644 Binary files a/icons/obj/guns/projectile.dmi and b/icons/obj/guns/projectile.dmi differ diff --git a/icons/obj/hydroponics/growing_flowers.dmi b/icons/obj/hydroponics/growing_flowers.dmi index ac72b19385..c863886916 100644 Binary files a/icons/obj/hydroponics/growing_flowers.dmi and b/icons/obj/hydroponics/growing_flowers.dmi differ diff --git a/icons/obj/hydroponics/harvest.dmi b/icons/obj/hydroponics/harvest.dmi index ad6ecdc628..ba86600e6e 100644 Binary files a/icons/obj/hydroponics/harvest.dmi and b/icons/obj/hydroponics/harvest.dmi differ diff --git a/icons/obj/hydroponics/seeds.dmi b/icons/obj/hydroponics/seeds.dmi index 71ea68a0ab..de2bcec3bc 100644 Binary files a/icons/obj/hydroponics/seeds.dmi and b/icons/obj/hydroponics/seeds.dmi differ diff --git a/icons/obj/stairs.dmi b/icons/obj/stairs.dmi index 615e88f684..5c3f378ced 100644 Binary files a/icons/obj/stairs.dmi and b/icons/obj/stairs.dmi differ diff --git a/icons/turf/floors/carpet_vault.dmi b/icons/turf/floors/carpet_vault.dmi new file mode 100644 index 0000000000..fab890d7be Binary files /dev/null and b/icons/turf/floors/carpet_vault.dmi differ diff --git a/modular_citadel/code/modules/client/loadout/backpack.dm b/modular_citadel/code/modules/client/loadout/backpack.dm index d879e28f70..54769b42c0 100644 --- a/modular_citadel/code/modules/client/loadout/backpack.dm +++ b/modular_citadel/code/modules/client/loadout/backpack.dm @@ -46,3 +46,40 @@ name = "Taperecorder" path = /obj/item/taperecorder cost = 2 + +/datum/gear/backpack/razor + name = "electric razor" + path = /obj/item/razor + cost = 2 + +/datum/gear/backpack/donuts + name = "donut box" + path = /obj/item/storage/fancy/donut_box + cost = 2 + +/datum/gear/backpack/cigarettes/cigpack_bigboss + name = "Big Boss Smokes" + path = /obj/item/storage/fancy/cigarettes/cigpack_bigboss + +/datum/gear/backpack/cigarettes/cigpack_pyramid + name = "Pyramid Smokes" + path = /obj/item/storage/fancy/cigarettes/cigpack_pyramid + +/datum/gear/backpack/cigarettes/cigpack_greytort + name = "Grey Tortoise Smokes" + path = /obj/item/storage/fancy/cigarettes/cigpack_greytort + +/datum/gear/backpack/cigarettes/cigars + name = "Premium cigar case" + path = /obj/item/storage/fancy/cigarettes/cigars + cost = 2 + +/datum/gear/backpack/cigarettes/cigars/cohiba + name = "Cohiba Robusto cigar case" + path = /obj/item/storage/fancy/cigarettes/cigars/cohiba + cost = 2 + +/datum/gear/backpack/cigarettes/cigars/havana + name = "Havanian cigar case" + path = /obj/item/storage/fancy/cigarettes/cigars/havana + cost = 2 diff --git a/modular_citadel/code/modules/client/loadout/hands.dm b/modular_citadel/code/modules/client/loadout/hands.dm index e95f658411..a104e44355 100644 --- a/modular_citadel/code/modules/client/loadout/hands.dm +++ b/modular_citadel/code/modules/client/loadout/hands.dm @@ -59,18 +59,6 @@ name = "cigarette pack" path = /obj/item/storage/fancy/cigarettes -/datum/gear/hands/cigarettes/cigpack_bigboss - name = "\improper Big Boss Smokes" - path = /obj/item/storage/fancy/cigarettes/cigpack_bigboss - -/datum/gear/hands/cigarettes/cigpack_pyramid - name = "\improper Pyramid Smokes" - path = /obj/item/storage/fancy/cigarettes/cigpack_pyramid - -/datum/gear/hands/cigarettes/cigpack_greytort - name = "\improper Grey Tortoise Smokes" - path = /obj/item/storage/fancy/cigarettes/cigpack_greytort - /datum/gear/hands/dice name = "dice bag" path = /obj/item/storage/box/dice diff --git a/modular_citadel/code/modules/client/loadout/head.dm b/modular_citadel/code/modules/client/loadout/head.dm index ad67afd9ed..6171c94b68 100644 --- a/modular_citadel/code/modules/client/loadout/head.dm +++ b/modular_citadel/code/modules/client/loadout/head.dm @@ -34,6 +34,10 @@ /datum/gear/head/beret name = "black beret" path = /obj/item/clothing/head/beret/black + +/datum/gear/head/medicalberet + name = "medical beret" + path = /obj/item/clothing/head/beret/med /datum/gear/head/flatcap name = "flat cap" diff --git a/modular_citadel/code/modules/client/loadout/suit.dm b/modular_citadel/code/modules/client/loadout/suit.dm index 48e0680ae0..fece38c6a7 100644 --- a/modular_citadel/code/modules/client/loadout/suit.dm +++ b/modular_citadel/code/modules/client/loadout/suit.dm @@ -109,6 +109,35 @@ path = /obj/item/clothing/suit/f13/autumn subcategory = LOADOUT_SUBCATEGORY_SUIT_JACKETS cost = 3 + +/datum/gear/suit/ncrcfjacket + name = "NCRCF jacket" + path = /obj/item/clothing/suit/armor/f13/ncrcfjacket + cost = 1 + +/datum/gear/suit/NCRutilityvest + name = "Utility Vest" + path = /obj/item/clothing/suit/armor/f13/utilityvest + subcategory = LOADOUT_SUBCATEGORY_SUIT_JOBS + cost = 4 + restricted_desc = "NCR" + restricted_roles = list("NCR Captain", + "NCR Lieutenant", + "NCR Medical Officer", + "NCR Veteran Ranger", + "NCR Lieutenant", + "NCR Heavy Trooper", + "NCR Sergeant First Class", + "NCR Sergeant", + "NCR Corporal", + "NCR Combat Engineer", + "NCR Combat Medic", + "NCR Trooper", + "NCR Rear Echelon", + "NCR Off-Duty", + "NCR Ranger" + ) + /datum/gear/suit/fieldscribe name = "Fieldscribe suit" @@ -150,6 +179,18 @@ "Detective", "Barkeep", ) + +/datum/gear/suit/deputyvest + name = "OPD armor vest" + path = /obj/item/clothing/suit/armor/vest/oasis + subcategory = LOADOUT_SUBCATEGORY_SUIT_JOBS + cost = 5 + restricted_desc = "Oasis Police" + restricted_roles = list("Sheriff", + "Deputy", + "Detective", + ) + /datum/gear/suit/hazardvest name = "Hazard Vest" path = /obj/item/clothing/suit/hazardvest diff --git a/modular_citadel/code/modules/client/loadout/uniform.dm b/modular_citadel/code/modules/client/loadout/uniform.dm index 4b1e9ffa8d..a0365f9a9d 100644 --- a/modular_citadel/code/modules/client/loadout/uniform.dm +++ b/modular_citadel/code/modules/client/loadout/uniform.dm @@ -10,6 +10,10 @@ /datum/gear/uniform/caravaneer name = "caravaneer outfit" path = /obj/item/clothing/under/f13/caravaneer + +/datum/gear/uniform/ncrcf + name = "NCRCF outfit" + path = /obj/item/clothing/under/f13/ncrcf /datum/gear/uniform/brahminskin name = "brahmin skin outfit" diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm index badb0aff65..f63133773c 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/healing.dm @@ -98,8 +98,8 @@ description = "Synthetic tissue used for grafting onto damaged organs during surgery, or for treating limb damage. Has a very tight growth window between 305-320, any higher and the temperature will cause the cells to die. Additionally, growth time is considerably long, so chemists are encouraged to leave beakers with said reaction ongoing, while they tend to their other duties." pH = 7.6 metabolization_rate = 0.05 //Give them time to graft - data = list("grown_volume" = 0, "injected_vol" = 0) - var/borrowed_health + data = list("grown_volume" = 0, "injected_vol" = 0, "borrowed_health" = 0) + var/borrowed_health = 0 color = "#FFDADA" value = REAGENT_VALUE_COMMON @@ -107,31 +107,51 @@ if(iscarbon(M)) var/mob/living/carbon/C = M var/healing_factor = (((data["grown_volume"] / 100) + 1)*reac_volume) - if(method in list(PATCH, TOUCH)) - if (M.stat == DEAD) - M.visible_message("The synthetic tissue rapidly grafts into [M]'s wounds, attemping to repair the damage as quickly as possible.") - borrowed_health += healing_factor - M.adjustBruteLoss(-healing_factor*2) - M.adjustFireLoss(-healing_factor*2) - M.adjustToxLoss(-healing_factor) - M.adjustCloneLoss(-healing_factor) - M.updatehealth() + if(method == PATCH) //Needs to actually be applied via patch / hypo / medspray and not just beakersplashed. + if (C.stat == DEAD) + C.visible_message("The synthetic tissue rapidly grafts into [M]'s wounds, attempting to repair the damage as quickly as possible.") + var/preheal_brute = C.getBruteLoss() + var/preheal_burn = C.getFireLoss() + var/preheal_tox = C.getToxLoss() + var/preheal_oxy = C.getOxyLoss() + C.adjustBruteLoss(-healing_factor*2) + C.adjustFireLoss(-healing_factor*2) + C.adjustToxLoss(-healing_factor) + C.adjustCloneLoss(-healing_factor) + borrowed_health += (preheal_brute - C.getBruteLoss()) + (preheal_burn - C.getFireLoss()) + (preheal_tox - C.getToxLoss()) + ((preheal_oxy - C.getOxyLoss()) / 2) //Ironically this means that while slimes get damaged by the toxheal, it will reduce borrowed health and longterm effects. Funky! + C.updatehealth() if(data["grown_volume"] > 135 && ((C.health + C.oxyloss)>=80)) - if(M.revive()) - M.emote("gasp") + var/tplus = world.time - M.timeofdeath + if(C.can_revive(ignore_timelimit = TRUE, maximum_brute_dam = MAX_REVIVE_BRUTE_DAMAGE / 2, maximum_fire_dam = MAX_REVIVE_FIRE_DAMAGE / 2, ignore_heart = TRUE) && C.revive()) + C.grab_ghost() + C.emote("gasp") borrowed_health *= 2 if(borrowed_health < 100) borrowed_health = 100 log_combat(M, M, "revived", src) + var/list/policies = CONFIG_GET(keyed_list/policy) + var/policy = policies[POLICYCONFIG_ON_DEFIB_LATE] //Always causes memory loss due to the nature of synthtissue + if(policy) + to_chat(C, policy) + C.log_message("revived using synthtissue, [tplus] deciseconds from time of death, considered late revival due to usage of synthtissue.", LOG_GAME) else + var/preheal_brute = C.getBruteLoss() + var/preheal_burn = C.getFireLoss() M.adjustBruteLoss(-healing_factor) M.adjustFireLoss(-healing_factor) - to_chat(M, "You feel your flesh merge with the synthetic tissue! It stings like hell!") + var/datum/reagent/synthtissue/active_tissue = M.reagents.has_reagent(/datum/reagent/synthtissue) + var/imperfect = FALSE //Merging with synthtissue that has borrowed health + if(active_tissue && active_tissue.borrowed_health) + borrowed_health += (preheal_brute - C.getBruteLoss()) + (preheal_burn - C.getFireLoss()) + imperfect = TRUE + to_chat(M, "You feel your flesh [imperfect ? "partially and painfully" : ""] merge with the synthetic tissue! It stings like hell[imperfect ? " and is making you feel terribly sick" : ""]!") SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine) + data["borrowed_health"] += borrowed_health //Preserve health offset + borrowed_health = 0 //We are applying this to someone else, so this info will be transferred via data. if(method==INJECT) data["injected_vol"] = reac_volume var/obj/item/organ/heart/H = C.getorganslot(ORGAN_SLOT_HEART) - if(data["grown_volume"] > 50 && H.organ_flags & ORGAN_FAILING) + if(H && data["grown_volume"] > 50 && H.organ_flags & ORGAN_FAILING) H.applyOrganDamage(-20) ..() @@ -145,16 +165,19 @@ C.reagents.remove_reagent(type, 15) to_chat(C, "You feel something reform inside of you!") - data["injected_vol"] -= metabolization_rate + data["injected_vol"] = max(0, data["injected_vol"] - metabolization_rate * C.metabolism_efficiency) //No negatives. if(borrowed_health) - C.adjustToxLoss(1) - C.adjustCloneLoss(1) - borrowed_health -= 1 + var/ratio = (current_cycle > SYNTHTISSUE_DAMAGE_FLIP_CYCLES) ? 0 : (1 - (current_cycle / SYNTHTISSUE_DAMAGE_FLIP_CYCLES)) + var/payback = 2 * C.metabolism_efficiency //How much borrowed health we are paying back. Starts as cloneloss, slowly flips over to toxloss. + C.adjustToxLoss((1 - ratio) * payback * REAGENTS_EFFECT_MULTIPLIER, forced = TRUE) + C.adjustCloneLoss(ratio * payback * REAGENTS_EFFECT_MULTIPLIER) + borrowed_health = max(borrowed_health - payback, 0) ..() /datum/reagent/synthtissue/on_merge(passed_data) if(!passed_data) return ..() + borrowed_health += max(0, passed_data["borrowed_health"]) if(passed_data["grown_volume"] > data["grown_volume"]) data["grown_volume"] = passed_data["grown_volume"] if(iscarbon(holder.my_atom)) @@ -166,11 +189,16 @@ /datum/reagent/synthtissue/on_new(passed_data) if(!passed_data) return ..() + borrowed_health = min(passed_data["borrowed_health"] + borrowed_health, SYNTHTISSUE_BORROW_CAP) if(passed_data["grown_volume"] > data["grown_volume"]) data["grown_volume"] = passed_data["grown_volume"] update_name() ..() +/datum/reagent/synthtissue/post_copy_data() + data["borrowed_health"] = 0 //We passed this along to something that needed it, set it back to 0 so we don't do it twice. + return ..() + /datum/reagent/synthtissue/proc/update_name() //They are but babes on creation and have to grow unto godhood switch(data["grown_volume"]) if(-INFINITY to 50) @@ -193,9 +221,9 @@ C.adjustCloneLoss(borrowed_health*1.25) C.adjustAllOrganLoss(borrowed_health*0.25) M.updatehealth() - if(borrowed_health && C.health < -20) - M.set_stat(DEAD) - M.visible_message("The synthetic tissue degrades off [M]'s wounds as they collapse to the floor.") + if(C.stat != DEAD && borrowed_health && C.health < -20) + M.visible_message("The synthetic tissue sloughs off [M]'s wounds as they collapse to the floor.") + M.death() //NEEDS ON_MOB_DEAD() /datum/reagent/fermi/zeolites diff --git a/testing.dmm b/testing.dmm index 853a8003c3..f498bd8bd0 100644 --- a/testing.dmm +++ b/testing.dmm @@ -98,7 +98,7 @@ "cG" = (/obj/structure/chair/wood,/turf/open/floor/wood/f13/old,/area/space) "cI" = (/obj/structure/rack,/obj/item/stack/sheet/glass/fifty,/obj/item/stack/sheet/glass/fifty,/obj/item/stack/sheet/glass/fifty,/obj/item/stack/sheet/glass/fifty,/obj/item/stack/sheet/glass/fifty,/obj/item/stack/sheet/glass/fifty,/obj/item/stack/sheet/glass/fifty,/turf/open/floor/wood/f13/old,/area/space) "cK" = (/obj/structure/chair/comfy/shuttle,/obj/effect/landmark/start/f13/followersadministrator,/turf/open/floor/f13{icon_state = "bluerustysolid"},/area/space) -"cL" = (/obj/structure/rack,/obj/item/camera,/obj/item/camera_film,/obj/item/crafting/abraxo,/obj/item/crafting/sensor,/obj/item/flashlight/seclite,/obj/item/flashlight,/obj/item/flashlight,/obj/item/radio,/obj/effect/spawner/lootdrop/f13/resourcespawner,/obj/effect/spawner/lootdrop/f13/resourcespawner,/obj/effect/spawner/lootdrop/f13/crafting,/obj/effect/spawner/lootdrop/f13/crafting,/turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust,/area/space) +"cL" = (/obj/structure/rack,/obj/item/camera,/obj/item/camera_film,/obj/item/crafting/abraxo,/obj/item/assembly/prox_sensor,/obj/item/flashlight/seclite,/obj/item/flashlight,/obj/item/flashlight,/obj/item/radio,/obj/effect/spawner/lootdrop/f13/resourcespawner,/obj/effect/spawner/lootdrop/f13/resourcespawner,/obj/effect/spawner/lootdrop/f13/crafting,/obj/effect/spawner/lootdrop/f13/crafting,/turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust,/area/space) "cM" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/open/indestructible/ground/outside/sidewalk{dir = 9; icon_state = "outerpavement"},/area/space) "cP" = (/obj/structure/rack,/obj/item/stack/f13Cash/random/denarius/high,/obj/item/stack/f13Cash/random/denarius/high,/obj/item/stack/f13Cash/random/denarius/high,/turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust,/area/space) "cQ" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/oil{icon_state = "floor6"; pixel_x = -28},/obj/machinery/autolathe,/turf/open/floor/plasteel/f13/vault_floor/misc/vaultrust,/area/space) diff --git a/tgui/packages/tgui/interfaces/Crayon.js b/tgui/packages/tgui/interfaces/Crayon.js index 05191f8c66..568e02667b 100644 --- a/tgui/packages/tgui/interfaces/Crayon.js +++ b/tgui/packages/tgui/interfaces/Crayon.js @@ -1,11 +1,18 @@ import { useBackend } from '../backend'; -import { Button, LabeledList, Section } from '../components'; +import { Button, LabeledList, Section, Slider } from '../components'; import { Window } from '../layouts'; export const Crayon = (props, context) => { const { act, data } = useBackend(context); const capOrChanges = data.has_cap || data.can_change_colour; const drawables = data.drawables || []; + const { + precision_mode, + x, + y, + min_offset, + max_offset, + } = data; return ( { onClick={() => act('select_colour')} /> )} +
+ + +
{drawables.map(drawable => { diff --git a/tgui/public/tgui.bundle.js b/tgui/public/tgui.bundle.js index a722f83e7b..93a8acbe34 100644 --- a/tgui/public/tgui.bundle.js +++ b/tgui/public/tgui.bundle.js @@ -1 +1 @@ -!function(){var e,t={60121:function(e,t,n){"use strict";var o=n(39812);n(56285),n(58602),n(92433),n(35070),n(86455),n(41821),n(83243),n(97585),n(87266),n(99195),n(72916),n(20459);var r,a,c=n(84877),i=(n(25059),n(18874)),l=n(25697),d=n(75682),u=n(69913),s=n(74360);c.perf.mark("inception",null==(r=window.performance)||null==(a=r.timing)?void 0:a.navigationStart),c.perf.mark("init");var m=(0,u.configureStore)(),p=(0,d.createRenderer)((function(){var e=(0,n(73218).getRoutedComponent)(m);return(0,o.createComponentVNode)(2,u.StoreProvider,{store:m,children:(0,o.createComponentVNode)(2,e)})}));!function C(){if("loading"!==document.readyState){for((0,s.setupGlobalEvents)(),(0,i.setupHotKeys)(),(0,l.captureExternalLinks)(),m.subscribe(p),window.update=function(e){return m.dispatch(Byond.parseJson(e))};;){var e=window.__updateQueue__.shift();if(!e)break;window.update(e)}0}else document.addEventListener("DOMContentLoaded",C)}()},37905:function(e,t,n){"use strict";t.__esModule=!0,t.AbductorConsole=void 0;var o=n(39812),r=n(89761),a=n(71494),c=n(74814),i=n(85952);t.AbductorConsole=function(e,t){var n=(0,a.useSharedState)(t,"tab",1),r=n[0],s=n[1];return(0,o.createComponentVNode)(2,i.Window,{theme:"abductor",width:600,height:532,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Tabs,{children:[(0,o.createComponentVNode)(2,c.Tabs.Tab,{icon:"list",lineHeight:"23px",selected:1===r,onClick:function(){return s(1)},children:"Abductsoft 3000"}),(0,o.createComponentVNode)(2,c.Tabs.Tab,{icon:"list",lineHeight:"23px",selected:2===r,onClick:function(){return s(2)},children:"Mission Settings"})]}),1===r&&(0,o.createComponentVNode)(2,l),2===r&&(0,o.createFragment)([(0,o.createComponentVNode)(2,d),(0,o.createComponentVNode)(2,u)],4)]})})};var l=function(e,t){var n=(0,a.useBackend)(t),i=(n.act,n.data),l=i.experiment,d=i.points,u=i.credits;return l?(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Collected Samples",children:d})})}),(0,o.createComponentVNode)(2,r.GenericUplink,{currencyAmount:u,currencySymbol:"Credits"})],4):(0,o.createComponentVNode)(2,c.NoticeBox,{danger:!0,children:"No Experiment Machine Detected"})},d=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.pad,d=i.gizmo;return l?(0,o.createComponentVNode)(2,c.Section,{title:"Emergency Teleport",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"exclamation-circle",content:"Activate",color:"bad",onClick:function(){return r("teleporter_send")}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mark Retrieval",children:(0,o.createComponentVNode)(2,c.Button,{icon:d?"user-plus":"user-slash",content:d?"Retrieve":"No Mark",disabled:!d,onClick:function(){return r("teleporter_retrieve")}})})})}):(0,o.createComponentVNode)(2,c.NoticeBox,{danger:!0,children:"No Telepad Detected"})},u=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.vest,d=i.vest_mode,u=i.vest_lock;return l?(0,o.createComponentVNode)(2,c.Section,{title:"Agent Vest Settings",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:u?"lock":"unlock",content:u?"Locked":"Unlocked",onClick:function(){return r("toggle_vest")}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mode",children:(0,o.createComponentVNode)(2,c.Button,{icon:1===d?"eye-slash":"fist-raised",content:1===d?"Stealth":"Combat",onClick:function(){return r("flip_vest")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Disguise",children:(0,o.createComponentVNode)(2,c.Button,{icon:"user-secret",content:"Select",onClick:function(){return r("select_disguise")}})})]})}):(0,o.createComponentVNode)(2,c.NoticeBox,{danger:!0,children:"No Agent Vest Detected"})}},16804:function(e,t,n){"use strict";t.__esModule=!0,t.Achievements=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.Achievements=function(e,t){var n=(0,r.useBackend)(t).data,l=n.categories,u=(0,r.useLocalState)(t,"category",l[0]),s=u[0],m=u[1],p=n.achievements.filter((function(e){return e.category===s}));return(0,o.createComponentVNode)(2,c.Window,{title:"Achievements",width:540,height:680,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Tabs,{children:[l.map((function(e){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:s===e,onClick:function(){return m(e)},children:e},e)})),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:"High Scores"===s,onClick:function(){return m("High Scores")},children:"High Scores"})]}),"High Scores"===s&&(0,o.createComponentVNode)(2,d)||(0,o.createComponentVNode)(2,i,{achievements:p})]})})};var i=function(e,t){var n=e.achievements;return(0,o.createComponentVNode)(2,a.Table,{children:n.map((function(e){return(0,o.createComponentVNode)(2,l,{achievement:e},e.name)}))})},l=function(e){var t=e.achievement,n=t.name,r=t.desc,c=t.icon_class,i=t.value,l=t.score;return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,a.Box,{m:1,className:c})}),(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"top",children:[(0,o.createVNode)(1,"h1",null,n,0),r,l&&(0,o.createComponentVNode)(2,a.Box,{color:i>0?"good":"bad",children:i>0?"Earned "+i+" times":"Locked"})||(0,o.createComponentVNode)(2,a.Box,{color:i?"good":"bad",children:i?"Unlocked":"Locked"})]})]},n)},d=function(e,t){var n=(0,r.useBackend)(t).data,c=n.highscore,i=n.user_ckey,l=(0,r.useLocalState)(t,"highscore",0),d=l[0],u=l[1],s=c[d];if(!s)return null;var m=Object.keys(s.scores).map((function(e){return{ckey:e,value:s.scores[e]}}));return(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Tabs,{vertical:!0,children:c.map((function(e,t){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:d===t,onClick:function(){return u(t)},children:e.name},e.name)}))})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:"#"}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:"Key"}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:"Score"})]}),m.map((function(e,t){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",m:2,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:t+1}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:e.ckey===i&&"green",textAlign:"center",children:[0===t&&(0,o.createComponentVNode)(2,a.Icon,{name:"crown",color:"yellow",mr:2}),e.ckey,0===t&&(0,o.createComponentVNode)(2,a.Icon,{name:"crown",color:"yellow",ml:2})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:e.value})]},e.ckey)}))]})})]})}},47330:function(e,t,n){"use strict";t.__esModule=!0,t.AiAirlock=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i={2:{color:"good",localStatusText:"Offline"},1:{color:"average",localStatusText:"Caution"},0:{color:"bad",localStatusText:"Optimal"}};t.AiAirlock=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=i[d.power.main]||i[0],s=i[d.power.backup]||i[0],m=i[d.shock]||i[0];return(0,o.createComponentVNode)(2,c.Window,{width:500,height:390,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Power Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Main",color:u.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",disabled:!d.power.main,content:"Disrupt",onClick:function(){return l("disrupt-main")}}),children:[d.power.main?"Online":"Offline"," ",d.wires.main_1&&d.wires.main_2?d.power.main_timeleft>0&&"["+d.power.main_timeleft+"s]":"[Wires have been cut!]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Backup",color:s.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",disabled:!d.power.backup,content:"Disrupt",onClick:function(){return l("disrupt-backup")}}),children:[d.power.backup?"Online":"Offline"," ",d.wires.backup_1&&d.wires.backup_2?d.power.backup_timeleft>0&&"["+d.power.backup_timeleft+"s]":"[Wires have been cut!]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Electrify",color:m.color,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",disabled:!(d.wires.shock&&0===d.shock),content:"Restore",onClick:function(){return l("shock-restore")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bolt",disabled:!d.wires.shock,content:"Temporary",onClick:function(){return l("shock-temp")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bolt",disabled:!d.wires.shock,content:"Permanent",onClick:function(){return l("shock-perm")}})],4),children:[2===d.shock?"Safe":"Electrified"," ",(d.wires.shock?d.shock_timeleft>0&&"["+d.shock_timeleft+"s]":"[Wires have been cut!]")||-1===d.shock_timeleft&&"[Permanent]"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Access and Door Control",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID Scan",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.id_scanner?"power-off":"times",content:d.id_scanner?"Enabled":"Disabled",selected:d.id_scanner,disabled:!d.wires.id_scanner,onClick:function(){return l("idscan-toggle")}}),children:!d.wires.id_scanner&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Access",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.emergency?"power-off":"times",content:d.emergency?"Enabled":"Disabled",selected:d.emergency,onClick:function(){return l("emergency-toggle")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Bolts",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.locked?"lock":"unlock",content:d.locked?"Lowered":"Raised",selected:d.locked,disabled:!d.wires.bolts,onClick:function(){return l("bolt-toggle")}}),children:!d.wires.bolts&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Bolt Lights",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.lights?"power-off":"times",content:d.lights?"Enabled":"Disabled",selected:d.lights,disabled:!d.wires.lights,onClick:function(){return l("light-toggle")}}),children:!d.wires.lights&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Force Sensors",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.safe?"power-off":"times",content:d.safe?"Enabled":"Disabled",selected:d.safe,disabled:!d.wires.safe,onClick:function(){return l("safe-toggle")}}),children:!d.wires.safe&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Timing Safety",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.speed?"power-off":"times",content:d.speed?"Enabled":"Disabled",selected:d.speed,disabled:!d.wires.timing,onClick:function(){return l("speed-toggle")}}),children:!d.wires.timing&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Control",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.opened?"sign-out-alt":"sign-in-alt",content:d.opened?"Open":"Closed",selected:d.opened,disabled:d.locked||d.welded,onClick:function(){return l("open-close")}}),children:!(!d.locked&&!d.welded)&&(0,o.createVNode)(1,"span",null,[(0,o.createTextVNode)("[Door is "),d.locked?"bolted":"",d.locked&&d.welded?" and ":"",d.welded?"welded":"",(0,o.createTextVNode)("!]")],0)})]})})]})})}},33084:function(e,t,n){"use strict";t.__esModule=!0,t.AiRestorerContent=t.AiRestorer=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.AiRestorer=function(){return(0,o.createComponentVNode)(2,c.Window,{width:370,height:360,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.AI_present,d=i.error,u=i.name,s=i.laws,m=i.isDead,p=i.restoring,C=i.health,h=i.ejectable;return(0,o.createFragment)([d&&(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:d}),!!h&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"eject",content:l?u:"----------",disabled:!l,onClick:function(){return c("PRG_eject")}}),!!l&&(0,o.createComponentVNode)(2,a.Section,{title:h?"System Status":u,buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:m?"bad":"good",children:m?"Nonfunctional":"Functional"}),children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:C,minValue:0,maxValue:100,ranges:{good:[70,Infinity],average:[50,70],bad:[-Infinity,50]}})})}),!!p&&(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"20px",color:"good",mt:1,children:"RECONSTRUCTION IN PROGRESS"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"plus",content:"Begin Reconstruction",disabled:p,mt:1,onClick:function(){return c("PRG_beginReconstruction")}}),(0,o.createComponentVNode)(2,a.Section,{title:"Laws",level:2,children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{className:"candystripe",children:e},e)}))})]})],0)};t.AiRestorerContent=i},58444:function(e,t,n){"use strict";t.__esModule=!0,t.AirAlarm=void 0;var o=n(39812),r=n(41860),a=(n(2497),n(71494)),c=n(74814),i=(n(76270),n(85952)),l=n(21451),d=n(71739);t.AirAlarm=function(e,t){var n=(0,a.useBackend)(t),r=(n.act,n.data),c=r.locked&&!r.siliconUser;return(0,o.createComponentVNode)(2,i.Window,{width:440,height:650,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,l.InterfaceLockNoticeBox),(0,o.createComponentVNode)(2,u),!c&&(0,o.createComponentVNode)(2,m)]})})};var u=function(e,t){var n=(0,a.useBackend)(t).data,i=(n.environment_data||[]).filter((function(e){return e.value>=.01})),l={0:{color:"good",localStatusText:"Optimal"},1:{color:"average",localStatusText:"Caution"},2:{color:"bad",localStatusText:"Danger (Internals Required)"}},d=l[n.danger_level]||l[0];return(0,o.createComponentVNode)(2,c.Section,{title:"Air Status",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[i.length>0&&(0,o.createFragment)([i.map((function(e){var t=l[e.danger_level]||l[0];return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.name,color:t.color,children:[(0,r.toFixed)(e.value,2),e.unit]},e.name)})),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Local status",color:d.color,children:d.localStatusText}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Area status",color:n.atmos_alarm||n.fire_alarm?"bad":"good",children:(n.atmos_alarm?"Atmosphere Alarm":n.fire_alarm&&"Fire Alarm")||"Nominal"})],0)||(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Warning",color:"bad",children:"Cannot obtain air sample for analysis."}),!!n.emagged&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Warning",color:"bad",children:"Safety measures offline. Device may exhibit abnormal behavior."})]})})},s={home:{title:"Air Controls",component:function(){return p}},vents:{title:"Vent Controls",component:function(){return C}},scrubbers:{title:"Scrubber Controls",component:function(){return h}},modes:{title:"Operating Mode",component:function(){return N}},thresholds:{title:"Alarm Thresholds",component:function(){return V}}},m=function(e,t){var n=(0,a.useLocalState)(t,"screen"),r=n[0],i=n[1],l=s[r]||s.home,d=l.component();return(0,o.createComponentVNode)(2,c.Section,{title:l.title,buttons:r&&(0,o.createComponentVNode)(2,c.Button,{icon:"arrow-left",content:"Back",onClick:function(){return i()}}),children:(0,o.createComponentVNode)(2,d)})},p=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=(0,a.useLocalState)(t,"screen"),d=(l[0],l[1]),u=i.mode,s=i.atmos_alarm;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:s?"exclamation-triangle":"exclamation",color:s&&"caution",content:"Area Atmosphere Alarm",onClick:function(){return r(s?"reset":"alarm")}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:3===u?"exclamation-triangle":"exclamation",color:3===u&&"danger",content:"Panic Siphon",onClick:function(){return r("mode",{mode:3===u?1:3})}}),(0,o.createComponentVNode)(2,c.Box,{mt:2}),(0,o.createComponentVNode)(2,c.Button,{icon:"sign-out-alt",content:"Vent Controls",onClick:function(){return d("vents")}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"filter",content:"Scrubber Controls",onClick:function(){return d("scrubbers")}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"cog",content:"Operating Mode",onClick:function(){return d("modes")}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"chart-bar",content:"Alarm Thresholds",onClick:function(){return d("thresholds")}})],4)},C=function(e,t){var n=(0,a.useBackend)(t).data.vents;return n&&0!==n.length?n.map((function(e){return(0,o.createComponentVNode)(2,d.Vent,{vent:e},e.id_tag)})):"Nothing to show"},h=function(e,t){var n=(0,a.useBackend)(t).data.scrubbers;return n&&0!==n.length?n.map((function(e){return(0,o.createComponentVNode)(2,d.Scrubber,{scrubber:e},e.id_tag)})):"Nothing to show"},N=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data.modes;return i&&0!==i.length?i.map((function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:e.selected?"check-square-o":"square-o",selected:e.selected,color:e.selected&&e.danger&&"danger",content:e.name,onClick:function(){return r("mode",{mode:e.mode})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1})],4,e.mode)})):"Nothing to show"},V=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data.thresholds;return(0,o.createVNode)(1,"table","LabeledList",[(0,o.createVNode)(1,"thead",null,(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td"),(0,o.createVNode)(1,"td","color-bad","min2",16),(0,o.createVNode)(1,"td","color-average","min1",16),(0,o.createVNode)(1,"td","color-average","max1",16),(0,o.createVNode)(1,"td","color-bad","max2",16)],4),2),(0,o.createVNode)(1,"tbody",null,l.map((function(e){return(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td","LabeledList__label",e.name,0),e.settings.map((function(e){return(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,c.Button,{content:(0,r.toFixed)(e.selected,2),onClick:function(){return i("threshold",{env:e.env,"var":e.val})}}),2,null,e.val)}))],0,null,e.name)})),0)],4,{style:{width:"100%"}})}},54370:function(e,t,n){"use strict";t.__esModule=!0,t.AirlockAccessList=t.AirlockElectronics=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=n(64499);function l(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return d(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n=n.length?e=t?e-1:0:e<0&&(e=t?0:n.length-1);var o=this.buttonRefs[e].current;o&&setTimeout((function(){return o.focus()}),1),this.setState({current:e})},u.render=function(){var e=this,t=(0,a.useBackend)(this.context),n=t.act,r=t.data,d=r.title,u=r.message,m=r.buttons,p=r.timeout,C=this.state.current,h=function(){return e.setCurrent(C,!1)};return(0,o.createComponentVNode)(2,i.Window,{title:d,width:350,height:150,canClose:p>0,children:[p&&(0,o.createComponentVNode)(2,s,{value:p}),(0,o.createComponentVNode)(2,i.Window.Content,{onFocus:h,onClick:h,children:(0,o.createComponentVNode)(2,c.Section,{fill:!0,children:(0,o.createComponentVNode)(2,c.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,c.Flex,{direction:"column",className:"AlertModal__Message",height:"100%",children:(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,c.Box,{m:1,children:u})})})}),(0,o.createComponentVNode)(2,c.Flex.Item,{my:2,children:(0,o.createComponentVNode)(2,c.Flex,{className:"AlertModal__Buttons",children:m.map((function(t,r){return(0,o.createComponentVNode)(2,c.Flex.Item,{mx:1,children:(0,o.createVNode)(1,"div","Button Button--color--default",t,0,{px:3,onClick:function(){return n("choose",{choice:t})},onKeyDown:function(o){var r=window.event?o.which:o.keyCode;r===l.KEY_SPACE||r===l.KEY_ENTER?n("choose",{choice:t}):r===l.KEY_LEFT||o.shiftKey&&r===l.KEY_TAB?e.setCurrent(C-1,r===l.KEY_LEFT):r!==l.KEY_RIGHT&&r!==l.KEY_TAB||e.setCurrent(C+1,r===l.KEY_RIGHT)}},null,e.buttonRefs[r])},r)}))})})]})})})]})},r}(o.Component);t.AlertModal=u;var s=function(e){var t=e.value;return(0,o.createVNode)(1,"div","AlertModal__Loader",(0,o.createComponentVNode)(2,c.Box,{className:"AlertModal__LoaderProgress",style:{width:100*(0,r.clamp01)(t)+"%"}}),2)};t.Loader=s},93749:function(e,t,n){"use strict";t.__esModule=!0,t.Apc=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=n(21451);t.Apc=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{width:450,height:445,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,u)})})};var l={2:{color:"good",externalPowerText:"External Power",chargingText:"Fully Charged"},1:{color:"average",externalPowerText:"Low External Power",chargingText:"Charging"},0:{color:"bad",externalPowerText:"No External Power",chargingText:"Not Charging"}},d={1:{icon:"terminal",content:"Override Programming",action:"hack"},2:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"},3:{icon:"caret-square-left",content:"Return to Main Core",action:"deoccupy"},4:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"}},u=function(e,t){var n=(0,r.useBackend)(t),c=n.act,u=n.data,s=u.locked&&!u.siliconUser,m=l[u.externalPower]||l[0],p=l[u.chargingStatus]||l[0],C=u.powerChannels||[],h=d[u.malfStatus]||d[0],N=u.powerCellStatus/100;return u.failTime>0?(0,o.createComponentVNode)(2,a.NoticeBox,{children:[(0,o.createVNode)(1,"b",null,(0,o.createVNode)(1,"h3",null,"SYSTEM FAILURE",16),2),(0,o.createVNode)(1,"i",null,"I/O regulators malfunction detected! Waiting for system reboot...",16),(0,o.createVNode)(1,"br"),"Automatic reboot in ",u.failTime," seconds...",(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Reboot Now",onClick:function(){return c("reboot")}})]}):(0,o.createFragment)([(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox),(0,o.createComponentVNode)(2,a.Section,{title:"Power Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Main Breaker",color:m.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u.isOperating?"power-off":"times",content:u.isOperating?"On":"Off",selected:u.isOperating&&!s,disabled:s,onClick:function(){return c("breaker")}}),children:["[ ",m.externalPowerText," ]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power Cell",children:(0,o.createComponentVNode)(2,a.ProgressBar,{color:"good",value:N})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",color:p.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u.chargeMode?"sync":"close",content:u.chargeMode?"Auto":"Off",disabled:s,onClick:function(){return c("charge")}}),children:["[ ",p.chargingText," ]"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Channels",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[C.map((function(e){var t=e.topicParams;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.title,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,mx:2,color:e.status>=2?"good":"bad",children:e.status>=2?"On":"Off"}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Auto",selected:!s&&(1===e.status||3===e.status),disabled:s,onClick:function(){return c("channel",t.auto)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:"On",selected:!s&&2===e.status,disabled:s,onClick:function(){return c("channel",t.on)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Off",selected:!s&&0===e.status,disabled:s,onClick:function(){return c("channel",t.off)}})],4),children:e.powerLoad},e.title)})),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Total Load",children:(0,o.createVNode)(1,"b",null,u.totalLoad,0)})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Misc",buttons:!!u.siliconUser&&(0,o.createFragment)([!!u.malfStatus&&(0,o.createComponentVNode)(2,a.Button,{icon:h.icon,content:h.content,color:"bad",onClick:function(){return c(h.action)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:"Overload",onClick:function(){return c("overload")}})],0),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cover Lock",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u.coverLocked?"lock":"unlock",content:u.coverLocked?"Engaged":"Disengaged",disabled:s,onClick:function(){return c("cover")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Lighting",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:u.emergencyLights?"Enabled":"Disabled",disabled:s,onClick:function(){return c("emergency_lighting")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Night Shift Lighting",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:u.nightshiftLights?"Enabled":"Disabled",onClick:function(){return c("toggle_nightshift")}})})]})})],4)}},78645:function(e,t,n){"use strict";t.__esModule=!0,t.ApcControl=void 0;var o=n(39812),r=n(64499),a=n(85531),c=n(34380),i=n(71494),l=n(74814),d=n(85952),u=n(89793);t.ApcControl=function(e,t){var n=(0,i.useBackend)(t).data;return(0,o.createComponentVNode)(2,d.Window,{title:"APC Controller",width:550,height:500,resizable:!0,children:[1===n.authenticated&&(0,o.createComponentVNode)(2,m),0===n.authenticated&&(0,o.createComponentVNode)(2,s)]})};var s=function(e,t){var n=(0,i.useBackend)(t),r=n.act,a=n.data.emagged,c=1===a?"Open":"Log In";return(0,o.createComponentVNode)(2,d.Window.Content,{children:(0,o.createComponentVNode)(2,l.Button,{fluid:!0,color:1===a?"":"good",content:c,onClick:function(){return r("log-in")}})})},m=function(e,t){var n=(0,i.useBackend)(t),r=n.act,a=n.data.restoring,c=(0,i.useLocalState)(t,"tab-index",1),u=c[0],s=c[1];return(0,o.createFragment)([(0,o.createComponentVNode)(2,l.Tabs,{children:[(0,o.createComponentVNode)(2,l.Tabs.Tab,{selected:1===u,onClick:function(){s(1),r("check-apcs")},children:"APC Control Panel"}),(0,o.createComponentVNode)(2,l.Tabs.Tab,{selected:2===u,onClick:function(){s(2),r("check-logs")},children:"Log View Panel"})]}),1===a&&(0,o.createComponentVNode)(2,l.Dimmer,{fontSize:"32px",children:[(0,o.createComponentVNode)(2,l.Icon,{name:"cog",spin:!0})," Resetting..."]}),1===u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,p),(0,o.createComponentVNode)(2,l.Box,{fillPositionedParent:!0,top:"53px",children:(0,o.createComponentVNode)(2,d.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,C)})})],4),2===u&&(0,o.createComponentVNode)(2,l.Box,{fillPositionedParent:!0,top:"20px",children:(0,o.createComponentVNode)(2,d.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,h)})})],0)},p=function(e,t){var n=(0,i.useBackend)(t),r=n.act,a=n.data,c=a.emagged,d=a.logging,u=(0,i.useLocalState)(t,"sortByField",null),s=u[0],m=u[1];return(0,o.createComponentVNode)(2,l.Flex,{children:[(0,o.createComponentVNode)(2,l.Flex.Item,{children:[(0,o.createComponentVNode)(2,l.Box,{inline:!0,mr:2,color:"label",children:"Sort by:"}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"name"===s,content:"Name",onClick:function(){return m("name"!==s&&"name")}}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"charge"===s,content:"Charge",onClick:function(){return m("charge"!==s&&"charge")}}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"draw"===s,content:"Draw",onClick:function(){return m("draw"!==s&&"draw")}})]}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1}),(0,o.createComponentVNode)(2,l.Flex.Item,{children:[1===c&&(0,o.createFragment)([(0,o.createComponentVNode)(2,l.Button,{color:1===d?"bad":"good",content:1===d?"Stop Logging":"Restore Logging",onClick:function(){return r("toggle-logs")}}),(0,o.createComponentVNode)(2,l.Button,{content:"Reset Console",onClick:function(){return r("restore-console")}})],4),(0,o.createComponentVNode)(2,l.Button,{color:"bad",content:"Log Out",onClick:function(){return r("log-out")}})]})]})},C=function(e,t){var n=(0,i.useBackend)(t),c=n.data,d=n.act,s=(0,i.useLocalState)(t,"sortByField",null)[0],m=(0,a.flow)([(0,r.map)((function(e,t){return Object.assign({},e,{id:e.name+t})})),"name"===s&&(0,r.sortBy)((function(e){return e.name})),"charge"===s&&(0,r.sortBy)((function(e){return-e.charge})),"draw"===s&&(0,r.sortBy)((function(e){return-(0,u.powerRank)(e.load)}),(function(e){return-parseFloat(e.load)}))])(c.apcs);return(0,o.createComponentVNode)(2,l.Table,{children:[(0,o.createComponentVNode)(2,l.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:"On/Off"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Area"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,children:"Charge"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,textAlign:"right",children:"Draw"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Equipment",children:"Eqp"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Lighting",children:"Lgt"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Environment",children:"Env"})]}),m.map((function(e,t){return(0,o.createVNode)(1,"tr","Table__row candystripe",[(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,l.Button,{icon:e.operating?"power-off":"times",color:e.operating?"good":"bad",onClick:function(){return d("breaker",{ref:e.ref})}}),2),(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,l.Button,{onClick:function(){return d("access-apc",{ref:e.ref})},children:e.name}),2),(0,o.createVNode)(1,"td","Table__cell text-right text-nowrap",(0,o.createComponentVNode)(2,u.AreaCharge,{charging:e.charging,charge:e.charge}),2),(0,o.createVNode)(1,"td","Table__cell text-right text-nowrap",e.load,0),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,N,{target:"equipment",status:e.eqp,apc:e,act:d}),2),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,N,{target:"lighting",status:e.lgt,apc:e,act:d}),2),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,N,{target:"environ",status:e.env,apc:e,act:d}),2)],4,null,e.id)}))]})},h=function(e,t){var n=(0,i.useBackend)(t).data,c=(0,a.flow)([(0,r.map)((function(e,t){return Object.assign({},e,{id:e.entry+t})})),function(e){return e.reverse()}])(n.logs);return(0,o.createComponentVNode)(2,l.Box,{m:-.5,children:c.map((function(e){return(0,o.createComponentVNode)(2,l.Box,{p:.5,className:"candystripe",bold:!0,children:e.entry},e.id)}))})},N=function(e){var t=e.target,n=e.status,r=e.apc,a=e.act,c=Boolean(2&n),i=Boolean(1&n);return(0,o.createComponentVNode)(2,l.Button,{icon:i?"sync":"power-off",color:c?"good":"bad",onClick:function(){return a("toggle-minor",{type:t,value:V(n),ref:r.ref})}})},V=function(e){return 0===e?2:2===e?3:0};N.defaultHooks=c.pureComponentHooks},38531:function(e,t,n){"use strict";t.__esModule=!0,t.AtmosAlertConsole=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.AtmosAlertConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.priority||[],u=l.minor||[];return(0,o.createComponentVNode)(2,c.Window,{width:350,height:300,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:"Alarms",children:(0,o.createVNode)(1,"ul",null,[0===d.length&&(0,o.createVNode)(1,"li","color-good","No Priority Alerts",16),d.map((function(e){return(0,o.createVNode)(1,"li",null,(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:e,color:"bad",onClick:function(){return i("clear",{zone:e})}}),2,null,e)})),0===u.length&&(0,o.createVNode)(1,"li","color-good","No Minor Alerts",16),u.map((function(e){return(0,o.createVNode)(1,"li",null,(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:e,color:"average",onClick:function(){return i("clear",{zone:e})}}),2,null,e)}))],0)})})})}},4852:function(e,t,n){"use strict";t.__esModule=!0,t.AtmosControlConsole=void 0;var o=n(39812),r=n(64499),a=n(41860),c=n(71494),i=n(74814),l=n(85952);t.AtmosControlConsole=function(e,t){var n,d=(0,c.useBackend)(t),u=d.act,s=d.data,m=s.sensors||[];return(0,o.createComponentVNode)(2,l.Window,{width:500,height:315,resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,i.Section,{title:!!s.tank&&(null==(n=m[0])?void 0:n.long_name),children:m.map((function(e){var t=e.gases||{};return(0,o.createComponentVNode)(2,i.Section,{title:!s.tank&&e.long_name,level:2,children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Pressure",children:(0,a.toFixed)(e.pressure,2)+" kPa"}),!!e.temperature&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Temperature",children:(0,a.toFixed)(e.temperature,2)+" K"}),(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:t,children:(0,a.toFixed)(e,2)+"%"})}))(t)]})},e.id_tag)}))}),s.tank&&(0,o.createComponentVNode)(2,i.Section,{title:"Controls",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"undo",content:"Reconnect",onClick:function(){return u("reconnect")}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Input Injector",children:(0,o.createComponentVNode)(2,i.Button,{icon:s.inputting?"power-off":"times",content:s.inputting?"Injecting":"Off",selected:s.inputting,onClick:function(){return u("input")}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Input Rate",children:(0,o.createComponentVNode)(2,i.NumberInput,{value:s.inputRate,unit:"L/s",width:"63px",minValue:0,maxValue:200,suppressFlicker:2e3,onChange:function(e,t){return u("rate",{rate:t})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Output Regulator",children:(0,o.createComponentVNode)(2,i.Button,{icon:s.outputting?"power-off":"times",content:s.outputting?"Open":"Closed",selected:s.outputting,onClick:function(){return u("output")}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Output Pressure",children:(0,o.createComponentVNode)(2,i.NumberInput,{value:parseFloat(s.outputPressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,suppressFlicker:2e3,onChange:function(e,t){return u("pressure",{pressure:t})}})})]})})]})})}},40948:function(e,t,n){"use strict";t.__esModule=!0,t.AtmosControlPanel=void 0;var o=n(39812),r=n(64499),a=n(85531),c=n(71494),i=n(74814),l=n(85952);t.AtmosControlPanel=function(e,t){var n=(0,c.useBackend)(t),d=n.act,u=n.data,s=(0,a.flow)([(0,r.map)((function(e,t){return Object.assign({},e,{id:e.area+t})})),(0,r.sortBy)((function(e){return e.id}))])(u.excited_groups);return(0,o.createComponentVNode)(2,l.Window,{title:"SSAir Control Panel",width:900,height:500,resizable:!0,children:[(0,o.createComponentVNode)(2,i.Section,{m:1,children:(0,o.createComponentVNode)(2,i.Flex,{justify:"space-between",align:"baseline",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Button,{onClick:function(){return d("toggle-freeze")},color:1===u.frozen?"good":"bad",children:1===u.frozen?"Freeze Subsystem":"Unfreeze Subsystem"})}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:["Fire Cnt: ",u.fire_count]}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:["Active Turfs: ",u.active_size]}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:["Excited Groups: ",u.excited_size]}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:["Hotspots: ",u.hotspots_size]}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:["Superconductors: ",u.conducting_size]}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Button.Checkbox,{checked:u.showing_user,onClick:function(){return d("toggle_user_display")},children:"Personal View"})}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Button.Checkbox,{checked:u.show_all,onClick:function(){return d("toggle_show_all")},children:"Display all"})})]})}),(0,o.createComponentVNode)(2,i.Box,{fillPositionedParent:!0,top:"45px",children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Table,{children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Area Name"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:"Breakdown"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:"Dismantle"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:"Turfs"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:1===u.display_max&&"Max Share"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:"Display"})]}),s.map((function(e){return(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,i.Button,{content:e.area,onClick:function(){return d("move-to-target",{spot:e.jump_to})}}),2),(0,o.createVNode)(1,"td",null,e.breakdown,0),(0,o.createVNode)(1,"td",null,e.dismantle,0),(0,o.createVNode)(1,"td",null,e.size,0),(0,o.createVNode)(1,"td",null,1===u.display_max&&e.max_share,0),(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,i.Button.Checkbox,{checked:e.should_show,onClick:function(){return d("toggle_show_group",{group:e.group})}}),2)],4,null,e.id)}))]})})})})]})}},2726:function(e,t,n){"use strict";t.__esModule=!0,t.AtmosFilter=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(76270),i=n(85952);t.AtmosFilter=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.filter_types||[];return(0,o.createComponentVNode)(2,i.Window,{width:390,height:187,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:d.on?"power-off":"times",content:d.on?"On":"Off",selected:d.on,onClick:function(){return l("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transfer Rate",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(d.rate),width:"63px",unit:"L/s",minValue:0,maxValue:200,onDrag:function(e,t){return l("rate",{rate:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:d.rate===d.max_rate,onClick:function(){return l("rate",{rate:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Filter",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{selected:e.selected,content:(0,c.getGasLabel)(e.id,e.name),onClick:function(){return l("filter",{mode:e.id})}},e.id)}))})]})})})})}},61505:function(e,t,n){"use strict";t.__esModule=!0,t.AtmosMixer=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.AtmosMixer=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:370,height:165,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.on?"power-off":"times",content:l.on?"On":"Off",selected:l.on,onClick:function(){return i("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(l.set_pressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,onChange:function(e,t){return i("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:l.set_pressure===l.max_pressure,onClick:function(){return i("pressure",{pressure:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Node 1",children:(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:l.node1_concentration,unit:"%",width:"60px",minValue:0,maxValue:100,stepPixelSize:2,onDrag:function(e,t){return i("node1",{concentration:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Node 2",children:(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:l.node2_concentration,unit:"%",width:"60px",minValue:0,maxValue:100,stepPixelSize:2,onDrag:function(e,t){return i("node2",{concentration:t})}})})]})})})})}},30255:function(e,t,n){"use strict";t.__esModule=!0,t.AtmosPump=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.AtmosPump=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:335,height:115,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.on?"power-off":"times",content:l.on?"On":"Off",selected:l.on,onClick:function(){return i("power")}})}),l.max_rate?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transfer Rate",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(l.rate),width:"63px",unit:"L/s",minValue:0,maxValue:200,onChange:function(e,t){return i("rate",{rate:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:l.rate===l.max_rate,onClick:function(){return i("rate",{rate:"max"})}})]}):(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(l.pressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,onChange:function(e,t){return i("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:l.pressure===l.max_pressure,onClick:function(){return i("pressure",{pressure:"max"})}})]})]})})})})}},78598:function(e,t,n){"use strict";t.__esModule=!0,t.AtmosRelief=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.AtmosRelief=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:335,height:115,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Open Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(l.open_pressure),unit:"kPa",width:"75px",minValue:0,maxValue:l.max_pressure||4500,step:10,onChange:function(e,t){return i("open_pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:l.open_pressure===l.max_pressure,onClick:function(){return i("open_pressure",{pressure:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Close Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(l.close_pressure),unit:"kPa",width:"75px",minValue:0,maxValue:l.max_pressure||4500,step:10,onChange:function(e,t){return i("close_pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:l.close_pressure===l.max_pressure,onClick:function(){return i("close_pressure",{pressure:"max"})}})]})]})})})})}},33106:function(e,t,n){"use strict";t.__esModule=!0,t.AutomatedAnnouncement=void 0;var o=n(39812),r=(n(2497),n(71494)),a=n(74814),c=n(85952),i="%PERSON will be replaced with their name.\n%RANK with their job.";t.AutomatedAnnouncement=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.arrivalToggle,s=d.arrival,m=d.newheadToggle,p=d.newhead;return(0,o.createComponentVNode)(2,c.Window,{title:"Automated Announcement System",width:500,height:225,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Arrival Announcement",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u?"power-off":"times",selected:u,content:u?"On":"Off",onClick:function(){return l("ArrivalToggle")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"info",tooltip:i,tooltipPosition:"left"}),children:(0,o.createComponentVNode)(2,a.Input,{fluid:!0,value:s,onChange:function(e,t){return l("ArrivalText",{newText:t})}})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Departmental Head Announcement",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:m?"power-off":"times",selected:m,content:m?"On":"Off",onClick:function(){return l("NewheadToggle")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"info",tooltip:i,tooltipPosition:"left"}),children:(0,o.createComponentVNode)(2,a.Input,{fluid:!0,value:p,onChange:function(e,t){return l("NewheadText",{newText:t})}})})})})]})})}},57554:function(e,t,n){"use strict";t.__esModule=!0,t.BankMachine=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(58083),i=n(85952);t.BankMachine=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.current_balance,s=d.siphoning,m=d.station_name;return(0,o.createComponentVNode)(2,i.Window,{width:350,height:155,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,a.NoticeBox,{danger:!0,children:"Authorized personnel only"}),(0,o.createComponentVNode)(2,a.Section,{title:m+" Vault",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Balance",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:s?"times":"sync",content:s?"Stop Siphoning":"Siphon Credits",selected:s,onClick:function(){return l(s?"halt":"siphon")}}),children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u,format:function(e){return(0,c.formatMoney)(e)}})," cr"]})})})]})})}},51723:function(e,t,n){"use strict";t.__esModule=!0,t.Bepis=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.Bepis=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.amount;return(0,o.createComponentVNode)(2,c.Window,{width:500,height:480,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Business Exploration Protocol Incubation Sink",children:[(0,o.createComponentVNode)(2,a.Section,{title:"Information",backgroundColor:"#450F44",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:l.manual_power?"Off":"On",selected:!l.manual_power,onClick:function(){return i("toggle_power")}}),children:"All you need to know about the B.E.P.I.S. and you! The B.E.P.I.S. performs hundreds of tests a second using electrical and financial resources to invent new products, or discover new technologies otherwise overlooked for being too risky or too niche to produce!"}),(0,o.createComponentVNode)(2,a.Section,{title:"Payer's Account",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"redo-alt",content:"Reset Account",onClick:function(){return i("account_reset")}}),children:["Console is currently being operated by ",l.account_owner?l.account_owner:"no one","."]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:1.5,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Stored Data and Statistics",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deposited Credits",children:l.stored_cash}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Investment Variability",children:[l.accuracy_percentage,"%"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Innovation Bonus",children:l.positive_cash_offset}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Risk Offset",color:"bad",children:l.negative_cash_offset}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deposit Amount",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:d,unit:"Credits",minValue:100,maxValue:3e4,step:100,stepPixelSize:2,onChange:function(e,t){return i("amount",{amount:t})}})})]})}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"donate",content:"Deposit Credits",disabled:1===l.manual_power||1===l.silicon_check,onClick:function(){return i("deposit_cash")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Withdraw Credits",disabled:1===l.manual_power,onClick:function(){return i("withdraw_cash")}})]})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Market Data and Analysis",children:[(0,o.createComponentVNode)(2,a.Box,{children:["Average technology cost: ",l.mean_value]}),(0,o.createComponentVNode)(2,a.Box,{children:["Current chance of Success: Est. ",l.success_estimate,"%"]}),l.error_name&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Previous Failure Reason: Deposited cash value too low. Please insert more money for future success."}),(0,o.createComponentVNode)(2,a.Box,{m:1}),(0,o.createComponentVNode)(2,a.Button,{icon:"microscope",disabled:1===l.manual_power,onClick:function(){return i("begin_experiment")},content:"Begin Testing"})]})})]})]})})})}},20813:function(e,t,n){"use strict";t.__esModule=!0,t.BiogeneratorContent=t.Biogenerator=void 0;var o=n(39812),r=n(34380),a=n(2497),c=n(71494),i=n(74814),l=n(58083),d=n(85952);t.Biogenerator=function(e,t){var n=(0,c.useBackend)(t).data,r=n.beaker,a=n.processing;return(0,o.createComponentVNode)(2,d.Window,{width:550,height:380,resizable:!0,children:[!!a&&(0,o.createComponentVNode)(2,i.Dimmer,{fontSize:"32px",children:[(0,o.createComponentVNode)(2,i.Icon,{name:"cog",spin:1})," Processing..."]}),(0,o.createComponentVNode)(2,d.Window.Content,{scrollable:!0,children:[!r&&(0,o.createComponentVNode)(2,i.NoticeBox,{children:"No Container"}),!!r&&(0,o.createComponentVNode)(2,u)]})]})};var u=function(e,t){var n,r,d=(0,c.useBackend)(t),u=d.act,m=d.data,p=m.biomass,C=m.can_process,h=m.categories,N=void 0===h?[]:h,V=(0,c.useLocalState)(t,"searchText",""),b=V[0],f=V[1],g=(0,c.useLocalState)(t,"category",null==(n=N[0])?void 0:n.name),v=g[0],k=g[1],x=(0,a.createSearch)(b,(function(e){return e.name})),B=b.length>0&&N.flatMap((function(e){return e.items||[]})).filter(x).filter((function(e,t){return t<25}))||(null==(r=N.find((function(e){return e.name===v})))?void 0:r.items)||[];return(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:p>0?"good":"bad",children:[(0,l.formatMoney)(p)," Biomass"]}),buttons:(0,o.createFragment)([(0,o.createTextVNode)("Search"),(0,o.createComponentVNode)(2,i.Input,{autoFocus:!0,value:b,onInput:function(e,t){return f(t)},mx:1}),(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",onClick:function(){return u("detach")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"cog",content:"Activate",disabled:!C,onClick:function(){return u("activate")}})],4),children:(0,o.createComponentVNode)(2,i.Flex,{children:[0===b.length&&(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:N.map((function(e){var t;return(0,o.createComponentVNode)(2,i.Tabs.Tab,{selected:e.name===v,onClick:function(){return k(e.name)},children:[e.name," (",(null==(t=e.items)?void 0:t.length)||0,")"]},e.name)}))})}),(0,o.createComponentVNode)(2,i.Flex.Item,{grow:1,basis:0,children:[0===B.length&&(0,o.createComponentVNode)(2,i.NoticeBox,{children:0===b.length?"No items in this category.":"No results found."}),(0,o.createComponentVNode)(2,i.Table,{children:(0,o.createComponentVNode)(2,s,{biomass:p,items:B})})]})]})})};t.BiogeneratorContent=u;var s=function(e,t){var n=(0,c.useBackend)(t).act,a=(0,c.useLocalState)(t,"hoveredItem",{}),l=a[0],d=a[1],u=l&&l.cost||0;return e.items.map((function(n){var o=(0,c.useLocalState)(t,"amount"+n.name,1),r=o[0],a=o[1],i=l&&l.name!==n.name,d=e.biomass-u*l.amountV,onClick:function(){return d("select",{item:e.id})}})})]}),e.desc]},e.name)}))})]})]})]})};var l=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.buying,u=l.ltsrbt_built,s=l.money;if(!d)return null;var m=l.delivery_methods.map((function(e){var t=l.delivery_method_description[e.name];return Object.assign({},e,{description:t})}));return(0,o.createComponentVNode)(2,a.Modal,{textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Flex,{mb:1,children:m.map((function(e){return"LTSRBT"!==e.name||u?(0,o.createComponentVNode)(2,a.Flex.Item,{mx:1,width:"250px",children:[(0,o.createComponentVNode)(2,a.Box,{fontSize:"30px",children:e.name}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:e.description}),(0,o.createComponentVNode)(2,a.Button,{mt:2,content:(0,c.formatMoney)(e.price)+" cr",disabled:s=0||(r[n]=e[n]);return r}(t,["res","value"]),a=d(n),c=a[0],i=a[1];return(0,o.normalizeProps)((0,o.createVNode)(1,"canvas",null,"Canvas failed to render.",16,Object.assign({width:28*c||300,height:28*i||300},r,{onClick:function(t){return e.clickwrapper(t)}}),null,this.canvasRef))},r}(o.Component),d=function(e){var t=e.length;return[t,0!==t?e[0].length:0]};t.Canvas=function(e,t){var n=(0,r.useBackend)(t),i=n.act,u=n.data,s=d(u.grid),m=s[0],p=s[1];return(0,o.createComponentVNode)(2,c.Window,{width:Math.min(400,28*m*32+24),height:Math.min(400,28*p*32+24),resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",children:[(0,o.createComponentVNode)(2,l,{value:u.grid,onCanvasClick:function(e,t){return i("paint",{x:e,y:t})}}),(0,o.createComponentVNode)(2,a.Box,{children:[!u.finalized&&(0,o.createComponentVNode)(2,a.Button.Confirm,{onClick:function(){return i("finalize")},content:"Finalize"}),u.name]})]})})})}},5758:function(e,t,n){"use strict";t.__esModule=!0,t.CargoCatalog=t.Cargo=void 0;var o=n(39812),r=n(64499),a=n(71494),c=n(74814),i=n(58083),l=n(85952);t.Cargo=function(e,t){var n=(0,a.useBackend)(t),r=(n.act,n.data),i=(0,a.useSharedState)(t,"tab","catalog"),m=i[0],C=i[1],h=r.requestonly,N=r.cart||[],V=r.requests||[];return(0,o.createComponentVNode)(2,l.Window,{width:780,height:750,resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,d),(0,o.createComponentVNode)(2,c.Section,{fitted:!0,children:(0,o.createComponentVNode)(2,c.Tabs,{children:[(0,o.createComponentVNode)(2,c.Tabs.Tab,{icon:"list",selected:"catalog"===m,onClick:function(){return C("catalog")},children:"Catalog"}),(0,o.createComponentVNode)(2,c.Tabs.Tab,{icon:"envelope",textColor:"requests"!==m&&V.length>0&&"yellow",selected:"requests"===m,onClick:function(){return C("requests")},children:["Requests (",V.length,")"]}),!h&&(0,o.createComponentVNode)(2,c.Tabs.Tab,{icon:"shopping-cart",textColor:"cart"!==m&&N.length>0&&"yellow",selected:"cart"===m,onClick:function(){return C("cart")},children:["Checkout (",N.length,")"]})]})}),"catalog"===m&&(0,o.createComponentVNode)(2,u),"requests"===m&&(0,o.createComponentVNode)(2,s),"cart"===m&&(0,o.createComponentVNode)(2,p)]})})};var d=function(e,t){var n=(0,a.useBackend)(t),r=n.act,l=n.data,d=l.away,u=l.docked,s=l.loan,m=l.loan_dispatched,p=l.location,C=l.message,h=l.points,N=l.requestonly;return(0,o.createComponentVNode)(2,c.Section,{title:"Cargo",buttons:(0,o.createComponentVNode)(2,c.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:h,format:function(e){return(0,i.formatMoney)(e)}})," credits"]}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Shuttle",children:u&&!N&&(0,o.createComponentVNode)(2,c.Button,{content:p,onClick:function(){return r("send")}})||p}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"CentCom Message",children:C}),!!s&&!N&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Loan",children:!m&&(0,o.createComponentVNode)(2,c.Button,{content:"Loan Shuttle",disabled:!(d&&u),onClick:function(){return r("loan")}})||(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"Loaned to Centcom"})})]})})},u=function(e,t){var n,l=e.express,d=(0,a.useBackend)(t),u=d.act,s=d.data,p=s.self_paid,C=(0,r.toArray)(s.supplies),h=(0,a.useSharedState)(t,"supply",null==(n=C[0])?void 0:n.name),N=h[0],V=h[1],b=C.find((function(e){return e.name===N}));return(0,o.createComponentVNode)(2,c.Section,{title:"Catalog",buttons:!l&&(0,o.createFragment)([(0,o.createComponentVNode)(2,m),(0,o.createComponentVNode)(2,c.Button.Checkbox,{ml:2,content:"Buy Privately",checked:p,onClick:function(){return u("toggleprivate")}})],4),children:(0,o.createComponentVNode)(2,c.Flex,{children:[(0,o.createComponentVNode)(2,c.Flex.Item,{ml:-1,mr:1,children:(0,o.createComponentVNode)(2,c.Tabs,{vertical:!0,children:C.map((function(e){return(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:e.name===N,onClick:function(){return V(e.name)},children:[e.name," (",e.packs.length,")"]},e.name)}))})}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,c.Table,{children:null==b?void 0:b.packs.map((function(e){var t=[];return e.small_item&&t.push("Small"),e.access&&t.push("Restricted"),(0,o.createComponentVNode)(2,c.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,color:"label",textAlign:"right",children:t.join(", ")}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,tooltip:e.desc,tooltipPosition:"left",onClick:function(){return u("add",{id:e.id})},children:[(0,i.formatMoney)(p&&!e.goody?Math.round(1.1*e.cost):e.cost)," cr"]})})]},e.name)}))})})]})})};t.CargoCatalog=u;var s=function(e,t){var n=(0,a.useBackend)(t),r=n.act,l=n.data,d=l.requestonly,u=l.requests||[];return(0,o.createComponentVNode)(2,c.Section,{title:"Active Requests",buttons:!d&&(0,o.createComponentVNode)(2,c.Button,{icon:"times",content:"Clear",color:"transparent",onClick:function(){return r("denyall")}}),children:[0===u.length&&(0,o.createComponentVNode)(2,c.Box,{color:"good",children:"No Requests"}),u.length>0&&(0,o.createComponentVNode)(2,c.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,color:"label",children:["#",e.id]}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.object}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,o.createVNode)(1,"b",null,e.orderer,0)}),(0,o.createComponentVNode)(2,c.Table.Cell,{width:"25%",children:(0,o.createVNode)(1,"i",null,e.reason,0)}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:[(0,i.formatMoney)(e.cost)," cr"]}),!d&&(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,c.Button,{icon:"check",color:"good",onClick:function(){return r("approve",{id:e.id})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"times",color:"bad",onClick:function(){return r("deny",{id:e.id})}})]})]},e.id)}))})]})},m=function(e,t){var n=(0,a.useBackend)(t),r=n.act,l=n.data,d=l.requestonly,u=l.cart||[],s=u.reduce((function(e,t){return e+t.cost}),0);return d?null:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Box,{inline:!0,mx:1,children:[0===u.length&&"Cart is empty",1===u.length&&"1 item",u.length>=2&&u.length+" items"," ",s>0&&"("+(0,i.formatMoney)(s)+" cr)"]}),(0,o.createComponentVNode)(2,c.Button,{icon:"times",color:"transparent",content:"Clear",onClick:function(){return r("clear")}})],4)},p=function(e,t){var n=(0,a.useBackend)(t),r=n.act,l=n.data,d=l.requestonly,u=l.away,s=l.docked,p=l.location,C=l.cart||[];return(0,o.createComponentVNode)(2,c.Section,{title:"Current Cart",buttons:(0,o.createComponentVNode)(2,m),children:[0===C.length&&(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"Nothing in cart"}),C.length>0&&(0,o.createComponentVNode)(2,c.Table,{children:C.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,color:"label",children:["#",e.id]}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.object}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,children:!!e.paid&&(0,o.createVNode)(1,"b",null,"[Paid Privately]",16)}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:[(0,i.formatMoney)(e.cost)," cr"]}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,c.Button,{icon:"minus",onClick:function(){return r("remove",{id:e.id})}})})]},e.id)}))}),C.length>0&&!d&&(0,o.createComponentVNode)(2,c.Box,{mt:2,children:1===u&&1===s&&(0,o.createComponentVNode)(2,c.Button,{color:"green",style:{"line-height":"28px",padding:"0 12px"},content:"Confirm the order",onClick:function(){return r("send")}})||(0,o.createComponentVNode)(2,c.Box,{opacity:.5,children:["Shuttle in ",p,"."]})})]})}},96291:function(e,t,n){"use strict";t.__esModule=!0,t.CargoBountyConsole=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(58083),i=n(85952);t.CargoBountyConsole=function(e,t){var n=(0,r.useBackend)(t),c=n.act,d=n.data.bountydata,u=void 0===d?[]:d;return(0,o.createComponentVNode)(2,i.Window,{width:750,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,l),buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:"Print Bounty List",onClick:function(){return c("Print")}}),children:(0,o.createComponentVNode)(2,a.Table,{border:!0,children:[(0,o.createComponentVNode)(2,a.Table.Row,{bold:!0,italic:!0,color:"label",fontSize:1.25,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Bounty Object"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Description"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Progress"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Value"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Claim"})]}),u.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{backgroundColor:1===e.priority?"rgba(252, 152, 3, 0.25)":"",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{italic:!0,textAlign:"center",p:1,children:e.description}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,textAlign:"center",children:[1===e.priority?(0,o.createComponentVNode)(2,a.Box,{children:"High Priority"}):"",e.completion_string]}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,textAlign:"center",children:e.reward_string}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",icon:1===e.claimed?"check":"",content:1===e.claimed?"Claimed":"Claim",disabled:1===e.claimed,color:1===e.can_claim?"green":"red",onClick:function(){return c("ClaimBounty",{bounty:e.bounty_ref})}})})]},e.name)}))]})})})})};var l=function(e,t){var n=(0,r.useBackend)(t),i=(n.act,n.data.stored_cash);return(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i,format:function(e){return(0,c.formatMoney)(e)}})," credits"]})}},69941:function(e,t,n){"use strict";t.__esModule=!0,t.CargoExpress=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=n(5758),l=n(21451);t.CargoExpress=function(e,t){var n=(0,r.useBackend)(t),a=(n.act,n.data);return(0,o.createComponentVNode)(2,c.Window,{width:600,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,l.InterfaceLockNoticeBox,{accessText:"a QM-level ID card"}),!a.locked&&(0,o.createComponentVNode)(2,d)]})})};var d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Cargo Express",buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:Math.round(l.points)})," credits"]}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Landing Location",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Cargo Bay",selected:!l.usingBeacon,onClick:function(){return c("LZCargo")}}),(0,o.createComponentVNode)(2,a.Button,{selected:l.usingBeacon,disabled:!l.hasBeacon,onClick:function(){return c("LZBeacon")},children:[l.beaconzone," (",l.beaconName,")"]}),(0,o.createComponentVNode)(2,a.Button,{content:l.printMsg,disabled:!l.canBuyBeacon,onClick:function(){return c("printBeacon")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Notice",children:l.message})]})}),(0,o.createComponentVNode)(2,i.CargoCatalog,{express:!0})],4)}},62292:function(e,t,n){"use strict";t.__esModule=!0,t.CargoHoldTerminal=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.CargoHoldTerminal=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.points,u=l.pad,s=l.sending,m=l.status_report;return(0,o.createComponentVNode)(2,c.Window,{width:600,height:230,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Cargo Value",children:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:Math.round(d)})," credits"]})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cargo Pad",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Recalculate Value",disabled:!u,onClick:function(){return i("recalc")}}),(0,o.createComponentVNode)(2,a.Button,{icon:s?"times":"arrow-up",content:s?"Stop Sending":"Send Goods",selected:s,disabled:!u,onClick:function(){return i(s?"stop":"send")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:u?"good":"bad",children:u?"Online":"Not Found"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cargo Report",children:m})]})})]})})}},27173:function(e,t,n){"use strict";t.__esModule=!0,t.CellularEmporium=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.CellularEmporium=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.abilities;return(0,o.createComponentVNode)(2,c.Window,{width:900,height:480,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Genetic Points",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"undo",content:"Readapt",disabled:!l.can_readapt,onClick:function(){return i("readapt")}}),children:l.genetic_points_remaining})})}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:d.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{className:"candystripe",label:e.name,buttons:(0,o.createFragment)([e.dna_cost," ",(0,o.createComponentVNode)(2,a.Button,{content:e.owned?"Evolved":"Evolve",selected:e.owned,onClick:function(){return i("evolve",{name:e.name})}})],0),children:[e.desc,(0,o.createComponentVNode)(2,a.Box,{color:"good",children:e.helptext})]},e.name)}))})})]})})}},26726:function(e,t,n){"use strict";t.__esModule=!0,t.CentcomPodLauncherContent=t.CentcomPodLauncher=void 0;var o=n(39812),r=(n(2497),n(71494)),a=n(74814),c=n(85952);t.CentcomPodLauncher=function(){return(0,o.createComponentVNode)(2,c.Window,{title:"Config/Launch Supply Pod",width:700,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.NoticeBox,{children:"To use this, simply spawn the atoms you want in one of the five Centcom Supplypod Bays. Items in the bay will then be launched inside your supplypod, one turf-full at a time! You can optionally use the following buttons to configure how the supplypod acts."}),(0,o.createComponentVNode)(2,a.Section,{title:"Centcom Pod Customization (To be used against Helen Weinstein)",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Supply Bay",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Bay #1",selected:1===i.bayNumber,onClick:function(){return c("bay1")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Bay #2",selected:2===i.bayNumber,onClick:function(){return c("bay2")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Bay #3",selected:3===i.bayNumber,onClick:function(){return c("bay3")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Bay #4",selected:4===i.bayNumber,onClick:function(){return c("bay4")}}),(0,o.createComponentVNode)(2,a.Button,{content:"ERT Bay",selected:5===i.bayNumber,tooltip:"This bay is located on the western edge of CentCom. Its the\nglass room directly west of where ERT spawn, and south of the\nCentCom ferry. Useful for launching ERT/Deathsquads/etc. onto\nthe station via drop pods.",onClick:function(){return c("bay5")}})]}),!!i.effectReverse&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Reverse Drop",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Pick Dropoff Location",selected:i.picking_dropoff_turf,disabled:!i.effectReverse,tooltip:"[NOTE: ONLY WORKS WHEN REVERSE MODE IS ACTIVE]\nThis will allow you to select a dropoff turf. After\nselecting a turf, any pod in 'Reverse Mode' will drop off\nit's newly gotten cargo on this turf. Can be used to\ntransport things or people around the station in a neat,\nIC way. Try doing this with the 'Seethrough Pod' style\nenabled for extra fun!",onClick:function(){return c("pickDropoffTurf")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Clear Dropoff Location",disabled:!i.dropoff_turf,tooltip:"Clears the selected dropoff turf for reverse mode.",onClick:function(){return c("clearDropoffTurf")}}),(0,o.createVNode)(1,"p",null,[(0,o.createTextVNode)("Reverse Drop-off Location:"),i.dropoff_turf?i.dropoff_turf:"None"],0)]}),!i.effectReverse&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Reverse Drop",children:(0,o.createVNode)(1,"p",null,"[Enable Reverse Mode for this feature]",16)}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Teleport to",children:[(0,o.createComponentVNode)(2,a.Button,{content:i.bay,onClick:function(){return c("teleportCentcom")}}),(0,o.createComponentVNode)(2,a.Button,{content:i.oldArea?i.oldArea:"Where you were",disabled:!i.oldArea,onClick:function(){return c("teleportBack")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Item Mode",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Clone Items",selected:i.launchClone,tooltip:"Choosing this will create a duplicate of the item to be\nlaunched in Centcom, allowing you to send one type of item\nmultiple times. Either way, the atoms are forceMoved into\nthe supplypod after it lands (but before it opens).",onClick:function(){return c("launchClone")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Random Items",selected:i.launchRandomItem,tooltip:"Choosing this will pick a random item from the selected turf\ninstead of the entire turfs contents. Best combined with\nsingle/random turf.",onClick:function(){return c("launchRandomItem")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Launch style",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Ordered",selected:1===i.launchChoice,tooltip:'Instead of launching everything in the bay at once, this\nwill "scan" things (one turf-full at a time) in order, left\nto right and top to bottom. undoing will reset the "scanner"\nto the top-leftmost position.',onClick:function(){return c("launchOrdered")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Random Turf",selected:2===i.launchChoice,tooltip:"Instead of launching everything in the bay at once, this\nwill launch one random turf of items at a time.",onClick:function(){return c("launchRandomTurf")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Explosion",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Size",selected:1===i.explosionChoice,tooltip:"This will cause an explosion of whatever size you like\n(including flame range) to occur as soon as the supplypod\nlands. Dont worry, supply-pods are explosion-proof!",onClick:function(){return c("explosionCustom")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Adminbus",selected:2===i.explosionChoice,tooltip:"This will cause a maxcap explosion (dependent on server\nconfig) to occur as soon as the supplypod lands. Dont worry,\nsupply-pods are explosion-proof!",onClick:function(){return c("explosionBus")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Damage",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Damage",selected:1===i.damageChoice,tooltip:"Anyone caught under the pod when it lands will be dealt\nthis amount of brute damage. Sucks to be them!",onClick:function(){return c("damageCustom")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Gib",selected:2===i.damageChoice,tooltip:"This will attempt to gib any mob caught under the pod when\nit lands, as well as dealing a nice 5000 brute damage. Ya\nknow, just to be sure!",onClick:function(){return c("damageGib")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Effects",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Projectile Cloud",selected:i.effectShrapnel,tooltip:"This will create a cloud of shrapnel on landing,\nof any projectile you'd like!",onClick:function(){return c("effectShrapnel")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Stun",selected:i.effectStun,tooltip:"Anyone who is on the turf when the supplypod is launched\nwill be stunned until the supplypod lands. They cant get\naway that easy!",onClick:function(){return c("effectStun")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Delimb",selected:i.effectLimb,tooltip:"This will cause anyone caught under the pod to lose a limb,\nexcluding their head.",onClick:function(){return c("effectLimb")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Yeet Organs",selected:i.effectOrgans,tooltip:"This will cause anyone caught under the pod to lose all\ntheir limbs and organs in a spectacular fashion.",onClick:function(){return c("effectOrgans")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Movement",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Bluespace",selected:i.effectBluespace,tooltip:"Gives the supplypod an advanced Bluespace Recyling Device.\nAfter opening, the supplypod will be warped directly to the\nsurface of a nearby NT-designated trash planet (/r/ss13).",onClick:function(){return c("effectBluespace")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Stealth",selected:i.effectStealth,tooltip:'This hides the red target icon from appearing when you\nlaunch the supplypod. Combos well with the "Invisible"\nstyle. Sneak attack, go!',onClick:function(){return c("effectStealth")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Quiet",selected:i.effectQuiet,tooltip:"This will keep the supplypod from making any sounds, except\nfor those specifically set by admins in the Sound section.",onClick:function(){return c("effectQuiet")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Reverse Mode",selected:i.effectReverse,tooltip:"This pod will not send any items. Instead, after landing,\nthe supplypod will close (similar to a normal closet closing),\nand then launch back to the right centcom bay to drop off any\nnew contents.",onClick:function(){return c("effectReverse")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Missile Mode",selected:i.effectMissile,tooltip:"This pod will not send any items. Instead, it will immediately\ndelete after landing (Similar visually to setting openDelay\n& departDelay to 0, but this looks nicer). Useful if you just\nwanna fuck some shit up. Combos well with the Missile style.",onClick:function(){return c("effectMissile")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Any Descent Angle",selected:i.effectCircle,tooltip:"This will make the supplypod come in from any angle. Im not\nsure why this feature exists, but here it is.",onClick:function(){return c("effectCircle")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Machine Gun Mode",selected:i.effectBurst,tooltip:"This will make each click launch 5 supplypods inaccuratly\naround the target turf (a 3x3 area). Combos well with the\nMissile Mode if you dont want shit lying everywhere after.",onClick:function(){return c("effectBurst")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Specific Target",selected:i.effectTarget,tooltip:"This will make the supplypod target a specific atom, instead\nof the mouses position. Smiting does this automatically!",onClick:function(){return c("effectTarget")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name/Desc",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Name/Desc",selected:i.effectName,tooltip:"Allows you to add a custom name and description.",onClick:function(){return c("effectName")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Alert Ghosts",selected:i.effectAnnounce,tooltip:"Alerts ghosts when a pod is launched. Useful if some dumb\nshit is aboutta come outta the pod.",onClick:function(){return c("effectAnnounce")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Sound",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Falling Sound",selected:i.fallingSound,tooltip:"Choose a sound to play as the pod falls. Note that for this\nto work right you should know the exact length of the sound,\nin seconds.",onClick:function(){return c("fallSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Landing Sound",selected:i.landingSound,tooltip:"Choose a sound to play when the pod lands.",onClick:function(){return c("landingSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Opening Sound",selected:i.openingSound,tooltip:"Choose a sound to play when the pod opens.",onClick:function(){return c("openingSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Leaving Sound",selected:i.leavingSound,tooltip:"Choose a sound to play when the pod departs (whether that be\ndelection in the case of a bluespace pod, or leaving for\ncentcom for a reversing pod).",onClick:function(){return c("leavingSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Admin Sound Volume",selected:i.soundVolume,tooltip:"Choose the volume for the sound to play at. Default values\nare between 1 and 100, but hey, do whatever. Im a tooltip,\nnot a cop.",onClick:function(){return c("soundVolume")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Timers",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Falling Duration",selected:4!==i.fallDuration,tooltip:"Set how long the animation for the pod falling lasts. Create\ndramatic, slow falling pods!",onClick:function(){return c("fallDuration")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Landing Time",selected:20!==i.landingDelay,tooltip:"Choose the amount of time it takes for the supplypod to hit\nthe station. By default this value is 0.5 seconds.",onClick:function(){return c("landingDelay")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Opening Time",selected:30!==i.openingDelay,tooltip:"Choose the amount of time it takes for the supplypod to open\nafter landing. Useful for giving whatevers inside the pod a\nnice dramatic entrance! By default this value is 3 seconds.",onClick:function(){return c("openingDelay")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Leaving Time",selected:30!==i.departureDelay,tooltip:"Choose the amount of time it takes for the supplypod to leave\nafter landing. By default this value is 3 seconds.",onClick:function(){return c("departureDelay")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Style",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.styleChoice,tooltip:"Same color scheme as the normal station-used supplypods",onClick:function(){return c("styleStandard")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.styleChoice,tooltip:"The same as the stations upgraded blue-and-white\nBluespace Supplypods",onClick:function(){return c("styleBluespace")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Syndicate",selected:4===i.styleChoice,tooltip:"A menacing black and blood-red. Great for sending meme-ops\nin style!",onClick:function(){return c("styleSyndie")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Deathsquad",selected:5===i.styleChoice,tooltip:"A menacing black and dark blue. Great for sending deathsquads\nin style!",onClick:function(){return c("styleBlue")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Cult Pod",selected:6===i.styleChoice,tooltip:"A blood and rune covered cult pod!",onClick:function(){return c("styleCult")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Missile",selected:7===i.styleChoice,tooltip:"A large missile. Combos well with a missile mode, so the\nmissile doesnt stick around after landing.",onClick:function(){return c("styleMissile")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Syndicate Missile",selected:8===i.styleChoice,tooltip:"A large blood-red missile. Combos well with missile mode,\nso the missile doesnt stick around after landing.",onClick:function(){return c("styleSMissile")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Supply Crate",selected:9===i.styleChoice,tooltip:"A large, dark-green military supply crate.",onClick:function(){return c("styleBox")}}),(0,o.createComponentVNode)(2,a.Button,{content:"HONK",selected:10===i.styleChoice,tooltip:"A colorful, clown inspired look.",onClick:function(){return c("styleHONK")}}),(0,o.createComponentVNode)(2,a.Button,{content:"~Fruit",selected:11===i.styleChoice,tooltip:"For when an orange is angry",onClick:function(){return c("styleFruit")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Invisible",selected:12===i.styleChoice,tooltip:'Makes the supplypod invisible! Useful for when you want to\nuse this feature with a gateway or something. Combos well\nwith the "Stealth" and "Quiet Landing" effects.',onClick:function(){return c("styleInvisible")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Show Contents (See Through Pod)",selected:14===i.styleChoice,tooltip:"By selecting this, the pod will instead look like whatevers\ninside it (as if it were the contents falling by themselves,\nwithout a pod). Useful for launching mechs at the station\nand standing tall as they soar in from the heavens.",onClick:function(){return c("styleSeeThrough")}})]})]})}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:i.numObjects+" turfs in "+i.bay,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"undo Pod Bay",tooltip:"Manually undoes the possible things to launch in the\npod bay.",onClick:function(){return c("undo")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Enter Launch Mode",selected:i.giveLauncher,tooltip:"THE CODEX ASTARTES CALLS THIS MANEUVER: STEEL RAIN",onClick:function(){return c("giveLauncher")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Clear Selected Bay",color:"bad",tooltip:"This will delete all objs and mobs from the selected bay.",tooltipPosition:"left",onClick:function(){return c("clearBay")}})],4)})})})],4)};t.CentcomPodLauncherContent=i},8663:function(e,t,n){"use strict";t.__esModule=!0,t.ChemAcclimator=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.ChemAcclimator=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:320,height:271,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Acclimator",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Temperature",children:[l.chem_temp," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Temperature",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:l.target_temperature,unit:"K",width:"59px",minValue:0,maxValue:1e3,step:5,stepPixelSize:2,onChange:function(e,t){return i("set_target_temperature",{temperature:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Acceptable Temp. Difference",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:l.allowed_temperature_difference,unit:"K",width:"59px",minValue:1,maxValue:l.target_temperature,stepPixelSize:2,onChange:function(e,t){i("set_allowed_temperature_difference",{temperature:t})}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:l.enabled?"On":"Off",selected:l.enabled,onClick:function(){return i("toggle_power")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Volume",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:l.max_volume,unit:"u",width:"50px",minValue:l.reagent_volume,maxValue:200,step:2,stepPixelSize:2,onChange:function(e,t){return i("change_volume",{volume:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Operation",children:l.acclimate_state}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current State",children:l.emptying?"Emptying":"Filling"})]})})]})})}},76900:function(e,t,n){"use strict";t.__esModule=!0,t.ChemDebugSynthesizer=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.ChemDebugSynthesizer=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.amount,u=l.beakerCurrentVolume,s=l.beakerMaxVolume,m=l.isBeakerLoaded,p=l.beakerContents,C=void 0===p?[]:p;return(0,o.createComponentVNode)(2,c.Window,{width:390,height:330,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:"Recipient",buttons:m?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return i("ejectBeaker")}}),(0,o.createComponentVNode)(2,a.NumberInput,{value:d,unit:"u",minValue:1,maxValue:s,step:1,stepPixelSize:2,onChange:function(e,t){return i("amount",{amount:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Input",onClick:function(){return i("input")}})],4):(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Create Beaker",onClick:function(){return i("makecup")}}),children:m?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u})," / "+s+" u"]}),C.length>0?(0,o.createComponentVNode)(2,a.LabeledList,{children:C.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:[e.volume," u"]},e.name)}))}):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Recipient Empty"})],0):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No Recipient"})})})})}},22223:function(e,t,n){"use strict";t.__esModule=!0,t.ChemDispenser=void 0;var o=n(39812),r=n(41860),a=n(2497),c=n(71494),i=n(74814),l=n(85952);t.ChemDispenser=function(e,t){var n=(0,c.useBackend)(t),d=n.act,u=n.data,s=!!u.recordingRecipe,m=Object.keys(u.recipes).map((function(e){return{name:e,contents:u.recipes[e]}})),p=u.beakerTransferAmounts||[],C=s&&Object.keys(u.recordingRecipe).map((function(e){return{id:e,name:(0,a.toTitleCase)(e.replace(/_/," ")),volume:u.recordingRecipe[e]}}))||u.beakerContents||[];return(0,o.createComponentVNode)(2,l.Window,{width:565,height:620,resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,i.Section,{title:"Status",buttons:s&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,mx:1,color:"red",children:[(0,o.createComponentVNode)(2,i.Icon,{name:"circle",mr:1}),"Recording"]}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Energy",children:(0,o.createComponentVNode)(2,i.ProgressBar,{value:u.energy/u.maxEnergy,children:(0,r.toFixed)(u.energy)+" units"})})})}),(0,o.createComponentVNode)(2,i.Section,{title:"Recipes",buttons:(0,o.createFragment)([!s&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,mx:1,children:(0,o.createComponentVNode)(2,i.Button,{color:"transparent",content:"Clear recipes",onClick:function(){return d("clear_recipes")}})}),!s&&(0,o.createComponentVNode)(2,i.Button,{icon:"circle",disabled:!u.isBeakerLoaded,content:"Record",onClick:function(){return d("record_recipe")}}),s&&(0,o.createComponentVNode)(2,i.Button,{icon:"ban",color:"transparent",content:"Discard",onClick:function(){return d("cancel_recording")}}),s&&(0,o.createComponentVNode)(2,i.Button,{icon:"save",color:"green",content:"Save",onClick:function(){return d("save_recording")}})],0),children:(0,o.createComponentVNode)(2,i.Box,{mr:-1,children:[m.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"tint",width:"129.5px",lineHeight:1.75,content:e.name,onClick:function(){return d("dispense_recipe",{recipe:e.name})}},e.name)})),0===m.length&&(0,o.createComponentVNode)(2,i.Box,{color:"light-gray",children:"No recipes."})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Dispense",buttons:p.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"plus",selected:e===u.amount,content:e,onClick:function(){return d("amount",{target:e})}},e)})),children:(0,o.createComponentVNode)(2,i.Box,{mr:-1,children:u.chemicals.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"tint",width:"129.5px",lineHeight:1.75,content:e.title,onClick:function(){return d("dispense",{reagent:e.id})}},e.id)}))})}),(0,o.createComponentVNode)(2,i.Section,{title:"Beaker",buttons:p.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"minus",disabled:s,content:e,onClick:function(){return d("remove",{amount:e})}},e)})),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Beaker",buttons:!!u.isBeakerLoaded&&(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",disabled:!u.isBeakerLoaded,onClick:function(){return d("eject")}}),children:(s?"Virtual beaker":u.isBeakerLoaded&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.AnimatedNumber,{initial:0,value:u.beakerCurrentVolume}),(0,o.createTextVNode)("/"),u.beakerMaxVolume,(0,o.createTextVNode)(" units")],0))||"No beaker"}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Contents",children:[(0,o.createComponentVNode)(2,i.Box,{color:"label",children:u.isBeakerLoaded||s?0===C.length&&"Nothing":"N/A"}),C.map((function(e){return(0,o.createComponentVNode)(2,i.Box,{color:"label",children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{initial:0,value:e.volume})," ","units of ",e.name]},e.name)}))]})]})})]})})}},16610:function(e,t,n){"use strict";t.__esModule=!0,t.ChemFilter=t.ChemFilterPane=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=function(e,t){var n=(0,r.useBackend)(t).act,c=e.title,i=e.list,l=e.reagentName,d=e.onReagentInput,u=c.toLowerCase();return(0,o.createComponentVNode)(2,a.Section,{title:c,minHeight:"240px",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Input,{placeholder:"Reagent",width:"140px",onInput:function(e,t){return d(t)}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",onClick:function(){return n("add",{which:u,name:l})}})],4),children:i.map((function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"minus",content:e,onClick:function(){return n("remove",{which:u,reagent:e})}})],4,e)}))})};t.ChemFilterPane=i;t.ChemFilter=function(e,t){var n=(0,r.useBackend)(t),l=(n.act,n.data),d=l.left,u=void 0===d?[]:d,s=l.right,m=void 0===s?[]:s,p=(0,r.useLocalState)(t,"leftName",""),C=p[0],h=p[1],N=(0,r.useLocalState)(t,"rightName",""),V=N[0],b=N[1];return(0,o.createComponentVNode)(2,c.Window,{width:500,height:300,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,i,{title:"Left",list:u,reagentName:C,onReagentInput:function(e){return h(e)}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,i,{title:"Right",list:m,reagentName:V,onReagentInput:function(e){return b(e)}})})]})})})}},96479:function(e,t,n){"use strict";t.__esModule=!0,t.ChemHeater=void 0;var o=n(39812),r=n(41860),a=n(71494),c=n(74814),i=n(85952),l=n(48229);t.ChemHeater=function(e,t){var n=(0,a.useBackend)(t),d=n.act,u=n.data,s=u.targetTemp,m=u.isActive,p=u.isBeakerLoaded,C=u.currentTemp,h=u.beakerCurrentVolume,N=u.beakerMaxVolume,V=u.beakerContents,b=void 0===V?[]:V;u.currentpH;return(0,o.createComponentVNode)(2,i.Window,{width:300,height:320,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{title:"Thermostat",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:m?"power-off":"times",selected:m,content:m?"On":"Off",onClick:function(){return d("power")}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Target",children:(0,o.createComponentVNode)(2,c.NumberInput,{width:"65px",unit:"K",step:10,stepPixelSize:3,value:(0,r.round)(s),minValue:0,maxValue:1e3,onDrag:function(e,t){return d("temperature",{target:t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Reading",children:(0,o.createComponentVNode)(2,c.Box,{width:"60px",textAlign:"right",children:p&&(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:C,format:function(e){return(0,r.toFixed)(e)+" K"}})||"\u2014"})})]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Beaker",buttons:!!p&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"label",mr:2,children:[h," / ",N," units,",u.currentpH," pH"]}),(0,o.createComponentVNode)(2,c.Button,{icon:"eject",content:"Eject",onClick:function(){return d("eject")}})],4),children:(0,o.createComponentVNode)(2,l.BeakerContents,{beakerLoaded:p,beakerContents:b})})]})})}},34859:function(e,t,n){"use strict";t.__esModule=!0,t.ChemMaster=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.ChemMaster=function(e,t){var n=(0,r.useBackend)(t).data.screen;return(0,o.createComponentVNode)(2,c.Window,{width:465,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:"analyze"===n&&(0,o.createComponentVNode)(2,m)||(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,u=i.screen,p=i.beakerContents,C=void 0===p?[]:p,h=i.bufferContents,N=void 0===h?[]:h,V=i.beakerCurrentVolume,b=i.beakerMaxVolume,f=i.isBeakerLoaded,g=i.isPillBottleLoaded,v=i.pillBottleCurrentAmount,k=i.pillBottleMaxAmount;return"analyze"===u?(0,o.createComponentVNode)(2,m):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Beaker",buttons:!!i.isBeakerLoaded&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:2,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:V,initial:0})," / "+b+" units"]}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return c("eject")}})],4),children:[!f&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"3px",mb:"5px",children:"No beaker loaded."}),!!f&&0===C.length&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"3px",mb:"5px",children:"Beaker is empty."}),(0,o.createComponentVNode)(2,l,{children:C.map((function(e){return(0,o.createComponentVNode)(2,d,{chemical:e,transferTo:"buffer"},e.id)}))})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Buffer",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:1,children:"Mode:"}),(0,o.createComponentVNode)(2,a.Button,{color:i.mode?"good":"bad",icon:i.mode?"exchange-alt":"times",content:i.mode?"Transfer":"Destroy",onClick:function(){return c("toggleMode")}})],4),children:[0===N.length&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"3px",mb:"5px",children:"Buffer is empty."}),(0,o.createComponentVNode)(2,l,{children:N.map((function(e){return(0,o.createComponentVNode)(2,d,{chemical:e,transferTo:"beaker"},e.id)}))})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Packaging",children:(0,o.createComponentVNode)(2,s)}),!!g&&(0,o.createComponentVNode)(2,a.Section,{title:"Pill Bottle",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:2,children:[v," / ",k," pills"]}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return c("ejectPillBottle")}})],4)})],0)},l=a.Table,d=function(e,t){var n=(0,r.useBackend)(t).act,c=e.chemical,i=e.transferTo;return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.volume,initial:0})," units of "+c.name]}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,a.Button,{content:"1",onClick:function(){return n("transfer",{id:c.id,amount:1,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{content:"5",onClick:function(){return n("transfer",{id:c.id,amount:5,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{content:"10",onClick:function(){return n("transfer",{id:c.id,amount:10,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{content:"All",onClick:function(){return n("transfer",{id:c.id,amount:1e3,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"ellipsis-h",title:"Custom amount",onClick:function(){return n("transfer",{id:c.id,amount:-1,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"question",title:"Analyze",onClick:function(){return n("analyze",{id:c.id})}})]})]},c.id)},u=function(e){var t=e.label,n=e.amountUnit,r=e.amount,c=e.onChangeAmount,i=e.onCreate,l=e.sideNote;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:t,children:[(0,o.createComponentVNode)(2,a.NumberInput,{width:"84px",unit:n,step:1,stepPixelSize:15,value:r,minValue:1,maxValue:10,onChange:c}),(0,o.createComponentVNode)(2,a.Button,{ml:1,content:"Create",onClick:i}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,ml:1,color:"label",children:l})]})},s=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=(0,r.useSharedState)(t,"pillAmount",1),d=l[0],s=l[1],m=(0,r.useSharedState)(t,"patchAmount",1),p=m[0],C=m[1],h=(0,r.useSharedState)(t,"bottleAmount",1),N=h[0],V=h[1],b=(0,r.useSharedState)(t,"packAmount",1),f=b[0],g=b[1],v=(0,r.useSharedState)(t,"setstimpakAmount",1),k=v[0],x=v[1],B=(0,r.useSharedState)(t,"setsuperstimpakAmount",1),_=B[0],w=B[1],L=(0,r.useSharedState)(t,"setPowderbagAmount",1),y=L[0],S=L[1],I=(0,r.useSharedState)(t,"setprimitiveBottleAmount",1),T=I[0],A=I[1],P=i.condi,R=i.advanced,M=i.primitive,F=i.chosenPillStyle,D=i.pillStyles,j=void 0===D?[]:D;return(0,o.createComponentVNode)(2,a.LabeledList,{children:[!P&&!M&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill type",children:j.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{width:"30px",selected:e.id===F,textAlign:"center",color:"transparent",onClick:function(){return c("pillStyle",{id:e.id})},children:(0,o.createComponentVNode)(2,a.Box,{mx:-1,className:e.className})},e.id)}))}),!P&&!M&&(0,o.createComponentVNode)(2,u,{label:"Pills",amount:d,amountUnit:"pills",sideNote:"max 50u",onChangeAmount:function(e,t){return s(t)},onCreate:function(){return c("create",{type:"pill",amount:d,volume:"auto"})}}),!P&&!!R&&!M&&(0,o.createComponentVNode)(2,u,{label:"Patches",amount:p,amountUnit:"patches",sideNote:"max 40u",onChangeAmount:function(e,t){return C(t)},onCreate:function(){return c("create",{type:"patch",amount:p,volume:"auto"})}}),!P&&!M&&(0,o.createComponentVNode)(2,u,{label:"Bottles",amount:N,amountUnit:"bottles",sideNote:"max 30u",onChangeAmount:function(e,t){return V(t)},onCreate:function(){return c("create",{type:"bottle",amount:N,volume:"auto"})}}),!P&&!M&&(0,o.createComponentVNode)(2,u,{label:"Stimpaks",amount:k,amountUnit:"stimpaks",sideNote:"max 10u",onChangeAmount:function(e,t){return x(t)},onCreate:function(){return c("create",{type:"stimPak",amount:k,volume:"auto"})}}),!P&&!!R&&!M&&(0,o.createComponentVNode)(2,u,{label:"Super Stimpaks",amount:_,amountUnit:"super stimpaks",sideNote:"max 20u",onChangeAmount:function(e,t){return w(t)},onCreate:function(){return c("create",{type:"superStimpak",amount:_,volume:"auto"})}}),!!P&&(0,o.createComponentVNode)(2,u,{label:"Packs",amount:f,amountUnit:"packs",sideNote:"max 10u",onChangeAmount:function(e,t){return g(t)},onCreate:function(){return c("create",{type:"condimentPack",amount:f,volume:"auto"})}}),!!P&&(0,o.createComponentVNode)(2,u,{label:"Bottles",amount:N,amountUnit:"bottles",sideNote:"max 50u",onChangeAmount:function(e,t){return V(t)},onCreate:function(){return c("create",{type:"condimentBottle",amount:N,volume:"auto"})}}),!!M&&(0,o.createComponentVNode)(2,u,{label:"Powder Bag",amount:p,amountUnit:"powderbags",sideNote:"max 40u",onChangeAmount:function(e,t){return S(t)},onCreate:function(){return c("create",{type:"bag",amount:y,volume:"auto"})}}),!!M&&(0,o.createComponentVNode)(2,u,{label:"Primitive Bottles",amount:N,amountUnit:"bottles",sideNote:"max 60u",onChangeAmount:function(e,t){return A(t)},onCreate:function(){return c("create",{type:"bottle_primitive",amount:T,volume:"auto"})}})]})},m=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=e.fermianalyze,d=i.analyzeVars;return(0,o.createComponentVNode)(2,a.Section,{title:"Analysis Results",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"Back",onClick:function(){return c("goScreen",{screen:"home"})}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:d.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",children:d.state}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Color",children:[(0,o.createComponentVNode)(2,a.ColorBox,{color:d.color,mr:1}),d.color]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:d.description}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Metabolization Rate",children:[d.metaRate," u/minute"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Overdose Threshold",children:d.overD}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Addiction Threshold",children:d.addicD}),!!l&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Purity",children:d.purityF}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Inverse Ratio",children:d.inverseRatioF}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Purity E",children:d.purityE}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Lower Optimal Temperature",children:d.minTemp}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Upper Optimal Temperature",children:d.maxTemp}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Explosive Temperature",children:d.eTemp}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"pH Peak",children:d.pHpeak})],4)]})})}},56320:function(e,t,n){"use strict";t.__esModule=!0,t.ChemPress=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.ChemPress=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.current_volume,u=l.product_name,s=l.pill_style,m=l.pill_styles,p=void 0===m?[]:m,C=l.product,h=l.min_volume,N=l.max_volume;return(0,o.createComponentVNode)(2,c.Window,{width:300,height:227,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Product",children:[(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:"Pills",checked:"pill"===C,onClick:function(){return i("change_product",{product:"pill"})}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:"Patches",checked:"patch"===C,onClick:function(){return i("change_product",{product:"patch"})}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:"Bottles",checked:"bottle"===C,onClick:function(){return i("change_product",{product:"bottle"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Volume",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:d,unit:"u",width:"43px",minValue:h,maxValue:N,step:1,stepPixelSize:2,onChange:function(e,t){return i("change_current_volume",{volume:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:[(0,o.createComponentVNode)(2,a.Input,{value:u,placeholder:u,onChange:function(e,t){return i("change_product_name",{name:t})}}),(0,o.createComponentVNode)(2,a.Box,{as:"span",children:C})]}),"pill"===C&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Style",children:p.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{width:"30px",selected:e.id===s,textAlign:"center",color:"transparent",onClick:function(){return i("change_pill_style",{id:e.id})},children:(0,o.createComponentVNode)(2,a.Box,{mx:-1,className:e.class_name})},e.id)}))})]})})})})}},52592:function(e,t,n){"use strict";t.__esModule=!0,t.ChemReactionChamber=void 0;var o=n(39812),r=n(64499),a=n(34380),c=n(71494),i=n(74814),l=n(85952);t.ChemReactionChamber=function(e,t){var n=(0,c.useBackend)(t),d=n.act,u=n.data,s=(0,c.useLocalState)(t,"reagentName",""),m=s[0],p=s[1],C=(0,c.useLocalState)(t,"reagentQuantity",1),h=C[0],N=C[1],V=u.emptying,b=u.reagents||[];return(0,o.createComponentVNode)(2,l.Window,{width:250,height:225,resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i.Section,{title:"Reagents",buttons:(0,o.createComponentVNode)(2,i.Box,{inline:!0,bold:!0,color:V?"bad":"good",children:V?"Emptying":"Filling"}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createVNode)(1,"tr","LabledList__row",[(0,o.createVNode)(1,"td","LabeledList__cell",(0,o.createComponentVNode)(2,i.Input,{fluid:!0,value:"",placeholder:"Reagent Name",onInput:function(e,t){return p(t)}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td",(0,a.classes)(["LabeledList__buttons","LabeledList__cell"]),[(0,o.createComponentVNode)(2,i.NumberInput,{value:h,minValue:1,maxValue:100,step:1,stepPixelSize:3,width:"39px",onDrag:function(e,t){return N(t)}}),(0,o.createComponentVNode)(2,i.Box,{inline:!0,mr:1}),(0,o.createComponentVNode)(2,i.Button,{icon:"plus",onClick:function(){return d("add",{chem:m,amount:h})}})],4)],4),(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:t,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"minus",color:"bad",onClick:function(){return d("remove",{chem:t})}}),children:e},t)}))(b)]})})})})}},68502:function(e,t,n){"use strict";t.__esModule=!0,t.ChemSplitter=void 0;var o=n(39812),r=n(41860),a=n(71494),c=n(74814),i=n(85952);t.ChemSplitter=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.straight,s=d.side,m=d.max_transfer;return(0,o.createComponentVNode)(2,i.Window,{width:220,height:105,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Straight",children:(0,o.createComponentVNode)(2,c.NumberInput,{value:u,unit:"u",width:"55px",minValue:1,maxValue:m,format:function(e){return(0,r.toFixed)(e,2)},step:.05,stepPixelSize:4,onChange:function(e,t){return l("set_amount",{target:"straight",amount:t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Side",children:(0,o.createComponentVNode)(2,c.NumberInput,{value:s,unit:"u",width:"55px",minValue:1,maxValue:m,format:function(e){return(0,r.toFixed)(e,2)},step:.05,stepPixelSize:4,onChange:function(e,t){return l("set_amount",{target:"side",amount:t})}})})]})})})})}},77508:function(e,t,n){"use strict";t.__esModule=!0,t.ChemSynthesizer=void 0;var o=n(39812),r=n(41860),a=n(71494),c=n(74814),i=n(85952);t.ChemSynthesizer=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.amount,s=d.current_reagent,m=d.chemicals,p=void 0===m?[]:m,C=d.possible_amounts,h=void 0===C?[]:C;return(0,o.createComponentVNode)(2,i.Window,{width:300,height:375,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,c.Section,{children:[(0,o.createComponentVNode)(2,c.Box,{children:h.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:"plus",content:(0,r.toFixed)(e,0),selected:e===u,onClick:function(){return l("amount",{target:e})}},(0,r.toFixed)(e,0))}))}),(0,o.createComponentVNode)(2,c.Box,{mt:1,children:p.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:"tint",content:e.title,width:"129px",selected:e.id===s,onClick:function(){return l("select",{reagent:e.id})}},e.id)}))})]})})})}},30733:function(e,t,n){"use strict";t.__esModule=!0,t.CivCargoHoldTerminal=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.CivCargoHoldTerminal=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.pad,s=d.sending,m=d.status_report,p=d.id_inserted,C=d.id_bounty_info;d.id_bounty_value,d.id_bounty_num;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,width:500,height:375,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.NoticeBox,{color:p?"blue":"default",children:p?"Welcome valued employee.":"To begin, insert your ID into the console."}),(0,o.createComponentVNode)(2,a.Section,{title:"Cargo Pad",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:u?"good":"bad",children:u?"Online":"Not Found"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cargo Report",children:m})]})}),(0,o.createComponentVNode)(2,i)]}),(0,o.createComponentVNode)(2,a.Flex.Item,{m:1,children:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"sync",content:"Check Contents",disabled:!u||!p,onClick:function(){return l("recalc")}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:s?"times":"arrow-up",content:s?"Stop Sending":"Send Goods",selected:s,disabled:!u||!p,onClick:function(){return l(s?"stop":"send")}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:C?"recycle":"pen",color:C?"green":"default",content:C?"Replace Bounty":"New Bounty",disabled:!p,onClick:function(){return l("bounty")}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"download",content:"Eject",disabled:!p,onClick:function(){return l("eject")}})],4)})]})})})};var i=function(e,t){var n=(0,r.useBackend)(t).data,c=n.id_bounty_info,i=n.id_bounty_value,l=n.id_bounty_num;return(0,o.createComponentVNode)(2,a.Section,{title:"Bounty Info",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:c||"N/A, please add a new bounty."}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Quantity",children:c?l:"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Value",children:c?i:"N/A"})]})})}},14319:function(e,t,n){"use strict";t.__esModule=!0,t.ClockworkSlab=void 0;for(var o=n(39812),r=n(71494),a=n(64499),c=n(74814),i=n(85952),l="",d=0;d=w,tooltip:e.tip,tooltipPosition:"left",onClick:function(){return d("recite",{script:e.type})},children:"Recite "+e.required})}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,disabled:!e.quickbind,onClick:function(){return d("bind",{script:e.type})},children:["content=",e.bound?"Unbind "+e.bound:"Quickbind"]})})]},e.name)}))})]})]})})})}},28408:function(e,t,n){"use strict";t.__esModule=!0,t.CodexGigas=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=["Dark","Hellish","Fallen","Fiery","Sinful","Blood","Fluffy"],l=["Lord","Prelate","Count","Viscount","Vizier","Elder","Adept"],d=["hal","ve","odr","neit","ci","quon","mya","folth","wren","geyr","hil","niet","twou","phi","coa"],u=["the Red","the Soulless","the Master","the Lord of all things","Jr."];t.CodexGigas=function(e,t){var n=(0,r.useBackend)(t),s=n.act,m=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:450,height:450,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:[m.name,(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Prefix",children:i.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:1!==m.currentSection,onClick:function(){return s(e+" ")}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Title",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:m.currentSection>2,onClick:function(){return s(e+" ")}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:m.currentSection>4,onClick:function(){return s(e)}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Suffix",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:4!==m.currentSection,onClick:function(){return s(" "+e)}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Submit",children:(0,o.createComponentVNode)(2,a.Button,{content:"Search",disabled:m.currentSection<4,onClick:function(){return s("search")}})})]})]})})})}},67649:function(e,t,n){"use strict";t.__esModule=!0,t.ColormateMatrix=t.ColormateNoMatrix=t.Colormate=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.Colormate=function(e,t){var n=(0,r.useBackend)(t),d=n.act,u=n.data,s=u.matrixactive,m=u.temp,p=u.item||[];return(0,o.createComponentVNode)(2,c.Window,{width:"980",height:"720",resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{overflow:"auto",children:[m?(0,o.createComponentVNode)(2,a.NoticeBox,{children:m}):null,Object.keys(p).length?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Flex,{fill:!0,children:[(0,o.createComponentVNode)(2,a.Section,{width:"50%",height:"20%",children:[(0,o.createVNode)(1,"center",null,"Item:",16),(0,o.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64, "+p.sprite,width:"100%",height:"100%",style:{"-ms-interpolation-mode":"nearest-neighbor"}})]}),(0,o.createComponentVNode)(2,a.Section,{width:"50%",height:"20%",children:[(0,o.createVNode)(1,"center",null,"Preview:",16),(0,o.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64, "+p.preview,width:"100%",height:"100%",style:{"-ms-interpolation-mode":"nearest-neighbor"}})]})]}),(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Tabs,{fluid:!0,children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:!s,onClick:function(){return d("switch_modes",{mode:"0"})},children:"Regular coloring"},"0"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:s,onClick:function(){return d("switch_modes",{mode:"1"})},children:"Matrixed coloring"},"1")]}),s?(0,o.createFragment)([(0,o.createVNode)(1,"center",null,[(0,o.createTextVNode)("Coloring: "),p.name],0),(0,o.createComponentVNode)(2,l)],4):(0,o.createFragment)([(0,o.createVNode)(1,"center",null,[(0,o.createTextVNode)("Coloring: "),p.name],0),(0,o.createComponentVNode)(2,i)],4)]})],4):(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createVNode)(1,"center",null,"No item inserted.",16)})]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act;n.data;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Flex,{grow:1,fill:!0,children:[(0,o.createComponentVNode)(2,a.Flex.Item,{width:"33%",children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Paint",icon:"fill",onClick:function(){return c("paint")}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Clear",icon:"eraser",onClick:function(){return c("clear")}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Eject",icon:"eject",onClick:function(){return c("drop")}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{width:"66%",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,height:"100%",content:"Select new color",icon:"paint-brush",onClick:function(){return c("choose_color")}})})]})})};t.ColormateNoMatrix=i;var l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.matrixcolors||[];return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{width:"33%",children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Paint",icon:"fill",onClick:function(){return c("matrix_paint")}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Clear",icon:"eraser",onClick:function(){return c("clear")}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Eject",icon:"eject",onClick:function(){return c("drop")}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:["RR: ",(0,o.createComponentVNode)(2,a.NumberInput,{width:"50px",minValue:-1e3,maxValue:1e3,value:i.rr,onChange:function(e,t){return c("set_matrix_color",{color:1,value:t})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:["GR: ",(0,o.createComponentVNode)(2,a.NumberInput,{width:"50px",minValue:-1e3,maxValue:1e3,value:i.gr,onChange:function(e,t){return c("set_matrix_color",{color:4,value:t})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:["BR: ",(0,o.createComponentVNode)(2,a.NumberInput,{width:"50px",minValue:-1e3,maxValue:1e3,value:i.br,onChange:function(e,t){return c("set_matrix_color",{color:7,value:t})}})]})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:["RG: ",(0,o.createComponentVNode)(2,a.NumberInput,{width:"50px",minValue:-1e3,maxValue:1e3,value:i.rg,onChange:function(e,t){return c("set_matrix_color",{color:2,value:t})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:["GG: ",(0,o.createComponentVNode)(2,a.NumberInput,{width:"50px",minValue:-1e3,maxValue:1e3,value:i.gg,onChange:function(e,t){return c("set_matrix_color",{color:5,value:t})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:["BG: ",(0,o.createComponentVNode)(2,a.NumberInput,{width:"50px",minValue:-1e3,maxValue:1e3,value:i.bg,onChange:function(e,t){return c("set_matrix_color",{color:8,value:t})}})]})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:["RB: ",(0,o.createComponentVNode)(2,a.NumberInput,{width:"50px",minValue:-1e3,maxValue:1e3,value:i.rb,onChange:function(e,t){return c("set_matrix_color",{color:3,value:t})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:["GB: ",(0,o.createComponentVNode)(2,a.NumberInput,{width:"50px",minValue:-1e3,maxValue:1e3,value:i.gb,onChange:function(e,t){return c("set_matrix_color",{color:6,value:t})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:["BB: ",(0,o.createComponentVNode)(2,a.NumberInput,{width:"50px",minValue:-1e3,maxValue:1e3,value:i.bb,onChange:function(e,t){return c("set_matrix_color",{color:9,value:t})}})]})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:["CR: ",(0,o.createComponentVNode)(2,a.NumberInput,{width:"50px",minValue:-1e3,maxValue:1e3,value:i.cr,onChange:function(e,t){return c("set_matrix_color",{color:10,value:t})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:["CG: ",(0,o.createComponentVNode)(2,a.NumberInput,{width:"50px",minValue:-1e3,maxValue:1e3,value:i.cg,onChange:function(e,t){return c("set_matrix_color",{color:11,value:t})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:["CB: ",(0,o.createComponentVNode)(2,a.NumberInput,{width:"50px",minValue:-1e3,maxValue:1e3,value:i.cb,onChange:function(e,t){return c("set_matrix_color",{color:12,value:t})}})]})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{width:"33%",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"question-circle",color:"blue"})," RG means red will become this much green.",(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Icon,{name:"question-circle",color:"blue"})," CR means that red will have this much constrast applied to it."]})]})})};t.ColormateMatrix=l},2174:function(e,t,n){"use strict";t.__esModule=!0,t.ComputerFabricator=void 0;var o=n(39812),r=(n(2497),n(71494)),a=n(74814),c=n(85952);t.ComputerFabricator=function(e,t){var n=(0,r.useBackend)(t),s=n.act,m=n.data;return(0,o.createComponentVNode)(2,c.Window,{title:"Personal Computer Vendor",width:500,height:400,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{italic:!0,fontSize:"20px",children:"Your perfect device, only three steps away..."}),0!==m.state&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mb:1,icon:"circle",content:"Clear Order",onClick:function(){return s("clean_order")}}),0===m.state&&(0,o.createComponentVNode)(2,i),1===m.state&&(0,o.createComponentVNode)(2,l),2===m.state&&(0,o.createComponentVNode)(2,d),3===m.state&&(0,o.createComponentVNode)(2,u)]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act;n.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Step 1",minHeight:"306px",children:[(0,o.createComponentVNode)(2,a.Box,{mt:5,bold:!0,textAlign:"center",fontSize:"40px",children:"Choose your Device"}),(0,o.createComponentVNode)(2,a.Box,{mt:3,children:(0,o.createComponentVNode)(2,a.Grid,{width:"100%",children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"laptop",content:"Laptop",textAlign:"center",fontSize:"30px",lineHeight:2,onClick:function(){return c("pick_device",{pick:"1"})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"tablet-alt",content:"Tablet",textAlign:"center",fontSize:"30px",lineHeight:2,onClick:function(){return c("pick_device",{pick:"2"})}})})]})})]})},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Step 2: Customize your device",minHeight:"282px",buttons:(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"good",children:[i.totalprice," cr"]}),children:[(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Battery:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Allows your device to operate without external utility power\nsource. Advanced batteries increase battery life.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_battery,onClick:function(){return c("hw_battery",{battery:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Upgraded",selected:2===i.hw_battery,onClick:function(){return c("hw_battery",{battery:"2"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:3===i.hw_battery,onClick:function(){return c("hw_battery",{battery:"3"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Hard Drive:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Stores file on your device. Advanced drives can store more\nfiles, but use more power, shortening battery life.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_disk,onClick:function(){return c("hw_disk",{disk:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Upgraded",selected:2===i.hw_disk,onClick:function(){return c("hw_disk",{disk:"2"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:3===i.hw_disk,onClick:function(){return c("hw_disk",{disk:"3"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Network Card:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Allows your device to wirelessly connect to stationwide NTNet\nnetwork. Basic cards are limited to on-station use, while\nadvanced cards can operate anywhere near the station, which\nincludes asteroid outposts",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_netcard,onClick:function(){return c("hw_netcard",{netcard:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_netcard,onClick:function(){return c("hw_netcard",{netcard:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.hw_netcard,onClick:function(){return c("hw_netcard",{netcard:"2"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Nano Printer:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"A device that allows for various paperwork manipulations,\nsuch as, scanning of documents or printing new ones.\nThis device was certified EcoFriendlyPlus and is capable of\nrecycling existing paper for printing purposes.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_nanoprint,onClick:function(){return c("hw_nanoprint",{print:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_nanoprint,onClick:function(){return c("hw_nanoprint",{print:"1"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Secondary Card Reader:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Adds a secondary RFID card reader, for manipulating or\nreading from a second standard RFID card.\nPlease note that a primary card reader is necessary to\nallow the device to read your identification, but one\nis included in the base price.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_card,onClick:function(){return c("hw_card",{card:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_card,onClick:function(){return c("hw_card",{card:"1"})}})})]}),2!==i.devtype&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Processor Unit:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"A component critical for your device's functionality.\nIt allows you to run programs from your hard drive.\nAdvanced CPUs use more power, but allow you to run\nmore programs on background at once.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_cpu,onClick:function(){return c("hw_cpu",{cpu:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.hw_cpu,onClick:function(){return c("hw_cpu",{cpu:"2"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Tesla Relay:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"An advanced wireless power relay that allows your device\nto connect to nearby area power controller to provide\nalternative power source. This component is currently\nunavailable on tablet computers due to size restrictions.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_tesla,onClick:function(){return c("hw_tesla",{tesla:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_tesla,onClick:function(){return c("hw_tesla",{tesla:"1"})}})})]})],4)]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mt:3,content:"Confirm Order",color:"good",textAlign:"center",fontSize:"18px",lineHeight:2,onClick:function(){return c("confirm_order")}})]})},d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Step 3: Payment",minHeight:"282px",children:[(0,o.createComponentVNode)(2,a.Box,{italic:!0,textAlign:"center",fontSize:"20px",children:"Your device is ready for fabrication..."}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:2,textAlign:"center",fontSize:"16px",children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:"Please insert the required"})," ",(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"good",children:[i.totalprice," cr"]})]}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:1,textAlign:"center",fontSize:"18px",children:"Current:"}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:.5,textAlign:"center",fontSize:"18px",color:i.credits>=i.totalprice?"good":"bad",children:[i.credits," cr"]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Purchase",disabled:i.credits=10&&e<20?c.COLORS.department.security:e>=20&&e<30?c.COLORS.department.medbay:e>=30&&e<40?c.COLORS.department.science:e>=40&&e<50?c.COLORS.department.engineering:e>=50&&e<60?c.COLORS.department.cargo:e>=200&&e<230?c.COLORS.department.centcom:c.COLORS.department.other},u=function(e){var t=e.type,n=e.value;return(0,o.createComponentVNode)(2,a.Box,{inline:!0,width:2,color:c.COLORS.damageType[t],textAlign:"center",children:n})};t.CrewConsole=function(){return(0,o.createComponentVNode)(2,i.Window,{title:"Crew Monitor",width:800,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{minHeight:"540px",children:(0,o.createComponentVNode)(2,s)})})})};var s=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,s=i.sensors||[];return(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Name"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0,textAlign:"center",children:"Vitals"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Position"}),!!i.link_allowed&&(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0,children:"Tracking"})]}),s.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:(C=e.ijob,C%10==0),color:d(e.ijob),children:[e.name," (",e.assignment,")"]}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,o.createComponentVNode)(2,a.ColorBox,{color:(t=e.oxydam,n=e.toxdam,r=e.burndam,s=e.brutedam,m=t+n+r+s,p=Math.min(Math.max(Math.ceil(m/25),0),5),l[p])})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"center",children:null!==e.oxydam?(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:[(0,o.createComponentVNode)(2,u,{type:"oxy",value:e.oxydam}),"/",(0,o.createComponentVNode)(2,u,{type:"toxin",value:e.toxdam}),"/",(0,o.createComponentVNode)(2,u,{type:"burn",value:e.burndam}),"/",(0,o.createComponentVNode)(2,u,{type:"brute",value:e.brutedam})]}):e.life_status?"Alive":"Dead"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:null!==e.pos_x?e.area:"N/A"}),!!i.link_allowed&&(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,a.Button,{content:"Track",disabled:!e.can_track,onClick:function(){return c("select_person",{name:e.name})}})})]},e.name);var t,n,r,s,m,p,C}))]})}},99798:function(e,t,n){"use strict";t.__esModule=!0,t.Cryo=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(48229),i=n(85952),l=[{label:"Brute",type:"bruteLoss"},{label:"Respiratory",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Burn",type:"fireLoss"}];t.Cryo=function(){return(0,o.createComponentVNode)(2,i.Window,{width:400,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,d)})})};var d=function(e,t){var n=(0,r.useBackend)(t),i=n.act,d=n.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Occupant",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Occupant",children:d.occupant.name||"No Occupant"}),!!d.hasOccupant&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",color:d.occupant.statstate,children:d.occupant.stat}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",color:d.occupant.temperaturestatus,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d.occupant.bodyTemperature})," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.occupant.health/d.occupant.maxHealth,color:d.occupant.health>0?"good":"average",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d.occupant.health})})}),l.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.occupant[e.type]/100,children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d.occupant[e.type]})})},e.id)}))],0)]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cell",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:d.isOperating?"power-off":"times",disabled:d.isOpen,onClick:function(){return i("power")},color:d.isOperating&&"green",children:d.isOperating?"On":"Off"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d.cellTemperature})," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:[(0,o.createComponentVNode)(2,a.Button,{icon:d.isOpen?"unlock":"lock",onClick:function(){return i("door")},content:d.isOpen?"Open":"Closed"}),(0,o.createComponentVNode)(2,a.Button,{icon:d.autoEject?"sign-out-alt":"sign-in-alt",onClick:function(){return i("autoeject")},content:d.autoEject?"Auto":"Manual"})]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Beaker",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",disabled:!d.isBeakerLoaded,onClick:function(){return i("ejectbeaker")},content:"Eject"}),children:(0,o.createComponentVNode)(2,c.BeakerContents,{beakerLoaded:d.isBeakerLoaded,beakerContents:d.beakerContents})})],4)}},17785:function(e,t,n){"use strict";t.__esModule=!0,t.DecalPainter=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.DecalPainter=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.decal_list||[],u=l.color_list||[],s=l.dir_list||[];return(0,o.createComponentVNode)(2,c.Window,{width:500,height:400,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Decal Type",children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.name,selected:e.decal===l.decal_style,onClick:function(){return i("select decal",{decals:e.decal})}},e.decal)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Decal Color",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:"red"===e.colors?"Red":"white"===e.colors?"White":"Yellow",selected:e.colors===l.decal_color,onClick:function(){return i("select color",{colors:e.colors})}},e.colors)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Decal Direction",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:1===e.dirs?"North":2===e.dirs?"South":4===e.dirs?"East":"West",selected:e.dirs===l.decal_direction,onClick:function(){return i("selected direction",{dirs:e.dirs})}},e.dirs)}))})]})})}},95877:function(e,t,n){"use strict";t.__esModule=!0,t.DisposalUnit=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.DisposalUnit=function(e,t){var n,i,l=(0,r.useBackend)(t),d=l.act,u=l.data;return u.full_pressure?(n="good",i="Ready"):u.panel_open?(n="bad",i="Power Disabled"):u.pressure_charging?(n="average",i="Pressurizing"):(n="bad",i="Off"),(0,o.createComponentVNode)(2,c.Window,{width:300,height:180,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",color:n,children:i}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.per,color:"good"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Handle",children:(0,o.createComponentVNode)(2,a.Button,{icon:u.flush?"toggle-on":"toggle-off",disabled:u.isai||u.panel_open,content:u.flush?"Disengage":"Engage",onClick:function(){return d(u.flush?"handle-0":"handle-1")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Eject",children:(0,o.createComponentVNode)(2,a.Button,{icon:"sign-out-alt",disabled:u.isai,content:"Eject Contents",onClick:function(){return d("eject")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",disabled:u.panel_open,selected:u.pressure_charging,onClick:function(){return d(u.pressure_charging?"pump-0":"pump-1")}})})]})})})})}},43928:function(e,t,n){"use strict";t.__esModule=!0,t.DnaConsoleCommands=t.DnaConsole=void 0;var o=n(39812),r=n(64499),a=n(85531),c=n(34380),i=n(2497),l=n(5908),d=n(71494),u=n(74814),s=n(85952);var m=["A","T","C","G"],p={A:"green",T:"green",G:"blue",C:"blue",X:"grey"},C="storage",h="sequencer",N="enzymes",V="console",b="disk",f="injector",g="mutations",v="chromosomes",k="mutations",x="diskenzymes",B={1:"good",2:"bad",4:"average"},_=function(e,t){return e.Alias===t.Alias&&e.AppliedChromo===t.AppliedChromo};t.DnaConsole=function(e,t){var n=(0,d.useBackend)(t),r=n.data,a=(n.act,r.isPulsingRads),c=r.radPulseSeconds,i=r.view.consoleMode;return(0,o.createComponentVNode)(2,s.Window,{title:"DNA Console",width:539,height:710,resizable:!0,children:[!!a&&(0,o.createComponentVNode)(2,u.Dimmer,{fontSize:"14px",textAlign:"center",children:[(0,o.createComponentVNode)(2,u.Icon,{mr:1,name:"spinner",spin:!0}),"Radiation pulse in progress...",(0,o.createComponentVNode)(2,u.Box,{mt:1}),c,"s"]}),(0,o.createComponentVNode)(2,s.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,w),(0,o.createComponentVNode)(2,I),i===C&&(0,o.createComponentVNode)(2,A),i===h&&(0,o.createComponentVNode)(2,D),i===N&&(0,o.createComponentVNode)(2,O)]})]})};var w=function(e,t){return(0,o.createComponentVNode)(2,u.Section,{title:"DNA Scanner",buttons:(0,o.createComponentVNode)(2,L),children:(0,o.createComponentVNode)(2,S)})},L=function(e,t){var n=(0,d.useBackend)(t),r=n.data,a=n.act,c=r.hasDelayedAction,i=r.isPulsingRads,l=r.isScannerConnected,s=r.isScrambleReady,m=r.isViableSubject,p=r.scannerLocked,C=r.scannerOpen,h=r.scrambleSeconds;return l?(0,o.createFragment)([!!c&&(0,o.createComponentVNode)(2,u.Button,{content:"Cancel Delayed Action",onClick:function(){return a("cancel_delay")}}),!!m&&(0,o.createComponentVNode)(2,u.Button,{disabled:!s||i,onClick:function(){return a("scramble_dna")},children:["Scramble DNA",!s&&" ("+h+"s)"]}),(0,o.createComponentVNode)(2,u.Box,{inline:!0,mr:1}),(0,o.createComponentVNode)(2,u.Button,{icon:p?"lock":"lock-open",color:p&&"bad",disabled:C,content:p?"Locked":"Unlocked",onClick:function(){return a("toggle_lock")}}),(0,o.createComponentVNode)(2,u.Button,{disabled:p,content:C?"Close":"Open",onClick:function(){return a("toggle_door")}})],0):(0,o.createComponentVNode)(2,u.Button,{content:"Connect Scanner",onClick:function(){return a("connect_scanner")}})},y=function(e,t){var n=e.status;return 0===n?(0,o.createComponentVNode)(2,u.Box,{inline:!0,color:"good",children:"Conscious"}):2===n?(0,o.createComponentVNode)(2,u.Box,{inline:!0,color:"average",children:"Unconscious"}):1===n?(0,o.createComponentVNode)(2,u.Box,{inline:!0,color:"average",children:"Critical"}):3===n?(0,o.createComponentVNode)(2,u.Box,{inline:!0,color:"bad",children:"Dead"}):4===n?(0,o.createComponentVNode)(2,u.Box,{inline:!0,color:"bad",children:"Transforming"}):(0,o.createComponentVNode)(2,u.Box,{inline:!0,children:"Unknown"})},S=function(e,t){var n=(0,d.useBackend)(t),r=n.data,a=(n.act,r.subjectName),c=r.isScannerConnected,i=r.isViableSubject,l=r.subjectHealth,s=r.subjectRads,m=r.subjectStatus;return c?i?(0,o.createComponentVNode)(2,u.LabeledList,{children:[(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Status",children:[a,(0,o.createComponentVNode)(2,u.Icon,{mx:1,color:"label",name:"long-arrow-alt-right"}),(0,o.createComponentVNode)(2,y,{status:m})]}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,u.ProgressBar,{value:l,minValue:0,maxValue:100,ranges:{olive:[101,Infinity],good:[70,101],average:[30,70],bad:[-Infinity,30]},children:[l,"%"]})}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Radiation",children:(0,o.createComponentVNode)(2,u.ProgressBar,{value:s,minValue:0,maxValue:100,ranges:{bad:[71,Infinity],average:[30,71],good:[0,30],olive:[-Infinity,0]},children:[s,"%"]})})]}):(0,o.createComponentVNode)(2,u.Box,{color:"average",children:"No viable subject found in DNA Scanner."}):(0,o.createComponentVNode)(2,u.Box,{color:"bad",children:"DNA Scanner is not connected."})},I=function(e,t){var n=(0,d.useBackend)(t),r=n.data,a=n.act,c=r.hasDisk,i=r.isInjectorReady,l=r.injectorSeconds,s=r.view.consoleMode;return(0,o.createComponentVNode)(2,u.Section,{title:"DNA Console",buttons:!i&&(0,o.createComponentVNode)(2,u.Box,{lineHeight:"20px",color:"label",children:["Injector on cooldown (",l,"s)"]}),children:(0,o.createComponentVNode)(2,u.LabeledList,{children:[(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Mode",children:[(0,o.createComponentVNode)(2,u.Button,{content:"Storage",selected:s===C,onClick:function(){return a("set_view",{consoleMode:C})}}),(0,o.createComponentVNode)(2,u.Button,{content:"Sequencer",disabled:!r.isViableSubject,selected:s===h,onClick:function(){return a("set_view",{consoleMode:h})}}),(0,o.createComponentVNode)(2,u.Button,{content:"Enzymes",selected:s===N,onClick:function(){return a("set_view",{consoleMode:N})}})]}),!!c&&(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Disk",children:(0,o.createComponentVNode)(2,u.Button,{icon:"eject",content:"Eject",onClick:function(){a("eject_disk"),a("set_view",{storageMode:V})}})})]})})};t.DnaConsoleCommands=I;var T=function(e,t){var n=(0,d.useBackend)(t),r=n.data,a=n.act,c=r.hasDisk,i=r.view,l=i.storageMode,s=i.storageConsSubMode,m=i.storageDiskSubMode;return(0,o.createFragment)([l===V&&(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Button,{selected:s===g,content:"Mutations",onClick:function(){return a("set_view",{storageConsSubMode:g})}}),(0,o.createComponentVNode)(2,u.Button,{selected:s===v,content:"Chromosomes",onClick:function(){return a("set_view",{storageConsSubMode:v})}})],4),l===b&&(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Button,{selected:m===g,content:"Mutations",onClick:function(){return a("set_view",{storageDiskSubMode:g})}}),(0,o.createComponentVNode)(2,u.Button,{selected:m===x,content:"Enzymes",onClick:function(){return a("set_view",{storageDiskSubMode:x})}})],4),(0,o.createComponentVNode)(2,u.Box,{inline:!0,mr:1}),(0,o.createComponentVNode)(2,u.Button,{content:"Console",selected:l===V,onClick:function(){return a("set_view",{storageMode:V,storageConsSubMode:g})}}),(0,o.createComponentVNode)(2,u.Button,{content:"Disk",disabled:!c,selected:l===b,onClick:function(){return a("set_view",{storageMode:b,storageDiskSubMode:k})}}),(0,o.createComponentVNode)(2,u.Button,{content:"Adv. Injector",selected:l===f,onClick:function(){return a("set_view",{storageMode:f})}})],0)},A=function(e,t){var n=(0,d.useBackend)(t),r=n.data,a=n.act,c=r.view,i=c.storageMode,l=c.storageConsSubMode,s=c.storageDiskSubMode,m=r.diskMakeupBuffer,p=r.diskHasMakeup,C=r.storage[i];return(0,o.createComponentVNode)(2,u.Section,{title:"Storage",buttons:(0,o.createComponentVNode)(2,T),children:[i===V&&l===g&&(0,o.createComponentVNode)(2,P,{mutations:C}),i===V&&l===v&&(0,o.createComponentVNode)(2,R),i===b&&s===k&&(0,o.createComponentVNode)(2,P,{mutations:C}),i===b&&s===x&&(0,o.createFragment)([(0,o.createComponentVNode)(2,U,{makeup:m}),(0,o.createComponentVNode)(2,u.Button,{icon:"times",color:"red",disabled:!p,content:"Delete",onClick:function(){return a("del_makeup_disk")}})],4),i===f&&(0,o.createComponentVNode)(2,Y)]})},P=function(e,t){var n=e.customMode,r=void 0===n?"":n,a=(0,d.useBackend)(t),c=a.data,l=a.act,s=e.mutations||[],m=c.view.storageMode+r,p=c.view["storage"+m+"MutationRef"],C=s.find((function(e){return e.ByondRef===p}));return!C&&s.length>0&&(C=s[0],p=C.ByondRef),(0,o.createComponentVNode)(2,u.Flex,{children:[(0,o.createComponentVNode)(2,u.Flex.Item,{width:"140px",children:(0,o.createComponentVNode)(2,u.Section,{title:(0,i.capitalize)(c.view.storageMode)+" Storage",level:2,children:s.map((function(e){return(0,o.createComponentVNode)(2,u.Button,{fluid:!0,ellipsis:!0,color:"transparent",selected:e.ByondRef===p,content:e.Name,onClick:function(){var t;return l("set_view",((t={})["storage"+m+"MutationRef"]=e.ByondRef,t))}},e.ByondRef)}))})}),(0,o.createComponentVNode)(2,u.Flex.Item,{children:(0,o.createComponentVNode)(2,u.Divider,{vertical:!0})}),(0,o.createComponentVNode)(2,u.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,u.Section,{title:"Mutation Info",level:2,children:(0,o.createComponentVNode)(2,M,{mutation:C})})})]})},R=function(e,t){var n,a=(0,d.useBackend)(t),c=a.data,i=a.act,l=null!=(n=c.chromoStorage)?n:[],s=(0,r.uniqBy)((function(e){return e.Name}))(l),m=c.view.storageChromoName,p=l.find((function(e){return e.Name===m}));return(0,o.createComponentVNode)(2,u.Flex,{children:[(0,o.createComponentVNode)(2,u.Flex.Item,{width:"140px",children:(0,o.createComponentVNode)(2,u.Section,{title:"Console Storage",level:2,children:s.map((function(e){return(0,o.createComponentVNode)(2,u.Button,{fluid:!0,ellipsis:!0,color:"transparent",selected:e.Name===m,content:e.Name,onClick:function(){return i("set_view",{storageChromoName:e.Name})}},e.Index)}))})}),(0,o.createComponentVNode)(2,u.Flex.Item,{children:(0,o.createComponentVNode)(2,u.Divider,{vertical:!0})}),(0,o.createComponentVNode)(2,u.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,u.Section,{title:"Chromosome Info",level:2,children:!p&&(0,o.createComponentVNode)(2,u.Box,{color:"label",children:"Nothing to show."})||(0,o.createFragment)([(0,o.createComponentVNode)(2,u.LabeledList,{children:[(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Name",children:p.Name}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Description",children:p.Description}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Amount",children:l.filter((function(e){return e.Name===p.Name})).length})]}),(0,o.createComponentVNode)(2,u.Button,{mt:2,icon:"eject",content:"Eject Chromosome",onClick:function(){return i("eject_chromo",{chromo:p.Name})}})],4)})})]})},M=function(e,t){var n,c,i,l=e.mutation,s=(0,d.useBackend)(t),m=s.data,p=s.act,C=m.diskCapacity,h=m.diskReadOnly,N=m.hasDisk,V=m.isInjectorReady,b=null!=(n=m.storage.disk)?n:[],f=null!=(c=m.storage.console)?c:[],g=null!=(i=m.storage.injector)?i:[];if(!l)return(0,o.createComponentVNode)(2,u.Box,{color:"label",children:"Nothing to show."});if("occupant"===l.Source&&!l.Discovered)return(0,o.createComponentVNode)(2,u.LabeledList,{children:(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Name",children:l.Alias})});var v=f.find((function(e){return _(e,l)})),k=b.find((function(e){return _(e,l)})),x=(0,a.flow)([(0,r.uniqBy)((function(e){return e.Name})),(0,r.filter)((function(e){return e.Name!==l.Name}))])([].concat(b,f));return(0,o.createFragment)([(0,o.createComponentVNode)(2,u.LabeledList,{children:[(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Name",children:(0,o.createComponentVNode)(2,u.Box,{inline:!0,color:B[l.Quality],children:l.Name})}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Description",children:l.Description}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Instability",children:l.Instability})]}),(0,o.createComponentVNode)(2,u.Divider),(0,o.createComponentVNode)(2,u.Box,{children:["disk"===l.Source&&(0,o.createComponentVNode)(2,Q,{disabled:!N||C<=0||h,mutations:x,source:l}),"console"===l.Source&&(0,o.createComponentVNode)(2,Q,{mutations:x,source:l}),["occupant","disk","console"].includes(l.Source)&&(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Dropdown,{width:"240px",options:g.map((function(e){return e.name})),disabled:0===g.length||!l.Active,selected:"Add to advanced injector",onSelected:function(e){return p("add_advinj_mut",{mutref:l.ByondRef,advinj:e,source:l.Source})}}),(0,o.createComponentVNode)(2,u.Button,{icon:"syringe",disabled:!V||!l.Active,content:"Print Activator",onClick:function(){return p("print_injector",{mutref:l.ByondRef,is_activator:1,source:l.Source})}}),(0,o.createComponentVNode)(2,u.Button,{icon:"syringe",disabled:!V||!l.Active,content:"Print Mutator",onClick:function(){return p("print_injector",{mutref:l.ByondRef,is_activator:0,source:l.Source})}})],4)]}),["disk","occupant"].includes(l.Source)&&(0,o.createComponentVNode)(2,u.Button,{icon:"save",disabled:v||!l.Active,content:"Save to Console",onClick:function(){return p("save_console",{mutref:l.ByondRef,source:l.Source})}}),["console","occupant"].includes(l.Source)&&(0,o.createComponentVNode)(2,u.Button,{icon:"save",disabled:k||!N||C<=0||h||!l.Active,content:"Save to Disk",onClick:function(){return p("save_disk",{mutref:l.ByondRef,source:l.Source})}}),["console","disk","injector"].includes(l.Source)&&(0,o.createComponentVNode)(2,u.Button,{icon:"times",color:"red",content:"Delete from "+l.Source,onClick:function(){return p("delete_"+l.Source+"_mut",{mutref:l.ByondRef})}}),(2===l.Class||!!l.Scrambled&&"occupant"===l.Source)&&(0,o.createComponentVNode)(2,u.Button,{content:"Nullify",onClick:function(){return p("nullify",{mutref:l.ByondRef})}}),(0,o.createComponentVNode)(2,u.Divider),(0,o.createComponentVNode)(2,F,{disabled:"occupant"!==l.Source,mutation:l})],0)},F=function(e,t){var n=e.mutation,r=e.disabled,a=(0,d.useBackend)(t),c=(a.data,a.act);return 0===n.CanChromo?(0,o.createComponentVNode)(2,u.Box,{color:"label",children:"No compatible chromosomes"}):1===n.CanChromo?r?(0,o.createComponentVNode)(2,u.Box,{color:"label",children:"No chromosome applied."}):(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Dropdown,{width:"240px",options:n.ValidStoredChromos,disabled:0===n.ValidStoredChromos.length,selected:0===n.ValidStoredChromos.length?"No Suitable Chromosomes":"Select a chromosome",onSelected:function(e){return c("apply_chromo",{chromo:e,mutref:n.ByondRef})}}),(0,o.createComponentVNode)(2,u.Box,{color:"label",mt:1,children:["Compatible with: ",n.ValidChromos]})],4):2===n.CanChromo?(0,o.createComponentVNode)(2,u.Box,{color:"label",children:["Applied chromosome: ",n.AppliedChromo]}):null},D=function(e,t){var n,r,a=(0,d.useBackend)(t),c=a.data,i=a.act,s=null!=(n=null==(r=c.storage)?void 0:r.occupant)?n:[],m=c.isJokerReady,p=c.isMonkey,C=c.jokerSeconds,h=c.subjectStatus,N=c.view,V=N.sequencerMutation,b=N.jokerActive,f=s.find((function(e){return e.Alias===V}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Flex,{spacing:1,mb:1,children:[(0,o.createComponentVNode)(2,u.Flex.Item,{width:s.length<=8?"154px":"174px",children:(0,o.createComponentVNode)(2,u.Section,{title:"Sequences",height:"214px",overflowY:s.length>8&&"scroll",children:s.map((function(e){return(0,o.createComponentVNode)(2,j,{url:(0,l.resolveAsset)(e.Image),selected:e.Alias===V,onClick:function(){i("set_view",{sequencerMutation:e.Alias}),i("check_discovery",{alias:e.Alias})}},e.Alias)}))})}),(0,o.createComponentVNode)(2,u.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,u.Section,{title:"Sequence Info",minHeight:"100%",children:(0,o.createComponentVNode)(2,M,{mutation:f})})})]}),3===h&&(0,o.createComponentVNode)(2,u.Section,{color:"bad",children:"Genetic sequence corrupted. Subject diagnostic report: DECEASED."})||p&&"Monkified"!==(null==f?void 0:f.Name)&&(0,o.createComponentVNode)(2,u.Section,{color:"bad",children:"Genetic sequence corrupted. Subject diagnostic report: MONKEY."})||4===h&&(0,o.createComponentVNode)(2,u.Section,{color:"bad",children:"Genetic sequence corrupted. Subject diagnostic report: TRANSFORMING."})||(0,o.createComponentVNode)(2,u.Section,{title:"Genome Sequencer\u2122",buttons:!m&&(0,o.createComponentVNode)(2,u.Box,{lineHeight:"20px",color:"label",children:["Joker on cooldown (",C,"s)"]})||b&&(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Box,{mr:1,inline:!0,color:"label",children:"Click on a gene to reveal it."}),(0,o.createComponentVNode)(2,u.Button,{content:"Cancel Joker",onClick:function(){return i("set_view",{jokerActive:""})}})],4)||(0,o.createComponentVNode)(2,u.Button,{icon:"crown",color:"purple",content:"Use Joker",onClick:function(){return i("set_view",{jokerActive:"1"})}}),children:(0,o.createComponentVNode)(2,E,{mutation:f})})],0)},j=function(e,t){var n,r=e.url,a=e.selected,c=e.onClick;return a&&(n="2px solid #22aa00"),(0,o.createComponentVNode)(2,u.Box,{as:"img",src:r,style:{width:"64px",margin:"2px","margin-left":"4px",outline:n},onClick:c})},W=function(e,t){var n=e.gene,r=e.onChange,a=e.disabled,c=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["gene","onChange","disabled"]),i=m.length,l=m.indexOf(n),d=a&&p.X||p[n];return(0,o.normalizeProps)((0,o.createComponentVNode)(2,u.Button,Object.assign({},c,{color:d,onClick:function(e){if(e.preventDefault(),r)if(-1!==l){var t=m[(l+1)%i];r(e,t)}else r(e,m[0])},oncontextmenu:function(e){if(e.preventDefault(),r)if(-1!==l){var t=m[(l-1+i)%i];r(e,t)}else r(e,m[i-1])},children:n})))},E=function(e,t){var n=e.mutation,r=(0,d.useBackend)(t),a=r.data,i=r.act,l=a.view.jokerActive;if(!n)return(0,o.createComponentVNode)(2,u.Box,{color:"average",children:"No genome selected for sequencing."});if(n.Scrambled)return(0,o.createComponentVNode)(2,u.Box,{color:"average",children:"Sequence unreadable due to unpredictable mutation."});for(var s=n.Sequence,m=n.DefaultSeq,p=[],C=function(e){var t=s.charAt(e),r=(0,o.createComponentVNode)(2,W,{width:"22px",textAlign:"center",disabled:!!n.Scrambled||1!==n.Class,className:"X"===(null==m?void 0:m.charAt(e))&&!n.Active&&(0,c.classes)(["outline-solid","outline-color-orange"]),gene:t,onChange:function(t,o){if(!t.ctrlKey)return l?(i("pulse_gene",{pos:e+1,gene:"J",alias:n.Alias}),void i("set_view",{jokerActive:""})):void i("pulse_gene",{pos:e+1,gene:o,alias:n.Alias});i("pulse_gene",{pos:e+1,gene:"X",alias:n.Alias})}});p.push(r)},h=0;h=3){var r=(0,o.createComponentVNode)(2,u.Box,{inline:!0,width:"22px",mx:"1px",children:s});l.push(r),s=[]}},p=0;p=i,onCommit:function(e,t){return a("new_adv_inj",{name:t})}})})]})},Q=function(e,t){var n=e.mutations,r=void 0===n?[]:n,a=e.source,c=(0,d.useBackend)(t),i=c.act;c.data;return(0,o.createComponentVNode)(2,u.Dropdown,{width:"240px",options:r.map((function(e){return e.Name})),disabled:0===r.length,selected:"Combine mutations",onSelected:function(e){return i("combine_"+a.Source,{firstref:(t=e,null==(n=r.find((function(e){return e.Name===t})))?void 0:n.ByondRef),secondref:a.ByondRef});var t,n}},a.ByondRef)}},89817:function(e,t,n){"use strict";t.__esModule=!0,t.DnaVault=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.DnaVault=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.completed,u=l.used,s=l.choiceA,m=l.choiceB,p=l.dna,C=l.dna_max,h=l.plants,N=l.plants_max,V=l.animals,b=l.animals_max;return(0,o.createComponentVNode)(2,c.Window,{width:350,height:400,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"DNA Vault Database",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Human DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:p/C,children:p+" / "+C+" Samples"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Plant DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:h/N,children:h+" / "+N+" Samples"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Animal DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:V/V,children:V+" / "+b+" Samples"})})]})}),!(!d||u)&&(0,o.createComponentVNode)(2,a.Section,{title:"Personal Gene Therapy",children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",mb:1,children:"Applicable Gene Therapy Treatments"}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:s,textAlign:"center",onClick:function(){return i("gene",{choice:s})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:m,textAlign:"center",onClick:function(){return i("gene",{choice:m})}})})]})]})]})})}},41284:function(e,t,n){"use strict";t.__esModule=!0,t.EightBallVote=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(2497),i=n(85952);t.EightBallVote=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data.shaking);return(0,o.createComponentVNode)(2,i.Window,{width:400,height:600,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No question is currently being asked."})||(0,o.createComponentVNode)(2,l)})})};var l=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.question,u=l.answers,s=void 0===u?[]:u;return(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"16px",m:1,children:['"',d,'"']}),(0,o.createComponentVNode)(2,a.Grid,{children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:(0,c.toTitleCase)(e.answer),selected:e.selected,fontSize:"16px",lineHeight:"24px",textAlign:"center",mb:1,onClick:function(){return i("vote",{answer:e.answer})}}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"30px",children:e.amount})]},e.answer)}))})]})}},31342:function(e,t,n){"use strict";t.__esModule=!0,t.Electrolyzer=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.Electrolyzer=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:305,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Power",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject Cell",disabled:!l.hasPowercell||!l.open,onClick:function(){return i("eject")}}),(0,o.createComponentVNode)(2,a.Button,{icon:l.on?"power-off":"times",content:l.on?"On":"Off",selected:l.on,disabled:!l.hasPowercell,onClick:function(){return i("power")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cell",color:!l.hasPowercell&&"bad",children:l.hasPowercell&&(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.powerLevel/100,content:l.powerLevel+"%",ranges:{good:[.6,Infinity],average:[.3,.6],bad:[-Infinity,.3]}})||"None"})})})})})}},53586:function(e,t,n){"use strict";t.__esModule=!0,t.Electropack=void 0;var o=n(39812),r=n(41860),a=n(71494),c=n(74814),i=n(85952);t.Electropack=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.power,s=d.code,m=d.frequency,p=d.minFrequency,C=d.maxFrequency;return(0,o.createComponentVNode)(2,i.Window,{width:260,height:137,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,c.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,onClick:function(){return l("power")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Frequency",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"sync",content:"Reset",onClick:function(){return l("reset",{reset:"freq"})}}),children:(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:6,minValue:p/10,maxValue:C/10,value:m/10,format:function(e){return(0,r.toFixed)(e,1)},width:"80px",onDrag:function(e,t){return l("freq",{freq:t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Code",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"sync",content:"Reset",onClick:function(){return l("reset",{reset:"code"})}}),children:(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:s,width:"80px",onDrag:function(e,t){return l("code",{code:t})}})})]})})})})}},47453:function(e,t,n){"use strict";t.__esModule=!0,t.EmergencyShuttleConsole=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.EmergencyShuttleConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.timer_str,u=l.enabled,s=l.emagged,m=l.engines_started,p=l.authorizations_remaining,C=l.authorizations,h=void 0===C?[]:C;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:350,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,fontSize:"40px",textAlign:"center",fontFamily:"monospace",children:d}),(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",fontSize:"16px",mb:1,children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:"ENGINES:"}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:m?"good":"average",ml:1,children:m?"Online":"Idle"})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Early Launch Authorization",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Repeal All",color:"bad",disabled:!u,onClick:function(){return i("abort")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"exclamation-triangle",color:"good",content:"AUTHORIZE",disabled:!u,onClick:function(){return i("authorize")}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"minus",content:"REPEAL",disabled:!u,onClick:function(){return i("repeal")}})})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Authorizations",level:3,minHeight:"150px",buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:s?"bad":"good",children:s?"ERROR":"Remaining: "+p}),children:h.length>0?h.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{bold:!0,fontSize:"16px",className:"candystripe",children:[e.name," (",e.job,")"]},e.name)})):(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"16px",color:"average",children:"No Active Authorizations"})})]})]})})})}},11715:function(e,t,n){"use strict";t.__esModule=!0,t.EngravedMessage=void 0;var o=n(39812),r=n(2497),a=n(71494),c=n(74814),i=n(85952);t.EngravedMessage=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.admin_mode,s=d.creator_key,m=d.creator_name,p=d.has_liked,C=d.has_disliked,h=d.hidden_message,N=d.is_creator,V=d.num_likes,b=d.num_dislikes,f=d.realdate;return(0,o.createComponentVNode)(2,i.Window,{width:600,height:300,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{children:[(0,o.createComponentVNode)(2,c.Box,{bold:!0,textAlign:"center",fontSize:"20px",mb:2,children:(0,r.decodeHtmlEntities)(h)}),(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,icon:"arrow-up",content:" "+V,disabled:N,selected:p,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return l("like")}})}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,icon:"circle",disabled:N,selected:!C&&!p,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return l("neutral")}})}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,icon:"arrow-down",content:" "+b,disabled:N,selected:C,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return l("dislike")}})})]})]}),(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Created On",children:f})})}),(0,o.createComponentVNode)(2,c.Section),!!u&&(0,o.createComponentVNode)(2,c.Section,{title:"Admin Panel",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"times",content:"Delete",color:"bad",onClick:function(){return l("delete")}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Creator Ckey",children:s}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Creator Character Name",children:m})]})})]})})}},8077:function(e,t,n){"use strict";t.__esModule=!0,t.ExosuitControlConsole=void 0;var o=n(39812),r=n(41860),a=n(71494),c=n(74814),i=n(85952);t.ExosuitControlConsole=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data.mechs,u=void 0===d?[]:d;return(0,o.createComponentVNode)(2,i.Window,{width:500,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[0===u.length&&(0,o.createComponentVNode)(2,c.NoticeBox,{children:"No exosuits detected"}),u.map((function(e){return(0,o.createComponentVNode)(2,c.Section,{title:e.name,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:"envelope",content:"Send Message",disabled:!e.pilot,onClick:function(){return l("send_message",{tracker_ref:e.tracker_ref})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"wifi",content:e.emp_recharging?"Recharging...":"EMP Burst",color:"bad",disabled:e.emp_recharging,onClick:function(){return l("shock",{tracker_ref:e.tracker_ref})}})],4),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,c.Box,{color:(e.integrity<=30?"bad":e.integrity<=70&&"average")||"good",children:[e.integrity,"%"]})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Charge",children:(0,o.createComponentVNode)(2,c.Box,{color:(e.charge<=30?"bad":e.charge<=70&&"average")||"good",children:"number"==typeof e.charge&&e.charge+"%"||"Not Found"})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Airtank",children:"number"==typeof e.airtank&&(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:e.airtank,format:function(e){return(0,r.toFixed)(e,2)+" kPa"}})||"Not Equipped"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pilot",children:e.pilot||"None"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Location",children:e.location||"Unknown"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Active Equipment",children:e.active_equipment||"None"}),e.cargo_space>=0&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Used Cargo Space",children:(0,o.createComponentVNode)(2,c.Box,{color:(e.cargo_space<=30?"good":e.cargo_space<=70&&"average")||"bad",children:[e.cargo_space,"%"]})})]})},e.tracker_ref)}))]})})}},95481:function(e,t,n){"use strict";t.__esModule=!0,t.ExosuitFabricator=void 0;var o,r=n(39812),a=n(34380),c=n(64499),i=n(71494),l=n(58083),d=n(74814),u=n(85952),s=n(2497);function m(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return p(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);nn?{color:2,deficit:e-n}:t>n?{color:1,deficit:e}:e+t>n?{color:1,deficit:e+t-n}:{color:0,deficit:0}},V=function(e,t,n){var o={textColor:0};return Object.keys(n.cost).forEach((function(r){o[r]=N(n.cost[r],t[r],e[r]),o[r].color>o.textColor&&(o.textColor=o[r].color)})),o};t.ExosuitFabricator=function(e,t){var n,o,a=(0,i.useBackend)(t),c=a.act,l=a.data,s=l.queue||[],m=(n=l.materials||[],o={},n.forEach((function(e){o[e.name]=e.amount})),o),p=function(e,t){var n={},o={},r={},a={};return t.forEach((function(t,c){a[c]=0,Object.keys(t.cost).forEach((function(i){n[i]=n[i]||0,r[i]=r[i]||0,o[i]=N(t.cost[i],n[i],e[i]),0!==o[i].color?a[c]1&&l=0&&m+"s"||"Dispensing..."})]})})})}}},1005:function(e,t,n){"use strict";t.__esModule=!0,t.ForbiddenLore=void 0;var o=n(39812),r=n(64499),a=n(85531),c=n(71494),i=n(74814),l=n(85952);t.ForbiddenLore=function(e,t){var n=(0,c.useBackend)(t),d=n.act,u=n.data,s=u.charges,m=(0,a.flow)([(0,r.sortBy)((function(e){return"Research"!==e.state}),(function(e){return"Side"===e.path}))])(u.to_know||[]);return(0,o.createComponentVNode)(2,l.Window,{width:500,height:900,resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i.Section,{title:"Research Eldritch Knowledge",children:["Charges left : ",s,null!==m?m.map((function(e){return(0,o.createComponentVNode)(2,i.Section,{title:e.name,level:2,children:[(0,o.createComponentVNode)(2,i.Box,{bold:!0,my:1,children:[e.path," path"]}),(0,o.createComponentVNode)(2,i.Box,{my:1,children:[(0,o.createComponentVNode)(2,i.Button,{content:e.state,disabled:e.disabled,onClick:function(){return d("research",{name:e.name,cost:e.cost})}})," ","Cost : ",e.cost]}),(0,o.createComponentVNode)(2,i.Box,{italic:!0,my:1,children:e.flavour}),(0,o.createComponentVNode)(2,i.Box,{my:1,children:e.desc})]},e.name)})):(0,o.createComponentVNode)(2,i.Box,{children:"No more knowledge can be found"})]})})})}},64831:function(e,t,n){"use strict";t.__esModule=!0,t.Gateway=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.Gateway=function(){return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.gateway_present,d=void 0!==l&&l,u=i.gateway_status,s=void 0!==u&&u,m=i.current_target,p=void 0===m?null:m,C=i.destinations,h=void 0===C?[]:C;return d?p?(0,o.createComponentVNode)(2,a.Section,{title:p.name,children:[(0,o.createComponentVNode)(2,a.Icon,{name:"rainbow",size:4,color:"green"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,onClick:function(){return c("deactivate")},children:"Deactivate"})]}):h.length?(0,o.createFragment)([!s&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Gateway Unpowered"}),h.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,children:e.available&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,onClick:function(){return c("activate",{destination:e.ref})},children:"Activate"})||(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{m:1,textColor:"bad",children:e.reason}),!!e.timeout&&(0,o.createComponentVNode)(2,a.ProgressBar,{value:e.timeout,children:"Calibrating..."})],0)},e.ref)}))],0):(0,o.createComponentVNode)(2,a.Section,{children:"No gateway nodes detected."}):(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No linked gateway"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,onClick:function(){return c("linkup")},children:"Linkup"})]})}},8098:function(e,t,n){"use strict";t.__esModule=!0,t.GhostPoolProtection=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.GhostPoolProtection=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.events_or_midrounds,u=l.spawners,s=l.station_sentience,m=l.silicons,p=l.minigames;return(0,o.createComponentVNode)(2,c.Window,{title:"Ghost Pool Protection",width:400,height:270,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Flex,{grow:1,height:"100%",children:(0,o.createComponentVNode)(2,a.Section,{title:"Options",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{color:"good",icon:"plus-circle",content:"Enable Everything",onClick:function(){return i("all_roles")}}),(0,o.createComponentVNode)(2,a.Button,{color:"bad",icon:"minus-circle",content:"Disable Everything",onClick:function(){return i("no_roles")}})],4),children:[(0,o.createComponentVNode)(2,a.NoticeBox,{danger:!0,children:"For people creating a sneaky event: If you toggle Station Created Sentience, people may catch on that admins have disabled roles for your event..."}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",color:d?"good":"bad",icon:"meteor",content:"Events and Midround Rulesets",onClick:function(){return i("toggle_events_or_midrounds")}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",color:u?"good":"bad",icon:"pastafarianism",content:"Ghost Role Spawners",onClick:function(){return i("toggle_spawners")}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",color:s?"good":"bad",icon:"user-astronaut",content:"Station Created Sentience",onClick:function(){return i("toggle_station_sentience")}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",color:m?"good":"bad",icon:"robot",content:"Silicons",onClick:function(){return i("toggle_silicons")}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",color:p?"good":"bad",icon:"gamepad",content:"Minigames",onClick:function(){return i("toggle_minigames")}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",color:"orange",icon:"check",content:"Apply Changes",onClick:function(){return i("apply_settings")}})})]})})})})}},25313:function(e,t,n){"use strict";t.__esModule=!0,t.GlandDispenser=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.GlandDispenser=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.glands,d=void 0===l?[]:l;return(0,o.createComponentVNode)(2,c.Window,{width:300,height:338,theme:"abductor",children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{width:"60px",height:"60px",m:.75,textAlign:"center",lineHeight:"55px",icon:"eject",backgroundColor:e.color,content:e.amount||"0",disabled:!e.amount,onClick:function(){return i("dispense",{gland_id:e.id})}},e.id)}))})})})}},25230:function(e,t,n){"use strict";t.__esModule=!0,t.Gps=void 0;var o=n(39812),r=n(64499),a=n(85531),c=n(41860),i=n(51961),l=n(71494),d=n(74814),u=n(85952),s=function(e){return(0,r.map)(parseFloat)(e.split(", "))};t.Gps=function(e,t){var n=(0,l.useBackend)(t),m=n.act,p=n.data,C=p.currentArea,h=p.currentCoords,N=p.globalmode,V=p.power,b=p.tag,f=p.updating,g=(0,a.flow)([(0,r.map)((function(e,t){var n=e.dist&&Math.round((0,i.vecLength)((0,i.vecSubtract)(s(h),s(e.coords))));return Object.assign({},e,{dist:n,index:t})})),(0,r.sortBy)((function(e){return e.dist===undefined}),(function(e){return e.entrytag}))])(p.signals||[]);return(0,o.createComponentVNode)(2,u.Window,{title:"Global Positioning System",width:470,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,u.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,d.Section,{title:"Control",buttons:(0,o.createComponentVNode)(2,d.Button,{icon:"power-off",content:V?"On":"Off",selected:V,onClick:function(){return m("power")}}),children:(0,o.createComponentVNode)(2,d.LabeledList,{children:[(0,o.createComponentVNode)(2,d.LabeledList.Item,{label:"Tag",children:(0,o.createComponentVNode)(2,d.Button,{icon:"pencil-alt",content:b,onClick:function(){return m("rename")}})}),(0,o.createComponentVNode)(2,d.LabeledList.Item,{label:"Scan Mode",children:(0,o.createComponentVNode)(2,d.Button,{icon:f?"unlock":"lock",content:f?"AUTO":"MANUAL",color:!f&&"bad",onClick:function(){return m("updating")}})}),(0,o.createComponentVNode)(2,d.LabeledList.Item,{label:"Range",children:(0,o.createComponentVNode)(2,d.Button,{icon:"sync",content:N?"MAXIMUM":"LOCAL",selected:!N,onClick:function(){return m("globalmode")}})})]})}),!!V&&(0,o.createFragment)([(0,o.createComponentVNode)(2,d.Section,{title:"Current Location",children:(0,o.createComponentVNode)(2,d.Box,{fontSize:"18px",children:[C," (",h,")"]})}),(0,o.createComponentVNode)(2,d.Section,{title:"Detected Signals",children:(0,o.createComponentVNode)(2,d.Table,{children:[(0,o.createComponentVNode)(2,d.Table.Row,{bold:!0,children:[(0,o.createComponentVNode)(2,d.Table.Cell,{content:"Name"}),(0,o.createComponentVNode)(2,d.Table.Cell,{collapsing:!0,content:"Direction"}),(0,o.createComponentVNode)(2,d.Table.Cell,{collapsing:!0,content:"Coordinates"})]}),g.map((function(e){return(0,o.createComponentVNode)(2,d.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,d.Table.Cell,{bold:!0,color:"label",children:e.entrytag}),(0,o.createComponentVNode)(2,d.Table.Cell,{collapsing:!0,opacity:e.dist!==undefined&&(0,c.clamp)(1.2/Math.log(Math.E+e.dist/20),.4,1),children:[e.degrees!==undefined&&(0,o.createComponentVNode)(2,d.Icon,{mr:1,size:1.2,name:"arrow-up",rotation:e.degrees}),e.dist!==undefined&&e.dist+"m"]}),(0,o.createComponentVNode)(2,d.Table.Cell,{collapsing:!0,children:e.coords})]},e.entrytag+e.coords+e.index)}))]})})],4)]})})}},4475:function(e,t,n){"use strict";t.__esModule=!0,t.GravityGenerator=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.GravityGenerator=function(e,t){var n=(0,r.useBackend)(t),l=(n.act,n.data),d=l.charging_state,u=l.operational;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:155,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[!u&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No data available"}),!!u&&0!==d&&(0,o.createComponentVNode)(2,a.NoticeBox,{danger:!0,children:"WARNING - Radiation detected"}),!!u&&0===d&&(0,o.createComponentVNode)(2,a.NoticeBox,{success:!0,children:"No radiation detected"}),!!u&&(0,o.createComponentVNode)(2,i)]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.breaker,d=i.charge_count,u=i.charging_state,s=i.on,m=i.operational;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:l?"power-off":"times",content:l?"On":"Off",selected:l,disabled:!m,onClick:function(){return c("gentoggle")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Gravity Charge",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d/100,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",children:[0===u&&(s&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Fully Charged"})||(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Not Charging"})),1===u&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Charging"}),2===u&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Discharging"})]})]})})}},83366:function(e,t,n){"use strict";t.__esModule=!0,t.GulagItemReclaimer=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.GulagItemReclaimer=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.mobs,u=void 0===d?[]:d;return(0,o.createComponentVNode)(2,c.Window,{width:325,height:400,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[0===u.length&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No stored items"}),u.length>0&&(0,o.createComponentVNode)(2,a.Section,{title:"Stored Items",children:(0,o.createComponentVNode)(2,a.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:(0,o.createComponentVNode)(2,a.Button,{content:"Retrieve Items",disabled:!l.can_reclaim,onClick:function(){return i("release_items",{mobref:e.mob})}})})]},e.mob)}))})})]})})}},72263:function(e,t,n){"use strict";t.__esModule=!0,t.GulagTeleporterConsole=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.GulagTeleporterConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.teleporter,u=l.teleporter_lock,s=l.teleporter_state_open,m=l.teleporter_location,p=l.beacon,C=l.beacon_location,h=l.id,N=l.id_name,V=l.can_teleport,b=l.goal,f=void 0===b?0:b,g=l.prisoner,v=void 0===g?{}:g;return(0,o.createComponentVNode)(2,c.Window,{width:350,height:295,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Teleporter Console",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:s?"Open":"Closed",disabled:u,selected:s,onClick:function(){return i("toggle_open")}}),(0,o.createComponentVNode)(2,a.Button,{icon:u?"lock":"unlock",content:u?"Locked":"Unlocked",selected:u,disabled:s,onClick:function(){return i("teleporter_lock")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Teleporter Unit",color:d?"good":"bad",buttons:!d&&(0,o.createComponentVNode)(2,a.Button,{content:"Reconnect",onClick:function(){return i("scan_teleporter")}}),children:d?m:"Not Connected"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Receiver Beacon",color:p?"good":"bad",buttons:!p&&(0,o.createComponentVNode)(2,a.Button,{content:"Reconnect",onClick:function(){return i("scan_beacon")}}),children:p?C:"Not Connected"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Prisoner Details",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Prisoner ID",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:h?N:"No ID",onClick:function(){return i("handle_id")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Point Goal",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:f,width:"48px",minValue:1,maxValue:1e3,onChange:function(e,t){return i("set_goal",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Occupant",children:v.name||"No Occupant"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Criminal Status",children:v.crimstat||"No Status"})]})}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Process Prisoner",disabled:!V,textAlign:"center",color:"bad",onClick:function(){return i("teleport")}})]})})}},7908:function(e,t,n){"use strict";t.__esModule=!0,t.Holodeck=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.Holodeck=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.can_toggle_safety,u=l.default_programs,s=void 0===u?[]:u,m=l.emag_programs,p=void 0===m?[]:m,C=l.emagged,h=l.program;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Default Programs",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:C?"unlock":"lock",content:"Safeties",color:"bad",disabled:!d,selected:!C,onClick:function(){return i("safety")}}),children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name.split(" - ")[1],textAlign:"center",selected:e.type===h,onClick:function(){return i("load_program",{type:e.type})}},e.type)}))}),!!C&&(0,o.createComponentVNode)(2,a.Section,{title:"Dangerous Programs",children:p.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name.split(" - ")[1],color:"bad",textAlign:"center",selected:e.type===h,onClick:function(){return i("load_program",{type:e.type})}},e.type)}))})]})})}},84283:function(e,t,n){"use strict";t.__esModule=!0,t.Holopad=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.Holopad=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data.calling;return(0,o.createComponentVNode)(2,c.Window,{width:440,height:245,resizable:!0,children:[!!d&&(0,o.createComponentVNode)(2,a.Modal,{fontSize:"36px",fontFamily:"monospace",children:[(0,o.createComponentVNode)(2,a.Flex,{align:"center",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mr:2,mt:2,children:(0,o.createComponentVNode)(2,a.Icon,{name:"phone-alt",rotation:25})}),(0,o.createComponentVNode)(2,a.Flex.Item,{mr:2,children:"Dialing..."})]}),(0,o.createComponentVNode)(2,a.Box,{mt:2,textAlign:"center",fontSize:"24px",children:(0,o.createComponentVNode)(2,a.Button,{lineHeight:"40px",icon:"times",content:"Hang Up",color:"bad",onClick:function(){return l("hang_up")}})})]}),(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})]})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.on_network,d=i.on_cooldown,u=i.allowed,s=i.disk,m=i.disk_record,p=i.replay_mode,C=i.loop_mode,h=i.record_mode,N=i.holo_calls,V=void 0===N?[]:N;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Holopad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"bell",content:d?"AI Presence Requested":"Request AI Presence",disabled:!l||d,onClick:function(){return c("AIrequest")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Communicator",children:(0,o.createComponentVNode)(2,a.Button,{icon:"phone-alt",content:u?"Connect To Holopad":"Call Holopad",disabled:!l,onClick:function(){return c("holocall",{headcall:u})}})}),V.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.connected?"Current Call":"Incoming Call",children:(0,o.createComponentVNode)(2,a.Button,{icon:e.connected?"phone-slash":"phone-alt",content:e.connected?"Disconnect call from "+e.caller:"Answer call from "+e.caller,color:e.connected?"bad":"good",disabled:!l,onClick:function(){return c(e.connected?"disconnectcall":"connectcall",{holopad:e.ref})}})},e.ref)}))]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Holodisk",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!s||p||h,onClick:function(){return c("disk_eject")}}),children:!s&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No holodisk"})||(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disk Player",children:[(0,o.createComponentVNode)(2,a.Button,{icon:p?"pause":"play",content:p?"Stop":"Replay",selected:p,disabled:h||!m,onClick:function(){return c("replay_mode")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:C?"Looping":"Loop",selected:C,disabled:h||!m,onClick:function(){return c("loop_mode")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"exchange-alt",content:"Change Offset",disabled:!p,onClick:function(){return c("offset")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Recorder",children:[(0,o.createComponentVNode)(2,a.Button,{icon:h?"pause":"video",content:h?"End Recording":"Record",selected:h,disabled:m&&!h||p,onClick:function(){return c("record_mode")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"trash",content:"Clear Recording",color:"bad",disabled:!m||p||h,onClick:function(){return c("record_clear")}})]})]})})],4)}},12708:function(e,t,n){"use strict";t.__esModule=!0,t.HypnoChair=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.HypnoChair=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:375,height:480,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Information",backgroundColor:"#450F44",children:"The Enhanced Interrogation Chamber is designed to induce a deep-rooted trance trigger into the subject. Once the procedure is complete, by using the implanted trigger phrase, the authorities are able to ensure immediate and complete obedience and truthfulness."}),(0,o.createComponentVNode)(2,a.Section,{title:"Occupant Information",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:l.occupant.name?l.occupant.name:"No Occupant"}),!!l.occupied&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:0===l.occupant.stat?"good":1===l.occupant.stat?"average":"bad",children:0===l.occupant.stat?"Conscious":1===l.occupant.stat?"Unconcious":"Dead"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Operations",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.open?"unlock":"lock",color:l.open?"default":"red",content:l.open?"Open":"Closed",onClick:function(){return i("door")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Phrase",children:(0,o.createComponentVNode)(2,a.Input,{value:l.trigger,onChange:function(e,t){return i("set_phrase",{phrase:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Interrogate Occupant",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"code-branch",content:l.interrogating?"Interrupt Interrogation":"Begin Enhanced Interrogation",onClick:function(){return i("interrogate")}}),1===l.interrogating&&(0,o.createComponentVNode)(2,a.Icon,{name:"cog",color:"orange",spin:!0})]})]})})]})})}},1473:function(e,t,n){"use strict";t.__esModule=!0,t.ImplantChair=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.ImplantChair=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:375,height:280,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Occupant Information",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:l.occupant.name||"No Occupant"}),!!l.occupied&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:0===l.occupant.stat?"good":1===l.occupant.stat?"average":"bad",children:0===l.occupant.stat?"Conscious":1===l.occupant.stat?"Unconcious":"Dead"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Operations",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.open?"unlock":"lock",color:l.open?"default":"red",content:l.open?"Open":"Closed",onClick:function(){return i("door")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Implant Occupant",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"code-branch",content:l.ready?l.special_name||"Implant":"Recharging",onClick:function(){return i("implant")}}),0===l.ready&&(0,o.createComponentVNode)(2,a.Icon,{name:"cog",color:"orange",spin:!0})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Implants Remaining",children:[l.ready_implants,1===l.replenishing&&(0,o.createComponentVNode)(2,a.Icon,{name:"sync",color:"red",spin:!0})]})]})})]})})}},87522:function(e,t,n){"use strict";t.__esModule=!0,t.InfraredEmitter=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.InfraredEmitter=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.on,u=l.visible;return(0,o.createComponentVNode)(2,c.Window,{width:225,height:110,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Button,{icon:d?"power-off":"times",content:d?"On":"Off",selected:d,onClick:function(){return i("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Visibility",children:(0,o.createComponentVNode)(2,a.Button,{icon:u?"eye":"eye-slash",content:u?"Visible":"Invisible",selected:u,onClick:function(){return i("visibility")}})})]})})})})}},28549:function(e,t,n){"use strict";t.__esModule=!0,t.Intellicard=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.Intellicard=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.name,u=l.isDead,s=l.isBraindead,m=l.health,p=l.wireless,C=l.radio,h=l.wiping,N=l.laws,V=void 0===N?[]:N,b=u||s;return(0,o.createComponentVNode)(2,c.Window,{width:500,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:d||"Empty Card",buttons:!!d&&(0,o.createComponentVNode)(2,a.Button,{icon:"trash",content:h?"Stop Wiping":"Wipe",disabled:u,onClick:function(){return i("wipe")}}),children:!!d&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:b?"bad":"good",children:b?"Offline":"Operation"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Software Integrity",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m,minValue:0,maxValue:100,ranges:{good:[70,Infinity],average:[50,70],bad:[-Infinity,50]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Settings",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"signal",content:"Wireless Activity",selected:p,onClick:function(){return i("wireless")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"microphone",content:"Subspace Radio",selected:C,onClick:function(){return i("radio")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Laws",children:V.map((function(e){return(0,o.createComponentVNode)(2,a.BlockQuote,{children:e},e)}))})]})})})})}},68741:function(e,t,n){"use strict";t.__esModule=!0,t.Jukebox=void 0;var o=n(39812),r=n(64499),a=n(85531),c=n(71494),i=n(74814),l=n(85952);t.Jukebox=function(e,t){var n=(0,c.useBackend)(t),d=n.act,u=n.data,s=u.active,m=u.track_selected,p=u.track_length,C=u.track_beat,h=u.volume,N=(0,a.flow)([(0,r.sortBy)((function(e){return e.name}))])(u.songs||[]);return(0,o.createComponentVNode)(2,l.Window,{width:370,height:313,children:(0,o.createComponentVNode)(2,l.Window.Content,{children:[(0,o.createComponentVNode)(2,i.Section,{title:"Song Player",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:s?"pause":"play",content:s?"Stop":"Play",selected:s,onClick:function(){return d("toggle")}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Track Selected",children:(0,o.createComponentVNode)(2,i.Dropdown,{"overflow-y":"scroll",width:"240px",options:N.map((function(e){return e.name})),disabled:s,selected:m||"Select a Track",onSelected:function(e){return d("select_track",{track:e})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Track Length",children:m?p:"No Track Selected"}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Track Beat",children:[m?C:"No Track Selected",1===C?" beat":" beats"]})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Machine Settings",children:(0,o.createComponentVNode)(2,i.LabeledControls,{justify:"center",children:(0,o.createComponentVNode)(2,i.LabeledControls.Item,{label:"Volume",children:(0,o.createComponentVNode)(2,i.Box,{position:"relative",children:[(0,o.createComponentVNode)(2,i.Knob,{size:3.2,color:h>=50?"red":"green",value:h,unit:"%",minValue:0,maxValue:100,step:1,stepPixelSize:1,disabled:s,onDrag:function(e,t){return d("set_volume",{volume:t})}}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,position:"absolute",top:"-2px",right:"-22px",color:"transparent",icon:"fast-backward",onClick:function(){return d("set_volume",{volume:"min"})}}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,position:"absolute",top:"16px",right:"-22px",color:"transparent",icon:"fast-forward",onClick:function(){return d("set_volume",{volume:"max"})}}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,position:"absolute",top:"34px",right:"-22px",color:"transparent",icon:"undo",onClick:function(){return d("set_volume",{volume:"reset"})}})]})})})})]})})}},36597:function(e,t,n){"use strict";t.__esModule=!0,t.KeycardAuth=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.KeycardAuth=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:375,height:125,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{children:1===l.waiting&&(0,o.createVNode)(1,"span",null,"Waiting for another device to confirm your request...",16)}),(0,o.createComponentVNode)(2,a.Box,{children:0===l.waiting&&(0,o.createFragment)([!!l.auth_required&&(0,o.createComponentVNode)(2,a.Button,{icon:"check-square",color:"red",textAlign:"center",lineHeight:"60px",fluid:!0,onClick:function(){return i("auth_swipe")},content:"Authorize"}),0===l.auth_required&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation-triangle",fluid:!0,onClick:function(){return i("red_alert")},content:"Red Alert"}),(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",fluid:!0,onClick:function(){return i("emergency_maint")},content:"Emergency Maintenance Access"}),(0,o.createComponentVNode)(2,a.Button,{icon:"meteor",fluid:!0,onClick:function(){return i("bsa_unlock")},content:"Bluespace Artillery Unlock"})],4)],0)})]})})})}},52169:function(e,t,n){"use strict";t.__esModule=!0,t.LaborClaimConsole=void 0;var o=n(39812),r=n(2497),a=n(71494),c=n(74814),i=n(85952);t.LaborClaimConsole=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.can_go_home,s=d.id_points,m=d.ores,p=d.status_info,C=d.unclaimed_points;return(0,o.createComponentVNode)(2,i.Window,{width:315,height:440,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Status",children:p}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Shuttle controls",children:(0,o.createComponentVNode)(2,c.Button,{content:"Move shuttle",disabled:!u,onClick:function(){return l("move_shuttle")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Points",children:s}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Unclaimed points",buttons:(0,o.createComponentVNode)(2,c.Button,{content:"Claim points",disabled:!C,onClick:function(){return l("claim_points")}}),children:C})]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Material values",children:(0,o.createComponentVNode)(2,c.Table,{children:[(0,o.createComponentVNode)(2,c.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Material"}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:"Value"})]}),m.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,r.toTitleCase)(e.ore)}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,c.Box,{color:"label",inline:!0,children:e.value})})]},e.ore)}))]})})]})})}},83577:function(e,t,n){"use strict";t.__esModule=!0,t.LanguageMenu=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.LanguageMenu=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.admin_mode,u=l.is_living,s=l.omnitongue,m=l.languages,p=void 0===m?[]:m,C=l.unknown_languages,h=void 0===C?[]:C;return(0,o.createComponentVNode)(2,c.Window,{title:"Language Menu",width:700,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Known Languages",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:p.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,buttons:(0,o.createFragment)([!!u&&(0,o.createComponentVNode)(2,a.Button,{content:e.is_default?"Default Language":"Select as Default",disabled:!e.can_speak,selected:e.is_default,onClick:function(){return i("select_default",{language_name:e.name})}}),!!d&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Grant",onClick:function(){return i("grant_language",{language_name:e.name})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Remove",onClick:function(){return i("remove_language",{language_name:e.name})}})],4)],0),children:[e.desc," ","Key: ,",e.key," ",e.can_understand?"Can understand.":"Cannot understand."," ",e.can_speak?"Can speak.":"Cannot speak."]},e.name)}))})}),!!d&&(0,o.createComponentVNode)(2,a.Section,{title:"Unknown Languages",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Omnitongue "+(s?"Enabled":"Disabled"),selected:s,onClick:function(){return i("toggle_omnitongue")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:h.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Grant",onClick:function(){return i("grant_language",{language_name:e.name})}}),children:[e.desc," ","Key: ,",e.key," ",!!e.shadow&&"(gained from mob)"," ",e.can_speak?"Can speak.":"Cannot speak."]},e.name)}))})})]})})}},79381:function(e,t,n){"use strict";t.__esModule=!0,t.LaunchpadConsole=t.LaunchpadControl=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=function(e,t){var n=(0,r.useBackend)(t).act;return(0,o.createComponentVNode)(2,a.Grid,{width:"1px",children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-left",iconRotation:45,mb:1,onClick:function(){return n("move_pos",{x:-1,y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-left",mb:1,onClick:function(){return n("move_pos",{x:-1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-down",iconRotation:45,mb:1,onClick:function(){return n("move_pos",{x:-1,y:-1})}})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-up",mb:1,onClick:function(){return n("move_pos",{y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"R",mb:1,onClick:function(){return n("set_pos",{x:0,y:0})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-down",mb:1,onClick:function(){return n("move_pos",{y:-1})}})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-up",iconRotation:45,mb:1,onClick:function(){return n("move_pos",{x:1,y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-right",mb:1,onClick:function(){return n("move_pos",{x:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-right",iconRotation:45,mb:1,onClick:function(){return n("move_pos",{x:1,y:-1})}})]})]})},l=function(e,t){var n=e.topLevel,c=(0,r.useBackend)(t),l=c.act,d=c.data,u=d.x,s=d.y,m=d.pad_name,p=d.range;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Input,{value:m,width:"170px",onChange:function(e,t){return l("rename",{name:t})}}),level:n?1:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Remove",color:"bad",onClick:function(){return l("remove")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Controls",level:2,children:(0,o.createComponentVNode)(2,i)})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Target",level:2,children:(0,o.createComponentVNode)(2,a.Box,{fontSize:"26px",children:[(0,o.createComponentVNode)(2,a.Box,{mb:1,children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:"X:"}),(0,o.createComponentVNode)(2,a.NumberInput,{value:u,minValue:-p,maxValue:p,lineHeight:"30px",fontSize:"26px",width:"90px",height:"30px",stepPixelSize:10,onChange:function(e,t){return l("set_pos",{x:t})}})]}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:"Y:"}),(0,o.createComponentVNode)(2,a.NumberInput,{value:s,minValue:-p,maxValue:p,stepPixelSize:10,lineHeight:"30px",fontSize:"26px",width:"90px",height:"30px",onChange:function(e,t){return l("set_pos",{y:t})}})]})]})})})]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"upload",content:"Launch",textAlign:"center",onClick:function(){return l("launch")}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"download",content:"Pull",textAlign:"center",onClick:function(){return l("pull")}})})]})]})};t.LaunchpadControl=l;t.LaunchpadConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,d=n.data,u=d.launchpads,s=void 0===u?[]:u,m=d.selected_id;return(0,o.createComponentVNode)(2,c.Window,{width:475,height:260,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:0===s.length&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Pads Connected"})||(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Flex,{minHeight:"190px",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{width:"140px",minHeight:"190px",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,ellipsis:!0,content:e.name,selected:m===e.id,color:"transparent",onClick:function(){return i("select_pad",{id:e.id})}},e.name)}))}),(0,o.createComponentVNode)(2,a.Flex.Item,{minHeight:"100%",children:(0,o.createComponentVNode)(2,a.Divider,{vertical:!0})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,minHeight:"100%",children:m&&(0,o.createComponentVNode)(2,l)||(0,o.createComponentVNode)(2,a.Box,{children:"Please select a pad"})})]})})})})}},59955:function(e,t,n){"use strict";t.__esModule=!0,t.LaunchpadRemote=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=n(79381);t.LaunchpadRemote=function(e,t){var n=(0,r.useBackend)(t).data,l=n.has_pad,d=n.pad_closed;return(0,o.createComponentVNode)(2,c.Window,{title:"Briefcase Launchpad Remote",width:300,height:240,theme:"syndicate",children:(0,o.createComponentVNode)(2,c.Window.Content,{children:!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Launchpad Connected"})||d&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Launchpad Closed"})||(0,o.createComponentVNode)(2,i.LaunchpadControl,{topLevel:!0})})})}},71293:function(e,t,n){"use strict";t.__esModule=!0,t.LoadoutSelect=void 0;var o=n(39812),r=n(71494),a=n(85952),c=n(74814);t.LoadoutSelect=function(e,t){var n,i,l=(0,r.useBackend)(t),d=l.act,u=l.data;return(0,o.createComponentVNode)(2,a.Window,{width:500,height:450,resizable:!0,children:(0,o.createComponentVNode)(2,a.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Tabs,{style:{"vertical-align":"top",flex:"initial"},children:null!=(n=u.outfits)&&n.length?u.outfits.map((function(e){return(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:u.selected===e,onClick:function(){return d("loadout_select",{name:e})},children:e},e)})):"No loadout options."}),(0,o.createComponentVNode)(2,c.Flex,{direction:"row",width:"100%",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{width:"50%",height:"100%",style:{"vertical-align":"top"},children:(0,o.createComponentVNode)(2,c.Section,{title:"Contents",fill:!0,fitted:!0,children:null!=(i=u.items)&&i.length?u.items.map((function(e){return(0,o.createVNode)(1,"div",null,[(0,o.createVNode)(1,"div",e.icon,null,1,{style:{transform:"scale(1.5)","vertical-align":"middle",float:"left",clear:"left",height:"32px",width:"32px"}}),(0,o.createVNode)(1,"div",null,[e.name,(0,o.createTextVNode)(" "),e.quantity>1&&"x"+e.quantity,(0,o.createVNode)(1,"br")],0,{style:{display:"block","vertical-align":"middle",float:"left",width:"calc(100% - 32px)","line-height":"32px",margin:"auto"}})],4,{style:{margin:"10px 10px","text-align":"center"}},""+e.name)})):"No outfit selected."})}),(0,o.createComponentVNode)(2,c.Flex.Item,{height:"100%",width:"50%",style:{"vertical-align":"top"},children:(0,o.createComponentVNode)(2,c.Section,{title:"Preview",fill:!0,children:u.preview?(0,o.createVNode)(1,"div",null,[(0,o.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+u.preview,style:{"image-rendering":"pixelated","-ms-interpolation-mode":"nearest-neighbor"},width:220,height:220}),(0,o.createVNode)(1,"br"),(0,o.createVNode)(1,"br"),(0,o.createVNode)(1,"div",null,[(0,o.createComponentVNode)(2,c.Button,{style:{display:"table-cell","text-align":"center"},content:"<<",onClick:function(){return d("loadout_preview_direction",{direction:-1})}}),(0,o.createComponentVNode)(2,c.Button,{style:{display:"table-cell","text-align":"center"},content:">>",onClick:function(){return d("loadout_preview_direction",{direction:1})}})],4,{style:{display:"table",width:"100%","text-align":"center"}}),(0,o.createComponentVNode)(2,c.Button,{style:{margin:"auto",display:"block","text-align":"center"},content:"Finished",onClick:function(){return d("loadout_confirm")}})],4,{style:{"text-align":"center"}}):"No outfit selected."})})]})]})})}},5568:function(e,t,n){"use strict";t.__esModule=!0,t.MafiaPanel=void 0;var o=n(39812),r=n(34380),a=(n(2497),n(71494)),c=n(74814),i=n(85952);t.MafiaPanel=function(e,t){var n=(0,a.useBackend)(t),d=n.act,u=n.data,s=u.lobbydata,m=u.players,p=u.actions,C=u.phase,h=u.roleinfo,N=u.role_theme,V=u.admin_controls,b=u.judgement_phase,f=u.timeleft,g=u.all_roles,v=h?30*m.length:7,k=s?s.filter((function(e){return"Ready"===e.status})):null;return(0,o.createComponentVNode)(2,i.Window,{title:"Mafia",theme:N,width:650,height:293+v,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:V,children:[!h&&(0,o.createComponentVNode)(2,c.Flex,{scrollable:!0,overflowY:"scroll",direction:"column",height:"100%",grow:1,children:(0,o.createComponentVNode)(2,c.Section,{title:"Lobby",mb:1,buttons:(0,o.createComponentVNode)(2,l,{phase:C,timeleft:f,admin_controls:V}),children:(0,o.createComponentVNode)(2,c.Box,{textAlign:"center",children:[(0,o.createComponentVNode)(2,c.NoticeBox,{info:!0,children:["The lobby currently has ",k.length,"/12 valid players signed up."]}),(0,o.createComponentVNode)(2,c.Flex,{direction:"column",children:!!s&&s.map((function(e){return(0,o.createComponentVNode)(2,c.Flex.Item,{basis:2,className:"Section__title candystripe",children:(0,o.createComponentVNode)(2,c.Flex,{height:2,align:"center",justify:"space-between",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{basis:0,children:e.name}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:"STATUS:"}),(0,o.createComponentVNode)(2,c.Flex.Item,{width:"30%",children:(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.Box,{color:"Ready"===e.status?"green":"red",textAlign:"center",children:[e.status," ",e.spectating]})})})]})},e)}))})]})})}),!!h&&(0,o.createComponentVNode)(2,c.Section,{title:C,minHeight:"100px",maxHeight:"50px",buttons:(0,o.createComponentVNode)(2,c.Box,{children:[!!V&&(0,o.createComponentVNode)(2,c.Button,{color:"red",icon:"gavel",tooltipPosition:"bottom-left",tooltip:"Hello admin! If it is the admin controls you seek,\nplease notice the extra scrollbar you have that players\ndo not!"})," ",(0,o.createComponentVNode)(2,c.TimeDisplay,{auto:"down",value:f})]}),children:(0,o.createComponentVNode)(2,c.Flex,{justify:"space-between",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{align:"center",textAlign:"center",maxWidth:"500px",children:[(0,o.createVNode)(1,"b",null,[(0,o.createTextVNode)("You are the "),h.role],0),(0,o.createVNode)(1,"br"),(0,o.createVNode)(1,"b",null,h.desc,0)]}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:[(0,o.createComponentVNode)(2,c.Box,{className:(0,r.classes)(["mafia32x32",h.revealed_icon]),style:{transform:"scale(2) translate(0px, 10%)","vertical-align":"middle"}}),(0,o.createComponentVNode)(2,c.Box,{className:(0,r.classes)(["mafia32x32",h.hud_icon]),style:{transform:"scale(2) translate(-5px, -5px)","vertical-align":"middle"}})]})]})}),(0,o.createComponentVNode)(2,c.Flex,{children:!!p&&p.map((function(e){return(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,c.Button,{onClick:function(){return d("mf_action",{atype:e})},children:e})},e)}))}),!!h&&(0,o.createComponentVNode)(2,c.Section,{title:"Judgement",buttons:(0,o.createComponentVNode)(2,c.Button,{color:"transparent",icon:"info",tooltipPosition:"left",tooltip:"When someone is on trial, you are in charge of their fate.\nInnocent winning means the person on trial can live to see\nanother day... and in losing they do not. You can go back\nto abstaining with the middle button if you reconsider."}),children:[(0,o.createComponentVNode)(2,c.Flex,{justify:"space-around",children:[(0,o.createComponentVNode)(2,c.Button,{icon:"smile-beam",content:"INNOCENT!",color:"good",disabled:!b,onClick:function(){return d("vote_innocent")}}),!b&&(0,o.createComponentVNode)(2,c.Box,{children:"There is nobody on trial at the moment."}),!!b&&(0,o.createComponentVNode)(2,c.Box,{children:"It is now time to vote, vote the accused innocent or guilty!"}),(0,o.createComponentVNode)(2,c.Button,{icon:"angry",content:"GUILTY!",color:"bad",disabled:!b,onClick:function(){return d("vote_guilty")}})]}),(0,o.createComponentVNode)(2,c.Flex,{justify:"center",children:(0,o.createComponentVNode)(2,c.Button,{icon:"meh",content:"Abstain",color:"white",disabled:!b,onClick:function(){return d("vote_abstain")}})})]}),"No Game"!==C&&(0,o.createComponentVNode)(2,c.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,c.Flex.Item,{grow:2,children:(0,o.createComponentVNode)(2,c.Section,{title:"Players",buttons:(0,o.createComponentVNode)(2,c.Button,{color:"transparent",icon:"info",tooltip:"This is the list of all the players in\nthe game, during the day phase you may vote on them and,\ndepending on your role, select players\nat certain phases to use your ability."}),children:(0,o.createComponentVNode)(2,c.Flex,{direction:"column",children:!!m&&m.map((function(e){return(0,o.createComponentVNode)(2,c.Flex.Item,{height:"30px",className:"Section__title candystripe",children:(0,o.createComponentVNode)(2,c.Flex,{height:"18px",justify:"space-between",align:"center",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{basis:16,children:[!!e.alive&&(0,o.createComponentVNode)(2,c.Box,{children:e.name}),!e.alive&&(0,o.createComponentVNode)(2,c.Box,{color:"red",children:e.name})]}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:!e.alive&&(0,o.createComponentVNode)(2,c.Box,{color:"red",children:"DEAD"})}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:e.votes!==undefined&&!!e.alive&&(0,o.createFragment)([(0,o.createTextVNode)("Votes : "),e.votes,(0,o.createTextVNode)(" ")],0)}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:!!e.actions&&e.actions.map((function(t){return(0,o.createComponentVNode)(2,c.Button,{onClick:function(){return d("mf_targ_action",{atype:t,target:e.ref})},children:t},t)}))})]})},e.ref)}))})})}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:2,children:(0,o.createComponentVNode)(2,c.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,c.Section,{title:"Roles and Notes",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{color:"transparent",icon:"address-book",tooltipPosition:"bottom-left",tooltip:"The top section is the roles in the game. You can\npress the question mark to get a quick blurb\nabout the role itself."}),(0,o.createComponentVNode)(2,c.Button,{color:"transparent",icon:"edit",tooltipPosition:"bottom-left",tooltip:"The bottom section are your notes. on some roles this\nwill just be an empty box, but on others it records the\nactions of your abilities (so for example, your\ndetective work revealing a changeling)."})],4),children:(0,o.createComponentVNode)(2,c.Flex,{direction:"column",children:!!g&&g.map((function(e){return(0,o.createComponentVNode)(2,c.Flex.Item,{height:"30px",className:"Section__title candystripe",children:(0,o.createComponentVNode)(2,c.Flex,{height:"18px",align:"center",justify:"space-between",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{children:e}),(0,o.createComponentVNode)(2,c.Flex.Item,{textAlign:"right",children:(0,o.createComponentVNode)(2,c.Button,{color:"transparent",icon:"question",onClick:function(){return d("mf_lookup",{atype:e.slice(0,-3)})}})})]})},e)}))})}),!!h&&(0,o.createComponentVNode)(2,c.Flex.Item,{height:0,grow:1,children:(0,o.createComponentVNode)(2,c.Section,{scrollable:!0,fill:!0,overflowY:"scroll",children:h!==undefined&&!!h.action_log&&h.action_log.map((function(e){return(0,o.createComponentVNode)(2,c.Box,{children:e},e)}))})})]})})]}),(0,o.createComponentVNode)(2,c.Flex,{mt:1,direction:"column",children:(0,o.createComponentVNode)(2,c.Flex.Item,{children:!!V&&(0,o.createComponentVNode)(2,c.Section,{textAlign:"center",children:(0,o.createComponentVNode)(2,c.Collapsible,{title:"ADMIN CONTROLS",color:"red",children:[(0,o.createComponentVNode)(2,c.Button,{icon:"exclamation-triangle",color:"black",tooltipPosition:"top",tooltip:"Almost all of these are all built to help me debug\nthe game (ow, debugging a 12 player game!) So they are\nrudamentary and prone to breaking at the drop of a hat.\nMake sure you know what you're doing when you press one.\nAlso because an admin did it: do not gib/delete/dust\nanyone! It will runtime the game to death!",content:"A Kind, Coder Warning",onClick:function(){return d("next_phase")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,c.Button,{icon:"arrow-right",tooltipPosition:"top",tooltip:"This will advance the game to the next phase\n(day talk > day voting, day voting > night/trial)\npretty fun to just spam this and freak people out,\ntry that roundend!",content:"Next Phase",onClick:function(){return d("next_phase")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"home",tooltipPosition:"top",tooltip:"Hopefully you won't use this button\noften, it's a safety net just in case\nmafia players somehow escape (nullspace\nredirects to the error room then station)\nEither way, VERY BAD IF THAT HAPPENS as\ngodmoded assistants will run free. Use\nthis to recollect them then make a bug report.",content:"Send All Players Home",onClick:function(){return d("players_home")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"sync-alt",tooltipPosition:"top",tooltip:"This immediately ends the game, and attempts to start\nanother. Nothing will happen if another\ngame fails to start!",content:"New Game",onClick:function(){return d("new_game")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"skull",tooltipPosition:"top",tooltip:"Deletes the datum, clears all landmarks, makes mafia\nas it was roundstart: nonexistant. Use this if you\nreally mess things up. You did mess things up, didn't you.",content:"Nuke",onClick:function(){return d("nuke")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,c.Button,{icon:"paint-brush",tooltipPosition:"top",tooltip:"This is the custom game creator, it is... simple.\nYou put in roles and until you press CANCEL or FINISH\nit will keep letting you add more roles. Assitants\non the bottom because of pathing stuff. Resets after\nthe round finishes back to 12 player random setups.",content:"Create Custom Setup",onClick:function(){return d("debug_setup")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"paint-roller",tooltipPosition:"top",tooltip:"If you messed up and accidently didn't make it how\nyou wanted, simply just press this to reset it. The game\nwill auto reset after each game as well.",content:"Reset Custom Setup",onClick:function(){return d("cancel_setup")}})]})})})})]})})};var l=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.phase,d=i.timeleft,u=i.admin_controls;return(0,o.createComponentVNode)(2,c.Box,{children:["[Phase = ",l," | ",(0,o.createComponentVNode)(2,c.TimeDisplay,{auto:"down",value:d}),"]"," ",(0,o.createComponentVNode)(2,c.Button,{icon:"clipboard-check",tooltipPosition:"bottom-left",tooltip:"Signs you up for the next game. If there\nis an ongoing one, you will be signed up\nfor the next.",content:"Sign Up",onClick:function(){return r("mf_signup")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"eye",tooltipPosition:"bottom-left",tooltip:"Spectates games until you turn it off.\nAutomatically enabled when you die in game,\nbecause I assumed you would want to see the\nconclusion. You won't get messages if you\nrejoin SS13.",content:"Spectate",onClick:function(){return r("mf_spectate")}}),!!u&&(0,o.createComponentVNode)(2,c.Button,{color:"red",icon:"gavel",tooltipPosition:"bottom-left",tooltip:"Hello admin! If it is the admin controls you seek,\nplease notice the scrollbar you have that players\ndo not!"})]})}},42159:function(e,t,n){"use strict";t.__esModule=!0,t.MalfunctionModulePicker=void 0;var o=n(39812),r=n(71494),a=n(85952),c=n(89761);t.MalfunctionModulePicker=function(e,t){var n=(0,r.useBackend)(t),i=(n.act,n.data.processingTime);return(0,o.createComponentVNode)(2,a.Window,{width:620,height:525,theme:"malfunction",resizable:!0,children:(0,o.createComponentVNode)(2,a.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,c.GenericUplink,{currencyAmount:i,currencySymbol:"PT"})})})}},80881:function(e,t,n){"use strict";t.__esModule=!0,t.MechBayPowerConsole=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.MechBayPowerConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.recharge_port,d=l&&l.mech,u=d&&d.cell;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:200,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Mech status",textAlign:"center",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Sync",onClick:function(){return i("reconnect")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Integrity",children:!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No power port detected. Please re-sync."})||!d&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mech detected."})||(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.health/d.maxhealth,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No power port detected. Please re-sync."})||!d&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mech detected."})||!u&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No cell is installed."})||(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.charge/u.maxcharge,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u.charge})," / "+u.maxcharge]})})]})})})})}},37305:function(e,t,n){"use strict";t.__esModule=!0,t.MechpadConsole=t.MechpadControl=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=function(e,t){var n=e.topLevel,c=(0,r.useBackend)(t),i=c.act,l=c.data,d=l.pad_name,u=l.connected_mechpad;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Input,{value:d,width:"170px",onChange:function(e,t){return i("rename",{name:t})}}),level:n?1:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Remove",color:"bad",onClick:function(){return i("remove")}}),children:!u&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",textAlign:"center",children:"No Pad Connected."})||(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"upload",content:"Launch",textAlign:"center",onClick:function(){return i("launch")}})})};t.MechpadControl=i;t.MechpadConsole=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.mechpads,s=void 0===u?[]:u,m=d.selected_id;return(0,o.createComponentVNode)(2,c.Window,{width:475,height:130,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:0===s.length&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Pads Connected"})||(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Flex,{minHeight:"70px",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{width:"140px",minHeight:"70px",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,ellipsis:!0,content:e.name,selected:m===e.id,color:"transparent",onClick:function(){return l("select_pad",{id:e.id})}},e.name)}))}),(0,o.createComponentVNode)(2,a.Flex.Item,{minHeight:"100%",children:(0,o.createComponentVNode)(2,a.Divider,{vertical:!0})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,minHeight:"100%",children:m&&(0,o.createComponentVNode)(2,i)||(0,o.createComponentVNode)(2,a.Box,{children:"Please select a pad"})})]})})})})}},74702:function(e,t,n){"use strict";t.__esModule=!0,t.MedicalKiosk=void 0;var o=n(39812),r=(n(2497),n(71494)),a=n(74814),c=n(85952);t.MedicalKiosk=function(e,t){var n=(0,r.useBackend)(t),p=(n.act,n.data),C=(0,r.useSharedState)(t,"scanIndex")[0],h=p.active_status_1,N=p.active_status_2,V=p.active_status_3,b=p.active_status_4;return(0,o.createComponentVNode)(2,c.Window,{width:575,height:420,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Flex,{mb:1,children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mr:1,children:(0,o.createComponentVNode)(2,a.Section,{minHeight:"100%",children:[(0,o.createComponentVNode)(2,i,{index:1,icon:"procedures",name:"General Health Scan",description:"Reads back exact values of your general health scan."}),(0,o.createComponentVNode)(2,i,{index:2,icon:"heartbeat",name:"Symptom Based Checkup",description:"Provides information based on various non-obvious symptoms,\nlike blood levels or disease status."}),(0,o.createComponentVNode)(2,i,{index:3,icon:"radiation-alt",name:"Neurological/Radiological Scan",description:"Provides information about brain trauma and radiation."}),(0,o.createComponentVNode)(2,i,{index:4,icon:"mortar-pestle",name:"Chemical and Psychoactive Scan",description:"Provides a list of consumed chemicals, as well as potential\nside effects."})]})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,l)})]}),!!h&&1===C&&(0,o.createComponentVNode)(2,d),!!N&&2===C&&(0,o.createComponentVNode)(2,u),!!V&&3===C&&(0,o.createComponentVNode)(2,s),!!b&&4===C&&(0,o.createComponentVNode)(2,m)]})})};var i=function(e,t){var n=e.index,c=e.name,i=e.description,l=e.icon,d=(0,r.useBackend)(t),u=d.act,s=d.data,m=(0,r.useSharedState)(t,"scanIndex"),p=m[0],C=m[1],h=s["active_status_"+n];return(0,o.createComponentVNode)(2,a.Flex,{spacing:1,align:"baseline",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{width:"16px",textAlign:"center",children:(0,o.createComponentVNode)(2,a.Icon,{name:h?"check":"dollar-sign",color:h?"green":"grey"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:l,selected:h&&p===n,tooltip:i,tooltipPosition:"right",content:c,onClick:function(){h||u("beginScan_"+n),C(n)}})})]})},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.kiosk_cost,d=i.patient_name;return(0,o.createComponentVNode)(2,a.Section,{minHeight:"100%",children:[(0,o.createComponentVNode)(2,a.Box,{italic:!0,children:["Greetings Valued Employee! Please select a desired automatic health check procedure. Diagnosis costs ",(0,o.createVNode)(1,"b",null,[l,(0,o.createTextVNode)(" credits.")],0)]}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:1,children:"Patient:"}),d]}),(0,o.createComponentVNode)(2,a.Button,{mt:1,tooltip:"Resets the current scanning target, cancelling current scans.",icon:"sync",color:"average",onClick:function(){return c("clearTarget")},content:"Reset Scanner"})]})},d=function(e,t){var n=(0,r.useBackend)(t).data,c=n.patient_health,i=n.brute_health,l=n.burn_health,d=n.suffocation_health,u=n.toxin_health;return(0,o.createComponentVNode)(2,a.Section,{title:"Patient Health",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Total Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c/100,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c}),"%"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brute Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Burn Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:l})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Oxygen Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Toxin Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u})})})]})})},u=function(e,t){var n=(0,r.useBackend)(t).data,c=n.patient_status,i=n.patient_illness,l=n.illness_info,d=n.bleed_status,u=n.blood_levels,s=n.blood_status;return(0,o.createComponentVNode)(2,a.Section,{title:"Symptom Based Checkup",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Patient Status",color:"good",children:c}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disease Status",children:i}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disease information",children:l}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Levels",children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:u/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u})}),(0,o.createComponentVNode)(2,a.Box,{mt:1,color:"label",children:d})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Information",children:s})]})})},s=function(e,t){var n=(0,r.useBackend)(t).data,c=n.clone_health,i=n.brain_damage,l=n.brain_health,d=n.rad_contamination_status,u=n.rad_contamination_value,s=n.rad_sickness_status,m=n.rad_sickness_value,p=n.trauma_status;return(0,o.createComponentVNode)(2,a.Section,{title:"Patient Neurological and Radiological Health",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cellular Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c/100,color:"good",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c})})}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i/100,color:"good",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain Status",color:"health-0",children:l}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain Trauma Status",children:p}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Sickness Status",children:s}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Sickness Percentage",children:[m,"%"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Contamination Status",children:d}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Contamination Percentage",children:[u,"%"]})]})})},m=function(e,t){var n=(0,r.useBackend)(t).data,c=n.chemical_list,i=void 0===c?[]:c,l=n.overdose_list,d=void 0===l?[]:l,u=n.addict_list,s=void 0===u?[]:u,m=n.hallucinating_status;return(0,o.createComponentVNode)(2,a.Section,{title:"Chemical and Psychoactive Analysis",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Chemical Contents",children:[0===i.length&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No reagents detected."}),i.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{color:"good",children:[e.volume," units of ",e.name]},e.id)}))]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Overdose Status",color:"bad",children:[0===d.length&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Patient is not overdosing."}),d.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:["Overdosing on ",e.name]},e.id)}))]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Addiction Status",color:"bad",children:[0===s.length&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Patient has no addictions."}),s.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:["Addicted to ",e.name]},e.id)}))]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Psychoactive Status",children:m})]})})}},61443:function(e,t,n){"use strict";t.__esModule=!0,t.Microscope=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.Microscope=function(e,t){var n=(0,r.useBackend)(t),d=n.act,u=n.data,s=(0,r.useSharedState)(t,"tab",1),m=s[0],p=s[1],C=u.has_dish,h=u.cell_lines,N=void 0===h?[]:h,V=u.viruses,b=void 0===V?[]:V;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Dish Sample",children:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!C,onClick:function(){return d("eject_petridish")}})})})}),(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{icon:"microscope",lineHeight:"23px",selected:1===m,onClick:function(){return p(1)},children:["Micro-Organisms (",N.length,")"]}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{icon:"microscope",lineHeight:"23px",selected:2===m,onClick:function(){return p(2)},children:["Viruses (",b.length,")"]})]}),1===m&&(0,o.createComponentVNode)(2,i,{cell_lines:N}),2===m&&(0,o.createComponentVNode)(2,l,{viruses:b})]})})};var i=function(e,t){var n=e.cell_lines,c=(0,r.useBackend)(t);c.act,c.data;return n.length?n.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.desc,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Growth Rate",children:e.growth_rate}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Virus Suspectibility",children:e.suspectibility}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Required Reagents",children:e.requireds}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Supplementary Reagents",children:e.supplementaries}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Suppresive reagents",children:e.suppressives})]})},e.desc)})):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No micro-organisms found"})},l=function(e,t){var n=e.viruses;(0,r.useBackend)(t).act;return n.length?n.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.desc},e.desc)})):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No viruses found"})}},62012:function(e,t,n){"use strict";t.__esModule=!0,t.MiningVendor=void 0;var o=n(39812),r=n(34380),a=n(71494),c=n(74814),i=n(85952);t.MiningVendor=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=[].concat(d.product_records);return(0,o.createComponentVNode)(2,i.Window,{width:425,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{title:"User",children:d.user&&(0,o.createComponentVNode)(2,c.Box,{children:["Welcome, ",(0,o.createVNode)(1,"b",null,d.user.name||"Unknown",0),","," ",(0,o.createVNode)(1,"b",null,d.user.job||"Unemployed",0),"!",(0,o.createVNode)(1,"br"),"Your balance is ",(0,o.createVNode)(1,"b",null,[d.user.points,(0,o.createTextVNode)(" mining points")],0),"."]})||(0,o.createComponentVNode)(2,c.Box,{color:"light-gray",children:["No registered ID card!",(0,o.createVNode)(1,"br"),"Please contact your local HoP!"]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Equipment",children:(0,o.createComponentVNode)(2,c.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:[(0,o.createVNode)(1,"span",(0,r.classes)(["vending32x32",e.path]),null,1,{style:{"vertical-align":"middle"}})," ",(0,o.createVNode)(1,"b",null,e.name,0)]}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,o.createComponentVNode)(2,c.Button,{style:{"min-width":"95px","text-align":"center"},disabled:!d.user||e.price>d.user.points,content:e.price+" points",onClick:function(){return l("purchase",{ref:e.ref})}})})]},e.name)}))})})]})})}},83413:function(e,t,n){"use strict";t.__esModule=!0,t.Mint=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.Mint=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.inserted_materials||[];return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Materials",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l.processing?"times":"power-off",content:l.processing?"Stop":"Start",selected:l.processing,onClick:function(){return i(l.processing?"stoppress":"startpress")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:d.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.material,buttons:(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:l.chosen_material===e.material,onClick:function(){return i("changematerial",{material_name:e.material})}}),children:[e.amount," cm\xb3"]},e.material)}))})}),(0,o.createComponentVNode)(2,a.Section,{children:["Pressed ",l.produced_coins," coins this cycle."]})]})})}},97397:function(e,t,n){"use strict";t.__esModule=!0,t.Mule=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=n(21451);t.Mule=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.on,s=d.cell,m=d.cellPercent,p=d.load,C=d.mode,h=d.modeStatus,N=d.haspai,V=d.autoReturn,b=d.autoPickup,f=d.reportDelivery,g=d.destination,v=d.home,k=d.id,x=d.destinations,B=void 0===x?[]:x,_=d.locked&&!d.siliconUser;return(0,o.createComponentVNode)(2,c.Window,{width:350,height:425,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox),(0,o.createComponentVNode)(2,a.Section,{title:"Status",minHeight:"110px",buttons:!_&&(0,o.createComponentVNode)(2,a.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,onClick:function(){return l("power")}}),children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:s?m/100:0,color:s?"good":"bad"}),(0,o.createComponentVNode)(2,a.Flex,{mt:1,children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mode",color:h,children:C})})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Load",color:p?"good":"average",children:p||"None"})})})]})]}),!_&&(0,o.createComponentVNode)(2,a.Section,{title:"Controls",buttons:(0,o.createFragment)([!!p&&(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Unload",onClick:function(){return l("unload")}}),!!N&&(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject PAI",onClick:function(){return l("ejectpai")}})],0),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID",children:(0,o.createComponentVNode)(2,a.Input,{value:k,onChange:function(e,t){return l("setid",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Destination",children:[(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:g||"None",options:B,width:"150px",onSelected:function(e){return l("destination",{value:e})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"stop",content:"Stop",onClick:function(){return l("stop")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"play",content:"Go",onClick:function(){return l("go")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Home",children:[(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:v,options:B,width:"150px",onSelected:function(e){return l("destination",{value:e})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"home",content:"Go Home",onClick:function(){return l("home")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Settings",children:[(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:V,content:"Auto-Return",onClick:function(){return l("autored")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:b,content:"Auto-Pickup",onClick:function(){return l("autopick")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:f,content:"Report Delivery",onClick:function(){return l("report")}})]})]})})]})})}},42370:function(e,t,n){"use strict";t.__esModule=!0,t.NaniteChamberControlContent=t.NaniteChamberControl=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NaniteChamberControl=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{width:380,height:570,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.status_msg,d=i.locked,u=i.occupant_name,s=i.has_nanites,m=i.nanite_volume,p=i.regen_rate,C=i.safety_threshold,h=i.cloud_id,N=i.scan_level;if(l)return(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:l});var V=i.mob_programs||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Chamber: "+u,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d?"lock":"lock-open",content:d?"Locked":"Unlocked",color:d?"bad":"default",onClick:function(){return c("toggle_lock")}}),children:s?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Status",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation-triangle",content:"Destroy Nanites",color:"bad",onClick:function(){return c("remove_nanites")}}),children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Nanite Volume",children:m}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Growth Rate",children:p})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Safety Threshold",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:C,minValue:0,maxValue:500,width:"39px",onChange:function(e,t){return c("set_safety",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cloud ID",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:h,minValue:0,maxValue:100,step:1,stepPixelSize:3,width:"39px",onChange:function(e,t){return c("set_cloud",{value:t})}})})]})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Programs",level:2,children:V.map((function(e){var t=e.extra_settings||[],n=e.rules||[];return(0,o.createComponentVNode)(2,a.Collapsible,{title:e.name,children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:e.desc}),N>=2&&(0,o.createComponentVNode)(2,a.Grid.Column,{size:.6,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.activated?"good":"bad",children:e.activated?"Active":"Inactive"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Nanites Consumed",children:[e.use_rate,"/s"]})]})})]}),N>=2&&(0,o.createComponentVNode)(2,a.Grid,{children:[!!e.can_trigger&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Triggers",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:e.trigger_cost}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:e.trigger_cooldown}),!!e.timer_trigger_delay&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:[e.timer_trigger_delay," s"]}),!!e.timer_trigger&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Repeat Timer",children:[e.timer_trigger," s"]})]})})}),!(!e.timer_restart&&!e.timer_shutdown)&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[e.timer_restart&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart Timer",children:[e.timer_restart," s"]}),e.timer_shutdown&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown Timer",children:[e.timer_shutdown," s"]})]})})})]}),N>=3&&!!e.has_extra_settings&&(0,o.createComponentVNode)(2,a.Section,{title:"Extra Settings",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:t.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:e.value},e.name)}))})}),N>=4&&(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[!!e.activation_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:e.activation_code}),!!e.deactivation_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:e.deactivation_code}),!!e.kill_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:e.kill_code}),!!e.can_trigger&&!!e.trigger_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:e.trigger_code})]})})}),e.has_rules&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Rules",level:2,children:n.map((function(e){return(0,o.createFragment)([e.display,(0,o.createVNode)(1,"br")],0,e.display)}))})})]})]})},e.name)}))})],4):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"bad",textAlign:"center",fontSize:"30px",mb:1,children:"No Nanites Detected"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,icon:"syringe",content:" Implant Nanites",color:"green",textAlign:"center",fontSize:"30px",lineHeight:"50px",onClick:function(){return c("nanite_injection")}})],4)})};t.NaniteChamberControlContent=i},93623:function(e,t,n){"use strict";t.__esModule=!0,t.NaniteCloudControl=t.NaniteCloudBackupDetails=t.NaniteCloudBackupList=t.NaniteInfoBox=t.NaniteDiskBox=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=function(e,t){var n=(0,r.useBackend)(t).data,c=n.has_disk,i=n.has_program,d=n.disk;return c?i?(0,o.createComponentVNode)(2,l,{program:d}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Inserted disk has no program"}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No disk inserted"})};t.NaniteDiskBox=i;var l=function(e,t){var n=e.program,r=n.name,c=n.desc,i=n.activated,l=n.use_rate,d=n.can_trigger,u=n.trigger_cost,s=n.trigger_cooldown,m=n.activation_code,p=n.deactivation_code,C=n.kill_code,h=n.trigger_code,N=n.timer_restart,V=n.timer_shutdown,b=n.timer_trigger,f=n.timer_trigger_delay,g=n.extra_settings||[];return(0,o.createComponentVNode)(2,a.Section,{title:r,level:2,buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:i?"good":"bad",children:i?"Activated":"Deactivated"}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{mr:1,children:c}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:.5,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Use Rate",children:l}),!!d&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:u}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:s})],4)]})})]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:m}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:p}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:C}),!!d&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:h})]})})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Delays",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart",children:[N," s"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown",children:[V," s"]}),!!d&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:[b," s"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:[f," s"]})],4)]})})})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Extra Settings",level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:g.map((function(e){var t={number:(0,o.createFragment)([e.value,e.unit],0),text:e.value,type:e.value,boolean:e.value?e.true_text:e.false_text};return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:t[e.type]},e.name)}))})})]})};t.NaniteInfoBox=l;var d=function(e,t){var n=(0,r.useBackend)(t),c=n.act;return(n.data.cloud_backups||[]).map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Backup #"+e.cloud_id,textAlign:"center",onClick:function(){return c("set_view",{view:e.cloud_id})}},e.cloud_id)}))};t.NaniteCloudBackupList=d;var u=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,d=i.current_view,u=i.disk,s=i.has_program,m=i.cloud_backup,p=u&&u.can_rule||!1;if(!m)return(0,o.createComponentVNode)(2,a.NoticeBox,{children:"ERROR: Backup not found"});var C=i.cloud_programs||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Backup #"+d,level:2,buttons:!!s&&(0,o.createComponentVNode)(2,a.Button,{icon:"upload",content:"Upload From Disk",color:"good",onClick:function(){return c("upload_program")}}),children:C.map((function(e){var t=e.rules||[];return(0,o.createComponentVNode)(2,a.Collapsible,{title:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"minus-circle",color:"bad",onClick:function(){return c("remove_program",{program_id:e.id})}}),children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,l,{program:e}),(!!p||!!e.has_rules)&&(0,o.createComponentVNode)(2,a.Section,{mt:-2,title:"Rules",level:2,buttons:!!p&&(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Add Rule from Disk",color:"good",onClick:function(){return c("add_rule",{program_id:e.id})}}),children:e.has_rules?t.map((function(t){return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"minus-circle",color:"bad",onClick:function(){return c("remove_rule",{program_id:e.id,rule_id:t.id})}})," "+t.display]},t.display)})):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"No Active Rules"})})]})},e.name)}))})};t.NaniteCloudBackupDetails=u;t.NaniteCloudControl=function(e,t){var n=(0,r.useBackend)(t),l=n.act,s=n.data,m=s.has_disk,p=s.current_view,C=s.new_backup_id;return(0,o.createComponentVNode)(2,c.Window,{width:375,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Program Disk",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!m,onClick:function(){return l("eject")}}),children:(0,o.createComponentVNode)(2,i)}),(0,o.createComponentVNode)(2,a.Section,{title:"Cloud Storage",buttons:p?(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"Return",onClick:function(){return l("set_view",{view:0})}}):(0,o.createFragment)(["New Backup: ",(0,o.createComponentVNode)(2,a.NumberInput,{value:C,minValue:1,maxValue:100,stepPixelSize:4,width:"39px",onChange:function(e,t){return l("update_new_backup_value",{value:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return l("create_backup")}})],0),children:s.current_view?(0,o.createComponentVNode)(2,u):(0,o.createComponentVNode)(2,d)})]})})}},22682:function(e,t,n){"use strict";t.__esModule=!0,t.NaniteProgramHub=void 0;var o=n(39812),r=n(64499),a=n(71494),c=n(74814),i=n(85952);t.NaniteProgramHub=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.detail_view,s=d.disk,m=d.has_disk,p=d.has_program,C=d.programs,h=void 0===C?{}:C,N=(0,a.useSharedState)(t,"category"),V=N[0],b=N[1],f=h&&h[V]||[];return(0,o.createComponentVNode)(2,i.Window,{width:500,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{title:"Program Disk",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:"eject",content:"Eject",onClick:function(){return l("eject")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"minus-circle",content:"Delete Program",onClick:function(){return l("clear")}})],4),children:m?p?(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Program Name",children:s.name}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Description",children:s.desc})]}):(0,o.createComponentVNode)(2,c.NoticeBox,{children:"No Program Installed"}):(0,o.createComponentVNode)(2,c.NoticeBox,{children:"Insert Disk"})}),(0,o.createComponentVNode)(2,c.Section,{title:"Programs",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:u?"info":"list",content:u?"Detailed":"Compact",onClick:function(){return l("toggle_details")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"sync",content:"Sync Research",onClick:function(){return l("refresh")}})],4),children:null!==h?(0,o.createComponentVNode)(2,c.Flex,{children:[(0,o.createComponentVNode)(2,c.Flex.Item,{minWidth:"110px",children:(0,o.createComponentVNode)(2,c.Tabs,{vertical:!0,children:(0,r.map)((function(e,t){var n=t.substring(0,t.length-8);return(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:t===V,onClick:function(){return b(t)},children:n},t)}))(h)})}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1,basis:0,children:u?f.map((function(e){return(0,o.createComponentVNode)(2,c.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"download",content:"Download",disabled:!m,onClick:function(){return l("download",{program_id:e.id})}}),children:e.desc},e.id)})):(0,o.createComponentVNode)(2,c.LabeledList,{children:f.map((function(e){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.name,buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"download",content:"Download",disabled:!m,onClick:function(){return l("download",{program_id:e.id})}})},e.id)}))})})]}):(0,o.createComponentVNode)(2,c.NoticeBox,{children:"No nanite programs are currently researched."})})]})})}},87554:function(e,t,n){"use strict";t.__esModule=!0,t.NaniteProgrammerContent=t.NaniteProgrammer=t.NaniteExtraBoolean=t.NaniteExtraType=t.NaniteExtraText=t.NaniteExtraNumber=t.NaniteExtraEntry=t.NaniteDelays=t.NaniteCodes=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.activation_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return c("set_code",{target_code:"activation",code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.deactivation_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return c("set_code",{target_code:"deactivation",code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.kill_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return c("set_code",{target_code:"kill",code:t})}})}),!!i.can_trigger&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.trigger_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return c("set_code",{target_code:"trigger",code:t})}})})]})})};t.NaniteCodes=i;var l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Delays",level:3,ml:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_restart,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return c("set_restart_timer",{delay:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_shutdown,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return c("set_shutdown_timer",{delay:t})}})}),!!i.can_trigger&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Repeat Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_trigger,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return c("set_trigger_timer",{delay:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_trigger_delay,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return c("set_timer_trigger_delay",{delay:t})}})})],4)]})})};t.NaniteDelays=l;var d=function(e,t){var n=e.extra_setting,r=n.name,c=n.type,i={number:(0,o.createComponentVNode)(2,u,{extra_setting:n}),text:(0,o.createComponentVNode)(2,s,{extra_setting:n}),type:(0,o.createComponentVNode)(2,m,{extra_setting:n}),boolean:(0,o.createComponentVNode)(2,p,{extra_setting:n})};return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:r,children:i[c]})};t.NaniteExtraEntry=d;var u=function(e,t){var n=e.extra_setting,c=(0,r.useBackend)(t).act,i=n.name,l=n.value,d=n.min,u=n.max,s=n.unit;return(0,o.createComponentVNode)(2,a.NumberInput,{value:l,width:"64px",minValue:d,maxValue:u,unit:s,onChange:function(e,t){return c("set_extra_setting",{target_setting:i,value:t})}})};t.NaniteExtraNumber=u;var s=function(e,t){var n=e.extra_setting,c=(0,r.useBackend)(t).act,i=n.name,l=n.value;return(0,o.createComponentVNode)(2,a.Input,{value:l,width:"200px",onInput:function(e,t){return c("set_extra_setting",{target_setting:i,value:t})}})};t.NaniteExtraText=s;var m=function(e,t){var n=e.extra_setting,c=(0,r.useBackend)(t).act,i=n.name,l=n.value,d=n.types;return(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:l,width:"150px",options:d,onSelected:function(e){return c("set_extra_setting",{target_setting:i,value:e})}})};t.NaniteExtraType=m;var p=function(e,t){var n=e.extra_setting,c=(0,r.useBackend)(t).act,i=n.name,l=n.value,d=n.true_text,u=n.false_text;return(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:l?d:u,checked:l,onClick:function(){return c("set_extra_setting",{target_setting:i})}})};t.NaniteExtraBoolean=p;t.NaniteProgrammer=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{width:420,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,C)})})};var C=function(e,t){var n=(0,r.useBackend)(t),c=n.act,u=n.data,s=u.has_disk,m=u.has_program,p=u.name,C=u.desc,h=u.use_rate,N=u.can_trigger,V=u.trigger_cost,b=u.trigger_cooldown,f=u.activated,g=u.has_extra_settings,v=u.extra_settings,k=void 0===v?{}:v;return s?m?(0,o.createComponentVNode)(2,a.Section,{title:p,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return c("eject")}}),children:[(0,o.createComponentVNode)(2,a.Section,{title:"Info",level:2,children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:C}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:.7,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Use Rate",children:h}),!!N&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:V}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:b})],4)]})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Settings",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:f?"power-off":"times",content:f?"Active":"Inactive",selected:f,color:"bad",bold:!0,onClick:function(){return c("toggle_active")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,i)}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,l)})]}),!!g&&(0,o.createComponentVNode)(2,a.Section,{title:"Special",level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:k.map((function(e){return(0,o.createComponentVNode)(2,d,{extra_setting:e},e.name)}))})})]})]}):(0,o.createComponentVNode)(2,a.Section,{title:"Blank Disk",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return c("eject")}})}):(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"Insert a nanite program disk"})};t.NaniteProgrammerContent=C},73708:function(e,t,n){"use strict";t.__esModule=!0,t.NaniteRemoteContent=t.NaniteRemote=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NaniteRemote=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{width:420,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.code,d=i.locked,u=i.mode,s=i.program_name,m=i.relay_code,p=i.comms,C=i.message,h=i.saved_settings,N=void 0===h?[]:h;return d?(0,o.createComponentVNode)(2,a.NoticeBox,{children:"This interface is locked."}):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Nanite Control",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lock",content:"Lock Interface",onClick:function(){return c("lock")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:[(0,o.createComponentVNode)(2,a.Input,{value:s,maxLength:14,width:"130px",onChange:function(e,t){return c("update_name",{name:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"save",content:"Save",onClick:function(){return c("save")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:p?"Comm Code":"Signal Code",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:l,minValue:0,maxValue:9999,width:"47px",step:1,stepPixelSize:2,onChange:function(e,t){return c("set_code",{code:t})}})}),!!p&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message",children:(0,o.createComponentVNode)(2,a.Input,{value:C,width:"270px",onChange:function(e,t){return c("set_message",{value:t})}})}),"Relay"===u&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Relay Code",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:m,minValue:0,maxValue:9999,width:"47px",step:1,stepPixelSize:2,onChange:function(e,t){return c("set_relay_code",{code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Signal Mode",children:["Off","Local","Targeted","Area","Relay"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,selected:u===e,onClick:function(){return c("select_mode",{mode:e})}},e)}))})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Saved Settings",children:N.length>0?(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{width:"35%",children:"Name"}),(0,o.createComponentVNode)(2,a.Table.Cell,{width:"20%",children:"Mode"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Code"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Relay"})]}),N.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,color:"label",children:[e.name,":"]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.mode}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.code}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Relay"===e.mode&&e.relay_code}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"upload",color:"good",onClick:function(){return c("load",{save_id:e.id})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"minus",color:"bad",onClick:function(){return c("remove_save",{save_id:e.id})}})]})]},e.id)}))]}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No settings currently saved"})})],4)};t.NaniteRemoteContent=i},15394:function(e,t,n){"use strict";t.__esModule=!0,t.NotificationPreferences=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NotificationPreferences=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=(n.data.ignore||[]).sort((function(e,t){var n=e.desc.toLowerCase(),o=t.desc.toLowerCase();return no?1:0}));return(0,o.createComponentVNode)(2,c.Window,{title:"Notification Preferences",width:270,height:360,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:"Ghost Role Notifications",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:e.enabled?"times":"check",content:e.desc,color:e.enabled?"bad":"good",onClick:function(){return i("toggle_ignore",{key:e.key})}},e.key)}))})})})}},53158:function(e,t,n){"use strict";t.__esModule=!0,t.NtnetRelay=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NtnetRelay=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.enabled,u=l.dos_capacity,s=l.dos_overload,m=l.dos_crashed;return(0,o.createComponentVNode)(2,c.Window,{title:"NtNet Quantum Relay",width:400,height:300,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Network Buffer",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",selected:d,content:d?"ENABLED":"DISABLED",onClick:function(){return i("toggle")}}),children:m?(0,o.createComponentVNode)(2,a.Box,{fontFamily:"monospace",children:[(0,o.createComponentVNode)(2,a.Box,{fontSize:"20px",children:"NETWORK BUFFER OVERFLOW"}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"16px",children:"OVERLOAD RECOVERY MODE"}),(0,o.createComponentVNode)(2,a.Box,{children:"This system is suffering temporary outage due to overflow of traffic buffers. Until buffered traffic is processed, all further requests will be dropped. Frequent occurences of this error may indicate insufficient hardware capacity of your network. Please contact your network planning department for instructions on how to resolve this issue."}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"20px",color:"bad",children:"ADMINISTRATOR OVERRIDE"}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"16px",color:"bad",children:"CAUTION - DATA LOSS MAY OCCUR"}),(0,o.createComponentVNode)(2,a.Button,{icon:"signal",content:"PURGE BUFFER",mt:1,color:"bad",onClick:function(){return i("restart")}})]}):(0,o.createComponentVNode)(2,a.ProgressBar,{value:s,minValue:0,maxValue:u,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:s})," GQ"," / ",u," GQ"]})})})})}},86156:function(e,t,n){"use strict";t.__esModule=!0,t.NtosAiRestorer=void 0;var o=n(39812),r=n(85952),a=n(33084);t.NtosAiRestorer=function(){return(0,o.createComponentVNode)(2,r.NtosWindow,{width:370,height:400,resizable:!0,children:(0,o.createComponentVNode)(2,r.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.AiRestorerContent)})})}},79760:function(e,t,n){"use strict";t.__esModule=!0,t.NtosArcade=void 0;var o=n(39812),r=n(5908),a=n(71494),c=n(74814),i=n(85952);t.NtosArcade=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data;return(0,o.createComponentVNode)(2,i.NtosWindow,{width:450,height:350,children:(0,o.createComponentVNode)(2,i.NtosWindow.Content,{children:(0,o.createComponentVNode)(2,c.Section,{title:"Outbomb Cuban Pete Ultra",textAlign:"center",children:[(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{size:2,children:[(0,o.createComponentVNode)(2,c.Box,{m:1}),(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Player Health",children:(0,o.createComponentVNode)(2,c.ProgressBar,{value:d.PlayerHitpoints,minValue:0,maxValue:30,ranges:{olive:[31,Infinity],good:[20,31],average:[10,20],bad:[-Infinity,10]},children:[d.PlayerHitpoints,"HP"]})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Player Magic",children:(0,o.createComponentVNode)(2,c.ProgressBar,{value:d.PlayerMP,minValue:0,maxValue:10,ranges:{purple:[11,Infinity],violet:[3,11],bad:[-Infinity,3]},children:[d.PlayerMP,"MP"]})})]}),(0,o.createComponentVNode)(2,c.Box,{my:1,mx:4}),(0,o.createComponentVNode)(2,c.Section,{backgroundColor:1===d.PauseState?"#1b3622":"#471915",children:d.Status})]}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:[(0,o.createComponentVNode)(2,c.ProgressBar,{value:d.Hitpoints,minValue:0,maxValue:45,ranges:{good:[30,Infinity],average:[5,30],bad:[-Infinity,5]},children:[(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:d.Hitpoints}),"HP"]}),(0,o.createComponentVNode)(2,c.Box,{m:1}),(0,o.createComponentVNode)(2,c.Section,{inline:!0,width:"156px",textAlign:"center",children:(0,o.createVNode)(1,"img",null,null,1,{src:(0,r.resolveAsset)(d.BossID)})})]})]}),(0,o.createComponentVNode)(2,c.Box,{my:1,mx:4}),(0,o.createComponentVNode)(2,c.Button,{icon:"fist-raised",tooltip:"Go in for the kill!",tooltipPosition:"top",disabled:0===d.GameActive||1===d.PauseState,onClick:function(){return l("Attack")},content:"Attack!"}),(0,o.createComponentVNode)(2,c.Button,{icon:"band-aid",tooltip:"Heal yourself!",tooltipPosition:"top",disabled:0===d.GameActive||1===d.PauseState,onClick:function(){return l("Heal")},content:"Heal!"}),(0,o.createComponentVNode)(2,c.Button,{icon:"magic",tooltip:"Recharge your magic!",tooltipPosition:"top",disabled:0===d.GameActive||1===d.PauseState,onClick:function(){return l("Recharge_Power")},content:"Recharge!"})]}),(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,c.Button,{icon:"sync-alt",tooltip:"One more game couldn't hurt.",tooltipPosition:"top",disabled:1===d.GameActive,onClick:function(){return l("Start_Game")},content:"Begin Game"}),(0,o.createComponentVNode)(2,c.Button,{icon:"ticket-alt",tooltip:"Claim at your local Arcade Computer for Prizes!",tooltipPosition:"top",disabled:1===d.GameActive,onClick:function(){return l("Dispense_Tickets")},content:"Claim Tickets"})]}),(0,o.createComponentVNode)(2,c.Box,{color:d.TicketCount>=1?"good":"normal",children:["Earned Tickets: ",d.TicketCount]})]})})})}},5313:function(e,t,n){"use strict";t.__esModule=!0,t.NtosAtmos=void 0;var o=n(39812),r=n(64499),a=n(85531),c=n(41860),i=n(71494),l=n(74814),d=n(76270),u=n(85952);t.NtosAtmos=function(e,t){var n=(0,i.useBackend)(t),s=(n.act,n.data),m=s.AirTemp,p=s.AirPressure,C=(0,a.flow)([(0,r.filter)((function(e){return e.percentage>=.01})),(0,r.sortBy)((function(e){return-e.percentage}))])(s.AirData||[]),h=Math.max.apply(Math,[1].concat(C.map((function(e){return e.percentage}))));return(0,o.createComponentVNode)(2,u.NtosWindow,{width:300,height:350,resizable:!0,children:(0,o.createComponentVNode)(2,u.NtosWindow.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,l.Section,{children:(0,o.createComponentVNode)(2,l.LabeledList,{children:[(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Temperature",children:[m,"\xb0C"]}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Pressure",children:[p," kPa"]})]})}),(0,o.createComponentVNode)(2,l.Section,{children:(0,o.createComponentVNode)(2,l.LabeledList,{children:C.map((function(e){return(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:(0,d.getGasLabel)(e.name),children:(0,o.createComponentVNode)(2,l.ProgressBar,{color:(0,d.getGasColor)(e.name),value:e.percentage,minValue:0,maxValue:h,children:(0,c.toFixed)(e.percentage,2)+"%"})},e.name)}))})})]})})}},78502:function(e,t,n){"use strict";t.__esModule=!0,t.NtosBountyConsole=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(58083),i=n(85952);t.NtosBountyConsole=function(e,t){var n=(0,r.useBackend)(t),c=n.act,d=n.data.bountydata,u=void 0===d?[]:d;return(0,o.createComponentVNode)(2,i.NtosWindow,{width:750,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,l),buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:"Print Bounty List",onClick:function(){return c("Print")}}),children:(0,o.createComponentVNode)(2,a.Table,{border:!0,children:[(0,o.createComponentVNode)(2,a.Table.Row,{bold:!0,italic:!0,color:"label",fontSize:1.25,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Bounty Object"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Description"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Progress"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Value"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Claim"})]}),u.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{backgroundColor:1===e.priority?"rgba(252, 152, 3, 0.25)":"",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{italic:!0,textAlign:"center",p:1,children:e.description}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,textAlign:"center",children:[1===e.priority?(0,o.createComponentVNode)(2,a.Box,{children:"High Priority"}):"",e.completion_string]}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,textAlign:"center",children:e.reward_string}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",icon:1===e.claimed?"check":"",content:1===e.claimed?"Claimed":"Claim",disabled:1===e.claimed,color:1===e.can_claim?"green":"red",onClick:function(){return c("ClaimBounty",{bounty:e.bounty_ref})}})})]},e.name)}))]})})})})};var l=function(e,t){var n=(0,r.useBackend)(t),i=(n.act,n.data.stored_cash);return(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i,format:function(e){return(0,c.formatMoney)(e)}})," credits"]})}},30495:function(e,t,n){"use strict";t.__esModule=!0,t.NtosCardContent=t.NtosCard=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=n(5665);t.NtosCard=function(e,t){return(0,o.createComponentVNode)(2,c.NtosWindow,{width:450,height:520,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,l)})})};var l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=(0,r.useLocalState)(t,"tab",1),u=d[0],s=d[1],m=l.authenticated,p=l.regions,C=void 0===p?[]:p,h=l.access_on_card,N=void 0===h?[]:h,V=l.jobs,b=void 0===V?{}:V,f=l.id_rank,g=l.id_owner,v=l.has_id,k=l.have_printer,x=l.have_id_slot,B=l.id_name,_=(0,r.useLocalState)(t,"department",Object.keys(b)[0]),w=_[0],L=_[1];if(!x)return(0,o.createComponentVNode)(2,a.NoticeBox,{children:"This program requires an ID slot in order to function"});var y=b[w]||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:v&&m?(0,o.createComponentVNode)(2,a.Input,{value:g,width:"250px",onInput:function(e,t){return c("PRG_edit",{name:t})}}):g||"No Card Inserted",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:"Print",disabled:!k||!v,onClick:function(){return c("PRG_print")}}),(0,o.createComponentVNode)(2,a.Button,{icon:m?"sign-out-alt":"sign-in-alt",content:m?"Log Out":"Log In",color:m?"bad":"good",onClick:function(){c(m?"PRG_logout":"PRG_authenticate")}})],4),children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"eject",content:B,onClick:function(){return c("PRG_eject")}})}),!!v&&!!m&&(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===u,onClick:function(){return s(1)},children:"Access"}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===u,onClick:function(){return s(2)},children:"Jobs"})]}),1===u&&(0,o.createComponentVNode)(2,i.AccessList,{accesses:C,selectedList:N,accessMod:function(e){return c("PRG_access",{access_target:e})},grantAll:function(){return c("PRG_grantall")},denyAll:function(){return c("PRG_denyall")},grantDep:function(e){return c("PRG_grantregion",{region:e})},denyDep:function(e){return c("PRG_denyregion",{region:e})}}),2===u&&(0,o.createComponentVNode)(2,a.Section,{title:f,buttons:(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"exclamation-triangle",content:"Terminate",color:"bad",onClick:function(){return c("PRG_terminate")}}),children:[(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Custom...",onCommit:function(e,t){return c("PRG_assign",{assign_target:"Custom",custom_name:t})}}),(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Tabs,{vertical:!0,children:Object.keys(b).map((function(e){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:e===w,onClick:function(){return L(e)},children:e},e)}))})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,children:y.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.display_name,onClick:function(){return c("PRG_assign",{assign_target:e.job})}},e.job)}))})]})]})]})],0)};t.NtosCardContent=l},55513:function(e,t,n){"use strict";t.__esModule=!0,t.NtosConfiguration=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NtosConfiguration=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.PC_device_theme,u=l.power_usage,s=l.battery_exists,m=l.battery,p=void 0===m?{}:m,C=l.disk_size,h=l.disk_used,N=l.hardware,V=void 0===N?[]:N;return(0,o.createComponentVNode)(2,c.NtosWindow,{theme:d,width:420,height:630,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Power Supply",buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:["Power Draw: ",u,"W"]}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Battery Status",color:!s&&"average",children:s?(0,o.createComponentVNode)(2,a.ProgressBar,{value:p.charge,minValue:0,maxValue:p.max,ranges:{good:[p.max/2,Infinity],average:[p.max/4,p.max/2],bad:[-Infinity,p.max/4]},children:[p.charge," / ",p.max]}):"Not Available"})})}),(0,o.createComponentVNode)(2,a.Section,{title:"File System",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:h,minValue:0,maxValue:C,color:"good",children:[h," GQ / ",C," GQ"]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Hardware Components",children:V.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:2,buttons:(0,o.createFragment)([!e.critical&&(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:"Enabled",checked:e.enabled,mr:1,onClick:function(){return i("PC_toggle_component",{name:e.name})}}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:["Power Usage: ",e.powerusage,"W"]})],0),children:e.desc},e.name)}))})]})})}},48791:function(e,t,n){"use strict";t.__esModule=!0,t.NtosCrewManifest=void 0;var o=n(39812),r=n(64499),a=n(71494),c=n(74814),i=n(85952);t.NtosCrewManifest=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.have_printer,s=d.manifest,m=void 0===s?{}:s;return(0,o.createComponentVNode)(2,i.NtosWindow,{width:400,height:480,resizable:!0,children:(0,o.createComponentVNode)(2,i.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,c.Section,{title:"Crew Manifest",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"print",content:"Print",disabled:!u,onClick:function(){return l("PRG_print")}}),children:(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,c.Section,{level:2,title:t,children:(0,o.createComponentVNode)(2,c.Table,{children:e.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,c.Table.Cell,{bold:!0,children:e.name}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:["(",e.rank,")"]})]},e.name)}))})},t)}))(m)})})})}},77426:function(e,t,n){"use strict";t.__esModule=!0,t.NtosCyborgRemoteMonitorContent=t.NtosCyborgRemoteMonitor=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NtosCyborgRemoteMonitor=function(e,t){return(0,o.createComponentVNode)(2,c.NtosWindow,{width:600,height:800,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.card,d=i.cyborgs,u=void 0===d?[]:d;return u.length?(0,o.createFragment)([!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Certain features require an ID card login."}),u.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"terminal",content:"Send Message",color:"blue",disabled:!l,onClick:function(){return c("messagebot",{ref:e.ref})}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.status?"bad":e.locked_down?"average":"good",children:e.status?"Not Responding":e.locked_down?"Locked Down":e.shell_discon?"Nominal/Disconnected":"Nominal"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge",children:(0,o.createComponentVNode)(2,a.Box,{color:e.charge<=30?"bad":e.charge<=70?"average":"good",children:"number"==typeof e.charge?e.charge+"%":"Not Found"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Module",children:e.module}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Upgrades",children:e.upgrades})]})},e.ref)}))],0):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No cyborg units detected."})};t.NtosCyborgRemoteMonitorContent=i},71854:function(e,t,n){"use strict";t.__esModule=!0,t.NtosCyborgRemoteMonitorSyndicate=void 0;var o=n(39812),r=n(85952),a=n(77426);t.NtosCyborgRemoteMonitorSyndicate=function(e,t){return(0,o.createComponentVNode)(2,r.NtosWindow,{width:600,height:800,theme:"syndicate",children:(0,o.createComponentVNode)(2,r.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.NtosCyborgRemoteMonitorContent)})})}},86441:function(e,t,n){"use strict";t.__esModule=!0,t.NtosFileManager=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NtosFileManager=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.PC_device_theme,s=d.usbconnected,m=d.files,p=void 0===m?[]:m,C=d.usbfiles,h=void 0===C?[]:C;return(0,o.createComponentVNode)(2,c.NtosWindow,{resizable:!0,theme:u,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,i,{files:p,usbconnected:s,onUpload:function(e){return l("PRG_copytousb",{name:e})},onDelete:function(e){return l("PRG_deletefile",{name:e})},onRename:function(e,t){return l("PRG_rename",{name:e,new_name:t})},onDuplicate:function(e){return l("PRG_clone",{file:e})}})}),s&&(0,o.createComponentVNode)(2,a.Section,{title:"Data Disk",children:(0,o.createComponentVNode)(2,i,{usbmode:!0,files:h,usbconnected:s,onUpload:function(e){return l("PRG_copyfromusb",{name:e})},onDelete:function(e){return l("PRG_deletefile",{name:e})},onRename:function(e,t){return l("PRG_rename",{name:e,new_name:t})},onDuplicate:function(e){return l("PRG_clone",{file:e})}})})]})})};var i=function(e){var t=e.files,n=void 0===t?[]:t,r=e.usbconnected,c=e.usbmode,i=e.onUpload,l=e.onDelete,d=e.onRename;return(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"File"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Type"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Size"})]}),n.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.undeletable?e.name:(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:e.name,currentValue:e.name,tooltip:"Rename",onCommit:function(t,n){return d(e.name,n)}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.type}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.size}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:!e.undeletable&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"trash",confirmIcon:"times",confirmContent:"",tooltip:"Delete",onClick:function(){return l(e.name)}}),!!r&&(c?(0,o.createComponentVNode)(2,a.Button,{icon:"download",tooltip:"Download",onClick:function(){return i(e.name)}}):(0,o.createComponentVNode)(2,a.Button,{icon:"upload",tooltip:"Upload",onClick:function(){return i(e.name)}}))],0)})]},e.name)}))]})}},38773:function(e,t,n){"use strict";t.__esModule=!0,t.NtosJobManagerContent=t.NtosJobManager=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NtosJobManager=function(e,t){return(0,o.createComponentVNode)(2,c.NtosWindow,{width:400,height:620,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.authed,d=i.cooldown,u=i.slots,s=void 0===u?[]:u,m=i.prioritized,p=void 0===m?[]:m;return l?(0,o.createComponentVNode)(2,a.Section,{children:[d>0&&(0,o.createComponentVNode)(2,a.Dimmer,{children:(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"20px",children:["On Cooldown: ",d,"s"]})}),(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Prioritized"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Slots"})]}),s.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,content:e.title,disabled:e.total<=0,checked:e.total>0&&p.includes(e.title),onClick:function(){return c("PRG_priority",{target:e.title})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:[e.current," / ",e.total]}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,a.Button,{content:"Open",disabled:!e.status_open,onClick:function(){return c("PRG_open_job",{target:e.title})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Close",disabled:!e.status_close,onClick:function(){return c("PRG_close_job",{target:e.title})}})]})]},e.title)}))]})]}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Current ID does not have access permissions to change job slots."})};t.NtosJobManagerContent=i},59543:function(e,t,n){"use strict";t.__esModule=!0,t.NtosMain=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i={compconfig:"cog",ntndownloader:"download",filemanager:"folder",smmonitor:"radiation",alarmmonitor:"bell",cardmod:"id-card",arcade:"gamepad",ntnrc_client:"comment-alt",nttransfer:"exchange-alt",powermonitor:"plug",job_manage:"address-book",crewmani:"clipboard-list",robocontrol:"robot",atmosscan:"thermometer-half",shipping:"tags"};t.NtosMain=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.device_theme,s=d.programs,m=void 0===s?[]:s,p=d.has_light,C=d.light_on,h=d.comp_light_color,N=d.removable_media,V=void 0===N?[]:N,b=d.login,f=void 0===b?[]:b;return(0,o.createComponentVNode)(2,c.NtosWindow,{title:"syndicate"===u?"Syndix Main Menu":"NtOS Main Menu",theme:u,width:400,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[!!p&&(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Button,{width:"144px",icon:"lightbulb",selected:C,onClick:function(){return l("PC_toggle_light")},children:["Flashlight: ",C?"ON":"OFF"]}),(0,o.createComponentVNode)(2,a.Button,{ml:1,onClick:function(){return l("PC_light_color")},children:["Color:",(0,o.createComponentVNode)(2,a.ColorBox,{ml:1,color:h})]})]}),(0,o.createComponentVNode)(2,a.Section,{title:"User Login",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject ID",disabled:!f.IDName,onClick:function(){return l("PC_Eject_Disk",{name:"ID"})}}),children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:["ID Name: ",f.IDName]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:["Assignment: ",f.IDJob]})]})}),!!V.length&&(0,o.createComponentVNode)(2,a.Section,{title:"Media Eject",children:(0,o.createComponentVNode)(2,a.Table,{children:V.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,color:"transparent",icon:"eject",content:e,onClick:function(){return l("PC_Eject_Disk",{name:e})}})})},e)}))})}),(0,o.createComponentVNode)(2,a.Section,{title:"Programs",children:(0,o.createComponentVNode)(2,a.Table,{children:m.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,color:"transparent",icon:i[e.name]||"window-maximize-o",content:e.desc,onClick:function(){return l("PC_runprogram",{name:e.name})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,width:"18px",children:!!e.running&&(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"times",tooltip:"Close program",tooltipPosition:"left",onClick:function(){return l("PC_killprogram",{name:e.name})}})})]},e.name)}))})})]})})}},73883:function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetChat=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NtosNetChat=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.can_admin,u=l.adminmode,s=l.authed,m=l.username,p=l.active_channel,C=l.is_operator,h=l.all_channels,N=void 0===h?[]:h,V=l.clients,b=void 0===V?[]:V,f=l.messages,g=void 0===f?[]:f,v=null!==p,k=s||u;return(0,o.createComponentVNode)(2,c.NtosWindow,{width:900,height:675,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{children:(0,o.createComponentVNode)(2,a.Section,{height:"600px",children:(0,o.createComponentVNode)(2,a.Table,{height:"580px",children:(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"top",style:{width:"200px"},children:[(0,o.createComponentVNode)(2,a.Box,{height:"537px",overflowY:"scroll",children:[(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"New Channel...",onCommit:function(e,t){return i("PRG_newchannel",{new_channel_name:t})}}),N.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.chan,selected:e.id===p,color:"transparent",onClick:function(){return i("PRG_joinchannel",{id:e.id})}},e.chan)}))]}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,mt:1,content:m+"...",currentValue:m,onCommit:function(e,t){return i("PRG_changename",{new_name:t})}}),!!d&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:"ADMIN MODE: "+(u?"ON":"OFF"),color:u?"bad":"good",onClick:function(){return i("PRG_toggleadmin")}})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createComponentVNode)(2,a.Box,{height:"560px",overflowY:"scroll",children:v&&(k?g.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e.msg},e.msg)})):(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-triangle",mt:4,fontSize:"40px"}),(0,o.createComponentVNode)(2,a.Box,{mt:1,bold:!0,fontSize:"18px",children:"THIS CHANNEL IS PASSWORD PROTECTED"}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:"INPUT PASSWORD TO ACCESS"})]}))}),(0,o.createComponentVNode)(2,a.Input,{fluid:!0,selfClear:!0,mt:1,onEnter:function(e,t){return i("PRG_speak",{message:t})}})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"top",style:{width:"150px"},children:[(0,o.createComponentVNode)(2,a.Box,{height:"477px",overflowY:"scroll",children:b.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e.name},e.name)}))}),v&&k&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Save log...",defaultValue:"new_log",onCommit:function(e,t){return i("PRG_savelog",{log_name:t})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{fluid:!0,content:"Leave Channel",onClick:function(){return i("PRG_leavechannel")}})],4),!!C&&s&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Confirm,{fluid:!0,content:"Delete Channel",onClick:function(){return i("PRG_deletechannel")}}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Rename Channel...",onCommit:function(e,t){return i("PRG_renamechannel",{new_name:t})}}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Set Password...",onCommit:function(e,t){return i("PRG_setpassword",{new_password:t})}})],4)]})]})})})})})}},83908:function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetDosContent=t.NtosNetDos=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NtosNetDos=function(e,t){return(0,o.createComponentVNode)(2,c.NtosWindow,{width:400,height:250,theme:"syndicate",children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.relays,d=void 0===l?[]:l,u=i.focus,s=i.target,m=i.speed,p=i.overload,C=i.capacity,h=i.error;if(h)return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.NoticeBox,{children:h}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Reset",textAlign:"center",onClick:function(){return c("PRG_reset")}})],4);var N=function(e){for(var t="",n=p/C;t.lengthn?t+="0":t+="1";return t};return s?(0,o.createComponentVNode)(2,a.Section,{fontFamily:"monospace",textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Box,{children:["CURRENT SPEED: ",m," GQ/s"]}),(0,o.createComponentVNode)(2,a.Box,{children:N(45)}),(0,o.createComponentVNode)(2,a.Box,{children:N(45)}),(0,o.createComponentVNode)(2,a.Box,{children:N(45)}),(0,o.createComponentVNode)(2,a.Box,{children:N(45)}),(0,o.createComponentVNode)(2,a.Box,{children:N(45)})]}):(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target",children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.id,selected:u===e.id,onClick:function(){return c("PRG_target_relay",{targid:e.id})}},e.id)}))})}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:"EXECUTE",color:"bad",textAlign:"center",disabled:!u,mt:1,onClick:function(){return c("PRG_execute")}})]})};t.NtosNetDosContent=i},83305:function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetDownloader=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NtosNetDownloader=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.PC_device_theme,s=d.disk_size,m=d.disk_used,p=d.downloadable_programs,C=void 0===p?[]:p,h=d.error,N=d.hacked_programs,V=void 0===N?[]:N,b=d.hackedavailable;return(0,o.createComponentVNode)(2,c.NtosWindow,{theme:u,width:480,height:735,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[!!h&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:[(0,o.createComponentVNode)(2,a.Box,{mb:1,children:h}),(0,o.createComponentVNode)(2,a.Button,{content:"Reset",onClick:function(){return l("PRG_reseterror")}})]}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disk usage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m,minValue:0,maxValue:s,children:m+" GQ / "+s+" GQ"})})})}),(0,o.createComponentVNode)(2,a.Section,{children:C.map((function(e){return(0,o.createComponentVNode)(2,i,{program:e},e.filename)}))}),!!b&&(0,o.createComponentVNode)(2,a.Section,{title:"UNKNOWN Software Repository",children:[(0,o.createComponentVNode)(2,a.NoticeBox,{mb:1,children:"Please note that Nanotrasen does not recommend download of software from non-official servers."}),V.map((function(e){return(0,o.createComponentVNode)(2,i,{program:e},e.filename)}))]})]})})};var i=function(e,t){var n=e.program,c=(0,r.useBackend)(t),i=c.act,l=c.data,d=l.disk_size,u=l.disk_used,s=l.downloadcompletion,m=l.downloading,p=l.downloadname,C=l.downloadsize,h=d-u;return(0,o.createComponentVNode)(2,a.Box,{mb:3,children:[(0,o.createComponentVNode)(2,a.Flex,{align:"baseline",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{bold:!0,grow:1,children:n.filedesc}),(0,o.createComponentVNode)(2,a.Flex.Item,{color:"label",nowrap:!0,children:[n.size," GQ"]}),(0,o.createComponentVNode)(2,a.Flex.Item,{ml:2,width:"94px",textAlign:"center",children:n.filename===p&&(0,o.createComponentVNode)(2,a.ProgressBar,{color:"green",minValue:0,maxValue:C,value:s})||(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"download",content:"Download",disabled:m||n.size>h,onClick:function(){return i("PRG_downloadfile",{filename:n.filename})}})})]}),"Compatible"!==n.compatibility&&(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,fontSize:"12px",position:"relative",children:[(0,o.createComponentVNode)(2,a.Icon,{mx:1,color:"red",name:"times"}),"Incompatible!"]}),n.size>h&&(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,fontSize:"12px",position:"relative",children:[(0,o.createComponentVNode)(2,a.Icon,{mx:1,color:"red",name:"times"}),"Not enough disk space!"]}),(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,color:"label",fontSize:"12px",children:n.fileinfo})]})}},6806:function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetMonitor=void 0;var o=n(39812),r=n(74814),a=n(71494),c=n(85952);t.NtosNetMonitor=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data,d=l.ntnetrelays,u=l.ntnetstatus,s=l.config_softwaredownload,m=l.config_peertopeer,p=l.config_communication,C=l.config_systemcontrol,h=l.idsalarm,N=l.idsstatus,V=l.ntnetmaxlogs,b=l.maxlogs,f=l.minlogs,g=l.ntnetlogs,v=void 0===g?[]:g;return(0,o.createComponentVNode)(2,c.NtosWindow,{resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,r.NoticeBox,{children:"WARNING: Disabling wireless transmitters when using a wireless device may prevent you from reenabling them!"}),(0,o.createComponentVNode)(2,r.Section,{title:"Wireless Connectivity",buttons:(0,o.createComponentVNode)(2,r.Button.Confirm,{icon:u?"power-off":"times",content:u?"ENABLED":"DISABLED",selected:u,onClick:function(){return i("toggleWireless")}}),children:d?(0,o.createComponentVNode)(2,r.LabeledList,{children:(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Active NTNet Relays",children:d})}):"No Relays Connected"}),(0,o.createComponentVNode)(2,r.Section,{title:"Firewall Configuration",children:(0,o.createComponentVNode)(2,r.LabeledList,{children:[(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Software Downloads",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:s?"power-off":"times",content:s?"ENABLED":"DISABLED",selected:s,onClick:function(){return i("toggle_function",{id:"1"})}})}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Peer to Peer Traffic",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:m?"power-off":"times",content:m?"ENABLED":"DISABLED",selected:m,onClick:function(){return i("toggle_function",{id:"2"})}})}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Communication Systems",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:p?"power-off":"times",content:p?"ENABLED":"DISABLED",selected:p,onClick:function(){return i("toggle_function",{id:"3"})}})}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Remote System Control",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:C?"power-off":"times",content:C?"ENABLED":"DISABLED",selected:C,onClick:function(){return i("toggle_function",{id:"4"})}})})]})}),(0,o.createComponentVNode)(2,r.Section,{title:"Security Systems",children:[!!h&&(0,o.createFragment)([(0,o.createComponentVNode)(2,r.NoticeBox,{children:"NETWORK INCURSION DETECTED"}),(0,o.createComponentVNode)(2,r.Box,{italics:!0,children:"Abnormal activity has been detected in the network. Check system logs for more information"})],4),(0,o.createComponentVNode)(2,r.LabeledList,{children:[(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"IDS Status",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,r.Button,{icon:N?"power-off":"times",content:N?"ENABLED":"DISABLED",selected:N,onClick:function(){return i("toggleIDS")}}),(0,o.createComponentVNode)(2,r.Button,{icon:"sync",content:"Reset",color:"bad",onClick:function(){return i("resetIDS")}})],4)}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Max Log Count",buttons:(0,o.createComponentVNode)(2,r.NumberInput,{value:V,minValue:f,maxValue:b,width:"39px",onChange:function(e,t){return i("updatemaxlogs",{new_number:t})}})})]}),(0,o.createComponentVNode)(2,r.Section,{title:"System Log",level:2,buttons:(0,o.createComponentVNode)(2,r.Button.Confirm,{icon:"trash",content:"Clear Logs",onClick:function(){return i("purgelogs")}}),children:v.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{className:"candystripe",children:e.entry},e.entry)}))})]})]})})}},54698:function(e,t,n){"use strict";t.__esModule=!0,t.NtosPowerMonitor=void 0;var o=n(39812),r=n(85952),a=n(89793);t.NtosPowerMonitor=function(){return(0,o.createComponentVNode)(2,r.NtosWindow,{width:550,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,r.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.PowerMonitorContent)})})}},49413:function(e,t,n){"use strict";t.__esModule=!0,t.NtosRadarContent=t.NtosRadar=void 0;var o=n(39812),r=n(34380),a=n(5908),c=n(71494),i=n(74814),l=n(85952);t.NtosRadar=function(e,t){return(0,o.createComponentVNode)(2,l.NtosWindow,{width:800,height:600,theme:"ntos",children:(0,o.createComponentVNode)(2,d,{sig_err:"Signal Lost"})})};var d=function(e,t){var n=(0,c.useBackend)(t),d=n.act,u=n.data,s=u.selected,m=u.object,p=void 0===m?[]:m,C=u.target,h=void 0===C?[]:C,N=u.scanning,V=e.sig_err;return(0,o.createComponentVNode)(2,i.Flex,{direction:"row",hight:"100%",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{position:"relative",width:20.5,hight:"100%",children:(0,o.createComponentVNode)(2,l.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i.Section,{children:[(0,o.createComponentVNode)(2,i.Button,{icon:"redo-alt",content:N?"Scanning...":"Scan",color:"blue",disabled:N,onClick:function(){return d("scan")}}),!p.length&&!N&&(0,o.createVNode)(1,"div",null,"No trackable signals found",16),!N&&p.map((function(e){return(0,o.createVNode)(1,"div",(0,r.classes)(["Button","Button--fluid","Button--color--transparent","Button--ellipsis",e.ref===s&&"Button--selected"]),e.name,0,{title:e.name,onClick:function(){d("selecttarget",{ref:e.ref})}},e.dev)}))]})})}),(0,o.createComponentVNode)(2,i.Flex.Item,{style:{"background-image":'url("'+(0,a.resolveAsset)("ntosradarbackground.png")+'")',"background-position":"center","background-repeat":"no-repeat",top:"20px"},position:"relative",m:1.5,width:45,height:45,children:0===Object.keys(h).length?!!s&&(0,o.createComponentVNode)(2,i.NoticeBox,{position:"absolute",top:20.6,left:1.35,width:42,fontSize:"30px",textAlign:"center",children:V}):!!h.userot&&(0,o.createComponentVNode)(2,i.Box,{as:"img",src:(0,a.resolveAsset)(h.arrowstyle),position:"absolute",top:"20px",left:"243px",style:{transform:"rotate("+h.rot+"deg)"}})||(0,o.createComponentVNode)(2,i.Icon,{name:h.pointer,position:"absolute",size:2,color:h.color,top:10*h.locy+19+"px",left:10*h.locx+16+"px"})})]})};t.NtosRadarContent=d},41935:function(e,t,n){"use strict";t.__esModule=!0,t.NtosRadarSyndicate=void 0;var o=n(39812),r=n(85952),a=n(49413);t.NtosRadarSyndicate=function(e,t){return(0,o.createComponentVNode)(2,r.NtosWindow,{width:800,height:600,theme:"syndicate",children:(0,o.createComponentVNode)(2,a.NtosRadarContent,{sig_err:"Out of Range"})})}},60839:function(e,t,n){"use strict";t.__esModule=!0,t.NtosRequestKiosk=void 0;var o=n(39812),r=n(18374),a=n(85952);t.NtosRequestKiosk=function(e,t){return(0,o.createComponentVNode)(2,a.NtosWindow,{width:550,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,a.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,r.RequestKioskContent)})})}},69480:function(e,t,n){"use strict";t.__esModule=!0,t.NtosRevelation=void 0;var o=n(39812),r=n(74814),a=n(71494),c=n(85952);t.NtosRevelation=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.NtosWindow,{width:400,height:250,theme:"syndicate",children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{children:(0,o.createComponentVNode)(2,r.Section,{children:[(0,o.createComponentVNode)(2,r.Button.Input,{fluid:!0,content:"Obfuscate Name...",onCommit:function(e,t){return i("PRG_obfuscate",{new_name:t})},mb:1}),(0,o.createComponentVNode)(2,r.LabeledList,{children:(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Payload Status",buttons:(0,o.createComponentVNode)(2,r.Button,{content:l.armed?"ARMED":"DISARMED",color:l.armed?"bad":"average",onClick:function(){return i("PRG_arm")}})})}),(0,o.createComponentVNode)(2,r.Button,{fluid:!0,bold:!0,content:"ACTIVATE",textAlign:"center",color:"bad",disabled:!l.armed})]})})})}},36888:function(e,t,n){"use strict";t.__esModule=!0,t.NtosRoboControl=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NtosRoboControl=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.bots,s=d.id_owner,m=d.has_id;return(0,o.createComponentVNode)(2,c.NtosWindow,{width:550,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Robot Control Console",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Id Card",children:[s,!!m&&(0,o.createComponentVNode)(2,a.Button,{ml:2,icon:"eject",content:"Eject",onClick:function(){return l("ejectcard")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Bots in range",children:d.botcount})]})}),null==u?void 0:u.map((function(e){return(0,o.createComponentVNode)(2,i,{robot:e},e.bot_ref)}))]})})};var i=function(e,t){var n=e.robot,c=(0,r.useBackend)(t),i=c.act,l=c.data,d=l.mules||[],u=!!n.mule_check&&function(e,t){return null==e?void 0:e.find((function(e){return e.mule_ref===t}))}(d,n.bot_ref),s=1===n.mule_check?"rgba(110, 75, 14, 1)":"rgba(74, 59, 140, 1)";return(0,o.createComponentVNode)(2,a.Section,{title:n.name,style:{border:"4px solid "+s},buttons:u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"play",tooltip:"Go to Destination.",onClick:function(){return i("go",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"pause",tooltip:"Stop Moving.",onClick:function(){return i("stop",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"home",tooltip:"Travel Home.",tooltipPosition:"bottom-left",onClick:function(){return i("home",{robot:u.mule_ref})}})],4),children:(0,o.createComponentVNode)(2,a.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Model",children:n.model}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:n.locat}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:n.mode}),u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Loaded Cargo",children:l.load||"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Home",children:u.home}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Destination",children:u.dest||"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.power,minValue:0,maxValue:100,ranges:{good:[60,Infinity],average:[20,60],bad:[-Infinity,20]}})})],4)]})}),(0,o.createComponentVNode)(2,a.Flex.Item,{width:"150px",children:[u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Set Destination",onClick:function(){return i("destination",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Set ID",onClick:function(){return i("setid",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Set Home",onClick:function(){return i("sethome",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Unload Cargo",onClick:function(){return i("unload",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,content:"Auto Return",checked:u.autoReturn,onClick:function(){return i("autoret",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,content:"Auto Pickup",checked:u.autoPickup,onClick:function(){return i("autopick",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,content:"Delivery Report",checked:u.reportDelivery,onClick:function(){return i("report",{robot:u.mule_ref})}})],4),!u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Stop Patrol",onClick:function(){return i("patroloff",{robot:n.bot_ref})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Start Patrol",onClick:function(){return i("patrolon",{robot:n.bot_ref})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Summon",onClick:function(){return i("summon",{robot:n.bot_ref})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Eject PAi",onClick:function(){return i("ejectpai",{robot:n.bot_ref})}})],4)]})]})})}},55431:function(e,t,n){"use strict";t.__esModule=!0,t.NtosShipping=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NtosShipping=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.NtosWindow,{width:450,height:350,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"NTOS Shipping Hub.",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject Id",onClick:function(){return i("ejectid")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current User",children:l.current_user||"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Inserted Card",children:l.card_owner||"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Available Paper",children:l.has_printer?l.paperamt:"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Profit on Sale",children:[l.barcode_split,"%"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Shipping Options",children:[(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"id-card",tooltip:"The currently ID card will become the current user.",tooltipPosition:"right",disabled:!l.has_id_slot,onClick:function(){return i("selectid")},content:"Set Current ID"})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"print",tooltip:"Print a barcode to use on a wrapped package.",tooltipPosition:"right",disabled:!l.has_printer||!l.current_user,onClick:function(){return i("print")},content:"Print Barcode"})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"tags",tooltip:"Set how much profit you'd like on your package.",tooltipPosition:"right",onClick:function(){return i("setsplit")},content:"Set Profit Margin"})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"sync-alt",content:"Reset ID",onClick:function(){return i("resetid")}})})]})]})})}},76124:function(e,t,n){"use strict";t.__esModule=!0,t.NtosStationAlertConsole=void 0;var o=n(39812),r=n(85952),a=n(32015);t.NtosStationAlertConsole=function(){return(0,o.createComponentVNode)(2,r.NtosWindow,{width:315,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,r.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.StationAlertConsoleContent)})})}},22475:function(e,t,n){"use strict";t.__esModule=!0,t.NtosSupermatterMonitorContent=t.NtosSupermatterMonitor=void 0;var o=n(39812),r=n(64499),a=n(85531),c=n(41860),i=n(71494),l=n(74814),d=n(76270),u=n(85952),s=function(e){return Math.log2(16+Math.max(0,e))-4};t.NtosSupermatterMonitor=function(e,t){return(0,o.createComponentVNode)(2,u.NtosWindow,{width:600,height:350,resizable:!0,children:(0,o.createComponentVNode)(2,u.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,m)})})};var m=function(e,t){var n=(0,i.useBackend)(t),u=n.act,m=n.data,C=m.active,h=m.SM_integrity,N=m.SM_power,V=m.SM_ambienttemp,b=m.SM_ambientpressure;if(!C)return(0,o.createComponentVNode)(2,p);var f=(0,a.flow)([function(e){return e.filter((function(e){return e.amount>=.01}))},(0,r.sortBy)((function(e){return-e.amount}))])(m.gases||[]),g=Math.max.apply(Math,[1].concat(f.map((function(e){return e.amount}))));return(0,o.createComponentVNode)(2,l.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,l.Flex.Item,{width:"270px",children:(0,o.createComponentVNode)(2,l.Section,{title:"Metrics",children:(0,o.createComponentVNode)(2,l.LabeledList,{children:[(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:h/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Relative EER",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:N,minValue:0,maxValue:5e3,ranges:{good:[-Infinity,5e3],average:[5e3,7e3],bad:[7e3,Infinity]},children:(0,c.toFixed)(N)+" MeV/cm3"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Temperature",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:s(V),minValue:0,maxValue:s(1e4),ranges:{teal:[-Infinity,s(80)],good:[s(80),s(373)],average:[s(373),s(1e3)],bad:[s(1e3),Infinity]},children:(0,c.toFixed)(V)+" K"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:s(b),minValue:0,maxValue:s(5e4),ranges:{good:[s(1),s(300)],average:[-Infinity,s(1e3)],bad:[s(1e3),+Infinity]},children:(0,c.toFixed)(b)+" kPa"})})]})})}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,l.Section,{title:"Gases",buttons:(0,o.createComponentVNode)(2,l.Button,{icon:"arrow-left",content:"Back",onClick:function(){return u("PRG_clear")}}),children:(0,o.createComponentVNode)(2,l.LabeledList,{children:f.map((function(e){return(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:(0,d.getGasLabel)(e.name),children:(0,o.createComponentVNode)(2,l.ProgressBar,{color:(0,d.getGasColor)(e.name),value:e.amount,minValue:0,maxValue:g,children:(0,c.toFixed)(e.amount,2)+"%"})},e.name)}))})})})]})};t.NtosSupermatterMonitorContent=m;var p=function(e,t){var n=(0,i.useBackend)(t),r=n.act,a=n.data.supermatters,c=void 0===a?[]:a;return(0,o.createComponentVNode)(2,l.Section,{title:"Detected Supermatters",buttons:(0,o.createComponentVNode)(2,l.Button,{icon:"sync",content:"Refresh",onClick:function(){return r("PRG_refresh")}}),children:(0,o.createComponentVNode)(2,l.Table,{children:c.map((function(e){return(0,o.createComponentVNode)(2,l.Table.Row,{children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.uid+". "+e.area_name}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,color:"label",children:"Integrity:"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,width:"120px",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:e.integrity/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,l.Button,{content:"Details",onClick:function(){return r("PRG_set",{target:e.uid})}})})]},e.uid)}))})})}},78467:function(e,t,n){"use strict";t.__esModule=!0,t.NuclearBomb=void 0;var o=n(39812),r=n(34380),a=n(71494),c=n(74814),i=n(85952),l=function(e,t){var n=(0,a.useBackend)(t).act;return(0,o.createComponentVNode)(2,c.Box,{width:"185px",children:(0,o.createComponentVNode)(2,c.Grid,{width:"1px",children:[["1","4","7","C"],["2","5","8","0"],["3","6","9","E"]].map((function(e){return(0,o.createComponentVNode)(2,c.Grid.Column,{children:e.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,mb:"6px",content:e,textAlign:"center",fontSize:"40px",lineHeight:1.25,width:"55px",className:(0,r.classes)(["NuclearBomb__Button","NuclearBomb__Button--keypad","NuclearBomb__Button--"+e]),onClick:function(){return n("keypad",{digit:e})}},e)}))},e[0])}))})})};t.NuclearBomb=function(e,t){var n=(0,a.useBackend)(t),r=n.act,d=n.data,u=(d.anchored,d.disk_present,d.status1),s=d.status2;return(0,o.createComponentVNode)(2,i.Window,{width:350,height:442,theme:"retro",children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,c.Box,{m:"6px",children:[(0,o.createComponentVNode)(2,c.Box,{mb:"6px",className:"NuclearBomb__displayBox",children:u}),(0,o.createComponentVNode)(2,c.Flex,{mb:1.5,children:[(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,c.Box,{className:"NuclearBomb__displayBox",children:s})}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,c.Button,{icon:"eject",fontSize:"24px",lineHeight:1,textAlign:"center",width:"43px",ml:"6px",mr:"3px",mt:"3px",className:"NuclearBomb__Button NuclearBomb__Button--keypad",onClick:function(){return r("eject_disk")}})})]}),(0,o.createComponentVNode)(2,c.Flex,{ml:"3px",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,l)}),(0,o.createComponentVNode)(2,c.Flex.Item,{ml:"6px",width:"129px",children:(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"ARM",textAlign:"center",fontSize:"28px",lineHeight:1.1,mb:"6px",className:"NuclearBomb__Button NuclearBomb__Button--C",onClick:function(){return r("arm")}}),(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"ANCHOR",textAlign:"center",fontSize:"28px",lineHeight:1.1,className:"NuclearBomb__Button NuclearBomb__Button--E",onClick:function(){return r("anchor")}}),(0,o.createComponentVNode)(2,c.Box,{textAlign:"center",color:"#9C9987",fontSize:"80px",children:(0,o.createComponentVNode)(2,c.Icon,{name:"radiation"})}),(0,o.createComponentVNode)(2,c.Box,{height:"80px",className:"NuclearBomb__NTIcon"})]})})]})]})})})}},48826:function(e,t,n){"use strict";t.__esModule=!0,t.OperatingComputer=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=[{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"},{label:"Toxin",type:"toxLoss"},{label:"Respiratory",type:"oxyLoss"}];t.OperatingComputer=function(e,t){var n=(0,r.useSharedState)(t,"tab",1),i=n[0],u=n[1];return(0,o.createComponentVNode)(2,c.Window,{width:350,height:470,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===i,onClick:function(){return u(1)},children:"Patient State"}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===i,onClick:function(){return u(2)},children:"Surgery Procedures"})]}),1===i&&(0,o.createComponentVNode)(2,l),2===i&&(0,o.createComponentVNode)(2,d)]})})};var l=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data),l=c.table,d=c.procedures,u=void 0===d?[]:d,s=c.patient,m=void 0===s?{}:s;return l?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Patient State",children:m&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",color:m.statstate,children:m.stat}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Type",children:m.blood_type}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m.health,minValue:m.minHealth,maxValue:m.maxHealth,color:m.health>=0?"good":"average",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:m.health})})}),i.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m[e.type]/m.maxHealth,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:m[e.type]})})},e.type)}))]})||"No Patient Detected"}),0===u.length&&(0,o.createComponentVNode)(2,a.Section,{children:"No Active Procedures"}),u.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Next Step",children:[e.next_step,e.chems_needed&&(0,o.createFragment)([(0,o.createVNode)(1,"b",null,"Required Chemicals:",16),(0,o.createVNode)(1,"br"),e.chems_needed],0)]}),!!c.alternative_step&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Alternative Step",children:[e.alternative_step,e.alt_chems_needed&&(0,o.createFragment)([(0,o.createVNode)(1,"b",null,"Required Chemicals:",16),(0,o.createVNode)(1,"br"),e.alt_chems_needed],0)]})]})},e.name)}))],0):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Table Detected"})},d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.surgeries,l=void 0===i?[]:i;return(0,o.createComponentVNode)(2,a.Section,{title:"Advanced Surgery Procedures",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"download",content:"Sync Research Database",onClick:function(){return c("sync")}}),l.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:2,children:e.desc},e.name)}))]})}},36983:function(e,t,n){"use strict";t.__esModule=!0,t.Orbit=void 0;var o=n(39812),r=n(2497),a=n(5908),c=n(71494),i=n(74814),l=n(85952);function d(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);nt},h=function(e,t){var n=e.name,o=t.name,r=n.match(m),a=o.match(m);return r&&a&&n.replace(m,"")===o.replace(m,"")?parseInt(r[1],10)-parseInt(a[1],10):C(n,o)},N=function(e,t){var n=(0,c.useBackend)(t).act,r=e.searchText,a=e.source,l=e.title,d=a.filter(p(r));return d.sort(h),a.length>0&&(0,o.createComponentVNode)(2,i.Section,{title:l+" - ("+a.length+")",children:d.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{content:e.name.replace(s,""),onClick:function(){return n("orbit",{ref:e.ref})}},e.name)}))})},V=function(e,t){var n=(0,c.useBackend)(t).act,r=e.color,l=e.thing;return(0,o.createComponentVNode)(2,i.Button,{color:r,onClick:function(){return n("orbit",{ref:l.ref})},children:[l.name,l.orbiters&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,ml:1,children:["(",l.orbiters," ",(0,o.createComponentVNode)(2,i.Box,{as:"img",src:(0,a.resolveAsset)("ghost.png"),opacity:.7}),")"]})]})};t.Orbit=function(e,t){for(var n,r=(0,c.useBackend)(t),a=r.act,u=r.data,s=u.alive,m=u.antagonists,b=u.dead,f=u.ghosts,g=u.misc,v=u.npcs,k=(0,c.useLocalState)(t,"searchText",""),x=k[0],B=k[1],_={},w=d(m);!(n=w()).done;){var L=n.value;_[L.antag]===undefined&&(_[L.antag]=[]),_[L.antag].push(L)}var y=Object.entries(_);y.sort((function(e,t){return C(e[0],t[0])}));return(0,o.createComponentVNode)(2,l.Window,{title:"Orbit",width:350,height:700,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Flex,{children:[(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Icon,{name:"search",mr:1})}),(0,o.createComponentVNode)(2,i.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,i.Input,{placeholder:"Search...",autoFocus:!0,fluid:!0,value:x,onInput:function(e,t){return B(t)},onEnter:function(e,t){return function(e){for(var t=0,n=[y.map((function(e){return e[0],e[1]})),s,f,b,v,g];t0&&(0,o.createComponentVNode)(2,i.Section,{title:"Ghost-Visible Antagonists",children:y.map((function(e){var t=e[0],n=e[1];return(0,o.createComponentVNode)(2,i.Section,{title:t,level:2,children:n.filter(p(x)).sort(h).map((function(e){return(0,o.createComponentVNode)(2,V,{color:"bad",thing:e},e.name)}))},t)}))}),(0,o.createComponentVNode)(2,i.Section,{title:"Alive",children:s.filter(p(x)).sort(h).map((function(e){return(0,o.createComponentVNode)(2,V,{color:"good",thing:e},e.name)}))}),(0,o.createComponentVNode)(2,N,{title:"Ghosts",source:f,searchText:x}),(0,o.createComponentVNode)(2,N,{title:"Dead",source:b,searchText:x}),(0,o.createComponentVNode)(2,N,{title:"NPCs",source:v,searchText:x}),(0,o.createComponentVNode)(2,N,{title:"Misc",source:g,searchText:x})]})})}},57800:function(e,t,n){"use strict";t.__esModule=!0,t.OreBox=void 0;var o=n(39812),r=n(2497),a=n(74814),c=n(71494),i=n(85952);t.OreBox=function(e,t){var n=(0,c.useBackend)(t),l=n.act,d=n.data.materials;return(0,o.createComponentVNode)(2,i.Window,{width:335,height:415,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Ores",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Empty",onClick:function(){return l("removeall")}}),children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Ore"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"right",children:"Amount"})]}),d.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,r.toTitleCase)(e.name)}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,a.Box,{color:"label",inline:!0,children:e.amount})})]},e.type)}))]})}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Box,{children:["All ores will be placed in here when you are wearing a mining stachel on your belt or in a pocket while dragging the ore box.",(0,o.createVNode)(1,"br"),"Gibtonite is not accepted."]})})]})})}},72938:function(e,t,n){"use strict";t.__esModule=!0,t.OreRedemptionMachine=void 0;var o=n(39812),r=n(2497),a=n(71494),c=n(74814),i=n(85952);t.OreRedemptionMachine=function(e,t){var n=(0,a.useBackend)(t),r=n.act,d=n.data,u=d.unclaimedPoints,s=d.materials,m=d.alloys,p=d.diskDesigns,C=d.hasDisk;return(0,o.createComponentVNode)(2,i.Window,{title:"Ore Redemption Machine",width:440,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{children:[(0,o.createComponentVNode)(2,c.BlockQuote,{mb:1,children:["This machine only accepts ore.",(0,o.createVNode)(1,"br"),"Gibtonite and Slag are not accepted."]}),(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"label",mr:1,children:"Unclaimed points:"}),u,(0,o.createComponentVNode)(2,c.Button,{ml:2,content:"Claim",disabled:0===u,onClick:function(){return r("Claim")}})]})]}),(0,o.createComponentVNode)(2,c.Section,{children:C&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Box,{mb:1,children:(0,o.createComponentVNode)(2,c.Button,{icon:"eject",content:"Eject design disk",onClick:function(){return r("diskEject")}})}),(0,o.createComponentVNode)(2,c.Table,{children:p.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:["File ",e.index,": ",e.name]}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,c.Button,{disabled:!e.canupload,content:"Upload",onClick:function(){return r("diskUpload",{design:e.index})}})})]},e.index)}))})],4)||(0,o.createComponentVNode)(2,c.Button,{icon:"save",content:"Insert design disk",onClick:function(){return r("diskInsert")}})}),(0,o.createComponentVNode)(2,c.Section,{title:"Materials",children:(0,o.createComponentVNode)(2,c.Table,{children:s.map((function(e){return(0,o.createComponentVNode)(2,l,{material:e,onRelease:function(t){return r("Release",{id:e.id,sheets:t})}},e.id)}))})}),(0,o.createComponentVNode)(2,c.Section,{title:"Alloys",children:(0,o.createComponentVNode)(2,c.Table,{children:m.map((function(e){return(0,o.createComponentVNode)(2,l,{material:e,onRelease:function(t){return r("Smelt",{id:e.id,sheets:t})}},e.id)}))})})]})})};var l=function(e,t){var n=e.material,i=e.onRelease,l=(0,a.useLocalState)(t,"amount"+n.name,1),d=l[0],u=l[1],s=Math.floor(n.amount);return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,r.toTitleCase)(n.name).replace("Alloy","")}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,c.Box,{mr:2,color:"label",inline:!0,children:n.value&&n.value+" cr"})}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,c.Box,{mr:2,color:"label",inline:!0,children:[s," sheets"]})}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,c.NumberInput,{width:"32px",step:1,stepPixelSize:5,minValue:1,maxValue:50,value:d,onChange:function(e,t){return u(t)}}),(0,o.createComponentVNode)(2,c.Button,{disabled:s<1,content:"Release",onClick:function(){return i(d)}})]})]})}},47944:function(e,t,n){"use strict";t.__esModule=!0,t.Pandemic=t.PandemicAntibodyDisplay=t.PandemicSymptomDisplay=t.PandemicDiseaseDisplay=t.PandemicBeakerDisplay=void 0;var o=n(39812),r=n(64499),a=n(71494),c=n(74814),i=n(85952),l=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.has_beaker,d=i.beaker_empty,u=i.has_blood,s=i.blood,m=!l||d;return(0,o.createComponentVNode)(2,c.Section,{title:"Beaker",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:"times",content:"Empty and Eject",color:"bad",disabled:m,onClick:function(){return r("empty_eject_beaker")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"trash",content:"Empty",disabled:m,onClick:function(){return r("empty_beaker")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"eject",content:"Eject",disabled:!l,onClick:function(){return r("eject_beaker")}})],4),children:l?d?(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"Beaker is empty"}):u?(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Blood DNA",children:s&&s.dna||"Unknown"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Blood Type",children:s&&s.type||"Unknown"})]}):(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"No blood detected"}):(0,o.createComponentVNode)(2,c.NoticeBox,{children:"No beaker loaded"})})};t.PandemicBeakerDisplay=l;var d=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.is_ready;return(i.viruses||[]).map((function(e){var t=e.symptoms||[];return(0,o.createComponentVNode)(2,c.Section,{title:e.can_rename?(0,o.createComponentVNode)(2,c.Input,{value:e.name,onChange:function(t,n){return r("rename_disease",{index:e.index,name:n})}}):e.name,buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"flask",content:"Create culture bottle",disabled:!l,onClick:function(){return r("create_culture_bottle",{index:e.index})}}),children:[(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{children:e.description}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Agent",children:e.agent}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Spread",children:e.spread}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Possible Cure",children:e.cure})]})})]}),!!e.is_adv&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{title:"Statistics",level:2,children:(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Resistance",children:e.resistance}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Stealth",children:e.stealth})]})}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Stage speed",children:e.stage_speed}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Transmissibility",children:e.transmission})]})})]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Symptoms",level:2,children:t.map((function(e){return(0,o.createComponentVNode)(2,c.Collapsible,{title:e.name,children:(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,u,{symptom:e})})},e.name)}))})],4)]},e.name)}))};t.PandemicDiseaseDisplay=d;var u=function(e,t){var n=e.symptom,a=n.name,i=n.desc,l=n.stealth,d=n.resistance,u=n.stage_speed,s=n.transmission,m=n.level,p=n.neutered,C=(0,r.map)((function(e,t){return{desc:e,label:t}}))(n.threshold_desc||{});return(0,o.createComponentVNode)(2,c.Section,{title:a,level:2,buttons:!!p&&(0,o.createComponentVNode)(2,c.Box,{bold:!0,color:"bad",children:"Neutered"}),children:[(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{size:2,children:i}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Level",children:m}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Resistance",children:d}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Stealth",children:l}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Stage Speed",children:u}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Transmission",children:s})]})})]}),C.length>0&&(0,o.createComponentVNode)(2,c.Section,{title:"Thresholds",level:3,children:(0,o.createComponentVNode)(2,c.LabeledList,{children:C.map((function(e){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.label,children:e.desc},e.label)}))})})]})};t.PandemicSymptomDisplay=u;var s=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.resistances||[];return(0,o.createComponentVNode)(2,c.Section,{title:"Antibodies",children:l.length>0?(0,o.createComponentVNode)(2,c.LabeledList,{children:l.map((function(e){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.name,children:(0,o.createComponentVNode)(2,c.Button,{icon:"eye-dropper",content:"Create vaccine bottle",disabled:!i.is_ready,onClick:function(){return r("create_vaccine_bottle",{index:e.id})}})},e.name)}))}):(0,o.createComponentVNode)(2,c.Box,{bold:!0,color:"bad",mt:1,children:"No antibodies detected."})})};t.PandemicAntibodyDisplay=s;t.Pandemic=function(e,t){var n=(0,a.useBackend)(t).data;return(0,o.createComponentVNode)(2,i.Window,{width:520,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,l),!!n.has_blood&&(0,o.createFragment)([(0,o.createComponentVNode)(2,d),(0,o.createComponentVNode)(2,s)],4)]})})}},52472:function(e,t,n){"use strict";t.__esModule=!0,t.PaperSheet=void 0;var o=n(39812),r=n(34380),a=n(51961),c=s(n(65054)),i=s(n(76756)),l=n(71494),d=n(74814),u=n(85952);function s(e){return e&&e.__esModule?e:{"default":e}}function m(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,v(e,t)}function p(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}function C(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return h(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return h(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n]+)>/g,(function(e,t){return"$"+n[t]})))}if("function"==typeof t){var a=this;return o[Symbol.replace].call(this,e,(function(){var e=[];return e.push.apply(e,arguments),"object"!=typeof e[e.length-1]&&e.push(c(e,a)),t.apply(this,e)}))}return o[Symbol.replace].call(this,e,t)},N.apply(this,arguments)}function V(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&v(e,t)}function b(e){var t="function"==typeof Map?new Map:undefined;return(b=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,o)}function o(){return f(e,arguments,k(this).constructor)}return o.prototype=Object.create(e.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),v(o,e)})(e)}function f(e,t,n){return(f=g()?Reflect.construct:function(e,t,n){var o=[null];o.push.apply(o,t);var r=new(Function.bind.apply(e,o));return n&&v(r,n.prototype),r}).apply(null,arguments)}function g(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function k(e){return(k=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var x=5e3,B=function(e,t,n,o){return void 0===o&&(o=!1),"'+e+""},_=/\[(_+)\]/g,w=N(/\[\]/gm,{id:2}),L=/%s(?:ign)?(?=\\s|$)/gim,y=function(e,t,n,o,r){var a=e.replace(_,(function(e,a,c,i){var l=function(e,t,n){t=n+"x "+t;var o=document.createElement("canvas").getContext("2d");return o.font=t,o.measureText(e).width}(e,t,n)+"px";return function(e,t,n,o,r,a){return'['+(n=a,r=l,(r?n.replace(/")};return(0,o.createComponentVNode)(2,d.Box,{position:"relative",backgroundColor:i,width:"100%",height:"100%",children:[(0,o.createComponentVNode)(2,d.Box,{fillPositionedParent:!0,width:"100%",height:"100%",dangerouslySetInnerHTML:s,p:"10px"}),u.map((function(e,t){return(0,o.createComponentVNode)(2,I,{image:{sprite:e[0],x:e[1],y:e[2],rotate:e[3]}},e[0]+t)}))]})},A=function(e){function t(t,n){var o;return(o=e.call(this,t,n)||this).state={x:0,y:0,rotate:0},o}m(t,e);var n=t.prototype;return n.findStampPosition=function(e){for(var t=event.pageX,n=event.pageY,o={left:e.target.offsetLeft,top:e.target.offsetTop},r=e.target.offsetParent;r;)o.left+=r.offsetLeft,o.top+=r.offsetTop,r=r.offsetParent;var c=[t-o.left,n-o.top],i=(0,a.vecScale)([121,51],.5);return(0,a.vecSubtract)(c,i)},n.componentDidMount=function(){document.onwheel=this.handleWheel.bind(this)},n.handleMouseMove=function(e){var t=this.findStampPosition(e);S(e),this.setState({x:t[0],y:t[1]})},n.handleMouseClick=function(e){var t=this.findStampPosition(e),n=(0,l.useBackend)(this.context),o=n.act,r=n.data;o("stamp",{x:t[0],y:t[1],r:this.state.rotate,stamp_class:this.props.stamp_class,stamp_icon_state:r.stamp_icon_state}),this.setState({x:t[0],y:t[1]})},n.handleWheel=function(e){var t=e.deltaY>0?15:-15;if(e.deltaY<0&&0===this.state.rotate)this.setState({rotate:360+t});else if(e.deltaY>0&&360===this.state.rotate)this.setState({rotate:t});else{var n={rotate:t+this.state.rotate};this.setState((function(){return n}))}S(e)},n.render=function(){var e=this.props,t=e.value,n=e.stamp_class,r=e.stamps,a=p(e,["value","stamp_class","stamps"]),c=r||[],i={sprite:n,x:this.state.x,y:this.state.y,rotate:this.state.rotate};return(0,o.normalizeProps)((0,o.createComponentVNode)(2,d.Box,Object.assign({onClick:this.handleMouseClick.bind(this),onMouseMove:this.handleMouseMove.bind(this),onwheel:this.handleWheel.bind(this)},a,{children:[(0,o.createComponentVNode)(2,T,{readOnly:!0,value:t,stamps:c}),(0,o.createComponentVNode)(2,I,{opacity:.5,image:i})]})))},t}(o.Component),P=function(e){function t(t,n){var o;return(o=e.call(this,t,n)||this).state={previewSelected:"Preview",old_text:t.value||"",textarea_text:"",combined_text:t.value||""},o}m(t,e);var n=t.prototype;return n.createPreview=function(e,t){void 0===t&&(t=!1);var n,o,r=(0,l.useBackend)(this.context).data,a=r.text,d=r.pen_color,u=r.pen_font,s=r.is_crayon,m=r.field_counter,p=r.edit_usr,h={text:a};if((e=e.trim()).length>0){var N=function(e){return c["default"].sanitize(e,{FORBID_ATTR:["class","style"],ALLOWED_TAGS:["br","code","li","p","pre","span","table","td","tr","th","ul","ol","menu","font","b","center","table","tr","th"]})}(e+="\n"===e[e.length]?" \n":"\n \n"),V=(n=d,o=p,N.replace(L,(function(){return B(o,"Times New Roman",n,!0)}))),b=y(V,u,12,d,m),f=function(e){return(0,i["default"])(e,{breaks:!0,smartypants:!0,smartLists:!0,walkTokens:function(e){switch(e.type){case"url":case"autolink":case"reflink":case"link":case"image":e.type="text",e.href=""}},baseUrl:"thisshouldbreakhttp"})}(b.text),g=B(f,u,d,s);h.text+=g,h.field_counter=b.counter}if(t){var v=function(e,t,n,o,r){var a;void 0===r&&(r=!1);for(var i={},l=[];null!==(a=w.exec(e));){var d=a[0],u=a.groups.id;if(u){var s=document.getElementById(u);if(0===(s&&s.value?s.value:"").length)continue;var m=c["default"].sanitize(s.value.trim(),{ALLOWED_TAGS:[]});if(0===m.length)continue;var p=s.cloneNode(!0);m.match(L)?(p.style.fontFamily="Times New Roman",r=!0,p.defaultValue=o):(p.style.fontFamily=t,p.defaultValue=m),r&&(p.style.fontWeight="bold"),p.style.color=n,p.disabled=!0;var h=document.createElement("div");h.appendChild(p),i[u]=m,l.push({value:"["+h.innerHTML+"]",raw_text:d})}}if(l.length>0)for(var N,V=C(l);!(N=V()).done;){var b=N.value;e=e.replace(b.raw_text,b.value)}return{text:e,fields:i}}(h.text,u,d,p,s);h.text=v.text,h.form_fields=v.fields}return h},n.onInputHandler=function(e,t){var n=this;if(t!==this.state.textarea_text){var o=this.state.old_text.length+this.state.textarea_text.length;if(o>x&&(t=o-x>=t.length?"":t.substr(0,t.length-(o-x)))===this.state.textarea_text)return;this.setState((function(){return{textarea_text:t,combined_text:n.createPreview(t)}}))}},n.finalUpdate=function(e){var t=(0,l.useBackend)(this.context).act,n=this.createPreview(e,!0);t("save",n),this.setState((function(){return{textarea_text:"",previewSelected:"save",combined_text:n.text}}))},n.render=function(){var e=this,t=this.props,n=(t.value,t.textColor),r=t.fontFamily,a=t.stamps,c=t.backgroundColor;return p(t,["value","textColor","fontFamily","stamps","backgroundColor"]),(0,o.createComponentVNode)(2,d.Flex,{direction:"column",fillPositionedParent:!0,children:[(0,o.createComponentVNode)(2,d.Flex.Item,{children:(0,o.createComponentVNode)(2,d.Tabs,{children:[(0,o.createComponentVNode)(2,d.Tabs.Tab,{textColor:"black",backgroundColor:"Edit"===this.state.previewSelected?"grey":"white",selected:"Edit"===this.state.previewSelected,onClick:function(){return e.setState({previewSelected:"Edit"})},children:"Edit"},"marked_edit"),(0,o.createComponentVNode)(2,d.Tabs.Tab,{textColor:"black",backgroundColor:"Preview"===this.state.previewSelected?"grey":"white",selected:"Preview"===this.state.previewSelected,onClick:function(){return e.setState((function(){return{previewSelected:"Preview",textarea_text:e.state.textarea_text,combined_text:e.createPreview(e.state.textarea_text).text}}))},children:"Preview"},"marked_preview"),(0,o.createComponentVNode)(2,d.Tabs.Tab,{textColor:"black",backgroundColor:"confirm"===this.state.previewSelected?"red":"save"===this.state.previewSelected?"grey":"white",selected:"confirm"===this.state.previewSelected||"save"===this.state.previewSelected,onClick:function(){"confirm"===e.state.previewSelected?e.finalUpdate(e.state.textarea_text):"Edit"===e.state.previewSelected?e.setState((function(){return{previewSelected:"confirm",textarea_text:e.state.textarea_text,combined_text:e.createPreview(e.state.textarea_text).text}})):e.setState({previewSelected:"confirm"})},children:"confirm"===this.state.previewSelected?"confirm":"save"},"marked_done")]})}),(0,o.createComponentVNode)(2,d.Flex.Item,{grow:1,basis:1,children:"Edit"===this.state.previewSelected&&(0,o.createComponentVNode)(2,d.TextArea,{value:this.state.textarea_text,textColor:n,fontFamily:r,height:window.innerHeight-80+"px",backgroundColor:c,onInput:this.onInputHandler.bind(this)})||(0,o.createComponentVNode)(2,T,{value:this.state.combined_text,stamps:a,fontFamily:r,textColor:n})})]})},t}(o.Component);t.PaperSheet=function(e,t){var n=(0,l.useBackend)(t).data,r=n.edit_mode,a=n.text,c=n.paper_color,i=n.pen_color,s=void 0===i?"black":i,m=n.pen_font,p=void 0===m?"Verdana":m,C=n.stamps,h=n.stamp_class,N=(n.stamped,c&&"white"!==c?c:"#FFFFFF"),V=C&&null!==C?C:[];return(0,o.createComponentVNode)(2,u.Window,{theme:"paper",width:400,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,u.Window.Content,{children:(0,o.createComponentVNode)(2,d.Box,{fillPositionedParent:!0,backgroundColor:N,children:function(e){switch(e){case 0:return(0,o.createComponentVNode)(2,T,{value:a,stamps:V,readOnly:!0});case 1:return(0,o.createComponentVNode)(2,P,{value:a,textColor:s,fontFamily:p,stamps:V,backgroundColor:N});case 2:return(0,o.createComponentVNode)(2,A,{value:a,stamps:V,stamp_class:h});default:return"ERROR ERROR WE CANNOT BE HERE!!"}}(r)})})})}},57966:function(e,t,n){"use strict";t.__esModule=!0,t.ParticleAccelerator=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.ParticleAccelerator=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.assembled,u=l.power,s=l.strength;return(0,o.createComponentVNode)(2,c.Window,{width:350,height:185,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Run Scan",onClick:function(){return i("scan")}}),children:(0,o.createComponentVNode)(2,a.Box,{color:d?"good":"bad",children:d?"Ready - All parts in place":"Unable to detect all parts"})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Particle Accelerator Controls",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,disabled:!d,onClick:function(){return i("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Particle Strength",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:!d,onClick:function(){return i("remove_strength")}})," ",String(s).padStart(1,"0")," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:!d,onClick:function(){return i("add_strength")}})]})]})})]})})}},67589:function(e,t,n){"use strict";t.__esModule=!0,t.PersonalCrafting=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);function i(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n50?"good":d>15&&"average")||"bad";return(0,o.createComponentVNode)(2,c.Window,{width:450,height:340,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[!l.anchored&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Generator not anchored."}),(0,o.createComponentVNode)(2,a.Section,{title:"Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power switch",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.active?"power-off":"times",onClick:function(){return i("toggle_power")},disabled:!l.ready_to_boot,children:l.active?"On":"Off"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:l.sheet_name+" sheets",children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:u,children:l.sheets}),l.sheets>=1&&(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"eject",disabled:l.active,onClick:function(){return i("eject")},children:"Eject"})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current sheet level",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.stack_percent/100,ranges:{good:[.1,Infinity],average:[.01,.1],bad:[-Infinity,.01]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Heat level",children:l.current_heat<100?(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"good",children:"Nominal"}):l.current_heat<200?(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"average",children:"Caution"}):(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"bad",children:"DANGER"})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Output",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current output",children:l.power_output}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Adjust output",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"minus",onClick:function(){return i("lower_power")},children:l.power_generated}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return i("higher_power")},children:l.power_generated})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power available",children:(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:!l.connected&&"bad",children:l.connected?l.power_available:"Unconnected"})})]})})]})})}},82564:function(e,t,n){"use strict";t.__esModule=!0,t.PortablePump=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=n(34227);t.PortablePump=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.direction,s=(d.holding,d.target_pressure),m=d.default_pressure,p=d.min_pressure,C=d.max_pressure;return(0,o.createComponentVNode)(2,c.Window,{width:300,height:315,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,i.PortableBasicInfo),(0,o.createComponentVNode)(2,a.Section,{title:"Pump",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u?"sign-in-alt":"sign-out-alt",content:u?"In":"Out",selected:u,onClick:function(){return l("direction")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:s,unit:"kPa",width:"75px",minValue:p,maxValue:C,step:10,onChange:function(e,t){return l("pressure",{pressure:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Presets",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"minus",disabled:s===p,onClick:function(){return l("pressure",{pressure:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",disabled:s===m,onClick:function(){return l("pressure",{pressure:"reset"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",disabled:s===C,onClick:function(){return l("pressure",{pressure:"max"})}})]})]})})]})})}},24901:function(e,t,n){"use strict";t.__esModule=!0,t.PortableScrubber=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(76270),i=n(85952),l=n(34227);t.PortableScrubber=function(e,t){var n=(0,r.useBackend)(t),d=n.act,u=n.data.filter_types||[];return(0,o.createComponentVNode)(2,i.Window,{width:320,height:350,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,l.PortableBasicInfo),(0,o.createComponentVNode)(2,a.Section,{title:"Filters",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.enabled?"check-square-o":"square-o",content:(0,c.getGasLabel)(e.gas_id,e.gas_name),selected:e.enabled,onClick:function(){return d("toggle_filter",{val:e.gas_id})}},e.id)}))})]})})}},31695:function(e,t,n){"use strict";t.__esModule=!0,t.PortableTurret=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.PortableTurret=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.silicon_user,u=l.locked,s=l.on,m=l.check_weapons,p=l.neutralize_criminals,C=l.neutralize_all,h=l.neutralize_unidentified,N=l.neutralize_nonmindshielded,V=l.neutralize_cyborgs,b=l.neutralize_heads,f=l.manual_control,g=l.allow_manual_control,v=l.lasertag_turret;return(0,o.createComponentVNode)(2,c.Window,{width:310,height:v?110:292,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.NoticeBox,{children:["Swipe an ID card to ",u?"unlock":"lock"," this interface."]}),(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",buttons:!v&&(!!g||!!f&&!!d)&&(0,o.createComponentVNode)(2,a.Button,{icon:f?"wifi":"terminal",content:f?"Remotely Controlled":"Manual Control",disabled:f,color:"bad",onClick:function(){return i("manual")}}),children:(0,o.createComponentVNode)(2,a.Button,{icon:s?"power-off":"times",content:s?"On":"Off",selected:s,disabled:u,onClick:function(){return i("power")}})})})}),!v&&(0,o.createComponentVNode)(2,a.Section,{title:"Target Settings",buttons:(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:!b,content:"Ignore Command",disabled:u,onClick:function(){return i("shootheads")}}),children:[(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:C,content:"Non-Security and Non-Command",disabled:u,onClick:function(){return i("shootall")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:m,content:"Unauthorized Weapons",disabled:u,onClick:function(){return i("authweapon")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:h,content:"Unidentified Life Signs",disabled:u,onClick:function(){return i("checkxenos")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:N,content:"Non-Mindshielded",disabled:u,onClick:function(){return i("checkloyal")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:p,content:"Wanted Criminals",disabled:u,onClick:function(){return i("shootcriminals")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:V,content:"Cyborgs",disabled:u,onClick:function(){return i("shootborgs")}})]})],0)]})})}},89793:function(e,t,n){"use strict";t.__esModule=!0,t.AreaCharge=t.PowerMonitorContent=t.PowerMonitor=t.powerRank=void 0;var o=n(39812),r=n(64499),a=n(85531),c=n(41860),i=n(34380),l=n(71494),d=n(74814),u=n(85952),s=5e5,m=function(e){var t=String(e.split(" ")[1]).toLowerCase();return["w","kw","mw","gw"].indexOf(t)};t.powerRank=m;t.PowerMonitor=function(){return(0,o.createComponentVNode)(2,u.Window,{width:550,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,u.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,p)})})};var p=function(e,t){var n=(0,l.useBackend)(t).data,i=n.history,u=(0,l.useLocalState)(t,"sortByField",null),p=u[0],N=u[1],V=i.supply[i.supply.length-1]||0,b=i.demand[i.demand.length-1]||0,f=i.supply.map((function(e,t){return[t,e]})),g=i.demand.map((function(e,t){return[t,e]})),v=Math.max.apply(Math,[s].concat(i.supply,i.demand)),k=(0,a.flow)([(0,r.map)((function(e,t){return Object.assign({},e,{id:e.name+t})})),"name"===p&&(0,r.sortBy)((function(e){return e.name})),"charge"===p&&(0,r.sortBy)((function(e){return-e.charge})),"draw"===p&&(0,r.sortBy)((function(e){return-m(e.load)}),(function(e){return-parseFloat(e.load)}))])(n.areas);return(0,o.createFragment)([(0,o.createComponentVNode)(2,d.Flex,{mx:-.5,mb:1,children:[(0,o.createComponentVNode)(2,d.Flex.Item,{mx:.5,width:"200px",children:(0,o.createComponentVNode)(2,d.Section,{children:(0,o.createComponentVNode)(2,d.LabeledList,{children:[(0,o.createComponentVNode)(2,d.LabeledList.Item,{label:"Supply",children:(0,o.createComponentVNode)(2,d.ProgressBar,{value:V,minValue:0,maxValue:v,color:"teal",children:(0,c.toFixed)(V/1e3)+" kW"})}),(0,o.createComponentVNode)(2,d.LabeledList.Item,{label:"Draw",children:(0,o.createComponentVNode)(2,d.ProgressBar,{value:b,minValue:0,maxValue:v,color:"pink",children:(0,c.toFixed)(b/1e3)+" kW"})})]})})}),(0,o.createComponentVNode)(2,d.Flex.Item,{mx:.5,grow:1,children:(0,o.createComponentVNode)(2,d.Section,{position:"relative",height:"100%",children:[(0,o.createComponentVNode)(2,d.Chart.Line,{fillPositionedParent:!0,data:f,rangeX:[0,f.length-1],rangeY:[0,v],strokeColor:"rgba(0, 181, 173, 1)",fillColor:"rgba(0, 181, 173, 0.25)"}),(0,o.createComponentVNode)(2,d.Chart.Line,{fillPositionedParent:!0,data:g,rangeX:[0,g.length-1],rangeY:[0,v],strokeColor:"rgba(224, 57, 151, 1)",fillColor:"rgba(224, 57, 151, 0.25)"})]})})]}),(0,o.createComponentVNode)(2,d.Section,{children:[(0,o.createComponentVNode)(2,d.Box,{mb:1,children:[(0,o.createComponentVNode)(2,d.Box,{inline:!0,mr:2,color:"label",children:"Sort by:"}),(0,o.createComponentVNode)(2,d.Button.Checkbox,{checked:"name"===p,content:"Name",onClick:function(){return N("name"!==p&&"name")}}),(0,o.createComponentVNode)(2,d.Button.Checkbox,{checked:"charge"===p,content:"Charge",onClick:function(){return N("charge"!==p&&"charge")}}),(0,o.createComponentVNode)(2,d.Button.Checkbox,{checked:"draw"===p,content:"Draw",onClick:function(){return N("draw"!==p&&"draw")}})]}),(0,o.createComponentVNode)(2,d.Table,{children:[(0,o.createComponentVNode)(2,d.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,d.Table.Cell,{children:"Area"}),(0,o.createComponentVNode)(2,d.Table.Cell,{collapsing:!0,children:"Charge"}),(0,o.createComponentVNode)(2,d.Table.Cell,{textAlign:"right",children:"Draw"}),(0,o.createComponentVNode)(2,d.Table.Cell,{collapsing:!0,title:"Equipment",children:"Eqp"}),(0,o.createComponentVNode)(2,d.Table.Cell,{collapsing:!0,title:"Lighting",children:"Lgt"}),(0,o.createComponentVNode)(2,d.Table.Cell,{collapsing:!0,title:"Environment",children:"Env"})]}),k.map((function(e,t){return(0,o.createVNode)(1,"tr","Table__row candystripe",[(0,o.createVNode)(1,"td",null,e.name,0),(0,o.createVNode)(1,"td","Table__cell text-right text-nowrap",(0,o.createComponentVNode)(2,C,{charging:e.charging,charge:e.charge}),2),(0,o.createVNode)(1,"td","Table__cell text-right text-nowrap",e.load,0),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,h,{status:e.eqp}),2),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,h,{status:e.lgt}),2),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,h,{status:e.env}),2)],4,null,e.id)}))]})]})],4)};t.PowerMonitorContent=p;var C=function(e){var t=e.charging,n=e.charge;return(0,o.createFragment)([(0,o.createComponentVNode)(2,d.Icon,{width:"18px",textAlign:"center",name:0===t&&(n>50?"battery-half":"battery-quarter")||1===t&&"bolt"||2===t&&"battery-full",color:0===t&&(n>50?"yellow":"red")||1===t&&"yellow"||2===t&&"green"}),(0,o.createComponentVNode)(2,d.Box,{inline:!0,width:"36px",textAlign:"right",children:(0,c.toFixed)(n)+"%"})],4)};t.AreaCharge=C,C.defaultHooks=i.pureComponentHooks;var h=function(e){var t=e.status,n=Boolean(2&t),r=Boolean(1&t),a=(n?"On":"Off")+" ["+(r?"auto":"manual")+"]";return(0,o.createComponentVNode)(2,d.ColorBox,{color:n?"good":"bad",content:r?undefined:"M",title:a})};h.defaultHooks=i.pureComponentHooks},49081:function(e,t,n){"use strict";t.__esModule=!0,t.ProbingConsole=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.ProbingConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.open,u=l.feedback,s=l.occupant,m=l.occupant_name,p=l.occupant_status;return(0,o.createComponentVNode)(2,c.Window,{width:330,height:207,theme:"abductor",children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Machine Report",children:u})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Scanner",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d?"sign-out-alt":"sign-in-alt",content:d?"Close":"Open",onClick:function(){return i("door")}}),children:s&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:m}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:3===p?"bad":2===p?"average":"good",children:3===p?"Deceased":2===p?"Unconscious":"Conscious"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Experiments",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"thermometer",content:"Probe",onClick:function(){return i("experiment",{experiment_type:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"brain",content:"Dissect",onClick:function(){return i("experiment",{experiment_type:2})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"search",content:"Analyze",onClick:function(){return i("experiment",{experiment_type:3})}})]})]})||(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Subject"})})]})})}},33642:function(e,t,n){"use strict";t.__esModule=!0,t.ProximitySensor=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.ProximitySensor=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.minutes,u=l.seconds,s=l.timing,m=l.scanning,p=l.sensitivity;return(0,o.createComponentVNode)(2,c.Window,{width:250,height:185,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Button,{icon:m?"lock":"unlock",content:m?"Armed":"Not Armed",selected:m,onClick:function(){return i("scanning")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Detection Range",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:m,onClick:function(){return i("sense",{range:-1})}})," ",String(p).padStart(1,"1")," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:m,onClick:function(){return i("sense",{range:1})}})]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Auto Arm",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"clock-o",content:s?"Stop":"Start",selected:s,disabled:m,onClick:function(){return i("time")}}),children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:m||s,onClick:function(){return i("input",{adjust:-30})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:m||s,onClick:function(){return i("input",{adjust:-1})}})," ",String(d).padStart(2,"0"),":",String(u).padStart(2,"0")," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:m||s,onClick:function(){return i("input",{adjust:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:m||s,onClick:function(){return i("input",{adjust:30})}})]})]})})}},17481:function(e,t,n){"use strict";t.__esModule=!0,t.Radio=void 0;var o=n(39812),r=n(64499),a=n(41860),c=n(71494),i=n(74814),l=n(76270),d=n(85952);t.Radio=function(e,t){var n=(0,c.useBackend)(t),u=n.act,s=n.data,m=s.freqlock,p=s.frequency,C=s.minFrequency,h=s.maxFrequency,N=s.listening,V=s.broadcasting,b=s.command,f=s.useCommand,g=s.subspace,v=s.subspaceSwitchable,k=l.RADIO_CHANNELS.find((function(e){return e.freq===p})),x=(0,r.map)((function(e,t){return{name:t,status:!!e}}))(s.channels),B=106;return g&&(x.length>0?B+=21*x.length+6:B+=24),(0,o.createComponentVNode)(2,d.Window,{width:360,height:B,children:(0,o.createComponentVNode)(2,d.Window.Content,{children:(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Frequency",children:[m&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"light-gray",children:(0,a.toFixed)(p/10,1)+" kHz"})||(0,o.createComponentVNode)(2,i.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:10,minValue:C/10,maxValue:h/10,value:p/10,format:function(e){return(0,a.toFixed)(e,1)},onDrag:function(e,t){return u("frequency",{adjust:t-p/10})}}),k&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:k.color,ml:2,children:["[",k.name,"]"]})]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Audio",children:[(0,o.createComponentVNode)(2,i.Button,{textAlign:"center",width:"37px",icon:N?"volume-up":"volume-mute",selected:N,onClick:function(){return u("listen")}}),(0,o.createComponentVNode)(2,i.Button,{textAlign:"center",width:"37px",icon:V?"microphone":"microphone-slash",selected:V,onClick:function(){return u("broadcast")}}),!!b&&(0,o.createComponentVNode)(2,i.Button,{ml:1,icon:"bullhorn",selected:f,content:"High volume "+(f?"ON":"OFF"),onClick:function(){return u("command")}}),!!v&&(0,o.createComponentVNode)(2,i.Button,{ml:1,icon:"bullhorn",selected:g,content:"Subspace Tx "+(g?"ON":"OFF"),onClick:function(){return u("subspace")}})]}),!!g&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Channels",children:[0===x.length&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"bad",children:"No encryption keys installed."}),x.map((function(e){return(0,o.createComponentVNode)(2,i.Box,{children:(0,o.createComponentVNode)(2,i.Button,{icon:e.status?"check-square-o":"square-o",selected:e.status,content:e.name,onClick:function(){return u("channel",{channel:e.name})}})},e.name)}))]})]})})})})}},8324:function(e,t,n){"use strict";t.__esModule=!0,t.RadioactiveMicrolaser=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.RadioactiveMicrolaser=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.irradiate,u=l.stealth,s=l.scanmode,m=l.intensity,p=l.wavelength,C=l.on_cooldown,h=l.cooldown;return(0,o.createComponentVNode)(2,c.Window,{title:"Radioactive Microlaser",width:320,height:335,theme:"syndicate",children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Laser Status",children:(0,o.createComponentVNode)(2,a.Box,{color:C?"average":"good",children:C?"Recharging":"Ready"})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Scanner Controls",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Irradiation",children:(0,o.createComponentVNode)(2,a.Button,{icon:d?"power-off":"times",content:d?"On":"Off",selected:d,onClick:function(){return i("irradiate")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Stealth Mode",children:(0,o.createComponentVNode)(2,a.Button,{icon:u?"eye-slash":"eye",content:u?"On":"Off",disabled:!d,selected:u,onClick:function(){return i("stealth")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Scan Mode",children:(0,o.createComponentVNode)(2,a.Button,{icon:s?"mortar-pestle":"heartbeat",content:s?"Scan Reagents":"Scan Health",disabled:d&&u,onClick:function(){return i("scanmode")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Laser Settings",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Intensity",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",onClick:function(){return i("radintensity",{adjust:-5})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",onClick:function(){return i("radintensity",{adjust:-1})}})," ",(0,o.createComponentVNode)(2,a.NumberInput,{value:Math.round(m),width:"40px",minValue:1,maxValue:20,onChange:function(e,t){return i("radintensity",{target:t})}})," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",onClick:function(){return i("radintensity",{adjust:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",onClick:function(){return i("radintensity",{adjust:5})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Wavelength",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",onClick:function(){return i("radwavelength",{adjust:-5})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",onClick:function(){return i("radwavelength",{adjust:-1})}})," ",(0,o.createComponentVNode)(2,a.NumberInput,{value:Math.round(p),width:"40px",minValue:0,maxValue:120,onChange:function(e,t){return i("radwavelength",{target:t})}})," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",onClick:function(){return i("radwavelength",{adjust:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",onClick:function(){return i("radwavelength",{adjust:5})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Laser Cooldown",children:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:h})})]})})]})})}},29509:function(e,t,n){"use strict";t.__esModule=!0,t.RapidPipeDispenser=void 0;var o=n(39812),r=n(34380),a=n(71494),c=n(74814),i=n(85952),l=["Atmospherics","Disposals","Transit Tubes"],d={Atmospherics:"wrench",Disposals:"trash-alt","Transit Tubes":"bus",Pipes:"grip-lines","Disposal Pipes":"grip-lines",Devices:"microchip","Heat Exchange":"thermometer-half","Station Equipment":"microchip"},u={grey:"#bbbbbb",amethyst:"#a365ff",blue:"#4466ff",brown:"#b26438",cyan:"#48eae8",dark:"#808080",green:"#1edd00",orange:"#ffa030",purple:"#b535ea",red:"#ff3333",violet:"#6e00f6",yellow:"#ffce26"},s=[{name:"Dispense",bitmask:1},{name:"Connect",bitmask:2},{name:"Destroy",bitmask:4},{name:"Paint",bitmask:8}];t.RapidPipeDispenser=function(e,t){var n=(0,a.useBackend)(t),m=n.act,p=n.data,C=p.category,h=p.categories,N=void 0===h?[]:h,V=p.selected_color,b=p.piping_layer,f=p.mode,g=p.preview_rows.flatMap((function(e){return e.previews})),v=(0,a.useLocalState)(t,"categoryName"),k=v[0],x=v[1],B=N.find((function(e){return e.cat_name===k}))||N[0];return(0,o.createComponentVNode)(2,i.Window,{width:425,height:515,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Category",children:l.map((function(e,t){return(0,o.createComponentVNode)(2,c.Button,{selected:C===t,icon:d[e],color:"transparent",content:e,onClick:function(){return m("category",{category:t})}},e)}))}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Modes",children:s.map((function(e){return(0,o.createComponentVNode)(2,c.Button.Checkbox,{checked:f&e.bitmask,content:e.name,onClick:function(){return m("mode",{mode:e.bitmask})}},e.bitmask)}))}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Color",children:[(0,o.createComponentVNode)(2,c.Box,{inline:!0,width:"64px",color:u[V],children:V}),Object.keys(u).map((function(e){return(0,o.createComponentVNode)(2,c.ColorBox,{ml:1,color:u[e],onClick:function(){return m("color",{paint_color:e})}},e)}))]})]})}),(0,o.createComponentVNode)(2,c.Flex,{m:-.5,children:[(0,o.createComponentVNode)(2,c.Flex.Item,{m:.5,children:(0,o.createComponentVNode)(2,c.Section,{children:[0===C&&(0,o.createComponentVNode)(2,c.Box,{mb:1,children:[1,2,3].map((function(e){return(0,o.createComponentVNode)(2,c.Button.Checkbox,{fluid:!0,checked:e===b,content:"Layer "+e,onClick:function(){return m("piping_layer",{piping_layer:e})}},e)}))}),(0,o.createComponentVNode)(2,c.Box,{width:"108px",children:g.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{title:e.dir_name,selected:e.selected,style:{width:"48px",height:"48px",padding:0},onClick:function(){return m("setdir",{dir:e.dir,flipped:e.flipped})},children:(0,o.createComponentVNode)(2,c.Box,{className:(0,r.classes)(["pipes32x32",e.dir+"-"+e.icon_state]),style:{transform:"scale(1.5) translate(17%, 17%)"}})},e.dir)}))})]})}),(0,o.createComponentVNode)(2,c.Flex.Item,{m:.5,grow:1,children:(0,o.createComponentVNode)(2,c.Section,{children:[(0,o.createComponentVNode)(2,c.Tabs,{children:N.map((function(e,t){return(0,o.createComponentVNode)(2,c.Tabs.Tab,{fluid:!0,icon:d[e.cat_name],selected:e.cat_name===B.cat_name,onClick:function(){return x(e.cat_name)},children:e.cat_name},e.cat_name)}))}),null==B?void 0:B.recipes.map((function(e){return(0,o.createComponentVNode)(2,c.Button.Checkbox,{fluid:!0,ellipsis:!0,checked:e.selected,content:e.pipe_name,title:e.pipe_name,onClick:function(){return m("pipe_type",{pipe_type:e.pipe_index,category:B.cat_name})}},e.pipe_index)}))]})})]})]})})}},14265:function(e,t,n){"use strict";t.__esModule=!0,t.RemoteRobotControlContent=t.RemoteRobotControl=void 0;var o=n(39812),r=n(2497),a=n(71494),c=n(74814),i=n(85952);t.RemoteRobotControl=function(e,t){return(0,o.createComponentVNode)(2,i.Window,{title:"Remote Robot Control",width:500,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,l)})})};var l=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data.robots,d=void 0===l?[]:l;return d.length?d.map((function(e){return(0,o.createComponentVNode)(2,c.Section,{title:e.name+" ("+e.model+")",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:"tools",content:"Interface",onClick:function(){return i("interface",{ref:e.ref})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"phone-alt",content:"Call",onClick:function(){return i("callbot",{ref:e.ref})}})],4),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Status",children:[(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"Inactive"===(0,r.decodeHtmlEntities)(e.mode)?"bad":"Idle"===(0,r.decodeHtmlEntities)(e.mode)?"average":"good",children:(0,r.decodeHtmlEntities)(e.mode)})," ",e.hacked&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"bad",children:"(HACKED)"})||""]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Location",children:e.location})]})},e.ref)})):(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.NoticeBox,{textAlign:"center",children:"No robots detected"})})};t.RemoteRobotControlContent=l},18374:function(e,t,n){"use strict";t.__esModule=!0,t.RequestKioskContent=t.RequestKiosk=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(58083),i=n(85952);t.RequestKiosk=function(e,t){return(0,o.createComponentVNode)(2,i.Window,{width:550,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,l)})})};var l=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.accountName,u=l.requests,s=void 0===u?[]:u,m=l.applicants,p=void 0===m?[]:m,C=l.bountyValue;l.bountyText;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Account",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:"Log out",onClick:function(){return i("clear")}}),children:d||"N/A"})})}),(0,o.createComponentVNode)(2,a.Flex,{mb:1,children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:null==s?void 0:s.map((function(e){return(0,o.createComponentVNode)(2,a.Collapsible,{title:e.owner,width:"300px",children:(0,o.createComponentVNode)(2,a.Section,{width:"300px",children:[(0,o.createComponentVNode)(2,a.Flex,{spacing:1,align:"baseline",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{bold:!0,width:"310px",children:e.owner}),(0,o.createComponentVNode)(2,a.Flex.Item,{width:"100px",children:(0,c.formatMoney)(e.value)+" cr"}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"pen-fancy",content:"Apply",onClick:function(){return i("apply",{request:e.acc_number})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"trash-alt",content:"Delete",color:"red",onClick:function(){return i("deleteRequest",{request:e.acc_number})}})]})]}),(0,o.createComponentVNode)(2,a.Section,{align:"center",children:(0,o.createVNode)(1,"i",null,[(0,o.createTextVNode)('"'),e.description,(0,o.createTextVNode)('"')],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Request Applicants",children:null==p?void 0:p.map((function(t){return t.request_id===e.acc_number&&(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,p:.5,backgroundColor:"rgba(0, 0, 69, 0.5)",width:"510px",style:{border:"2px solid rgba(13, 13, 213, 0.7)"},children:t.name}),(0,o.createComponentVNode)(2,a.Flex.Item,{align:"end",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"cash-register",onClick:function(){return i("payApplicant",{applicant:t.requestee_id,request:e.acc_number})}})})]})}))})]},e.name)},e.name)}))}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Collapsible,{title:"New Bounty",width:"220px",color:"green",children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.TextArea,{fluid:!0,height:"250px",width:"200px",backgroundColor:"black",textColor:"white",onChange:function(e,t){return i("bountyText",{bountytext:t})}}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.NumberInput,{animate:!0,unit:"cr",minValue:1,maxValue:1e3,value:C,width:"80px",onChange:function(e,t){return i("bountyVal",{bountyval:t})}})}),(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:"Submit bounty",onClick:function(){return i("createBounty")}})]})})})]})],4)};t.RequestKioskContent=l},24455:function(e,t,n){"use strict";t.__esModule=!0,t.RoboticsControlConsole=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.RoboticsControlConsole=function(e,t){var n=(0,r.useBackend)(t),d=(n.act,n.data),u=(0,r.useSharedState)(t,"tab",1),s=u[0],m=u[1],p=d.can_hack,C=d.cyborgs,h=void 0===C?[]:C,N=d.drones,V=void 0===N?[]:N;return(0,o.createComponentVNode)(2,c.Window,{width:500,height:460,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{icon:"list",lineHeight:"23px",selected:1===s,onClick:function(){return m(1)},children:["Cyborgs (",h.length,")"]}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{icon:"list",lineHeight:"23px",selected:2===s,onClick:function(){return m(2)},children:["Drones (",V.length,")"]})]}),1===s&&(0,o.createComponentVNode)(2,i,{cyborgs:h,can_hack:p}),2===s&&(0,o.createComponentVNode)(2,l,{drones:V})]})})};var i=function(e,t){var n=e.cyborgs,c=e.can_hack,i=(0,r.useBackend)(t),l=i.act;i.data;return n.length?n.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,buttons:(0,o.createFragment)([!!c&&!e.emagged&&(0,o.createComponentVNode)(2,a.Button,{icon:"terminal",content:"Hack",color:"bad",onClick:function(){return l("magbot",{ref:e.ref})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:e.locked_down?"unlock":"lock",color:e.locked_down?"good":"default",content:e.locked_down?"Release":"Lockdown",onClick:function(){return l("stopbot",{ref:e.ref})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"bomb",content:"Detonate",color:"bad",onClick:function(){return l("killbot",{ref:e.ref})}})],0),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.status?"bad":e.locked_down?"average":"good",children:e.status?"Not Responding":e.locked_down?"Locked Down":"Nominal"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge",children:(0,o.createComponentVNode)(2,a.Box,{color:e.charge<=30?"bad":e.charge<=70?"average":"good",children:"number"==typeof e.charge?e.charge+"%":"Not Found"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Module",children:e.module}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Master AI",children:(0,o.createComponentVNode)(2,a.Box,{color:e.synchronization?"default":"average",children:e.synchronization||"None"})})]})},e.ref)})):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No cyborg units detected within access parameters"})},l=function(e,t){var n=e.drones,c=(0,r.useBackend)(t).act;return n.length?n.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,buttons:(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"bomb",content:"Detonate",color:"bad",onClick:function(){return c("killdrone",{ref:e.ref})}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.status?"bad":"good",children:e.status?"Not Responding":"Nominal"})})})},e.ref)})):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No drone units detected within access parameters"})}},90910:function(e,t,n){"use strict";t.__esModule=!0,t.Roulette=t.RouletteBetTable=t.RouletteBoard=t.RouletteNumberButton=void 0;var o=n(39812),r=n(34380),a=n(71494),c=n(74814),i=n(85952),l=function(e){if(0===e)return"green";for(var t=[[1,10],[19,28]],n=!0,o=0;o=r[0]&&e<=r[1]){n=!1;break}}var a=e%2==0;return(n?a:!a)?"red":"black"},d=function(e,t){var n=e.number,r=(0,a.useBackend)(t).act;return(0,o.createComponentVNode)(2,c.Button,{bold:!0,content:n,color:l(n),width:"40px",height:"28px",fontSize:"20px",textAlign:"center",mb:0,className:"Roulette__board-extrabutton",onClick:function(){return r("ChangeBetType",{type:n})}})};t.RouletteNumberButton=d;var u=function(e,t){var n=(0,a.useBackend)(t).act;return(0,o.createVNode)(1,"table","Table",[(0,o.createVNode)(1,"tr","Roulette__board-row",[(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{content:"0",color:"transparent",height:"88px",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:0})}}),2,{rowSpan:"3"}),[3,6,9,12,15,18,21,24,27,30,33,36].map((function(e){return(0,o.createVNode)(1,"td","Roulette__board-cell Table__cell-collapsing",(0,o.createComponentVNode)(2,d,{number:e}),2,null,e)})),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"2 to 1",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s3rd col"})}}),2)],0),(0,o.createVNode)(1,"tr",null,[[2,5,8,11,14,17,20,23,26,29,32,35].map((function(e){return(0,o.createVNode)(1,"td","Roulette__board-cell Table__cell-collapsing",(0,o.createComponentVNode)(2,d,{number:e}),2,null,e)})),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"2 to 1",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s2nd col"})}}),2)],0),(0,o.createVNode)(1,"tr",null,[[1,4,7,10,13,16,19,22,25,28,31,34].map((function(e){return(0,o.createVNode)(1,"td","Roulette__board-cell Table__cell-collapsing",(0,o.createComponentVNode)(2,d,{number:e}),2,null,e)})),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"2 to 1",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s1st col"})}}),2)],0),(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td"),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"1st 12",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s1-12"})}}),2,{colSpan:"4"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"2nd 12",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s13-24"})}}),2,{colSpan:"4"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"3rd 12",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s25-36"})}}),2,{colSpan:"4"})],4),(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td"),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"1-18",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s1-18"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"Even",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"even"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"Black",color:"black",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"black"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"Red",color:"red",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"red"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"Odd",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"odd"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"19-36",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s19-36"})}}),2,{colSpan:"2"})],4)],4,{style:{width:"1px"}})};t.RouletteBoard=u;var s=function(e,t){var n=(0,a.useBackend)(t),i=n.act,d=n.data,u=(0,a.useLocalState)(t,"customBet",500),s=u[0],m=u[1],p=d.BetType;return p.startsWith("s")&&(p=p.substring(1,p.length)),(0,o.createVNode)(1,"table","Roulette__lowertable",[(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"th",(0,r.classes)(["Roulette","Roulette__lowertable--cell","Roulette__lowertable--header"]),"Last Spun:",16),(0,o.createVNode)(1,"th",(0,r.classes)(["Roulette","Roulette__lowertable--cell","Roulette__lowertable--header"]),"Current Bet:",16)],4),(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td",(0,r.classes)(["Roulette","Roulette__lowertable--cell","Roulette__lowertable--spinresult","Roulette__lowertable--spinresult-"+l(d.LastSpin)]),d.LastSpin,0),(0,o.createVNode)(1,"td",(0,r.classes)(["Roulette","Roulette__lowertable--cell","Roulette__lowertable--betscell"]),[(0,o.createComponentVNode)(2,c.Box,{bold:!0,mt:1,mb:1,fontSize:"25px",textAlign:"center",children:[d.BetAmount," cr on ",p]}),(0,o.createComponentVNode)(2,c.Box,{ml:1,mr:1,children:[(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:"Bet 10 cr",onClick:function(){return i("ChangeBetAmount",{amount:10})}}),(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:"Bet 50 cr",onClick:function(){return i("ChangeBetAmount",{amount:50})}}),(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:"Bet 100 cr",onClick:function(){return i("ChangeBetAmount",{amount:100})}}),(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:"Bet 500 cr",onClick:function(){return i("ChangeBetAmount",{amount:500})}}),(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:"Bet custom amount...",onClick:function(){return i("ChangeBetAmount",{amount:s})}})}),(0,o.createComponentVNode)(2,c.Grid.Column,{size:.1,children:(0,o.createComponentVNode)(2,c.NumberInput,{value:s,minValue:0,maxValue:1e3,step:10,stepPixelSize:4,width:"40px",onChange:function(e,t){return m(t)}})})]})]})],4)],4),(0,o.createVNode)(1,"tr",null,(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,c.Box,{bold:!0,m:1,fontSize:"14px",textAlign:"center",children:"Swipe an ID card with a connected account to spin!"}),2,{colSpan:"2"}),2),(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td","Roulette__lowertable--cell",[(0,o.createComponentVNode)(2,c.Box,{inline:!0,bold:!0,mr:1,children:"House Balance:"}),(0,o.createComponentVNode)(2,c.Box,{inline:!0,children:d.HouseBalance?d.HouseBalance+" cr":"None"})],4),(0,o.createVNode)(1,"td","Roulette__lowertable--cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:d.IsAnchored?"Bolted":"Unbolted",m:1,color:"transparent",textAlign:"center",onClick:function(){return i("anchor")}}),2)],4)],4)};t.RouletteBetTable=s;t.Roulette=function(e,t){return(0,o.createComponentVNode)(2,i.Window,{width:603,height:475,theme:"cardtable",children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,u),(0,o.createComponentVNode)(2,s)]})})}},14317:function(e,t,n){"use strict";t.__esModule=!0,t.SatelliteControl=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(60929),i=n(85952);t.SatelliteControl=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.satellites||[];return(0,o.createComponentVNode)(2,i.Window,{width:400,height:305,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[d.meteor_shield&&(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledListItem,{label:"Coverage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.meteor_shield_coverage/d.meteor_shield_coverage_max,content:100*d.meteor_shield_coverage/d.meteor_shield_coverage_max+"%",ranges:{good:[1,Infinity],average:[.3,1],bad:[-Infinity,.3]}})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Satellite Controls",children:(0,o.createComponentVNode)(2,a.Box,{mr:-1,children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.active,content:"#"+e.id+" "+e.mode,onClick:function(){return l("toggle",{id:e.id})}},e.id)}))})})]})})}},55666:function(e,t,n){"use strict";t.__esModule=!0,t.ScannerGate=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(21451),i=n(85952),l=["Positive","Harmless","Minor","Medium","Harmful","Dangerous","BIOHAZARD"],d=[{name:"Human",value:"human"},{name:"Lizardperson",value:"lizard"},{name:"Flyperson",value:"fly"},{name:"Felinid",value:"felinid"},{name:"Plasmaman",value:"plasma"},{name:"Mothperson",value:"moth"},{name:"Jellyperson",value:"jelly"},{name:"Podperson",value:"pod"},{name:"Golem",value:"golem"},{name:"Zombie",value:"zombie"}],u=[{name:"Starving",value:150},{name:"Obese",value:600}];t.ScannerGate=function(e,t){var n=(0,r.useBackend)(t),a=n.act,l=n.data;return(0,o.createComponentVNode)(2,i.Window,{width:400,height:300,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.InterfaceLockNoticeBox,{onLockedStatusChange:function(){return a("toggle_lock")}}),!l.locked&&(0,o.createComponentVNode)(2,m)]})})};var s={Off:{title:"Scanner Mode: Off",component:function(){return p}},Wanted:{title:"Scanner Mode: Wanted",component:function(){return C}},Guns:{title:"Scanner Mode: Guns",component:function(){return h}},Mindshield:{title:"Scanner Mode: Mindshield",component:function(){return N}},Disease:{title:"Scanner Mode: Disease",component:function(){return V}},Species:{title:"Scanner Mode: Species",component:function(){return b}},Nutrition:{title:"Scanner Mode: Nutrition",component:function(){return f}},Nanites:{title:"Scanner Mode: Nanites",component:function(){return g}}},m=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.scan_mode,l=s[i]||s.off,d=l.component();return(0,o.createComponentVNode)(2,a.Section,{title:l.title,buttons:"Off"!==i&&(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"back",onClick:function(){return c("set_mode",{new_mode:"Off"})}}),children:(0,o.createComponentVNode)(2,d)})},p=function(e,t){var n=(0,r.useBackend)(t).act;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:"Select a scanning mode below."}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Wanted",onClick:function(){return n("set_mode",{new_mode:"Wanted"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Guns",onClick:function(){return n("set_mode",{new_mode:"Guns"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Mindshield",onClick:function(){return n("set_mode",{new_mode:"Mindshield"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Disease",onClick:function(){return n("set_mode",{new_mode:"Disease"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Species",onClick:function(){return n("set_mode",{new_mode:"Species"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Nutrition",onClick:function(){return n("set_mode",{new_mode:"Nutrition"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Nanites",onClick:function(){return n("set_mode",{new_mode:"Nanites"})}})]})],4)},C=function(e,t){var n=(0,r.useBackend)(t).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","any warrants for their arrest."]}),(0,o.createComponentVNode)(2,v)],4)},h=function(e,t){var n=(0,r.useBackend)(t).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","any guns."]}),(0,o.createComponentVNode)(2,v)],4)},N=function(e,t){var n=(0,r.useBackend)(t).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","a mindshield."]}),(0,o.createComponentVNode)(2,v)],4)},V=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,d=i.reverse,u=i.disease_threshold;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",d?"does not have":"has"," ","a disease equal or worse than ",u,"."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e===u,content:e,onClick:function(){return c("set_disease_threshold",{new_threshold:e})}},e)}))}),(0,o.createComponentVNode)(2,v)],4)},b=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.reverse,u=i.target_species,s=d.find((function(e){return e.value===u}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned is ",l?"not":""," ","of the ",s.name," species.","zombie"===u&&" All zombie types will be detected, including dormant zombies."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.value===u,content:e.name,onClick:function(){return c("set_target_species",{new_species:e.value})}},e.value)}))}),(0,o.createComponentVNode)(2,v)],4)},f=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.reverse,d=i.target_nutrition,s=u.find((function(e){return e.value===d}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",l?"does not have":"has"," ","the ",s.name," nutrition level."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.value===d,content:e.name,onClick:function(){return c("set_target_nutrition",{new_nutrition:e.name})}},e.name)}))}),(0,o.createComponentVNode)(2,v)],4)},g=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.reverse,d=i.nanite_cloud;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",l?"does not have":"has"," ","nanite cloud ",d,"."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cloud ID",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:d,width:"65px",minValue:1,maxValue:100,stepPixelSize:2,onChange:function(e,t){return c("set_nanite_cloud",{new_cloud:t})}})})})}),(0,o.createComponentVNode)(2,v)],4)},v=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.reverse;return(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Scanning Mode",children:(0,o.createComponentVNode)(2,a.Button,{content:i?"Inverted":"Default",icon:i?"random":"long-arrow-alt-right",onClick:function(){return c("toggle_reverse")},color:i?"bad":"good"})})})}},53480:function(e,t,n){"use strict";t.__esModule=!0,t.SeedExtractor=void 0;var o=n(39812),r=n(64499),a=n(85531),c=n(2497),i=n(71494),l=n(74814),d=n(85952);t.SeedExtractor=function(e,t){var n,u,s=(0,i.useBackend)(t),m=s.act,p=s.data,C=(n=p.seeds,u=Object.keys(n).map((function(e){var t=function(e){var t,n=/([^;=]+)=([^;]+)/g,o={};do{(t=n.exec(e))&&(o[t[1]]=t[2]+"")}while(t);return o}(e);return t.amount=n[e],t.key=e,t.name=(0,c.toTitleCase)(t.name.replace("pack of ","")),t})),(0,a.flow)([(0,r.sortBy)((function(e){return e.name}))])(u));return(0,o.createComponentVNode)(2,d.Window,{width:1e3,height:400,resizable:!0,children:(0,o.createComponentVNode)(2,d.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,l.Section,{title:"Stored seeds:",children:(0,o.createComponentVNode)(2,l.Table,{cellpadding:"3",textAlign:"center",children:[(0,o.createComponentVNode)(2,l.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Name"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Lifespan"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Endurance"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Maturation"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Production"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Yield"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Potency"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Instability"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Stock"})]}),C.map((function(e){return(0,o.createComponentVNode)(2,l.Table.Row,{children:[(0,o.createComponentVNode)(2,l.Table.Cell,{bold:!0,children:e.name}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.lifespan}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.endurance}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.maturation}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.production}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.yield}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.potency}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.instability}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:[(0,o.createComponentVNode)(2,l.Button,{content:"Vend",onClick:function(){return m("select",{item:e.key})}}),"(",e.amount," left)"]})]},e.key)}))]})})})})}},41125:function(e,t,n){"use strict";t.__esModule=!0,t.ShuttleConsole=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.ShuttleConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.authorization_required;return(0,o.createComponentVNode)(2,c.Window,{width:350,height:230,children:[!!l&&(0,o.createComponentVNode)(2,a.Modal,{ml:1,mt:1,width:26,height:12,fontSize:"28px",fontFamily:"monospace",textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mt:2,children:(0,o.createComponentVNode)(2,a.Icon,{name:"minus-circle"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{mt:2,ml:2,color:"bad",children:"SHUTTLE LOCKED"})]}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"18px",mt:4,children:(0,o.createComponentVNode)(2,a.Button,{lineHeight:"40px",icon:"arrow-circle-right",content:"Request Authorization",color:"bad",onClick:function(){return i("request")}})})]}),(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,d)})]})};var i=function(e,t){var n;return null==e||null==(n=e.find((function(e){return e.id===t})))?void 0:n.name},l=function(e,t){var n;return null==e||null==(n=e.find((function(e){return e.name===t})))?void 0:n.id},d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,d=n.data,u=d.status,s=d.locked,m=d.authorization_required,p=d.destination,C=d.docked_location,h=d.timer_str,N=d.locations,V=void 0===N?[]:N;return(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,fontSize:"26px",textAlign:"center",fontFamily:"monospace",children:h||"00:00"}),(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",fontSize:"14px",mb:1,children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:"STATUS:"}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"In Transit"===u?"good":"Idle"===u||"Igniting"===u?"average":"bad",ml:1,children:u||"Not Available"})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Shuttle Controls",level:2,children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:C||"Not Available"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Destination",children:0===V.length&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Not Available"})||1===V.length&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:i(V,p)})||(0,o.createComponentVNode)(2,a.Dropdown,{mb:1.7,over:!0,width:"240px",options:V.map((function(e){return e.name})),disabled:s||m,selected:i(V,p)||"Select a Destination",onSelected:function(e){return c("set_destination",{destination:l(V,e)})}})})]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Depart",disabled:!i(V,p)||s||m,mt:1.5,icon:"arrow-up",textAlign:"center",onClick:function(){return c("move",{shuttle_id:p})}})]})]})}},93138:function(e,t,n){"use strict";t.__esModule=!0,t.ShuttleManipulatorModification=t.ShuttleManipulatorTemplates=t.ShuttleManipulatorStatus=t.ShuttleManipulator=void 0;var o=n(39812),r=n(64499),a=n(71494),c=n(74814),i=n(85952);t.ShuttleManipulator=function(e,t){var n=(0,a.useLocalState)(t,"tab",1),r=n[0],s=n[1];return(0,o.createComponentVNode)(2,i.Window,{title:"Shuttle Manipulator",width:800,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Tabs,{children:[(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:1===r,onClick:function(){return s(1)},children:"Status"}),(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:2===r,onClick:function(){return s(2)},children:"Templates"}),(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:3===r,onClick:function(){return s(3)},children:"Modification"})]}),1===r&&(0,o.createComponentVNode)(2,l),2===r&&(0,o.createComponentVNode)(2,d),3===r&&(0,o.createComponentVNode)(2,u)]})})};var l=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data.shuttles||[];return(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.Table,{children:i.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,o.createComponentVNode)(2,c.Button,{content:"JMP",onClick:function(){return r("jump_to",{type:"mobile",id:e.id})}},e.id)}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,o.createComponentVNode)(2,c.Button,{content:"Fly",disabled:!e.can_fly,onClick:function(){return r("fly",{id:e.id})}},e.id)}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.id}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.status}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:[e.mode,!!e.timer&&(0,o.createFragment)([(0,o.createTextVNode)("("),e.timeleft,(0,o.createTextVNode)(")"),(0,o.createComponentVNode)(2,c.Button,{content:"Fast Travel",disabled:!e.can_fast_travel,onClick:function(){return r("fast_travel",{id:e.id})}},e.id)],0)]})]},e.id)}))})})};t.ShuttleManipulatorStatus=l;var d=function(e,t){var n,i=(0,a.useBackend)(t),l=i.act,d=i.data,u=d.templates||{},s=d.selected||{},m=(0,a.useLocalState)(t,"templateId",Object.keys(u)[0]),p=m[0],C=m[1],h=null==(n=u[p])?void 0:n.templates;return(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.Flex,{children:[(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,c.Tabs,{vertical:!0,children:(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:p===t,onClick:function(){return C(t)},children:e.port_id},t)}))(u)})}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1,basis:0,children:h.map((function(e){var t=e.shuttle_id===s.shuttle_id;return(0,o.createComponentVNode)(2,c.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,c.Button,{content:t?"Selected":"Select",selected:t,onClick:function(){return l("select_template",{shuttle_id:e.shuttle_id})}}),children:(!!e.description||!!e.admin_notes)&&(0,o.createComponentVNode)(2,c.LabeledList,{children:[!!e.description&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Description",children:e.description}),!!e.admin_notes&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Admin Notes",children:e.admin_notes})]})},e.shuttle_id)}))})]})})};t.ShuttleManipulatorTemplates=d;var u=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.selected||{},d=i.existing_shuttle||{};return(0,o.createComponentVNode)(2,c.Section,{children:l?(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{level:2,title:l.name,children:(!!l.description||!!l.admin_notes)&&(0,o.createComponentVNode)(2,c.LabeledList,{children:[!!l.description&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Description",children:l.description}),!!l.admin_notes&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Admin Notes",children:l.admin_notes})]})}),d?(0,o.createComponentVNode)(2,c.Section,{level:2,title:"Existing Shuttle: "+d.name,children:(0,o.createComponentVNode)(2,c.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Status",buttons:(0,o.createComponentVNode)(2,c.Button,{content:"Jump To",onClick:function(){return r("jump_to",{type:"mobile",id:d.id})}}),children:[d.status,!!d.timer&&(0,o.createFragment)([(0,o.createTextVNode)("("),d.timeleft,(0,o.createTextVNode)(")")],0)]})})}):(0,o.createComponentVNode)(2,c.Section,{level:2,title:"Existing Shuttle: None"}),(0,o.createComponentVNode)(2,c.Section,{level:2,title:"Status",children:[(0,o.createComponentVNode)(2,c.Button,{content:"Preview",onClick:function(){return r("preview",{shuttle_id:l.shuttle_id})}}),(0,o.createComponentVNode)(2,c.Button,{content:"Load",color:"bad",onClick:function(){return r("load",{shuttle_id:l.shuttle_id})}})]})],0):"No shuttle selected"})};t.ShuttleManipulatorModification=u},32325:function(e,t,n){"use strict";t.__esModule=!0,t.Signaler=void 0;var o=n(39812),r=n(41860),a=n(71494),c=n(74814),i=n(85952);t.Signaler=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.code,s=d.frequency,m=d.minFrequency,p=d.maxFrequency;return(0,o.createComponentVNode)(2,i.Window,{width:280,height:132,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,c.Section,{children:[(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{size:1.4,color:"label",children:"Frequency:"}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:6,minValue:m/10,maxValue:p/10,value:s/10,format:function(e){return(0,r.toFixed)(e,1)},width:"80px",onDrag:function(e,t){return l("freq",{freq:t})}})}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{ml:1.3,icon:"sync",content:"Reset",onClick:function(){return l("reset",{reset:"freq"})}})})]}),(0,o.createComponentVNode)(2,c.Grid,{mt:.6,children:[(0,o.createComponentVNode)(2,c.Grid.Column,{size:1.4,color:"label",children:"Code:"}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:u,width:"80px",onDrag:function(e,t){return l("code",{code:t})}})}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{ml:1.3,icon:"sync",content:"Reset",onClick:function(){return l("reset",{reset:"code"})}})})]}),(0,o.createComponentVNode)(2,c.Grid,{mt:.8,children:(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{mb:-.1,fluid:!0,icon:"arrow-up",content:"Send Signal",textAlign:"center",onClick:function(){return l("signal")}})})})]})})})}},52757:function(e,t,n){"use strict";t.__esModule=!0,t.SkillPanel=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i={color:"lightgreen",fontWeight:"bold"},l={color:"#FFDB58",fontWeight:"bold"};t.SkillPanel=function(e,t){var n=(0,r.useBackend)(t),u=n.act,s=n.data,m=s.skills||[];return(0,o.createComponentVNode)(2,c.Window,{title:"Manage Skills",width:600,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:m.playername,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:m.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:[(0,o.createVNode)(1,"span",null,e.desc,0,{style:l}),(0,o.createVNode)(1,"br"),!!e.level_based&&(0,o.createFragment)([(0,o.createComponentVNode)(2,d,{skill_lvl_num:e.lvl_base_num,skill_lvl:e.lvl_base}),(0,o.createVNode)(1,"br")],4),"Total Experience: [",e.value_base," XP]",(0,o.createVNode)(1,"br"),"XP To Next Level:",e.level_based?(0,o.createVNode)(1,"span",null,e.xp_next_lvl_base,0):(0,o.createVNode)(1,"span",null,"[MAXXED]",16,{style:i}),(0,o.createVNode)(1,"br"),e.base_readout,(0,o.createComponentVNode)(2,a.ProgressBar,{value:e.percent_base,color:"good"}),(0,o.createVNode)(1,"br"),!!s.admin&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Adjust Exp",onClick:function(){return u("adj_exp",{skill:e.path})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Set Exp",onClick:function(){return u("set_exp",{skill:e.path})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Set Level",onClick:function(){return u("set_lvl",{skill:e.path})}}),(0,o.createVNode)(1,"br"),(0,o.createVNode)(1,"br")],4)]},e.name)}))})})})})};var d=function(e){var t=e.skill_lvl_num,n=e.skill_lvl;return(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:["Level: [",(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,textColor:"hsl("+50*t+", 50%, 50%)",children:n}),"]"]})}},43078:function(e,t,n){"use strict";t.__esModule=!0,t.SkillStation=t.TimeFormat=t.ImplantedSkillchips=t.InsertedSkillchip=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=n(41860),l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.skillchip_ready,d=i.slot_use,u=i.slots_used,s=i.slots_max,m=i.implantable_reason,p=i.implantable,C=i.complexity,h=i.skill_name,N=i.skill_desc,V=i.skill_icon,b=i.working;return l?(0,o.createComponentVNode)(2,a.Section,{title:"Inserted Skillchip",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"syringe",disabled:!p||!!b,color:p?"good":"default",onClick:function(){return c("implant")},content:"Implant",tooltip:m}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",disabled:!!b,onClick:function(){return c("eject")},content:"Eject"})],4),children:(0,o.createComponentVNode)(2,a.Flex,{spacing:2,height:"100%",width:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{height:"100%",align:"center",children:(0,o.createComponentVNode)(2,a.Icon,{size:3,name:V})}),(0,o.createComponentVNode)(2,a.Flex.Item,{width:"100%",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Skillchip",children:(0,o.createComponentVNode)(2,a.Box,{bold:!0,children:h})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:(0,o.createComponentVNode)(2,a.Box,{italic:!0,children:N})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Complexity",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"brain",width:"15px",textAlign:"center"})," ",C]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Slot Size",children:(0,o.createComponentVNode)(2,a.Box,{color:u+d>s&&"red",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"save",width:"15px",textAlign:"center"})," ",d]})}),!!m&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Error",color:p?"good":"bad",children:m})]})})]})}):!b&&(0,o.createComponentVNode)(2,a.NoticeBox,{info:!0,children:"Please insert a skillchip."})};t.InsertedSkillchip=l;var d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.slots_used,d=i.slots_max,u=i.complexity_used,s=i.complexity_max,m=i.working,p=i.current||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Implanted Skillchips",children:[!p.length&&"No skillchips detected.",!!p.length&&(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Chip"}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"brain",tooltip:"Complexity",tooltipPosition:"top",content:u+"/"+s})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"save",tooltip:"Slot Size",tooltipPosition:"top",content:l+"/"+d})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"check",tooltip:"Is Active",tooltipPosition:"top"})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"hourglass-half",tooltip:"Cooldown",tooltipPosition:"top"})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"tasks",tooltip:"Actions",tooltipPosition:"top"})})]}),p.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createComponentVNode)(2,a.Icon,{textAlign:"center",width:"18px",mr:1,name:e.icon}),e.name]}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,color:(!e.active?e.complexity+u>s&&"bad":"good")||"grey",textAlign:"center",children:e.complexity}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,color:"good",textAlign:"center",children:e.slot_use}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Icon,{name:e.active?"check":"times",color:e.active?"good":"bad"})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:e.cooldown>0&&Math.ceil(e.cooldown/10)+"s"||"0s"}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return c("remove",{ref:e.ref})},icon:e.removable?"eject":"trash",color:e.removable?"good":"bad",tooltip:e.removable?"Extract":"Destroy",tooltipPosition:"left",disabled:e.cooldown||m}),(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return c("toggle_activate",{ref:e.ref})},icon:e.active?"check-square-o":"square-o",color:e.active?"good":"default",tooltip:!!e.active_error&&!e.active&&e.active_error||e.active&&"Deactivate"||"Activate",tooltipPosition:"left",disabled:e.cooldown||m||!e.active&&e.complexity+u>s})]})]},e.ref)}))]})]})};t.ImplantedSkillchips=d;var u=function(e,t){var n=e.value,o=(0,i.toFixed)(Math.floor(n/10%60)).padStart(2,"0"),r=(0,i.toFixed)(Math.floor(n/600%60)).padStart(2,"0");return(0,i.toFixed)(Math.floor(n/36e3%24)).padStart(2,"0")+":"+r+":"+o};t.TimeFormat=u;t.SkillStation=function(e,t){var n=(0,r.useBackend)(t).data,i=n.working,s=n.timeleft,m=n.error;return(0,o.createComponentVNode)(2,c.Window,{title:"Skillsoft Station",width:500,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[!!m&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:m}),!!i&&(0,o.createComponentVNode)(2,a.NoticeBox,{danger:!0,children:(0,o.createComponentVNode)(2,a.Flex,{direction:"column",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mb:.5,children:"Operation in progress. Please do not leave the chamber."}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:["Time Left: ",(0,o.createComponentVNode)(2,u,{value:s})]})]})}),(0,o.createComponentVNode)(2,l),(0,o.createComponentVNode)(2,d)]})})}},80646:function(e,t,n){"use strict";t.__esModule=!0,t.Sleeper=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=[{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"},{label:"Toxin",type:"toxLoss"},{label:"Oxygen",type:"oxyLoss"}];t.Sleeper=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.open,s=d.occupant,m=void 0===s?{}:s,p=d.occupied,C=(d.chems||[]).sort((function(e,t){var n=e.name.toLowerCase(),o=t.name.toLowerCase();return no?1:0}));return(0,o.createComponentVNode)(2,c.Window,{width:310,height:465,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:m.name?m.name:"No Occupant",minHeight:"210px",buttons:!!m.stat&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:m.statstate,children:m.stat}),children:!!p&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.ProgressBar,{value:m.health,minValue:m.minHealth,maxValue:m.maxHealth,ranges:{good:[50,Infinity],average:[0,50],bad:[-Infinity,0]}}),(0,o.createComponentVNode)(2,a.Box,{mt:1}),(0,o.createComponentVNode)(2,a.LabeledList,{children:[i.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m[e.type],minValue:0,maxValue:m.maxHealth,color:"bad"})},e.type)})),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cells",color:m.cloneLoss?"bad":"good",children:m.cloneLoss?"Damaged":"Healthy"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain",color:m.brainLoss?"bad":"good",children:m.brainLoss?"Abnormal":"Healthy"})]})],4)}),(0,o.createComponentVNode)(2,a.Section,{title:"Medicines",minHeight:"205px",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u?"door-open":"door-closed",content:u?"Open":"Closed",onClick:function(){return l("door")}}),children:C.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:"flask",content:e.name,disabled:!p||!e.allowed,width:"140px",onClick:function(){return l("inject",{chem:e.id})}},e.name)}))})]})})}},97700:function(e,t,n){"use strict";t.__esModule=!0,t.SlimeBodySwapper=t.BodyEntry=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i={Dead:"bad",Unconscious:"average",Conscious:"good"},l={owner:"You Are Here",stranger:"Occupied",available:"Swap"},d=function(e,t){var n=e.body,r=e.swapFunc;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:n.htmlcolor,children:n.name}),level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{content:l[n.occupied],selected:"owner"===n.occupied,color:"stranger"===n.occupied&&"bad",onClick:function(){return r()}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",bold:!0,color:i[n.status],children:n.status}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Jelly",children:n.exoticblood}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:n.area})]})})};t.BodyEntry=d;t.SlimeBodySwapper=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.bodies,u=void 0===l?[]:l;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:400,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{children:u.map((function(e){return(0,o.createComponentVNode)(2,d,{body:e,swapFunc:function(){return i("swap",{ref:e.ref})}},e.name)}))})})})}},55896:function(e,t,n){"use strict";t.__esModule=!0,t.SmartVend=void 0;var o=n(39812),r=n(64499),a=n(71494),c=n(74814),i=n(85952);t.SmartVend=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data;return(0,o.createComponentVNode)(2,i.Window,{width:440,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,c.Section,{title:"Storage",buttons:!!d.isdryer&&(0,o.createComponentVNode)(2,c.Button,{icon:d.drying?"stop":"tint",onClick:function(){return l("Dry")},children:d.drying?"Stop drying":"Dry"}),children:0===d.contents.length&&(0,o.createComponentVNode)(2,c.NoticeBox,{children:["Unfortunately, this ",d.name," is empty."]})||(0,o.createComponentVNode)(2,c.Table,{children:[(0,o.createComponentVNode)(2,c.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Item"}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"center",children:d.verb?d.verb:"Dispense"})]}),(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:e.amount}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,c.Button,{content:"One",disabled:e.amount<1,onClick:function(){return l("Release",{name:e.name,amount:1})}}),(0,o.createComponentVNode)(2,c.Button,{content:"Many",disabled:e.amount<=1,onClick:function(){return l("Release",{name:e.name})}})]})]},t)}))(d.contents)]})})})})}},20561:function(e,t,n){"use strict";t.__esModule=!0,t.Smes=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(58083),i=n(85952),l=1e3;t.Smes=function(e,t){var n=(0,r.useBackend)(t),d=n.act,u=n.data,s=u.capacityPercent,m=(u.capacity,u.charge),p=u.inputAttempt,C=u.inputting,h=u.inputLevel,N=u.inputLevelMax,V=u.inputAvailable,b=u.outputAttempt,f=u.outputting,g=u.outputLevel,v=u.outputLevelMax,k=u.outputUsed,x=(s>=100?"good":C&&"average")||"bad",B=(f?"good":m>0&&"average")||"bad";return(0,o.createComponentVNode)(2,i.Window,{width:340,height:350,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Stored Energy",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:.01*s,ranges:{good:[.5,Infinity],average:[.15,.5],bad:[-Infinity,.15]}})}),(0,o.createComponentVNode)(2,a.Section,{title:"Input",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:p?"sync-alt":"times",selected:p,onClick:function(){return d("tryinput")},children:p?"Auto":"Off"}),children:(0,o.createComponentVNode)(2,a.Box,{color:x,children:(s>=100?"Fully Charged":C&&"Charging")||"Not Charging"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Input",children:(0,o.createComponentVNode)(2,a.Flex,{inline:!0,width:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===h,onClick:function(){return d("input",{target:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===h,onClick:function(){return d("input",{adjust:-1e4})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,mx:1,children:(0,o.createComponentVNode)(2,a.Slider,{value:h/l,fillValue:V/l,minValue:0,maxValue:N/l,step:5,stepPixelSize:4,format:function(e){return(0,c.formatPower)(e*l,1)},onDrag:function(e,t){return d("input",{target:t*l})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:h===N,onClick:function(){return d("input",{adjust:1e4})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:h===N,onClick:function(){return d("input",{target:"max"})}})]})]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Available",children:(0,c.formatPower)(V)})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Output",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Mode",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:b?"power-off":"times",selected:b,onClick:function(){return d("tryoutput")},children:b?"On":"Off"}),children:(0,o.createComponentVNode)(2,a.Box,{color:B,children:f?"Sending":m>0?"Not Sending":"No Charge"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Output",children:(0,o.createComponentVNode)(2,a.Flex,{inline:!0,width:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===g,onClick:function(){return d("output",{target:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===g,onClick:function(){return d("output",{adjust:-1e4})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,mx:1,children:(0,o.createComponentVNode)(2,a.Slider,{value:g/l,minValue:0,maxValue:v/l,step:5,stepPixelSize:4,format:function(e){return(0,c.formatPower)(e*l,1)},onDrag:function(e,t){return d("output",{target:t*l})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:g===v,onClick:function(){return d("output",{adjust:1e4})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:g===v,onClick:function(){return d("output",{target:"max"})}})]})]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Outputting",children:(0,c.formatPower)(k)})]})})]})})}},93267:function(e,t,n){"use strict";t.__esModule=!0,t.SmokeMachine=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.SmokeMachine=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.TankContents,u=(l.isTankLoaded,l.TankCurrentVolume),s=l.TankMaxVolume,m=l.active,p=l.setting,C=(l.screen,l.maxSetting),h=void 0===C?[]:C;return(0,o.createComponentVNode)(2,c.Window,{width:350,height:350,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Dispersal Tank",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:m?"power-off":"times",selected:m,content:m?"On":"Off",onClick:function(){return i("power")}}),children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:u/s,ranges:{bad:[-Infinity,.3]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{initial:0,value:u||0})," / "+s]}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Range",children:[1,2,3,4,5].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{selected:p===e,icon:"plus",content:3*e,disabled:h0?"good":"bad",children:h})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:1.5,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power output",children:(0,o.createComponentVNode)(2,a.ProgressBar,{ranges:{good:[.66,Infinity],average:[.33,.66],bad:[-Infinity,.33]},minValue:0,maxValue:1,value:u,children:d+" W"})})})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Controls",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tracking",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Off",selected:0===C,onClick:function(){return i("tracking",{mode:0})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"clock-o",content:"Timed",selected:1===C,onClick:function(){return i("tracking",{mode:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Auto",selected:2===C,disabled:!N,onClick:function(){return i("tracking",{mode:2})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Azimuth",children:[(0===C||1===C)&&(0,o.createComponentVNode)(2,a.NumberInput,{width:"52px",unit:"\xb0",step:1,stepPixelSize:2,minValue:-360,maxValue:720,value:s,onDrag:function(e,t){return i("azimuth",{value:t})}}),1===C&&(0,o.createComponentVNode)(2,a.NumberInput,{width:"80px",unit:"\xb0/m",step:.01,stepPixelSize:1,minValue:-p-.01,maxValue:p+.01,value:m,format:function(e){return(Math.sign(e)>0?"+":"-")+Math.abs(e)},onDrag:function(e,t){return i("azimuth_rate",{value:t})}}),2===C&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mt:"3px",children:[s+" \xb0"," (auto)"]})]})]})})]})})}},57762:function(e,t,n){"use strict";t.__esModule=!0,t.SpaceHeater=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.SpaceHeater=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:305,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Power",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject Cell",disabled:!l.hasPowercell||!l.open,onClick:function(){return i("eject")}}),(0,o.createComponentVNode)(2,a.Button,{icon:l.on?"power-off":"times",content:l.on?"On":"Off",selected:l.on,disabled:!l.hasPowercell,onClick:function(){return i("power")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cell",color:!l.hasPowercell&&"bad",children:l.hasPowercell&&(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.powerLevel/100,ranges:{good:[.6,Infinity],average:[.3,.6],bad:[-Infinity,.3]},children:l.powerLevel+"%"})||"None"})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Thermostat",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Temperature",children:(0,o.createComponentVNode)(2,a.Box,{fontSize:"18px",color:Math.abs(l.targetTemp-l.currentTemp)>50?"bad":Math.abs(l.targetTemp-l.currentTemp)>20?"average":"good",children:[l.currentTemp,"\xb0C"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Temperature",children:l.open&&(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(l.targetTemp),width:"65px",unit:"\xb0C",minValue:l.minTemp,maxValue:l.maxTemp,onChange:function(e,t){return i("target",{target:t})}})||l.targetTemp+"\xb0C"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mode",children:l.open?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"thermometer-half",content:"Auto",selected:"auto"===l.mode,onClick:function(){return i("mode",{mode:"auto"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fire-alt",content:"Heat",selected:"heat"===l.mode,onClick:function(){return i("mode",{mode:"heat"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fan",content:"Cool",selected:"cool"===l.mode,onClick:function(){return i("mode",{mode:"cool"})}})],4):"Auto"}),(0,o.createComponentVNode)(2,a.LabeledList.Divider)]})})]})})}},46810:function(e,t,n){"use strict";t.__esModule=!0,t.SpawnersMenu=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.SpawnersMenu=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.spawners||[];return(0,o.createComponentVNode)(2,c.Window,{title:"Spawners Menu",width:700,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name+" ("+e.amount_left+" left)",level:2,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Jump",onClick:function(){return i("jump",{name:e.name})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Spawn",onClick:function(){return i("spawn",{name:e.name})}})],4),children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,mb:1,fontSize:"20px",children:e.short_desc}),(0,o.createComponentVNode)(2,a.Box,{children:e.flavor_text}),!!e.important_info&&(0,o.createComponentVNode)(2,a.Box,{mt:1,bold:!0,color:"bad",fontSize:"26px",children:e.important_info})]},e.name)}))})})})}},32015:function(e,t,n){"use strict";t.__esModule=!0,t.StationAlertConsoleContent=t.StationAlertConsole=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.StationAlertConsole=function(){return(0,o.createComponentVNode)(2,c.Window,{width:325,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t).data.alarms||[],c=n.Fire||[],i=n.Atmosphere||[],l=n.Power||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Fire Alarms",children:(0,o.createVNode)(1,"ul",null,[0===c.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),c.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Atmospherics Alarms",children:(0,o.createVNode)(1,"ul",null,[0===i.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),i.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Alarms",children:(0,o.createVNode)(1,"ul",null,[0===l.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),l.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)})],4)};t.StationAlertConsoleContent=i},80748:function(e,t,n){"use strict";t.__esModule=!0,t.SuitStorageUnit=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.SuitStorageUnit=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.locked,u=l.open,s=l.safeties,m=l.uv_active,p=l.occupied,C=l.suit,h=l.helmet,N=l.mask,V=l.storage;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:305,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[!(!p||!s)&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Biological entity detected in suit chamber. Please remove before continuing with operation."}),m&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Contents are currently being decontaminated. Please wait."})||(0,o.createComponentVNode)(2,a.Section,{title:"Storage",minHeight:"260px",buttons:(0,o.createFragment)([!u&&(0,o.createComponentVNode)(2,a.Button,{icon:d?"unlock":"lock",content:d?"Unlock":"Lock",onClick:function(){return i("lock")}}),!d&&(0,o.createComponentVNode)(2,a.Button,{icon:u?"sign-out-alt":"sign-in-alt",content:u?"Close":"Open",onClick:function(){return i("door")}})],0),children:d&&(0,o.createComponentVNode)(2,a.Box,{mt:6,bold:!0,textAlign:"center",fontSize:"40px",children:[(0,o.createComponentVNode)(2,a.Box,{children:"Unit Locked"}),(0,o.createComponentVNode)(2,a.Icon,{name:"lock"})]})||u&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Helmet",children:(0,o.createComponentVNode)(2,a.Button,{icon:h?"square":"square-o",content:h||"Empty",disabled:!h,onClick:function(){return i("dispense",{item:"helmet"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Suit",children:(0,o.createComponentVNode)(2,a.Button,{icon:C?"square":"square-o",content:C||"Empty",disabled:!C,onClick:function(){return i("dispense",{item:"suit"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mask",children:(0,o.createComponentVNode)(2,a.Button,{icon:N?"square":"square-o",content:N||"Empty",disabled:!N,onClick:function(){return i("dispense",{item:"mask"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Storage",children:(0,o.createComponentVNode)(2,a.Button,{icon:V?"square":"square-o",content:V||"Empty",disabled:!V,onClick:function(){return i("dispense",{item:"storage"})}})})]})||(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"recycle",content:"Decontaminate",disabled:p&&s,textAlign:"center",onClick:function(){return i("uv")}})})]})})}},37162:function(e,t,n){"use strict";t.__esModule=!0,t.SyndPane=t.StatusPane=t.SyndContractorContent=t.SyndContractor=t.FakeTerminal=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);function i(e,t){return(i=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var l=function(e){var t,n;function r(t){var n;return(n=e.call(this,t)||this).timer=null,n.state={currentIndex:0,currentDisplay:[]},n}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,i(t,n);var c=r.prototype;return c.tick=function(){var e=this.props,t=this.state;t.currentIndex<=e.allMessages.length?(this.setState((function(e){return{currentIndex:e.currentIndex+1}})),t.currentDisplay.push(e.allMessages[t.currentIndex])):(clearTimeout(this.timer),setTimeout(e.onFinished,e.finishedTimeout))},c.componentDidMount=function(){var e=this,t=this.props.linesPerSecond,n=void 0===t?2.5:t;this.timer=setInterval((function(){return e.tick()}),1e3/n)},c.componentWillUnmount=function(){clearTimeout(this.timer)},c.render=function(){return(0,o.createComponentVNode)(2,a.Box,{m:1,children:this.state.currentDisplay.map((function(e){return(0,o.createFragment)([e,(0,o.createVNode)(1,"br")],0,e)}))})},r}(o.Component);t.FakeTerminal=l;t.SyndContractor=function(e,t){return(0,o.createComponentVNode)(2,c.NtosWindow,{width:500,height:600,theme:"syndicate",resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,d)})})};var d=function(e,t){var n=(0,r.useBackend)(t),c=n.data,i=n.act,d=["Recording biometric data...","Analyzing embedded syndicate info...","STATUS CONFIRMED","Contacting syndicate database...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Response received, ack 4851234...","CONFIRM ACC "+Math.round(2e4*Math.random()),"Setting up private accounts...","CONTRACTOR ACCOUNT CREATED","Searching for available contracts...","Searching for available contracts...","Searching for available contracts...","Searching for available contracts...","CONTRACTS FOUND","WELCOME, AGENT"],u=!!c.error&&(0,o.createComponentVNode)(2,a.Modal,{backgroundColor:"red",children:(0,o.createComponentVNode)(2,a.Flex,{align:"center",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mr:2,children:(0,o.createComponentVNode)(2,a.Icon,{size:4,name:"exclamation-triangle"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{mr:2,grow:1,textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Box,{width:"260px",textAlign:"left",minHeight:"80px",children:c.error}),(0,o.createComponentVNode)(2,a.Button,{content:"Dismiss",onClick:function(){return i("PRG_clear_error")}})]})]})});return c.logged_in?c.logged_in&&c.first_load?(0,o.createComponentVNode)(2,a.Box,{backgroundColor:"rgba(0, 0, 0, 0.8)",minHeight:"525px",children:(0,o.createComponentVNode)(2,l,{allMessages:d,finishedTimeout:3e3,onFinished:function(){return i("PRG_set_first_load_finished")}})}):c.info_screen?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{backgroundColor:"rgba(0, 0, 0, 0.8)",minHeight:"500px",children:(0,o.createComponentVNode)(2,l,{allMessages:["SyndTract v2.0","","We've identified potentional high-value targets that are","currently assigned to your mission area. They are believed","to hold valuable information which could be of immediate","importance to our organisation.","","Listed below are all of the contracts available to you. You","are to bring the specified target to the designated","drop-off, and contact us via this uplink. We will send","a specialised extraction unit to put the body into.","","We want targets alive - but we will sometimes pay slight","amounts if they're not, you just won't recieve the shown","bonus. You can redeem your payment through this uplink in","the form of raw telecrystals, which can be put into your","regular Syndicate uplink to purchase whatever you may need.","We provide you with these crystals the moment you send the","target up to us, which can be collected at anytime through","this system.","","Targets extracted will be ransomed back to the station once","their use to us is fulfilled, with us providing you a small","percentage cut. You may want to be mindful of them","identifying you when they come back. We provide you with","a standard contractor loadout, which will help cover your","identity."],linesPerSecond:10})}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"CONTINUE",color:"transparent",textAlign:"center",onClick:function(){return i("PRG_toggle_info")}})],4):(0,o.createFragment)([u,(0,o.createComponentVNode)(2,s)],0):(0,o.createComponentVNode)(2,a.Section,{minHeight:"525px",children:[(0,o.createComponentVNode)(2,a.Box,{width:"100%",textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{content:"REGISTER USER",color:"transparent",onClick:function(){return i("PRG_login")}})}),!!c.error&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:c.error})]})};t.SyndContractorContent=d;var u=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createFragment)([(0,o.createTextVNode)("Contractor Status"),(0,o.createComponentVNode)(2,a.Button,{content:"View Information Again",color:"transparent",mb:0,ml:1,onClick:function(){return c("PRG_toggle_info")}})],4),buttons:(0,o.createComponentVNode)(2,a.Box,{bold:!0,mr:1,children:[i.contract_rep," Rep"]}),children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:.85,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"TC Available",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Claim",disabled:i.redeemable_tc<=0,onClick:function(){return c("PRG_redeem_TC")}}),children:i.redeemable_tc}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"TC Earned",children:i.earned_tc})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Contracts Completed",children:i.contracts_completed}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Status",children:"ACTIVE"})]})})]})})};t.StatusPane=u;var s=function(e,t){var n=(0,r.useLocalState)(t,"tab",1),c=n[0],i=n[1];return(0,o.createFragment)([(0,o.createComponentVNode)(2,u,{state:e.state}),(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===c,onClick:function(){return i(1)},children:"Contracts"}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===c,onClick:function(){return i(2)},children:"Hub"})]}),1===c&&(0,o.createComponentVNode)(2,m),2===c&&(0,o.createComponentVNode)(2,p)],0)};t.SyndPane=s;var m=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.contracts||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Available Contracts",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Call Extraction",disabled:!i.ongoing_contract||i.extraction_enroute,onClick:function(){return c("PRG_call_extraction")}}),children:l.map((function(e){if(!i.ongoing_contract||2===e.status){var t=e.status>1;if(!(e.status>=5))return(0,o.createComponentVNode)(2,a.Section,{title:e.target?e.target+" ("+e.target_rank+")":"Invalid Target",level:t?1:2,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:[e.payout," (+",e.payout_bonus,") TC"]}),(0,o.createComponentVNode)(2,a.Button,{content:t?"Abort":"Accept",disabled:e.extraction_enroute,color:t&&"bad",onClick:function(){return c("PRG_contract"+(t?"_abort":"-accept"),{contract_id:e.id})}})],4),children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:e.message}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:.5,children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,mb:1,children:"Dropoff Location:"}),(0,o.createComponentVNode)(2,a.Box,{children:e.dropoff})]})]})},e.target)}}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Dropoff Locator",textAlign:"center",opacity:i.ongoing_contract?100:0,children:(0,o.createComponentVNode)(2,a.Box,{bold:!0,children:i.dropoff_direction})})],4)},p=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.contractor_hub_items||[];return(0,o.createComponentVNode)(2,a.Section,{children:l.map((function(e){var t=e.cost?e.cost+" Rep":"FREE",n=-1!==e.limited;return(0,o.createComponentVNode)(2,a.Section,{title:e.name+" - "+t,level:2,buttons:(0,o.createFragment)([n&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:[e.limited," remaining"]}),(0,o.createComponentVNode)(2,a.Button,{content:"Purchase",disabled:i.contract_rep0&&g.flatMap((function(e){return e.items||[]})).filter(L).filter((function(e,t){return t<25}))||(null==(l=g.find((function(e){return e.name===_})))?void 0:l.items)||[];return(0,o.createComponentVNode)(2,c.Section,{title:(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:s>0?"good":"bad",children:[(0,i.formatMoney)(s)," ",p]}),buttons:(0,o.createFragment)([(0,o.createTextVNode)("Search"),(0,o.createComponentVNode)(2,c.Input,{autoFocus:!0,value:k,onInput:function(e,t){return x(t)},mx:1}),(0,o.createComponentVNode)(2,c.Button,{icon:V?"list":"info",content:V?"Compact":"Detailed",onClick:function(){return h("compact_toggle")}}),!!b&&(0,o.createComponentVNode)(2,c.Button,{icon:"lock",content:"Lock",onClick:function(){return h("lock")}})],0),children:(0,o.createComponentVNode)(2,c.Flex,{children:[0===k.length&&(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,c.Tabs,{vertical:!0,children:g.map((function(e){var t;return(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:e.name===_,onClick:function(){return w(e.name)},children:[e.name," (",(null==(t=e.items)?void 0:t.length)||0,")"]},e.name)}))})}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1,basis:0,children:[0===y.length&&(0,o.createComponentVNode)(2,c.NoticeBox,{children:0===k.length?"No items in this category.":"No results found."}),(0,o.createComponentVNode)(2,u,{compactMode:k.length>0||V,currencyAmount:s,currencySymbol:p,items:y})]})]})})};t.GenericUplink=d;var u=function(e,t){var n=e.compactMode,l=e.currencyAmount,d=e.currencySymbol,u=(0,a.useBackend)(t).act,s=(0,a.useLocalState)(t,"hoveredItem",{}),m=s[0],p=s[1],C=m&&m.cost||0,h=e.items.map((function(e){var t=m&&m.name!==e.name,n=l-Cl.user.cash),content:h?"FREE":d.price+" cr",onClick:function(){return i("vend",{ref:d.ref})}})})]})};t.Vending=function(e,t){var n,r=(0,a.useBackend)(t),d=(r.act,r.data),u=d.user,s=d.onstation,m=d.product_records,p=void 0===m?[]:m,C=d.coin_records,h=void 0===C?[]:C,N=d.hidden_records,V=void 0===N?[]:N,b=d.stock,f=!1;return d.vending_machine_input?(n=d.vending_machine_input||[],f=!0):(n=[].concat(p,h),d.extended_inventory&&(n=[].concat(n,V))),n=n.filter((function(e){return!!e})),(0,o.createComponentVNode)(2,i.Window,{title:"Vending Machine",width:450,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[!!s&&(0,o.createComponentVNode)(2,c.Section,{title:"User",children:u&&(0,o.createComponentVNode)(2,c.Box,{children:["Welcome, ",(0,o.createVNode)(1,"b",null,u.name,0),","," ",(0,o.createVNode)(1,"b",null,u.job||"Unemployed",0),"!",(0,o.createVNode)(1,"br"),"Your balance is ",(0,o.createVNode)(1,"b",null,[u.cash,(0,o.createTextVNode)(" credits")],0),"."]})||(0,o.createComponentVNode)(2,c.Box,{color:"light-grey",children:["No registered ID card!",(0,o.createVNode)(1,"br"),"Please contact your local HoP!"]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Products",children:(0,o.createComponentVNode)(2,c.Table,{children:n.map((function(e){return(0,o.createComponentVNode)(2,l,{custom:f,product:e,productStock:b[e.name]},e.name)}))})})]})})}},44952:function(e,t,n){"use strict";t.__esModule=!0,t.VrSleeper=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.VrSleeper=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:475,height:340,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[!!l.emagged&&(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Safety restraints disabled."})}),(0,o.createComponentVNode)(2,a.Section,{title:"Virtual Avatar",children:l.vr_avatar?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:l.vr_avatar.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:l.vr_avatar.status}),!!l.vr_avatar&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.vr_avatar.health/l.vr_avatar.maxhealth,ranges:{good:[.9,Infinity],average:[.7,.8],bad:[-Infinity,.5]}})})]}):"No Virtual Avatar detected"}),(0,o.createComponentVNode)(2,a.Section,{title:"VR Commands",children:[(0,o.createComponentVNode)(2,a.Button,{icon:l.toggle_open?"unlock":"lock",disabled:l.stored0&&S[t]&&S[t]!==i,r=!S[t]&&C.includes(t)?e.desc:e.desc+" ("+b[N[t]]+")";return(0,o.createComponentVNode)(2,c.Button.Checkbox,{ml:1,fluid:!0,content:r,disabled:n,checked:s.includes(e.ref),onClick:function(){return m(e.ref,"None"===i?null:i)}},e.desc)}))}},71739:function(e,t,n){"use strict";t.__esModule=!0,t.Scrubber=t.Vent=void 0;var o=n(39812),r=n(2497),a=n(71494),c=n(74814),i=n(76270);t.Vent=function(e,t){var n=e.vent,i=(0,a.useBackend)(t).act,l=n.id_tag,d=n.long_name,u=n.power,s=n.checks,m=n.excheck,p=n.incheck,C=n.direction,h=n.external,N=n.internal,V=n.extdefault,b=n.intdefault;return(0,o.createComponentVNode)(2,c.Section,{level:2,title:(0,r.decodeHtmlEntities)(d),buttons:(0,o.createComponentVNode)(2,c.Button,{icon:u?"power-off":"times",selected:u,content:u?"On":"Off",onClick:function(){return i("power",{id_tag:l,val:Number(!u)})}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mode",children:(0,o.createComponentVNode)(2,c.Button,{icon:"sign-in-alt",content:C?"Pressurizing":"Scrubbing",color:!C&&"danger",onClick:function(){return i("direction",{id_tag:l,val:Number(!C)})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pressure Regulator",children:[(0,o.createComponentVNode)(2,c.Button,{icon:"sign-in-alt",content:"Internal",selected:p,onClick:function(){return i("incheck",{id_tag:l,val:s})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"sign-out-alt",content:"External",selected:m,onClick:function(){return i("excheck",{id_tag:l,val:s})}})]}),!!p&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Internal Target",children:[(0,o.createComponentVNode)(2,c.NumberInput,{value:Math.round(N),unit:"kPa",width:"75px",minValue:0,step:10,maxValue:5066,onChange:function(e,t){return i("set_internal_pressure",{id_tag:l,value:t})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"undo",disabled:b,content:"Reset",onClick:function(){return i("reset_internal_pressure",{id_tag:l})}})]}),!!m&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"External Target",children:[(0,o.createComponentVNode)(2,c.NumberInput,{value:Math.round(h),unit:"kPa",width:"75px",minValue:0,step:10,maxValue:5066,onChange:function(e,t){return i("set_external_pressure",{id_tag:l,value:t})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"undo",disabled:V,content:"Reset",onClick:function(){return i("reset_external_pressure",{id_tag:l})}})]})]})})};t.Scrubber=function(e,t){var n=e.scrubber,l=(0,a.useBackend)(t).act,d=n.long_name,u=n.power,s=n.scrubbing,m=n.id_tag,p=n.widenet,C=n.filter_types;return(0,o.createComponentVNode)(2,c.Section,{level:2,title:(0,r.decodeHtmlEntities)(d),buttons:(0,o.createComponentVNode)(2,c.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,onClick:function(){return l("power",{id_tag:m,val:Number(!u)})}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mode",children:[(0,o.createComponentVNode)(2,c.Button,{icon:s?"filter":"sign-in-alt",color:s||"danger",content:s?"Scrubbing":"Siphoning",onClick:function(){return l("scrubbing",{id_tag:m,val:Number(!s)})}}),(0,o.createComponentVNode)(2,c.Button,{icon:p?"expand":"compress",selected:p,content:p?"Expanded range":"Normal range",onClick:function(){return l("widenet",{id_tag:m,val:Number(!p)})}})]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Filters",children:s&&C.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:e.enabled?"check-square-o":"square-o",content:(0,i.getGasLabel)(e.gas_id,e.gas_name),title:e.gas_name,selected:e.enabled,onClick:function(){return l("toggle_filter",{id_tag:m,val:e.gas_id})}},e.gas_id)}))||"N/A"})]})})}},48229:function(e,t,n){"use strict";t.__esModule=!0,t.BeakerContents=void 0;var o=n(39812),r=n(74814);t.BeakerContents=function(e){var t=e.beakerLoaded,n=e.beakerContents;return(0,o.createComponentVNode)(2,r.Box,{children:[!t&&(0,o.createComponentVNode)(2,r.Box,{color:"label",children:"No beaker loaded."})||0===n.length&&(0,o.createComponentVNode)(2,r.Box,{color:"label",children:"Beaker is empty."}),n.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{color:"label",children:[(0,o.createComponentVNode)(2,r.AnimatedNumber,{initial:0,value:e.volume})," units of "+e.name]},e.name)}))]})}},21451:function(e,t,n){"use strict";t.__esModule=!0,t.InterfaceLockNoticeBox=void 0;var o=n(39812),r=n(71494),a=n(74814);t.InterfaceLockNoticeBox=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=e.siliconUser,d=void 0===l?i.siliconUser:l,u=e.locked,s=void 0===u?i.locked:u,m=e.onLockStatusChange,p=void 0===m?function(){return c("lock")}:m,C=e.accessText,h=void 0===C?"an ID card":C;return d?(0,o.createComponentVNode)(2,a.NoticeBox,{color:"grey",children:(0,o.createComponentVNode)(2,a.Flex,{align:"center",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:"Interface lock status:"}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{m:0,color:s?"red":"green",icon:s?"lock":"unlock",content:s?"Locked":"Unlocked",onClick:function(){p&&p(!s)}})})]})}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:["Swipe ",h," ","to ",s?"unlock":"lock"," this interface."]})}},34227:function(e,t,n){"use strict";t.__esModule=!0,t.PortableBasicInfo=void 0;var o=n(39812),r=n(71494),a=n(74814);t.PortableBasicInfo=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.connected,d=i.holding,u=i.on,s=i.pressure;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,onClick:function(){return c("power")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:s})," kPa"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Port",color:l?"good":"average",children:l?"Connected":"Not Connected"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Holding Tank",minHeight:"82px",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!d,onClick:function(){return c("eject")}}),children:d?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Label",children:d.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d.pressure})," kPa"]})]}):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No holding tank"})})],4)}},73218:function(e,t,n){"use strict";t.__esModule=!0,t.getRoutedComponent=void 0;var o=n(39812),r=n(71494),a=(n(30098),n(85952)),c=n(8156),i=function(e,t){return function(){return(0,o.createComponentVNode)(2,a.Window,{children:(0,o.createComponentVNode)(2,a.Window.Content,{scrollable:!0,children:["notFound"===e&&(0,o.createVNode)(1,"div",null,[(0,o.createTextVNode)("Interface "),(0,o.createVNode)(1,"b",null,t,0),(0,o.createTextVNode)(" was not found.")],4),"missingExport"===e&&(0,o.createVNode)(1,"div",null,[(0,o.createTextVNode)("Interface "),(0,o.createVNode)(1,"b",null,t,0),(0,o.createTextVNode)(" is missing an export.")],4)]})})}},l=function(){return(0,o.createComponentVNode)(2,a.Window,{children:(0,o.createComponentVNode)(2,a.Window.Content,{scrollable:!0})})};t.getRoutedComponent=function(e){var t=e.getState(),n=(0,r.selectBackend)(t),o=n.suspended,a=n.config;if(o)return l;for(var d,u=null==a?void 0:a["interface"],s=[function(e){return"./"+e+".tsx"},function(e){return"./"+e+".js"},function(e){return"./"+e+"/index.tsx"},function(e){return"./"+e+"/index.js"}];!d&&s.length>0;){var m=s.shift()(u);try{d=c(m)}catch(C){if("MODULE_NOT_FOUND"!==C.code)throw C}}if(!d)return i("notFound",u);var p=d[u];return p||i("missingExport",u)}},56285:function(){},58602:function(){},92433:function(){},20459:function(){},35070:function(){},86455:function(){},41821:function(){},83243:function(){},97585:function(){},87266:function(){},99195:function(){},72916:function(){},8156:function(e,t,n){var o={"./AbductorConsole":37905,"./AbductorConsole.js":37905,"./Achievements":16804,"./Achievements.js":16804,"./AiAirlock":47330,"./AiAirlock.js":47330,"./AiRestorer":33084,"./AiRestorer.js":33084,"./AirAlarm":58444,"./AirAlarm.js":58444,"./AirlockElectronics":54370,"./AirlockElectronics.js":54370,"./AlertModal":24053,"./AlertModal.js":24053,"./Apc":93749,"./Apc.js":93749,"./ApcControl":78645,"./ApcControl.js":78645,"./AtmosAlertConsole":38531,"./AtmosAlertConsole.js":38531,"./AtmosControlConsole":4852,"./AtmosControlConsole.js":4852,"./AtmosControlPanel":40948,"./AtmosControlPanel.js":40948,"./AtmosFilter":2726,"./AtmosFilter.js":2726,"./AtmosMixer":61505,"./AtmosMixer.js":61505,"./AtmosPump":30255,"./AtmosPump.js":30255,"./AtmosRelief":78598,"./AtmosRelief.js":78598,"./AutomatedAnnouncement":33106,"./AutomatedAnnouncement.js":33106,"./BankMachine":57554,"./BankMachine.js":57554,"./Bepis":51723,"./Bepis.js":51723,"./Biogenerator":20813,"./Biogenerator.js":20813,"./BlackmarketUplink":14847,"./BlackmarketUplink.js":14847,"./BluespaceArtillery":32129,"./BluespaceArtillery.js":32129,"./BluespaceLocator":16370,"./BluespaceLocator.js":16370,"./BorgPanel":30876,"./BorgPanel.js":30876,"./BrigTimer":61956,"./BrigTimer.js":61956,"./CameraConsole":3180,"./CameraConsole.js":3180,"./Canister":94477,"./Canister.js":94477,"./Canvas":55636,"./Canvas.js":55636,"./Cargo":5758,"./Cargo.js":5758,"./CargoBountyConsole":96291,"./CargoBountyConsole.js":96291,"./CargoExpress":69941,"./CargoExpress.js":69941,"./CargoHoldTerminal":62292,"./CargoHoldTerminal.js":62292,"./CellularEmporium":27173,"./CellularEmporium.js":27173,"./CentcomPodLauncher":26726,"./CentcomPodLauncher.js":26726,"./ChemAcclimator":8663,"./ChemAcclimator.js":8663,"./ChemDebugSynthesizer":76900,"./ChemDebugSynthesizer.js":76900,"./ChemDispenser":22223,"./ChemDispenser.js":22223,"./ChemFilter":16610,"./ChemFilter.js":16610,"./ChemHeater":96479,"./ChemHeater.js":96479,"./ChemMaster":34859,"./ChemMaster.js":34859,"./ChemPress":56320,"./ChemPress.js":56320,"./ChemReactionChamber":52592,"./ChemReactionChamber.js":52592,"./ChemSplitter":68502,"./ChemSplitter.js":68502,"./ChemSynthesizer":77508,"./ChemSynthesizer.js":77508,"./CivCargoHoldTerminal":30733,"./CivCargoHoldTerminal.js":30733,"./ClockworkSlab":14319,"./ClockworkSlab.js":14319,"./CodexGigas":28408,"./CodexGigas.js":28408,"./Colormate":67649,"./Colormate.js":67649,"./ComputerFabricator":2174,"./ComputerFabricator.js":2174,"./Crayon":99672,"./Crayon.js":99672,"./CrewConsole":72357,"./CrewConsole.js":72357,"./Cryo":99798,"./Cryo.js":99798,"./DecalPainter":17785,"./DecalPainter.js":17785,"./DisposalUnit":95877,"./DisposalUnit.js":95877,"./DnaConsole":43928,"./DnaConsole.js":43928,"./DnaVault":89817,"./DnaVault.js":89817,"./EightBallVote":41284,"./EightBallVote.js":41284,"./Electrolyzer":31342,"./Electrolyzer.js":31342,"./Electropack":53586,"./Electropack.js":53586,"./EmergencyShuttleConsole":47453,"./EmergencyShuttleConsole.js":47453,"./EngravedMessage":11715,"./EngravedMessage.js":11715,"./ExosuitControlConsole":8077,"./ExosuitControlConsole.js":8077,"./ExosuitFabricator":95481,"./ExosuitFabricator.js":95481,"./ForbiddenLore":1005,"./ForbiddenLore.js":1005,"./Gateway":64831,"./Gateway.js":64831,"./GhostPoolProtection":8098,"./GhostPoolProtection.js":8098,"./GlandDispenser":25313,"./GlandDispenser.js":25313,"./Gps":25230,"./Gps.js":25230,"./GravityGenerator":4475,"./GravityGenerator.js":4475,"./GulagItemReclaimer":83366,"./GulagItemReclaimer.js":83366,"./GulagTeleporterConsole":72263,"./GulagTeleporterConsole.js":72263,"./Holodeck":7908,"./Holodeck.js":7908,"./Holopad":84283,"./Holopad.js":84283,"./HypnoChair":12708,"./HypnoChair.js":12708,"./ImplantChair":1473,"./ImplantChair.js":1473,"./InfraredEmitter":87522,"./InfraredEmitter.js":87522,"./Intellicard":28549,"./Intellicard.js":28549,"./Jukebox":68741,"./Jukebox.js":68741,"./KeycardAuth":36597,"./KeycardAuth.js":36597,"./LaborClaimConsole":52169,"./LaborClaimConsole.js":52169,"./LanguageMenu":83577,"./LanguageMenu.js":83577,"./LaunchpadConsole":79381,"./LaunchpadConsole.js":79381,"./LaunchpadRemote":59955,"./LaunchpadRemote.js":59955,"./LoadoutSelect":71293,"./LoadoutSelect.js":71293,"./MafiaPanel":5568,"./MafiaPanel.js":5568,"./MalfunctionModulePicker":42159,"./MalfunctionModulePicker.js":42159,"./MechBayPowerConsole":80881,"./MechBayPowerConsole.js":80881,"./MechpadConsole":37305,"./MechpadConsole.js":37305,"./MedicalKiosk":74702,"./MedicalKiosk.js":74702,"./Microscope":61443,"./Microscope.js":61443,"./MiningVendor":62012,"./MiningVendor.js":62012,"./Mint":83413,"./Mint.js":83413,"./Mule":97397,"./Mule.js":97397,"./NaniteChamberControl":42370,"./NaniteChamberControl.js":42370,"./NaniteCloudControl":93623,"./NaniteCloudControl.js":93623,"./NaniteProgramHub":22682,"./NaniteProgramHub.js":22682,"./NaniteProgrammer":87554,"./NaniteProgrammer.js":87554,"./NaniteRemote":73708,"./NaniteRemote.js":73708,"./NotificationPreferences":15394,"./NotificationPreferences.js":15394,"./NtnetRelay":53158,"./NtnetRelay.js":53158,"./NtosAiRestorer":86156,"./NtosAiRestorer.js":86156,"./NtosArcade":79760,"./NtosArcade.js":79760,"./NtosAtmos":5313,"./NtosAtmos.js":5313,"./NtosBountyConsole":78502,"./NtosBountyConsole.js":78502,"./NtosCard":30495,"./NtosCard.js":30495,"./NtosConfiguration":55513,"./NtosConfiguration.js":55513,"./NtosCrewManifest":48791,"./NtosCrewManifest.js":48791,"./NtosCyborgRemoteMonitor":77426,"./NtosCyborgRemoteMonitor.js":77426,"./NtosCyborgRemoteMonitorSyndicate":71854,"./NtosCyborgRemoteMonitorSyndicate.js":71854,"./NtosFileManager":86441,"./NtosFileManager.js":86441,"./NtosJobManager":38773,"./NtosJobManager.js":38773,"./NtosMain":59543,"./NtosMain.js":59543,"./NtosNetChat":73883,"./NtosNetChat.js":73883,"./NtosNetDos":83908,"./NtosNetDos.js":83908,"./NtosNetDownloader":83305,"./NtosNetDownloader.js":83305,"./NtosNetMonitor":6806,"./NtosNetMonitor.js":6806,"./NtosPowerMonitor":54698,"./NtosPowerMonitor.js":54698,"./NtosRadar":49413,"./NtosRadar.js":49413,"./NtosRadarSyndicate":41935,"./NtosRadarSyndicate.js":41935,"./NtosRequestKiosk":60839,"./NtosRequestKiosk.js":60839,"./NtosRevelation":69480,"./NtosRevelation.js":69480,"./NtosRoboControl":36888,"./NtosRoboControl.js":36888,"./NtosShipping":55431,"./NtosShipping.js":55431,"./NtosStationAlertConsole":76124,"./NtosStationAlertConsole.js":76124,"./NtosSupermatterMonitor":22475,"./NtosSupermatterMonitor.js":22475,"./NuclearBomb":78467,"./NuclearBomb.js":78467,"./OperatingComputer":48826,"./OperatingComputer.js":48826,"./Orbit":36983,"./Orbit.js":36983,"./OreBox":57800,"./OreBox.js":57800,"./OreRedemptionMachine":72938,"./OreRedemptionMachine.js":72938,"./Pandemic":47944,"./Pandemic.js":47944,"./PaperSheet":52472,"./PaperSheet.js":52472,"./ParticleAccelerator":57966,"./ParticleAccelerator.js":57966,"./PersonalCrafting":67589,"./PersonalCrafting.js":67589,"./Photocopier":9527,"./Photocopier.js":9527,"./PortableChemMixer":36088,"./PortableChemMixer.js":36088,"./PortableGenerator":46104,"./PortableGenerator.js":46104,"./PortablePump":82564,"./PortablePump.js":82564,"./PortableScrubber":24901,"./PortableScrubber.js":24901,"./PortableTurret":31695,"./PortableTurret.js":31695,"./PowerMonitor":89793,"./PowerMonitor.js":89793,"./ProbingConsole":49081,"./ProbingConsole.js":49081,"./ProximitySensor":33642,"./ProximitySensor.js":33642,"./Radio":17481,"./Radio.js":17481,"./RadioactiveMicrolaser":8324,"./RadioactiveMicrolaser.js":8324,"./RapidPipeDispenser":29509,"./RapidPipeDispenser.js":29509,"./RemoteRobotControl":14265,"./RemoteRobotControl.js":14265,"./RequestKiosk":18374,"./RequestKiosk.js":18374,"./RoboticsControlConsole":24455,"./RoboticsControlConsole.js":24455,"./Roulette":90910,"./Roulette.js":90910,"./SatelliteControl":14317,"./SatelliteControl.js":14317,"./ScannerGate":55666,"./ScannerGate.js":55666,"./SeedExtractor":53480,"./SeedExtractor.js":53480,"./ShuttleConsole":41125,"./ShuttleConsole.js":41125,"./ShuttleManipulator":93138,"./ShuttleManipulator.js":93138,"./Signaler":32325,"./Signaler.js":32325,"./SkillPanel":52757,"./SkillPanel.js":52757,"./SkillStation":43078,"./SkillStation.js":43078,"./Sleeper":80646,"./Sleeper.js":80646,"./SlimeBodySwapper":97700,"./SlimeBodySwapper.js":97700,"./SmartVend":55896,"./SmartVend.js":55896,"./Smes":20561,"./Smes.js":20561,"./SmokeMachine":93267,"./SmokeMachine.js":93267,"./SolarControl":21633,"./SolarControl.js":21633,"./SpaceHeater":57762,"./SpaceHeater.js":57762,"./SpawnersMenu":46810,"./SpawnersMenu.js":46810,"./StationAlertConsole":32015,"./StationAlertConsole.js":32015,"./SuitStorageUnit":80748,"./SuitStorageUnit.js":80748,"./SyndContractor":37162,"./SyndContractor.js":37162,"./TachyonArray":93724,"./TachyonArray.js":93724,"./Tank":58457,"./Tank.js":58457,"./TankDispenser":38754,"./TankDispenser.js":38754,"./Telecomms":88792,"./Telecomms.js":88792,"./TelecommsInteraction":87294,"./TelecommsInteraction.js":87294,"./TelecommsLogBrowser":73754,"./TelecommsLogBrowser.js":73754,"./TelecommsMonitor":61831,"./TelecommsMonitor.js":61831,"./TelecommsPDALog":49898,"./TelecommsPDALog.js":49898,"./Teleporter":18509,"./Teleporter.js":18509,"./ThermoMachine":55469,"./ThermoMachine.js":55469,"./Timer":94936,"./Timer.js":94936,"./TransferValve":24389,"./TransferValve.js":24389,"./TurbineComputer":30499,"./TurbineComputer.js":30499,"./TurretControl":46669,"./TurretControl.js":46669,"./Uplink":89761,"./Uplink.js":89761,"./VaultController":39544,"./VaultController.js":39544,"./Vendatray":32539,"./Vendatray.js":32539,"./Vending":61321,"./Vending.js":61321,"./VrSleeper":44952,"./VrSleeper.js":44952,"./Wires":21162,"./Wires.js":21162,"./common/AccessList":5665,"./common/AccessList.js":5665,"./common/AtmosControls":71739,"./common/AtmosControls.js":71739,"./common/BeakerContents":48229,"./common/BeakerContents.js":48229,"./common/InterfaceLockNoticeBox":21451,"./common/InterfaceLockNoticeBox.js":21451,"./common/PortableAtmos":34227,"./common/PortableAtmos.js":34227};function r(e){var t=a(e);return n(t)}function a(e){if(!n.o(o,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o[e]}r.keys=function(){return Object.keys(o)},r.resolve=a,e.exports=r,r.id=8156}},n={};function o(e){var r=n[e];if(r!==undefined)return r.exports;var a=n[e]={exports:{}};return t[e](a,a.exports,o),a.exports}o.m=t,e=[],o.O=function(t,n,r,a){if(!n){var c=Infinity;for(d=0;d=a)&&Object.keys(o.O).every((function(e){return o.O[e](n[l])}))?n.splice(l--,1):(i=!1,a0&&e[d-1][2]>a;d--)e[d]=e[d-1];e[d]=[n,r,a]},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){var e={764:0};o.O.j=function(t){return 0===e[t]};var t=function(t,n){var r,a,c=n[0],i=n[1],l=n[2],d=0;for(r in i)o.o(i,r)&&(o.m[r]=i[r]);for(l&&l(o),t&&t(n);d0?"good":"bad",children:i>0?"Earned "+i+" times":"Locked"})||(0,o.createComponentVNode)(2,a.Box,{color:i?"good":"bad",children:i?"Unlocked":"Locked"})]})]},n)},d=function(e,t){var n=(0,r.useBackend)(t).data,c=n.highscore,i=n.user_ckey,l=(0,r.useLocalState)(t,"highscore",0),d=l[0],u=l[1],s=c[d];if(!s)return null;var m=Object.keys(s.scores).map((function(e){return{ckey:e,value:s.scores[e]}}));return(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Tabs,{vertical:!0,children:c.map((function(e,t){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:d===t,onClick:function(){return u(t)},children:e.name},e.name)}))})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:"#"}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:"Key"}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:"Score"})]}),m.map((function(e,t){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",m:2,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",textAlign:"center",children:t+1}),(0,o.createComponentVNode)(2,a.Table.Cell,{color:e.ckey===i&&"green",textAlign:"center",children:[0===t&&(0,o.createComponentVNode)(2,a.Icon,{name:"crown",color:"yellow",mr:2}),e.ckey,0===t&&(0,o.createComponentVNode)(2,a.Icon,{name:"crown",color:"yellow",ml:2})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:e.value})]},e.ckey)}))]})})]})}},47330:function(e,t,n){"use strict";t.__esModule=!0,t.AiAirlock=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i={2:{color:"good",localStatusText:"Offline"},1:{color:"average",localStatusText:"Caution"},0:{color:"bad",localStatusText:"Optimal"}};t.AiAirlock=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=i[d.power.main]||i[0],s=i[d.power.backup]||i[0],m=i[d.shock]||i[0];return(0,o.createComponentVNode)(2,c.Window,{width:500,height:390,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Power Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Main",color:u.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",disabled:!d.power.main,content:"Disrupt",onClick:function(){return l("disrupt-main")}}),children:[d.power.main?"Online":"Offline"," ",d.wires.main_1&&d.wires.main_2?d.power.main_timeleft>0&&"["+d.power.main_timeleft+"s]":"[Wires have been cut!]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Backup",color:s.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",disabled:!d.power.backup,content:"Disrupt",onClick:function(){return l("disrupt-backup")}}),children:[d.power.backup?"Online":"Offline"," ",d.wires.backup_1&&d.wires.backup_2?d.power.backup_timeleft>0&&"["+d.power.backup_timeleft+"s]":"[Wires have been cut!]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Electrify",color:m.color,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",disabled:!(d.wires.shock&&0===d.shock),content:"Restore",onClick:function(){return l("shock-restore")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bolt",disabled:!d.wires.shock,content:"Temporary",onClick:function(){return l("shock-temp")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"bolt",disabled:!d.wires.shock,content:"Permanent",onClick:function(){return l("shock-perm")}})],4),children:[2===d.shock?"Safe":"Electrified"," ",(d.wires.shock?d.shock_timeleft>0&&"["+d.shock_timeleft+"s]":"[Wires have been cut!]")||-1===d.shock_timeleft&&"[Permanent]"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Access and Door Control",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID Scan",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.id_scanner?"power-off":"times",content:d.id_scanner?"Enabled":"Disabled",selected:d.id_scanner,disabled:!d.wires.id_scanner,onClick:function(){return l("idscan-toggle")}}),children:!d.wires.id_scanner&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Access",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.emergency?"power-off":"times",content:d.emergency?"Enabled":"Disabled",selected:d.emergency,onClick:function(){return l("emergency-toggle")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Bolts",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.locked?"lock":"unlock",content:d.locked?"Lowered":"Raised",selected:d.locked,disabled:!d.wires.bolts,onClick:function(){return l("bolt-toggle")}}),children:!d.wires.bolts&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Bolt Lights",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.lights?"power-off":"times",content:d.lights?"Enabled":"Disabled",selected:d.lights,disabled:!d.wires.lights,onClick:function(){return l("light-toggle")}}),children:!d.wires.lights&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Force Sensors",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.safe?"power-off":"times",content:d.safe?"Enabled":"Disabled",selected:d.safe,disabled:!d.wires.safe,onClick:function(){return l("safe-toggle")}}),children:!d.wires.safe&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Timing Safety",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.speed?"power-off":"times",content:d.speed?"Enabled":"Disabled",selected:d.speed,disabled:!d.wires.timing,onClick:function(){return l("speed-toggle")}}),children:!d.wires.timing&&"[Wires have been cut!]"}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door Control",color:"bad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d.opened?"sign-out-alt":"sign-in-alt",content:d.opened?"Open":"Closed",selected:d.opened,disabled:d.locked||d.welded,onClick:function(){return l("open-close")}}),children:!(!d.locked&&!d.welded)&&(0,o.createVNode)(1,"span",null,[(0,o.createTextVNode)("[Door is "),d.locked?"bolted":"",d.locked&&d.welded?" and ":"",d.welded?"welded":"",(0,o.createTextVNode)("!]")],0)})]})})]})})}},33084:function(e,t,n){"use strict";t.__esModule=!0,t.AiRestorerContent=t.AiRestorer=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.AiRestorer=function(){return(0,o.createComponentVNode)(2,c.Window,{width:370,height:360,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.AI_present,d=i.error,u=i.name,s=i.laws,m=i.isDead,p=i.restoring,C=i.health,h=i.ejectable;return(0,o.createFragment)([d&&(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:d}),!!h&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"eject",content:l?u:"----------",disabled:!l,onClick:function(){return c("PRG_eject")}}),!!l&&(0,o.createComponentVNode)(2,a.Section,{title:h?"System Status":u,buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:m?"bad":"good",children:m?"Nonfunctional":"Functional"}),children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:C,minValue:0,maxValue:100,ranges:{good:[70,Infinity],average:[50,70],bad:[-Infinity,50]}})})}),!!p&&(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"20px",color:"good",mt:1,children:"RECONSTRUCTION IN PROGRESS"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"plus",content:"Begin Reconstruction",disabled:p,mt:1,onClick:function(){return c("PRG_beginReconstruction")}}),(0,o.createComponentVNode)(2,a.Section,{title:"Laws",level:2,children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{className:"candystripe",children:e},e)}))})]})],0)};t.AiRestorerContent=i},58444:function(e,t,n){"use strict";t.__esModule=!0,t.AirAlarm=void 0;var o=n(39812),r=n(41860),a=(n(2497),n(71494)),c=n(74814),i=(n(76270),n(85952)),l=n(21451),d=n(71739);t.AirAlarm=function(e,t){var n=(0,a.useBackend)(t),r=(n.act,n.data),c=r.locked&&!r.siliconUser;return(0,o.createComponentVNode)(2,i.Window,{width:440,height:650,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,l.InterfaceLockNoticeBox),(0,o.createComponentVNode)(2,u),!c&&(0,o.createComponentVNode)(2,m)]})})};var u=function(e,t){var n=(0,a.useBackend)(t).data,i=(n.environment_data||[]).filter((function(e){return e.value>=.01})),l={0:{color:"good",localStatusText:"Optimal"},1:{color:"average",localStatusText:"Caution"},2:{color:"bad",localStatusText:"Danger (Internals Required)"}},d=l[n.danger_level]||l[0];return(0,o.createComponentVNode)(2,c.Section,{title:"Air Status",children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[i.length>0&&(0,o.createFragment)([i.map((function(e){var t=l[e.danger_level]||l[0];return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.name,color:t.color,children:[(0,r.toFixed)(e.value,2),e.unit]},e.name)})),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Local status",color:d.color,children:d.localStatusText}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Area status",color:n.atmos_alarm||n.fire_alarm?"bad":"good",children:(n.atmos_alarm?"Atmosphere Alarm":n.fire_alarm&&"Fire Alarm")||"Nominal"})],0)||(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Warning",color:"bad",children:"Cannot obtain air sample for analysis."}),!!n.emagged&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Warning",color:"bad",children:"Safety measures offline. Device may exhibit abnormal behavior."})]})})},s={home:{title:"Air Controls",component:function(){return p}},vents:{title:"Vent Controls",component:function(){return C}},scrubbers:{title:"Scrubber Controls",component:function(){return h}},modes:{title:"Operating Mode",component:function(){return N}},thresholds:{title:"Alarm Thresholds",component:function(){return V}}},m=function(e,t){var n=(0,a.useLocalState)(t,"screen"),r=n[0],i=n[1],l=s[r]||s.home,d=l.component();return(0,o.createComponentVNode)(2,c.Section,{title:l.title,buttons:r&&(0,o.createComponentVNode)(2,c.Button,{icon:"arrow-left",content:"Back",onClick:function(){return i()}}),children:(0,o.createComponentVNode)(2,d)})},p=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=(0,a.useLocalState)(t,"screen"),d=(l[0],l[1]),u=i.mode,s=i.atmos_alarm;return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:s?"exclamation-triangle":"exclamation",color:s&&"caution",content:"Area Atmosphere Alarm",onClick:function(){return r(s?"reset":"alarm")}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:3===u?"exclamation-triangle":"exclamation",color:3===u&&"danger",content:"Panic Siphon",onClick:function(){return r("mode",{mode:3===u?1:3})}}),(0,o.createComponentVNode)(2,c.Box,{mt:2}),(0,o.createComponentVNode)(2,c.Button,{icon:"sign-out-alt",content:"Vent Controls",onClick:function(){return d("vents")}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"filter",content:"Scrubber Controls",onClick:function(){return d("scrubbers")}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"cog",content:"Operating Mode",onClick:function(){return d("modes")}}),(0,o.createComponentVNode)(2,c.Box,{mt:1}),(0,o.createComponentVNode)(2,c.Button,{icon:"chart-bar",content:"Alarm Thresholds",onClick:function(){return d("thresholds")}})],4)},C=function(e,t){var n=(0,a.useBackend)(t).data.vents;return n&&0!==n.length?n.map((function(e){return(0,o.createComponentVNode)(2,d.Vent,{vent:e},e.id_tag)})):"Nothing to show"},h=function(e,t){var n=(0,a.useBackend)(t).data.scrubbers;return n&&0!==n.length?n.map((function(e){return(0,o.createComponentVNode)(2,d.Scrubber,{scrubber:e},e.id_tag)})):"Nothing to show"},N=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data.modes;return i&&0!==i.length?i.map((function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:e.selected?"check-square-o":"square-o",selected:e.selected,color:e.selected&&e.danger&&"danger",content:e.name,onClick:function(){return r("mode",{mode:e.mode})}}),(0,o.createComponentVNode)(2,c.Box,{mt:1})],4,e.mode)})):"Nothing to show"},V=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data.thresholds;return(0,o.createVNode)(1,"table","LabeledList",[(0,o.createVNode)(1,"thead",null,(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td"),(0,o.createVNode)(1,"td","color-bad","min2",16),(0,o.createVNode)(1,"td","color-average","min1",16),(0,o.createVNode)(1,"td","color-average","max1",16),(0,o.createVNode)(1,"td","color-bad","max2",16)],4),2),(0,o.createVNode)(1,"tbody",null,l.map((function(e){return(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td","LabeledList__label",e.name,0),e.settings.map((function(e){return(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,c.Button,{content:(0,r.toFixed)(e.selected,2),onClick:function(){return i("threshold",{env:e.env,"var":e.val})}}),2,null,e.val)}))],0,null,e.name)})),0)],4,{style:{width:"100%"}})}},54370:function(e,t,n){"use strict";t.__esModule=!0,t.AirlockAccessList=t.AirlockElectronics=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=n(64499);function l(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return d(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n=n.length?e=t?e-1:0:e<0&&(e=t?0:n.length-1);var o=this.buttonRefs[e].current;o&&setTimeout((function(){return o.focus()}),1),this.setState({current:e})},u.render=function(){var e=this,t=(0,a.useBackend)(this.context),n=t.act,r=t.data,d=r.title,u=r.message,m=r.buttons,p=r.timeout,C=this.state.current,h=function(){return e.setCurrent(C,!1)};return(0,o.createComponentVNode)(2,i.Window,{title:d,width:350,height:150,canClose:p>0,children:[p&&(0,o.createComponentVNode)(2,s,{value:p}),(0,o.createComponentVNode)(2,i.Window.Content,{onFocus:h,onClick:h,children:(0,o.createComponentVNode)(2,c.Section,{fill:!0,children:(0,o.createComponentVNode)(2,c.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,c.Flex,{direction:"column",className:"AlertModal__Message",height:"100%",children:(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,c.Box,{m:1,children:u})})})}),(0,o.createComponentVNode)(2,c.Flex.Item,{my:2,children:(0,o.createComponentVNode)(2,c.Flex,{className:"AlertModal__Buttons",children:m.map((function(t,r){return(0,o.createComponentVNode)(2,c.Flex.Item,{mx:1,children:(0,o.createVNode)(1,"div","Button Button--color--default",t,0,{px:3,onClick:function(){return n("choose",{choice:t})},onKeyDown:function(o){var r=window.event?o.which:o.keyCode;r===l.KEY_SPACE||r===l.KEY_ENTER?n("choose",{choice:t}):r===l.KEY_LEFT||o.shiftKey&&r===l.KEY_TAB?e.setCurrent(C-1,r===l.KEY_LEFT):r!==l.KEY_RIGHT&&r!==l.KEY_TAB||e.setCurrent(C+1,r===l.KEY_RIGHT)}},null,e.buttonRefs[r])},r)}))})})]})})})]})},r}(o.Component);t.AlertModal=u;var s=function(e){var t=e.value;return(0,o.createVNode)(1,"div","AlertModal__Loader",(0,o.createComponentVNode)(2,c.Box,{className:"AlertModal__LoaderProgress",style:{width:100*(0,r.clamp01)(t)+"%"}}),2)};t.Loader=s},93749:function(e,t,n){"use strict";t.__esModule=!0,t.Apc=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=n(21451);t.Apc=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{width:450,height:445,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,u)})})};var l={2:{color:"good",externalPowerText:"External Power",chargingText:"Fully Charged"},1:{color:"average",externalPowerText:"Low External Power",chargingText:"Charging"},0:{color:"bad",externalPowerText:"No External Power",chargingText:"Not Charging"}},d={1:{icon:"terminal",content:"Override Programming",action:"hack"},2:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"},3:{icon:"caret-square-left",content:"Return to Main Core",action:"deoccupy"},4:{icon:"caret-square-down",content:"Shunt Core Process",action:"occupy"}},u=function(e,t){var n=(0,r.useBackend)(t),c=n.act,u=n.data,s=u.locked&&!u.siliconUser,m=l[u.externalPower]||l[0],p=l[u.chargingStatus]||l[0],C=u.powerChannels||[],h=d[u.malfStatus]||d[0],N=u.powerCellStatus/100;return u.failTime>0?(0,o.createComponentVNode)(2,a.NoticeBox,{children:[(0,o.createVNode)(1,"b",null,(0,o.createVNode)(1,"h3",null,"SYSTEM FAILURE",16),2),(0,o.createVNode)(1,"i",null,"I/O regulators malfunction detected! Waiting for system reboot...",16),(0,o.createVNode)(1,"br"),"Automatic reboot in ",u.failTime," seconds...",(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Reboot Now",onClick:function(){return c("reboot")}})]}):(0,o.createFragment)([(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox),(0,o.createComponentVNode)(2,a.Section,{title:"Power Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Main Breaker",color:m.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u.isOperating?"power-off":"times",content:u.isOperating?"On":"Off",selected:u.isOperating&&!s,disabled:s,onClick:function(){return c("breaker")}}),children:["[ ",m.externalPowerText," ]"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power Cell",children:(0,o.createComponentVNode)(2,a.ProgressBar,{color:"good",value:N})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",color:p.color,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u.chargeMode?"sync":"close",content:u.chargeMode?"Auto":"Off",disabled:s,onClick:function(){return c("charge")}}),children:["[ ",p.chargingText," ]"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Channels",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[C.map((function(e){var t=e.topicParams;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.title,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,mx:2,color:e.status>=2?"good":"bad",children:e.status>=2?"On":"Off"}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Auto",selected:!s&&(1===e.status||3===e.status),disabled:s,onClick:function(){return c("channel",t.auto)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:"On",selected:!s&&2===e.status,disabled:s,onClick:function(){return c("channel",t.on)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Off",selected:!s&&0===e.status,disabled:s,onClick:function(){return c("channel",t.off)}})],4),children:e.powerLoad},e.title)})),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Total Load",children:(0,o.createVNode)(1,"b",null,u.totalLoad,0)})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Misc",buttons:!!u.siliconUser&&(0,o.createFragment)([!!u.malfStatus&&(0,o.createComponentVNode)(2,a.Button,{icon:h.icon,content:h.content,color:"bad",onClick:function(){return c(h.action)}}),(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:"Overload",onClick:function(){return c("overload")}})],0),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cover Lock",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u.coverLocked?"lock":"unlock",content:u.coverLocked?"Engaged":"Disengaged",disabled:s,onClick:function(){return c("cover")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Emergency Lighting",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:u.emergencyLights?"Enabled":"Disabled",disabled:s,onClick:function(){return c("emergency_lighting")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Night Shift Lighting",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lightbulb-o",content:u.nightshiftLights?"Enabled":"Disabled",onClick:function(){return c("toggle_nightshift")}})})]})})],4)}},78645:function(e,t,n){"use strict";t.__esModule=!0,t.ApcControl=void 0;var o=n(39812),r=n(64499),a=n(85531),c=n(34380),i=n(71494),l=n(74814),d=n(85952),u=n(89793);t.ApcControl=function(e,t){var n=(0,i.useBackend)(t).data;return(0,o.createComponentVNode)(2,d.Window,{title:"APC Controller",width:550,height:500,resizable:!0,children:[1===n.authenticated&&(0,o.createComponentVNode)(2,m),0===n.authenticated&&(0,o.createComponentVNode)(2,s)]})};var s=function(e,t){var n=(0,i.useBackend)(t),r=n.act,a=n.data.emagged,c=1===a?"Open":"Log In";return(0,o.createComponentVNode)(2,d.Window.Content,{children:(0,o.createComponentVNode)(2,l.Button,{fluid:!0,color:1===a?"":"good",content:c,onClick:function(){return r("log-in")}})})},m=function(e,t){var n=(0,i.useBackend)(t),r=n.act,a=n.data.restoring,c=(0,i.useLocalState)(t,"tab-index",1),u=c[0],s=c[1];return(0,o.createFragment)([(0,o.createComponentVNode)(2,l.Tabs,{children:[(0,o.createComponentVNode)(2,l.Tabs.Tab,{selected:1===u,onClick:function(){s(1),r("check-apcs")},children:"APC Control Panel"}),(0,o.createComponentVNode)(2,l.Tabs.Tab,{selected:2===u,onClick:function(){s(2),r("check-logs")},children:"Log View Panel"})]}),1===a&&(0,o.createComponentVNode)(2,l.Dimmer,{fontSize:"32px",children:[(0,o.createComponentVNode)(2,l.Icon,{name:"cog",spin:!0})," Resetting..."]}),1===u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,p),(0,o.createComponentVNode)(2,l.Box,{fillPositionedParent:!0,top:"53px",children:(0,o.createComponentVNode)(2,d.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,C)})})],4),2===u&&(0,o.createComponentVNode)(2,l.Box,{fillPositionedParent:!0,top:"20px",children:(0,o.createComponentVNode)(2,d.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,h)})})],0)},p=function(e,t){var n=(0,i.useBackend)(t),r=n.act,a=n.data,c=a.emagged,d=a.logging,u=(0,i.useLocalState)(t,"sortByField",null),s=u[0],m=u[1];return(0,o.createComponentVNode)(2,l.Flex,{children:[(0,o.createComponentVNode)(2,l.Flex.Item,{children:[(0,o.createComponentVNode)(2,l.Box,{inline:!0,mr:2,color:"label",children:"Sort by:"}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"name"===s,content:"Name",onClick:function(){return m("name"!==s&&"name")}}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"charge"===s,content:"Charge",onClick:function(){return m("charge"!==s&&"charge")}}),(0,o.createComponentVNode)(2,l.Button.Checkbox,{checked:"draw"===s,content:"Draw",onClick:function(){return m("draw"!==s&&"draw")}})]}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1}),(0,o.createComponentVNode)(2,l.Flex.Item,{children:[1===c&&(0,o.createFragment)([(0,o.createComponentVNode)(2,l.Button,{color:1===d?"bad":"good",content:1===d?"Stop Logging":"Restore Logging",onClick:function(){return r("toggle-logs")}}),(0,o.createComponentVNode)(2,l.Button,{content:"Reset Console",onClick:function(){return r("restore-console")}})],4),(0,o.createComponentVNode)(2,l.Button,{color:"bad",content:"Log Out",onClick:function(){return r("log-out")}})]})]})},C=function(e,t){var n=(0,i.useBackend)(t),c=n.data,d=n.act,s=(0,i.useLocalState)(t,"sortByField",null)[0],m=(0,a.flow)([(0,r.map)((function(e,t){return Object.assign({},e,{id:e.name+t})})),"name"===s&&(0,r.sortBy)((function(e){return e.name})),"charge"===s&&(0,r.sortBy)((function(e){return-e.charge})),"draw"===s&&(0,r.sortBy)((function(e){return-(0,u.powerRank)(e.load)}),(function(e){return-parseFloat(e.load)}))])(c.apcs);return(0,o.createComponentVNode)(2,l.Table,{children:[(0,o.createComponentVNode)(2,l.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:"On/Off"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Area"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,children:"Charge"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,textAlign:"right",children:"Draw"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Equipment",children:"Eqp"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Lighting",children:"Lgt"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,title:"Environment",children:"Env"})]}),m.map((function(e,t){return(0,o.createVNode)(1,"tr","Table__row candystripe",[(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,l.Button,{icon:e.operating?"power-off":"times",color:e.operating?"good":"bad",onClick:function(){return d("breaker",{ref:e.ref})}}),2),(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,l.Button,{onClick:function(){return d("access-apc",{ref:e.ref})},children:e.name}),2),(0,o.createVNode)(1,"td","Table__cell text-right text-nowrap",(0,o.createComponentVNode)(2,u.AreaCharge,{charging:e.charging,charge:e.charge}),2),(0,o.createVNode)(1,"td","Table__cell text-right text-nowrap",e.load,0),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,N,{target:"equipment",status:e.eqp,apc:e,act:d}),2),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,N,{target:"lighting",status:e.lgt,apc:e,act:d}),2),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,N,{target:"environ",status:e.env,apc:e,act:d}),2)],4,null,e.id)}))]})},h=function(e,t){var n=(0,i.useBackend)(t).data,c=(0,a.flow)([(0,r.map)((function(e,t){return Object.assign({},e,{id:e.entry+t})})),function(e){return e.reverse()}])(n.logs);return(0,o.createComponentVNode)(2,l.Box,{m:-.5,children:c.map((function(e){return(0,o.createComponentVNode)(2,l.Box,{p:.5,className:"candystripe",bold:!0,children:e.entry},e.id)}))})},N=function(e){var t=e.target,n=e.status,r=e.apc,a=e.act,c=Boolean(2&n),i=Boolean(1&n);return(0,o.createComponentVNode)(2,l.Button,{icon:i?"sync":"power-off",color:c?"good":"bad",onClick:function(){return a("toggle-minor",{type:t,value:V(n),ref:r.ref})}})},V=function(e){return 0===e?2:2===e?3:0};N.defaultHooks=c.pureComponentHooks},38531:function(e,t,n){"use strict";t.__esModule=!0,t.AtmosAlertConsole=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.AtmosAlertConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.priority||[],u=l.minor||[];return(0,o.createComponentVNode)(2,c.Window,{width:350,height:300,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:"Alarms",children:(0,o.createVNode)(1,"ul",null,[0===d.length&&(0,o.createVNode)(1,"li","color-good","No Priority Alerts",16),d.map((function(e){return(0,o.createVNode)(1,"li",null,(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:e,color:"bad",onClick:function(){return i("clear",{zone:e})}}),2,null,e)})),0===u.length&&(0,o.createVNode)(1,"li","color-good","No Minor Alerts",16),u.map((function(e){return(0,o.createVNode)(1,"li",null,(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:e,color:"average",onClick:function(){return i("clear",{zone:e})}}),2,null,e)}))],0)})})})}},4852:function(e,t,n){"use strict";t.__esModule=!0,t.AtmosControlConsole=void 0;var o=n(39812),r=n(64499),a=n(41860),c=n(71494),i=n(74814),l=n(85952);t.AtmosControlConsole=function(e,t){var n,d=(0,c.useBackend)(t),u=d.act,s=d.data,m=s.sensors||[];return(0,o.createComponentVNode)(2,l.Window,{width:500,height:315,resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,i.Section,{title:!!s.tank&&(null==(n=m[0])?void 0:n.long_name),children:m.map((function(e){var t=e.gases||{};return(0,o.createComponentVNode)(2,i.Section,{title:!s.tank&&e.long_name,level:2,children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Pressure",children:(0,a.toFixed)(e.pressure,2)+" kPa"}),!!e.temperature&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Temperature",children:(0,a.toFixed)(e.temperature,2)+" K"}),(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:t,children:(0,a.toFixed)(e,2)+"%"})}))(t)]})},e.id_tag)}))}),s.tank&&(0,o.createComponentVNode)(2,i.Section,{title:"Controls",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"undo",content:"Reconnect",onClick:function(){return u("reconnect")}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Input Injector",children:(0,o.createComponentVNode)(2,i.Button,{icon:s.inputting?"power-off":"times",content:s.inputting?"Injecting":"Off",selected:s.inputting,onClick:function(){return u("input")}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Input Rate",children:(0,o.createComponentVNode)(2,i.NumberInput,{value:s.inputRate,unit:"L/s",width:"63px",minValue:0,maxValue:200,suppressFlicker:2e3,onChange:function(e,t){return u("rate",{rate:t})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Output Regulator",children:(0,o.createComponentVNode)(2,i.Button,{icon:s.outputting?"power-off":"times",content:s.outputting?"Open":"Closed",selected:s.outputting,onClick:function(){return u("output")}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Output Pressure",children:(0,o.createComponentVNode)(2,i.NumberInput,{value:parseFloat(s.outputPressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,suppressFlicker:2e3,onChange:function(e,t){return u("pressure",{pressure:t})}})})]})})]})})}},40948:function(e,t,n){"use strict";t.__esModule=!0,t.AtmosControlPanel=void 0;var o=n(39812),r=n(64499),a=n(85531),c=n(71494),i=n(74814),l=n(85952);t.AtmosControlPanel=function(e,t){var n=(0,c.useBackend)(t),d=n.act,u=n.data,s=(0,a.flow)([(0,r.map)((function(e,t){return Object.assign({},e,{id:e.area+t})})),(0,r.sortBy)((function(e){return e.id}))])(u.excited_groups);return(0,o.createComponentVNode)(2,l.Window,{title:"SSAir Control Panel",width:900,height:500,resizable:!0,children:[(0,o.createComponentVNode)(2,i.Section,{m:1,children:(0,o.createComponentVNode)(2,i.Flex,{justify:"space-between",align:"baseline",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Button,{onClick:function(){return d("toggle-freeze")},color:1===u.frozen?"good":"bad",children:1===u.frozen?"Freeze Subsystem":"Unfreeze Subsystem"})}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:["Fire Cnt: ",u.fire_count]}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:["Active Turfs: ",u.active_size]}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:["Excited Groups: ",u.excited_size]}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:["Hotspots: ",u.hotspots_size]}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:["Superconductors: ",u.conducting_size]}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Button.Checkbox,{checked:u.showing_user,onClick:function(){return d("toggle_user_display")},children:"Personal View"})}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Button.Checkbox,{checked:u.show_all,onClick:function(){return d("toggle_show_all")},children:"Display all"})})]})}),(0,o.createComponentVNode)(2,i.Box,{fillPositionedParent:!0,top:"45px",children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Table,{children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:"Area Name"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:"Breakdown"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:"Dismantle"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:"Turfs"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:1===u.display_max&&"Max Share"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,children:"Display"})]}),s.map((function(e){return(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,i.Button,{content:e.area,onClick:function(){return d("move-to-target",{spot:e.jump_to})}}),2),(0,o.createVNode)(1,"td",null,e.breakdown,0),(0,o.createVNode)(1,"td",null,e.dismantle,0),(0,o.createVNode)(1,"td",null,e.size,0),(0,o.createVNode)(1,"td",null,1===u.display_max&&e.max_share,0),(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,i.Button.Checkbox,{checked:e.should_show,onClick:function(){return d("toggle_show_group",{group:e.group})}}),2)],4,null,e.id)}))]})})})})]})}},2726:function(e,t,n){"use strict";t.__esModule=!0,t.AtmosFilter=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(76270),i=n(85952);t.AtmosFilter=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.filter_types||[];return(0,o.createComponentVNode)(2,i.Window,{width:390,height:187,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:d.on?"power-off":"times",content:d.on?"On":"Off",selected:d.on,onClick:function(){return l("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transfer Rate",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(d.rate),width:"63px",unit:"L/s",minValue:0,maxValue:200,onDrag:function(e,t){return l("rate",{rate:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:d.rate===d.max_rate,onClick:function(){return l("rate",{rate:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Filter",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{selected:e.selected,content:(0,c.getGasLabel)(e.id,e.name),onClick:function(){return l("filter",{mode:e.id})}},e.id)}))})]})})})})}},61505:function(e,t,n){"use strict";t.__esModule=!0,t.AtmosMixer=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.AtmosMixer=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:370,height:165,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.on?"power-off":"times",content:l.on?"On":"Off",selected:l.on,onClick:function(){return i("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(l.set_pressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,onChange:function(e,t){return i("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:l.set_pressure===l.max_pressure,onClick:function(){return i("pressure",{pressure:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Node 1",children:(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:l.node1_concentration,unit:"%",width:"60px",minValue:0,maxValue:100,stepPixelSize:2,onDrag:function(e,t){return i("node1",{concentration:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Node 2",children:(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:l.node2_concentration,unit:"%",width:"60px",minValue:0,maxValue:100,stepPixelSize:2,onDrag:function(e,t){return i("node2",{concentration:t})}})})]})})})})}},30255:function(e,t,n){"use strict";t.__esModule=!0,t.AtmosPump=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.AtmosPump=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:335,height:115,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.on?"power-off":"times",content:l.on?"On":"Off",selected:l.on,onClick:function(){return i("power")}})}),l.max_rate?(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Transfer Rate",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(l.rate),width:"63px",unit:"L/s",minValue:0,maxValue:200,onChange:function(e,t){return i("rate",{rate:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:l.rate===l.max_rate,onClick:function(){return i("rate",{rate:"max"})}})]}):(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(l.pressure),unit:"kPa",width:"75px",minValue:0,maxValue:4500,step:10,onChange:function(e,t){return i("pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:l.pressure===l.max_pressure,onClick:function(){return i("pressure",{pressure:"max"})}})]})]})})})})}},78598:function(e,t,n){"use strict";t.__esModule=!0,t.AtmosRelief=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.AtmosRelief=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:335,height:115,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Open Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(l.open_pressure),unit:"kPa",width:"75px",minValue:0,maxValue:l.max_pressure||4500,step:10,onChange:function(e,t){return i("open_pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:l.open_pressure===l.max_pressure,onClick:function(){return i("open_pressure",{pressure:"max"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Close Pressure",children:[(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(l.close_pressure),unit:"kPa",width:"75px",minValue:0,maxValue:l.max_pressure||4500,step:10,onChange:function(e,t){return i("close_pressure",{pressure:t})}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",content:"Max",disabled:l.close_pressure===l.max_pressure,onClick:function(){return i("close_pressure",{pressure:"max"})}})]})]})})})})}},33106:function(e,t,n){"use strict";t.__esModule=!0,t.AutomatedAnnouncement=void 0;var o=n(39812),r=(n(2497),n(71494)),a=n(74814),c=n(85952),i="%PERSON will be replaced with their name.\n%RANK with their job.";t.AutomatedAnnouncement=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.arrivalToggle,s=d.arrival,m=d.newheadToggle,p=d.newhead;return(0,o.createComponentVNode)(2,c.Window,{title:"Automated Announcement System",width:500,height:225,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Arrival Announcement",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u?"power-off":"times",selected:u,content:u?"On":"Off",onClick:function(){return l("ArrivalToggle")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"info",tooltip:i,tooltipPosition:"left"}),children:(0,o.createComponentVNode)(2,a.Input,{fluid:!0,value:s,onChange:function(e,t){return l("ArrivalText",{newText:t})}})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Departmental Head Announcement",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:m?"power-off":"times",selected:m,content:m?"On":"Off",onClick:function(){return l("NewheadToggle")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"info",tooltip:i,tooltipPosition:"left"}),children:(0,o.createComponentVNode)(2,a.Input,{fluid:!0,value:p,onChange:function(e,t){return l("NewheadText",{newText:t})}})})})})]})})}},57554:function(e,t,n){"use strict";t.__esModule=!0,t.BankMachine=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(58083),i=n(85952);t.BankMachine=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.current_balance,s=d.siphoning,m=d.station_name;return(0,o.createComponentVNode)(2,i.Window,{width:350,height:155,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,a.NoticeBox,{danger:!0,children:"Authorized personnel only"}),(0,o.createComponentVNode)(2,a.Section,{title:m+" Vault",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Balance",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:s?"times":"sync",content:s?"Stop Siphoning":"Siphon Credits",selected:s,onClick:function(){return l(s?"halt":"siphon")}}),children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u,format:function(e){return(0,c.formatMoney)(e)}})," cr"]})})})]})})}},51723:function(e,t,n){"use strict";t.__esModule=!0,t.Bepis=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.Bepis=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.amount;return(0,o.createComponentVNode)(2,c.Window,{width:500,height:480,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Business Exploration Protocol Incubation Sink",children:[(0,o.createComponentVNode)(2,a.Section,{title:"Information",backgroundColor:"#450F44",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:l.manual_power?"Off":"On",selected:!l.manual_power,onClick:function(){return i("toggle_power")}}),children:"All you need to know about the B.E.P.I.S. and you! The B.E.P.I.S. performs hundreds of tests a second using electrical and financial resources to invent new products, or discover new technologies otherwise overlooked for being too risky or too niche to produce!"}),(0,o.createComponentVNode)(2,a.Section,{title:"Payer's Account",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"redo-alt",content:"Reset Account",onClick:function(){return i("account_reset")}}),children:["Console is currently being operated by ",l.account_owner?l.account_owner:"no one","."]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:1.5,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Stored Data and Statistics",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deposited Credits",children:l.stored_cash}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Investment Variability",children:[l.accuracy_percentage,"%"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Innovation Bonus",children:l.positive_cash_offset}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Risk Offset",color:"bad",children:l.negative_cash_offset}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deposit Amount",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:d,unit:"Credits",minValue:100,maxValue:3e4,step:100,stepPixelSize:2,onChange:function(e,t){return i("amount",{amount:t})}})})]})}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"donate",content:"Deposit Credits",disabled:1===l.manual_power||1===l.silicon_check,onClick:function(){return i("deposit_cash")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Withdraw Credits",disabled:1===l.manual_power,onClick:function(){return i("withdraw_cash")}})]})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Market Data and Analysis",children:[(0,o.createComponentVNode)(2,a.Box,{children:["Average technology cost: ",l.mean_value]}),(0,o.createComponentVNode)(2,a.Box,{children:["Current chance of Success: Est. ",l.success_estimate,"%"]}),l.error_name&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Previous Failure Reason: Deposited cash value too low. Please insert more money for future success."}),(0,o.createComponentVNode)(2,a.Box,{m:1}),(0,o.createComponentVNode)(2,a.Button,{icon:"microscope",disabled:1===l.manual_power,onClick:function(){return i("begin_experiment")},content:"Begin Testing"})]})})]})]})})})}},20813:function(e,t,n){"use strict";t.__esModule=!0,t.BiogeneratorContent=t.Biogenerator=void 0;var o=n(39812),r=n(34380),a=n(2497),c=n(71494),i=n(74814),l=n(58083),d=n(85952);t.Biogenerator=function(e,t){var n=(0,c.useBackend)(t).data,r=n.beaker,a=n.processing;return(0,o.createComponentVNode)(2,d.Window,{width:550,height:380,resizable:!0,children:[!!a&&(0,o.createComponentVNode)(2,i.Dimmer,{fontSize:"32px",children:[(0,o.createComponentVNode)(2,i.Icon,{name:"cog",spin:1})," Processing..."]}),(0,o.createComponentVNode)(2,d.Window.Content,{scrollable:!0,children:[!r&&(0,o.createComponentVNode)(2,i.NoticeBox,{children:"No Container"}),!!r&&(0,o.createComponentVNode)(2,u)]})]})};var u=function(e,t){var n,r,d=(0,c.useBackend)(t),u=d.act,m=d.data,p=m.biomass,C=m.can_process,h=m.categories,N=void 0===h?[]:h,V=(0,c.useLocalState)(t,"searchText",""),b=V[0],f=V[1],g=(0,c.useLocalState)(t,"category",null==(n=N[0])?void 0:n.name),v=g[0],k=g[1],x=(0,a.createSearch)(b,(function(e){return e.name})),B=b.length>0&&N.flatMap((function(e){return e.items||[]})).filter(x).filter((function(e,t){return t<25}))||(null==(r=N.find((function(e){return e.name===v})))?void 0:r.items)||[];return(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:p>0?"good":"bad",children:[(0,l.formatMoney)(p)," Biomass"]}),buttons:(0,o.createFragment)([(0,o.createTextVNode)("Search"),(0,o.createComponentVNode)(2,i.Input,{autoFocus:!0,value:b,onInput:function(e,t){return f(t)},mx:1}),(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",onClick:function(){return u("detach")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"cog",content:"Activate",disabled:!C,onClick:function(){return u("activate")}})],4),children:(0,o.createComponentVNode)(2,i.Flex,{children:[0===b.length&&(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:N.map((function(e){var t;return(0,o.createComponentVNode)(2,i.Tabs.Tab,{selected:e.name===v,onClick:function(){return k(e.name)},children:[e.name," (",(null==(t=e.items)?void 0:t.length)||0,")"]},e.name)}))})}),(0,o.createComponentVNode)(2,i.Flex.Item,{grow:1,basis:0,children:[0===B.length&&(0,o.createComponentVNode)(2,i.NoticeBox,{children:0===b.length?"No items in this category.":"No results found."}),(0,o.createComponentVNode)(2,i.Table,{children:(0,o.createComponentVNode)(2,s,{biomass:p,items:B})})]})]})})};t.BiogeneratorContent=u;var s=function(e,t){var n=(0,c.useBackend)(t).act,a=(0,c.useLocalState)(t,"hoveredItem",{}),l=a[0],d=a[1],u=l&&l.cost||0;return e.items.map((function(n){var o=(0,c.useLocalState)(t,"amount"+n.name,1),r=o[0],a=o[1],i=l&&l.name!==n.name,d=e.biomass-u*l.amountV,onClick:function(){return d("select",{item:e.id})}})})]}),e.desc]},e.name)}))})]})]})]})};var l=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.buying,u=l.ltsrbt_built,s=l.money;if(!d)return null;var m=l.delivery_methods.map((function(e){var t=l.delivery_method_description[e.name];return Object.assign({},e,{description:t})}));return(0,o.createComponentVNode)(2,a.Modal,{textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Flex,{mb:1,children:m.map((function(e){return"LTSRBT"!==e.name||u?(0,o.createComponentVNode)(2,a.Flex.Item,{mx:1,width:"250px",children:[(0,o.createComponentVNode)(2,a.Box,{fontSize:"30px",children:e.name}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:e.description}),(0,o.createComponentVNode)(2,a.Button,{mt:2,content:(0,c.formatMoney)(e.price)+" cr",disabled:s=0||(r[n]=e[n]);return r}(t,["res","value"]),a=d(n),c=a[0],i=a[1];return(0,o.normalizeProps)((0,o.createVNode)(1,"canvas",null,"Canvas failed to render.",16,Object.assign({width:28*c||300,height:28*i||300},r,{onClick:function(t){return e.clickwrapper(t)}}),null,this.canvasRef))},r}(o.Component),d=function(e){var t=e.length;return[t,0!==t?e[0].length:0]};t.Canvas=function(e,t){var n=(0,r.useBackend)(t),i=n.act,u=n.data,s=d(u.grid),m=s[0],p=s[1];return(0,o.createComponentVNode)(2,c.Window,{width:Math.min(400,28*m*32+24),height:Math.min(400,28*p*32+24),resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",children:[(0,o.createComponentVNode)(2,l,{value:u.grid,onCanvasClick:function(e,t){return i("paint",{x:e,y:t})}}),(0,o.createComponentVNode)(2,a.Box,{children:[!u.finalized&&(0,o.createComponentVNode)(2,a.Button.Confirm,{onClick:function(){return i("finalize")},content:"Finalize"}),u.name]})]})})})}},5758:function(e,t,n){"use strict";t.__esModule=!0,t.CargoCatalog=t.Cargo=void 0;var o=n(39812),r=n(64499),a=n(71494),c=n(74814),i=n(58083),l=n(85952);t.Cargo=function(e,t){var n=(0,a.useBackend)(t),r=(n.act,n.data),i=(0,a.useSharedState)(t,"tab","catalog"),m=i[0],C=i[1],h=r.requestonly,N=r.cart||[],V=r.requests||[];return(0,o.createComponentVNode)(2,l.Window,{width:780,height:750,resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,d),(0,o.createComponentVNode)(2,c.Section,{fitted:!0,children:(0,o.createComponentVNode)(2,c.Tabs,{children:[(0,o.createComponentVNode)(2,c.Tabs.Tab,{icon:"list",selected:"catalog"===m,onClick:function(){return C("catalog")},children:"Catalog"}),(0,o.createComponentVNode)(2,c.Tabs.Tab,{icon:"envelope",textColor:"requests"!==m&&V.length>0&&"yellow",selected:"requests"===m,onClick:function(){return C("requests")},children:["Requests (",V.length,")"]}),!h&&(0,o.createComponentVNode)(2,c.Tabs.Tab,{icon:"shopping-cart",textColor:"cart"!==m&&N.length>0&&"yellow",selected:"cart"===m,onClick:function(){return C("cart")},children:["Checkout (",N.length,")"]})]})}),"catalog"===m&&(0,o.createComponentVNode)(2,u),"requests"===m&&(0,o.createComponentVNode)(2,s),"cart"===m&&(0,o.createComponentVNode)(2,p)]})})};var d=function(e,t){var n=(0,a.useBackend)(t),r=n.act,l=n.data,d=l.away,u=l.docked,s=l.loan,m=l.loan_dispatched,p=l.location,C=l.message,h=l.points,N=l.requestonly;return(0,o.createComponentVNode)(2,c.Section,{title:"Cargo",buttons:(0,o.createComponentVNode)(2,c.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:h,format:function(e){return(0,i.formatMoney)(e)}})," credits"]}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Shuttle",children:u&&!N&&(0,o.createComponentVNode)(2,c.Button,{content:p,onClick:function(){return r("send")}})||p}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"CentCom Message",children:C}),!!s&&!N&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Loan",children:!m&&(0,o.createComponentVNode)(2,c.Button,{content:"Loan Shuttle",disabled:!(d&&u),onClick:function(){return r("loan")}})||(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"Loaned to Centcom"})})]})})},u=function(e,t){var n,l=e.express,d=(0,a.useBackend)(t),u=d.act,s=d.data,p=s.self_paid,C=(0,r.toArray)(s.supplies),h=(0,a.useSharedState)(t,"supply",null==(n=C[0])?void 0:n.name),N=h[0],V=h[1],b=C.find((function(e){return e.name===N}));return(0,o.createComponentVNode)(2,c.Section,{title:"Catalog",buttons:!l&&(0,o.createFragment)([(0,o.createComponentVNode)(2,m),(0,o.createComponentVNode)(2,c.Button.Checkbox,{ml:2,content:"Buy Privately",checked:p,onClick:function(){return u("toggleprivate")}})],4),children:(0,o.createComponentVNode)(2,c.Flex,{children:[(0,o.createComponentVNode)(2,c.Flex.Item,{ml:-1,mr:1,children:(0,o.createComponentVNode)(2,c.Tabs,{vertical:!0,children:C.map((function(e){return(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:e.name===N,onClick:function(){return V(e.name)},children:[e.name," (",e.packs.length,")"]},e.name)}))})}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,c.Table,{children:null==b?void 0:b.packs.map((function(e){var t=[];return e.small_item&&t.push("Small"),e.access&&t.push("Restricted"),(0,o.createComponentVNode)(2,c.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,color:"label",textAlign:"right",children:t.join(", ")}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,tooltip:e.desc,tooltipPosition:"left",onClick:function(){return u("add",{id:e.id})},children:[(0,i.formatMoney)(p&&!e.goody?Math.round(1.1*e.cost):e.cost)," cr"]})})]},e.name)}))})})]})})};t.CargoCatalog=u;var s=function(e,t){var n=(0,a.useBackend)(t),r=n.act,l=n.data,d=l.requestonly,u=l.requests||[];return(0,o.createComponentVNode)(2,c.Section,{title:"Active Requests",buttons:!d&&(0,o.createComponentVNode)(2,c.Button,{icon:"times",content:"Clear",color:"transparent",onClick:function(){return r("denyall")}}),children:[0===u.length&&(0,o.createComponentVNode)(2,c.Box,{color:"good",children:"No Requests"}),u.length>0&&(0,o.createComponentVNode)(2,c.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,color:"label",children:["#",e.id]}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.object}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,o.createVNode)(1,"b",null,e.orderer,0)}),(0,o.createComponentVNode)(2,c.Table.Cell,{width:"25%",children:(0,o.createVNode)(1,"i",null,e.reason,0)}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:[(0,i.formatMoney)(e.cost)," cr"]}),!d&&(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,c.Button,{icon:"check",color:"good",onClick:function(){return r("approve",{id:e.id})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"times",color:"bad",onClick:function(){return r("deny",{id:e.id})}})]})]},e.id)}))})]})},m=function(e,t){var n=(0,a.useBackend)(t),r=n.act,l=n.data,d=l.requestonly,u=l.cart||[],s=u.reduce((function(e,t){return e+t.cost}),0);return d?null:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Box,{inline:!0,mx:1,children:[0===u.length&&"Cart is empty",1===u.length&&"1 item",u.length>=2&&u.length+" items"," ",s>0&&"("+(0,i.formatMoney)(s)+" cr)"]}),(0,o.createComponentVNode)(2,c.Button,{icon:"times",color:"transparent",content:"Clear",onClick:function(){return r("clear")}})],4)},p=function(e,t){var n=(0,a.useBackend)(t),r=n.act,l=n.data,d=l.requestonly,u=l.away,s=l.docked,p=l.location,C=l.cart||[];return(0,o.createComponentVNode)(2,c.Section,{title:"Current Cart",buttons:(0,o.createComponentVNode)(2,m),children:[0===C.length&&(0,o.createComponentVNode)(2,c.Box,{color:"label",children:"Nothing in cart"}),C.length>0&&(0,o.createComponentVNode)(2,c.Table,{children:C.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,color:"label",children:["#",e.id]}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.object}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,children:!!e.paid&&(0,o.createVNode)(1,"b",null,"[Paid Privately]",16)}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:[(0,i.formatMoney)(e.cost)," cr"]}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,c.Button,{icon:"minus",onClick:function(){return r("remove",{id:e.id})}})})]},e.id)}))}),C.length>0&&!d&&(0,o.createComponentVNode)(2,c.Box,{mt:2,children:1===u&&1===s&&(0,o.createComponentVNode)(2,c.Button,{color:"green",style:{"line-height":"28px",padding:"0 12px"},content:"Confirm the order",onClick:function(){return r("send")}})||(0,o.createComponentVNode)(2,c.Box,{opacity:.5,children:["Shuttle in ",p,"."]})})]})}},96291:function(e,t,n){"use strict";t.__esModule=!0,t.CargoBountyConsole=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(58083),i=n(85952);t.CargoBountyConsole=function(e,t){var n=(0,r.useBackend)(t),c=n.act,d=n.data.bountydata,u=void 0===d?[]:d;return(0,o.createComponentVNode)(2,i.Window,{width:750,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,l),buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:"Print Bounty List",onClick:function(){return c("Print")}}),children:(0,o.createComponentVNode)(2,a.Table,{border:!0,children:[(0,o.createComponentVNode)(2,a.Table.Row,{bold:!0,italic:!0,color:"label",fontSize:1.25,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Bounty Object"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Description"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Progress"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Value"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Claim"})]}),u.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{backgroundColor:1===e.priority?"rgba(252, 152, 3, 0.25)":"",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{italic:!0,textAlign:"center",p:1,children:e.description}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,textAlign:"center",children:[1===e.priority?(0,o.createComponentVNode)(2,a.Box,{children:"High Priority"}):"",e.completion_string]}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,textAlign:"center",children:e.reward_string}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",icon:1===e.claimed?"check":"",content:1===e.claimed?"Claimed":"Claim",disabled:1===e.claimed,color:1===e.can_claim?"green":"red",onClick:function(){return c("ClaimBounty",{bounty:e.bounty_ref})}})})]},e.name)}))]})})})})};var l=function(e,t){var n=(0,r.useBackend)(t),i=(n.act,n.data.stored_cash);return(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i,format:function(e){return(0,c.formatMoney)(e)}})," credits"]})}},69941:function(e,t,n){"use strict";t.__esModule=!0,t.CargoExpress=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=n(5758),l=n(21451);t.CargoExpress=function(e,t){var n=(0,r.useBackend)(t),a=(n.act,n.data);return(0,o.createComponentVNode)(2,c.Window,{width:600,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,l.InterfaceLockNoticeBox,{accessText:"a QM-level ID card"}),!a.locked&&(0,o.createComponentVNode)(2,d)]})})};var d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Cargo Express",buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:Math.round(l.points)})," credits"]}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Landing Location",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Cargo Bay",selected:!l.usingBeacon,onClick:function(){return c("LZCargo")}}),(0,o.createComponentVNode)(2,a.Button,{selected:l.usingBeacon,disabled:!l.hasBeacon,onClick:function(){return c("LZBeacon")},children:[l.beaconzone," (",l.beaconName,")"]}),(0,o.createComponentVNode)(2,a.Button,{content:l.printMsg,disabled:!l.canBuyBeacon,onClick:function(){return c("printBeacon")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Notice",children:l.message})]})}),(0,o.createComponentVNode)(2,i.CargoCatalog,{express:!0})],4)}},62292:function(e,t,n){"use strict";t.__esModule=!0,t.CargoHoldTerminal=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.CargoHoldTerminal=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.points,u=l.pad,s=l.sending,m=l.status_report;return(0,o.createComponentVNode)(2,c.Window,{width:600,height:230,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Cargo Value",children:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:Math.round(d)})," credits"]})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cargo Pad",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Recalculate Value",disabled:!u,onClick:function(){return i("recalc")}}),(0,o.createComponentVNode)(2,a.Button,{icon:s?"times":"arrow-up",content:s?"Stop Sending":"Send Goods",selected:s,disabled:!u,onClick:function(){return i(s?"stop":"send")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:u?"good":"bad",children:u?"Online":"Not Found"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cargo Report",children:m})]})})]})})}},27173:function(e,t,n){"use strict";t.__esModule=!0,t.CellularEmporium=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.CellularEmporium=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.abilities;return(0,o.createComponentVNode)(2,c.Window,{width:900,height:480,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Genetic Points",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"undo",content:"Readapt",disabled:!l.can_readapt,onClick:function(){return i("readapt")}}),children:l.genetic_points_remaining})})}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:d.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{className:"candystripe",label:e.name,buttons:(0,o.createFragment)([e.dna_cost," ",(0,o.createComponentVNode)(2,a.Button,{content:e.owned?"Evolved":"Evolve",selected:e.owned,onClick:function(){return i("evolve",{name:e.name})}})],0),children:[e.desc,(0,o.createComponentVNode)(2,a.Box,{color:"good",children:e.helptext})]},e.name)}))})})]})})}},26726:function(e,t,n){"use strict";t.__esModule=!0,t.CentcomPodLauncherContent=t.CentcomPodLauncher=void 0;var o=n(39812),r=(n(2497),n(71494)),a=n(74814),c=n(85952);t.CentcomPodLauncher=function(){return(0,o.createComponentVNode)(2,c.Window,{title:"Config/Launch Supply Pod",width:700,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.NoticeBox,{children:"To use this, simply spawn the atoms you want in one of the five Centcom Supplypod Bays. Items in the bay will then be launched inside your supplypod, one turf-full at a time! You can optionally use the following buttons to configure how the supplypod acts."}),(0,o.createComponentVNode)(2,a.Section,{title:"Centcom Pod Customization (To be used against Helen Weinstein)",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Supply Bay",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Bay #1",selected:1===i.bayNumber,onClick:function(){return c("bay1")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Bay #2",selected:2===i.bayNumber,onClick:function(){return c("bay2")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Bay #3",selected:3===i.bayNumber,onClick:function(){return c("bay3")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Bay #4",selected:4===i.bayNumber,onClick:function(){return c("bay4")}}),(0,o.createComponentVNode)(2,a.Button,{content:"ERT Bay",selected:5===i.bayNumber,tooltip:"This bay is located on the western edge of CentCom. Its the\nglass room directly west of where ERT spawn, and south of the\nCentCom ferry. Useful for launching ERT/Deathsquads/etc. onto\nthe station via drop pods.",onClick:function(){return c("bay5")}})]}),!!i.effectReverse&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Reverse Drop",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Pick Dropoff Location",selected:i.picking_dropoff_turf,disabled:!i.effectReverse,tooltip:"[NOTE: ONLY WORKS WHEN REVERSE MODE IS ACTIVE]\nThis will allow you to select a dropoff turf. After\nselecting a turf, any pod in 'Reverse Mode' will drop off\nit's newly gotten cargo on this turf. Can be used to\ntransport things or people around the station in a neat,\nIC way. Try doing this with the 'Seethrough Pod' style\nenabled for extra fun!",onClick:function(){return c("pickDropoffTurf")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Clear Dropoff Location",disabled:!i.dropoff_turf,tooltip:"Clears the selected dropoff turf for reverse mode.",onClick:function(){return c("clearDropoffTurf")}}),(0,o.createVNode)(1,"p",null,[(0,o.createTextVNode)("Reverse Drop-off Location:"),i.dropoff_turf?i.dropoff_turf:"None"],0)]}),!i.effectReverse&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Reverse Drop",children:(0,o.createVNode)(1,"p",null,"[Enable Reverse Mode for this feature]",16)}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Teleport to",children:[(0,o.createComponentVNode)(2,a.Button,{content:i.bay,onClick:function(){return c("teleportCentcom")}}),(0,o.createComponentVNode)(2,a.Button,{content:i.oldArea?i.oldArea:"Where you were",disabled:!i.oldArea,onClick:function(){return c("teleportBack")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Item Mode",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Clone Items",selected:i.launchClone,tooltip:"Choosing this will create a duplicate of the item to be\nlaunched in Centcom, allowing you to send one type of item\nmultiple times. Either way, the atoms are forceMoved into\nthe supplypod after it lands (but before it opens).",onClick:function(){return c("launchClone")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Random Items",selected:i.launchRandomItem,tooltip:"Choosing this will pick a random item from the selected turf\ninstead of the entire turfs contents. Best combined with\nsingle/random turf.",onClick:function(){return c("launchRandomItem")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Launch style",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Ordered",selected:1===i.launchChoice,tooltip:'Instead of launching everything in the bay at once, this\nwill "scan" things (one turf-full at a time) in order, left\nto right and top to bottom. undoing will reset the "scanner"\nto the top-leftmost position.',onClick:function(){return c("launchOrdered")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Random Turf",selected:2===i.launchChoice,tooltip:"Instead of launching everything in the bay at once, this\nwill launch one random turf of items at a time.",onClick:function(){return c("launchRandomTurf")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Explosion",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Size",selected:1===i.explosionChoice,tooltip:"This will cause an explosion of whatever size you like\n(including flame range) to occur as soon as the supplypod\nlands. Dont worry, supply-pods are explosion-proof!",onClick:function(){return c("explosionCustom")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Adminbus",selected:2===i.explosionChoice,tooltip:"This will cause a maxcap explosion (dependent on server\nconfig) to occur as soon as the supplypod lands. Dont worry,\nsupply-pods are explosion-proof!",onClick:function(){return c("explosionBus")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Damage",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Damage",selected:1===i.damageChoice,tooltip:"Anyone caught under the pod when it lands will be dealt\nthis amount of brute damage. Sucks to be them!",onClick:function(){return c("damageCustom")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Gib",selected:2===i.damageChoice,tooltip:"This will attempt to gib any mob caught under the pod when\nit lands, as well as dealing a nice 5000 brute damage. Ya\nknow, just to be sure!",onClick:function(){return c("damageGib")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Effects",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Projectile Cloud",selected:i.effectShrapnel,tooltip:"This will create a cloud of shrapnel on landing,\nof any projectile you'd like!",onClick:function(){return c("effectShrapnel")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Stun",selected:i.effectStun,tooltip:"Anyone who is on the turf when the supplypod is launched\nwill be stunned until the supplypod lands. They cant get\naway that easy!",onClick:function(){return c("effectStun")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Delimb",selected:i.effectLimb,tooltip:"This will cause anyone caught under the pod to lose a limb,\nexcluding their head.",onClick:function(){return c("effectLimb")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Yeet Organs",selected:i.effectOrgans,tooltip:"This will cause anyone caught under the pod to lose all\ntheir limbs and organs in a spectacular fashion.",onClick:function(){return c("effectOrgans")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Movement",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Bluespace",selected:i.effectBluespace,tooltip:"Gives the supplypod an advanced Bluespace Recyling Device.\nAfter opening, the supplypod will be warped directly to the\nsurface of a nearby NT-designated trash planet (/r/ss13).",onClick:function(){return c("effectBluespace")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Stealth",selected:i.effectStealth,tooltip:'This hides the red target icon from appearing when you\nlaunch the supplypod. Combos well with the "Invisible"\nstyle. Sneak attack, go!',onClick:function(){return c("effectStealth")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Quiet",selected:i.effectQuiet,tooltip:"This will keep the supplypod from making any sounds, except\nfor those specifically set by admins in the Sound section.",onClick:function(){return c("effectQuiet")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Reverse Mode",selected:i.effectReverse,tooltip:"This pod will not send any items. Instead, after landing,\nthe supplypod will close (similar to a normal closet closing),\nand then launch back to the right centcom bay to drop off any\nnew contents.",onClick:function(){return c("effectReverse")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Missile Mode",selected:i.effectMissile,tooltip:"This pod will not send any items. Instead, it will immediately\ndelete after landing (Similar visually to setting openDelay\n& departDelay to 0, but this looks nicer). Useful if you just\nwanna fuck some shit up. Combos well with the Missile style.",onClick:function(){return c("effectMissile")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Any Descent Angle",selected:i.effectCircle,tooltip:"This will make the supplypod come in from any angle. Im not\nsure why this feature exists, but here it is.",onClick:function(){return c("effectCircle")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Machine Gun Mode",selected:i.effectBurst,tooltip:"This will make each click launch 5 supplypods inaccuratly\naround the target turf (a 3x3 area). Combos well with the\nMissile Mode if you dont want shit lying everywhere after.",onClick:function(){return c("effectBurst")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Specific Target",selected:i.effectTarget,tooltip:"This will make the supplypod target a specific atom, instead\nof the mouses position. Smiting does this automatically!",onClick:function(){return c("effectTarget")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name/Desc",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Name/Desc",selected:i.effectName,tooltip:"Allows you to add a custom name and description.",onClick:function(){return c("effectName")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Alert Ghosts",selected:i.effectAnnounce,tooltip:"Alerts ghosts when a pod is launched. Useful if some dumb\nshit is aboutta come outta the pod.",onClick:function(){return c("effectAnnounce")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Sound",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Falling Sound",selected:i.fallingSound,tooltip:"Choose a sound to play as the pod falls. Note that for this\nto work right you should know the exact length of the sound,\nin seconds.",onClick:function(){return c("fallSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Landing Sound",selected:i.landingSound,tooltip:"Choose a sound to play when the pod lands.",onClick:function(){return c("landingSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Opening Sound",selected:i.openingSound,tooltip:"Choose a sound to play when the pod opens.",onClick:function(){return c("openingSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Leaving Sound",selected:i.leavingSound,tooltip:"Choose a sound to play when the pod departs (whether that be\ndelection in the case of a bluespace pod, or leaving for\ncentcom for a reversing pod).",onClick:function(){return c("leavingSound")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Admin Sound Volume",selected:i.soundVolume,tooltip:"Choose the volume for the sound to play at. Default values\nare between 1 and 100, but hey, do whatever. Im a tooltip,\nnot a cop.",onClick:function(){return c("soundVolume")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Timers",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Custom Falling Duration",selected:4!==i.fallDuration,tooltip:"Set how long the animation for the pod falling lasts. Create\ndramatic, slow falling pods!",onClick:function(){return c("fallDuration")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Landing Time",selected:20!==i.landingDelay,tooltip:"Choose the amount of time it takes for the supplypod to hit\nthe station. By default this value is 0.5 seconds.",onClick:function(){return c("landingDelay")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Opening Time",selected:30!==i.openingDelay,tooltip:"Choose the amount of time it takes for the supplypod to open\nafter landing. Useful for giving whatevers inside the pod a\nnice dramatic entrance! By default this value is 3 seconds.",onClick:function(){return c("openingDelay")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Custom Leaving Time",selected:30!==i.departureDelay,tooltip:"Choose the amount of time it takes for the supplypod to leave\nafter landing. By default this value is 3 seconds.",onClick:function(){return c("departureDelay")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Style",children:[(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.styleChoice,tooltip:"Same color scheme as the normal station-used supplypods",onClick:function(){return c("styleStandard")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.styleChoice,tooltip:"The same as the stations upgraded blue-and-white\nBluespace Supplypods",onClick:function(){return c("styleBluespace")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Syndicate",selected:4===i.styleChoice,tooltip:"A menacing black and blood-red. Great for sending meme-ops\nin style!",onClick:function(){return c("styleSyndie")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Deathsquad",selected:5===i.styleChoice,tooltip:"A menacing black and dark blue. Great for sending deathsquads\nin style!",onClick:function(){return c("styleBlue")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Cult Pod",selected:6===i.styleChoice,tooltip:"A blood and rune covered cult pod!",onClick:function(){return c("styleCult")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Missile",selected:7===i.styleChoice,tooltip:"A large missile. Combos well with a missile mode, so the\nmissile doesnt stick around after landing.",onClick:function(){return c("styleMissile")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Syndicate Missile",selected:8===i.styleChoice,tooltip:"A large blood-red missile. Combos well with missile mode,\nso the missile doesnt stick around after landing.",onClick:function(){return c("styleSMissile")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Supply Crate",selected:9===i.styleChoice,tooltip:"A large, dark-green military supply crate.",onClick:function(){return c("styleBox")}}),(0,o.createComponentVNode)(2,a.Button,{content:"HONK",selected:10===i.styleChoice,tooltip:"A colorful, clown inspired look.",onClick:function(){return c("styleHONK")}}),(0,o.createComponentVNode)(2,a.Button,{content:"~Fruit",selected:11===i.styleChoice,tooltip:"For when an orange is angry",onClick:function(){return c("styleFruit")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Invisible",selected:12===i.styleChoice,tooltip:'Makes the supplypod invisible! Useful for when you want to\nuse this feature with a gateway or something. Combos well\nwith the "Stealth" and "Quiet Landing" effects.',onClick:function(){return c("styleInvisible")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Show Contents (See Through Pod)",selected:14===i.styleChoice,tooltip:"By selecting this, the pod will instead look like whatevers\ninside it (as if it were the contents falling by themselves,\nwithout a pod). Useful for launching mechs at the station\nand standing tall as they soar in from the heavens.",onClick:function(){return c("styleSeeThrough")}})]})]})}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:i.numObjects+" turfs in "+i.bay,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"undo Pod Bay",tooltip:"Manually undoes the possible things to launch in the\npod bay.",onClick:function(){return c("undo")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Enter Launch Mode",selected:i.giveLauncher,tooltip:"THE CODEX ASTARTES CALLS THIS MANEUVER: STEEL RAIN",onClick:function(){return c("giveLauncher")}}),(0,o.createComponentVNode)(2,a.Button,{content:"Clear Selected Bay",color:"bad",tooltip:"This will delete all objs and mobs from the selected bay.",tooltipPosition:"left",onClick:function(){return c("clearBay")}})],4)})})})],4)};t.CentcomPodLauncherContent=i},8663:function(e,t,n){"use strict";t.__esModule=!0,t.ChemAcclimator=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.ChemAcclimator=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:320,height:271,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Acclimator",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Temperature",children:[l.chem_temp," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Temperature",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:l.target_temperature,unit:"K",width:"59px",minValue:0,maxValue:1e3,step:5,stepPixelSize:2,onChange:function(e,t){return i("set_target_temperature",{temperature:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Acceptable Temp. Difference",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:l.allowed_temperature_difference,unit:"K",width:"59px",minValue:1,maxValue:l.target_temperature,stepPixelSize:2,onChange:function(e,t){i("set_allowed_temperature_difference",{temperature:t})}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:l.enabled?"On":"Off",selected:l.enabled,onClick:function(){return i("toggle_power")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Volume",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:l.max_volume,unit:"u",width:"50px",minValue:l.reagent_volume,maxValue:200,step:2,stepPixelSize:2,onChange:function(e,t){return i("change_volume",{volume:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Operation",children:l.acclimate_state}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current State",children:l.emptying?"Emptying":"Filling"})]})})]})})}},76900:function(e,t,n){"use strict";t.__esModule=!0,t.ChemDebugSynthesizer=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.ChemDebugSynthesizer=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.amount,u=l.beakerCurrentVolume,s=l.beakerMaxVolume,m=l.isBeakerLoaded,p=l.beakerContents,C=void 0===p?[]:p;return(0,o.createComponentVNode)(2,c.Window,{width:390,height:330,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:"Recipient",buttons:m?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return i("ejectBeaker")}}),(0,o.createComponentVNode)(2,a.NumberInput,{value:d,unit:"u",minValue:1,maxValue:s,step:1,stepPixelSize:2,onChange:function(e,t){return i("amount",{amount:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Input",onClick:function(){return i("input")}})],4):(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Create Beaker",onClick:function(){return i("makecup")}}),children:m?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u})," / "+s+" u"]}),C.length>0?(0,o.createComponentVNode)(2,a.LabeledList,{children:C.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:[e.volume," u"]},e.name)}))}):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Recipient Empty"})],0):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No Recipient"})})})})}},22223:function(e,t,n){"use strict";t.__esModule=!0,t.ChemDispenser=void 0;var o=n(39812),r=n(41860),a=n(2497),c=n(71494),i=n(74814),l=n(85952);t.ChemDispenser=function(e,t){var n=(0,c.useBackend)(t),d=n.act,u=n.data,s=!!u.recordingRecipe,m=Object.keys(u.recipes).map((function(e){return{name:e,contents:u.recipes[e]}})),p=u.beakerTransferAmounts||[],C=s&&Object.keys(u.recordingRecipe).map((function(e){return{id:e,name:(0,a.toTitleCase)(e.replace(/_/," ")),volume:u.recordingRecipe[e]}}))||u.beakerContents||[];return(0,o.createComponentVNode)(2,l.Window,{width:565,height:620,resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,i.Section,{title:"Status",buttons:s&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,mx:1,color:"red",children:[(0,o.createComponentVNode)(2,i.Icon,{name:"circle",mr:1}),"Recording"]}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Energy",children:(0,o.createComponentVNode)(2,i.ProgressBar,{value:u.energy/u.maxEnergy,children:(0,r.toFixed)(u.energy)+" units"})})})}),(0,o.createComponentVNode)(2,i.Section,{title:"Recipes",buttons:(0,o.createFragment)([!s&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,mx:1,children:(0,o.createComponentVNode)(2,i.Button,{color:"transparent",content:"Clear recipes",onClick:function(){return d("clear_recipes")}})}),!s&&(0,o.createComponentVNode)(2,i.Button,{icon:"circle",disabled:!u.isBeakerLoaded,content:"Record",onClick:function(){return d("record_recipe")}}),s&&(0,o.createComponentVNode)(2,i.Button,{icon:"ban",color:"transparent",content:"Discard",onClick:function(){return d("cancel_recording")}}),s&&(0,o.createComponentVNode)(2,i.Button,{icon:"save",color:"green",content:"Save",onClick:function(){return d("save_recording")}})],0),children:(0,o.createComponentVNode)(2,i.Box,{mr:-1,children:[m.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"tint",width:"129.5px",lineHeight:1.75,content:e.name,onClick:function(){return d("dispense_recipe",{recipe:e.name})}},e.name)})),0===m.length&&(0,o.createComponentVNode)(2,i.Box,{color:"light-gray",children:"No recipes."})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Dispense",buttons:p.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"plus",selected:e===u.amount,content:e,onClick:function(){return d("amount",{target:e})}},e)})),children:(0,o.createComponentVNode)(2,i.Box,{mr:-1,children:u.chemicals.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"tint",width:"129.5px",lineHeight:1.75,content:e.title,onClick:function(){return d("dispense",{reagent:e.id})}},e.id)}))})}),(0,o.createComponentVNode)(2,i.Section,{title:"Beaker",buttons:p.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{icon:"minus",disabled:s,content:e,onClick:function(){return d("remove",{amount:e})}},e)})),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Beaker",buttons:!!u.isBeakerLoaded&&(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",disabled:!u.isBeakerLoaded,onClick:function(){return d("eject")}}),children:(s?"Virtual beaker":u.isBeakerLoaded&&(0,o.createFragment)([(0,o.createComponentVNode)(2,i.AnimatedNumber,{initial:0,value:u.beakerCurrentVolume}),(0,o.createTextVNode)("/"),u.beakerMaxVolume,(0,o.createTextVNode)(" units")],0))||"No beaker"}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Contents",children:[(0,o.createComponentVNode)(2,i.Box,{color:"label",children:u.isBeakerLoaded||s?0===C.length&&"Nothing":"N/A"}),C.map((function(e){return(0,o.createComponentVNode)(2,i.Box,{color:"label",children:[(0,o.createComponentVNode)(2,i.AnimatedNumber,{initial:0,value:e.volume})," ","units of ",e.name]},e.name)}))]})]})})]})})}},16610:function(e,t,n){"use strict";t.__esModule=!0,t.ChemFilter=t.ChemFilterPane=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=function(e,t){var n=(0,r.useBackend)(t).act,c=e.title,i=e.list,l=e.reagentName,d=e.onReagentInput,u=c.toLowerCase();return(0,o.createComponentVNode)(2,a.Section,{title:c,minHeight:"240px",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Input,{placeholder:"Reagent",width:"140px",onInput:function(e,t){return d(t)}}),(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"plus",onClick:function(){return n("add",{which:u,name:l})}})],4),children:i.map((function(e){return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"minus",content:e,onClick:function(){return n("remove",{which:u,reagent:e})}})],4,e)}))})};t.ChemFilterPane=i;t.ChemFilter=function(e,t){var n=(0,r.useBackend)(t),l=(n.act,n.data),d=l.left,u=void 0===d?[]:d,s=l.right,m=void 0===s?[]:s,p=(0,r.useLocalState)(t,"leftName",""),C=p[0],h=p[1],N=(0,r.useLocalState)(t,"rightName",""),V=N[0],b=N[1];return(0,o.createComponentVNode)(2,c.Window,{width:500,height:300,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,i,{title:"Left",list:u,reagentName:C,onReagentInput:function(e){return h(e)}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,i,{title:"Right",list:m,reagentName:V,onReagentInput:function(e){return b(e)}})})]})})})}},96479:function(e,t,n){"use strict";t.__esModule=!0,t.ChemHeater=void 0;var o=n(39812),r=n(41860),a=n(71494),c=n(74814),i=n(85952),l=n(48229);t.ChemHeater=function(e,t){var n=(0,a.useBackend)(t),d=n.act,u=n.data,s=u.targetTemp,m=u.isActive,p=u.isBeakerLoaded,C=u.currentTemp,h=u.beakerCurrentVolume,N=u.beakerMaxVolume,V=u.beakerContents,b=void 0===V?[]:V;u.currentpH;return(0,o.createComponentVNode)(2,i.Window,{width:300,height:320,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{title:"Thermostat",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:m?"power-off":"times",selected:m,content:m?"On":"Off",onClick:function(){return d("power")}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Target",children:(0,o.createComponentVNode)(2,c.NumberInput,{width:"65px",unit:"K",step:10,stepPixelSize:3,value:(0,r.round)(s),minValue:0,maxValue:1e3,onDrag:function(e,t){return d("temperature",{target:t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Reading",children:(0,o.createComponentVNode)(2,c.Box,{width:"60px",textAlign:"right",children:p&&(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:C,format:function(e){return(0,r.toFixed)(e)+" K"}})||"\u2014"})})]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Beaker",buttons:!!p&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"label",mr:2,children:[h," / ",N," units,",u.currentpH," pH"]}),(0,o.createComponentVNode)(2,c.Button,{icon:"eject",content:"Eject",onClick:function(){return d("eject")}})],4),children:(0,o.createComponentVNode)(2,l.BeakerContents,{beakerLoaded:p,beakerContents:b})})]})})}},34859:function(e,t,n){"use strict";t.__esModule=!0,t.ChemMaster=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.ChemMaster=function(e,t){var n=(0,r.useBackend)(t).data.screen;return(0,o.createComponentVNode)(2,c.Window,{width:465,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:"analyze"===n&&(0,o.createComponentVNode)(2,m)||(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,u=i.screen,p=i.beakerContents,C=void 0===p?[]:p,h=i.bufferContents,N=void 0===h?[]:h,V=i.beakerCurrentVolume,b=i.beakerMaxVolume,f=i.isBeakerLoaded,g=i.isPillBottleLoaded,v=i.pillBottleCurrentAmount,k=i.pillBottleMaxAmount;return"analyze"===u?(0,o.createComponentVNode)(2,m):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Beaker",buttons:!!i.isBeakerLoaded&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:2,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:V,initial:0})," / "+b+" units"]}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return c("eject")}})],4),children:[!f&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"3px",mb:"5px",children:"No beaker loaded."}),!!f&&0===C.length&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"3px",mb:"5px",children:"Beaker is empty."}),(0,o.createComponentVNode)(2,l,{children:C.map((function(e){return(0,o.createComponentVNode)(2,d,{chemical:e,transferTo:"buffer"},e.id)}))})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Buffer",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:1,children:"Mode:"}),(0,o.createComponentVNode)(2,a.Button,{color:i.mode?"good":"bad",icon:i.mode?"exchange-alt":"times",content:i.mode?"Transfer":"Destroy",onClick:function(){return c("toggleMode")}})],4),children:[0===N.length&&(0,o.createComponentVNode)(2,a.Box,{color:"label",mt:"3px",mb:"5px",children:"Buffer is empty."}),(0,o.createComponentVNode)(2,l,{children:N.map((function(e){return(0,o.createComponentVNode)(2,d,{chemical:e,transferTo:"beaker"},e.id)}))})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Packaging",children:(0,o.createComponentVNode)(2,s)}),!!g&&(0,o.createComponentVNode)(2,a.Section,{title:"Pill Bottle",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:2,children:[v," / ",k," pills"]}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return c("ejectPillBottle")}})],4)})],0)},l=a.Table,d=function(e,t){var n=(0,r.useBackend)(t).act,c=e.chemical,i=e.transferTo;return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{color:"label",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c.volume,initial:0})," units of "+c.name]}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,a.Button,{content:"1",onClick:function(){return n("transfer",{id:c.id,amount:1,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{content:"5",onClick:function(){return n("transfer",{id:c.id,amount:5,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{content:"10",onClick:function(){return n("transfer",{id:c.id,amount:10,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{content:"All",onClick:function(){return n("transfer",{id:c.id,amount:1e3,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"ellipsis-h",title:"Custom amount",onClick:function(){return n("transfer",{id:c.id,amount:-1,to:i})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"question",title:"Analyze",onClick:function(){return n("analyze",{id:c.id})}})]})]},c.id)},u=function(e){var t=e.label,n=e.amountUnit,r=e.amount,c=e.onChangeAmount,i=e.onCreate,l=e.sideNote;return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:t,children:[(0,o.createComponentVNode)(2,a.NumberInput,{width:"84px",unit:n,step:1,stepPixelSize:15,value:r,minValue:1,maxValue:10,onChange:c}),(0,o.createComponentVNode)(2,a.Button,{ml:1,content:"Create",onClick:i}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,ml:1,color:"label",children:l})]})},s=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=(0,r.useSharedState)(t,"pillAmount",1),d=l[0],s=l[1],m=(0,r.useSharedState)(t,"patchAmount",1),p=m[0],C=m[1],h=(0,r.useSharedState)(t,"bottleAmount",1),N=h[0],V=h[1],b=(0,r.useSharedState)(t,"packAmount",1),f=b[0],g=b[1],v=(0,r.useSharedState)(t,"setstimpakAmount",1),k=v[0],x=v[1],B=(0,r.useSharedState)(t,"setsuperstimpakAmount",1),_=B[0],w=B[1],L=(0,r.useSharedState)(t,"setPowderbagAmount",1),y=L[0],S=L[1],I=(0,r.useSharedState)(t,"setprimitiveBottleAmount",1),T=I[0],A=I[1],P=i.condi,R=i.advanced,M=i.primitive,F=i.chosenPillStyle,D=i.pillStyles,j=void 0===D?[]:D;return(0,o.createComponentVNode)(2,a.LabeledList,{children:[!P&&!M&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pill type",children:j.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{width:"30px",selected:e.id===F,textAlign:"center",color:"transparent",onClick:function(){return c("pillStyle",{id:e.id})},children:(0,o.createComponentVNode)(2,a.Box,{mx:-1,className:e.className})},e.id)}))}),!P&&!M&&(0,o.createComponentVNode)(2,u,{label:"Pills",amount:d,amountUnit:"pills",sideNote:"max 50u",onChangeAmount:function(e,t){return s(t)},onCreate:function(){return c("create",{type:"pill",amount:d,volume:"auto"})}}),!P&&!!R&&!M&&(0,o.createComponentVNode)(2,u,{label:"Patches",amount:p,amountUnit:"patches",sideNote:"max 40u",onChangeAmount:function(e,t){return C(t)},onCreate:function(){return c("create",{type:"patch",amount:p,volume:"auto"})}}),!P&&!M&&(0,o.createComponentVNode)(2,u,{label:"Bottles",amount:N,amountUnit:"bottles",sideNote:"max 30u",onChangeAmount:function(e,t){return V(t)},onCreate:function(){return c("create",{type:"bottle",amount:N,volume:"auto"})}}),!P&&!M&&(0,o.createComponentVNode)(2,u,{label:"Stimpaks",amount:k,amountUnit:"stimpaks",sideNote:"max 10u",onChangeAmount:function(e,t){return x(t)},onCreate:function(){return c("create",{type:"stimPak",amount:k,volume:"auto"})}}),!P&&!!R&&!M&&(0,o.createComponentVNode)(2,u,{label:"Super Stimpaks",amount:_,amountUnit:"super stimpaks",sideNote:"max 20u",onChangeAmount:function(e,t){return w(t)},onCreate:function(){return c("create",{type:"superStimpak",amount:_,volume:"auto"})}}),!!P&&(0,o.createComponentVNode)(2,u,{label:"Packs",amount:f,amountUnit:"packs",sideNote:"max 10u",onChangeAmount:function(e,t){return g(t)},onCreate:function(){return c("create",{type:"condimentPack",amount:f,volume:"auto"})}}),!!P&&(0,o.createComponentVNode)(2,u,{label:"Bottles",amount:N,amountUnit:"bottles",sideNote:"max 50u",onChangeAmount:function(e,t){return V(t)},onCreate:function(){return c("create",{type:"condimentBottle",amount:N,volume:"auto"})}}),!!M&&(0,o.createComponentVNode)(2,u,{label:"Powder Bag",amount:p,amountUnit:"powderbags",sideNote:"max 40u",onChangeAmount:function(e,t){return S(t)},onCreate:function(){return c("create",{type:"bag",amount:y,volume:"auto"})}}),!!M&&(0,o.createComponentVNode)(2,u,{label:"Primitive Bottles",amount:N,amountUnit:"bottles",sideNote:"max 60u",onChangeAmount:function(e,t){return A(t)},onCreate:function(){return c("create",{type:"bottle_primitive",amount:T,volume:"auto"})}})]})},m=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=e.fermianalyze,d=i.analyzeVars;return(0,o.createComponentVNode)(2,a.Section,{title:"Analysis Results",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"Back",onClick:function(){return c("goScreen",{screen:"home"})}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:d.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",children:d.state}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Color",children:[(0,o.createComponentVNode)(2,a.ColorBox,{color:d.color,mr:1}),d.color]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:d.description}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Metabolization Rate",children:[d.metaRate," u/minute"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Overdose Threshold",children:d.overD}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Addiction Threshold",children:d.addicD}),!!l&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Purity",children:d.purityF}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Inverse Ratio",children:d.inverseRatioF}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Purity E",children:d.purityE}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Lower Optimal Temperature",children:d.minTemp}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Upper Optimal Temperature",children:d.maxTemp}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Explosive Temperature",children:d.eTemp}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"pH Peak",children:d.pHpeak})],4)]})})}},56320:function(e,t,n){"use strict";t.__esModule=!0,t.ChemPress=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.ChemPress=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.current_volume,u=l.product_name,s=l.pill_style,m=l.pill_styles,p=void 0===m?[]:m,C=l.product,h=l.min_volume,N=l.max_volume;return(0,o.createComponentVNode)(2,c.Window,{width:300,height:227,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Product",children:[(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:"Pills",checked:"pill"===C,onClick:function(){return i("change_product",{product:"pill"})}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:"Patches",checked:"patch"===C,onClick:function(){return i("change_product",{product:"patch"})}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:"Bottles",checked:"bottle"===C,onClick:function(){return i("change_product",{product:"bottle"})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Volume",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:d,unit:"u",width:"43px",minValue:h,maxValue:N,step:1,stepPixelSize:2,onChange:function(e,t){return i("change_current_volume",{volume:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:[(0,o.createComponentVNode)(2,a.Input,{value:u,placeholder:u,onChange:function(e,t){return i("change_product_name",{name:t})}}),(0,o.createComponentVNode)(2,a.Box,{as:"span",children:C})]}),"pill"===C&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Style",children:p.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{width:"30px",selected:e.id===s,textAlign:"center",color:"transparent",onClick:function(){return i("change_pill_style",{id:e.id})},children:(0,o.createComponentVNode)(2,a.Box,{mx:-1,className:e.class_name})},e.id)}))})]})})})})}},52592:function(e,t,n){"use strict";t.__esModule=!0,t.ChemReactionChamber=void 0;var o=n(39812),r=n(64499),a=n(34380),c=n(71494),i=n(74814),l=n(85952);t.ChemReactionChamber=function(e,t){var n=(0,c.useBackend)(t),d=n.act,u=n.data,s=(0,c.useLocalState)(t,"reagentName",""),m=s[0],p=s[1],C=(0,c.useLocalState)(t,"reagentQuantity",1),h=C[0],N=C[1],V=u.emptying,b=u.reagents||[];return(0,o.createComponentVNode)(2,l.Window,{width:250,height:225,resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i.Section,{title:"Reagents",buttons:(0,o.createComponentVNode)(2,i.Box,{inline:!0,bold:!0,color:V?"bad":"good",children:V?"Emptying":"Filling"}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createVNode)(1,"tr","LabledList__row",[(0,o.createVNode)(1,"td","LabeledList__cell",(0,o.createComponentVNode)(2,i.Input,{fluid:!0,value:"",placeholder:"Reagent Name",onInput:function(e,t){return p(t)}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td",(0,a.classes)(["LabeledList__buttons","LabeledList__cell"]),[(0,o.createComponentVNode)(2,i.NumberInput,{value:h,minValue:1,maxValue:100,step:1,stepPixelSize:3,width:"39px",onDrag:function(e,t){return N(t)}}),(0,o.createComponentVNode)(2,i.Box,{inline:!0,mr:1}),(0,o.createComponentVNode)(2,i.Button,{icon:"plus",onClick:function(){return d("add",{chem:m,amount:h})}})],4)],4),(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:t,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"minus",color:"bad",onClick:function(){return d("remove",{chem:t})}}),children:e},t)}))(b)]})})})})}},68502:function(e,t,n){"use strict";t.__esModule=!0,t.ChemSplitter=void 0;var o=n(39812),r=n(41860),a=n(71494),c=n(74814),i=n(85952);t.ChemSplitter=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.straight,s=d.side,m=d.max_transfer;return(0,o.createComponentVNode)(2,i.Window,{width:220,height:105,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Straight",children:(0,o.createComponentVNode)(2,c.NumberInput,{value:u,unit:"u",width:"55px",minValue:1,maxValue:m,format:function(e){return(0,r.toFixed)(e,2)},step:.05,stepPixelSize:4,onChange:function(e,t){return l("set_amount",{target:"straight",amount:t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Side",children:(0,o.createComponentVNode)(2,c.NumberInput,{value:s,unit:"u",width:"55px",minValue:1,maxValue:m,format:function(e){return(0,r.toFixed)(e,2)},step:.05,stepPixelSize:4,onChange:function(e,t){return l("set_amount",{target:"side",amount:t})}})})]})})})})}},77508:function(e,t,n){"use strict";t.__esModule=!0,t.ChemSynthesizer=void 0;var o=n(39812),r=n(41860),a=n(71494),c=n(74814),i=n(85952);t.ChemSynthesizer=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.amount,s=d.current_reagent,m=d.chemicals,p=void 0===m?[]:m,C=d.possible_amounts,h=void 0===C?[]:C;return(0,o.createComponentVNode)(2,i.Window,{width:300,height:375,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,c.Section,{children:[(0,o.createComponentVNode)(2,c.Box,{children:h.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:"plus",content:(0,r.toFixed)(e,0),selected:e===u,onClick:function(){return l("amount",{target:e})}},(0,r.toFixed)(e,0))}))}),(0,o.createComponentVNode)(2,c.Box,{mt:1,children:p.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:"tint",content:e.title,width:"129px",selected:e.id===s,onClick:function(){return l("select",{reagent:e.id})}},e.id)}))})]})})})}},30733:function(e,t,n){"use strict";t.__esModule=!0,t.CivCargoHoldTerminal=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.CivCargoHoldTerminal=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.pad,s=d.sending,m=d.status_report,p=d.id_inserted,C=d.id_bounty_info;d.id_bounty_value,d.id_bounty_num;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,width:500,height:375,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.NoticeBox,{color:p?"blue":"default",children:p?"Welcome valued employee.":"To begin, insert your ID into the console."}),(0,o.createComponentVNode)(2,a.Section,{title:"Cargo Pad",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:u?"good":"bad",children:u?"Online":"Not Found"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cargo Report",children:m})]})}),(0,o.createComponentVNode)(2,i)]}),(0,o.createComponentVNode)(2,a.Flex.Item,{m:1,children:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"sync",content:"Check Contents",disabled:!u||!p,onClick:function(){return l("recalc")}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:s?"times":"arrow-up",content:s?"Stop Sending":"Send Goods",selected:s,disabled:!u||!p,onClick:function(){return l(s?"stop":"send")}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:C?"recycle":"pen",color:C?"green":"default",content:C?"Replace Bounty":"New Bounty",disabled:!p,onClick:function(){return l("bounty")}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"download",content:"Eject",disabled:!p,onClick:function(){return l("eject")}})],4)})]})})})};var i=function(e,t){var n=(0,r.useBackend)(t).data,c=n.id_bounty_info,i=n.id_bounty_value,l=n.id_bounty_num;return(0,o.createComponentVNode)(2,a.Section,{title:"Bounty Info",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:c||"N/A, please add a new bounty."}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Quantity",children:c?l:"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Value",children:c?i:"N/A"})]})})}},14319:function(e,t,n){"use strict";t.__esModule=!0,t.ClockworkSlab=void 0;for(var o=n(39812),r=n(71494),a=n(64499),c=n(74814),i=n(85952),l="",d=0;d=w,tooltip:e.tip,tooltipPosition:"left",onClick:function(){return d("recite",{script:e.type})},children:"Recite "+e.required})}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,disabled:!e.quickbind,onClick:function(){return d("bind",{script:e.type})},children:["content=",e.bound?"Unbind "+e.bound:"Quickbind"]})})]},e.name)}))})]})]})})})}},28408:function(e,t,n){"use strict";t.__esModule=!0,t.CodexGigas=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=["Dark","Hellish","Fallen","Fiery","Sinful","Blood","Fluffy"],l=["Lord","Prelate","Count","Viscount","Vizier","Elder","Adept"],d=["hal","ve","odr","neit","ci","quon","mya","folth","wren","geyr","hil","niet","twou","phi","coa"],u=["the Red","the Soulless","the Master","the Lord of all things","Jr."];t.CodexGigas=function(e,t){var n=(0,r.useBackend)(t),s=n.act,m=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:450,height:450,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:[m.name,(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Prefix",children:i.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:1!==m.currentSection,onClick:function(){return s(e+" ")}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Title",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:m.currentSection>2,onClick:function(){return s(e+" ")}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:m.currentSection>4,onClick:function(){return s(e)}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Suffix",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,disabled:4!==m.currentSection,onClick:function(){return s(" "+e)}},e.toLowerCase())}))}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Submit",children:(0,o.createComponentVNode)(2,a.Button,{content:"Search",disabled:m.currentSection<4,onClick:function(){return s("search")}})})]})]})})})}},67649:function(e,t,n){"use strict";t.__esModule=!0,t.ColormateMatrix=t.ColormateNoMatrix=t.Colormate=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.Colormate=function(e,t){var n=(0,r.useBackend)(t),d=n.act,u=n.data,s=u.matrixactive,m=u.temp,p=u.item||[];return(0,o.createComponentVNode)(2,c.Window,{width:"980",height:"720",resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{overflow:"auto",children:[m?(0,o.createComponentVNode)(2,a.NoticeBox,{children:m}):null,Object.keys(p).length?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Flex,{fill:!0,children:[(0,o.createComponentVNode)(2,a.Section,{width:"50%",height:"20%",children:[(0,o.createVNode)(1,"center",null,"Item:",16),(0,o.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64, "+p.sprite,width:"100%",height:"100%",style:{"-ms-interpolation-mode":"nearest-neighbor"}})]}),(0,o.createComponentVNode)(2,a.Section,{width:"50%",height:"20%",children:[(0,o.createVNode)(1,"center",null,"Preview:",16),(0,o.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64, "+p.preview,width:"100%",height:"100%",style:{"-ms-interpolation-mode":"nearest-neighbor"}})]})]}),(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Tabs,{fluid:!0,children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:!s,onClick:function(){return d("switch_modes",{mode:"0"})},children:"Regular coloring"},"0"),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:s,onClick:function(){return d("switch_modes",{mode:"1"})},children:"Matrixed coloring"},"1")]}),s?(0,o.createFragment)([(0,o.createVNode)(1,"center",null,[(0,o.createTextVNode)("Coloring: "),p.name],0),(0,o.createComponentVNode)(2,l)],4):(0,o.createFragment)([(0,o.createVNode)(1,"center",null,[(0,o.createTextVNode)("Coloring: "),p.name],0),(0,o.createComponentVNode)(2,i)],4)]})],4):(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createVNode)(1,"center",null,"No item inserted.",16)})]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act;n.data;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Flex,{grow:1,fill:!0,children:[(0,o.createComponentVNode)(2,a.Flex.Item,{width:"33%",children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Paint",icon:"fill",onClick:function(){return c("paint")}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Clear",icon:"eraser",onClick:function(){return c("clear")}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Eject",icon:"eject",onClick:function(){return c("drop")}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{width:"66%",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,height:"100%",content:"Select new color",icon:"paint-brush",onClick:function(){return c("choose_color")}})})]})})};t.ColormateNoMatrix=i;var l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.matrixcolors||[];return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{width:"33%",children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Paint",icon:"fill",onClick:function(){return c("matrix_paint")}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Clear",icon:"eraser",onClick:function(){return c("clear")}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Eject",icon:"eject",onClick:function(){return c("drop")}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:["RR: ",(0,o.createComponentVNode)(2,a.NumberInput,{width:"50px",minValue:-1e3,maxValue:1e3,value:i.rr,onChange:function(e,t){return c("set_matrix_color",{color:1,value:t})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:["GR: ",(0,o.createComponentVNode)(2,a.NumberInput,{width:"50px",minValue:-1e3,maxValue:1e3,value:i.gr,onChange:function(e,t){return c("set_matrix_color",{color:4,value:t})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:["BR: ",(0,o.createComponentVNode)(2,a.NumberInput,{width:"50px",minValue:-1e3,maxValue:1e3,value:i.br,onChange:function(e,t){return c("set_matrix_color",{color:7,value:t})}})]})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:["RG: ",(0,o.createComponentVNode)(2,a.NumberInput,{width:"50px",minValue:-1e3,maxValue:1e3,value:i.rg,onChange:function(e,t){return c("set_matrix_color",{color:2,value:t})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:["GG: ",(0,o.createComponentVNode)(2,a.NumberInput,{width:"50px",minValue:-1e3,maxValue:1e3,value:i.gg,onChange:function(e,t){return c("set_matrix_color",{color:5,value:t})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:["BG: ",(0,o.createComponentVNode)(2,a.NumberInput,{width:"50px",minValue:-1e3,maxValue:1e3,value:i.bg,onChange:function(e,t){return c("set_matrix_color",{color:8,value:t})}})]})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:["RB: ",(0,o.createComponentVNode)(2,a.NumberInput,{width:"50px",minValue:-1e3,maxValue:1e3,value:i.rb,onChange:function(e,t){return c("set_matrix_color",{color:3,value:t})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:["GB: ",(0,o.createComponentVNode)(2,a.NumberInput,{width:"50px",minValue:-1e3,maxValue:1e3,value:i.gb,onChange:function(e,t){return c("set_matrix_color",{color:6,value:t})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:["BB: ",(0,o.createComponentVNode)(2,a.NumberInput,{width:"50px",minValue:-1e3,maxValue:1e3,value:i.bb,onChange:function(e,t){return c("set_matrix_color",{color:9,value:t})}})]})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:["CR: ",(0,o.createComponentVNode)(2,a.NumberInput,{width:"50px",minValue:-1e3,maxValue:1e3,value:i.cr,onChange:function(e,t){return c("set_matrix_color",{color:10,value:t})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:["CG: ",(0,o.createComponentVNode)(2,a.NumberInput,{width:"50px",minValue:-1e3,maxValue:1e3,value:i.cg,onChange:function(e,t){return c("set_matrix_color",{color:11,value:t})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:["CB: ",(0,o.createComponentVNode)(2,a.NumberInput,{width:"50px",minValue:-1e3,maxValue:1e3,value:i.cb,onChange:function(e,t){return c("set_matrix_color",{color:12,value:t})}})]})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{width:"33%",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"question-circle",color:"blue"})," RG means red will become this much green.",(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Icon,{name:"question-circle",color:"blue"})," CR means that red will have this much constrast applied to it."]})]})})};t.ColormateMatrix=l},2174:function(e,t,n){"use strict";t.__esModule=!0,t.ComputerFabricator=void 0;var o=n(39812),r=(n(2497),n(71494)),a=n(74814),c=n(85952);t.ComputerFabricator=function(e,t){var n=(0,r.useBackend)(t),s=n.act,m=n.data;return(0,o.createComponentVNode)(2,c.Window,{title:"Personal Computer Vendor",width:500,height:400,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{italic:!0,fontSize:"20px",children:"Your perfect device, only three steps away..."}),0!==m.state&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mb:1,icon:"circle",content:"Clear Order",onClick:function(){return s("clean_order")}}),0===m.state&&(0,o.createComponentVNode)(2,i),1===m.state&&(0,o.createComponentVNode)(2,l),2===m.state&&(0,o.createComponentVNode)(2,d),3===m.state&&(0,o.createComponentVNode)(2,u)]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act;n.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Step 1",minHeight:"306px",children:[(0,o.createComponentVNode)(2,a.Box,{mt:5,bold:!0,textAlign:"center",fontSize:"40px",children:"Choose your Device"}),(0,o.createComponentVNode)(2,a.Box,{mt:3,children:(0,o.createComponentVNode)(2,a.Grid,{width:"100%",children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"laptop",content:"Laptop",textAlign:"center",fontSize:"30px",lineHeight:2,onClick:function(){return c("pick_device",{pick:"1"})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"tablet-alt",content:"Tablet",textAlign:"center",fontSize:"30px",lineHeight:2,onClick:function(){return c("pick_device",{pick:"2"})}})})]})})]})},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Step 2: Customize your device",minHeight:"282px",buttons:(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"good",children:[i.totalprice," cr"]}),children:[(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Battery:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Allows your device to operate without external utility power\nsource. Advanced batteries increase battery life.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_battery,onClick:function(){return c("hw_battery",{battery:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Upgraded",selected:2===i.hw_battery,onClick:function(){return c("hw_battery",{battery:"2"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:3===i.hw_battery,onClick:function(){return c("hw_battery",{battery:"3"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Hard Drive:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Stores file on your device. Advanced drives can store more\nfiles, but use more power, shortening battery life.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_disk,onClick:function(){return c("hw_disk",{disk:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Upgraded",selected:2===i.hw_disk,onClick:function(){return c("hw_disk",{disk:"2"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:3===i.hw_disk,onClick:function(){return c("hw_disk",{disk:"3"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Network Card:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Allows your device to wirelessly connect to stationwide NTNet\nnetwork. Basic cards are limited to on-station use, while\nadvanced cards can operate anywhere near the station, which\nincludes asteroid outposts",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_netcard,onClick:function(){return c("hw_netcard",{netcard:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_netcard,onClick:function(){return c("hw_netcard",{netcard:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.hw_netcard,onClick:function(){return c("hw_netcard",{netcard:"2"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Nano Printer:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"A device that allows for various paperwork manipulations,\nsuch as, scanning of documents or printing new ones.\nThis device was certified EcoFriendlyPlus and is capable of\nrecycling existing paper for printing purposes.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_nanoprint,onClick:function(){return c("hw_nanoprint",{print:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_nanoprint,onClick:function(){return c("hw_nanoprint",{print:"1"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Secondary Card Reader:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"Adds a secondary RFID card reader, for manipulating or\nreading from a second standard RFID card.\nPlease note that a primary card reader is necessary to\nallow the device to read your identification, but one\nis included in the base price.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_card,onClick:function(){return c("hw_card",{card:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_card,onClick:function(){return c("hw_card",{card:"1"})}})})]}),2!==i.devtype&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Processor Unit:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"A component critical for your device's functionality.\nIt allows you to run programs from your hard drive.\nAdvanced CPUs use more power, but allow you to run\nmore programs on background at once.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_cpu,onClick:function(){return c("hw_cpu",{cpu:"1"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Advanced",selected:2===i.hw_cpu,onClick:function(){return c("hw_cpu",{cpu:"2"})}})})]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,position:"relative",children:["Tesla Relay:",(0,o.createComponentVNode)(2,a.Tooltip,{content:"An advanced wireless power relay that allows your device\nto connect to nearby area power controller to provide\nalternative power source. This component is currently\nunavailable on tablet computers due to size restrictions.",position:"right"})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"None",selected:0===i.hw_tesla,onClick:function(){return c("hw_tesla",{tesla:"0"})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{content:"Standard",selected:1===i.hw_tesla,onClick:function(){return c("hw_tesla",{tesla:"1"})}})})]})],4)]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,mt:3,content:"Confirm Order",color:"good",textAlign:"center",fontSize:"18px",lineHeight:2,onClick:function(){return c("confirm_order")}})]})},d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Step 3: Payment",minHeight:"282px",children:[(0,o.createComponentVNode)(2,a.Box,{italic:!0,textAlign:"center",fontSize:"20px",children:"Your device is ready for fabrication..."}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:2,textAlign:"center",fontSize:"16px",children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:"Please insert the required"})," ",(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"good",children:[i.totalprice," cr"]})]}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:1,textAlign:"center",fontSize:"18px",children:"Current:"}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,mt:.5,textAlign:"center",fontSize:"18px",color:i.credits>=i.totalprice?"good":"bad",children:[i.credits," cr"]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Purchase",disabled:i.credits=10&&e<20?c.COLORS.department.security:e>=20&&e<30?c.COLORS.department.medbay:e>=30&&e<40?c.COLORS.department.science:e>=40&&e<50?c.COLORS.department.engineering:e>=50&&e<60?c.COLORS.department.cargo:e>=200&&e<230?c.COLORS.department.centcom:c.COLORS.department.other},u=function(e){var t=e.type,n=e.value;return(0,o.createComponentVNode)(2,a.Box,{inline:!0,width:2,color:c.COLORS.damageType[t],textAlign:"center",children:n})};t.CrewConsole=function(){return(0,o.createComponentVNode)(2,i.Window,{title:"Crew Monitor",width:800,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{minHeight:"540px",children:(0,o.createComponentVNode)(2,s)})})})};var s=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,s=i.sensors||[];return(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Name"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0,textAlign:"center",children:"Vitals"}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:"Position"}),!!i.link_allowed&&(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,collapsing:!0,children:"Tracking"})]}),s.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:(C=e.ijob,C%10==0),color:d(e.ijob),children:[e.name," (",e.assignment,")"]}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"center",children:(0,o.createComponentVNode)(2,a.ColorBox,{color:(t=e.oxydam,n=e.toxdam,r=e.burndam,s=e.brutedam,m=t+n+r+s,p=Math.min(Math.max(Math.ceil(m/25),0),5),l[p])})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"center",children:null!==e.oxydam?(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:[(0,o.createComponentVNode)(2,u,{type:"oxy",value:e.oxydam}),"/",(0,o.createComponentVNode)(2,u,{type:"toxin",value:e.toxdam}),"/",(0,o.createComponentVNode)(2,u,{type:"burn",value:e.burndam}),"/",(0,o.createComponentVNode)(2,u,{type:"brute",value:e.brutedam})]}):e.life_status?"Alive":"Dead"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:null!==e.pos_x?e.area:"N/A"}),!!i.link_allowed&&(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,a.Button,{content:"Track",disabled:!e.can_track,onClick:function(){return c("select_person",{name:e.name})}})})]},e.name);var t,n,r,s,m,p,C}))]})}},99798:function(e,t,n){"use strict";t.__esModule=!0,t.Cryo=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(48229),i=n(85952),l=[{label:"Brute",type:"bruteLoss"},{label:"Respiratory",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Burn",type:"fireLoss"}];t.Cryo=function(){return(0,o.createComponentVNode)(2,i.Window,{width:400,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,d)})})};var d=function(e,t){var n=(0,r.useBackend)(t),i=n.act,d=n.data;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Occupant",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Occupant",children:d.occupant.name||"No Occupant"}),!!d.hasOccupant&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",color:d.occupant.statstate,children:d.occupant.stat}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",color:d.occupant.temperaturestatus,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d.occupant.bodyTemperature})," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.occupant.health/d.occupant.maxHealth,color:d.occupant.health>0?"good":"average",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d.occupant.health})})}),l.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.occupant[e.type]/100,children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d.occupant[e.type]})})},e.id)}))],0)]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Cell",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:d.isOperating?"power-off":"times",disabled:d.isOpen,onClick:function(){return i("power")},color:d.isOperating&&"green",children:d.isOperating?"On":"Off"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Temperature",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d.cellTemperature})," K"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:[(0,o.createComponentVNode)(2,a.Button,{icon:d.isOpen?"unlock":"lock",onClick:function(){return i("door")},content:d.isOpen?"Open":"Closed"}),(0,o.createComponentVNode)(2,a.Button,{icon:d.autoEject?"sign-out-alt":"sign-in-alt",onClick:function(){return i("autoeject")},content:d.autoEject?"Auto":"Manual"})]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Beaker",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",disabled:!d.isBeakerLoaded,onClick:function(){return i("ejectbeaker")},content:"Eject"}),children:(0,o.createComponentVNode)(2,c.BeakerContents,{beakerLoaded:d.isBeakerLoaded,beakerContents:d.beakerContents})})],4)}},17785:function(e,t,n){"use strict";t.__esModule=!0,t.DecalPainter=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.DecalPainter=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.decal_list||[],u=l.color_list||[],s=l.dir_list||[];return(0,o.createComponentVNode)(2,c.Window,{width:500,height:400,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Decal Type",children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.name,selected:e.decal===l.decal_style,onClick:function(){return i("select decal",{decals:e.decal})}},e.decal)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Decal Color",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:"red"===e.colors?"Red":"white"===e.colors?"White":"Yellow",selected:e.colors===l.decal_color,onClick:function(){return i("select color",{colors:e.colors})}},e.colors)}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Decal Direction",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:1===e.dirs?"North":2===e.dirs?"South":4===e.dirs?"East":"West",selected:e.dirs===l.decal_direction,onClick:function(){return i("selected direction",{dirs:e.dirs})}},e.dirs)}))})]})})}},95877:function(e,t,n){"use strict";t.__esModule=!0,t.DisposalUnit=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.DisposalUnit=function(e,t){var n,i,l=(0,r.useBackend)(t),d=l.act,u=l.data;return u.full_pressure?(n="good",i="Ready"):u.panel_open?(n="bad",i="Power Disabled"):u.pressure_charging?(n="average",i="Pressurizing"):(n="bad",i="Off"),(0,o.createComponentVNode)(2,c.Window,{width:300,height:180,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",color:n,children:i}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.per,color:"good"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Handle",children:(0,o.createComponentVNode)(2,a.Button,{icon:u.flush?"toggle-on":"toggle-off",disabled:u.isai||u.panel_open,content:u.flush?"Disengage":"Engage",onClick:function(){return d(u.flush?"handle-0":"handle-1")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Eject",children:(0,o.createComponentVNode)(2,a.Button,{icon:"sign-out-alt",disabled:u.isai,content:"Eject Contents",onClick:function(){return d("eject")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",disabled:u.panel_open,selected:u.pressure_charging,onClick:function(){return d(u.pressure_charging?"pump-0":"pump-1")}})})]})})})})}},43928:function(e,t,n){"use strict";t.__esModule=!0,t.DnaConsoleCommands=t.DnaConsole=void 0;var o=n(39812),r=n(64499),a=n(85531),c=n(34380),i=n(2497),l=n(5908),d=n(71494),u=n(74814),s=n(85952);var m=["A","T","C","G"],p={A:"green",T:"green",G:"blue",C:"blue",X:"grey"},C="storage",h="sequencer",N="enzymes",V="console",b="disk",f="injector",g="mutations",v="chromosomes",k="mutations",x="diskenzymes",B={1:"good",2:"bad",4:"average"},_=function(e,t){return e.Alias===t.Alias&&e.AppliedChromo===t.AppliedChromo};t.DnaConsole=function(e,t){var n=(0,d.useBackend)(t),r=n.data,a=(n.act,r.isPulsingRads),c=r.radPulseSeconds,i=r.view.consoleMode;return(0,o.createComponentVNode)(2,s.Window,{title:"DNA Console",width:539,height:710,resizable:!0,children:[!!a&&(0,o.createComponentVNode)(2,u.Dimmer,{fontSize:"14px",textAlign:"center",children:[(0,o.createComponentVNode)(2,u.Icon,{mr:1,name:"spinner",spin:!0}),"Radiation pulse in progress...",(0,o.createComponentVNode)(2,u.Box,{mt:1}),c,"s"]}),(0,o.createComponentVNode)(2,s.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,w),(0,o.createComponentVNode)(2,I),i===C&&(0,o.createComponentVNode)(2,A),i===h&&(0,o.createComponentVNode)(2,D),i===N&&(0,o.createComponentVNode)(2,O)]})]})};var w=function(e,t){return(0,o.createComponentVNode)(2,u.Section,{title:"DNA Scanner",buttons:(0,o.createComponentVNode)(2,L),children:(0,o.createComponentVNode)(2,S)})},L=function(e,t){var n=(0,d.useBackend)(t),r=n.data,a=n.act,c=r.hasDelayedAction,i=r.isPulsingRads,l=r.isScannerConnected,s=r.isScrambleReady,m=r.isViableSubject,p=r.scannerLocked,C=r.scannerOpen,h=r.scrambleSeconds;return l?(0,o.createFragment)([!!c&&(0,o.createComponentVNode)(2,u.Button,{content:"Cancel Delayed Action",onClick:function(){return a("cancel_delay")}}),!!m&&(0,o.createComponentVNode)(2,u.Button,{disabled:!s||i,onClick:function(){return a("scramble_dna")},children:["Scramble DNA",!s&&" ("+h+"s)"]}),(0,o.createComponentVNode)(2,u.Box,{inline:!0,mr:1}),(0,o.createComponentVNode)(2,u.Button,{icon:p?"lock":"lock-open",color:p&&"bad",disabled:C,content:p?"Locked":"Unlocked",onClick:function(){return a("toggle_lock")}}),(0,o.createComponentVNode)(2,u.Button,{disabled:p,content:C?"Close":"Open",onClick:function(){return a("toggle_door")}})],0):(0,o.createComponentVNode)(2,u.Button,{content:"Connect Scanner",onClick:function(){return a("connect_scanner")}})},y=function(e,t){var n=e.status;return 0===n?(0,o.createComponentVNode)(2,u.Box,{inline:!0,color:"good",children:"Conscious"}):2===n?(0,o.createComponentVNode)(2,u.Box,{inline:!0,color:"average",children:"Unconscious"}):1===n?(0,o.createComponentVNode)(2,u.Box,{inline:!0,color:"average",children:"Critical"}):3===n?(0,o.createComponentVNode)(2,u.Box,{inline:!0,color:"bad",children:"Dead"}):4===n?(0,o.createComponentVNode)(2,u.Box,{inline:!0,color:"bad",children:"Transforming"}):(0,o.createComponentVNode)(2,u.Box,{inline:!0,children:"Unknown"})},S=function(e,t){var n=(0,d.useBackend)(t),r=n.data,a=(n.act,r.subjectName),c=r.isScannerConnected,i=r.isViableSubject,l=r.subjectHealth,s=r.subjectRads,m=r.subjectStatus;return c?i?(0,o.createComponentVNode)(2,u.LabeledList,{children:[(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Status",children:[a,(0,o.createComponentVNode)(2,u.Icon,{mx:1,color:"label",name:"long-arrow-alt-right"}),(0,o.createComponentVNode)(2,y,{status:m})]}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,u.ProgressBar,{value:l,minValue:0,maxValue:100,ranges:{olive:[101,Infinity],good:[70,101],average:[30,70],bad:[-Infinity,30]},children:[l,"%"]})}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Radiation",children:(0,o.createComponentVNode)(2,u.ProgressBar,{value:s,minValue:0,maxValue:100,ranges:{bad:[71,Infinity],average:[30,71],good:[0,30],olive:[-Infinity,0]},children:[s,"%"]})})]}):(0,o.createComponentVNode)(2,u.Box,{color:"average",children:"No viable subject found in DNA Scanner."}):(0,o.createComponentVNode)(2,u.Box,{color:"bad",children:"DNA Scanner is not connected."})},I=function(e,t){var n=(0,d.useBackend)(t),r=n.data,a=n.act,c=r.hasDisk,i=r.isInjectorReady,l=r.injectorSeconds,s=r.view.consoleMode;return(0,o.createComponentVNode)(2,u.Section,{title:"DNA Console",buttons:!i&&(0,o.createComponentVNode)(2,u.Box,{lineHeight:"20px",color:"label",children:["Injector on cooldown (",l,"s)"]}),children:(0,o.createComponentVNode)(2,u.LabeledList,{children:[(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Mode",children:[(0,o.createComponentVNode)(2,u.Button,{content:"Storage",selected:s===C,onClick:function(){return a("set_view",{consoleMode:C})}}),(0,o.createComponentVNode)(2,u.Button,{content:"Sequencer",disabled:!r.isViableSubject,selected:s===h,onClick:function(){return a("set_view",{consoleMode:h})}}),(0,o.createComponentVNode)(2,u.Button,{content:"Enzymes",selected:s===N,onClick:function(){return a("set_view",{consoleMode:N})}})]}),!!c&&(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Disk",children:(0,o.createComponentVNode)(2,u.Button,{icon:"eject",content:"Eject",onClick:function(){a("eject_disk"),a("set_view",{storageMode:V})}})})]})})};t.DnaConsoleCommands=I;var T=function(e,t){var n=(0,d.useBackend)(t),r=n.data,a=n.act,c=r.hasDisk,i=r.view,l=i.storageMode,s=i.storageConsSubMode,m=i.storageDiskSubMode;return(0,o.createFragment)([l===V&&(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Button,{selected:s===g,content:"Mutations",onClick:function(){return a("set_view",{storageConsSubMode:g})}}),(0,o.createComponentVNode)(2,u.Button,{selected:s===v,content:"Chromosomes",onClick:function(){return a("set_view",{storageConsSubMode:v})}})],4),l===b&&(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Button,{selected:m===g,content:"Mutations",onClick:function(){return a("set_view",{storageDiskSubMode:g})}}),(0,o.createComponentVNode)(2,u.Button,{selected:m===x,content:"Enzymes",onClick:function(){return a("set_view",{storageDiskSubMode:x})}})],4),(0,o.createComponentVNode)(2,u.Box,{inline:!0,mr:1}),(0,o.createComponentVNode)(2,u.Button,{content:"Console",selected:l===V,onClick:function(){return a("set_view",{storageMode:V,storageConsSubMode:g})}}),(0,o.createComponentVNode)(2,u.Button,{content:"Disk",disabled:!c,selected:l===b,onClick:function(){return a("set_view",{storageMode:b,storageDiskSubMode:k})}}),(0,o.createComponentVNode)(2,u.Button,{content:"Adv. Injector",selected:l===f,onClick:function(){return a("set_view",{storageMode:f})}})],0)},A=function(e,t){var n=(0,d.useBackend)(t),r=n.data,a=n.act,c=r.view,i=c.storageMode,l=c.storageConsSubMode,s=c.storageDiskSubMode,m=r.diskMakeupBuffer,p=r.diskHasMakeup,C=r.storage[i];return(0,o.createComponentVNode)(2,u.Section,{title:"Storage",buttons:(0,o.createComponentVNode)(2,T),children:[i===V&&l===g&&(0,o.createComponentVNode)(2,P,{mutations:C}),i===V&&l===v&&(0,o.createComponentVNode)(2,R),i===b&&s===k&&(0,o.createComponentVNode)(2,P,{mutations:C}),i===b&&s===x&&(0,o.createFragment)([(0,o.createComponentVNode)(2,U,{makeup:m}),(0,o.createComponentVNode)(2,u.Button,{icon:"times",color:"red",disabled:!p,content:"Delete",onClick:function(){return a("del_makeup_disk")}})],4),i===f&&(0,o.createComponentVNode)(2,K)]})},P=function(e,t){var n=e.customMode,r=void 0===n?"":n,a=(0,d.useBackend)(t),c=a.data,l=a.act,s=e.mutations||[],m=c.view.storageMode+r,p=c.view["storage"+m+"MutationRef"],C=s.find((function(e){return e.ByondRef===p}));return!C&&s.length>0&&(C=s[0],p=C.ByondRef),(0,o.createComponentVNode)(2,u.Flex,{children:[(0,o.createComponentVNode)(2,u.Flex.Item,{width:"140px",children:(0,o.createComponentVNode)(2,u.Section,{title:(0,i.capitalize)(c.view.storageMode)+" Storage",level:2,children:s.map((function(e){return(0,o.createComponentVNode)(2,u.Button,{fluid:!0,ellipsis:!0,color:"transparent",selected:e.ByondRef===p,content:e.Name,onClick:function(){var t;return l("set_view",((t={})["storage"+m+"MutationRef"]=e.ByondRef,t))}},e.ByondRef)}))})}),(0,o.createComponentVNode)(2,u.Flex.Item,{children:(0,o.createComponentVNode)(2,u.Divider,{vertical:!0})}),(0,o.createComponentVNode)(2,u.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,u.Section,{title:"Mutation Info",level:2,children:(0,o.createComponentVNode)(2,M,{mutation:C})})})]})},R=function(e,t){var n,a=(0,d.useBackend)(t),c=a.data,i=a.act,l=null!=(n=c.chromoStorage)?n:[],s=(0,r.uniqBy)((function(e){return e.Name}))(l),m=c.view.storageChromoName,p=l.find((function(e){return e.Name===m}));return(0,o.createComponentVNode)(2,u.Flex,{children:[(0,o.createComponentVNode)(2,u.Flex.Item,{width:"140px",children:(0,o.createComponentVNode)(2,u.Section,{title:"Console Storage",level:2,children:s.map((function(e){return(0,o.createComponentVNode)(2,u.Button,{fluid:!0,ellipsis:!0,color:"transparent",selected:e.Name===m,content:e.Name,onClick:function(){return i("set_view",{storageChromoName:e.Name})}},e.Index)}))})}),(0,o.createComponentVNode)(2,u.Flex.Item,{children:(0,o.createComponentVNode)(2,u.Divider,{vertical:!0})}),(0,o.createComponentVNode)(2,u.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,u.Section,{title:"Chromosome Info",level:2,children:!p&&(0,o.createComponentVNode)(2,u.Box,{color:"label",children:"Nothing to show."})||(0,o.createFragment)([(0,o.createComponentVNode)(2,u.LabeledList,{children:[(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Name",children:p.Name}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Description",children:p.Description}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Amount",children:l.filter((function(e){return e.Name===p.Name})).length})]}),(0,o.createComponentVNode)(2,u.Button,{mt:2,icon:"eject",content:"Eject Chromosome",onClick:function(){return i("eject_chromo",{chromo:p.Name})}})],4)})})]})},M=function(e,t){var n,c,i,l=e.mutation,s=(0,d.useBackend)(t),m=s.data,p=s.act,C=m.diskCapacity,h=m.diskReadOnly,N=m.hasDisk,V=m.isInjectorReady,b=null!=(n=m.storage.disk)?n:[],f=null!=(c=m.storage.console)?c:[],g=null!=(i=m.storage.injector)?i:[];if(!l)return(0,o.createComponentVNode)(2,u.Box,{color:"label",children:"Nothing to show."});if("occupant"===l.Source&&!l.Discovered)return(0,o.createComponentVNode)(2,u.LabeledList,{children:(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Name",children:l.Alias})});var v=f.find((function(e){return _(e,l)})),k=b.find((function(e){return _(e,l)})),x=(0,a.flow)([(0,r.uniqBy)((function(e){return e.Name})),(0,r.filter)((function(e){return e.Name!==l.Name}))])([].concat(b,f));return(0,o.createFragment)([(0,o.createComponentVNode)(2,u.LabeledList,{children:[(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Name",children:(0,o.createComponentVNode)(2,u.Box,{inline:!0,color:B[l.Quality],children:l.Name})}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Description",children:l.Description}),(0,o.createComponentVNode)(2,u.LabeledList.Item,{label:"Instability",children:l.Instability})]}),(0,o.createComponentVNode)(2,u.Divider),(0,o.createComponentVNode)(2,u.Box,{children:["disk"===l.Source&&(0,o.createComponentVNode)(2,Q,{disabled:!N||C<=0||h,mutations:x,source:l}),"console"===l.Source&&(0,o.createComponentVNode)(2,Q,{mutations:x,source:l}),["occupant","disk","console"].includes(l.Source)&&(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Dropdown,{width:"240px",options:g.map((function(e){return e.name})),disabled:0===g.length||!l.Active,selected:"Add to advanced injector",onSelected:function(e){return p("add_advinj_mut",{mutref:l.ByondRef,advinj:e,source:l.Source})}}),(0,o.createComponentVNode)(2,u.Button,{icon:"syringe",disabled:!V||!l.Active,content:"Print Activator",onClick:function(){return p("print_injector",{mutref:l.ByondRef,is_activator:1,source:l.Source})}}),(0,o.createComponentVNode)(2,u.Button,{icon:"syringe",disabled:!V||!l.Active,content:"Print Mutator",onClick:function(){return p("print_injector",{mutref:l.ByondRef,is_activator:0,source:l.Source})}})],4)]}),["disk","occupant"].includes(l.Source)&&(0,o.createComponentVNode)(2,u.Button,{icon:"save",disabled:v||!l.Active,content:"Save to Console",onClick:function(){return p("save_console",{mutref:l.ByondRef,source:l.Source})}}),["console","occupant"].includes(l.Source)&&(0,o.createComponentVNode)(2,u.Button,{icon:"save",disabled:k||!N||C<=0||h||!l.Active,content:"Save to Disk",onClick:function(){return p("save_disk",{mutref:l.ByondRef,source:l.Source})}}),["console","disk","injector"].includes(l.Source)&&(0,o.createComponentVNode)(2,u.Button,{icon:"times",color:"red",content:"Delete from "+l.Source,onClick:function(){return p("delete_"+l.Source+"_mut",{mutref:l.ByondRef})}}),(2===l.Class||!!l.Scrambled&&"occupant"===l.Source)&&(0,o.createComponentVNode)(2,u.Button,{content:"Nullify",onClick:function(){return p("nullify",{mutref:l.ByondRef})}}),(0,o.createComponentVNode)(2,u.Divider),(0,o.createComponentVNode)(2,F,{disabled:"occupant"!==l.Source,mutation:l})],0)},F=function(e,t){var n=e.mutation,r=e.disabled,a=(0,d.useBackend)(t),c=(a.data,a.act);return 0===n.CanChromo?(0,o.createComponentVNode)(2,u.Box,{color:"label",children:"No compatible chromosomes"}):1===n.CanChromo?r?(0,o.createComponentVNode)(2,u.Box,{color:"label",children:"No chromosome applied."}):(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Dropdown,{width:"240px",options:n.ValidStoredChromos,disabled:0===n.ValidStoredChromos.length,selected:0===n.ValidStoredChromos.length?"No Suitable Chromosomes":"Select a chromosome",onSelected:function(e){return c("apply_chromo",{chromo:e,mutref:n.ByondRef})}}),(0,o.createComponentVNode)(2,u.Box,{color:"label",mt:1,children:["Compatible with: ",n.ValidChromos]})],4):2===n.CanChromo?(0,o.createComponentVNode)(2,u.Box,{color:"label",children:["Applied chromosome: ",n.AppliedChromo]}):null},D=function(e,t){var n,r,a=(0,d.useBackend)(t),c=a.data,i=a.act,s=null!=(n=null==(r=c.storage)?void 0:r.occupant)?n:[],m=c.isJokerReady,p=c.isMonkey,C=c.jokerSeconds,h=c.subjectStatus,N=c.view,V=N.sequencerMutation,b=N.jokerActive,f=s.find((function(e){return e.Alias===V}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Flex,{spacing:1,mb:1,children:[(0,o.createComponentVNode)(2,u.Flex.Item,{width:s.length<=8?"154px":"174px",children:(0,o.createComponentVNode)(2,u.Section,{title:"Sequences",height:"214px",overflowY:s.length>8&&"scroll",children:s.map((function(e){return(0,o.createComponentVNode)(2,j,{url:(0,l.resolveAsset)(e.Image),selected:e.Alias===V,onClick:function(){i("set_view",{sequencerMutation:e.Alias}),i("check_discovery",{alias:e.Alias})}},e.Alias)}))})}),(0,o.createComponentVNode)(2,u.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,u.Section,{title:"Sequence Info",minHeight:"100%",children:(0,o.createComponentVNode)(2,M,{mutation:f})})})]}),3===h&&(0,o.createComponentVNode)(2,u.Section,{color:"bad",children:"Genetic sequence corrupted. Subject diagnostic report: DECEASED."})||p&&"Monkified"!==(null==f?void 0:f.Name)&&(0,o.createComponentVNode)(2,u.Section,{color:"bad",children:"Genetic sequence corrupted. Subject diagnostic report: MONKEY."})||4===h&&(0,o.createComponentVNode)(2,u.Section,{color:"bad",children:"Genetic sequence corrupted. Subject diagnostic report: TRANSFORMING."})||(0,o.createComponentVNode)(2,u.Section,{title:"Genome Sequencer\u2122",buttons:!m&&(0,o.createComponentVNode)(2,u.Box,{lineHeight:"20px",color:"label",children:["Joker on cooldown (",C,"s)"]})||b&&(0,o.createFragment)([(0,o.createComponentVNode)(2,u.Box,{mr:1,inline:!0,color:"label",children:"Click on a gene to reveal it."}),(0,o.createComponentVNode)(2,u.Button,{content:"Cancel Joker",onClick:function(){return i("set_view",{jokerActive:""})}})],4)||(0,o.createComponentVNode)(2,u.Button,{icon:"crown",color:"purple",content:"Use Joker",onClick:function(){return i("set_view",{jokerActive:"1"})}}),children:(0,o.createComponentVNode)(2,E,{mutation:f})})],0)},j=function(e,t){var n,r=e.url,a=e.selected,c=e.onClick;return a&&(n="2px solid #22aa00"),(0,o.createComponentVNode)(2,u.Box,{as:"img",src:r,style:{width:"64px",margin:"2px","margin-left":"4px",outline:n},onClick:c})},W=function(e,t){var n=e.gene,r=e.onChange,a=e.disabled,c=function(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}(e,["gene","onChange","disabled"]),i=m.length,l=m.indexOf(n),d=a&&p.X||p[n];return(0,o.normalizeProps)((0,o.createComponentVNode)(2,u.Button,Object.assign({},c,{color:d,onClick:function(e){if(e.preventDefault(),r)if(-1!==l){var t=m[(l+1)%i];r(e,t)}else r(e,m[0])},oncontextmenu:function(e){if(e.preventDefault(),r)if(-1!==l){var t=m[(l-1+i)%i];r(e,t)}else r(e,m[i-1])},children:n})))},E=function(e,t){var n=e.mutation,r=(0,d.useBackend)(t),a=r.data,i=r.act,l=a.view.jokerActive;if(!n)return(0,o.createComponentVNode)(2,u.Box,{color:"average",children:"No genome selected for sequencing."});if(n.Scrambled)return(0,o.createComponentVNode)(2,u.Box,{color:"average",children:"Sequence unreadable due to unpredictable mutation."});for(var s=n.Sequence,m=n.DefaultSeq,p=[],C=function(e){var t=s.charAt(e),r=(0,o.createComponentVNode)(2,W,{width:"22px",textAlign:"center",disabled:!!n.Scrambled||1!==n.Class,className:"X"===(null==m?void 0:m.charAt(e))&&!n.Active&&(0,c.classes)(["outline-solid","outline-color-orange"]),gene:t,onChange:function(t,o){if(!t.ctrlKey)return l?(i("pulse_gene",{pos:e+1,gene:"J",alias:n.Alias}),void i("set_view",{jokerActive:""})):void i("pulse_gene",{pos:e+1,gene:o,alias:n.Alias});i("pulse_gene",{pos:e+1,gene:"X",alias:n.Alias})}});p.push(r)},h=0;h=3){var r=(0,o.createComponentVNode)(2,u.Box,{inline:!0,width:"22px",mx:"1px",children:s});l.push(r),s=[]}},p=0;p=i,onCommit:function(e,t){return a("new_adv_inj",{name:t})}})})]})},Q=function(e,t){var n=e.mutations,r=void 0===n?[]:n,a=e.source,c=(0,d.useBackend)(t),i=c.act;c.data;return(0,o.createComponentVNode)(2,u.Dropdown,{width:"240px",options:r.map((function(e){return e.Name})),disabled:0===r.length,selected:"Combine mutations",onSelected:function(e){return i("combine_"+a.Source,{firstref:(t=e,null==(n=r.find((function(e){return e.Name===t})))?void 0:n.ByondRef),secondref:a.ByondRef});var t,n}},a.ByondRef)}},89817:function(e,t,n){"use strict";t.__esModule=!0,t.DnaVault=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.DnaVault=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.completed,u=l.used,s=l.choiceA,m=l.choiceB,p=l.dna,C=l.dna_max,h=l.plants,N=l.plants_max,V=l.animals,b=l.animals_max;return(0,o.createComponentVNode)(2,c.Window,{width:350,height:400,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"DNA Vault Database",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Human DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:p/C,children:p+" / "+C+" Samples"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Plant DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:h/N,children:h+" / "+N+" Samples"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Animal DNA",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:V/V,children:V+" / "+b+" Samples"})})]})}),!(!d||u)&&(0,o.createComponentVNode)(2,a.Section,{title:"Personal Gene Therapy",children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",mb:1,children:"Applicable Gene Therapy Treatments"}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:s,textAlign:"center",onClick:function(){return i("gene",{choice:s})}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:m,textAlign:"center",onClick:function(){return i("gene",{choice:m})}})})]})]})]})})}},41284:function(e,t,n){"use strict";t.__esModule=!0,t.EightBallVote=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(2497),i=n(85952);t.EightBallVote=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data.shaking);return(0,o.createComponentVNode)(2,i.Window,{width:400,height:600,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:!c&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No question is currently being asked."})||(0,o.createComponentVNode)(2,l)})})};var l=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.question,u=l.answers,s=void 0===u?[]:u;return(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"16px",m:1,children:['"',d,'"']}),(0,o.createComponentVNode)(2,a.Grid,{children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:(0,c.toTitleCase)(e.answer),selected:e.selected,fontSize:"16px",lineHeight:"24px",textAlign:"center",mb:1,onClick:function(){return i("vote",{answer:e.answer})}}),(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"30px",children:e.amount})]},e.answer)}))})]})}},31342:function(e,t,n){"use strict";t.__esModule=!0,t.Electrolyzer=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.Electrolyzer=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:305,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Power",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject Cell",disabled:!l.hasPowercell||!l.open,onClick:function(){return i("eject")}}),(0,o.createComponentVNode)(2,a.Button,{icon:l.on?"power-off":"times",content:l.on?"On":"Off",selected:l.on,disabled:!l.hasPowercell,onClick:function(){return i("power")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cell",color:!l.hasPowercell&&"bad",children:l.hasPowercell&&(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.powerLevel/100,content:l.powerLevel+"%",ranges:{good:[.6,Infinity],average:[.3,.6],bad:[-Infinity,.3]}})||"None"})})})})})}},53586:function(e,t,n){"use strict";t.__esModule=!0,t.Electropack=void 0;var o=n(39812),r=n(41860),a=n(71494),c=n(74814),i=n(85952);t.Electropack=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.power,s=d.code,m=d.frequency,p=d.minFrequency,C=d.maxFrequency;return(0,o.createComponentVNode)(2,i.Window,{width:260,height:137,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,c.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,onClick:function(){return l("power")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Frequency",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"sync",content:"Reset",onClick:function(){return l("reset",{reset:"freq"})}}),children:(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:6,minValue:p/10,maxValue:C/10,value:m/10,format:function(e){return(0,r.toFixed)(e,1)},width:"80px",onDrag:function(e,t){return l("freq",{freq:t})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Code",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"sync",content:"Reset",onClick:function(){return l("reset",{reset:"code"})}}),children:(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:s,width:"80px",onDrag:function(e,t){return l("code",{code:t})}})})]})})})})}},47453:function(e,t,n){"use strict";t.__esModule=!0,t.EmergencyShuttleConsole=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.EmergencyShuttleConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.timer_str,u=l.enabled,s=l.emagged,m=l.engines_started,p=l.authorizations_remaining,C=l.authorizations,h=void 0===C?[]:C;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:350,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,fontSize:"40px",textAlign:"center",fontFamily:"monospace",children:d}),(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",fontSize:"16px",mb:1,children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:"ENGINES:"}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:m?"good":"average",ml:1,children:m?"Online":"Idle"})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Early Launch Authorization",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Repeal All",color:"bad",disabled:!u,onClick:function(){return i("abort")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"exclamation-triangle",color:"good",content:"AUTHORIZE",disabled:!u,onClick:function(){return i("authorize")}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"minus",content:"REPEAL",disabled:!u,onClick:function(){return i("repeal")}})})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Authorizations",level:3,minHeight:"150px",buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:s?"bad":"good",children:s?"ERROR":"Remaining: "+p}),children:h.length>0?h.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{bold:!0,fontSize:"16px",className:"candystripe",children:[e.name," (",e.job,")"]},e.name)})):(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"16px",color:"average",children:"No Active Authorizations"})})]})]})})})}},11715:function(e,t,n){"use strict";t.__esModule=!0,t.EngravedMessage=void 0;var o=n(39812),r=n(2497),a=n(71494),c=n(74814),i=n(85952);t.EngravedMessage=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.admin_mode,s=d.creator_key,m=d.creator_name,p=d.has_liked,C=d.has_disliked,h=d.hidden_message,N=d.is_creator,V=d.num_likes,b=d.num_dislikes,f=d.realdate;return(0,o.createComponentVNode)(2,i.Window,{width:600,height:300,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{children:[(0,o.createComponentVNode)(2,c.Box,{bold:!0,textAlign:"center",fontSize:"20px",mb:2,children:(0,r.decodeHtmlEntities)(h)}),(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,icon:"arrow-up",content:" "+V,disabled:N,selected:p,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return l("like")}})}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,icon:"circle",disabled:N,selected:!C&&!p,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return l("neutral")}})}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,icon:"arrow-down",content:" "+b,disabled:N,selected:C,textAlign:"center",fontSize:"16px",lineHeight:"24px",onClick:function(){return l("dislike")}})})]})]}),(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Created On",children:f})})}),(0,o.createComponentVNode)(2,c.Section),!!u&&(0,o.createComponentVNode)(2,c.Section,{title:"Admin Panel",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"times",content:"Delete",color:"bad",onClick:function(){return l("delete")}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Creator Ckey",children:s}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Creator Character Name",children:m})]})})]})})}},8077:function(e,t,n){"use strict";t.__esModule=!0,t.ExosuitControlConsole=void 0;var o=n(39812),r=n(41860),a=n(71494),c=n(74814),i=n(85952);t.ExosuitControlConsole=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data.mechs,u=void 0===d?[]:d;return(0,o.createComponentVNode)(2,i.Window,{width:500,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[0===u.length&&(0,o.createComponentVNode)(2,c.NoticeBox,{children:"No exosuits detected"}),u.map((function(e){return(0,o.createComponentVNode)(2,c.Section,{title:e.name,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:"envelope",content:"Send Message",disabled:!e.pilot,onClick:function(){return l("send_message",{tracker_ref:e.tracker_ref})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"wifi",content:e.emp_recharging?"Recharging...":"EMP Burst",color:"bad",disabled:e.emp_recharging,onClick:function(){return l("shock",{tracker_ref:e.tracker_ref})}})],4),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,c.Box,{color:(e.integrity<=30?"bad":e.integrity<=70&&"average")||"good",children:[e.integrity,"%"]})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Charge",children:(0,o.createComponentVNode)(2,c.Box,{color:(e.charge<=30?"bad":e.charge<=70&&"average")||"good",children:"number"==typeof e.charge&&e.charge+"%"||"Not Found"})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Airtank",children:"number"==typeof e.airtank&&(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:e.airtank,format:function(e){return(0,r.toFixed)(e,2)+" kPa"}})||"Not Equipped"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pilot",children:e.pilot||"None"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Location",children:e.location||"Unknown"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Active Equipment",children:e.active_equipment||"None"}),e.cargo_space>=0&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Used Cargo Space",children:(0,o.createComponentVNode)(2,c.Box,{color:(e.cargo_space<=30?"good":e.cargo_space<=70&&"average")||"bad",children:[e.cargo_space,"%"]})})]})},e.tracker_ref)}))]})})}},95481:function(e,t,n){"use strict";t.__esModule=!0,t.ExosuitFabricator=void 0;var o,r=n(39812),a=n(34380),c=n(64499),i=n(71494),l=n(58083),d=n(74814),u=n(85952),s=n(2497);function m(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return p(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);nn?{color:2,deficit:e-n}:t>n?{color:1,deficit:e}:e+t>n?{color:1,deficit:e+t-n}:{color:0,deficit:0}},V=function(e,t,n){var o={textColor:0};return Object.keys(n.cost).forEach((function(r){o[r]=N(n.cost[r],t[r],e[r]),o[r].color>o.textColor&&(o.textColor=o[r].color)})),o};t.ExosuitFabricator=function(e,t){var n,o,a=(0,i.useBackend)(t),c=a.act,l=a.data,s=l.queue||[],m=(n=l.materials||[],o={},n.forEach((function(e){o[e.name]=e.amount})),o),p=function(e,t){var n={},o={},r={},a={};return t.forEach((function(t,c){a[c]=0,Object.keys(t.cost).forEach((function(i){n[i]=n[i]||0,r[i]=r[i]||0,o[i]=N(t.cost[i],n[i],e[i]),0!==o[i].color?a[c]1&&l=0&&m+"s"||"Dispensing..."})]})})})}}},1005:function(e,t,n){"use strict";t.__esModule=!0,t.ForbiddenLore=void 0;var o=n(39812),r=n(64499),a=n(85531),c=n(71494),i=n(74814),l=n(85952);t.ForbiddenLore=function(e,t){var n=(0,c.useBackend)(t),d=n.act,u=n.data,s=u.charges,m=(0,a.flow)([(0,r.sortBy)((function(e){return"Research"!==e.state}),(function(e){return"Side"===e.path}))])(u.to_know||[]);return(0,o.createComponentVNode)(2,l.Window,{width:500,height:900,resizable:!0,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i.Section,{title:"Research Eldritch Knowledge",children:["Charges left : ",s,null!==m?m.map((function(e){return(0,o.createComponentVNode)(2,i.Section,{title:e.name,level:2,children:[(0,o.createComponentVNode)(2,i.Box,{bold:!0,my:1,children:[e.path," path"]}),(0,o.createComponentVNode)(2,i.Box,{my:1,children:[(0,o.createComponentVNode)(2,i.Button,{content:e.state,disabled:e.disabled,onClick:function(){return d("research",{name:e.name,cost:e.cost})}})," ","Cost : ",e.cost]}),(0,o.createComponentVNode)(2,i.Box,{italic:!0,my:1,children:e.flavour}),(0,o.createComponentVNode)(2,i.Box,{my:1,children:e.desc})]},e.name)})):(0,o.createComponentVNode)(2,i.Box,{children:"No more knowledge can be found"})]})})})}},64831:function(e,t,n){"use strict";t.__esModule=!0,t.Gateway=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.Gateway=function(){return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.gateway_present,d=void 0!==l&&l,u=i.gateway_status,s=void 0!==u&&u,m=i.current_target,p=void 0===m?null:m,C=i.destinations,h=void 0===C?[]:C;return d?p?(0,o.createComponentVNode)(2,a.Section,{title:p.name,children:[(0,o.createComponentVNode)(2,a.Icon,{name:"rainbow",size:4,color:"green"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,onClick:function(){return c("deactivate")},children:"Deactivate"})]}):h.length?(0,o.createFragment)([!s&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Gateway Unpowered"}),h.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,children:e.available&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,onClick:function(){return c("activate",{destination:e.ref})},children:"Activate"})||(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{m:1,textColor:"bad",children:e.reason}),!!e.timeout&&(0,o.createComponentVNode)(2,a.ProgressBar,{value:e.timeout,children:"Calibrating..."})],0)},e.ref)}))],0):(0,o.createComponentVNode)(2,a.Section,{children:"No gateway nodes detected."}):(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No linked gateway"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,onClick:function(){return c("linkup")},children:"Linkup"})]})}},8098:function(e,t,n){"use strict";t.__esModule=!0,t.GhostPoolProtection=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.GhostPoolProtection=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.events_or_midrounds,u=l.spawners,s=l.station_sentience,m=l.silicons,p=l.minigames;return(0,o.createComponentVNode)(2,c.Window,{title:"Ghost Pool Protection",width:400,height:270,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Flex,{grow:1,height:"100%",children:(0,o.createComponentVNode)(2,a.Section,{title:"Options",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{color:"good",icon:"plus-circle",content:"Enable Everything",onClick:function(){return i("all_roles")}}),(0,o.createComponentVNode)(2,a.Button,{color:"bad",icon:"minus-circle",content:"Disable Everything",onClick:function(){return i("no_roles")}})],4),children:[(0,o.createComponentVNode)(2,a.NoticeBox,{danger:!0,children:"For people creating a sneaky event: If you toggle Station Created Sentience, people may catch on that admins have disabled roles for your event..."}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",color:d?"good":"bad",icon:"meteor",content:"Events and Midround Rulesets",onClick:function(){return i("toggle_events_or_midrounds")}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",color:u?"good":"bad",icon:"pastafarianism",content:"Ghost Role Spawners",onClick:function(){return i("toggle_spawners")}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",color:s?"good":"bad",icon:"user-astronaut",content:"Station Created Sentience",onClick:function(){return i("toggle_station_sentience")}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",color:m?"good":"bad",icon:"robot",content:"Silicons",onClick:function(){return i("toggle_silicons")}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",color:p?"good":"bad",icon:"gamepad",content:"Minigames",onClick:function(){return i("toggle_minigames")}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",color:"orange",icon:"check",content:"Apply Changes",onClick:function(){return i("apply_settings")}})})]})})})})}},25313:function(e,t,n){"use strict";t.__esModule=!0,t.GlandDispenser=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.GlandDispenser=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.glands,d=void 0===l?[]:l;return(0,o.createComponentVNode)(2,c.Window,{width:300,height:338,theme:"abductor",children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{width:"60px",height:"60px",m:.75,textAlign:"center",lineHeight:"55px",icon:"eject",backgroundColor:e.color,content:e.amount||"0",disabled:!e.amount,onClick:function(){return i("dispense",{gland_id:e.id})}},e.id)}))})})})}},25230:function(e,t,n){"use strict";t.__esModule=!0,t.Gps=void 0;var o=n(39812),r=n(64499),a=n(85531),c=n(41860),i=n(51961),l=n(71494),d=n(74814),u=n(85952),s=function(e){return(0,r.map)(parseFloat)(e.split(", "))};t.Gps=function(e,t){var n=(0,l.useBackend)(t),m=n.act,p=n.data,C=p.currentArea,h=p.currentCoords,N=p.globalmode,V=p.power,b=p.tag,f=p.updating,g=(0,a.flow)([(0,r.map)((function(e,t){var n=e.dist&&Math.round((0,i.vecLength)((0,i.vecSubtract)(s(h),s(e.coords))));return Object.assign({},e,{dist:n,index:t})})),(0,r.sortBy)((function(e){return e.dist===undefined}),(function(e){return e.entrytag}))])(p.signals||[]);return(0,o.createComponentVNode)(2,u.Window,{title:"Global Positioning System",width:470,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,u.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,d.Section,{title:"Control",buttons:(0,o.createComponentVNode)(2,d.Button,{icon:"power-off",content:V?"On":"Off",selected:V,onClick:function(){return m("power")}}),children:(0,o.createComponentVNode)(2,d.LabeledList,{children:[(0,o.createComponentVNode)(2,d.LabeledList.Item,{label:"Tag",children:(0,o.createComponentVNode)(2,d.Button,{icon:"pencil-alt",content:b,onClick:function(){return m("rename")}})}),(0,o.createComponentVNode)(2,d.LabeledList.Item,{label:"Scan Mode",children:(0,o.createComponentVNode)(2,d.Button,{icon:f?"unlock":"lock",content:f?"AUTO":"MANUAL",color:!f&&"bad",onClick:function(){return m("updating")}})}),(0,o.createComponentVNode)(2,d.LabeledList.Item,{label:"Range",children:(0,o.createComponentVNode)(2,d.Button,{icon:"sync",content:N?"MAXIMUM":"LOCAL",selected:!N,onClick:function(){return m("globalmode")}})})]})}),!!V&&(0,o.createFragment)([(0,o.createComponentVNode)(2,d.Section,{title:"Current Location",children:(0,o.createComponentVNode)(2,d.Box,{fontSize:"18px",children:[C," (",h,")"]})}),(0,o.createComponentVNode)(2,d.Section,{title:"Detected Signals",children:(0,o.createComponentVNode)(2,d.Table,{children:[(0,o.createComponentVNode)(2,d.Table.Row,{bold:!0,children:[(0,o.createComponentVNode)(2,d.Table.Cell,{content:"Name"}),(0,o.createComponentVNode)(2,d.Table.Cell,{collapsing:!0,content:"Direction"}),(0,o.createComponentVNode)(2,d.Table.Cell,{collapsing:!0,content:"Coordinates"})]}),g.map((function(e){return(0,o.createComponentVNode)(2,d.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,d.Table.Cell,{bold:!0,color:"label",children:e.entrytag}),(0,o.createComponentVNode)(2,d.Table.Cell,{collapsing:!0,opacity:e.dist!==undefined&&(0,c.clamp)(1.2/Math.log(Math.E+e.dist/20),.4,1),children:[e.degrees!==undefined&&(0,o.createComponentVNode)(2,d.Icon,{mr:1,size:1.2,name:"arrow-up",rotation:e.degrees}),e.dist!==undefined&&e.dist+"m"]}),(0,o.createComponentVNode)(2,d.Table.Cell,{collapsing:!0,children:e.coords})]},e.entrytag+e.coords+e.index)}))]})})],4)]})})}},4475:function(e,t,n){"use strict";t.__esModule=!0,t.GravityGenerator=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.GravityGenerator=function(e,t){var n=(0,r.useBackend)(t),l=(n.act,n.data),d=l.charging_state,u=l.operational;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:155,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[!u&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No data available"}),!!u&&0!==d&&(0,o.createComponentVNode)(2,a.NoticeBox,{danger:!0,children:"WARNING - Radiation detected"}),!!u&&0===d&&(0,o.createComponentVNode)(2,a.NoticeBox,{success:!0,children:"No radiation detected"}),!!u&&(0,o.createComponentVNode)(2,i)]})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.breaker,d=i.charge_count,u=i.charging_state,s=i.on,m=i.operational;return(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:l?"power-off":"times",content:l?"On":"Off",selected:l,disabled:!m,onClick:function(){return c("gentoggle")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Gravity Charge",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d/100,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",children:[0===u&&(s&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Fully Charged"})||(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Not Charging"})),1===u&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Charging"}),2===u&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"Discharging"})]})]})})}},83366:function(e,t,n){"use strict";t.__esModule=!0,t.GulagItemReclaimer=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.GulagItemReclaimer=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.mobs,u=void 0===d?[]:d;return(0,o.createComponentVNode)(2,c.Window,{width:325,height:400,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[0===u.length&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No stored items"}),u.length>0&&(0,o.createComponentVNode)(2,a.Section,{title:"Stored Items",children:(0,o.createComponentVNode)(2,a.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:(0,o.createComponentVNode)(2,a.Button,{content:"Retrieve Items",disabled:!l.can_reclaim,onClick:function(){return i("release_items",{mobref:e.mob})}})})]},e.mob)}))})})]})})}},72263:function(e,t,n){"use strict";t.__esModule=!0,t.GulagTeleporterConsole=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.GulagTeleporterConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.teleporter,u=l.teleporter_lock,s=l.teleporter_state_open,m=l.teleporter_location,p=l.beacon,C=l.beacon_location,h=l.id,N=l.id_name,V=l.can_teleport,b=l.goal,f=void 0===b?0:b,g=l.prisoner,v=void 0===g?{}:g;return(0,o.createComponentVNode)(2,c.Window,{width:350,height:295,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Teleporter Console",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:s?"Open":"Closed",disabled:u,selected:s,onClick:function(){return i("toggle_open")}}),(0,o.createComponentVNode)(2,a.Button,{icon:u?"lock":"unlock",content:u?"Locked":"Unlocked",selected:u,disabled:s,onClick:function(){return i("teleporter_lock")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Teleporter Unit",color:d?"good":"bad",buttons:!d&&(0,o.createComponentVNode)(2,a.Button,{content:"Reconnect",onClick:function(){return i("scan_teleporter")}}),children:d?m:"Not Connected"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Receiver Beacon",color:p?"good":"bad",buttons:!p&&(0,o.createComponentVNode)(2,a.Button,{content:"Reconnect",onClick:function(){return i("scan_beacon")}}),children:p?C:"Not Connected"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Prisoner Details",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Prisoner ID",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:h?N:"No ID",onClick:function(){return i("handle_id")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Point Goal",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:f,width:"48px",minValue:1,maxValue:1e3,onChange:function(e,t){return i("set_goal",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Occupant",children:v.name||"No Occupant"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Criminal Status",children:v.crimstat||"No Status"})]})}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Process Prisoner",disabled:!V,textAlign:"center",color:"bad",onClick:function(){return i("teleport")}})]})})}},7908:function(e,t,n){"use strict";t.__esModule=!0,t.Holodeck=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.Holodeck=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.can_toggle_safety,u=l.default_programs,s=void 0===u?[]:u,m=l.emag_programs,p=void 0===m?[]:m,C=l.emagged,h=l.program;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Default Programs",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:C?"unlock":"lock",content:"Safeties",color:"bad",disabled:!d,selected:!C,onClick:function(){return i("safety")}}),children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name.split(" - ")[1],textAlign:"center",selected:e.type===h,onClick:function(){return i("load_program",{type:e.type})}},e.type)}))}),!!C&&(0,o.createComponentVNode)(2,a.Section,{title:"Dangerous Programs",children:p.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name.split(" - ")[1],color:"bad",textAlign:"center",selected:e.type===h,onClick:function(){return i("load_program",{type:e.type})}},e.type)}))})]})})}},84283:function(e,t,n){"use strict";t.__esModule=!0,t.Holopad=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.Holopad=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data.calling;return(0,o.createComponentVNode)(2,c.Window,{width:440,height:245,resizable:!0,children:[!!d&&(0,o.createComponentVNode)(2,a.Modal,{fontSize:"36px",fontFamily:"monospace",children:[(0,o.createComponentVNode)(2,a.Flex,{align:"center",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mr:2,mt:2,children:(0,o.createComponentVNode)(2,a.Icon,{name:"phone-alt",rotation:25})}),(0,o.createComponentVNode)(2,a.Flex.Item,{mr:2,children:"Dialing..."})]}),(0,o.createComponentVNode)(2,a.Box,{mt:2,textAlign:"center",fontSize:"24px",children:(0,o.createComponentVNode)(2,a.Button,{lineHeight:"40px",icon:"times",content:"Hang Up",color:"bad",onClick:function(){return l("hang_up")}})})]}),(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})]})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.on_network,d=i.on_cooldown,u=i.allowed,s=i.disk,m=i.disk_record,p=i.replay_mode,C=i.loop_mode,h=i.record_mode,N=i.holo_calls,V=void 0===N?[]:N;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Holopad",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"bell",content:d?"AI Presence Requested":"Request AI Presence",disabled:!l||d,onClick:function(){return c("AIrequest")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Communicator",children:(0,o.createComponentVNode)(2,a.Button,{icon:"phone-alt",content:u?"Connect To Holopad":"Call Holopad",disabled:!l,onClick:function(){return c("holocall",{headcall:u})}})}),V.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.connected?"Current Call":"Incoming Call",children:(0,o.createComponentVNode)(2,a.Button,{icon:e.connected?"phone-slash":"phone-alt",content:e.connected?"Disconnect call from "+e.caller:"Answer call from "+e.caller,color:e.connected?"bad":"good",disabled:!l,onClick:function(){return c(e.connected?"disconnectcall":"connectcall",{holopad:e.ref})}})},e.ref)}))]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Holodisk",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!s||p||h,onClick:function(){return c("disk_eject")}}),children:!s&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No holodisk"})||(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disk Player",children:[(0,o.createComponentVNode)(2,a.Button,{icon:p?"pause":"play",content:p?"Stop":"Replay",selected:p,disabled:h||!m,onClick:function(){return c("replay_mode")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:C?"Looping":"Loop",selected:C,disabled:h||!m,onClick:function(){return c("loop_mode")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"exchange-alt",content:"Change Offset",disabled:!p,onClick:function(){return c("offset")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Recorder",children:[(0,o.createComponentVNode)(2,a.Button,{icon:h?"pause":"video",content:h?"End Recording":"Record",selected:h,disabled:m&&!h||p,onClick:function(){return c("record_mode")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"trash",content:"Clear Recording",color:"bad",disabled:!m||p||h,onClick:function(){return c("record_clear")}})]})]})})],4)}},12708:function(e,t,n){"use strict";t.__esModule=!0,t.HypnoChair=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.HypnoChair=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:375,height:480,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Information",backgroundColor:"#450F44",children:"The Enhanced Interrogation Chamber is designed to induce a deep-rooted trance trigger into the subject. Once the procedure is complete, by using the implanted trigger phrase, the authorities are able to ensure immediate and complete obedience and truthfulness."}),(0,o.createComponentVNode)(2,a.Section,{title:"Occupant Information",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:l.occupant.name?l.occupant.name:"No Occupant"}),!!l.occupied&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:0===l.occupant.stat?"good":1===l.occupant.stat?"average":"bad",children:0===l.occupant.stat?"Conscious":1===l.occupant.stat?"Unconcious":"Dead"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Operations",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.open?"unlock":"lock",color:l.open?"default":"red",content:l.open?"Open":"Closed",onClick:function(){return i("door")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Phrase",children:(0,o.createComponentVNode)(2,a.Input,{value:l.trigger,onChange:function(e,t){return i("set_phrase",{phrase:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Interrogate Occupant",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"code-branch",content:l.interrogating?"Interrupt Interrogation":"Begin Enhanced Interrogation",onClick:function(){return i("interrogate")}}),1===l.interrogating&&(0,o.createComponentVNode)(2,a.Icon,{name:"cog",color:"orange",spin:!0})]})]})})]})})}},1473:function(e,t,n){"use strict";t.__esModule=!0,t.ImplantChair=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.ImplantChair=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:375,height:280,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Occupant Information",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:l.occupant.name||"No Occupant"}),!!l.occupied&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:0===l.occupant.stat?"good":1===l.occupant.stat?"average":"bad",children:0===l.occupant.stat?"Conscious":1===l.occupant.stat?"Unconcious":"Dead"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Operations",textAlign:"center",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Door",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.open?"unlock":"lock",color:l.open?"default":"red",content:l.open?"Open":"Closed",onClick:function(){return i("door")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Implant Occupant",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"code-branch",content:l.ready?l.special_name||"Implant":"Recharging",onClick:function(){return i("implant")}}),0===l.ready&&(0,o.createComponentVNode)(2,a.Icon,{name:"cog",color:"orange",spin:!0})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Implants Remaining",children:[l.ready_implants,1===l.replenishing&&(0,o.createComponentVNode)(2,a.Icon,{name:"sync",color:"red",spin:!0})]})]})})]})})}},87522:function(e,t,n){"use strict";t.__esModule=!0,t.InfraredEmitter=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.InfraredEmitter=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.on,u=l.visible;return(0,o.createComponentVNode)(2,c.Window,{width:225,height:110,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Button,{icon:d?"power-off":"times",content:d?"On":"Off",selected:d,onClick:function(){return i("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Visibility",children:(0,o.createComponentVNode)(2,a.Button,{icon:u?"eye":"eye-slash",content:u?"Visible":"Invisible",selected:u,onClick:function(){return i("visibility")}})})]})})})})}},28549:function(e,t,n){"use strict";t.__esModule=!0,t.Intellicard=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.Intellicard=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.name,u=l.isDead,s=l.isBraindead,m=l.health,p=l.wireless,C=l.radio,h=l.wiping,N=l.laws,V=void 0===N?[]:N,b=u||s;return(0,o.createComponentVNode)(2,c.Window,{width:500,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:d||"Empty Card",buttons:!!d&&(0,o.createComponentVNode)(2,a.Button,{icon:"trash",content:h?"Stop Wiping":"Wipe",disabled:u,onClick:function(){return i("wipe")}}),children:!!d&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:b?"bad":"good",children:b?"Offline":"Operation"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Software Integrity",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m,minValue:0,maxValue:100,ranges:{good:[70,Infinity],average:[50,70],bad:[-Infinity,50]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Settings",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"signal",content:"Wireless Activity",selected:p,onClick:function(){return i("wireless")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"microphone",content:"Subspace Radio",selected:C,onClick:function(){return i("radio")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Laws",children:V.map((function(e){return(0,o.createComponentVNode)(2,a.BlockQuote,{children:e},e)}))})]})})})})}},68741:function(e,t,n){"use strict";t.__esModule=!0,t.Jukebox=void 0;var o=n(39812),r=n(64499),a=n(85531),c=n(71494),i=n(74814),l=n(85952);t.Jukebox=function(e,t){var n=(0,c.useBackend)(t),d=n.act,u=n.data,s=u.active,m=u.track_selected,p=u.track_length,C=u.track_beat,h=u.volume,N=(0,a.flow)([(0,r.sortBy)((function(e){return e.name}))])(u.songs||[]);return(0,o.createComponentVNode)(2,l.Window,{width:370,height:313,children:(0,o.createComponentVNode)(2,l.Window.Content,{children:[(0,o.createComponentVNode)(2,i.Section,{title:"Song Player",buttons:(0,o.createComponentVNode)(2,i.Button,{icon:s?"pause":"play",content:s?"Stop":"Play",selected:s,onClick:function(){return d("toggle")}}),children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Track Selected",children:(0,o.createComponentVNode)(2,i.Dropdown,{"overflow-y":"scroll",width:"240px",options:N.map((function(e){return e.name})),disabled:s,selected:m||"Select a Track",onSelected:function(e){return d("select_track",{track:e})}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Track Length",children:m?p:"No Track Selected"}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Track Beat",children:[m?C:"No Track Selected",1===C?" beat":" beats"]})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Machine Settings",children:(0,o.createComponentVNode)(2,i.LabeledControls,{justify:"center",children:(0,o.createComponentVNode)(2,i.LabeledControls.Item,{label:"Volume",children:(0,o.createComponentVNode)(2,i.Box,{position:"relative",children:[(0,o.createComponentVNode)(2,i.Knob,{size:3.2,color:h>=50?"red":"green",value:h,unit:"%",minValue:0,maxValue:100,step:1,stepPixelSize:1,disabled:s,onDrag:function(e,t){return d("set_volume",{volume:t})}}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,position:"absolute",top:"-2px",right:"-22px",color:"transparent",icon:"fast-backward",onClick:function(){return d("set_volume",{volume:"min"})}}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,position:"absolute",top:"16px",right:"-22px",color:"transparent",icon:"fast-forward",onClick:function(){return d("set_volume",{volume:"max"})}}),(0,o.createComponentVNode)(2,i.Button,{fluid:!0,position:"absolute",top:"34px",right:"-22px",color:"transparent",icon:"undo",onClick:function(){return d("set_volume",{volume:"reset"})}})]})})})})]})})}},36597:function(e,t,n){"use strict";t.__esModule=!0,t.KeycardAuth=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.KeycardAuth=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:375,height:125,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{children:1===l.waiting&&(0,o.createVNode)(1,"span",null,"Waiting for another device to confirm your request...",16)}),(0,o.createComponentVNode)(2,a.Box,{children:0===l.waiting&&(0,o.createFragment)([!!l.auth_required&&(0,o.createComponentVNode)(2,a.Button,{icon:"check-square",color:"red",textAlign:"center",lineHeight:"60px",fluid:!0,onClick:function(){return i("auth_swipe")},content:"Authorize"}),0===l.auth_required&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation-triangle",fluid:!0,onClick:function(){return i("red_alert")},content:"Red Alert"}),(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",fluid:!0,onClick:function(){return i("emergency_maint")},content:"Emergency Maintenance Access"}),(0,o.createComponentVNode)(2,a.Button,{icon:"meteor",fluid:!0,onClick:function(){return i("bsa_unlock")},content:"Bluespace Artillery Unlock"})],4)],0)})]})})})}},52169:function(e,t,n){"use strict";t.__esModule=!0,t.LaborClaimConsole=void 0;var o=n(39812),r=n(2497),a=n(71494),c=n(74814),i=n(85952);t.LaborClaimConsole=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.can_go_home,s=d.id_points,m=d.ores,p=d.status_info,C=d.unclaimed_points;return(0,o.createComponentVNode)(2,i.Window,{width:315,height:440,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Status",children:p}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Shuttle controls",children:(0,o.createComponentVNode)(2,c.Button,{content:"Move shuttle",disabled:!u,onClick:function(){return l("move_shuttle")}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Points",children:s}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Unclaimed points",buttons:(0,o.createComponentVNode)(2,c.Button,{content:"Claim points",disabled:!C,onClick:function(){return l("claim_points")}}),children:C})]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Material values",children:(0,o.createComponentVNode)(2,c.Table,{children:[(0,o.createComponentVNode)(2,c.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Material"}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:"Value"})]}),m.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,r.toTitleCase)(e.ore)}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,c.Box,{color:"label",inline:!0,children:e.value})})]},e.ore)}))]})})]})})}},83577:function(e,t,n){"use strict";t.__esModule=!0,t.LanguageMenu=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.LanguageMenu=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.admin_mode,u=l.is_living,s=l.omnitongue,m=l.languages,p=void 0===m?[]:m,C=l.unknown_languages,h=void 0===C?[]:C;return(0,o.createComponentVNode)(2,c.Window,{title:"Language Menu",width:700,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Known Languages",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:p.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,buttons:(0,o.createFragment)([!!u&&(0,o.createComponentVNode)(2,a.Button,{content:e.is_default?"Default Language":"Select as Default",disabled:!e.can_speak,selected:e.is_default,onClick:function(){return i("select_default",{language_name:e.name})}}),!!d&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Grant",onClick:function(){return i("grant_language",{language_name:e.name})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Remove",onClick:function(){return i("remove_language",{language_name:e.name})}})],4)],0),children:[e.desc," ","Key: ,",e.key," ",e.can_understand?"Can understand.":"Cannot understand."," ",e.can_speak?"Can speak.":"Cannot speak."]},e.name)}))})}),!!d&&(0,o.createComponentVNode)(2,a.Section,{title:"Unknown Languages",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Omnitongue "+(s?"Enabled":"Disabled"),selected:s,onClick:function(){return i("toggle_omnitongue")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:h.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Grant",onClick:function(){return i("grant_language",{language_name:e.name})}}),children:[e.desc," ","Key: ,",e.key," ",!!e.shadow&&"(gained from mob)"," ",e.can_speak?"Can speak.":"Cannot speak."]},e.name)}))})})]})})}},79381:function(e,t,n){"use strict";t.__esModule=!0,t.LaunchpadConsole=t.LaunchpadControl=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=function(e,t){var n=(0,r.useBackend)(t).act;return(0,o.createComponentVNode)(2,a.Grid,{width:"1px",children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-left",iconRotation:45,mb:1,onClick:function(){return n("move_pos",{x:-1,y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-left",mb:1,onClick:function(){return n("move_pos",{x:-1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-down",iconRotation:45,mb:1,onClick:function(){return n("move_pos",{x:-1,y:-1})}})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-up",mb:1,onClick:function(){return n("move_pos",{y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"R",mb:1,onClick:function(){return n("set_pos",{x:0,y:0})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-down",mb:1,onClick:function(){return n("move_pos",{y:-1})}})]}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-up",iconRotation:45,mb:1,onClick:function(){return n("move_pos",{x:1,y:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-right",mb:1,onClick:function(){return n("move_pos",{x:1})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"arrow-right",iconRotation:45,mb:1,onClick:function(){return n("move_pos",{x:1,y:-1})}})]})]})},l=function(e,t){var n=e.topLevel,c=(0,r.useBackend)(t),l=c.act,d=c.data,u=d.x,s=d.y,m=d.pad_name,p=d.range;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Input,{value:m,width:"170px",onChange:function(e,t){return l("rename",{name:t})}}),level:n?1:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Remove",color:"bad",onClick:function(){return l("remove")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Controls",level:2,children:(0,o.createComponentVNode)(2,i)})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Target",level:2,children:(0,o.createComponentVNode)(2,a.Box,{fontSize:"26px",children:[(0,o.createComponentVNode)(2,a.Box,{mb:1,children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:"X:"}),(0,o.createComponentVNode)(2,a.NumberInput,{value:u,minValue:-p,maxValue:p,lineHeight:"30px",fontSize:"26px",width:"90px",height:"30px",stepPixelSize:10,onChange:function(e,t){return l("set_pos",{x:t})}})]}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:"Y:"}),(0,o.createComponentVNode)(2,a.NumberInput,{value:s,minValue:-p,maxValue:p,stepPixelSize:10,lineHeight:"30px",fontSize:"26px",width:"90px",height:"30px",onChange:function(e,t){return l("set_pos",{y:t})}})]})]})})})]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"upload",content:"Launch",textAlign:"center",onClick:function(){return l("launch")}})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"download",content:"Pull",textAlign:"center",onClick:function(){return l("pull")}})})]})]})};t.LaunchpadControl=l;t.LaunchpadConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,d=n.data,u=d.launchpads,s=void 0===u?[]:u,m=d.selected_id;return(0,o.createComponentVNode)(2,c.Window,{width:475,height:260,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:0===s.length&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Pads Connected"})||(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Flex,{minHeight:"190px",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{width:"140px",minHeight:"190px",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,ellipsis:!0,content:e.name,selected:m===e.id,color:"transparent",onClick:function(){return i("select_pad",{id:e.id})}},e.name)}))}),(0,o.createComponentVNode)(2,a.Flex.Item,{minHeight:"100%",children:(0,o.createComponentVNode)(2,a.Divider,{vertical:!0})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,minHeight:"100%",children:m&&(0,o.createComponentVNode)(2,l)||(0,o.createComponentVNode)(2,a.Box,{children:"Please select a pad"})})]})})})})}},59955:function(e,t,n){"use strict";t.__esModule=!0,t.LaunchpadRemote=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=n(79381);t.LaunchpadRemote=function(e,t){var n=(0,r.useBackend)(t).data,l=n.has_pad,d=n.pad_closed;return(0,o.createComponentVNode)(2,c.Window,{title:"Briefcase Launchpad Remote",width:300,height:240,theme:"syndicate",children:(0,o.createComponentVNode)(2,c.Window.Content,{children:!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Launchpad Connected"})||d&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Launchpad Closed"})||(0,o.createComponentVNode)(2,i.LaunchpadControl,{topLevel:!0})})})}},71293:function(e,t,n){"use strict";t.__esModule=!0,t.LoadoutSelect=void 0;var o=n(39812),r=n(71494),a=n(85952),c=n(74814);t.LoadoutSelect=function(e,t){var n,i,l=(0,r.useBackend)(t),d=l.act,u=l.data;return(0,o.createComponentVNode)(2,a.Window,{width:500,height:450,resizable:!0,children:(0,o.createComponentVNode)(2,a.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Tabs,{style:{"vertical-align":"top",flex:"initial"},children:null!=(n=u.outfits)&&n.length?u.outfits.map((function(e){return(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:u.selected===e,onClick:function(){return d("loadout_select",{name:e})},children:e},e)})):"No loadout options."}),(0,o.createComponentVNode)(2,c.Flex,{direction:"row",width:"100%",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{width:"50%",height:"100%",style:{"vertical-align":"top"},children:(0,o.createComponentVNode)(2,c.Section,{title:"Contents",fill:!0,fitted:!0,children:null!=(i=u.items)&&i.length?u.items.map((function(e){return(0,o.createVNode)(1,"div",null,[(0,o.createVNode)(1,"div",e.icon,null,1,{style:{transform:"scale(1.5)","vertical-align":"middle",float:"left",clear:"left",height:"32px",width:"32px"}}),(0,o.createVNode)(1,"div",null,[e.name,(0,o.createTextVNode)(" "),e.quantity>1&&"x"+e.quantity,(0,o.createVNode)(1,"br")],0,{style:{display:"block","vertical-align":"middle",float:"left",width:"calc(100% - 32px)","line-height":"32px",margin:"auto"}})],4,{style:{margin:"10px 10px","text-align":"center"}},""+e.name)})):"No outfit selected."})}),(0,o.createComponentVNode)(2,c.Flex.Item,{height:"100%",width:"50%",style:{"vertical-align":"top"},children:(0,o.createComponentVNode)(2,c.Section,{title:"Preview",fill:!0,children:u.preview?(0,o.createVNode)(1,"div",null,[(0,o.createVNode)(1,"img",null,null,1,{src:"data:image/jpeg;base64,"+u.preview,style:{"image-rendering":"pixelated","-ms-interpolation-mode":"nearest-neighbor"},width:220,height:220}),(0,o.createVNode)(1,"br"),(0,o.createVNode)(1,"br"),(0,o.createVNode)(1,"div",null,[(0,o.createComponentVNode)(2,c.Button,{style:{display:"table-cell","text-align":"center"},content:"<<",onClick:function(){return d("loadout_preview_direction",{direction:-1})}}),(0,o.createComponentVNode)(2,c.Button,{style:{display:"table-cell","text-align":"center"},content:">>",onClick:function(){return d("loadout_preview_direction",{direction:1})}})],4,{style:{display:"table",width:"100%","text-align":"center"}}),(0,o.createComponentVNode)(2,c.Button,{style:{margin:"auto",display:"block","text-align":"center"},content:"Finished",onClick:function(){return d("loadout_confirm")}})],4,{style:{"text-align":"center"}}):"No outfit selected."})})]})]})})}},5568:function(e,t,n){"use strict";t.__esModule=!0,t.MafiaPanel=void 0;var o=n(39812),r=n(34380),a=(n(2497),n(71494)),c=n(74814),i=n(85952);t.MafiaPanel=function(e,t){var n=(0,a.useBackend)(t),d=n.act,u=n.data,s=u.lobbydata,m=u.players,p=u.actions,C=u.phase,h=u.roleinfo,N=u.role_theme,V=u.admin_controls,b=u.judgement_phase,f=u.timeleft,g=u.all_roles,v=h?30*m.length:7,k=s?s.filter((function(e){return"Ready"===e.status})):null;return(0,o.createComponentVNode)(2,i.Window,{title:"Mafia",theme:N,width:650,height:293+v,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:V,children:[!h&&(0,o.createComponentVNode)(2,c.Flex,{scrollable:!0,overflowY:"scroll",direction:"column",height:"100%",grow:1,children:(0,o.createComponentVNode)(2,c.Section,{title:"Lobby",mb:1,buttons:(0,o.createComponentVNode)(2,l,{phase:C,timeleft:f,admin_controls:V}),children:(0,o.createComponentVNode)(2,c.Box,{textAlign:"center",children:[(0,o.createComponentVNode)(2,c.NoticeBox,{info:!0,children:["The lobby currently has ",k.length,"/12 valid players signed up."]}),(0,o.createComponentVNode)(2,c.Flex,{direction:"column",children:!!s&&s.map((function(e){return(0,o.createComponentVNode)(2,c.Flex.Item,{basis:2,className:"Section__title candystripe",children:(0,o.createComponentVNode)(2,c.Flex,{height:2,align:"center",justify:"space-between",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{basis:0,children:e.name}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:"STATUS:"}),(0,o.createComponentVNode)(2,c.Flex.Item,{width:"30%",children:(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.Box,{color:"Ready"===e.status?"green":"red",textAlign:"center",children:[e.status," ",e.spectating]})})})]})},e)}))})]})})}),!!h&&(0,o.createComponentVNode)(2,c.Section,{title:C,minHeight:"100px",maxHeight:"50px",buttons:(0,o.createComponentVNode)(2,c.Box,{children:[!!V&&(0,o.createComponentVNode)(2,c.Button,{color:"red",icon:"gavel",tooltipPosition:"bottom-left",tooltip:"Hello admin! If it is the admin controls you seek,\nplease notice the extra scrollbar you have that players\ndo not!"})," ",(0,o.createComponentVNode)(2,c.TimeDisplay,{auto:"down",value:f})]}),children:(0,o.createComponentVNode)(2,c.Flex,{justify:"space-between",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{align:"center",textAlign:"center",maxWidth:"500px",children:[(0,o.createVNode)(1,"b",null,[(0,o.createTextVNode)("You are the "),h.role],0),(0,o.createVNode)(1,"br"),(0,o.createVNode)(1,"b",null,h.desc,0)]}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:[(0,o.createComponentVNode)(2,c.Box,{className:(0,r.classes)(["mafia32x32",h.revealed_icon]),style:{transform:"scale(2) translate(0px, 10%)","vertical-align":"middle"}}),(0,o.createComponentVNode)(2,c.Box,{className:(0,r.classes)(["mafia32x32",h.hud_icon]),style:{transform:"scale(2) translate(-5px, -5px)","vertical-align":"middle"}})]})]})}),(0,o.createComponentVNode)(2,c.Flex,{children:!!p&&p.map((function(e){return(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,c.Button,{onClick:function(){return d("mf_action",{atype:e})},children:e})},e)}))}),!!h&&(0,o.createComponentVNode)(2,c.Section,{title:"Judgement",buttons:(0,o.createComponentVNode)(2,c.Button,{color:"transparent",icon:"info",tooltipPosition:"left",tooltip:"When someone is on trial, you are in charge of their fate.\nInnocent winning means the person on trial can live to see\nanother day... and in losing they do not. You can go back\nto abstaining with the middle button if you reconsider."}),children:[(0,o.createComponentVNode)(2,c.Flex,{justify:"space-around",children:[(0,o.createComponentVNode)(2,c.Button,{icon:"smile-beam",content:"INNOCENT!",color:"good",disabled:!b,onClick:function(){return d("vote_innocent")}}),!b&&(0,o.createComponentVNode)(2,c.Box,{children:"There is nobody on trial at the moment."}),!!b&&(0,o.createComponentVNode)(2,c.Box,{children:"It is now time to vote, vote the accused innocent or guilty!"}),(0,o.createComponentVNode)(2,c.Button,{icon:"angry",content:"GUILTY!",color:"bad",disabled:!b,onClick:function(){return d("vote_guilty")}})]}),(0,o.createComponentVNode)(2,c.Flex,{justify:"center",children:(0,o.createComponentVNode)(2,c.Button,{icon:"meh",content:"Abstain",color:"white",disabled:!b,onClick:function(){return d("vote_abstain")}})})]}),"No Game"!==C&&(0,o.createComponentVNode)(2,c.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,c.Flex.Item,{grow:2,children:(0,o.createComponentVNode)(2,c.Section,{title:"Players",buttons:(0,o.createComponentVNode)(2,c.Button,{color:"transparent",icon:"info",tooltip:"This is the list of all the players in\nthe game, during the day phase you may vote on them and,\ndepending on your role, select players\nat certain phases to use your ability."}),children:(0,o.createComponentVNode)(2,c.Flex,{direction:"column",children:!!m&&m.map((function(e){return(0,o.createComponentVNode)(2,c.Flex.Item,{height:"30px",className:"Section__title candystripe",children:(0,o.createComponentVNode)(2,c.Flex,{height:"18px",justify:"space-between",align:"center",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{basis:16,children:[!!e.alive&&(0,o.createComponentVNode)(2,c.Box,{children:e.name}),!e.alive&&(0,o.createComponentVNode)(2,c.Box,{color:"red",children:e.name})]}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:!e.alive&&(0,o.createComponentVNode)(2,c.Box,{color:"red",children:"DEAD"})}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:e.votes!==undefined&&!!e.alive&&(0,o.createFragment)([(0,o.createTextVNode)("Votes : "),e.votes,(0,o.createTextVNode)(" ")],0)}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:!!e.actions&&e.actions.map((function(t){return(0,o.createComponentVNode)(2,c.Button,{onClick:function(){return d("mf_targ_action",{atype:t,target:e.ref})},children:t},t)}))})]})},e.ref)}))})})}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:2,children:(0,o.createComponentVNode)(2,c.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,c.Section,{title:"Roles and Notes",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{color:"transparent",icon:"address-book",tooltipPosition:"bottom-left",tooltip:"The top section is the roles in the game. You can\npress the question mark to get a quick blurb\nabout the role itself."}),(0,o.createComponentVNode)(2,c.Button,{color:"transparent",icon:"edit",tooltipPosition:"bottom-left",tooltip:"The bottom section are your notes. on some roles this\nwill just be an empty box, but on others it records the\nactions of your abilities (so for example, your\ndetective work revealing a changeling)."})],4),children:(0,o.createComponentVNode)(2,c.Flex,{direction:"column",children:!!g&&g.map((function(e){return(0,o.createComponentVNode)(2,c.Flex.Item,{height:"30px",className:"Section__title candystripe",children:(0,o.createComponentVNode)(2,c.Flex,{height:"18px",align:"center",justify:"space-between",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{children:e}),(0,o.createComponentVNode)(2,c.Flex.Item,{textAlign:"right",children:(0,o.createComponentVNode)(2,c.Button,{color:"transparent",icon:"question",onClick:function(){return d("mf_lookup",{atype:e.slice(0,-3)})}})})]})},e)}))})}),!!h&&(0,o.createComponentVNode)(2,c.Flex.Item,{height:0,grow:1,children:(0,o.createComponentVNode)(2,c.Section,{scrollable:!0,fill:!0,overflowY:"scroll",children:h!==undefined&&!!h.action_log&&h.action_log.map((function(e){return(0,o.createComponentVNode)(2,c.Box,{children:e},e)}))})})]})})]}),(0,o.createComponentVNode)(2,c.Flex,{mt:1,direction:"column",children:(0,o.createComponentVNode)(2,c.Flex.Item,{children:!!V&&(0,o.createComponentVNode)(2,c.Section,{textAlign:"center",children:(0,o.createComponentVNode)(2,c.Collapsible,{title:"ADMIN CONTROLS",color:"red",children:[(0,o.createComponentVNode)(2,c.Button,{icon:"exclamation-triangle",color:"black",tooltipPosition:"top",tooltip:"Almost all of these are all built to help me debug\nthe game (ow, debugging a 12 player game!) So they are\nrudamentary and prone to breaking at the drop of a hat.\nMake sure you know what you're doing when you press one.\nAlso because an admin did it: do not gib/delete/dust\nanyone! It will runtime the game to death!",content:"A Kind, Coder Warning",onClick:function(){return d("next_phase")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,c.Button,{icon:"arrow-right",tooltipPosition:"top",tooltip:"This will advance the game to the next phase\n(day talk > day voting, day voting > night/trial)\npretty fun to just spam this and freak people out,\ntry that roundend!",content:"Next Phase",onClick:function(){return d("next_phase")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"home",tooltipPosition:"top",tooltip:"Hopefully you won't use this button\noften, it's a safety net just in case\nmafia players somehow escape (nullspace\nredirects to the error room then station)\nEither way, VERY BAD IF THAT HAPPENS as\ngodmoded assistants will run free. Use\nthis to recollect them then make a bug report.",content:"Send All Players Home",onClick:function(){return d("players_home")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"sync-alt",tooltipPosition:"top",tooltip:"This immediately ends the game, and attempts to start\nanother. Nothing will happen if another\ngame fails to start!",content:"New Game",onClick:function(){return d("new_game")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"skull",tooltipPosition:"top",tooltip:"Deletes the datum, clears all landmarks, makes mafia\nas it was roundstart: nonexistant. Use this if you\nreally mess things up. You did mess things up, didn't you.",content:"Nuke",onClick:function(){return d("nuke")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,c.Button,{icon:"paint-brush",tooltipPosition:"top",tooltip:"This is the custom game creator, it is... simple.\nYou put in roles and until you press CANCEL or FINISH\nit will keep letting you add more roles. Assitants\non the bottom because of pathing stuff. Resets after\nthe round finishes back to 12 player random setups.",content:"Create Custom Setup",onClick:function(){return d("debug_setup")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"paint-roller",tooltipPosition:"top",tooltip:"If you messed up and accidently didn't make it how\nyou wanted, simply just press this to reset it. The game\nwill auto reset after each game as well.",content:"Reset Custom Setup",onClick:function(){return d("cancel_setup")}})]})})})})]})})};var l=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.phase,d=i.timeleft,u=i.admin_controls;return(0,o.createComponentVNode)(2,c.Box,{children:["[Phase = ",l," | ",(0,o.createComponentVNode)(2,c.TimeDisplay,{auto:"down",value:d}),"]"," ",(0,o.createComponentVNode)(2,c.Button,{icon:"clipboard-check",tooltipPosition:"bottom-left",tooltip:"Signs you up for the next game. If there\nis an ongoing one, you will be signed up\nfor the next.",content:"Sign Up",onClick:function(){return r("mf_signup")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"eye",tooltipPosition:"bottom-left",tooltip:"Spectates games until you turn it off.\nAutomatically enabled when you die in game,\nbecause I assumed you would want to see the\nconclusion. You won't get messages if you\nrejoin SS13.",content:"Spectate",onClick:function(){return r("mf_spectate")}}),!!u&&(0,o.createComponentVNode)(2,c.Button,{color:"red",icon:"gavel",tooltipPosition:"bottom-left",tooltip:"Hello admin! If it is the admin controls you seek,\nplease notice the scrollbar you have that players\ndo not!"})]})}},42159:function(e,t,n){"use strict";t.__esModule=!0,t.MalfunctionModulePicker=void 0;var o=n(39812),r=n(71494),a=n(85952),c=n(89761);t.MalfunctionModulePicker=function(e,t){var n=(0,r.useBackend)(t),i=(n.act,n.data.processingTime);return(0,o.createComponentVNode)(2,a.Window,{width:620,height:525,theme:"malfunction",resizable:!0,children:(0,o.createComponentVNode)(2,a.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,c.GenericUplink,{currencyAmount:i,currencySymbol:"PT"})})})}},80881:function(e,t,n){"use strict";t.__esModule=!0,t.MechBayPowerConsole=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.MechBayPowerConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.recharge_port,d=l&&l.mech,u=d&&d.cell;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:200,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Mech status",textAlign:"center",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Sync",onClick:function(){return i("reconnect")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Integrity",children:!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No power port detected. Please re-sync."})||!d&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mech detected."})||(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.health/d.maxhealth,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No power port detected. Please re-sync."})||!d&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No mech detected."})||!u&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No cell is installed."})||(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.charge/u.maxcharge,ranges:{good:[.7,Infinity],average:[.3,.7],bad:[-Infinity,.3]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u.charge})," / "+u.maxcharge]})})]})})})})}},37305:function(e,t,n){"use strict";t.__esModule=!0,t.MechpadConsole=t.MechpadControl=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=function(e,t){var n=e.topLevel,c=(0,r.useBackend)(t),i=c.act,l=c.data,d=l.pad_name,u=l.connected_mechpad;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Input,{value:d,width:"170px",onChange:function(e,t){return i("rename",{name:t})}}),level:n?1:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Remove",color:"bad",onClick:function(){return i("remove")}}),children:!u&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",textAlign:"center",children:"No Pad Connected."})||(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"upload",content:"Launch",textAlign:"center",onClick:function(){return i("launch")}})})};t.MechpadControl=i;t.MechpadConsole=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.mechpads,s=void 0===u?[]:u,m=d.selected_id;return(0,o.createComponentVNode)(2,c.Window,{width:475,height:130,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:0===s.length&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Pads Connected"})||(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Flex,{minHeight:"70px",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{width:"140px",minHeight:"70px",children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,ellipsis:!0,content:e.name,selected:m===e.id,color:"transparent",onClick:function(){return l("select_pad",{id:e.id})}},e.name)}))}),(0,o.createComponentVNode)(2,a.Flex.Item,{minHeight:"100%",children:(0,o.createComponentVNode)(2,a.Divider,{vertical:!0})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,minHeight:"100%",children:m&&(0,o.createComponentVNode)(2,i)||(0,o.createComponentVNode)(2,a.Box,{children:"Please select a pad"})})]})})})})}},74702:function(e,t,n){"use strict";t.__esModule=!0,t.MedicalKiosk=void 0;var o=n(39812),r=(n(2497),n(71494)),a=n(74814),c=n(85952);t.MedicalKiosk=function(e,t){var n=(0,r.useBackend)(t),p=(n.act,n.data),C=(0,r.useSharedState)(t,"scanIndex")[0],h=p.active_status_1,N=p.active_status_2,V=p.active_status_3,b=p.active_status_4;return(0,o.createComponentVNode)(2,c.Window,{width:575,height:420,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Flex,{mb:1,children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mr:1,children:(0,o.createComponentVNode)(2,a.Section,{minHeight:"100%",children:[(0,o.createComponentVNode)(2,i,{index:1,icon:"procedures",name:"General Health Scan",description:"Reads back exact values of your general health scan."}),(0,o.createComponentVNode)(2,i,{index:2,icon:"heartbeat",name:"Symptom Based Checkup",description:"Provides information based on various non-obvious symptoms,\nlike blood levels or disease status."}),(0,o.createComponentVNode)(2,i,{index:3,icon:"radiation-alt",name:"Neurological/Radiological Scan",description:"Provides information about brain trauma and radiation."}),(0,o.createComponentVNode)(2,i,{index:4,icon:"mortar-pestle",name:"Chemical and Psychoactive Scan",description:"Provides a list of consumed chemicals, as well as potential\nside effects."})]})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,l)})]}),!!h&&1===C&&(0,o.createComponentVNode)(2,d),!!N&&2===C&&(0,o.createComponentVNode)(2,u),!!V&&3===C&&(0,o.createComponentVNode)(2,s),!!b&&4===C&&(0,o.createComponentVNode)(2,m)]})})};var i=function(e,t){var n=e.index,c=e.name,i=e.description,l=e.icon,d=(0,r.useBackend)(t),u=d.act,s=d.data,m=(0,r.useSharedState)(t,"scanIndex"),p=m[0],C=m[1],h=s["active_status_"+n];return(0,o.createComponentVNode)(2,a.Flex,{spacing:1,align:"baseline",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{width:"16px",textAlign:"center",children:(0,o.createComponentVNode)(2,a.Icon,{name:h?"check":"dollar-sign",color:h?"green":"grey"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:l,selected:h&&p===n,tooltip:i,tooltipPosition:"right",content:c,onClick:function(){h||u("beginScan_"+n),C(n)}})})]})},l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.kiosk_cost,d=i.patient_name;return(0,o.createComponentVNode)(2,a.Section,{minHeight:"100%",children:[(0,o.createComponentVNode)(2,a.Box,{italic:!0,children:["Greetings Valued Employee! Please select a desired automatic health check procedure. Diagnosis costs ",(0,o.createVNode)(1,"b",null,[l,(0,o.createTextVNode)(" credits.")],0)]}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mr:1,children:"Patient:"}),d]}),(0,o.createComponentVNode)(2,a.Button,{mt:1,tooltip:"Resets the current scanning target, cancelling current scans.",icon:"sync",color:"average",onClick:function(){return c("clearTarget")},content:"Reset Scanner"})]})},d=function(e,t){var n=(0,r.useBackend)(t).data,c=n.patient_health,i=n.brute_health,l=n.burn_health,d=n.suffocation_health,u=n.toxin_health;return(0,o.createComponentVNode)(2,a.Section,{title:"Patient Health",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Total Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c/100,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c}),"%"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brute Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Burn Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:l})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Oxygen Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Toxin Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u})})})]})})},u=function(e,t){var n=(0,r.useBackend)(t).data,c=n.patient_status,i=n.patient_illness,l=n.illness_info,d=n.bleed_status,u=n.blood_levels,s=n.blood_status;return(0,o.createComponentVNode)(2,a.Section,{title:"Symptom Based Checkup",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Patient Status",color:"good",children:c}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disease Status",children:i}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disease information",children:l}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Levels",children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:u/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:u})}),(0,o.createComponentVNode)(2,a.Box,{mt:1,color:"label",children:d})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Information",children:s})]})})},s=function(e,t){var n=(0,r.useBackend)(t).data,c=n.clone_health,i=n.brain_damage,l=n.brain_health,d=n.rad_contamination_status,u=n.rad_contamination_value,s=n.rad_sickness_status,m=n.rad_sickness_value,p=n.trauma_status;return(0,o.createComponentVNode)(2,a.Section,{title:"Patient Neurological and Radiological Health",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cellular Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:c/100,color:"good",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c})})}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain Damage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:i/100,color:"good",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i})})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain Status",color:"health-0",children:l}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain Trauma Status",children:p}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Sickness Status",children:s}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Sickness Percentage",children:[m,"%"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Contamination Status",children:d}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Contamination Percentage",children:[u,"%"]})]})})},m=function(e,t){var n=(0,r.useBackend)(t).data,c=n.chemical_list,i=void 0===c?[]:c,l=n.overdose_list,d=void 0===l?[]:l,u=n.addict_list,s=void 0===u?[]:u,m=n.hallucinating_status;return(0,o.createComponentVNode)(2,a.Section,{title:"Chemical and Psychoactive Analysis",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Chemical Contents",children:[0===i.length&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No reagents detected."}),i.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{color:"good",children:[e.volume," units of ",e.name]},e.id)}))]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Overdose Status",color:"bad",children:[0===d.length&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Patient is not overdosing."}),d.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:["Overdosing on ",e.name]},e.id)}))]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Addiction Status",color:"bad",children:[0===s.length&&(0,o.createComponentVNode)(2,a.Box,{color:"good",children:"Patient has no addictions."}),s.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:["Addicted to ",e.name]},e.id)}))]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Psychoactive Status",children:m})]})})}},61443:function(e,t,n){"use strict";t.__esModule=!0,t.Microscope=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.Microscope=function(e,t){var n=(0,r.useBackend)(t),d=n.act,u=n.data,s=(0,r.useSharedState)(t,"tab",1),m=s[0],p=s[1],C=u.has_dish,h=u.cell_lines,N=void 0===h?[]:h,V=u.viruses,b=void 0===V?[]:V;return(0,o.createComponentVNode)(2,c.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Dish Sample",children:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!C,onClick:function(){return d("eject_petridish")}})})})}),(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{icon:"microscope",lineHeight:"23px",selected:1===m,onClick:function(){return p(1)},children:["Micro-Organisms (",N.length,")"]}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{icon:"microscope",lineHeight:"23px",selected:2===m,onClick:function(){return p(2)},children:["Viruses (",b.length,")"]})]}),1===m&&(0,o.createComponentVNode)(2,i,{cell_lines:N}),2===m&&(0,o.createComponentVNode)(2,l,{viruses:b})]})})};var i=function(e,t){var n=e.cell_lines,c=(0,r.useBackend)(t);c.act,c.data;return n.length?n.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.desc,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Growth Rate",children:e.growth_rate}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Virus Suspectibility",children:e.suspectibility}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Required Reagents",children:e.requireds}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Supplementary Reagents",children:e.supplementaries}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Suppresive reagents",children:e.suppressives})]})},e.desc)})):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No micro-organisms found"})},l=function(e,t){var n=e.viruses;(0,r.useBackend)(t).act;return n.length?n.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.desc},e.desc)})):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No viruses found"})}},62012:function(e,t,n){"use strict";t.__esModule=!0,t.MiningVendor=void 0;var o=n(39812),r=n(34380),a=n(71494),c=n(74814),i=n(85952);t.MiningVendor=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=[].concat(d.product_records);return(0,o.createComponentVNode)(2,i.Window,{width:425,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{title:"User",children:d.user&&(0,o.createComponentVNode)(2,c.Box,{children:["Welcome, ",(0,o.createVNode)(1,"b",null,d.user.name||"Unknown",0),","," ",(0,o.createVNode)(1,"b",null,d.user.job||"Unemployed",0),"!",(0,o.createVNode)(1,"br"),"Your balance is ",(0,o.createVNode)(1,"b",null,[d.user.points,(0,o.createTextVNode)(" mining points")],0),"."]})||(0,o.createComponentVNode)(2,c.Box,{color:"light-gray",children:["No registered ID card!",(0,o.createVNode)(1,"br"),"Please contact your local HoP!"]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Equipment",children:(0,o.createComponentVNode)(2,c.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:[(0,o.createVNode)(1,"span",(0,r.classes)(["vending32x32",e.path]),null,1,{style:{"vertical-align":"middle"}})," ",(0,o.createVNode)(1,"b",null,e.name,0)]}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,o.createComponentVNode)(2,c.Button,{style:{"min-width":"95px","text-align":"center"},disabled:!d.user||e.price>d.user.points,content:e.price+" points",onClick:function(){return l("purchase",{ref:e.ref})}})})]},e.name)}))})})]})})}},83413:function(e,t,n){"use strict";t.__esModule=!0,t.Mint=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.Mint=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.inserted_materials||[];return(0,o.createComponentVNode)(2,c.Window,{children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Materials",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:l.processing?"times":"power-off",content:l.processing?"Stop":"Start",selected:l.processing,onClick:function(){return i(l.processing?"stoppress":"startpress")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:d.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.material,buttons:(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:l.chosen_material===e.material,onClick:function(){return i("changematerial",{material_name:e.material})}}),children:[e.amount," cm\xb3"]},e.material)}))})}),(0,o.createComponentVNode)(2,a.Section,{children:["Pressed ",l.produced_coins," coins this cycle."]})]})})}},97397:function(e,t,n){"use strict";t.__esModule=!0,t.Mule=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=n(21451);t.Mule=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.on,s=d.cell,m=d.cellPercent,p=d.load,C=d.mode,h=d.modeStatus,N=d.haspai,V=d.autoReturn,b=d.autoPickup,f=d.reportDelivery,g=d.destination,v=d.home,k=d.id,x=d.destinations,B=void 0===x?[]:x,_=d.locked&&!d.siliconUser;return(0,o.createComponentVNode)(2,c.Window,{width:350,height:425,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,i.InterfaceLockNoticeBox),(0,o.createComponentVNode)(2,a.Section,{title:"Status",minHeight:"110px",buttons:!_&&(0,o.createComponentVNode)(2,a.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,onClick:function(){return l("power")}}),children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:s?m/100:0,color:s?"good":"bad"}),(0,o.createComponentVNode)(2,a.Flex,{mt:1,children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mode",color:h,children:C})})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Load",color:p?"good":"average",children:p||"None"})})})]})]}),!_&&(0,o.createComponentVNode)(2,a.Section,{title:"Controls",buttons:(0,o.createFragment)([!!p&&(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Unload",onClick:function(){return l("unload")}}),!!N&&(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject PAI",onClick:function(){return l("ejectpai")}})],0),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"ID",children:(0,o.createComponentVNode)(2,a.Input,{value:k,onChange:function(e,t){return l("setid",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Destination",children:[(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:g||"None",options:B,width:"150px",onSelected:function(e){return l("destination",{value:e})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"stop",content:"Stop",onClick:function(){return l("stop")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"play",content:"Go",onClick:function(){return l("go")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Home",children:[(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:v,options:B,width:"150px",onSelected:function(e){return l("destination",{value:e})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"home",content:"Go Home",onClick:function(){return l("home")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Settings",children:[(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:V,content:"Auto-Return",onClick:function(){return l("autored")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:b,content:"Auto-Pickup",onClick:function(){return l("autopick")}}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:f,content:"Report Delivery",onClick:function(){return l("report")}})]})]})})]})})}},42370:function(e,t,n){"use strict";t.__esModule=!0,t.NaniteChamberControlContent=t.NaniteChamberControl=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NaniteChamberControl=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{width:380,height:570,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.status_msg,d=i.locked,u=i.occupant_name,s=i.has_nanites,m=i.nanite_volume,p=i.regen_rate,C=i.safety_threshold,h=i.cloud_id,N=i.scan_level;if(l)return(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:l});var V=i.mob_programs||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Chamber: "+u,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d?"lock":"lock-open",content:d?"Locked":"Unlocked",color:d?"bad":"default",onClick:function(){return c("toggle_lock")}}),children:s?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Status",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"exclamation-triangle",content:"Destroy Nanites",color:"bad",onClick:function(){return c("remove_nanites")}}),children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Nanite Volume",children:m}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Growth Rate",children:p})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Safety Threshold",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:C,minValue:0,maxValue:500,width:"39px",onChange:function(e,t){return c("set_safety",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cloud ID",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:h,minValue:0,maxValue:100,step:1,stepPixelSize:3,width:"39px",onChange:function(e,t){return c("set_cloud",{value:t})}})})]})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Programs",level:2,children:V.map((function(e){var t=e.extra_settings||[],n=e.rules||[];return(0,o.createComponentVNode)(2,a.Collapsible,{title:e.name,children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:e.desc}),N>=2&&(0,o.createComponentVNode)(2,a.Grid.Column,{size:.6,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.activated?"good":"bad",children:e.activated?"Active":"Inactive"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Nanites Consumed",children:[e.use_rate,"/s"]})]})})]}),N>=2&&(0,o.createComponentVNode)(2,a.Grid,{children:[!!e.can_trigger&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Triggers",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:e.trigger_cost}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:e.trigger_cooldown}),!!e.timer_trigger_delay&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:[e.timer_trigger_delay," s"]}),!!e.timer_trigger&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Repeat Timer",children:[e.timer_trigger," s"]})]})})}),!(!e.timer_restart&&!e.timer_shutdown)&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[e.timer_restart&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart Timer",children:[e.timer_restart," s"]}),e.timer_shutdown&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown Timer",children:[e.timer_shutdown," s"]})]})})})]}),N>=3&&!!e.has_extra_settings&&(0,o.createComponentVNode)(2,a.Section,{title:"Extra Settings",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:t.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:e.value},e.name)}))})}),N>=4&&(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[!!e.activation_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:e.activation_code}),!!e.deactivation_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:e.deactivation_code}),!!e.kill_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:e.kill_code}),!!e.can_trigger&&!!e.trigger_code&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:e.trigger_code})]})})}),e.has_rules&&(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Rules",level:2,children:n.map((function(e){return(0,o.createFragment)([e.display,(0,o.createVNode)(1,"br")],0,e.display)}))})})]})]})},e.name)}))})],4):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{bold:!0,color:"bad",textAlign:"center",fontSize:"30px",mb:1,children:"No Nanites Detected"}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,icon:"syringe",content:" Implant Nanites",color:"green",textAlign:"center",fontSize:"30px",lineHeight:"50px",onClick:function(){return c("nanite_injection")}})],4)})};t.NaniteChamberControlContent=i},93623:function(e,t,n){"use strict";t.__esModule=!0,t.NaniteCloudControl=t.NaniteCloudBackupDetails=t.NaniteCloudBackupList=t.NaniteInfoBox=t.NaniteDiskBox=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=function(e,t){var n=(0,r.useBackend)(t).data,c=n.has_disk,i=n.has_program,d=n.disk;return c?i?(0,o.createComponentVNode)(2,l,{program:d}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Inserted disk has no program"}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No disk inserted"})};t.NaniteDiskBox=i;var l=function(e,t){var n=e.program,r=n.name,c=n.desc,i=n.activated,l=n.use_rate,d=n.can_trigger,u=n.trigger_cost,s=n.trigger_cooldown,m=n.activation_code,p=n.deactivation_code,C=n.kill_code,h=n.trigger_code,N=n.timer_restart,V=n.timer_shutdown,b=n.timer_trigger,f=n.timer_trigger_delay,g=n.extra_settings||[];return(0,o.createComponentVNode)(2,a.Section,{title:r,level:2,buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:i?"good":"bad",children:i?"Activated":"Deactivated"}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{mr:1,children:c}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:.5,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Use Rate",children:l}),!!d&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:u}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:s})],4)]})})]}),(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:m}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:p}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:C}),!!d&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:h})]})})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Delays",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart",children:[N," s"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown",children:[V," s"]}),!!d&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:[b," s"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:[f," s"]})],4)]})})})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Extra Settings",level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:g.map((function(e){var t={number:(0,o.createFragment)([e.value,e.unit],0),text:e.value,type:e.value,boolean:e.value?e.true_text:e.false_text};return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:t[e.type]},e.name)}))})})]})};t.NaniteInfoBox=l;var d=function(e,t){var n=(0,r.useBackend)(t),c=n.act;return(n.data.cloud_backups||[]).map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Backup #"+e.cloud_id,textAlign:"center",onClick:function(){return c("set_view",{view:e.cloud_id})}},e.cloud_id)}))};t.NaniteCloudBackupList=d;var u=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,d=i.current_view,u=i.disk,s=i.has_program,m=i.cloud_backup,p=u&&u.can_rule||!1;if(!m)return(0,o.createComponentVNode)(2,a.NoticeBox,{children:"ERROR: Backup not found"});var C=i.cloud_programs||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Backup #"+d,level:2,buttons:!!s&&(0,o.createComponentVNode)(2,a.Button,{icon:"upload",content:"Upload From Disk",color:"good",onClick:function(){return c("upload_program")}}),children:C.map((function(e){var t=e.rules||[];return(0,o.createComponentVNode)(2,a.Collapsible,{title:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"minus-circle",color:"bad",onClick:function(){return c("remove_program",{program_id:e.id})}}),children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,l,{program:e}),(!!p||!!e.has_rules)&&(0,o.createComponentVNode)(2,a.Section,{mt:-2,title:"Rules",level:2,buttons:!!p&&(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Add Rule from Disk",color:"good",onClick:function(){return c("add_rule",{program_id:e.id})}}),children:e.has_rules?t.map((function(t){return(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"minus-circle",color:"bad",onClick:function(){return c("remove_rule",{program_id:e.id,rule_id:t.id})}})," "+t.display]},t.display)})):(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"No Active Rules"})})]})},e.name)}))})};t.NaniteCloudBackupDetails=u;t.NaniteCloudControl=function(e,t){var n=(0,r.useBackend)(t),l=n.act,s=n.data,m=s.has_disk,p=s.current_view,C=s.new_backup_id;return(0,o.createComponentVNode)(2,c.Window,{width:375,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Program Disk",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!m,onClick:function(){return l("eject")}}),children:(0,o.createComponentVNode)(2,i)}),(0,o.createComponentVNode)(2,a.Section,{title:"Cloud Storage",buttons:p?(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"Return",onClick:function(){return l("set_view",{view:0})}}):(0,o.createFragment)(["New Backup: ",(0,o.createComponentVNode)(2,a.NumberInput,{value:C,minValue:1,maxValue:100,stepPixelSize:4,width:"39px",onChange:function(e,t){return l("update_new_backup_value",{value:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return l("create_backup")}})],0),children:s.current_view?(0,o.createComponentVNode)(2,u):(0,o.createComponentVNode)(2,d)})]})})}},22682:function(e,t,n){"use strict";t.__esModule=!0,t.NaniteProgramHub=void 0;var o=n(39812),r=n(64499),a=n(71494),c=n(74814),i=n(85952);t.NaniteProgramHub=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.detail_view,s=d.disk,m=d.has_disk,p=d.has_program,C=d.programs,h=void 0===C?{}:C,N=(0,a.useSharedState)(t,"category"),V=N[0],b=N[1],f=h&&h[V]||[];return(0,o.createComponentVNode)(2,i.Window,{width:500,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{title:"Program Disk",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:"eject",content:"Eject",onClick:function(){return l("eject")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"minus-circle",content:"Delete Program",onClick:function(){return l("clear")}})],4),children:m?p?(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Program Name",children:s.name}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Description",children:s.desc})]}):(0,o.createComponentVNode)(2,c.NoticeBox,{children:"No Program Installed"}):(0,o.createComponentVNode)(2,c.NoticeBox,{children:"Insert Disk"})}),(0,o.createComponentVNode)(2,c.Section,{title:"Programs",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:u?"info":"list",content:u?"Detailed":"Compact",onClick:function(){return l("toggle_details")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"sync",content:"Sync Research",onClick:function(){return l("refresh")}})],4),children:null!==h?(0,o.createComponentVNode)(2,c.Flex,{children:[(0,o.createComponentVNode)(2,c.Flex.Item,{minWidth:"110px",children:(0,o.createComponentVNode)(2,c.Tabs,{vertical:!0,children:(0,r.map)((function(e,t){var n=t.substring(0,t.length-8);return(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:t===V,onClick:function(){return b(t)},children:n},t)}))(h)})}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1,basis:0,children:u?f.map((function(e){return(0,o.createComponentVNode)(2,c.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"download",content:"Download",disabled:!m,onClick:function(){return l("download",{program_id:e.id})}}),children:e.desc},e.id)})):(0,o.createComponentVNode)(2,c.LabeledList,{children:f.map((function(e){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.name,buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"download",content:"Download",disabled:!m,onClick:function(){return l("download",{program_id:e.id})}})},e.id)}))})})]}):(0,o.createComponentVNode)(2,c.NoticeBox,{children:"No nanite programs are currently researched."})})]})})}},87554:function(e,t,n){"use strict";t.__esModule=!0,t.NaniteProgrammerContent=t.NaniteProgrammer=t.NaniteExtraBoolean=t.NaniteExtraType=t.NaniteExtraText=t.NaniteExtraNumber=t.NaniteExtraEntry=t.NaniteDelays=t.NaniteCodes=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Codes",level:3,mr:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Activation",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.activation_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return c("set_code",{target_code:"activation",code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.deactivation_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return c("set_code",{target_code:"deactivation",code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.kill_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return c("set_code",{target_code:"kill",code:t})}})}),!!i.can_trigger&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.trigger_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return c("set_code",{target_code:"trigger",code:t})}})})]})})};t.NaniteCodes=i;var l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data;return(0,o.createComponentVNode)(2,a.Section,{title:"Delays",level:3,ml:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Restart Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_restart,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return c("set_restart_timer",{delay:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_shutdown,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return c("set_shutdown_timer",{delay:t})}})}),!!i.can_trigger&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Repeat Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_trigger,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return c("set_trigger_timer",{delay:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:i.timer_trigger_delay,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return c("set_timer_trigger_delay",{delay:t})}})})],4)]})})};t.NaniteDelays=l;var d=function(e,t){var n=e.extra_setting,r=n.name,c=n.type,i={number:(0,o.createComponentVNode)(2,u,{extra_setting:n}),text:(0,o.createComponentVNode)(2,s,{extra_setting:n}),type:(0,o.createComponentVNode)(2,m,{extra_setting:n}),boolean:(0,o.createComponentVNode)(2,p,{extra_setting:n})};return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:r,children:i[c]})};t.NaniteExtraEntry=d;var u=function(e,t){var n=e.extra_setting,c=(0,r.useBackend)(t).act,i=n.name,l=n.value,d=n.min,u=n.max,s=n.unit;return(0,o.createComponentVNode)(2,a.NumberInput,{value:l,width:"64px",minValue:d,maxValue:u,unit:s,onChange:function(e,t){return c("set_extra_setting",{target_setting:i,value:t})}})};t.NaniteExtraNumber=u;var s=function(e,t){var n=e.extra_setting,c=(0,r.useBackend)(t).act,i=n.name,l=n.value;return(0,o.createComponentVNode)(2,a.Input,{value:l,width:"200px",onInput:function(e,t){return c("set_extra_setting",{target_setting:i,value:t})}})};t.NaniteExtraText=s;var m=function(e,t){var n=e.extra_setting,c=(0,r.useBackend)(t).act,i=n.name,l=n.value,d=n.types;return(0,o.createComponentVNode)(2,a.Dropdown,{over:!0,selected:l,width:"150px",options:d,onSelected:function(e){return c("set_extra_setting",{target_setting:i,value:e})}})};t.NaniteExtraType=m;var p=function(e,t){var n=e.extra_setting,c=(0,r.useBackend)(t).act,i=n.name,l=n.value,d=n.true_text,u=n.false_text;return(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:l?d:u,checked:l,onClick:function(){return c("set_extra_setting",{target_setting:i})}})};t.NaniteExtraBoolean=p;t.NaniteProgrammer=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{width:420,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,C)})})};var C=function(e,t){var n=(0,r.useBackend)(t),c=n.act,u=n.data,s=u.has_disk,m=u.has_program,p=u.name,C=u.desc,h=u.use_rate,N=u.can_trigger,V=u.trigger_cost,b=u.trigger_cooldown,f=u.activated,g=u.has_extra_settings,v=u.extra_settings,k=void 0===v?{}:v;return s?m?(0,o.createComponentVNode)(2,a.Section,{title:p,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return c("eject")}}),children:[(0,o.createComponentVNode)(2,a.Section,{title:"Info",level:2,children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:C}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:.7,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Use Rate",children:h}),!!N&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:V}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cooldown",children:b})],4)]})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Settings",level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:f?"power-off":"times",content:f?"Active":"Inactive",selected:f,color:"bad",bold:!0,onClick:function(){return c("toggle_active")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,i)}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,l)})]}),!!g&&(0,o.createComponentVNode)(2,a.Section,{title:"Special",level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:k.map((function(e){return(0,o.createComponentVNode)(2,d,{extra_setting:e},e.name)}))})})]})]}):(0,o.createComponentVNode)(2,a.Section,{title:"Blank Disk",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return c("eject")}})}):(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"Insert a nanite program disk"})};t.NaniteProgrammerContent=C},73708:function(e,t,n){"use strict";t.__esModule=!0,t.NaniteRemoteContent=t.NaniteRemote=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NaniteRemote=function(e,t){return(0,o.createComponentVNode)(2,c.Window,{width:420,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.code,d=i.locked,u=i.mode,s=i.program_name,m=i.relay_code,p=i.comms,C=i.message,h=i.saved_settings,N=void 0===h?[]:h;return d?(0,o.createComponentVNode)(2,a.NoticeBox,{children:"This interface is locked."}):(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Nanite Control",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"lock",content:"Lock Interface",onClick:function(){return c("lock")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:[(0,o.createComponentVNode)(2,a.Input,{value:s,maxLength:14,width:"130px",onChange:function(e,t){return c("update_name",{name:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"save",content:"Save",onClick:function(){return c("save")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:p?"Comm Code":"Signal Code",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:l,minValue:0,maxValue:9999,width:"47px",step:1,stepPixelSize:2,onChange:function(e,t){return c("set_code",{code:t})}})}),!!p&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message",children:(0,o.createComponentVNode)(2,a.Input,{value:C,width:"270px",onChange:function(e,t){return c("set_message",{value:t})}})}),"Relay"===u&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Relay Code",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:m,minValue:0,maxValue:9999,width:"47px",step:1,stepPixelSize:2,onChange:function(e,t){return c("set_relay_code",{code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Signal Mode",children:["Off","Local","Targeted","Area","Relay"].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e,selected:u===e,onClick:function(){return c("select_mode",{mode:e})}},e)}))})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Saved Settings",children:N.length>0?(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{width:"35%",children:"Name"}),(0,o.createComponentVNode)(2,a.Table.Cell,{width:"20%",children:"Mode"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Code"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Relay"})]}),N.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,color:"label",children:[e.name,":"]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.mode}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.code}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Relay"===e.mode&&e.relay_code}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"right",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"upload",color:"good",onClick:function(){return c("load",{save_id:e.id})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"minus",color:"bad",onClick:function(){return c("remove_save",{save_id:e.id})}})]})]},e.id)}))]}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No settings currently saved"})})],4)};t.NaniteRemoteContent=i},15394:function(e,t,n){"use strict";t.__esModule=!0,t.NotificationPreferences=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NotificationPreferences=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=(n.data.ignore||[]).sort((function(e,t){var n=e.desc.toLowerCase(),o=t.desc.toLowerCase();return no?1:0}));return(0,o.createComponentVNode)(2,c.Window,{title:"Notification Preferences",width:270,height:360,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:"Ghost Role Notifications",children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:e.enabled?"times":"check",content:e.desc,color:e.enabled?"bad":"good",onClick:function(){return i("toggle_ignore",{key:e.key})}},e.key)}))})})})}},53158:function(e,t,n){"use strict";t.__esModule=!0,t.NtnetRelay=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NtnetRelay=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.enabled,u=l.dos_capacity,s=l.dos_overload,m=l.dos_crashed;return(0,o.createComponentVNode)(2,c.Window,{title:"NtNet Quantum Relay",width:400,height:300,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,a.Section,{title:"Network Buffer",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",selected:d,content:d?"ENABLED":"DISABLED",onClick:function(){return i("toggle")}}),children:m?(0,o.createComponentVNode)(2,a.Box,{fontFamily:"monospace",children:[(0,o.createComponentVNode)(2,a.Box,{fontSize:"20px",children:"NETWORK BUFFER OVERFLOW"}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"16px",children:"OVERLOAD RECOVERY MODE"}),(0,o.createComponentVNode)(2,a.Box,{children:"This system is suffering temporary outage due to overflow of traffic buffers. Until buffered traffic is processed, all further requests will be dropped. Frequent occurences of this error may indicate insufficient hardware capacity of your network. Please contact your network planning department for instructions on how to resolve this issue."}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"20px",color:"bad",children:"ADMINISTRATOR OVERRIDE"}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"16px",color:"bad",children:"CAUTION - DATA LOSS MAY OCCUR"}),(0,o.createComponentVNode)(2,a.Button,{icon:"signal",content:"PURGE BUFFER",mt:1,color:"bad",onClick:function(){return i("restart")}})]}):(0,o.createComponentVNode)(2,a.ProgressBar,{value:s,minValue:0,maxValue:u,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:s})," GQ"," / ",u," GQ"]})})})})}},86156:function(e,t,n){"use strict";t.__esModule=!0,t.NtosAiRestorer=void 0;var o=n(39812),r=n(85952),a=n(33084);t.NtosAiRestorer=function(){return(0,o.createComponentVNode)(2,r.NtosWindow,{width:370,height:400,resizable:!0,children:(0,o.createComponentVNode)(2,r.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.AiRestorerContent)})})}},79760:function(e,t,n){"use strict";t.__esModule=!0,t.NtosArcade=void 0;var o=n(39812),r=n(5908),a=n(71494),c=n(74814),i=n(85952);t.NtosArcade=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data;return(0,o.createComponentVNode)(2,i.NtosWindow,{width:450,height:350,children:(0,o.createComponentVNode)(2,i.NtosWindow.Content,{children:(0,o.createComponentVNode)(2,c.Section,{title:"Outbomb Cuban Pete Ultra",textAlign:"center",children:[(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{size:2,children:[(0,o.createComponentVNode)(2,c.Box,{m:1}),(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Player Health",children:(0,o.createComponentVNode)(2,c.ProgressBar,{value:d.PlayerHitpoints,minValue:0,maxValue:30,ranges:{olive:[31,Infinity],good:[20,31],average:[10,20],bad:[-Infinity,10]},children:[d.PlayerHitpoints,"HP"]})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Player Magic",children:(0,o.createComponentVNode)(2,c.ProgressBar,{value:d.PlayerMP,minValue:0,maxValue:10,ranges:{purple:[11,Infinity],violet:[3,11],bad:[-Infinity,3]},children:[d.PlayerMP,"MP"]})})]}),(0,o.createComponentVNode)(2,c.Box,{my:1,mx:4}),(0,o.createComponentVNode)(2,c.Section,{backgroundColor:1===d.PauseState?"#1b3622":"#471915",children:d.Status})]}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:[(0,o.createComponentVNode)(2,c.ProgressBar,{value:d.Hitpoints,minValue:0,maxValue:45,ranges:{good:[30,Infinity],average:[5,30],bad:[-Infinity,5]},children:[(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:d.Hitpoints}),"HP"]}),(0,o.createComponentVNode)(2,c.Box,{m:1}),(0,o.createComponentVNode)(2,c.Section,{inline:!0,width:"156px",textAlign:"center",children:(0,o.createVNode)(1,"img",null,null,1,{src:(0,r.resolveAsset)(d.BossID)})})]})]}),(0,o.createComponentVNode)(2,c.Box,{my:1,mx:4}),(0,o.createComponentVNode)(2,c.Button,{icon:"fist-raised",tooltip:"Go in for the kill!",tooltipPosition:"top",disabled:0===d.GameActive||1===d.PauseState,onClick:function(){return l("Attack")},content:"Attack!"}),(0,o.createComponentVNode)(2,c.Button,{icon:"band-aid",tooltip:"Heal yourself!",tooltipPosition:"top",disabled:0===d.GameActive||1===d.PauseState,onClick:function(){return l("Heal")},content:"Heal!"}),(0,o.createComponentVNode)(2,c.Button,{icon:"magic",tooltip:"Recharge your magic!",tooltipPosition:"top",disabled:0===d.GameActive||1===d.PauseState,onClick:function(){return l("Recharge_Power")},content:"Recharge!"})]}),(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,c.Button,{icon:"sync-alt",tooltip:"One more game couldn't hurt.",tooltipPosition:"top",disabled:1===d.GameActive,onClick:function(){return l("Start_Game")},content:"Begin Game"}),(0,o.createComponentVNode)(2,c.Button,{icon:"ticket-alt",tooltip:"Claim at your local Arcade Computer for Prizes!",tooltipPosition:"top",disabled:1===d.GameActive,onClick:function(){return l("Dispense_Tickets")},content:"Claim Tickets"})]}),(0,o.createComponentVNode)(2,c.Box,{color:d.TicketCount>=1?"good":"normal",children:["Earned Tickets: ",d.TicketCount]})]})})})}},5313:function(e,t,n){"use strict";t.__esModule=!0,t.NtosAtmos=void 0;var o=n(39812),r=n(64499),a=n(85531),c=n(41860),i=n(71494),l=n(74814),d=n(76270),u=n(85952);t.NtosAtmos=function(e,t){var n=(0,i.useBackend)(t),s=(n.act,n.data),m=s.AirTemp,p=s.AirPressure,C=(0,a.flow)([(0,r.filter)((function(e){return e.percentage>=.01})),(0,r.sortBy)((function(e){return-e.percentage}))])(s.AirData||[]),h=Math.max.apply(Math,[1].concat(C.map((function(e){return e.percentage}))));return(0,o.createComponentVNode)(2,u.NtosWindow,{width:300,height:350,resizable:!0,children:(0,o.createComponentVNode)(2,u.NtosWindow.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,l.Section,{children:(0,o.createComponentVNode)(2,l.LabeledList,{children:[(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Temperature",children:[m,"\xb0C"]}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Pressure",children:[p," kPa"]})]})}),(0,o.createComponentVNode)(2,l.Section,{children:(0,o.createComponentVNode)(2,l.LabeledList,{children:C.map((function(e){return(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:(0,d.getGasLabel)(e.name),children:(0,o.createComponentVNode)(2,l.ProgressBar,{color:(0,d.getGasColor)(e.name),value:e.percentage,minValue:0,maxValue:h,children:(0,c.toFixed)(e.percentage,2)+"%"})},e.name)}))})})]})})}},78502:function(e,t,n){"use strict";t.__esModule=!0,t.NtosBountyConsole=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(58083),i=n(85952);t.NtosBountyConsole=function(e,t){var n=(0,r.useBackend)(t),c=n.act,d=n.data.bountydata,u=void 0===d?[]:d;return(0,o.createComponentVNode)(2,i.NtosWindow,{width:750,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,l),buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:"Print Bounty List",onClick:function(){return c("Print")}}),children:(0,o.createComponentVNode)(2,a.Table,{border:!0,children:[(0,o.createComponentVNode)(2,a.Table.Row,{bold:!0,italic:!0,color:"label",fontSize:1.25,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Bounty Object"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Description"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Progress"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Value"}),(0,o.createComponentVNode)(2,a.Table.Cell,{p:1,textAlign:"center",children:"Claim"})]}),u.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{backgroundColor:1===e.priority?"rgba(252, 152, 3, 0.25)":"",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,children:e.name}),(0,o.createComponentVNode)(2,a.Table.Cell,{italic:!0,textAlign:"center",p:1,children:e.description}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,textAlign:"center",children:[1===e.priority?(0,o.createComponentVNode)(2,a.Box,{children:"High Priority"}):"",e.completion_string]}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,textAlign:"center",children:e.reward_string}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,p:1,children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,textAlign:"center",icon:1===e.claimed?"check":"",content:1===e.claimed?"Claimed":"Claim",disabled:1===e.claimed,color:1===e.can_claim?"green":"red",onClick:function(){return c("ClaimBounty",{bounty:e.bounty_ref})}})})]},e.name)}))]})})})})};var l=function(e,t){var n=(0,r.useBackend)(t),i=(n.act,n.data.stored_cash);return(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i,format:function(e){return(0,c.formatMoney)(e)}})," credits"]})}},30495:function(e,t,n){"use strict";t.__esModule=!0,t.NtosCardContent=t.NtosCard=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=n(5665);t.NtosCard=function(e,t){return(0,o.createComponentVNode)(2,c.NtosWindow,{width:450,height:520,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,l)})})};var l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=(0,r.useLocalState)(t,"tab",1),u=d[0],s=d[1],m=l.authenticated,p=l.regions,C=void 0===p?[]:p,h=l.access_on_card,N=void 0===h?[]:h,V=l.jobs,b=void 0===V?{}:V,f=l.id_rank,g=l.id_owner,v=l.has_id,k=l.have_printer,x=l.have_id_slot,B=l.id_name,_=(0,r.useLocalState)(t,"department",Object.keys(b)[0]),w=_[0],L=_[1];if(!x)return(0,o.createComponentVNode)(2,a.NoticeBox,{children:"This program requires an ID slot in order to function"});var y=b[w]||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:v&&m?(0,o.createComponentVNode)(2,a.Input,{value:g,width:"250px",onInput:function(e,t){return c("PRG_edit",{name:t})}}):g||"No Card Inserted",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:"Print",disabled:!k||!v,onClick:function(){return c("PRG_print")}}),(0,o.createComponentVNode)(2,a.Button,{icon:m?"sign-out-alt":"sign-in-alt",content:m?"Log Out":"Log In",color:m?"bad":"good",onClick:function(){c(m?"PRG_logout":"PRG_authenticate")}})],4),children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"eject",content:B,onClick:function(){return c("PRG_eject")}})}),!!v&&!!m&&(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===u,onClick:function(){return s(1)},children:"Access"}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===u,onClick:function(){return s(2)},children:"Jobs"})]}),1===u&&(0,o.createComponentVNode)(2,i.AccessList,{accesses:C,selectedList:N,accessMod:function(e){return c("PRG_access",{access_target:e})},grantAll:function(){return c("PRG_grantall")},denyAll:function(){return c("PRG_denyall")},grantDep:function(e){return c("PRG_grantregion",{region:e})},denyDep:function(e){return c("PRG_denyregion",{region:e})}}),2===u&&(0,o.createComponentVNode)(2,a.Section,{title:f,buttons:(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"exclamation-triangle",content:"Terminate",color:"bad",onClick:function(){return c("PRG_terminate")}}),children:[(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Custom...",onCommit:function(e,t){return c("PRG_assign",{assign_target:"Custom",custom_name:t})}}),(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Tabs,{vertical:!0,children:Object.keys(b).map((function(e){return(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:e===w,onClick:function(){return L(e)},children:e},e)}))})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,children:y.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.display_name,onClick:function(){return c("PRG_assign",{assign_target:e.job})}},e.job)}))})]})]})]})],0)};t.NtosCardContent=l},55513:function(e,t,n){"use strict";t.__esModule=!0,t.NtosConfiguration=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NtosConfiguration=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.PC_device_theme,u=l.power_usage,s=l.battery_exists,m=l.battery,p=void 0===m?{}:m,C=l.disk_size,h=l.disk_used,N=l.hardware,V=void 0===N?[]:N;return(0,o.createComponentVNode)(2,c.NtosWindow,{theme:d,width:420,height:630,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Power Supply",buttons:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:["Power Draw: ",u,"W"]}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Battery Status",color:!s&&"average",children:s?(0,o.createComponentVNode)(2,a.ProgressBar,{value:p.charge,minValue:0,maxValue:p.max,ranges:{good:[p.max/2,Infinity],average:[p.max/4,p.max/2],bad:[-Infinity,p.max/4]},children:[p.charge," / ",p.max]}):"Not Available"})})}),(0,o.createComponentVNode)(2,a.Section,{title:"File System",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:h,minValue:0,maxValue:C,color:"good",children:[h," GQ / ",C," GQ"]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Hardware Components",children:V.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:2,buttons:(0,o.createFragment)([!e.critical&&(0,o.createComponentVNode)(2,a.Button.Checkbox,{content:"Enabled",checked:e.enabled,mr:1,onClick:function(){return i("PC_toggle_component",{name:e.name})}}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:["Power Usage: ",e.powerusage,"W"]})],0),children:e.desc},e.name)}))})]})})}},48791:function(e,t,n){"use strict";t.__esModule=!0,t.NtosCrewManifest=void 0;var o=n(39812),r=n(64499),a=n(71494),c=n(74814),i=n(85952);t.NtosCrewManifest=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.have_printer,s=d.manifest,m=void 0===s?{}:s;return(0,o.createComponentVNode)(2,i.NtosWindow,{width:400,height:480,resizable:!0,children:(0,o.createComponentVNode)(2,i.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,c.Section,{title:"Crew Manifest",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"print",content:"Print",disabled:!u,onClick:function(){return l("PRG_print")}}),children:(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,c.Section,{level:2,title:t,children:(0,o.createComponentVNode)(2,c.Table,{children:e.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,c.Table.Cell,{bold:!0,children:e.name}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:["(",e.rank,")"]})]},e.name)}))})},t)}))(m)})})})}},77426:function(e,t,n){"use strict";t.__esModule=!0,t.NtosCyborgRemoteMonitorContent=t.NtosCyborgRemoteMonitor=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NtosCyborgRemoteMonitor=function(e,t){return(0,o.createComponentVNode)(2,c.NtosWindow,{width:600,height:800,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.card,d=i.cyborgs,u=void 0===d?[]:d;return u.length?(0,o.createFragment)([!l&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Certain features require an ID card login."}),u.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"terminal",content:"Send Message",color:"blue",disabled:!l,onClick:function(){return c("messagebot",{ref:e.ref})}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.status?"bad":e.locked_down?"average":"good",children:e.status?"Not Responding":e.locked_down?"Locked Down":e.shell_discon?"Nominal/Disconnected":"Nominal"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge",children:(0,o.createComponentVNode)(2,a.Box,{color:e.charge<=30?"bad":e.charge<=70?"average":"good",children:"number"==typeof e.charge?e.charge+"%":"Not Found"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Module",children:e.module}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Upgrades",children:e.upgrades})]})},e.ref)}))],0):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No cyborg units detected."})};t.NtosCyborgRemoteMonitorContent=i},71854:function(e,t,n){"use strict";t.__esModule=!0,t.NtosCyborgRemoteMonitorSyndicate=void 0;var o=n(39812),r=n(85952),a=n(77426);t.NtosCyborgRemoteMonitorSyndicate=function(e,t){return(0,o.createComponentVNode)(2,r.NtosWindow,{width:600,height:800,theme:"syndicate",children:(0,o.createComponentVNode)(2,r.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.NtosCyborgRemoteMonitorContent)})})}},86441:function(e,t,n){"use strict";t.__esModule=!0,t.NtosFileManager=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NtosFileManager=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.PC_device_theme,s=d.usbconnected,m=d.files,p=void 0===m?[]:m,C=d.usbfiles,h=void 0===C?[]:C;return(0,o.createComponentVNode)(2,c.NtosWindow,{resizable:!0,theme:u,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,i,{files:p,usbconnected:s,onUpload:function(e){return l("PRG_copytousb",{name:e})},onDelete:function(e){return l("PRG_deletefile",{name:e})},onRename:function(e,t){return l("PRG_rename",{name:e,new_name:t})},onDuplicate:function(e){return l("PRG_clone",{file:e})}})}),s&&(0,o.createComponentVNode)(2,a.Section,{title:"Data Disk",children:(0,o.createComponentVNode)(2,i,{usbmode:!0,files:h,usbconnected:s,onUpload:function(e){return l("PRG_copyfromusb",{name:e})},onDelete:function(e){return l("PRG_deletefile",{name:e})},onRename:function(e,t){return l("PRG_rename",{name:e,new_name:t})},onDuplicate:function(e){return l("PRG_clone",{file:e})}})})]})})};var i=function(e){var t=e.files,n=void 0===t?[]:t,r=e.usbconnected,c=e.usbmode,i=e.onUpload,l=e.onDelete,d=e.onRename;return(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"File"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Type"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:"Size"})]}),n.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.undeletable?e.name:(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:e.name,currentValue:e.name,tooltip:"Rename",onCommit:function(t,n){return d(e.name,n)}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.type}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:e.size}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:!e.undeletable&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"trash",confirmIcon:"times",confirmContent:"",tooltip:"Delete",onClick:function(){return l(e.name)}}),!!r&&(c?(0,o.createComponentVNode)(2,a.Button,{icon:"download",tooltip:"Download",onClick:function(){return i(e.name)}}):(0,o.createComponentVNode)(2,a.Button,{icon:"upload",tooltip:"Upload",onClick:function(){return i(e.name)}}))],0)})]},e.name)}))]})}},38773:function(e,t,n){"use strict";t.__esModule=!0,t.NtosJobManagerContent=t.NtosJobManager=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NtosJobManager=function(e,t){return(0,o.createComponentVNode)(2,c.NtosWindow,{width:400,height:620,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.authed,d=i.cooldown,u=i.slots,s=void 0===u?[]:u,m=i.prioritized,p=void 0===m?[]:m;return l?(0,o.createComponentVNode)(2,a.Section,{children:[d>0&&(0,o.createComponentVNode)(2,a.Dimmer,{children:(0,o.createComponentVNode)(2,a.Box,{bold:!0,textAlign:"center",fontSize:"20px",children:["On Cooldown: ",d,"s"]})}),(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Prioritized"}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Slots"})]}),s.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{className:"candystripe",children:[(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,children:(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,content:e.title,disabled:e.total<=0,checked:e.total>0&&p.includes(e.title),onClick:function(){return c("PRG_priority",{target:e.title})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:[e.current," / ",e.total]}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,a.Button,{content:"Open",disabled:!e.status_open,onClick:function(){return c("PRG_open_job",{target:e.title})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Close",disabled:!e.status_close,onClick:function(){return c("PRG_close_job",{target:e.title})}})]})]},e.title)}))]})]}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Current ID does not have access permissions to change job slots."})};t.NtosJobManagerContent=i},59543:function(e,t,n){"use strict";t.__esModule=!0,t.NtosMain=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i={compconfig:"cog",ntndownloader:"download",filemanager:"folder",smmonitor:"radiation",alarmmonitor:"bell",cardmod:"id-card",arcade:"gamepad",ntnrc_client:"comment-alt",nttransfer:"exchange-alt",powermonitor:"plug",job_manage:"address-book",crewmani:"clipboard-list",robocontrol:"robot",atmosscan:"thermometer-half",shipping:"tags"};t.NtosMain=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.device_theme,s=d.programs,m=void 0===s?[]:s,p=d.has_light,C=d.light_on,h=d.comp_light_color,N=d.removable_media,V=void 0===N?[]:N,b=d.login,f=void 0===b?[]:b;return(0,o.createComponentVNode)(2,c.NtosWindow,{title:"syndicate"===u?"Syndix Main Menu":"NtOS Main Menu",theme:u,width:400,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[!!p&&(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Button,{width:"144px",icon:"lightbulb",selected:C,onClick:function(){return l("PC_toggle_light")},children:["Flashlight: ",C?"ON":"OFF"]}),(0,o.createComponentVNode)(2,a.Button,{ml:1,onClick:function(){return l("PC_light_color")},children:["Color:",(0,o.createComponentVNode)(2,a.ColorBox,{ml:1,color:h})]})]}),(0,o.createComponentVNode)(2,a.Section,{title:"User Login",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject ID",disabled:!f.IDName,onClick:function(){return l("PC_Eject_Disk",{name:"ID"})}}),children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{children:["ID Name: ",f.IDName]}),(0,o.createComponentVNode)(2,a.Table.Row,{children:["Assignment: ",f.IDJob]})]})}),!!V.length&&(0,o.createComponentVNode)(2,a.Section,{title:"Media Eject",children:(0,o.createComponentVNode)(2,a.Table,{children:V.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,color:"transparent",icon:"eject",content:e,onClick:function(){return l("PC_Eject_Disk",{name:e})}})})},e)}))})}),(0,o.createComponentVNode)(2,a.Section,{title:"Programs",children:(0,o.createComponentVNode)(2,a.Table,{children:m.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,color:"transparent",icon:i[e.name]||"window-maximize-o",content:e.desc,onClick:function(){return l("PC_runprogram",{name:e.name})}})}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,width:"18px",children:!!e.running&&(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"times",tooltip:"Close program",tooltipPosition:"left",onClick:function(){return l("PC_killprogram",{name:e.name})}})})]},e.name)}))})})]})})}},73883:function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetChat=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NtosNetChat=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.can_admin,u=l.adminmode,s=l.authed,m=l.username,p=l.active_channel,C=l.is_operator,h=l.all_channels,N=void 0===h?[]:h,V=l.clients,b=void 0===V?[]:V,f=l.messages,g=void 0===f?[]:f,v=null!==p,k=s||u;return(0,o.createComponentVNode)(2,c.NtosWindow,{width:900,height:675,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{children:(0,o.createComponentVNode)(2,a.Section,{height:"600px",children:(0,o.createComponentVNode)(2,a.Table,{height:"580px",children:(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"top",style:{width:"200px"},children:[(0,o.createComponentVNode)(2,a.Box,{height:"537px",overflowY:"scroll",children:[(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"New Channel...",onCommit:function(e,t){return i("PRG_newchannel",{new_channel_name:t})}}),N.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.chan,selected:e.id===p,color:"transparent",onClick:function(){return i("PRG_joinchannel",{id:e.id})}},e.chan)}))]}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,mt:1,content:m+"...",currentValue:m,onCommit:function(e,t){return i("PRG_changename",{new_name:t})}}),!!d&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:"ADMIN MODE: "+(u?"ON":"OFF"),color:u?"bad":"good",onClick:function(){return i("PRG_toggleadmin")}})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createComponentVNode)(2,a.Box,{height:"560px",overflowY:"scroll",children:v&&(k?g.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e.msg},e.msg)})):(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"exclamation-triangle",mt:4,fontSize:"40px"}),(0,o.createComponentVNode)(2,a.Box,{mt:1,bold:!0,fontSize:"18px",children:"THIS CHANNEL IS PASSWORD PROTECTED"}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:"INPUT PASSWORD TO ACCESS"})]}))}),(0,o.createComponentVNode)(2,a.Input,{fluid:!0,selfClear:!0,mt:1,onEnter:function(e,t){return i("PRG_speak",{message:t})}})]}),(0,o.createComponentVNode)(2,a.Table.Cell,{verticalAlign:"top",style:{width:"150px"},children:[(0,o.createComponentVNode)(2,a.Box,{height:"477px",overflowY:"scroll",children:b.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e.name},e.name)}))}),v&&k&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Save log...",defaultValue:"new_log",onCommit:function(e,t){return i("PRG_savelog",{log_name:t})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{fluid:!0,content:"Leave Channel",onClick:function(){return i("PRG_leavechannel")}})],4),!!C&&s&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button.Confirm,{fluid:!0,content:"Delete Channel",onClick:function(){return i("PRG_deletechannel")}}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Rename Channel...",onCommit:function(e,t){return i("PRG_renamechannel",{new_name:t})}}),(0,o.createComponentVNode)(2,a.Button.Input,{fluid:!0,content:"Set Password...",onCommit:function(e,t){return i("PRG_setpassword",{new_password:t})}})],4)]})]})})})})})}},83908:function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetDosContent=t.NtosNetDos=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NtosNetDos=function(e,t){return(0,o.createComponentVNode)(2,c.NtosWindow,{width:400,height:250,theme:"syndicate",children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.relays,d=void 0===l?[]:l,u=i.focus,s=i.target,m=i.speed,p=i.overload,C=i.capacity,h=i.error;if(h)return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.NoticeBox,{children:h}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Reset",textAlign:"center",onClick:function(){return c("PRG_reset")}})],4);var N=function(e){for(var t="",n=p/C;t.lengthn?t+="0":t+="1";return t};return s?(0,o.createComponentVNode)(2,a.Section,{fontFamily:"monospace",textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Box,{children:["CURRENT SPEED: ",m," GQ/s"]}),(0,o.createComponentVNode)(2,a.Box,{children:N(45)}),(0,o.createComponentVNode)(2,a.Box,{children:N(45)}),(0,o.createComponentVNode)(2,a.Box,{children:N(45)}),(0,o.createComponentVNode)(2,a.Box,{children:N(45)}),(0,o.createComponentVNode)(2,a.Box,{children:N(45)})]}):(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target",children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{content:e.id,selected:u===e.id,onClick:function(){return c("PRG_target_relay",{targid:e.id})}},e.id)}))})}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,bold:!0,content:"EXECUTE",color:"bad",textAlign:"center",disabled:!u,mt:1,onClick:function(){return c("PRG_execute")}})]})};t.NtosNetDosContent=i},83305:function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetDownloader=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NtosNetDownloader=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.PC_device_theme,s=d.disk_size,m=d.disk_used,p=d.downloadable_programs,C=void 0===p?[]:p,h=d.error,N=d.hacked_programs,V=void 0===N?[]:N,b=d.hackedavailable;return(0,o.createComponentVNode)(2,c.NtosWindow,{theme:u,width:480,height:735,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[!!h&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:[(0,o.createComponentVNode)(2,a.Box,{mb:1,children:h}),(0,o.createComponentVNode)(2,a.Button,{content:"Reset",onClick:function(){return l("PRG_reseterror")}})]}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disk usage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m,minValue:0,maxValue:s,children:m+" GQ / "+s+" GQ"})})})}),(0,o.createComponentVNode)(2,a.Section,{children:C.map((function(e){return(0,o.createComponentVNode)(2,i,{program:e},e.filename)}))}),!!b&&(0,o.createComponentVNode)(2,a.Section,{title:"UNKNOWN Software Repository",children:[(0,o.createComponentVNode)(2,a.NoticeBox,{mb:1,children:"Please note that Nanotrasen does not recommend download of software from non-official servers."}),V.map((function(e){return(0,o.createComponentVNode)(2,i,{program:e},e.filename)}))]})]})})};var i=function(e,t){var n=e.program,c=(0,r.useBackend)(t),i=c.act,l=c.data,d=l.disk_size,u=l.disk_used,s=l.downloadcompletion,m=l.downloading,p=l.downloadname,C=l.downloadsize,h=d-u;return(0,o.createComponentVNode)(2,a.Box,{mb:3,children:[(0,o.createComponentVNode)(2,a.Flex,{align:"baseline",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{bold:!0,grow:1,children:n.filedesc}),(0,o.createComponentVNode)(2,a.Flex.Item,{color:"label",nowrap:!0,children:[n.size," GQ"]}),(0,o.createComponentVNode)(2,a.Flex.Item,{ml:2,width:"94px",textAlign:"center",children:n.filename===p&&(0,o.createComponentVNode)(2,a.ProgressBar,{color:"green",minValue:0,maxValue:C,value:s})||(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"download",content:"Download",disabled:m||n.size>h,onClick:function(){return i("PRG_downloadfile",{filename:n.filename})}})})]}),"Compatible"!==n.compatibility&&(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,fontSize:"12px",position:"relative",children:[(0,o.createComponentVNode)(2,a.Icon,{mx:1,color:"red",name:"times"}),"Incompatible!"]}),n.size>h&&(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,fontSize:"12px",position:"relative",children:[(0,o.createComponentVNode)(2,a.Icon,{mx:1,color:"red",name:"times"}),"Not enough disk space!"]}),(0,o.createComponentVNode)(2,a.Box,{mt:1,italic:!0,color:"label",fontSize:"12px",children:n.fileinfo})]})}},6806:function(e,t,n){"use strict";t.__esModule=!0,t.NtosNetMonitor=void 0;var o=n(39812),r=n(74814),a=n(71494),c=n(85952);t.NtosNetMonitor=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data,d=l.ntnetrelays,u=l.ntnetstatus,s=l.config_softwaredownload,m=l.config_peertopeer,p=l.config_communication,C=l.config_systemcontrol,h=l.idsalarm,N=l.idsstatus,V=l.ntnetmaxlogs,b=l.maxlogs,f=l.minlogs,g=l.ntnetlogs,v=void 0===g?[]:g;return(0,o.createComponentVNode)(2,c.NtosWindow,{resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,r.NoticeBox,{children:"WARNING: Disabling wireless transmitters when using a wireless device may prevent you from reenabling them!"}),(0,o.createComponentVNode)(2,r.Section,{title:"Wireless Connectivity",buttons:(0,o.createComponentVNode)(2,r.Button.Confirm,{icon:u?"power-off":"times",content:u?"ENABLED":"DISABLED",selected:u,onClick:function(){return i("toggleWireless")}}),children:d?(0,o.createComponentVNode)(2,r.LabeledList,{children:(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Active NTNet Relays",children:d})}):"No Relays Connected"}),(0,o.createComponentVNode)(2,r.Section,{title:"Firewall Configuration",children:(0,o.createComponentVNode)(2,r.LabeledList,{children:[(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Software Downloads",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:s?"power-off":"times",content:s?"ENABLED":"DISABLED",selected:s,onClick:function(){return i("toggle_function",{id:"1"})}})}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Peer to Peer Traffic",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:m?"power-off":"times",content:m?"ENABLED":"DISABLED",selected:m,onClick:function(){return i("toggle_function",{id:"2"})}})}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Communication Systems",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:p?"power-off":"times",content:p?"ENABLED":"DISABLED",selected:p,onClick:function(){return i("toggle_function",{id:"3"})}})}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Remote System Control",buttons:(0,o.createComponentVNode)(2,r.Button,{icon:C?"power-off":"times",content:C?"ENABLED":"DISABLED",selected:C,onClick:function(){return i("toggle_function",{id:"4"})}})})]})}),(0,o.createComponentVNode)(2,r.Section,{title:"Security Systems",children:[!!h&&(0,o.createFragment)([(0,o.createComponentVNode)(2,r.NoticeBox,{children:"NETWORK INCURSION DETECTED"}),(0,o.createComponentVNode)(2,r.Box,{italics:!0,children:"Abnormal activity has been detected in the network. Check system logs for more information"})],4),(0,o.createComponentVNode)(2,r.LabeledList,{children:[(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"IDS Status",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,r.Button,{icon:N?"power-off":"times",content:N?"ENABLED":"DISABLED",selected:N,onClick:function(){return i("toggleIDS")}}),(0,o.createComponentVNode)(2,r.Button,{icon:"sync",content:"Reset",color:"bad",onClick:function(){return i("resetIDS")}})],4)}),(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Max Log Count",buttons:(0,o.createComponentVNode)(2,r.NumberInput,{value:V,minValue:f,maxValue:b,width:"39px",onChange:function(e,t){return i("updatemaxlogs",{new_number:t})}})})]}),(0,o.createComponentVNode)(2,r.Section,{title:"System Log",level:2,buttons:(0,o.createComponentVNode)(2,r.Button.Confirm,{icon:"trash",content:"Clear Logs",onClick:function(){return i("purgelogs")}}),children:v.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{className:"candystripe",children:e.entry},e.entry)}))})]})]})})}},54698:function(e,t,n){"use strict";t.__esModule=!0,t.NtosPowerMonitor=void 0;var o=n(39812),r=n(85952),a=n(89793);t.NtosPowerMonitor=function(){return(0,o.createComponentVNode)(2,r.NtosWindow,{width:550,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,r.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.PowerMonitorContent)})})}},49413:function(e,t,n){"use strict";t.__esModule=!0,t.NtosRadarContent=t.NtosRadar=void 0;var o=n(39812),r=n(34380),a=n(5908),c=n(71494),i=n(74814),l=n(85952);t.NtosRadar=function(e,t){return(0,o.createComponentVNode)(2,l.NtosWindow,{width:800,height:600,theme:"ntos",children:(0,o.createComponentVNode)(2,d,{sig_err:"Signal Lost"})})};var d=function(e,t){var n=(0,c.useBackend)(t),d=n.act,u=n.data,s=u.selected,m=u.object,p=void 0===m?[]:m,C=u.target,h=void 0===C?[]:C,N=u.scanning,V=e.sig_err;return(0,o.createComponentVNode)(2,i.Flex,{direction:"row",hight:"100%",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{position:"relative",width:20.5,hight:"100%",children:(0,o.createComponentVNode)(2,l.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i.Section,{children:[(0,o.createComponentVNode)(2,i.Button,{icon:"redo-alt",content:N?"Scanning...":"Scan",color:"blue",disabled:N,onClick:function(){return d("scan")}}),!p.length&&!N&&(0,o.createVNode)(1,"div",null,"No trackable signals found",16),!N&&p.map((function(e){return(0,o.createVNode)(1,"div",(0,r.classes)(["Button","Button--fluid","Button--color--transparent","Button--ellipsis",e.ref===s&&"Button--selected"]),e.name,0,{title:e.name,onClick:function(){d("selecttarget",{ref:e.ref})}},e.dev)}))]})})}),(0,o.createComponentVNode)(2,i.Flex.Item,{style:{"background-image":'url("'+(0,a.resolveAsset)("ntosradarbackground.png")+'")',"background-position":"center","background-repeat":"no-repeat",top:"20px"},position:"relative",m:1.5,width:45,height:45,children:0===Object.keys(h).length?!!s&&(0,o.createComponentVNode)(2,i.NoticeBox,{position:"absolute",top:20.6,left:1.35,width:42,fontSize:"30px",textAlign:"center",children:V}):!!h.userot&&(0,o.createComponentVNode)(2,i.Box,{as:"img",src:(0,a.resolveAsset)(h.arrowstyle),position:"absolute",top:"20px",left:"243px",style:{transform:"rotate("+h.rot+"deg)"}})||(0,o.createComponentVNode)(2,i.Icon,{name:h.pointer,position:"absolute",size:2,color:h.color,top:10*h.locy+19+"px",left:10*h.locx+16+"px"})})]})};t.NtosRadarContent=d},41935:function(e,t,n){"use strict";t.__esModule=!0,t.NtosRadarSyndicate=void 0;var o=n(39812),r=n(85952),a=n(49413);t.NtosRadarSyndicate=function(e,t){return(0,o.createComponentVNode)(2,r.NtosWindow,{width:800,height:600,theme:"syndicate",children:(0,o.createComponentVNode)(2,a.NtosRadarContent,{sig_err:"Out of Range"})})}},60839:function(e,t,n){"use strict";t.__esModule=!0,t.NtosRequestKiosk=void 0;var o=n(39812),r=n(18374),a=n(85952);t.NtosRequestKiosk=function(e,t){return(0,o.createComponentVNode)(2,a.NtosWindow,{width:550,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,a.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,r.RequestKioskContent)})})}},69480:function(e,t,n){"use strict";t.__esModule=!0,t.NtosRevelation=void 0;var o=n(39812),r=n(74814),a=n(71494),c=n(85952);t.NtosRevelation=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.NtosWindow,{width:400,height:250,theme:"syndicate",children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{children:(0,o.createComponentVNode)(2,r.Section,{children:[(0,o.createComponentVNode)(2,r.Button.Input,{fluid:!0,content:"Obfuscate Name...",onCommit:function(e,t){return i("PRG_obfuscate",{new_name:t})},mb:1}),(0,o.createComponentVNode)(2,r.LabeledList,{children:(0,o.createComponentVNode)(2,r.LabeledList.Item,{label:"Payload Status",buttons:(0,o.createComponentVNode)(2,r.Button,{content:l.armed?"ARMED":"DISARMED",color:l.armed?"bad":"average",onClick:function(){return i("PRG_arm")}})})}),(0,o.createComponentVNode)(2,r.Button,{fluid:!0,bold:!0,content:"ACTIVATE",textAlign:"center",color:"bad",disabled:!l.armed})]})})})}},36888:function(e,t,n){"use strict";t.__esModule=!0,t.NtosRoboControl=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NtosRoboControl=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.bots,s=d.id_owner,m=d.has_id;return(0,o.createComponentVNode)(2,c.NtosWindow,{width:550,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Robot Control Console",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Id Card",children:[s,!!m&&(0,o.createComponentVNode)(2,a.Button,{ml:2,icon:"eject",content:"Eject",onClick:function(){return l("ejectcard")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Bots in range",children:d.botcount})]})}),null==u?void 0:u.map((function(e){return(0,o.createComponentVNode)(2,i,{robot:e},e.bot_ref)}))]})})};var i=function(e,t){var n=e.robot,c=(0,r.useBackend)(t),i=c.act,l=c.data,d=l.mules||[],u=!!n.mule_check&&function(e,t){return null==e?void 0:e.find((function(e){return e.mule_ref===t}))}(d,n.bot_ref),s=1===n.mule_check?"rgba(110, 75, 14, 1)":"rgba(74, 59, 140, 1)";return(0,o.createComponentVNode)(2,a.Section,{title:n.name,style:{border:"4px solid "+s},buttons:u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"play",tooltip:"Go to Destination.",onClick:function(){return i("go",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"pause",tooltip:"Stop Moving.",onClick:function(){return i("stop",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"home",tooltip:"Travel Home.",tooltipPosition:"bottom-left",onClick:function(){return i("home",{robot:u.mule_ref})}})],4),children:(0,o.createComponentVNode)(2,a.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Model",children:n.model}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:n.locat}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:n.mode}),u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Loaded Cargo",children:l.load||"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Home",children:u.home}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Destination",children:u.dest||"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:u.power,minValue:0,maxValue:100,ranges:{good:[60,Infinity],average:[20,60],bad:[-Infinity,20]}})})],4)]})}),(0,o.createComponentVNode)(2,a.Flex.Item,{width:"150px",children:[u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Set Destination",onClick:function(){return i("destination",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Set ID",onClick:function(){return i("setid",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Set Home",onClick:function(){return i("sethome",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Unload Cargo",onClick:function(){return i("unload",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,content:"Auto Return",checked:u.autoReturn,onClick:function(){return i("autoret",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,content:"Auto Pickup",checked:u.autoPickup,onClick:function(){return i("autopick",{robot:u.mule_ref})}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,content:"Delivery Report",checked:u.reportDelivery,onClick:function(){return i("report",{robot:u.mule_ref})}})],4),!u&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Stop Patrol",onClick:function(){return i("patroloff",{robot:n.bot_ref})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Start Patrol",onClick:function(){return i("patrolon",{robot:n.bot_ref})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Summon",onClick:function(){return i("summon",{robot:n.bot_ref})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Eject PAi",onClick:function(){return i("ejectpai",{robot:n.bot_ref})}})],4)]})]})})}},55431:function(e,t,n){"use strict";t.__esModule=!0,t.NtosShipping=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.NtosShipping=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.NtosWindow,{width:450,height:350,resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"NTOS Shipping Hub.",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject Id",onClick:function(){return i("ejectid")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current User",children:l.current_user||"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Inserted Card",children:l.card_owner||"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Available Paper",children:l.has_printer?l.paperamt:"N/A"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Profit on Sale",children:[l.barcode_split,"%"]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Shipping Options",children:[(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"id-card",tooltip:"The currently ID card will become the current user.",tooltipPosition:"right",disabled:!l.has_id_slot,onClick:function(){return i("selectid")},content:"Set Current ID"})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"print",tooltip:"Print a barcode to use on a wrapped package.",tooltipPosition:"right",disabled:!l.has_printer||!l.current_user,onClick:function(){return i("print")},content:"Print Barcode"})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"tags",tooltip:"Set how much profit you'd like on your package.",tooltipPosition:"right",onClick:function(){return i("setsplit")},content:"Set Profit Margin"})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Button,{icon:"sync-alt",content:"Reset ID",onClick:function(){return i("resetid")}})})]})]})})}},76124:function(e,t,n){"use strict";t.__esModule=!0,t.NtosStationAlertConsole=void 0;var o=n(39812),r=n(85952),a=n(32015);t.NtosStationAlertConsole=function(){return(0,o.createComponentVNode)(2,r.NtosWindow,{width:315,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,r.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.StationAlertConsoleContent)})})}},22475:function(e,t,n){"use strict";t.__esModule=!0,t.NtosSupermatterMonitorContent=t.NtosSupermatterMonitor=void 0;var o=n(39812),r=n(64499),a=n(85531),c=n(41860),i=n(71494),l=n(74814),d=n(76270),u=n(85952),s=function(e){return Math.log2(16+Math.max(0,e))-4};t.NtosSupermatterMonitor=function(e,t){return(0,o.createComponentVNode)(2,u.NtosWindow,{width:600,height:350,resizable:!0,children:(0,o.createComponentVNode)(2,u.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,m)})})};var m=function(e,t){var n=(0,i.useBackend)(t),u=n.act,m=n.data,C=m.active,h=m.SM_integrity,N=m.SM_power,V=m.SM_ambienttemp,b=m.SM_ambientpressure;if(!C)return(0,o.createComponentVNode)(2,p);var f=(0,a.flow)([function(e){return e.filter((function(e){return e.amount>=.01}))},(0,r.sortBy)((function(e){return-e.amount}))])(m.gases||[]),g=Math.max.apply(Math,[1].concat(f.map((function(e){return e.amount}))));return(0,o.createComponentVNode)(2,l.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,l.Flex.Item,{width:"270px",children:(0,o.createComponentVNode)(2,l.Section,{title:"Metrics",children:(0,o.createComponentVNode)(2,l.LabeledList,{children:[(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Integrity",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:h/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Relative EER",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:N,minValue:0,maxValue:5e3,ranges:{good:[-Infinity,5e3],average:[5e3,7e3],bad:[7e3,Infinity]},children:(0,c.toFixed)(N)+" MeV/cm3"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Temperature",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:s(V),minValue:0,maxValue:s(1e4),ranges:{teal:[-Infinity,s(80)],good:[s(80),s(373)],average:[s(373),s(1e3)],bad:[s(1e3),Infinity]},children:(0,c.toFixed)(V)+" K"})}),(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:"Pressure",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:s(b),minValue:0,maxValue:s(5e4),ranges:{good:[s(1),s(300)],average:[-Infinity,s(1e3)],bad:[s(1e3),+Infinity]},children:(0,c.toFixed)(b)+" kPa"})})]})})}),(0,o.createComponentVNode)(2,l.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,l.Section,{title:"Gases",buttons:(0,o.createComponentVNode)(2,l.Button,{icon:"arrow-left",content:"Back",onClick:function(){return u("PRG_clear")}}),children:(0,o.createComponentVNode)(2,l.LabeledList,{children:f.map((function(e){return(0,o.createComponentVNode)(2,l.LabeledList.Item,{label:(0,d.getGasLabel)(e.name),children:(0,o.createComponentVNode)(2,l.ProgressBar,{color:(0,d.getGasColor)(e.name),value:e.amount,minValue:0,maxValue:g,children:(0,c.toFixed)(e.amount,2)+"%"})},e.name)}))})})})]})};t.NtosSupermatterMonitorContent=m;var p=function(e,t){var n=(0,i.useBackend)(t),r=n.act,a=n.data.supermatters,c=void 0===a?[]:a;return(0,o.createComponentVNode)(2,l.Section,{title:"Detected Supermatters",buttons:(0,o.createComponentVNode)(2,l.Button,{icon:"sync",content:"Refresh",onClick:function(){return r("PRG_refresh")}}),children:(0,o.createComponentVNode)(2,l.Table,{children:c.map((function(e){return(0,o.createComponentVNode)(2,l.Table.Row,{children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.uid+". "+e.area_name}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,color:"label",children:"Integrity:"}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,width:"120px",children:(0,o.createComponentVNode)(2,l.ProgressBar,{value:e.integrity/100,ranges:{good:[.9,Infinity],average:[.5,.9],bad:[-Infinity,.5]}})}),(0,o.createComponentVNode)(2,l.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,l.Button,{content:"Details",onClick:function(){return r("PRG_set",{target:e.uid})}})})]},e.uid)}))})})}},78467:function(e,t,n){"use strict";t.__esModule=!0,t.NuclearBomb=void 0;var o=n(39812),r=n(34380),a=n(71494),c=n(74814),i=n(85952),l=function(e,t){var n=(0,a.useBackend)(t).act;return(0,o.createComponentVNode)(2,c.Box,{width:"185px",children:(0,o.createComponentVNode)(2,c.Grid,{width:"1px",children:[["1","4","7","C"],["2","5","8","0"],["3","6","9","E"]].map((function(e){return(0,o.createComponentVNode)(2,c.Grid.Column,{children:e.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,mb:"6px",content:e,textAlign:"center",fontSize:"40px",lineHeight:1.25,width:"55px",className:(0,r.classes)(["NuclearBomb__Button","NuclearBomb__Button--keypad","NuclearBomb__Button--"+e]),onClick:function(){return n("keypad",{digit:e})}},e)}))},e[0])}))})})};t.NuclearBomb=function(e,t){var n=(0,a.useBackend)(t),r=n.act,d=n.data,u=(d.anchored,d.disk_present,d.status1),s=d.status2;return(0,o.createComponentVNode)(2,i.Window,{width:350,height:442,theme:"retro",children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,c.Box,{m:"6px",children:[(0,o.createComponentVNode)(2,c.Box,{mb:"6px",className:"NuclearBomb__displayBox",children:u}),(0,o.createComponentVNode)(2,c.Flex,{mb:1.5,children:[(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,c.Box,{className:"NuclearBomb__displayBox",children:s})}),(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,c.Button,{icon:"eject",fontSize:"24px",lineHeight:1,textAlign:"center",width:"43px",ml:"6px",mr:"3px",mt:"3px",className:"NuclearBomb__Button NuclearBomb__Button--keypad",onClick:function(){return r("eject_disk")}})})]}),(0,o.createComponentVNode)(2,c.Flex,{ml:"3px",children:[(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,l)}),(0,o.createComponentVNode)(2,c.Flex.Item,{ml:"6px",width:"129px",children:(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"ARM",textAlign:"center",fontSize:"28px",lineHeight:1.1,mb:"6px",className:"NuclearBomb__Button NuclearBomb__Button--C",onClick:function(){return r("arm")}}),(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"ANCHOR",textAlign:"center",fontSize:"28px",lineHeight:1.1,className:"NuclearBomb__Button NuclearBomb__Button--E",onClick:function(){return r("anchor")}}),(0,o.createComponentVNode)(2,c.Box,{textAlign:"center",color:"#9C9987",fontSize:"80px",children:(0,o.createComponentVNode)(2,c.Icon,{name:"radiation"})}),(0,o.createComponentVNode)(2,c.Box,{height:"80px",className:"NuclearBomb__NTIcon"})]})})]})]})})})}},48826:function(e,t,n){"use strict";t.__esModule=!0,t.OperatingComputer=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=[{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"},{label:"Toxin",type:"toxLoss"},{label:"Respiratory",type:"oxyLoss"}];t.OperatingComputer=function(e,t){var n=(0,r.useSharedState)(t,"tab",1),i=n[0],u=n[1];return(0,o.createComponentVNode)(2,c.Window,{width:350,height:470,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===i,onClick:function(){return u(1)},children:"Patient State"}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===i,onClick:function(){return u(2)},children:"Surgery Procedures"})]}),1===i&&(0,o.createComponentVNode)(2,l),2===i&&(0,o.createComponentVNode)(2,d)]})})};var l=function(e,t){var n=(0,r.useBackend)(t),c=(n.act,n.data),l=c.table,d=c.procedures,u=void 0===d?[]:d,s=c.patient,m=void 0===s?{}:s;return l?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Patient State",children:m&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"State",color:m.statstate,children:m.stat}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Blood Type",children:m.blood_type}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m.health,minValue:m.minHealth,maxValue:m.maxHealth,color:m.health>=0?"good":"average",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:m.health})})}),i.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m[e.type]/m.maxHealth,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:m[e.type]})})},e.type)}))]})||"No Patient Detected"}),0===u.length&&(0,o.createComponentVNode)(2,a.Section,{children:"No Active Procedures"}),u.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Next Step",children:[e.next_step,e.chems_needed&&(0,o.createFragment)([(0,o.createVNode)(1,"b",null,"Required Chemicals:",16),(0,o.createVNode)(1,"br"),e.chems_needed],0)]}),!!c.alternative_step&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Alternative Step",children:[e.alternative_step,e.alt_chems_needed&&(0,o.createFragment)([(0,o.createVNode)(1,"b",null,"Required Chemicals:",16),(0,o.createVNode)(1,"br"),e.alt_chems_needed],0)]})]})},e.name)}))],0):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Table Detected"})},d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.surgeries,l=void 0===i?[]:i;return(0,o.createComponentVNode)(2,a.Section,{title:"Advanced Surgery Procedures",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"download",content:"Sync Research Database",onClick:function(){return c("sync")}}),l.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,level:2,children:e.desc},e.name)}))]})}},36983:function(e,t,n){"use strict";t.__esModule=!0,t.Orbit=void 0;var o=n(39812),r=n(2497),a=n(5908),c=n(71494),i=n(74814),l=n(85952);function d(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);nt},h=function(e,t){var n=e.name,o=t.name,r=n.match(m),a=o.match(m);return r&&a&&n.replace(m,"")===o.replace(m,"")?parseInt(r[1],10)-parseInt(a[1],10):C(n,o)},N=function(e,t){var n=(0,c.useBackend)(t).act,r=e.searchText,a=e.source,l=e.title,d=a.filter(p(r));return d.sort(h),a.length>0&&(0,o.createComponentVNode)(2,i.Section,{title:l+" - ("+a.length+")",children:d.map((function(e){return(0,o.createComponentVNode)(2,i.Button,{content:e.name.replace(s,""),onClick:function(){return n("orbit",{ref:e.ref})}},e.name)}))})},V=function(e,t){var n=(0,c.useBackend)(t).act,r=e.color,l=e.thing;return(0,o.createComponentVNode)(2,i.Button,{color:r,onClick:function(){return n("orbit",{ref:l.ref})},children:[l.name,l.orbiters&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,ml:1,children:["(",l.orbiters," ",(0,o.createComponentVNode)(2,i.Box,{as:"img",src:(0,a.resolveAsset)("ghost.png"),opacity:.7}),")"]})]})};t.Orbit=function(e,t){for(var n,r=(0,c.useBackend)(t),a=r.act,u=r.data,s=u.alive,m=u.antagonists,b=u.dead,f=u.ghosts,g=u.misc,v=u.npcs,k=(0,c.useLocalState)(t,"searchText",""),x=k[0],B=k[1],_={},w=d(m);!(n=w()).done;){var L=n.value;_[L.antag]===undefined&&(_[L.antag]=[]),_[L.antag].push(L)}var y=Object.entries(_);y.sort((function(e,t){return C(e[0],t[0])}));return(0,o.createComponentVNode)(2,l.Window,{title:"Orbit",width:350,height:700,children:(0,o.createComponentVNode)(2,l.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Flex,{children:[(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Icon,{name:"search",mr:1})}),(0,o.createComponentVNode)(2,i.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,i.Input,{placeholder:"Search...",autoFocus:!0,fluid:!0,value:x,onInput:function(e,t){return B(t)},onEnter:function(e,t){return function(e){for(var t=0,n=[y.map((function(e){return e[0],e[1]})),s,f,b,v,g];t0&&(0,o.createComponentVNode)(2,i.Section,{title:"Ghost-Visible Antagonists",children:y.map((function(e){var t=e[0],n=e[1];return(0,o.createComponentVNode)(2,i.Section,{title:t,level:2,children:n.filter(p(x)).sort(h).map((function(e){return(0,o.createComponentVNode)(2,V,{color:"bad",thing:e},e.name)}))},t)}))}),(0,o.createComponentVNode)(2,i.Section,{title:"Alive",children:s.filter(p(x)).sort(h).map((function(e){return(0,o.createComponentVNode)(2,V,{color:"good",thing:e},e.name)}))}),(0,o.createComponentVNode)(2,N,{title:"Ghosts",source:f,searchText:x}),(0,o.createComponentVNode)(2,N,{title:"Dead",source:b,searchText:x}),(0,o.createComponentVNode)(2,N,{title:"NPCs",source:v,searchText:x}),(0,o.createComponentVNode)(2,N,{title:"Misc",source:g,searchText:x})]})})}},57800:function(e,t,n){"use strict";t.__esModule=!0,t.OreBox=void 0;var o=n(39812),r=n(2497),a=n(74814),c=n(71494),i=n(85952);t.OreBox=function(e,t){var n=(0,c.useBackend)(t),l=n.act,d=n.data.materials;return(0,o.createComponentVNode)(2,i.Window,{width:335,height:415,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Ores",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Empty",onClick:function(){return l("removeall")}}),children:(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Ore"}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"right",children:"Amount"})]}),d.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:(0,r.toTitleCase)(e.name)}),(0,o.createComponentVNode)(2,a.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,a.Box,{color:"label",inline:!0,children:e.amount})})]},e.type)}))]})}),(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Box,{children:["All ores will be placed in here when you are wearing a mining stachel on your belt or in a pocket while dragging the ore box.",(0,o.createVNode)(1,"br"),"Gibtonite is not accepted."]})})]})})}},72938:function(e,t,n){"use strict";t.__esModule=!0,t.OreRedemptionMachine=void 0;var o=n(39812),r=n(2497),a=n(71494),c=n(74814),i=n(85952);t.OreRedemptionMachine=function(e,t){var n=(0,a.useBackend)(t),r=n.act,d=n.data,u=d.unclaimedPoints,s=d.materials,m=d.alloys,p=d.diskDesigns,C=d.hasDisk;return(0,o.createComponentVNode)(2,i.Window,{title:"Ore Redemption Machine",width:440,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{children:[(0,o.createComponentVNode)(2,c.BlockQuote,{mb:1,children:["This machine only accepts ore.",(0,o.createVNode)(1,"br"),"Gibtonite and Slag are not accepted."]}),(0,o.createComponentVNode)(2,c.Box,{children:[(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"label",mr:1,children:"Unclaimed points:"}),u,(0,o.createComponentVNode)(2,c.Button,{ml:2,content:"Claim",disabled:0===u,onClick:function(){return r("Claim")}})]})]}),(0,o.createComponentVNode)(2,c.Section,{children:C&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Box,{mb:1,children:(0,o.createComponentVNode)(2,c.Button,{icon:"eject",content:"Eject design disk",onClick:function(){return r("diskEject")}})}),(0,o.createComponentVNode)(2,c.Table,{children:p.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:["File ",e.index,": ",e.name]}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,children:(0,o.createComponentVNode)(2,c.Button,{disabled:!e.canupload,content:"Upload",onClick:function(){return r("diskUpload",{design:e.index})}})})]},e.index)}))})],4)||(0,o.createComponentVNode)(2,c.Button,{icon:"save",content:"Insert design disk",onClick:function(){return r("diskInsert")}})}),(0,o.createComponentVNode)(2,c.Section,{title:"Materials",children:(0,o.createComponentVNode)(2,c.Table,{children:s.map((function(e){return(0,o.createComponentVNode)(2,l,{material:e,onRelease:function(t){return r("Release",{id:e.id,sheets:t})}},e.id)}))})}),(0,o.createComponentVNode)(2,c.Section,{title:"Alloys",children:(0,o.createComponentVNode)(2,c.Table,{children:m.map((function(e){return(0,o.createComponentVNode)(2,l,{material:e,onRelease:function(t){return r("Smelt",{id:e.id,sheets:t})}},e.id)}))})})]})})};var l=function(e,t){var n=e.material,i=e.onRelease,l=(0,a.useLocalState)(t,"amount"+n.name,1),d=l[0],u=l[1],s=Math.floor(n.amount);return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,r.toTitleCase)(n.name).replace("Alloy","")}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,c.Box,{mr:2,color:"label",inline:!0,children:n.value&&n.value+" cr"})}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,c.Box,{mr:2,color:"label",inline:!0,children:[s," sheets"]})}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,c.NumberInput,{width:"32px",step:1,stepPixelSize:5,minValue:1,maxValue:50,value:d,onChange:function(e,t){return u(t)}}),(0,o.createComponentVNode)(2,c.Button,{disabled:s<1,content:"Release",onClick:function(){return i(d)}})]})]})}},47944:function(e,t,n){"use strict";t.__esModule=!0,t.Pandemic=t.PandemicAntibodyDisplay=t.PandemicSymptomDisplay=t.PandemicDiseaseDisplay=t.PandemicBeakerDisplay=void 0;var o=n(39812),r=n(64499),a=n(71494),c=n(74814),i=n(85952),l=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.has_beaker,d=i.beaker_empty,u=i.has_blood,s=i.blood,m=!l||d;return(0,o.createComponentVNode)(2,c.Section,{title:"Beaker",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:"times",content:"Empty and Eject",color:"bad",disabled:m,onClick:function(){return r("empty_eject_beaker")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"trash",content:"Empty",disabled:m,onClick:function(){return r("empty_beaker")}}),(0,o.createComponentVNode)(2,c.Button,{icon:"eject",content:"Eject",disabled:!l,onClick:function(){return r("eject_beaker")}})],4),children:l?d?(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"Beaker is empty"}):u?(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Blood DNA",children:s&&s.dna||"Unknown"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Blood Type",children:s&&s.type||"Unknown"})]}):(0,o.createComponentVNode)(2,c.Box,{color:"bad",children:"No blood detected"}):(0,o.createComponentVNode)(2,c.NoticeBox,{children:"No beaker loaded"})})};t.PandemicBeakerDisplay=l;var d=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.is_ready;return(i.viruses||[]).map((function(e){var t=e.symptoms||[];return(0,o.createComponentVNode)(2,c.Section,{title:e.can_rename?(0,o.createComponentVNode)(2,c.Input,{value:e.name,onChange:function(t,n){return r("rename_disease",{index:e.index,name:n})}}):e.name,buttons:(0,o.createComponentVNode)(2,c.Button,{icon:"flask",content:"Create culture bottle",disabled:!l,onClick:function(){return r("create_culture_bottle",{index:e.index})}}),children:[(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{children:e.description}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Agent",children:e.agent}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Spread",children:e.spread}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Possible Cure",children:e.cure})]})})]}),!!e.is_adv&&(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{title:"Statistics",level:2,children:(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Resistance",children:e.resistance}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Stealth",children:e.stealth})]})}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Stage speed",children:e.stage_speed}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Transmissibility",children:e.transmission})]})})]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Symptoms",level:2,children:t.map((function(e){return(0,o.createComponentVNode)(2,c.Collapsible,{title:e.name,children:(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,u,{symptom:e})})},e.name)}))})],4)]},e.name)}))};t.PandemicDiseaseDisplay=d;var u=function(e,t){var n=e.symptom,a=n.name,i=n.desc,l=n.stealth,d=n.resistance,u=n.stage_speed,s=n.transmission,m=n.level,p=n.neutered,C=(0,r.map)((function(e,t){return{desc:e,label:t}}))(n.threshold_desc||{});return(0,o.createComponentVNode)(2,c.Section,{title:a,level:2,buttons:!!p&&(0,o.createComponentVNode)(2,c.Box,{bold:!0,color:"bad",children:"Neutered"}),children:[(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{size:2,children:i}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Level",children:m}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Resistance",children:d}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Stealth",children:l}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Stage Speed",children:u}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Transmission",children:s})]})})]}),C.length>0&&(0,o.createComponentVNode)(2,c.Section,{title:"Thresholds",level:3,children:(0,o.createComponentVNode)(2,c.LabeledList,{children:C.map((function(e){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.label,children:e.desc},e.label)}))})})]})};t.PandemicSymptomDisplay=u;var s=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.resistances||[];return(0,o.createComponentVNode)(2,c.Section,{title:"Antibodies",children:l.length>0?(0,o.createComponentVNode)(2,c.LabeledList,{children:l.map((function(e){return(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:e.name,children:(0,o.createComponentVNode)(2,c.Button,{icon:"eye-dropper",content:"Create vaccine bottle",disabled:!i.is_ready,onClick:function(){return r("create_vaccine_bottle",{index:e.id})}})},e.name)}))}):(0,o.createComponentVNode)(2,c.Box,{bold:!0,color:"bad",mt:1,children:"No antibodies detected."})})};t.PandemicAntibodyDisplay=s;t.Pandemic=function(e,t){var n=(0,a.useBackend)(t).data;return(0,o.createComponentVNode)(2,i.Window,{width:520,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,l),!!n.has_blood&&(0,o.createFragment)([(0,o.createComponentVNode)(2,d),(0,o.createComponentVNode)(2,s)],4)]})})}},52472:function(e,t,n){"use strict";t.__esModule=!0,t.PaperSheet=void 0;var o=n(39812),r=n(34380),a=n(51961),c=s(n(65054)),i=s(n(76756)),l=n(71494),d=n(74814),u=n(85952);function s(e){return e&&e.__esModule?e:{"default":e}}function m(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,v(e,t)}function p(e,t){if(null==e)return{};var n,o,r={},a=Object.keys(e);for(o=0;o=0||(r[n]=e[n]);return r}function C(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return h(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return h(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n]+)>/g,(function(e,t){return"$"+n[t]})))}if("function"==typeof t){var a=this;return o[Symbol.replace].call(this,e,(function(){var e=[];return e.push.apply(e,arguments),"object"!=typeof e[e.length-1]&&e.push(c(e,a)),t.apply(this,e)}))}return o[Symbol.replace].call(this,e,t)},N.apply(this,arguments)}function V(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&v(e,t)}function b(e){var t="function"==typeof Map?new Map:undefined;return(b=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,o)}function o(){return f(e,arguments,k(this).constructor)}return o.prototype=Object.create(e.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}),v(o,e)})(e)}function f(e,t,n){return(f=g()?Reflect.construct:function(e,t,n){var o=[null];o.push.apply(o,t);var r=new(Function.bind.apply(e,o));return n&&v(r,n.prototype),r}).apply(null,arguments)}function g(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function v(e,t){return(v=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function k(e){return(k=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var x=5e3,B=function(e,t,n,o){return void 0===o&&(o=!1),"'+e+""},_=/\[(_+)\]/g,w=N(/\[\]/gm,{id:2}),L=/%s(?:ign)?(?=\\s|$)/gim,y=function(e,t,n,o,r){var a=e.replace(_,(function(e,a,c,i){var l=function(e,t,n){t=n+"x "+t;var o=document.createElement("canvas").getContext("2d");return o.font=t,o.measureText(e).width}(e,t,n)+"px";return function(e,t,n,o,r,a){return'['+(n=a,r=l,(r?n.replace(/")};return(0,o.createComponentVNode)(2,d.Box,{position:"relative",backgroundColor:i,width:"100%",height:"100%",children:[(0,o.createComponentVNode)(2,d.Box,{fillPositionedParent:!0,width:"100%",height:"100%",dangerouslySetInnerHTML:s,p:"10px"}),u.map((function(e,t){return(0,o.createComponentVNode)(2,I,{image:{sprite:e[0],x:e[1],y:e[2],rotate:e[3]}},e[0]+t)}))]})},A=function(e){function t(t,n){var o;return(o=e.call(this,t,n)||this).state={x:0,y:0,rotate:0},o}m(t,e);var n=t.prototype;return n.findStampPosition=function(e){for(var t=event.pageX,n=event.pageY,o={left:e.target.offsetLeft,top:e.target.offsetTop},r=e.target.offsetParent;r;)o.left+=r.offsetLeft,o.top+=r.offsetTop,r=r.offsetParent;var c=[t-o.left,n-o.top],i=(0,a.vecScale)([121,51],.5);return(0,a.vecSubtract)(c,i)},n.componentDidMount=function(){document.onwheel=this.handleWheel.bind(this)},n.handleMouseMove=function(e){var t=this.findStampPosition(e);S(e),this.setState({x:t[0],y:t[1]})},n.handleMouseClick=function(e){var t=this.findStampPosition(e),n=(0,l.useBackend)(this.context),o=n.act,r=n.data;o("stamp",{x:t[0],y:t[1],r:this.state.rotate,stamp_class:this.props.stamp_class,stamp_icon_state:r.stamp_icon_state}),this.setState({x:t[0],y:t[1]})},n.handleWheel=function(e){var t=e.deltaY>0?15:-15;if(e.deltaY<0&&0===this.state.rotate)this.setState({rotate:360+t});else if(e.deltaY>0&&360===this.state.rotate)this.setState({rotate:t});else{var n={rotate:t+this.state.rotate};this.setState((function(){return n}))}S(e)},n.render=function(){var e=this.props,t=e.value,n=e.stamp_class,r=e.stamps,a=p(e,["value","stamp_class","stamps"]),c=r||[],i={sprite:n,x:this.state.x,y:this.state.y,rotate:this.state.rotate};return(0,o.normalizeProps)((0,o.createComponentVNode)(2,d.Box,Object.assign({onClick:this.handleMouseClick.bind(this),onMouseMove:this.handleMouseMove.bind(this),onwheel:this.handleWheel.bind(this)},a,{children:[(0,o.createComponentVNode)(2,T,{readOnly:!0,value:t,stamps:c}),(0,o.createComponentVNode)(2,I,{opacity:.5,image:i})]})))},t}(o.Component),P=function(e){function t(t,n){var o;return(o=e.call(this,t,n)||this).state={previewSelected:"Preview",old_text:t.value||"",textarea_text:"",combined_text:t.value||""},o}m(t,e);var n=t.prototype;return n.createPreview=function(e,t){void 0===t&&(t=!1);var n,o,r=(0,l.useBackend)(this.context).data,a=r.text,d=r.pen_color,u=r.pen_font,s=r.is_crayon,m=r.field_counter,p=r.edit_usr,h={text:a};if((e=e.trim()).length>0){var N=function(e){return c["default"].sanitize(e,{FORBID_ATTR:["class","style"],ALLOWED_TAGS:["br","code","li","p","pre","span","table","td","tr","th","ul","ol","menu","font","b","center","table","tr","th"]})}(e+="\n"===e[e.length]?" \n":"\n \n"),V=(n=d,o=p,N.replace(L,(function(){return B(o,"Times New Roman",n,!0)}))),b=y(V,u,12,d,m),f=function(e){return(0,i["default"])(e,{breaks:!0,smartypants:!0,smartLists:!0,walkTokens:function(e){switch(e.type){case"url":case"autolink":case"reflink":case"link":case"image":e.type="text",e.href=""}},baseUrl:"thisshouldbreakhttp"})}(b.text),g=B(f,u,d,s);h.text+=g,h.field_counter=b.counter}if(t){var v=function(e,t,n,o,r){var a;void 0===r&&(r=!1);for(var i={},l=[];null!==(a=w.exec(e));){var d=a[0],u=a.groups.id;if(u){var s=document.getElementById(u);if(0===(s&&s.value?s.value:"").length)continue;var m=c["default"].sanitize(s.value.trim(),{ALLOWED_TAGS:[]});if(0===m.length)continue;var p=s.cloneNode(!0);m.match(L)?(p.style.fontFamily="Times New Roman",r=!0,p.defaultValue=o):(p.style.fontFamily=t,p.defaultValue=m),r&&(p.style.fontWeight="bold"),p.style.color=n,p.disabled=!0;var h=document.createElement("div");h.appendChild(p),i[u]=m,l.push({value:"["+h.innerHTML+"]",raw_text:d})}}if(l.length>0)for(var N,V=C(l);!(N=V()).done;){var b=N.value;e=e.replace(b.raw_text,b.value)}return{text:e,fields:i}}(h.text,u,d,p,s);h.text=v.text,h.form_fields=v.fields}return h},n.onInputHandler=function(e,t){var n=this;if(t!==this.state.textarea_text){var o=this.state.old_text.length+this.state.textarea_text.length;if(o>x&&(t=o-x>=t.length?"":t.substr(0,t.length-(o-x)))===this.state.textarea_text)return;this.setState((function(){return{textarea_text:t,combined_text:n.createPreview(t)}}))}},n.finalUpdate=function(e){var t=(0,l.useBackend)(this.context).act,n=this.createPreview(e,!0);t("save",n),this.setState((function(){return{textarea_text:"",previewSelected:"save",combined_text:n.text}}))},n.render=function(){var e=this,t=this.props,n=(t.value,t.textColor),r=t.fontFamily,a=t.stamps,c=t.backgroundColor;return p(t,["value","textColor","fontFamily","stamps","backgroundColor"]),(0,o.createComponentVNode)(2,d.Flex,{direction:"column",fillPositionedParent:!0,children:[(0,o.createComponentVNode)(2,d.Flex.Item,{children:(0,o.createComponentVNode)(2,d.Tabs,{children:[(0,o.createComponentVNode)(2,d.Tabs.Tab,{textColor:"black",backgroundColor:"Edit"===this.state.previewSelected?"grey":"white",selected:"Edit"===this.state.previewSelected,onClick:function(){return e.setState({previewSelected:"Edit"})},children:"Edit"},"marked_edit"),(0,o.createComponentVNode)(2,d.Tabs.Tab,{textColor:"black",backgroundColor:"Preview"===this.state.previewSelected?"grey":"white",selected:"Preview"===this.state.previewSelected,onClick:function(){return e.setState((function(){return{previewSelected:"Preview",textarea_text:e.state.textarea_text,combined_text:e.createPreview(e.state.textarea_text).text}}))},children:"Preview"},"marked_preview"),(0,o.createComponentVNode)(2,d.Tabs.Tab,{textColor:"black",backgroundColor:"confirm"===this.state.previewSelected?"red":"save"===this.state.previewSelected?"grey":"white",selected:"confirm"===this.state.previewSelected||"save"===this.state.previewSelected,onClick:function(){"confirm"===e.state.previewSelected?e.finalUpdate(e.state.textarea_text):"Edit"===e.state.previewSelected?e.setState((function(){return{previewSelected:"confirm",textarea_text:e.state.textarea_text,combined_text:e.createPreview(e.state.textarea_text).text}})):e.setState({previewSelected:"confirm"})},children:"confirm"===this.state.previewSelected?"confirm":"save"},"marked_done")]})}),(0,o.createComponentVNode)(2,d.Flex.Item,{grow:1,basis:1,children:"Edit"===this.state.previewSelected&&(0,o.createComponentVNode)(2,d.TextArea,{value:this.state.textarea_text,textColor:n,fontFamily:r,height:window.innerHeight-80+"px",backgroundColor:c,onInput:this.onInputHandler.bind(this)})||(0,o.createComponentVNode)(2,T,{value:this.state.combined_text,stamps:a,fontFamily:r,textColor:n})})]})},t}(o.Component);t.PaperSheet=function(e,t){var n=(0,l.useBackend)(t).data,r=n.edit_mode,a=n.text,c=n.paper_color,i=n.pen_color,s=void 0===i?"black":i,m=n.pen_font,p=void 0===m?"Verdana":m,C=n.stamps,h=n.stamp_class,N=(n.stamped,c&&"white"!==c?c:"#FFFFFF"),V=C&&null!==C?C:[];return(0,o.createComponentVNode)(2,u.Window,{theme:"paper",width:400,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,u.Window.Content,{children:(0,o.createComponentVNode)(2,d.Box,{fillPositionedParent:!0,backgroundColor:N,children:function(e){switch(e){case 0:return(0,o.createComponentVNode)(2,T,{value:a,stamps:V,readOnly:!0});case 1:return(0,o.createComponentVNode)(2,P,{value:a,textColor:s,fontFamily:p,stamps:V,backgroundColor:N});case 2:return(0,o.createComponentVNode)(2,A,{value:a,stamps:V,stamp_class:h});default:return"ERROR ERROR WE CANNOT BE HERE!!"}}(r)})})})}},57966:function(e,t,n){"use strict";t.__esModule=!0,t.ParticleAccelerator=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.ParticleAccelerator=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.assembled,u=l.power,s=l.strength;return(0,o.createComponentVNode)(2,c.Window,{width:350,height:185,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Run Scan",onClick:function(){return i("scan")}}),children:(0,o.createComponentVNode)(2,a.Box,{color:d?"good":"bad",children:d?"Ready - All parts in place":"Unable to detect all parts"})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Particle Accelerator Controls",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power",children:(0,o.createComponentVNode)(2,a.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,disabled:!d,onClick:function(){return i("power")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Particle Strength",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:!d,onClick:function(){return i("remove_strength")}})," ",String(s).padStart(1,"0")," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:!d,onClick:function(){return i("add_strength")}})]})]})})]})})}},67589:function(e,t,n){"use strict";t.__esModule=!0,t.PersonalCrafting=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);function i(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n50?"good":d>15&&"average")||"bad";return(0,o.createComponentVNode)(2,c.Window,{width:450,height:340,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[!l.anchored&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Generator not anchored."}),(0,o.createComponentVNode)(2,a.Section,{title:"Status",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power switch",children:(0,o.createComponentVNode)(2,a.Button,{icon:l.active?"power-off":"times",onClick:function(){return i("toggle_power")},disabled:!l.ready_to_boot,children:l.active?"On":"Off"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:l.sheet_name+" sheets",children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:u,children:l.sheets}),l.sheets>=1&&(0,o.createComponentVNode)(2,a.Button,{ml:1,icon:"eject",disabled:l.active,onClick:function(){return i("eject")},children:"Eject"})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current sheet level",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.stack_percent/100,ranges:{good:[.1,Infinity],average:[.01,.1],bad:[-Infinity,.01]}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Heat level",children:l.current_heat<100?(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"good",children:"Nominal"}):l.current_heat<200?(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"average",children:"Caution"}):(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"bad",children:"DANGER"})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Output",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current output",children:l.power_output}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Adjust output",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"minus",onClick:function(){return i("lower_power")},children:l.power_generated}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",onClick:function(){return i("higher_power")},children:l.power_generated})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power available",children:(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:!l.connected&&"bad",children:l.connected?l.power_available:"Unconnected"})})]})})]})})}},82564:function(e,t,n){"use strict";t.__esModule=!0,t.PortablePump=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=n(34227);t.PortablePump=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.direction,s=(d.holding,d.target_pressure),m=d.default_pressure,p=d.min_pressure,C=d.max_pressure;return(0,o.createComponentVNode)(2,c.Window,{width:300,height:315,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,i.PortableBasicInfo),(0,o.createComponentVNode)(2,a.Section,{title:"Pump",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u?"sign-in-alt":"sign-out-alt",content:u?"In":"Out",selected:u,onClick:function(){return l("direction")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:s,unit:"kPa",width:"75px",minValue:p,maxValue:C,step:10,onChange:function(e,t){return l("pressure",{pressure:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Presets",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"minus",disabled:s===p,onClick:function(){return l("pressure",{pressure:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",disabled:s===m,onClick:function(){return l("pressure",{pressure:"reset"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"plus",disabled:s===C,onClick:function(){return l("pressure",{pressure:"max"})}})]})]})})]})})}},24901:function(e,t,n){"use strict";t.__esModule=!0,t.PortableScrubber=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(76270),i=n(85952),l=n(34227);t.PortableScrubber=function(e,t){var n=(0,r.useBackend)(t),d=n.act,u=n.data.filter_types||[];return(0,o.createComponentVNode)(2,i.Window,{width:320,height:350,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,l.PortableBasicInfo),(0,o.createComponentVNode)(2,a.Section,{title:"Filters",children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:e.enabled?"check-square-o":"square-o",content:(0,c.getGasLabel)(e.gas_id,e.gas_name),selected:e.enabled,onClick:function(){return d("toggle_filter",{val:e.gas_id})}},e.id)}))})]})})}},31695:function(e,t,n){"use strict";t.__esModule=!0,t.PortableTurret=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.PortableTurret=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.silicon_user,u=l.locked,s=l.on,m=l.check_weapons,p=l.neutralize_criminals,C=l.neutralize_all,h=l.neutralize_unidentified,N=l.neutralize_nonmindshielded,V=l.neutralize_cyborgs,b=l.neutralize_heads,f=l.manual_control,g=l.allow_manual_control,v=l.lasertag_turret;return(0,o.createComponentVNode)(2,c.Window,{width:310,height:v?110:292,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.NoticeBox,{children:["Swipe an ID card to ",u?"unlock":"lock"," this interface."]}),(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",buttons:!v&&(!!g||!!f&&!!d)&&(0,o.createComponentVNode)(2,a.Button,{icon:f?"wifi":"terminal",content:f?"Remotely Controlled":"Manual Control",disabled:f,color:"bad",onClick:function(){return i("manual")}}),children:(0,o.createComponentVNode)(2,a.Button,{icon:s?"power-off":"times",content:s?"On":"Off",selected:s,disabled:u,onClick:function(){return i("power")}})})})}),!v&&(0,o.createComponentVNode)(2,a.Section,{title:"Target Settings",buttons:(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:!b,content:"Ignore Command",disabled:u,onClick:function(){return i("shootheads")}}),children:[(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:C,content:"Non-Security and Non-Command",disabled:u,onClick:function(){return i("shootall")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:m,content:"Unauthorized Weapons",disabled:u,onClick:function(){return i("authweapon")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:h,content:"Unidentified Life Signs",disabled:u,onClick:function(){return i("checkxenos")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:N,content:"Non-Mindshielded",disabled:u,onClick:function(){return i("checkloyal")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:p,content:"Wanted Criminals",disabled:u,onClick:function(){return i("shootcriminals")}}),(0,o.createComponentVNode)(2,a.Button.Checkbox,{fluid:!0,checked:V,content:"Cyborgs",disabled:u,onClick:function(){return i("shootborgs")}})]})],0)]})})}},89793:function(e,t,n){"use strict";t.__esModule=!0,t.AreaCharge=t.PowerMonitorContent=t.PowerMonitor=t.powerRank=void 0;var o=n(39812),r=n(64499),a=n(85531),c=n(41860),i=n(34380),l=n(71494),d=n(74814),u=n(85952),s=5e5,m=function(e){var t=String(e.split(" ")[1]).toLowerCase();return["w","kw","mw","gw"].indexOf(t)};t.powerRank=m;t.PowerMonitor=function(){return(0,o.createComponentVNode)(2,u.Window,{width:550,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,u.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,p)})})};var p=function(e,t){var n=(0,l.useBackend)(t).data,i=n.history,u=(0,l.useLocalState)(t,"sortByField",null),p=u[0],N=u[1],V=i.supply[i.supply.length-1]||0,b=i.demand[i.demand.length-1]||0,f=i.supply.map((function(e,t){return[t,e]})),g=i.demand.map((function(e,t){return[t,e]})),v=Math.max.apply(Math,[s].concat(i.supply,i.demand)),k=(0,a.flow)([(0,r.map)((function(e,t){return Object.assign({},e,{id:e.name+t})})),"name"===p&&(0,r.sortBy)((function(e){return e.name})),"charge"===p&&(0,r.sortBy)((function(e){return-e.charge})),"draw"===p&&(0,r.sortBy)((function(e){return-m(e.load)}),(function(e){return-parseFloat(e.load)}))])(n.areas);return(0,o.createFragment)([(0,o.createComponentVNode)(2,d.Flex,{mx:-.5,mb:1,children:[(0,o.createComponentVNode)(2,d.Flex.Item,{mx:.5,width:"200px",children:(0,o.createComponentVNode)(2,d.Section,{children:(0,o.createComponentVNode)(2,d.LabeledList,{children:[(0,o.createComponentVNode)(2,d.LabeledList.Item,{label:"Supply",children:(0,o.createComponentVNode)(2,d.ProgressBar,{value:V,minValue:0,maxValue:v,color:"teal",children:(0,c.toFixed)(V/1e3)+" kW"})}),(0,o.createComponentVNode)(2,d.LabeledList.Item,{label:"Draw",children:(0,o.createComponentVNode)(2,d.ProgressBar,{value:b,minValue:0,maxValue:v,color:"pink",children:(0,c.toFixed)(b/1e3)+" kW"})})]})})}),(0,o.createComponentVNode)(2,d.Flex.Item,{mx:.5,grow:1,children:(0,o.createComponentVNode)(2,d.Section,{position:"relative",height:"100%",children:[(0,o.createComponentVNode)(2,d.Chart.Line,{fillPositionedParent:!0,data:f,rangeX:[0,f.length-1],rangeY:[0,v],strokeColor:"rgba(0, 181, 173, 1)",fillColor:"rgba(0, 181, 173, 0.25)"}),(0,o.createComponentVNode)(2,d.Chart.Line,{fillPositionedParent:!0,data:g,rangeX:[0,g.length-1],rangeY:[0,v],strokeColor:"rgba(224, 57, 151, 1)",fillColor:"rgba(224, 57, 151, 0.25)"})]})})]}),(0,o.createComponentVNode)(2,d.Section,{children:[(0,o.createComponentVNode)(2,d.Box,{mb:1,children:[(0,o.createComponentVNode)(2,d.Box,{inline:!0,mr:2,color:"label",children:"Sort by:"}),(0,o.createComponentVNode)(2,d.Button.Checkbox,{checked:"name"===p,content:"Name",onClick:function(){return N("name"!==p&&"name")}}),(0,o.createComponentVNode)(2,d.Button.Checkbox,{checked:"charge"===p,content:"Charge",onClick:function(){return N("charge"!==p&&"charge")}}),(0,o.createComponentVNode)(2,d.Button.Checkbox,{checked:"draw"===p,content:"Draw",onClick:function(){return N("draw"!==p&&"draw")}})]}),(0,o.createComponentVNode)(2,d.Table,{children:[(0,o.createComponentVNode)(2,d.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,d.Table.Cell,{children:"Area"}),(0,o.createComponentVNode)(2,d.Table.Cell,{collapsing:!0,children:"Charge"}),(0,o.createComponentVNode)(2,d.Table.Cell,{textAlign:"right",children:"Draw"}),(0,o.createComponentVNode)(2,d.Table.Cell,{collapsing:!0,title:"Equipment",children:"Eqp"}),(0,o.createComponentVNode)(2,d.Table.Cell,{collapsing:!0,title:"Lighting",children:"Lgt"}),(0,o.createComponentVNode)(2,d.Table.Cell,{collapsing:!0,title:"Environment",children:"Env"})]}),k.map((function(e,t){return(0,o.createVNode)(1,"tr","Table__row candystripe",[(0,o.createVNode)(1,"td",null,e.name,0),(0,o.createVNode)(1,"td","Table__cell text-right text-nowrap",(0,o.createComponentVNode)(2,C,{charging:e.charging,charge:e.charge}),2),(0,o.createVNode)(1,"td","Table__cell text-right text-nowrap",e.load,0),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,h,{status:e.eqp}),2),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,h,{status:e.lgt}),2),(0,o.createVNode)(1,"td","Table__cell text-center text-nowrap",(0,o.createComponentVNode)(2,h,{status:e.env}),2)],4,null,e.id)}))]})]})],4)};t.PowerMonitorContent=p;var C=function(e){var t=e.charging,n=e.charge;return(0,o.createFragment)([(0,o.createComponentVNode)(2,d.Icon,{width:"18px",textAlign:"center",name:0===t&&(n>50?"battery-half":"battery-quarter")||1===t&&"bolt"||2===t&&"battery-full",color:0===t&&(n>50?"yellow":"red")||1===t&&"yellow"||2===t&&"green"}),(0,o.createComponentVNode)(2,d.Box,{inline:!0,width:"36px",textAlign:"right",children:(0,c.toFixed)(n)+"%"})],4)};t.AreaCharge=C,C.defaultHooks=i.pureComponentHooks;var h=function(e){var t=e.status,n=Boolean(2&t),r=Boolean(1&t),a=(n?"On":"Off")+" ["+(r?"auto":"manual")+"]";return(0,o.createComponentVNode)(2,d.ColorBox,{color:n?"good":"bad",content:r?undefined:"M",title:a})};h.defaultHooks=i.pureComponentHooks},49081:function(e,t,n){"use strict";t.__esModule=!0,t.ProbingConsole=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.ProbingConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.open,u=l.feedback,s=l.occupant,m=l.occupant_name,p=l.occupant_status;return(0,o.createComponentVNode)(2,c.Window,{width:330,height:207,theme:"abductor",children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Machine Report",children:u})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Scanner",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:d?"sign-out-alt":"sign-in-alt",content:d?"Close":"Open",onClick:function(){return i("door")}}),children:s&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:m}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",color:3===p?"bad":2===p?"average":"good",children:3===p?"Deceased":2===p?"Unconscious":"Conscious"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Experiments",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"thermometer",content:"Probe",onClick:function(){return i("experiment",{experiment_type:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"brain",content:"Dissect",onClick:function(){return i("experiment",{experiment_type:2})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"search",content:"Analyze",onClick:function(){return i("experiment",{experiment_type:3})}})]})]})||(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No Subject"})})]})})}},33642:function(e,t,n){"use strict";t.__esModule=!0,t.ProximitySensor=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.ProximitySensor=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.minutes,u=l.seconds,s=l.timing,m=l.scanning,p=l.sensitivity;return(0,o.createComponentVNode)(2,c.Window,{width:250,height:185,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Button,{icon:m?"lock":"unlock",content:m?"Armed":"Not Armed",selected:m,onClick:function(){return i("scanning")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Detection Range",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:m,onClick:function(){return i("sense",{range:-1})}})," ",String(p).padStart(1,"1")," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:m,onClick:function(){return i("sense",{range:1})}})]})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Auto Arm",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"clock-o",content:s?"Stop":"Start",selected:s,disabled:m,onClick:function(){return i("time")}}),children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:m||s,onClick:function(){return i("input",{adjust:-30})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:m||s,onClick:function(){return i("input",{adjust:-1})}})," ",String(d).padStart(2,"0"),":",String(u).padStart(2,"0")," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:m||s,onClick:function(){return i("input",{adjust:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:m||s,onClick:function(){return i("input",{adjust:30})}})]})]})})}},17481:function(e,t,n){"use strict";t.__esModule=!0,t.Radio=void 0;var o=n(39812),r=n(64499),a=n(41860),c=n(71494),i=n(74814),l=n(76270),d=n(85952);t.Radio=function(e,t){var n=(0,c.useBackend)(t),u=n.act,s=n.data,m=s.freqlock,p=s.frequency,C=s.minFrequency,h=s.maxFrequency,N=s.listening,V=s.broadcasting,b=s.command,f=s.useCommand,g=s.subspace,v=s.subspaceSwitchable,k=l.RADIO_CHANNELS.find((function(e){return e.freq===p})),x=(0,r.map)((function(e,t){return{name:t,status:!!e}}))(s.channels),B=106;return g&&(x.length>0?B+=21*x.length+6:B+=24),(0,o.createComponentVNode)(2,d.Window,{width:360,height:B,children:(0,o.createComponentVNode)(2,d.Window.Content,{children:(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Frequency",children:[m&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"light-gray",children:(0,a.toFixed)(p/10,1)+" kHz"})||(0,o.createComponentVNode)(2,i.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:10,minValue:C/10,maxValue:h/10,value:p/10,format:function(e){return(0,a.toFixed)(e,1)},onDrag:function(e,t){return u("frequency",{adjust:t-p/10})}}),k&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:k.color,ml:2,children:["[",k.name,"]"]})]}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Audio",children:[(0,o.createComponentVNode)(2,i.Button,{textAlign:"center",width:"37px",icon:N?"volume-up":"volume-mute",selected:N,onClick:function(){return u("listen")}}),(0,o.createComponentVNode)(2,i.Button,{textAlign:"center",width:"37px",icon:V?"microphone":"microphone-slash",selected:V,onClick:function(){return u("broadcast")}}),!!b&&(0,o.createComponentVNode)(2,i.Button,{ml:1,icon:"bullhorn",selected:f,content:"High volume "+(f?"ON":"OFF"),onClick:function(){return u("command")}}),!!v&&(0,o.createComponentVNode)(2,i.Button,{ml:1,icon:"bullhorn",selected:g,content:"Subspace Tx "+(g?"ON":"OFF"),onClick:function(){return u("subspace")}})]}),!!g&&(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Channels",children:[0===x.length&&(0,o.createComponentVNode)(2,i.Box,{inline:!0,color:"bad",children:"No encryption keys installed."}),x.map((function(e){return(0,o.createComponentVNode)(2,i.Box,{children:(0,o.createComponentVNode)(2,i.Button,{icon:e.status?"check-square-o":"square-o",selected:e.status,content:e.name,onClick:function(){return u("channel",{channel:e.name})}})},e.name)}))]})]})})})})}},8324:function(e,t,n){"use strict";t.__esModule=!0,t.RadioactiveMicrolaser=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.RadioactiveMicrolaser=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.irradiate,u=l.stealth,s=l.scanmode,m=l.intensity,p=l.wavelength,C=l.on_cooldown,h=l.cooldown;return(0,o.createComponentVNode)(2,c.Window,{title:"Radioactive Microlaser",width:320,height:335,theme:"syndicate",children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Laser Status",children:(0,o.createComponentVNode)(2,a.Box,{color:C?"average":"good",children:C?"Recharging":"Ready"})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Scanner Controls",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Irradiation",children:(0,o.createComponentVNode)(2,a.Button,{icon:d?"power-off":"times",content:d?"On":"Off",selected:d,onClick:function(){return i("irradiate")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Stealth Mode",children:(0,o.createComponentVNode)(2,a.Button,{icon:u?"eye-slash":"eye",content:u?"On":"Off",disabled:!d,selected:u,onClick:function(){return i("stealth")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Scan Mode",children:(0,o.createComponentVNode)(2,a.Button,{icon:s?"mortar-pestle":"heartbeat",content:s?"Scan Reagents":"Scan Health",disabled:d&&u,onClick:function(){return i("scanmode")}})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Laser Settings",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Intensity",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",onClick:function(){return i("radintensity",{adjust:-5})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",onClick:function(){return i("radintensity",{adjust:-1})}})," ",(0,o.createComponentVNode)(2,a.NumberInput,{value:Math.round(m),width:"40px",minValue:1,maxValue:20,onChange:function(e,t){return i("radintensity",{target:t})}})," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",onClick:function(){return i("radintensity",{adjust:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",onClick:function(){return i("radintensity",{adjust:5})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Radiation Wavelength",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",onClick:function(){return i("radwavelength",{adjust:-5})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",onClick:function(){return i("radwavelength",{adjust:-1})}})," ",(0,o.createComponentVNode)(2,a.NumberInput,{value:Math.round(p),width:"40px",minValue:0,maxValue:120,onChange:function(e,t){return i("radwavelength",{target:t})}})," ",(0,o.createComponentVNode)(2,a.Button,{icon:"forward",onClick:function(){return i("radwavelength",{adjust:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",onClick:function(){return i("radwavelength",{adjust:5})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Laser Cooldown",children:(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:h})})]})})]})})}},29509:function(e,t,n){"use strict";t.__esModule=!0,t.RapidPipeDispenser=void 0;var o=n(39812),r=n(34380),a=n(71494),c=n(74814),i=n(85952),l=["Atmospherics","Disposals","Transit Tubes"],d={Atmospherics:"wrench",Disposals:"trash-alt","Transit Tubes":"bus",Pipes:"grip-lines","Disposal Pipes":"grip-lines",Devices:"microchip","Heat Exchange":"thermometer-half","Station Equipment":"microchip"},u={grey:"#bbbbbb",amethyst:"#a365ff",blue:"#4466ff",brown:"#b26438",cyan:"#48eae8",dark:"#808080",green:"#1edd00",orange:"#ffa030",purple:"#b535ea",red:"#ff3333",violet:"#6e00f6",yellow:"#ffce26"},s=[{name:"Dispense",bitmask:1},{name:"Connect",bitmask:2},{name:"Destroy",bitmask:4},{name:"Paint",bitmask:8}];t.RapidPipeDispenser=function(e,t){var n=(0,a.useBackend)(t),m=n.act,p=n.data,C=p.category,h=p.categories,N=void 0===h?[]:h,V=p.selected_color,b=p.piping_layer,f=p.mode,g=p.preview_rows.flatMap((function(e){return e.previews})),v=(0,a.useLocalState)(t,"categoryName"),k=v[0],x=v[1],B=N.find((function(e){return e.cat_name===k}))||N[0];return(0,o.createComponentVNode)(2,i.Window,{width:425,height:515,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Category",children:l.map((function(e,t){return(0,o.createComponentVNode)(2,c.Button,{selected:C===t,icon:d[e],color:"transparent",content:e,onClick:function(){return m("category",{category:t})}},e)}))}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Modes",children:s.map((function(e){return(0,o.createComponentVNode)(2,c.Button.Checkbox,{checked:f&e.bitmask,content:e.name,onClick:function(){return m("mode",{mode:e.bitmask})}},e.bitmask)}))}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Color",children:[(0,o.createComponentVNode)(2,c.Box,{inline:!0,width:"64px",color:u[V],children:V}),Object.keys(u).map((function(e){return(0,o.createComponentVNode)(2,c.ColorBox,{ml:1,color:u[e],onClick:function(){return m("color",{paint_color:e})}},e)}))]})]})}),(0,o.createComponentVNode)(2,c.Flex,{m:-.5,children:[(0,o.createComponentVNode)(2,c.Flex.Item,{m:.5,children:(0,o.createComponentVNode)(2,c.Section,{children:[0===C&&(0,o.createComponentVNode)(2,c.Box,{mb:1,children:[1,2,3].map((function(e){return(0,o.createComponentVNode)(2,c.Button.Checkbox,{fluid:!0,checked:e===b,content:"Layer "+e,onClick:function(){return m("piping_layer",{piping_layer:e})}},e)}))}),(0,o.createComponentVNode)(2,c.Box,{width:"108px",children:g.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{title:e.dir_name,selected:e.selected,style:{width:"48px",height:"48px",padding:0},onClick:function(){return m("setdir",{dir:e.dir,flipped:e.flipped})},children:(0,o.createComponentVNode)(2,c.Box,{className:(0,r.classes)(["pipes32x32",e.dir+"-"+e.icon_state]),style:{transform:"scale(1.5) translate(17%, 17%)"}})},e.dir)}))})]})}),(0,o.createComponentVNode)(2,c.Flex.Item,{m:.5,grow:1,children:(0,o.createComponentVNode)(2,c.Section,{children:[(0,o.createComponentVNode)(2,c.Tabs,{children:N.map((function(e,t){return(0,o.createComponentVNode)(2,c.Tabs.Tab,{fluid:!0,icon:d[e.cat_name],selected:e.cat_name===B.cat_name,onClick:function(){return x(e.cat_name)},children:e.cat_name},e.cat_name)}))}),null==B?void 0:B.recipes.map((function(e){return(0,o.createComponentVNode)(2,c.Button.Checkbox,{fluid:!0,ellipsis:!0,checked:e.selected,content:e.pipe_name,title:e.pipe_name,onClick:function(){return m("pipe_type",{pipe_type:e.pipe_index,category:B.cat_name})}},e.pipe_index)}))]})})]})]})})}},14265:function(e,t,n){"use strict";t.__esModule=!0,t.RemoteRobotControlContent=t.RemoteRobotControl=void 0;var o=n(39812),r=n(2497),a=n(71494),c=n(74814),i=n(85952);t.RemoteRobotControl=function(e,t){return(0,o.createComponentVNode)(2,i.Window,{title:"Remote Robot Control",width:500,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,l)})})};var l=function(e,t){var n=(0,a.useBackend)(t),i=n.act,l=n.data.robots,d=void 0===l?[]:l;return d.length?d.map((function(e){return(0,o.createComponentVNode)(2,c.Section,{title:e.name+" ("+e.model+")",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Button,{icon:"tools",content:"Interface",onClick:function(){return i("interface",{ref:e.ref})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"phone-alt",content:"Call",onClick:function(){return i("callbot",{ref:e.ref})}})],4),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Status",children:[(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"Inactive"===(0,r.decodeHtmlEntities)(e.mode)?"bad":"Idle"===(0,r.decodeHtmlEntities)(e.mode)?"average":"good",children:(0,r.decodeHtmlEntities)(e.mode)})," ",e.hacked&&(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:"bad",children:"(HACKED)"})||""]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Location",children:e.location})]})},e.ref)})):(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.NoticeBox,{textAlign:"center",children:"No robots detected"})})};t.RemoteRobotControlContent=l},18374:function(e,t,n){"use strict";t.__esModule=!0,t.RequestKioskContent=t.RequestKiosk=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(58083),i=n(85952);t.RequestKiosk=function(e,t){return(0,o.createComponentVNode)(2,i.Window,{width:550,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,l)})})};var l=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.accountName,u=l.requests,s=void 0===u?[]:u,m=l.applicants,p=void 0===m?[]:m,C=l.bountyValue;l.bountyText;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Account",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"power-off",content:"Log out",onClick:function(){return i("clear")}}),children:d||"N/A"})})}),(0,o.createComponentVNode)(2,a.Flex,{mb:1,children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:null==s?void 0:s.map((function(e){return(0,o.createComponentVNode)(2,a.Collapsible,{title:e.owner,width:"300px",children:(0,o.createComponentVNode)(2,a.Section,{width:"300px",children:[(0,o.createComponentVNode)(2,a.Flex,{spacing:1,align:"baseline",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{bold:!0,width:"310px",children:e.owner}),(0,o.createComponentVNode)(2,a.Flex.Item,{width:"100px",children:(0,c.formatMoney)(e.value)+" cr"}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"pen-fancy",content:"Apply",onClick:function(){return i("apply",{request:e.acc_number})}}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"trash-alt",content:"Delete",color:"red",onClick:function(){return i("deleteRequest",{request:e.acc_number})}})]})]}),(0,o.createComponentVNode)(2,a.Section,{align:"center",children:(0,o.createVNode)(1,"i",null,[(0,o.createTextVNode)('"'),e.description,(0,o.createTextVNode)('"')],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Request Applicants",children:null==p?void 0:p.map((function(t){return t.request_id===e.acc_number&&(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,p:.5,backgroundColor:"rgba(0, 0, 69, 0.5)",width:"510px",style:{border:"2px solid rgba(13, 13, 213, 0.7)"},children:t.name}),(0,o.createComponentVNode)(2,a.Flex.Item,{align:"end",children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"cash-register",onClick:function(){return i("payApplicant",{applicant:t.requestee_id,request:e.acc_number})}})})]})}))})]},e.name)},e.name)}))}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Collapsible,{title:"New Bounty",width:"220px",color:"green",children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.TextArea,{fluid:!0,height:"250px",width:"200px",backgroundColor:"black",textColor:"white",onChange:function(e,t){return i("bountyText",{bountytext:t})}}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.NumberInput,{animate:!0,unit:"cr",minValue:1,maxValue:1e3,value:C,width:"80px",onChange:function(e,t){return i("bountyVal",{bountyval:t})}})}),(0,o.createComponentVNode)(2,a.Button,{icon:"print",content:"Submit bounty",onClick:function(){return i("createBounty")}})]})})})]})],4)};t.RequestKioskContent=l},24455:function(e,t,n){"use strict";t.__esModule=!0,t.RoboticsControlConsole=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.RoboticsControlConsole=function(e,t){var n=(0,r.useBackend)(t),d=(n.act,n.data),u=(0,r.useSharedState)(t,"tab",1),s=u[0],m=u[1],p=d.can_hack,C=d.cyborgs,h=void 0===C?[]:C,N=d.drones,V=void 0===N?[]:N;return(0,o.createComponentVNode)(2,c.Window,{width:500,height:460,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{icon:"list",lineHeight:"23px",selected:1===s,onClick:function(){return m(1)},children:["Cyborgs (",h.length,")"]}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{icon:"list",lineHeight:"23px",selected:2===s,onClick:function(){return m(2)},children:["Drones (",V.length,")"]})]}),1===s&&(0,o.createComponentVNode)(2,i,{cyborgs:h,can_hack:p}),2===s&&(0,o.createComponentVNode)(2,l,{drones:V})]})})};var i=function(e,t){var n=e.cyborgs,c=e.can_hack,i=(0,r.useBackend)(t),l=i.act;i.data;return n.length?n.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,buttons:(0,o.createFragment)([!!c&&!e.emagged&&(0,o.createComponentVNode)(2,a.Button,{icon:"terminal",content:"Hack",color:"bad",onClick:function(){return l("magbot",{ref:e.ref})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:e.locked_down?"unlock":"lock",color:e.locked_down?"good":"default",content:e.locked_down?"Release":"Lockdown",onClick:function(){return l("stopbot",{ref:e.ref})}}),(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"bomb",content:"Detonate",color:"bad",onClick:function(){return l("killbot",{ref:e.ref})}})],0),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.status?"bad":e.locked_down?"average":"good",children:e.status?"Not Responding":e.locked_down?"Locked Down":"Nominal"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge",children:(0,o.createComponentVNode)(2,a.Box,{color:e.charge<=30?"bad":e.charge<=70?"average":"good",children:"number"==typeof e.charge?e.charge+"%":"Not Found"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Module",children:e.module}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Master AI",children:(0,o.createComponentVNode)(2,a.Box,{color:e.synchronization?"default":"average",children:e.synchronization||"None"})})]})},e.ref)})):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No cyborg units detected within access parameters"})},l=function(e,t){var n=e.drones,c=(0,r.useBackend)(t).act;return n.length?n.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,buttons:(0,o.createComponentVNode)(2,a.Button.Confirm,{icon:"bomb",content:"Detonate",color:"bad",onClick:function(){return c("killdrone",{ref:e.ref})}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:(0,o.createComponentVNode)(2,a.Box,{color:e.status?"bad":"good",children:e.status?"Not Responding":"Nominal"})})})},e.ref)})):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No drone units detected within access parameters"})}},90910:function(e,t,n){"use strict";t.__esModule=!0,t.Roulette=t.RouletteBetTable=t.RouletteBoard=t.RouletteNumberButton=void 0;var o=n(39812),r=n(34380),a=n(71494),c=n(74814),i=n(85952),l=function(e){if(0===e)return"green";for(var t=[[1,10],[19,28]],n=!0,o=0;o=r[0]&&e<=r[1]){n=!1;break}}var a=e%2==0;return(n?a:!a)?"red":"black"},d=function(e,t){var n=e.number,r=(0,a.useBackend)(t).act;return(0,o.createComponentVNode)(2,c.Button,{bold:!0,content:n,color:l(n),width:"40px",height:"28px",fontSize:"20px",textAlign:"center",mb:0,className:"Roulette__board-extrabutton",onClick:function(){return r("ChangeBetType",{type:n})}})};t.RouletteNumberButton=d;var u=function(e,t){var n=(0,a.useBackend)(t).act;return(0,o.createVNode)(1,"table","Table",[(0,o.createVNode)(1,"tr","Roulette__board-row",[(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{content:"0",color:"transparent",height:"88px",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:0})}}),2,{rowSpan:"3"}),[3,6,9,12,15,18,21,24,27,30,33,36].map((function(e){return(0,o.createVNode)(1,"td","Roulette__board-cell Table__cell-collapsing",(0,o.createComponentVNode)(2,d,{number:e}),2,null,e)})),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"2 to 1",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s3rd col"})}}),2)],0),(0,o.createVNode)(1,"tr",null,[[2,5,8,11,14,17,20,23,26,29,32,35].map((function(e){return(0,o.createVNode)(1,"td","Roulette__board-cell Table__cell-collapsing",(0,o.createComponentVNode)(2,d,{number:e}),2,null,e)})),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"2 to 1",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s2nd col"})}}),2)],0),(0,o.createVNode)(1,"tr",null,[[1,4,7,10,13,16,19,22,25,28,31,34].map((function(e){return(0,o.createVNode)(1,"td","Roulette__board-cell Table__cell-collapsing",(0,o.createComponentVNode)(2,d,{number:e}),2,null,e)})),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"2 to 1",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s1st col"})}}),2)],0),(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td"),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"1st 12",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s1-12"})}}),2,{colSpan:"4"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"2nd 12",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s13-24"})}}),2,{colSpan:"4"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"3rd 12",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s25-36"})}}),2,{colSpan:"4"})],4),(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td"),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"1-18",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s1-18"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"Even",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"even"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"Black",color:"black",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"black"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"Red",color:"red",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"red"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"Odd",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"odd"})}}),2,{colSpan:"2"}),(0,o.createVNode)(1,"td","Roulette__board-cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,bold:!0,content:"19-36",color:"transparent",className:"Roulette__board-extrabutton",onClick:function(){return n("ChangeBetType",{type:"s19-36"})}}),2,{colSpan:"2"})],4)],4,{style:{width:"1px"}})};t.RouletteBoard=u;var s=function(e,t){var n=(0,a.useBackend)(t),i=n.act,d=n.data,u=(0,a.useLocalState)(t,"customBet",500),s=u[0],m=u[1],p=d.BetType;return p.startsWith("s")&&(p=p.substring(1,p.length)),(0,o.createVNode)(1,"table","Roulette__lowertable",[(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"th",(0,r.classes)(["Roulette","Roulette__lowertable--cell","Roulette__lowertable--header"]),"Last Spun:",16),(0,o.createVNode)(1,"th",(0,r.classes)(["Roulette","Roulette__lowertable--cell","Roulette__lowertable--header"]),"Current Bet:",16)],4),(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td",(0,r.classes)(["Roulette","Roulette__lowertable--cell","Roulette__lowertable--spinresult","Roulette__lowertable--spinresult-"+l(d.LastSpin)]),d.LastSpin,0),(0,o.createVNode)(1,"td",(0,r.classes)(["Roulette","Roulette__lowertable--cell","Roulette__lowertable--betscell"]),[(0,o.createComponentVNode)(2,c.Box,{bold:!0,mt:1,mb:1,fontSize:"25px",textAlign:"center",children:[d.BetAmount," cr on ",p]}),(0,o.createComponentVNode)(2,c.Box,{ml:1,mr:1,children:[(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:"Bet 10 cr",onClick:function(){return i("ChangeBetAmount",{amount:10})}}),(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:"Bet 50 cr",onClick:function(){return i("ChangeBetAmount",{amount:50})}}),(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:"Bet 100 cr",onClick:function(){return i("ChangeBetAmount",{amount:100})}}),(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:"Bet 500 cr",onClick:function(){return i("ChangeBetAmount",{amount:500})}}),(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:"Bet custom amount...",onClick:function(){return i("ChangeBetAmount",{amount:s})}})}),(0,o.createComponentVNode)(2,c.Grid.Column,{size:.1,children:(0,o.createComponentVNode)(2,c.NumberInput,{value:s,minValue:0,maxValue:1e3,step:10,stepPixelSize:4,width:"40px",onChange:function(e,t){return m(t)}})})]})]})],4)],4),(0,o.createVNode)(1,"tr",null,(0,o.createVNode)(1,"td",null,(0,o.createComponentVNode)(2,c.Box,{bold:!0,m:1,fontSize:"14px",textAlign:"center",children:"Swipe an ID card with a connected account to spin!"}),2,{colSpan:"2"}),2),(0,o.createVNode)(1,"tr",null,[(0,o.createVNode)(1,"td","Roulette__lowertable--cell",[(0,o.createComponentVNode)(2,c.Box,{inline:!0,bold:!0,mr:1,children:"House Balance:"}),(0,o.createComponentVNode)(2,c.Box,{inline:!0,children:d.HouseBalance?d.HouseBalance+" cr":"None"})],4),(0,o.createVNode)(1,"td","Roulette__lowertable--cell",(0,o.createComponentVNode)(2,c.Button,{fluid:!0,content:d.IsAnchored?"Bolted":"Unbolted",m:1,color:"transparent",textAlign:"center",onClick:function(){return i("anchor")}}),2)],4)],4)};t.RouletteBetTable=s;t.Roulette=function(e,t){return(0,o.createComponentVNode)(2,i.Window,{width:603,height:475,theme:"cardtable",children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,u),(0,o.createComponentVNode)(2,s)]})})}},14317:function(e,t,n){"use strict";t.__esModule=!0,t.SatelliteControl=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(60929),i=n(85952);t.SatelliteControl=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.satellites||[];return(0,o.createComponentVNode)(2,i.Window,{width:400,height:305,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[d.meteor_shield&&(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledListItem,{label:"Coverage",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:d.meteor_shield_coverage/d.meteor_shield_coverage_max,content:100*d.meteor_shield_coverage/d.meteor_shield_coverage_max+"%",ranges:{good:[1,Infinity],average:[.3,1],bad:[-Infinity,.3]}})})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Satellite Controls",children:(0,o.createComponentVNode)(2,a.Box,{mr:-1,children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.active,content:"#"+e.id+" "+e.mode,onClick:function(){return l("toggle",{id:e.id})}},e.id)}))})})]})})}},55666:function(e,t,n){"use strict";t.__esModule=!0,t.ScannerGate=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(21451),i=n(85952),l=["Positive","Harmless","Minor","Medium","Harmful","Dangerous","BIOHAZARD"],d=[{name:"Human",value:"human"},{name:"Lizardperson",value:"lizard"},{name:"Flyperson",value:"fly"},{name:"Felinid",value:"felinid"},{name:"Plasmaman",value:"plasma"},{name:"Mothperson",value:"moth"},{name:"Jellyperson",value:"jelly"},{name:"Podperson",value:"pod"},{name:"Golem",value:"golem"},{name:"Zombie",value:"zombie"}],u=[{name:"Starving",value:150},{name:"Obese",value:600}];t.ScannerGate=function(e,t){var n=(0,r.useBackend)(t),a=n.act,l=n.data;return(0,o.createComponentVNode)(2,i.Window,{width:400,height:300,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.InterfaceLockNoticeBox,{onLockedStatusChange:function(){return a("toggle_lock")}}),!l.locked&&(0,o.createComponentVNode)(2,m)]})})};var s={Off:{title:"Scanner Mode: Off",component:function(){return p}},Wanted:{title:"Scanner Mode: Wanted",component:function(){return C}},Guns:{title:"Scanner Mode: Guns",component:function(){return h}},Mindshield:{title:"Scanner Mode: Mindshield",component:function(){return N}},Disease:{title:"Scanner Mode: Disease",component:function(){return V}},Species:{title:"Scanner Mode: Species",component:function(){return b}},Nutrition:{title:"Scanner Mode: Nutrition",component:function(){return f}},Nanites:{title:"Scanner Mode: Nanites",component:function(){return g}}},m=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.scan_mode,l=s[i]||s.off,d=l.component();return(0,o.createComponentVNode)(2,a.Section,{title:l.title,buttons:"Off"!==i&&(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-left",content:"back",onClick:function(){return c("set_mode",{new_mode:"Off"})}}),children:(0,o.createComponentVNode)(2,d)})},p=function(e,t){var n=(0,r.useBackend)(t).act;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:"Select a scanning mode below."}),(0,o.createComponentVNode)(2,a.Box,{children:[(0,o.createComponentVNode)(2,a.Button,{content:"Wanted",onClick:function(){return n("set_mode",{new_mode:"Wanted"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Guns",onClick:function(){return n("set_mode",{new_mode:"Guns"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Mindshield",onClick:function(){return n("set_mode",{new_mode:"Mindshield"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Disease",onClick:function(){return n("set_mode",{new_mode:"Disease"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Species",onClick:function(){return n("set_mode",{new_mode:"Species"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Nutrition",onClick:function(){return n("set_mode",{new_mode:"Nutrition"})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Nanites",onClick:function(){return n("set_mode",{new_mode:"Nanites"})}})]})],4)},C=function(e,t){var n=(0,r.useBackend)(t).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","any warrants for their arrest."]}),(0,o.createComponentVNode)(2,v)],4)},h=function(e,t){var n=(0,r.useBackend)(t).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","any guns."]}),(0,o.createComponentVNode)(2,v)],4)},N=function(e,t){var n=(0,r.useBackend)(t).data.reverse;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",n?"does not have":"has"," ","a mindshield."]}),(0,o.createComponentVNode)(2,v)],4)},V=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,d=i.reverse,u=i.disease_threshold;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",d?"does not have":"has"," ","a disease equal or worse than ",u,"."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e===u,content:e,onClick:function(){return c("set_disease_threshold",{new_threshold:e})}},e)}))}),(0,o.createComponentVNode)(2,v)],4)},b=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.reverse,u=i.target_species,s=d.find((function(e){return e.value===u}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned is ",l?"not":""," ","of the ",s.name," species.","zombie"===u&&" All zombie types will be detected, including dormant zombies."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:d.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.value===u,content:e.name,onClick:function(){return c("set_target_species",{new_species:e.value})}},e.value)}))}),(0,o.createComponentVNode)(2,v)],4)},f=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.reverse,d=i.target_nutrition,s=u.find((function(e){return e.value===d}));return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",l?"does not have":"has"," ","the ",s.name," nutrition level."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:u.map((function(e){return(0,o.createComponentVNode)(2,a.Button.Checkbox,{checked:e.value===d,content:e.name,onClick:function(){return c("set_target_nutrition",{new_nutrition:e.name})}},e.name)}))}),(0,o.createComponentVNode)(2,v)],4)},g=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.reverse,d=i.nanite_cloud;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{mb:2,children:["Trigger if the person scanned ",l?"does not have":"has"," ","nanite cloud ",d,"."]}),(0,o.createComponentVNode)(2,a.Box,{mb:2,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cloud ID",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:d,width:"65px",minValue:1,maxValue:100,stepPixelSize:2,onChange:function(e,t){return c("set_nanite_cloud",{new_cloud:t})}})})})}),(0,o.createComponentVNode)(2,v)],4)},v=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data.reverse;return(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Scanning Mode",children:(0,o.createComponentVNode)(2,a.Button,{content:i?"Inverted":"Default",icon:i?"random":"long-arrow-alt-right",onClick:function(){return c("toggle_reverse")},color:i?"bad":"good"})})})}},53480:function(e,t,n){"use strict";t.__esModule=!0,t.SeedExtractor=void 0;var o=n(39812),r=n(64499),a=n(85531),c=n(2497),i=n(71494),l=n(74814),d=n(85952);t.SeedExtractor=function(e,t){var n,u,s=(0,i.useBackend)(t),m=s.act,p=s.data,C=(n=p.seeds,u=Object.keys(n).map((function(e){var t=function(e){var t,n=/([^;=]+)=([^;]+)/g,o={};do{(t=n.exec(e))&&(o[t[1]]=t[2]+"")}while(t);return o}(e);return t.amount=n[e],t.key=e,t.name=(0,c.toTitleCase)(t.name.replace("pack of ","")),t})),(0,a.flow)([(0,r.sortBy)((function(e){return e.name}))])(u));return(0,o.createComponentVNode)(2,d.Window,{width:1e3,height:400,resizable:!0,children:(0,o.createComponentVNode)(2,d.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,l.Section,{title:"Stored seeds:",children:(0,o.createComponentVNode)(2,l.Table,{cellpadding:"3",textAlign:"center",children:[(0,o.createComponentVNode)(2,l.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Name"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Lifespan"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Endurance"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Maturation"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Production"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Yield"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Potency"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Instability"}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:"Stock"})]}),C.map((function(e){return(0,o.createComponentVNode)(2,l.Table.Row,{children:[(0,o.createComponentVNode)(2,l.Table.Cell,{bold:!0,children:e.name}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.lifespan}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.endurance}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.maturation}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.production}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.yield}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.potency}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:e.instability}),(0,o.createComponentVNode)(2,l.Table.Cell,{children:[(0,o.createComponentVNode)(2,l.Button,{content:"Vend",onClick:function(){return m("select",{item:e.key})}}),"(",e.amount," left)"]})]},e.key)}))]})})})})}},41125:function(e,t,n){"use strict";t.__esModule=!0,t.ShuttleConsole=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.ShuttleConsole=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.authorization_required;return(0,o.createComponentVNode)(2,c.Window,{width:350,height:230,children:[!!l&&(0,o.createComponentVNode)(2,a.Modal,{ml:1,mt:1,width:26,height:12,fontSize:"28px",fontFamily:"monospace",textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Flex,{children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mt:2,children:(0,o.createComponentVNode)(2,a.Icon,{name:"minus-circle"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{mt:2,ml:2,color:"bad",children:"SHUTTLE LOCKED"})]}),(0,o.createComponentVNode)(2,a.Box,{fontSize:"18px",mt:4,children:(0,o.createComponentVNode)(2,a.Button,{lineHeight:"40px",icon:"arrow-circle-right",content:"Request Authorization",color:"bad",onClick:function(){return i("request")}})})]}),(0,o.createComponentVNode)(2,c.Window.Content,{children:(0,o.createComponentVNode)(2,d)})]})};var i=function(e,t){var n;return null==e||null==(n=e.find((function(e){return e.id===t})))?void 0:n.name},l=function(e,t){var n;return null==e||null==(n=e.find((function(e){return e.name===t})))?void 0:n.id},d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,d=n.data,u=d.status,s=d.locked,m=d.authorization_required,p=d.destination,C=d.docked_location,h=d.timer_str,N=d.locations,V=void 0===N?[]:N;return(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,fontSize:"26px",textAlign:"center",fontFamily:"monospace",children:h||"00:00"}),(0,o.createComponentVNode)(2,a.Box,{textAlign:"center",fontSize:"14px",mb:1,children:[(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,children:"STATUS:"}),(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"In Transit"===u?"good":"Idle"===u||"Igniting"===u?"average":"bad",ml:1,children:u||"Not Available"})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Shuttle Controls",level:2,children:[(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:C||"Not Available"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Destination",children:0===V.length&&(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Not Available"})||1===V.length&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:i(V,p)})||(0,o.createComponentVNode)(2,a.Dropdown,{mb:1.7,over:!0,width:"240px",options:V.map((function(e){return e.name})),disabled:s||m,selected:i(V,p)||"Select a Destination",onSelected:function(e){return c("set_destination",{destination:l(V,e)})}})})]}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"Depart",disabled:!i(V,p)||s||m,mt:1.5,icon:"arrow-up",textAlign:"center",onClick:function(){return c("move",{shuttle_id:p})}})]})]})}},93138:function(e,t,n){"use strict";t.__esModule=!0,t.ShuttleManipulatorModification=t.ShuttleManipulatorTemplates=t.ShuttleManipulatorStatus=t.ShuttleManipulator=void 0;var o=n(39812),r=n(64499),a=n(71494),c=n(74814),i=n(85952);t.ShuttleManipulator=function(e,t){var n=(0,a.useLocalState)(t,"tab",1),r=n[0],s=n[1];return(0,o.createComponentVNode)(2,i.Window,{title:"Shuttle Manipulator",width:800,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,c.Tabs,{children:[(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:1===r,onClick:function(){return s(1)},children:"Status"}),(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:2===r,onClick:function(){return s(2)},children:"Templates"}),(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:3===r,onClick:function(){return s(3)},children:"Modification"})]}),1===r&&(0,o.createComponentVNode)(2,l),2===r&&(0,o.createComponentVNode)(2,d),3===r&&(0,o.createComponentVNode)(2,u)]})})};var l=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data.shuttles||[];return(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.Table,{children:i.map((function(e){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,o.createComponentVNode)(2,c.Button,{content:"JMP",onClick:function(){return r("jump_to",{type:"mobile",id:e.id})}},e.id)}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:(0,o.createComponentVNode)(2,c.Button,{content:"Fly",disabled:!e.can_fly,onClick:function(){return r("fly",{id:e.id})}},e.id)}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.id}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.status}),(0,o.createComponentVNode)(2,c.Table.Cell,{children:[e.mode,!!e.timer&&(0,o.createFragment)([(0,o.createTextVNode)("("),e.timeleft,(0,o.createTextVNode)(")"),(0,o.createComponentVNode)(2,c.Button,{content:"Fast Travel",disabled:!e.can_fast_travel,onClick:function(){return r("fast_travel",{id:e.id})}},e.id)],0)]})]},e.id)}))})})};t.ShuttleManipulatorStatus=l;var d=function(e,t){var n,i=(0,a.useBackend)(t),l=i.act,d=i.data,u=d.templates||{},s=d.selected||{},m=(0,a.useLocalState)(t,"templateId",Object.keys(u)[0]),p=m[0],C=m[1],h=null==(n=u[p])?void 0:n.templates;return(0,o.createComponentVNode)(2,c.Section,{children:(0,o.createComponentVNode)(2,c.Flex,{children:[(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,c.Tabs,{vertical:!0,children:(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:p===t,onClick:function(){return C(t)},children:e.port_id},t)}))(u)})}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1,basis:0,children:h.map((function(e){var t=e.shuttle_id===s.shuttle_id;return(0,o.createComponentVNode)(2,c.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,c.Button,{content:t?"Selected":"Select",selected:t,onClick:function(){return l("select_template",{shuttle_id:e.shuttle_id})}}),children:(!!e.description||!!e.admin_notes)&&(0,o.createComponentVNode)(2,c.LabeledList,{children:[!!e.description&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Description",children:e.description}),!!e.admin_notes&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Admin Notes",children:e.admin_notes})]})},e.shuttle_id)}))})]})})};t.ShuttleManipulatorTemplates=d;var u=function(e,t){var n=(0,a.useBackend)(t),r=n.act,i=n.data,l=i.selected||{},d=i.existing_shuttle||{};return(0,o.createComponentVNode)(2,c.Section,{children:l?(0,o.createFragment)([(0,o.createComponentVNode)(2,c.Section,{level:2,title:l.name,children:(!!l.description||!!l.admin_notes)&&(0,o.createComponentVNode)(2,c.LabeledList,{children:[!!l.description&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Description",children:l.description}),!!l.admin_notes&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Admin Notes",children:l.admin_notes})]})}),d?(0,o.createComponentVNode)(2,c.Section,{level:2,title:"Existing Shuttle: "+d.name,children:(0,o.createComponentVNode)(2,c.LabeledList,{children:(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Status",buttons:(0,o.createComponentVNode)(2,c.Button,{content:"Jump To",onClick:function(){return r("jump_to",{type:"mobile",id:d.id})}}),children:[d.status,!!d.timer&&(0,o.createFragment)([(0,o.createTextVNode)("("),d.timeleft,(0,o.createTextVNode)(")")],0)]})})}):(0,o.createComponentVNode)(2,c.Section,{level:2,title:"Existing Shuttle: None"}),(0,o.createComponentVNode)(2,c.Section,{level:2,title:"Status",children:[(0,o.createComponentVNode)(2,c.Button,{content:"Preview",onClick:function(){return r("preview",{shuttle_id:l.shuttle_id})}}),(0,o.createComponentVNode)(2,c.Button,{content:"Load",color:"bad",onClick:function(){return r("load",{shuttle_id:l.shuttle_id})}})]})],0):"No shuttle selected"})};t.ShuttleManipulatorModification=u},32325:function(e,t,n){"use strict";t.__esModule=!0,t.Signaler=void 0;var o=n(39812),r=n(41860),a=n(71494),c=n(74814),i=n(85952);t.Signaler=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.code,s=d.frequency,m=d.minFrequency,p=d.maxFrequency;return(0,o.createComponentVNode)(2,i.Window,{width:280,height:132,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:(0,o.createComponentVNode)(2,c.Section,{children:[(0,o.createComponentVNode)(2,c.Grid,{children:[(0,o.createComponentVNode)(2,c.Grid.Column,{size:1.4,color:"label",children:"Frequency:"}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,unit:"kHz",step:.2,stepPixelSize:6,minValue:m/10,maxValue:p/10,value:s/10,format:function(e){return(0,r.toFixed)(e,1)},width:"80px",onDrag:function(e,t){return l("freq",{freq:t})}})}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{ml:1.3,icon:"sync",content:"Reset",onClick:function(){return l("reset",{reset:"freq"})}})})]}),(0,o.createComponentVNode)(2,c.Grid,{mt:.6,children:[(0,o.createComponentVNode)(2,c.Grid.Column,{size:1.4,color:"label",children:"Code:"}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.NumberInput,{animate:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:u,width:"80px",onDrag:function(e,t){return l("code",{code:t})}})}),(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{ml:1.3,icon:"sync",content:"Reset",onClick:function(){return l("reset",{reset:"code"})}})})]}),(0,o.createComponentVNode)(2,c.Grid,{mt:.8,children:(0,o.createComponentVNode)(2,c.Grid.Column,{children:(0,o.createComponentVNode)(2,c.Button,{mb:-.1,fluid:!0,icon:"arrow-up",content:"Send Signal",textAlign:"center",onClick:function(){return l("signal")}})})})]})})})}},52757:function(e,t,n){"use strict";t.__esModule=!0,t.SkillPanel=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i={color:"lightgreen",fontWeight:"bold"},l={color:"#FFDB58",fontWeight:"bold"};t.SkillPanel=function(e,t){var n=(0,r.useBackend)(t),u=n.act,s=n.data,m=s.skills||[];return(0,o.createComponentVNode)(2,c.Window,{title:"Manage Skills",width:600,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{title:m.playername,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:m.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.name,children:[(0,o.createVNode)(1,"span",null,e.desc,0,{style:l}),(0,o.createVNode)(1,"br"),!!e.level_based&&(0,o.createFragment)([(0,o.createComponentVNode)(2,d,{skill_lvl_num:e.lvl_base_num,skill_lvl:e.lvl_base}),(0,o.createVNode)(1,"br")],4),"Total Experience: [",e.value_base," XP]",(0,o.createVNode)(1,"br"),"XP To Next Level:",e.level_based?(0,o.createVNode)(1,"span",null,e.xp_next_lvl_base,0):(0,o.createVNode)(1,"span",null,"[MAXXED]",16,{style:i}),(0,o.createVNode)(1,"br"),e.base_readout,(0,o.createComponentVNode)(2,a.ProgressBar,{value:e.percent_base,color:"good"}),(0,o.createVNode)(1,"br"),!!s.admin&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Adjust Exp",onClick:function(){return u("adj_exp",{skill:e.path})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Set Exp",onClick:function(){return u("set_exp",{skill:e.path})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Set Level",onClick:function(){return u("set_lvl",{skill:e.path})}}),(0,o.createVNode)(1,"br"),(0,o.createVNode)(1,"br")],4)]},e.name)}))})})})})};var d=function(e){var t=e.skill_lvl_num,n=e.skill_lvl;return(0,o.createComponentVNode)(2,a.Box,{inline:!0,children:["Level: [",(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,textColor:"hsl("+50*t+", 50%, 50%)",children:n}),"]"]})}},43078:function(e,t,n){"use strict";t.__esModule=!0,t.SkillStation=t.TimeFormat=t.ImplantedSkillchips=t.InsertedSkillchip=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=n(41860),l=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.skillchip_ready,d=i.slot_use,u=i.slots_used,s=i.slots_max,m=i.implantable_reason,p=i.implantable,C=i.complexity,h=i.skill_name,N=i.skill_desc,V=i.skill_icon,b=i.working;return l?(0,o.createComponentVNode)(2,a.Section,{title:"Inserted Skillchip",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"syringe",disabled:!p||!!b,color:p?"good":"default",onClick:function(){return c("implant")},content:"Implant",tooltip:m}),(0,o.createComponentVNode)(2,a.Button,{icon:"eject",disabled:!!b,onClick:function(){return c("eject")},content:"Eject"})],4),children:(0,o.createComponentVNode)(2,a.Flex,{spacing:2,height:"100%",width:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{height:"100%",align:"center",children:(0,o.createComponentVNode)(2,a.Icon,{size:3,name:V})}),(0,o.createComponentVNode)(2,a.Flex.Item,{width:"100%",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Skillchip",children:(0,o.createComponentVNode)(2,a.Box,{bold:!0,children:h})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Description",children:(0,o.createComponentVNode)(2,a.Box,{italic:!0,children:N})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Complexity",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"brain",width:"15px",textAlign:"center"})," ",C]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Slot Size",children:(0,o.createComponentVNode)(2,a.Box,{color:u+d>s&&"red",children:[(0,o.createComponentVNode)(2,a.Icon,{name:"save",width:"15px",textAlign:"center"})," ",d]})}),!!m&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Error",color:p?"good":"bad",children:m})]})})]})}):!b&&(0,o.createComponentVNode)(2,a.NoticeBox,{info:!0,children:"Please insert a skillchip."})};t.InsertedSkillchip=l;var d=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.slots_used,d=i.slots_max,u=i.complexity_used,s=i.complexity_max,m=i.working,p=i.current||[];return(0,o.createComponentVNode)(2,a.Section,{title:"Implanted Skillchips",children:[!p.length&&"No skillchips detected.",!!p.length&&(0,o.createComponentVNode)(2,a.Table,{children:[(0,o.createComponentVNode)(2,a.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:"Chip"}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"brain",tooltip:"Complexity",tooltipPosition:"top",content:u+"/"+s})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"save",tooltip:"Slot Size",tooltipPosition:"top",content:l+"/"+d})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"check",tooltip:"Is Active",tooltipPosition:"top"})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"hourglass-half",tooltip:"Cooldown",tooltipPosition:"top"})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{color:"transparent",icon:"tasks",tooltip:"Actions",tooltipPosition:"top"})})]}),p.map((function(e){return(0,o.createComponentVNode)(2,a.Table.Row,{children:[(0,o.createComponentVNode)(2,a.Table.Cell,{children:[(0,o.createComponentVNode)(2,a.Icon,{textAlign:"center",width:"18px",mr:1,name:e.icon}),e.name]}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,color:(!e.active?e.complexity+u>s&&"bad":"good")||"grey",textAlign:"center",children:e.complexity}),(0,o.createComponentVNode)(2,a.Table.Cell,{bold:!0,color:"good",textAlign:"center",children:e.slot_use}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:(0,o.createComponentVNode)(2,a.Icon,{name:e.active?"check":"times",color:e.active?"good":"bad"})}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:e.cooldown>0&&Math.ceil(e.cooldown/10)+"s"||"0s"}),(0,o.createComponentVNode)(2,a.Table.Cell,{textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return c("remove",{ref:e.ref})},icon:e.removable?"eject":"trash",color:e.removable?"good":"bad",tooltip:e.removable?"Extract":"Destroy",tooltipPosition:"left",disabled:e.cooldown||m}),(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return c("toggle_activate",{ref:e.ref})},icon:e.active?"check-square-o":"square-o",color:e.active?"good":"default",tooltip:!!e.active_error&&!e.active&&e.active_error||e.active&&"Deactivate"||"Activate",tooltipPosition:"left",disabled:e.cooldown||m||!e.active&&e.complexity+u>s})]})]},e.ref)}))]})]})};t.ImplantedSkillchips=d;var u=function(e,t){var n=e.value,o=(0,i.toFixed)(Math.floor(n/10%60)).padStart(2,"0"),r=(0,i.toFixed)(Math.floor(n/600%60)).padStart(2,"0");return(0,i.toFixed)(Math.floor(n/36e3%24)).padStart(2,"0")+":"+r+":"+o};t.TimeFormat=u;t.SkillStation=function(e,t){var n=(0,r.useBackend)(t).data,i=n.working,s=n.timeleft,m=n.error;return(0,o.createComponentVNode)(2,c.Window,{title:"Skillsoft Station",width:500,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[!!m&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:m}),!!i&&(0,o.createComponentVNode)(2,a.NoticeBox,{danger:!0,children:(0,o.createComponentVNode)(2,a.Flex,{direction:"column",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mb:.5,children:"Operation in progress. Please do not leave the chamber."}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:["Time Left: ",(0,o.createComponentVNode)(2,u,{value:s})]})]})}),(0,o.createComponentVNode)(2,l),(0,o.createComponentVNode)(2,d)]})})}},80646:function(e,t,n){"use strict";t.__esModule=!0,t.Sleeper=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i=[{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"},{label:"Toxin",type:"toxLoss"},{label:"Oxygen",type:"oxyLoss"}];t.Sleeper=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.open,s=d.occupant,m=void 0===s?{}:s,p=d.occupied,C=(d.chems||[]).sort((function(e,t){var n=e.name.toLowerCase(),o=t.name.toLowerCase();return no?1:0}));return(0,o.createComponentVNode)(2,c.Window,{width:310,height:465,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:m.name?m.name:"No Occupant",minHeight:"210px",buttons:!!m.stat&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,color:m.statstate,children:m.stat}),children:!!p&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.ProgressBar,{value:m.health,minValue:m.minHealth,maxValue:m.maxHealth,ranges:{good:[50,Infinity],average:[0,50],bad:[-Infinity,0]}}),(0,o.createComponentVNode)(2,a.Box,{mt:1}),(0,o.createComponentVNode)(2,a.LabeledList,{children:[i.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:e.label,children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:m[e.type],minValue:0,maxValue:m.maxHealth,color:"bad"})},e.type)})),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cells",color:m.cloneLoss?"bad":"good",children:m.cloneLoss?"Damaged":"Healthy"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Brain",color:m.brainLoss?"bad":"good",children:m.brainLoss?"Abnormal":"Healthy"})]})],4)}),(0,o.createComponentVNode)(2,a.Section,{title:"Medicines",minHeight:"205px",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u?"door-open":"door-closed",content:u?"Open":"Closed",onClick:function(){return l("door")}}),children:C.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{icon:"flask",content:e.name,disabled:!p||!e.allowed,width:"140px",onClick:function(){return l("inject",{chem:e.id})}},e.name)}))})]})})}},97700:function(e,t,n){"use strict";t.__esModule=!0,t.SlimeBodySwapper=t.BodyEntry=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952),i={Dead:"bad",Unconscious:"average",Conscious:"good"},l={owner:"You Are Here",stranger:"Occupied",available:"Swap"},d=function(e,t){var n=e.body,r=e.swapFunc;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:n.htmlcolor,children:n.name}),level:2,buttons:(0,o.createComponentVNode)(2,a.Button,{content:l[n.occupied],selected:"owner"===n.occupied,color:"stranger"===n.occupied&&"bad",onClick:function(){return r()}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",bold:!0,color:i[n.status],children:n.status}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Jelly",children:n.exoticblood}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Location",children:n.area})]})})};t.BodyEntry=d;t.SlimeBodySwapper=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.bodies,u=void 0===l?[]:l;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:400,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{children:u.map((function(e){return(0,o.createComponentVNode)(2,d,{body:e,swapFunc:function(){return i("swap",{ref:e.ref})}},e.name)}))})})})}},55896:function(e,t,n){"use strict";t.__esModule=!0,t.SmartVend=void 0;var o=n(39812),r=n(64499),a=n(71494),c=n(74814),i=n(85952);t.SmartVend=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data;return(0,o.createComponentVNode)(2,i.Window,{width:440,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,c.Section,{title:"Storage",buttons:!!d.isdryer&&(0,o.createComponentVNode)(2,c.Button,{icon:d.drying?"stop":"tint",onClick:function(){return l("Dry")},children:d.drying?"Stop drying":"Dry"}),children:0===d.contents.length&&(0,o.createComponentVNode)(2,c.NoticeBox,{children:["Unfortunately, this ",d.name," is empty."]})||(0,o.createComponentVNode)(2,c.Table,{children:[(0,o.createComponentVNode)(2,c.Table.Row,{header:!0,children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:"Item"}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"center",children:d.verb?d.verb:"Dispense"})]}),(0,r.map)((function(e,t){return(0,o.createComponentVNode)(2,c.Table.Row,{children:[(0,o.createComponentVNode)(2,c.Table.Cell,{children:e.name}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,textAlign:"right",children:e.amount}),(0,o.createComponentVNode)(2,c.Table.Cell,{collapsing:!0,children:[(0,o.createComponentVNode)(2,c.Button,{content:"One",disabled:e.amount<1,onClick:function(){return l("Release",{name:e.name,amount:1})}}),(0,o.createComponentVNode)(2,c.Button,{content:"Many",disabled:e.amount<=1,onClick:function(){return l("Release",{name:e.name})}})]})]},t)}))(d.contents)]})})})})}},20561:function(e,t,n){"use strict";t.__esModule=!0,t.Smes=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(58083),i=n(85952),l=1e3;t.Smes=function(e,t){var n=(0,r.useBackend)(t),d=n.act,u=n.data,s=u.capacityPercent,m=(u.capacity,u.charge),p=u.inputAttempt,C=u.inputting,h=u.inputLevel,N=u.inputLevelMax,V=u.inputAvailable,b=u.outputAttempt,f=u.outputting,g=u.outputLevel,v=u.outputLevelMax,k=u.outputUsed,x=(s>=100?"good":C&&"average")||"bad",B=(f?"good":m>0&&"average")||"bad";return(0,o.createComponentVNode)(2,i.Window,{width:340,height:350,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Stored Energy",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:.01*s,ranges:{good:[.5,Infinity],average:[.15,.5],bad:[-Infinity,.15]}})}),(0,o.createComponentVNode)(2,a.Section,{title:"Input",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Charge Mode",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:p?"sync-alt":"times",selected:p,onClick:function(){return d("tryinput")},children:p?"Auto":"Off"}),children:(0,o.createComponentVNode)(2,a.Box,{color:x,children:(s>=100?"Fully Charged":C&&"Charging")||"Not Charging"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Input",children:(0,o.createComponentVNode)(2,a.Flex,{inline:!0,width:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===h,onClick:function(){return d("input",{target:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===h,onClick:function(){return d("input",{adjust:-1e4})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,mx:1,children:(0,o.createComponentVNode)(2,a.Slider,{value:h/l,fillValue:V/l,minValue:0,maxValue:N/l,step:5,stepPixelSize:4,format:function(e){return(0,c.formatPower)(e*l,1)},onDrag:function(e,t){return d("input",{target:t*l})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:h===N,onClick:function(){return d("input",{adjust:1e4})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:h===N,onClick:function(){return d("input",{target:"max"})}})]})]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Available",children:(0,c.formatPower)(V)})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Output",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Output Mode",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:b?"power-off":"times",selected:b,onClick:function(){return d("tryoutput")},children:b?"On":"Off"}),children:(0,o.createComponentVNode)(2,a.Box,{color:B,children:f?"Sending":m>0?"Not Sending":"No Charge"})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Output",children:(0,o.createComponentVNode)(2,a.Flex,{inline:!0,width:"100%",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"fast-backward",disabled:0===g,onClick:function(){return d("output",{target:"min"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"backward",disabled:0===g,onClick:function(){return d("output",{adjust:-1e4})}})]}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,mx:1,children:(0,o.createComponentVNode)(2,a.Slider,{value:g/l,minValue:0,maxValue:v/l,step:5,stepPixelSize:4,format:function(e){return(0,c.formatPower)(e*l,1)},onDrag:function(e,t){return d("output",{target:t*l})}})}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:[(0,o.createComponentVNode)(2,a.Button,{icon:"forward",disabled:g===v,onClick:function(){return d("output",{adjust:1e4})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fast-forward",disabled:g===v,onClick:function(){return d("output",{target:"max"})}})]})]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Outputting",children:(0,c.formatPower)(k)})]})})]})})}},93267:function(e,t,n){"use strict";t.__esModule=!0,t.SmokeMachine=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.SmokeMachine=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.TankContents,u=(l.isTankLoaded,l.TankCurrentVolume),s=l.TankMaxVolume,m=l.active,p=l.setting,C=(l.screen,l.maxSetting),h=void 0===C?[]:C;return(0,o.createComponentVNode)(2,c.Window,{width:350,height:350,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Dispersal Tank",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:m?"power-off":"times",selected:m,content:m?"On":"Off",onClick:function(){return i("power")}}),children:[(0,o.createComponentVNode)(2,a.ProgressBar,{value:u/s,ranges:{bad:[-Infinity,.3]},children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{initial:0,value:u||0})," / "+s]}),(0,o.createComponentVNode)(2,a.Box,{mt:1,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Range",children:[1,2,3,4,5].map((function(e){return(0,o.createComponentVNode)(2,a.Button,{selected:p===e,icon:"plus",content:3*e,disabled:h0?"good":"bad",children:h})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:1.5,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Power output",children:(0,o.createComponentVNode)(2,a.ProgressBar,{ranges:{good:[.66,Infinity],average:[.33,.66],bad:[-Infinity,.33]},minValue:0,maxValue:1,value:u,children:d+" W"})})})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Controls",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Tracking",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"times",content:"Off",selected:0===C,onClick:function(){return i("tracking",{mode:0})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"clock-o",content:"Timed",selected:1===C,onClick:function(){return i("tracking",{mode:1})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:"Auto",selected:2===C,disabled:!N,onClick:function(){return i("tracking",{mode:2})}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Azimuth",children:[(0===C||1===C)&&(0,o.createComponentVNode)(2,a.NumberInput,{width:"52px",unit:"\xb0",step:1,stepPixelSize:2,minValue:-360,maxValue:720,value:s,onDrag:function(e,t){return i("azimuth",{value:t})}}),1===C&&(0,o.createComponentVNode)(2,a.NumberInput,{width:"80px",unit:"\xb0/m",step:.01,stepPixelSize:1,minValue:-p-.01,maxValue:p+.01,value:m,format:function(e){return(Math.sign(e)>0?"+":"-")+Math.abs(e)},onDrag:function(e,t){return i("azimuth_rate",{value:t})}}),2===C&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,color:"label",mt:"3px",children:[s+" \xb0"," (auto)"]})]})]})})]})})}},57762:function(e,t,n){"use strict";t.__esModule=!0,t.SpaceHeater=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.SpaceHeater=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:305,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:"Power",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject Cell",disabled:!l.hasPowercell||!l.open,onClick:function(){return i("eject")}}),(0,o.createComponentVNode)(2,a.Button,{icon:l.on?"power-off":"times",content:l.on?"On":"Off",selected:l.on,disabled:!l.hasPowercell,onClick:function(){return i("power")}})],4),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cell",color:!l.hasPowercell&&"bad",children:l.hasPowercell&&(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.powerLevel/100,ranges:{good:[.6,Infinity],average:[.3,.6],bad:[-Infinity,.3]},children:l.powerLevel+"%"})||"None"})})}),(0,o.createComponentVNode)(2,a.Section,{title:"Thermostat",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Temperature",children:(0,o.createComponentVNode)(2,a.Box,{fontSize:"18px",color:Math.abs(l.targetTemp-l.currentTemp)>50?"bad":Math.abs(l.targetTemp-l.currentTemp)>20?"average":"good",children:[l.currentTemp,"\xb0C"]})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Target Temperature",children:l.open&&(0,o.createComponentVNode)(2,a.NumberInput,{animated:!0,value:parseFloat(l.targetTemp),width:"65px",unit:"\xb0C",minValue:l.minTemp,maxValue:l.maxTemp,onChange:function(e,t){return i("target",{target:t})}})||l.targetTemp+"\xb0C"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mode",children:l.open?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{icon:"thermometer-half",content:"Auto",selected:"auto"===l.mode,onClick:function(){return i("mode",{mode:"auto"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fire-alt",content:"Heat",selected:"heat"===l.mode,onClick:function(){return i("mode",{mode:"heat"})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"fan",content:"Cool",selected:"cool"===l.mode,onClick:function(){return i("mode",{mode:"cool"})}})],4):"Auto"}),(0,o.createComponentVNode)(2,a.LabeledList.Divider)]})})]})})}},46810:function(e,t,n){"use strict";t.__esModule=!0,t.SpawnersMenu=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.SpawnersMenu=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data.spawners||[];return(0,o.createComponentVNode)(2,c.Window,{title:"Spawners Menu",width:700,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,a.Section,{children:l.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name+" ("+e.amount_left+" left)",level:2,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Jump",onClick:function(){return i("jump",{name:e.name})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Spawn",onClick:function(){return i("spawn",{name:e.name})}})],4),children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,mb:1,fontSize:"20px",children:e.short_desc}),(0,o.createComponentVNode)(2,a.Box,{children:e.flavor_text}),!!e.important_info&&(0,o.createComponentVNode)(2,a.Box,{mt:1,bold:!0,color:"bad",fontSize:"26px",children:e.important_info})]},e.name)}))})})})}},32015:function(e,t,n){"use strict";t.__esModule=!0,t.StationAlertConsoleContent=t.StationAlertConsole=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.StationAlertConsole=function(){return(0,o.createComponentVNode)(2,c.Window,{width:325,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,i)})})};var i=function(e,t){var n=(0,r.useBackend)(t).data.alarms||[],c=n.Fire||[],i=n.Atmosphere||[],l=n.Power||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Fire Alarms",children:(0,o.createVNode)(1,"ul",null,[0===c.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),c.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Atmospherics Alarms",children:(0,o.createVNode)(1,"ul",null,[0===i.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),i.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)}),(0,o.createComponentVNode)(2,a.Section,{title:"Power Alarms",children:(0,o.createVNode)(1,"ul",null,[0===l.length&&(0,o.createVNode)(1,"li","color-good","Systems Nominal",16),l.map((function(e){return(0,o.createVNode)(1,"li","color-average",e,0,null,e)}))],0)})],4)};t.StationAlertConsoleContent=i},80748:function(e,t,n){"use strict";t.__esModule=!0,t.SuitStorageUnit=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.SuitStorageUnit=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data,d=l.locked,u=l.open,s=l.safeties,m=l.uv_active,p=l.occupied,C=l.suit,h=l.helmet,N=l.mask,V=l.storage;return(0,o.createComponentVNode)(2,c.Window,{width:400,height:305,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[!(!p||!s)&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Biological entity detected in suit chamber. Please remove before continuing with operation."}),m&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Contents are currently being decontaminated. Please wait."})||(0,o.createComponentVNode)(2,a.Section,{title:"Storage",minHeight:"260px",buttons:(0,o.createFragment)([!u&&(0,o.createComponentVNode)(2,a.Button,{icon:d?"unlock":"lock",content:d?"Unlock":"Lock",onClick:function(){return i("lock")}}),!d&&(0,o.createComponentVNode)(2,a.Button,{icon:u?"sign-out-alt":"sign-in-alt",content:u?"Close":"Open",onClick:function(){return i("door")}})],0),children:d&&(0,o.createComponentVNode)(2,a.Box,{mt:6,bold:!0,textAlign:"center",fontSize:"40px",children:[(0,o.createComponentVNode)(2,a.Box,{children:"Unit Locked"}),(0,o.createComponentVNode)(2,a.Icon,{name:"lock"})]})||u&&(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Helmet",children:(0,o.createComponentVNode)(2,a.Button,{icon:h?"square":"square-o",content:h||"Empty",disabled:!h,onClick:function(){return i("dispense",{item:"helmet"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Suit",children:(0,o.createComponentVNode)(2,a.Button,{icon:C?"square":"square-o",content:C||"Empty",disabled:!C,onClick:function(){return i("dispense",{item:"suit"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Mask",children:(0,o.createComponentVNode)(2,a.Button,{icon:N?"square":"square-o",content:N||"Empty",disabled:!N,onClick:function(){return i("dispense",{item:"mask"})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Storage",children:(0,o.createComponentVNode)(2,a.Button,{icon:V?"square":"square-o",content:V||"Empty",disabled:!V,onClick:function(){return i("dispense",{item:"storage"})}})})]})||(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:"recycle",content:"Decontaminate",disabled:p&&s,textAlign:"center",onClick:function(){return i("uv")}})})]})})}},37162:function(e,t,n){"use strict";t.__esModule=!0,t.SyndPane=t.StatusPane=t.SyndContractorContent=t.SyndContractor=t.FakeTerminal=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);function i(e,t){return(i=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var l=function(e){var t,n;function r(t){var n;return(n=e.call(this,t)||this).timer=null,n.state={currentIndex:0,currentDisplay:[]},n}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,i(t,n);var c=r.prototype;return c.tick=function(){var e=this.props,t=this.state;t.currentIndex<=e.allMessages.length?(this.setState((function(e){return{currentIndex:e.currentIndex+1}})),t.currentDisplay.push(e.allMessages[t.currentIndex])):(clearTimeout(this.timer),setTimeout(e.onFinished,e.finishedTimeout))},c.componentDidMount=function(){var e=this,t=this.props.linesPerSecond,n=void 0===t?2.5:t;this.timer=setInterval((function(){return e.tick()}),1e3/n)},c.componentWillUnmount=function(){clearTimeout(this.timer)},c.render=function(){return(0,o.createComponentVNode)(2,a.Box,{m:1,children:this.state.currentDisplay.map((function(e){return(0,o.createFragment)([e,(0,o.createVNode)(1,"br")],0,e)}))})},r}(o.Component);t.FakeTerminal=l;t.SyndContractor=function(e,t){return(0,o.createComponentVNode)(2,c.NtosWindow,{width:500,height:600,theme:"syndicate",resizable:!0,children:(0,o.createComponentVNode)(2,c.NtosWindow.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,d)})})};var d=function(e,t){var n=(0,r.useBackend)(t),c=n.data,i=n.act,d=["Recording biometric data...","Analyzing embedded syndicate info...","STATUS CONFIRMED","Contacting syndicate database...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Awaiting response...","Response received, ack 4851234...","CONFIRM ACC "+Math.round(2e4*Math.random()),"Setting up private accounts...","CONTRACTOR ACCOUNT CREATED","Searching for available contracts...","Searching for available contracts...","Searching for available contracts...","Searching for available contracts...","CONTRACTS FOUND","WELCOME, AGENT"],u=!!c.error&&(0,o.createComponentVNode)(2,a.Modal,{backgroundColor:"red",children:(0,o.createComponentVNode)(2,a.Flex,{align:"center",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{mr:2,children:(0,o.createComponentVNode)(2,a.Icon,{size:4,name:"exclamation-triangle"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{mr:2,grow:1,textAlign:"center",children:[(0,o.createComponentVNode)(2,a.Box,{width:"260px",textAlign:"left",minHeight:"80px",children:c.error}),(0,o.createComponentVNode)(2,a.Button,{content:"Dismiss",onClick:function(){return i("PRG_clear_error")}})]})]})});return c.logged_in?c.logged_in&&c.first_load?(0,o.createComponentVNode)(2,a.Box,{backgroundColor:"rgba(0, 0, 0, 0.8)",minHeight:"525px",children:(0,o.createComponentVNode)(2,l,{allMessages:d,finishedTimeout:3e3,onFinished:function(){return i("PRG_set_first_load_finished")}})}):c.info_screen?(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{backgroundColor:"rgba(0, 0, 0, 0.8)",minHeight:"500px",children:(0,o.createComponentVNode)(2,l,{allMessages:["SyndTract v2.0","","We've identified potentional high-value targets that are","currently assigned to your mission area. They are believed","to hold valuable information which could be of immediate","importance to our organisation.","","Listed below are all of the contracts available to you. You","are to bring the specified target to the designated","drop-off, and contact us via this uplink. We will send","a specialised extraction unit to put the body into.","","We want targets alive - but we will sometimes pay slight","amounts if they're not, you just won't recieve the shown","bonus. You can redeem your payment through this uplink in","the form of raw telecrystals, which can be put into your","regular Syndicate uplink to purchase whatever you may need.","We provide you with these crystals the moment you send the","target up to us, which can be collected at anytime through","this system.","","Targets extracted will be ransomed back to the station once","their use to us is fulfilled, with us providing you a small","percentage cut. You may want to be mindful of them","identifying you when they come back. We provide you with","a standard contractor loadout, which will help cover your","identity."],linesPerSecond:10})}),(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:"CONTINUE",color:"transparent",textAlign:"center",onClick:function(){return i("PRG_toggle_info")}})],4):(0,o.createFragment)([u,(0,o.createComponentVNode)(2,s)],0):(0,o.createComponentVNode)(2,a.Section,{minHeight:"525px",children:[(0,o.createComponentVNode)(2,a.Box,{width:"100%",textAlign:"center",children:(0,o.createComponentVNode)(2,a.Button,{content:"REGISTER USER",color:"transparent",onClick:function(){return i("PRG_login")}})}),!!c.error&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:c.error})]})};t.SyndContractorContent=d;var u=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data;return(0,o.createComponentVNode)(2,a.Section,{title:(0,o.createFragment)([(0,o.createTextVNode)("Contractor Status"),(0,o.createComponentVNode)(2,a.Button,{content:"View Information Again",color:"transparent",mb:0,ml:1,onClick:function(){return c("PRG_toggle_info")}})],4),buttons:(0,o.createComponentVNode)(2,a.Box,{bold:!0,mr:1,children:[i.contract_rep," Rep"]}),children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{size:.85,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"TC Available",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Claim",disabled:i.redeemable_tc<=0,onClick:function(){return c("PRG_redeem_TC")}}),children:i.redeemable_tc}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"TC Earned",children:i.earned_tc})]})}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Contracts Completed",children:i.contracts_completed}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Current Status",children:"ACTIVE"})]})})]})})};t.StatusPane=u;var s=function(e,t){var n=(0,r.useLocalState)(t,"tab",1),c=n[0],i=n[1];return(0,o.createFragment)([(0,o.createComponentVNode)(2,u,{state:e.state}),(0,o.createComponentVNode)(2,a.Tabs,{children:[(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:1===c,onClick:function(){return i(1)},children:"Contracts"}),(0,o.createComponentVNode)(2,a.Tabs.Tab,{selected:2===c,onClick:function(){return i(2)},children:"Hub"})]}),1===c&&(0,o.createComponentVNode)(2,m),2===c&&(0,o.createComponentVNode)(2,p)],0)};t.SyndPane=s;var m=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.contracts||[];return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Available Contracts",buttons:(0,o.createComponentVNode)(2,a.Button,{content:"Call Extraction",disabled:!i.ongoing_contract||i.extraction_enroute,onClick:function(){return c("PRG_call_extraction")}}),children:l.map((function(e){if(!i.ongoing_contract||2===e.status){var t=e.status>1;if(!(e.status>=5))return(0,o.createComponentVNode)(2,a.Section,{title:e.target?e.target+" ("+e.target_rank+")":"Invalid Target",level:t?1:2,buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:[e.payout," (+",e.payout_bonus,") TC"]}),(0,o.createComponentVNode)(2,a.Button,{content:t?"Abort":"Accept",disabled:e.extraction_enroute,color:t&&"bad",onClick:function(){return c("PRG_contract"+(t?"_abort":"-accept"),{contract_id:e.id})}})],4),children:(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:e.message}),(0,o.createComponentVNode)(2,a.Grid.Column,{size:.5,children:[(0,o.createComponentVNode)(2,a.Box,{bold:!0,mb:1,children:"Dropoff Location:"}),(0,o.createComponentVNode)(2,a.Box,{children:e.dropoff})]})]})},e.target)}}))}),(0,o.createComponentVNode)(2,a.Section,{title:"Dropoff Locator",textAlign:"center",opacity:i.ongoing_contract?100:0,children:(0,o.createComponentVNode)(2,a.Box,{bold:!0,children:i.dropoff_direction})})],4)},p=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.contractor_hub_items||[];return(0,o.createComponentVNode)(2,a.Section,{children:l.map((function(e){var t=e.cost?e.cost+" Rep":"FREE",n=-1!==e.limited;return(0,o.createComponentVNode)(2,a.Section,{title:e.name+" - "+t,level:2,buttons:(0,o.createFragment)([n&&(0,o.createComponentVNode)(2,a.Box,{inline:!0,bold:!0,mr:1,children:[e.limited," remaining"]}),(0,o.createComponentVNode)(2,a.Button,{content:"Purchase",disabled:i.contract_rep0&&g.flatMap((function(e){return e.items||[]})).filter(L).filter((function(e,t){return t<25}))||(null==(l=g.find((function(e){return e.name===_})))?void 0:l.items)||[];return(0,o.createComponentVNode)(2,c.Section,{title:(0,o.createComponentVNode)(2,c.Box,{inline:!0,color:s>0?"good":"bad",children:[(0,i.formatMoney)(s)," ",p]}),buttons:(0,o.createFragment)([(0,o.createTextVNode)("Search"),(0,o.createComponentVNode)(2,c.Input,{autoFocus:!0,value:k,onInput:function(e,t){return x(t)},mx:1}),(0,o.createComponentVNode)(2,c.Button,{icon:V?"list":"info",content:V?"Compact":"Detailed",onClick:function(){return h("compact_toggle")}}),!!b&&(0,o.createComponentVNode)(2,c.Button,{icon:"lock",content:"Lock",onClick:function(){return h("lock")}})],0),children:(0,o.createComponentVNode)(2,c.Flex,{children:[0===k.length&&(0,o.createComponentVNode)(2,c.Flex.Item,{children:(0,o.createComponentVNode)(2,c.Tabs,{vertical:!0,children:g.map((function(e){var t;return(0,o.createComponentVNode)(2,c.Tabs.Tab,{selected:e.name===_,onClick:function(){return w(e.name)},children:[e.name," (",(null==(t=e.items)?void 0:t.length)||0,")"]},e.name)}))})}),(0,o.createComponentVNode)(2,c.Flex.Item,{grow:1,basis:0,children:[0===y.length&&(0,o.createComponentVNode)(2,c.NoticeBox,{children:0===k.length?"No items in this category.":"No results found."}),(0,o.createComponentVNode)(2,u,{compactMode:k.length>0||V,currencyAmount:s,currencySymbol:p,items:y})]})]})})};t.GenericUplink=d;var u=function(e,t){var n=e.compactMode,l=e.currencyAmount,d=e.currencySymbol,u=(0,a.useBackend)(t).act,s=(0,a.useLocalState)(t,"hoveredItem",{}),m=s[0],p=s[1],C=m&&m.cost||0,h=e.items.map((function(e){var t=m&&m.name!==e.name,n=l-Cl.user.cash),content:h?"FREE":d.price+" cr",onClick:function(){return i("vend",{ref:d.ref})}})})]})};t.Vending=function(e,t){var n,r=(0,a.useBackend)(t),d=(r.act,r.data),u=d.user,s=d.onstation,m=d.product_records,p=void 0===m?[]:m,C=d.coin_records,h=void 0===C?[]:C,N=d.hidden_records,V=void 0===N?[]:N,b=d.stock,f=!1;return d.vending_machine_input?(n=d.vending_machine_input||[],f=!0):(n=[].concat(p,h),d.extended_inventory&&(n=[].concat(n,V))),n=n.filter((function(e){return!!e})),(0,o.createComponentVNode)(2,i.Window,{title:"Vending Machine",width:450,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[!!s&&(0,o.createComponentVNode)(2,c.Section,{title:"User",children:u&&(0,o.createComponentVNode)(2,c.Box,{children:["Welcome, ",(0,o.createVNode)(1,"b",null,u.name,0),","," ",(0,o.createVNode)(1,"b",null,u.job||"Unemployed",0),"!",(0,o.createVNode)(1,"br"),"Your balance is ",(0,o.createVNode)(1,"b",null,[u.cash,(0,o.createTextVNode)(" credits")],0),"."]})||(0,o.createComponentVNode)(2,c.Box,{color:"light-grey",children:["No registered ID card!",(0,o.createVNode)(1,"br"),"Please contact your local HoP!"]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Products",children:(0,o.createComponentVNode)(2,c.Table,{children:n.map((function(e){return(0,o.createComponentVNode)(2,l,{custom:f,product:e,productStock:b[e.name]},e.name)}))})})]})})}},44952:function(e,t,n){"use strict";t.__esModule=!0,t.VrSleeper=void 0;var o=n(39812),r=n(71494),a=n(74814),c=n(85952);t.VrSleeper=function(e,t){var n=(0,r.useBackend)(t),i=n.act,l=n.data;return(0,o.createComponentVNode)(2,c.Window,{width:475,height:340,children:(0,o.createComponentVNode)(2,c.Window.Content,{children:[!!l.emagged&&(0,o.createComponentVNode)(2,a.Section,{children:(0,o.createComponentVNode)(2,a.Box,{color:"bad",children:"Safety restraints disabled."})}),(0,o.createComponentVNode)(2,a.Section,{title:"Virtual Avatar",children:l.vr_avatar?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Name",children:l.vr_avatar.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Status",children:l.vr_avatar.status}),!!l.vr_avatar&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Health",children:(0,o.createComponentVNode)(2,a.ProgressBar,{value:l.vr_avatar.health/l.vr_avatar.maxhealth,ranges:{good:[.9,Infinity],average:[.7,.8],bad:[-Infinity,.5]}})})]}):"No Virtual Avatar detected"}),(0,o.createComponentVNode)(2,a.Section,{title:"VR Commands",children:[(0,o.createComponentVNode)(2,a.Button,{icon:l.toggle_open?"unlock":"lock",disabled:l.stored0&&S[t]&&S[t]!==i,r=!S[t]&&C.includes(t)?e.desc:e.desc+" ("+b[N[t]]+")";return(0,o.createComponentVNode)(2,c.Button.Checkbox,{ml:1,fluid:!0,content:r,disabled:n,checked:s.includes(e.ref),onClick:function(){return m(e.ref,"None"===i?null:i)}},e.desc)}))}},71739:function(e,t,n){"use strict";t.__esModule=!0,t.Scrubber=t.Vent=void 0;var o=n(39812),r=n(2497),a=n(71494),c=n(74814),i=n(76270);t.Vent=function(e,t){var n=e.vent,i=(0,a.useBackend)(t).act,l=n.id_tag,d=n.long_name,u=n.power,s=n.checks,m=n.excheck,p=n.incheck,C=n.direction,h=n.external,N=n.internal,V=n.extdefault,b=n.intdefault;return(0,o.createComponentVNode)(2,c.Section,{level:2,title:(0,r.decodeHtmlEntities)(d),buttons:(0,o.createComponentVNode)(2,c.Button,{icon:u?"power-off":"times",selected:u,content:u?"On":"Off",onClick:function(){return i("power",{id_tag:l,val:Number(!u)})}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mode",children:(0,o.createComponentVNode)(2,c.Button,{icon:"sign-in-alt",content:C?"Pressurizing":"Scrubbing",color:!C&&"danger",onClick:function(){return i("direction",{id_tag:l,val:Number(!C)})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Pressure Regulator",children:[(0,o.createComponentVNode)(2,c.Button,{icon:"sign-in-alt",content:"Internal",selected:p,onClick:function(){return i("incheck",{id_tag:l,val:s})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"sign-out-alt",content:"External",selected:m,onClick:function(){return i("excheck",{id_tag:l,val:s})}})]}),!!p&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Internal Target",children:[(0,o.createComponentVNode)(2,c.NumberInput,{value:Math.round(N),unit:"kPa",width:"75px",minValue:0,step:10,maxValue:5066,onChange:function(e,t){return i("set_internal_pressure",{id_tag:l,value:t})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"undo",disabled:b,content:"Reset",onClick:function(){return i("reset_internal_pressure",{id_tag:l})}})]}),!!m&&(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"External Target",children:[(0,o.createComponentVNode)(2,c.NumberInput,{value:Math.round(h),unit:"kPa",width:"75px",minValue:0,step:10,maxValue:5066,onChange:function(e,t){return i("set_external_pressure",{id_tag:l,value:t})}}),(0,o.createComponentVNode)(2,c.Button,{icon:"undo",disabled:V,content:"Reset",onClick:function(){return i("reset_external_pressure",{id_tag:l})}})]})]})})};t.Scrubber=function(e,t){var n=e.scrubber,l=(0,a.useBackend)(t).act,d=n.long_name,u=n.power,s=n.scrubbing,m=n.id_tag,p=n.widenet,C=n.filter_types;return(0,o.createComponentVNode)(2,c.Section,{level:2,title:(0,r.decodeHtmlEntities)(d),buttons:(0,o.createComponentVNode)(2,c.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,onClick:function(){return l("power",{id_tag:m,val:Number(!u)})}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Mode",children:[(0,o.createComponentVNode)(2,c.Button,{icon:s?"filter":"sign-in-alt",color:s||"danger",content:s?"Scrubbing":"Siphoning",onClick:function(){return l("scrubbing",{id_tag:m,val:Number(!s)})}}),(0,o.createComponentVNode)(2,c.Button,{icon:p?"expand":"compress",selected:p,content:p?"Expanded range":"Normal range",onClick:function(){return l("widenet",{id_tag:m,val:Number(!p)})}})]}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Filters",children:s&&C.map((function(e){return(0,o.createComponentVNode)(2,c.Button,{icon:e.enabled?"check-square-o":"square-o",content:(0,i.getGasLabel)(e.gas_id,e.gas_name),title:e.gas_name,selected:e.enabled,onClick:function(){return l("toggle_filter",{id_tag:m,val:e.gas_id})}},e.gas_id)}))||"N/A"})]})})}},48229:function(e,t,n){"use strict";t.__esModule=!0,t.BeakerContents=void 0;var o=n(39812),r=n(74814);t.BeakerContents=function(e){var t=e.beakerLoaded,n=e.beakerContents;return(0,o.createComponentVNode)(2,r.Box,{children:[!t&&(0,o.createComponentVNode)(2,r.Box,{color:"label",children:"No beaker loaded."})||0===n.length&&(0,o.createComponentVNode)(2,r.Box,{color:"label",children:"Beaker is empty."}),n.map((function(e){return(0,o.createComponentVNode)(2,r.Box,{color:"label",children:[(0,o.createComponentVNode)(2,r.AnimatedNumber,{initial:0,value:e.volume})," units of "+e.name]},e.name)}))]})}},21451:function(e,t,n){"use strict";t.__esModule=!0,t.InterfaceLockNoticeBox=void 0;var o=n(39812),r=n(71494),a=n(74814);t.InterfaceLockNoticeBox=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=e.siliconUser,d=void 0===l?i.siliconUser:l,u=e.locked,s=void 0===u?i.locked:u,m=e.onLockStatusChange,p=void 0===m?function(){return c("lock")}:m,C=e.accessText,h=void 0===C?"an ID card":C;return d?(0,o.createComponentVNode)(2,a.NoticeBox,{color:"grey",children:(0,o.createComponentVNode)(2,a.Flex,{align:"center",children:[(0,o.createComponentVNode)(2,a.Flex.Item,{children:"Interface lock status:"}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1}),(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{m:0,color:s?"red":"green",icon:s?"lock":"unlock",content:s?"Locked":"Unlocked",onClick:function(){p&&p(!s)}})})]})}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:["Swipe ",h," ","to ",s?"unlock":"lock"," this interface."]})}},34227:function(e,t,n){"use strict";t.__esModule=!0,t.PortableBasicInfo=void 0;var o=n(39812),r=n(71494),a=n(74814);t.PortableBasicInfo=function(e,t){var n=(0,r.useBackend)(t),c=n.act,i=n.data,l=i.connected,d=i.holding,u=i.on,s=i.pressure;return(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Section,{title:"Status",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:u?"power-off":"times",content:u?"On":"Off",selected:u,onClick:function(){return c("power")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:s})," kPa"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Port",color:l?"good":"average",children:l?"Connected":"Not Connected"})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Holding Tank",minHeight:"82px",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",disabled:!d,onClick:function(){return c("eject")}}),children:d?(0,o.createComponentVNode)(2,a.LabeledList,{children:[(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Label",children:d.name}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Pressure",children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:d.pressure})," kPa"]})]}):(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No holding tank"})})],4)}},73218:function(e,t,n){"use strict";t.__esModule=!0,t.getRoutedComponent=void 0;var o=n(39812),r=n(71494),a=(n(30098),n(85952)),c=n(8156),i=function(e,t){return function(){return(0,o.createComponentVNode)(2,a.Window,{children:(0,o.createComponentVNode)(2,a.Window.Content,{scrollable:!0,children:["notFound"===e&&(0,o.createVNode)(1,"div",null,[(0,o.createTextVNode)("Interface "),(0,o.createVNode)(1,"b",null,t,0),(0,o.createTextVNode)(" was not found.")],4),"missingExport"===e&&(0,o.createVNode)(1,"div",null,[(0,o.createTextVNode)("Interface "),(0,o.createVNode)(1,"b",null,t,0),(0,o.createTextVNode)(" is missing an export.")],4)]})})}},l=function(){return(0,o.createComponentVNode)(2,a.Window,{children:(0,o.createComponentVNode)(2,a.Window.Content,{scrollable:!0})})};t.getRoutedComponent=function(e){var t=e.getState(),n=(0,r.selectBackend)(t),o=n.suspended,a=n.config;if(o)return l;for(var d,u=null==a?void 0:a["interface"],s=[function(e){return"./"+e+".tsx"},function(e){return"./"+e+".js"},function(e){return"./"+e+"/index.tsx"},function(e){return"./"+e+"/index.js"}];!d&&s.length>0;){var m=s.shift()(u);try{d=c(m)}catch(C){if("MODULE_NOT_FOUND"!==C.code)throw C}}if(!d)return i("notFound",u);var p=d[u];return p||i("missingExport",u)}},56285:function(){},58602:function(){},92433:function(){},20459:function(){},35070:function(){},86455:function(){},41821:function(){},83243:function(){},97585:function(){},87266:function(){},99195:function(){},72916:function(){},8156:function(e,t,n){var o={"./AbductorConsole":37905,"./AbductorConsole.js":37905,"./Achievements":16804,"./Achievements.js":16804,"./AiAirlock":47330,"./AiAirlock.js":47330,"./AiRestorer":33084,"./AiRestorer.js":33084,"./AirAlarm":58444,"./AirAlarm.js":58444,"./AirlockElectronics":54370,"./AirlockElectronics.js":54370,"./AlertModal":24053,"./AlertModal.js":24053,"./Apc":93749,"./Apc.js":93749,"./ApcControl":78645,"./ApcControl.js":78645,"./AtmosAlertConsole":38531,"./AtmosAlertConsole.js":38531,"./AtmosControlConsole":4852,"./AtmosControlConsole.js":4852,"./AtmosControlPanel":40948,"./AtmosControlPanel.js":40948,"./AtmosFilter":2726,"./AtmosFilter.js":2726,"./AtmosMixer":61505,"./AtmosMixer.js":61505,"./AtmosPump":30255,"./AtmosPump.js":30255,"./AtmosRelief":78598,"./AtmosRelief.js":78598,"./AutomatedAnnouncement":33106,"./AutomatedAnnouncement.js":33106,"./BankMachine":57554,"./BankMachine.js":57554,"./Bepis":51723,"./Bepis.js":51723,"./Biogenerator":20813,"./Biogenerator.js":20813,"./BlackmarketUplink":14847,"./BlackmarketUplink.js":14847,"./BluespaceArtillery":32129,"./BluespaceArtillery.js":32129,"./BluespaceLocator":16370,"./BluespaceLocator.js":16370,"./BorgPanel":30876,"./BorgPanel.js":30876,"./BrigTimer":61956,"./BrigTimer.js":61956,"./CameraConsole":3180,"./CameraConsole.js":3180,"./Canister":94477,"./Canister.js":94477,"./Canvas":55636,"./Canvas.js":55636,"./Cargo":5758,"./Cargo.js":5758,"./CargoBountyConsole":96291,"./CargoBountyConsole.js":96291,"./CargoExpress":69941,"./CargoExpress.js":69941,"./CargoHoldTerminal":62292,"./CargoHoldTerminal.js":62292,"./CellularEmporium":27173,"./CellularEmporium.js":27173,"./CentcomPodLauncher":26726,"./CentcomPodLauncher.js":26726,"./ChemAcclimator":8663,"./ChemAcclimator.js":8663,"./ChemDebugSynthesizer":76900,"./ChemDebugSynthesizer.js":76900,"./ChemDispenser":22223,"./ChemDispenser.js":22223,"./ChemFilter":16610,"./ChemFilter.js":16610,"./ChemHeater":96479,"./ChemHeater.js":96479,"./ChemMaster":34859,"./ChemMaster.js":34859,"./ChemPress":56320,"./ChemPress.js":56320,"./ChemReactionChamber":52592,"./ChemReactionChamber.js":52592,"./ChemSplitter":68502,"./ChemSplitter.js":68502,"./ChemSynthesizer":77508,"./ChemSynthesizer.js":77508,"./CivCargoHoldTerminal":30733,"./CivCargoHoldTerminal.js":30733,"./ClockworkSlab":14319,"./ClockworkSlab.js":14319,"./CodexGigas":28408,"./CodexGigas.js":28408,"./Colormate":67649,"./Colormate.js":67649,"./ComputerFabricator":2174,"./ComputerFabricator.js":2174,"./Crayon":99672,"./Crayon.js":99672,"./CrewConsole":72357,"./CrewConsole.js":72357,"./Cryo":99798,"./Cryo.js":99798,"./DecalPainter":17785,"./DecalPainter.js":17785,"./DisposalUnit":95877,"./DisposalUnit.js":95877,"./DnaConsole":43928,"./DnaConsole.js":43928,"./DnaVault":89817,"./DnaVault.js":89817,"./EightBallVote":41284,"./EightBallVote.js":41284,"./Electrolyzer":31342,"./Electrolyzer.js":31342,"./Electropack":53586,"./Electropack.js":53586,"./EmergencyShuttleConsole":47453,"./EmergencyShuttleConsole.js":47453,"./EngravedMessage":11715,"./EngravedMessage.js":11715,"./ExosuitControlConsole":8077,"./ExosuitControlConsole.js":8077,"./ExosuitFabricator":95481,"./ExosuitFabricator.js":95481,"./ForbiddenLore":1005,"./ForbiddenLore.js":1005,"./Gateway":64831,"./Gateway.js":64831,"./GhostPoolProtection":8098,"./GhostPoolProtection.js":8098,"./GlandDispenser":25313,"./GlandDispenser.js":25313,"./Gps":25230,"./Gps.js":25230,"./GravityGenerator":4475,"./GravityGenerator.js":4475,"./GulagItemReclaimer":83366,"./GulagItemReclaimer.js":83366,"./GulagTeleporterConsole":72263,"./GulagTeleporterConsole.js":72263,"./Holodeck":7908,"./Holodeck.js":7908,"./Holopad":84283,"./Holopad.js":84283,"./HypnoChair":12708,"./HypnoChair.js":12708,"./ImplantChair":1473,"./ImplantChair.js":1473,"./InfraredEmitter":87522,"./InfraredEmitter.js":87522,"./Intellicard":28549,"./Intellicard.js":28549,"./Jukebox":68741,"./Jukebox.js":68741,"./KeycardAuth":36597,"./KeycardAuth.js":36597,"./LaborClaimConsole":52169,"./LaborClaimConsole.js":52169,"./LanguageMenu":83577,"./LanguageMenu.js":83577,"./LaunchpadConsole":79381,"./LaunchpadConsole.js":79381,"./LaunchpadRemote":59955,"./LaunchpadRemote.js":59955,"./LoadoutSelect":71293,"./LoadoutSelect.js":71293,"./MafiaPanel":5568,"./MafiaPanel.js":5568,"./MalfunctionModulePicker":42159,"./MalfunctionModulePicker.js":42159,"./MechBayPowerConsole":80881,"./MechBayPowerConsole.js":80881,"./MechpadConsole":37305,"./MechpadConsole.js":37305,"./MedicalKiosk":74702,"./MedicalKiosk.js":74702,"./Microscope":61443,"./Microscope.js":61443,"./MiningVendor":62012,"./MiningVendor.js":62012,"./Mint":83413,"./Mint.js":83413,"./Mule":97397,"./Mule.js":97397,"./NaniteChamberControl":42370,"./NaniteChamberControl.js":42370,"./NaniteCloudControl":93623,"./NaniteCloudControl.js":93623,"./NaniteProgramHub":22682,"./NaniteProgramHub.js":22682,"./NaniteProgrammer":87554,"./NaniteProgrammer.js":87554,"./NaniteRemote":73708,"./NaniteRemote.js":73708,"./NotificationPreferences":15394,"./NotificationPreferences.js":15394,"./NtnetRelay":53158,"./NtnetRelay.js":53158,"./NtosAiRestorer":86156,"./NtosAiRestorer.js":86156,"./NtosArcade":79760,"./NtosArcade.js":79760,"./NtosAtmos":5313,"./NtosAtmos.js":5313,"./NtosBountyConsole":78502,"./NtosBountyConsole.js":78502,"./NtosCard":30495,"./NtosCard.js":30495,"./NtosConfiguration":55513,"./NtosConfiguration.js":55513,"./NtosCrewManifest":48791,"./NtosCrewManifest.js":48791,"./NtosCyborgRemoteMonitor":77426,"./NtosCyborgRemoteMonitor.js":77426,"./NtosCyborgRemoteMonitorSyndicate":71854,"./NtosCyborgRemoteMonitorSyndicate.js":71854,"./NtosFileManager":86441,"./NtosFileManager.js":86441,"./NtosJobManager":38773,"./NtosJobManager.js":38773,"./NtosMain":59543,"./NtosMain.js":59543,"./NtosNetChat":73883,"./NtosNetChat.js":73883,"./NtosNetDos":83908,"./NtosNetDos.js":83908,"./NtosNetDownloader":83305,"./NtosNetDownloader.js":83305,"./NtosNetMonitor":6806,"./NtosNetMonitor.js":6806,"./NtosPowerMonitor":54698,"./NtosPowerMonitor.js":54698,"./NtosRadar":49413,"./NtosRadar.js":49413,"./NtosRadarSyndicate":41935,"./NtosRadarSyndicate.js":41935,"./NtosRequestKiosk":60839,"./NtosRequestKiosk.js":60839,"./NtosRevelation":69480,"./NtosRevelation.js":69480,"./NtosRoboControl":36888,"./NtosRoboControl.js":36888,"./NtosShipping":55431,"./NtosShipping.js":55431,"./NtosStationAlertConsole":76124,"./NtosStationAlertConsole.js":76124,"./NtosSupermatterMonitor":22475,"./NtosSupermatterMonitor.js":22475,"./NuclearBomb":78467,"./NuclearBomb.js":78467,"./OperatingComputer":48826,"./OperatingComputer.js":48826,"./Orbit":36983,"./Orbit.js":36983,"./OreBox":57800,"./OreBox.js":57800,"./OreRedemptionMachine":72938,"./OreRedemptionMachine.js":72938,"./Pandemic":47944,"./Pandemic.js":47944,"./PaperSheet":52472,"./PaperSheet.js":52472,"./ParticleAccelerator":57966,"./ParticleAccelerator.js":57966,"./PersonalCrafting":67589,"./PersonalCrafting.js":67589,"./Photocopier":9527,"./Photocopier.js":9527,"./PortableChemMixer":36088,"./PortableChemMixer.js":36088,"./PortableGenerator":46104,"./PortableGenerator.js":46104,"./PortablePump":82564,"./PortablePump.js":82564,"./PortableScrubber":24901,"./PortableScrubber.js":24901,"./PortableTurret":31695,"./PortableTurret.js":31695,"./PowerMonitor":89793,"./PowerMonitor.js":89793,"./ProbingConsole":49081,"./ProbingConsole.js":49081,"./ProximitySensor":33642,"./ProximitySensor.js":33642,"./Radio":17481,"./Radio.js":17481,"./RadioactiveMicrolaser":8324,"./RadioactiveMicrolaser.js":8324,"./RapidPipeDispenser":29509,"./RapidPipeDispenser.js":29509,"./RemoteRobotControl":14265,"./RemoteRobotControl.js":14265,"./RequestKiosk":18374,"./RequestKiosk.js":18374,"./RoboticsControlConsole":24455,"./RoboticsControlConsole.js":24455,"./Roulette":90910,"./Roulette.js":90910,"./SatelliteControl":14317,"./SatelliteControl.js":14317,"./ScannerGate":55666,"./ScannerGate.js":55666,"./SeedExtractor":53480,"./SeedExtractor.js":53480,"./ShuttleConsole":41125,"./ShuttleConsole.js":41125,"./ShuttleManipulator":93138,"./ShuttleManipulator.js":93138,"./Signaler":32325,"./Signaler.js":32325,"./SkillPanel":52757,"./SkillPanel.js":52757,"./SkillStation":43078,"./SkillStation.js":43078,"./Sleeper":80646,"./Sleeper.js":80646,"./SlimeBodySwapper":97700,"./SlimeBodySwapper.js":97700,"./SmartVend":55896,"./SmartVend.js":55896,"./Smes":20561,"./Smes.js":20561,"./SmokeMachine":93267,"./SmokeMachine.js":93267,"./SolarControl":21633,"./SolarControl.js":21633,"./SpaceHeater":57762,"./SpaceHeater.js":57762,"./SpawnersMenu":46810,"./SpawnersMenu.js":46810,"./StationAlertConsole":32015,"./StationAlertConsole.js":32015,"./SuitStorageUnit":80748,"./SuitStorageUnit.js":80748,"./SyndContractor":37162,"./SyndContractor.js":37162,"./TachyonArray":93724,"./TachyonArray.js":93724,"./Tank":58457,"./Tank.js":58457,"./TankDispenser":38754,"./TankDispenser.js":38754,"./Telecomms":88792,"./Telecomms.js":88792,"./TelecommsInteraction":87294,"./TelecommsInteraction.js":87294,"./TelecommsLogBrowser":73754,"./TelecommsLogBrowser.js":73754,"./TelecommsMonitor":61831,"./TelecommsMonitor.js":61831,"./TelecommsPDALog":49898,"./TelecommsPDALog.js":49898,"./Teleporter":18509,"./Teleporter.js":18509,"./ThermoMachine":55469,"./ThermoMachine.js":55469,"./Timer":94936,"./Timer.js":94936,"./TransferValve":24389,"./TransferValve.js":24389,"./TurbineComputer":30499,"./TurbineComputer.js":30499,"./TurretControl":46669,"./TurretControl.js":46669,"./Uplink":89761,"./Uplink.js":89761,"./VaultController":39544,"./VaultController.js":39544,"./Vendatray":32539,"./Vendatray.js":32539,"./Vending":61321,"./Vending.js":61321,"./VrSleeper":44952,"./VrSleeper.js":44952,"./Wires":21162,"./Wires.js":21162,"./common/AccessList":5665,"./common/AccessList.js":5665,"./common/AtmosControls":71739,"./common/AtmosControls.js":71739,"./common/BeakerContents":48229,"./common/BeakerContents.js":48229,"./common/InterfaceLockNoticeBox":21451,"./common/InterfaceLockNoticeBox.js":21451,"./common/PortableAtmos":34227,"./common/PortableAtmos.js":34227};function r(e){var t=a(e);return n(t)}function a(e){if(!n.o(o,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return o[e]}r.keys=function(){return Object.keys(o)},r.resolve=a,e.exports=r,r.id=8156}},n={};function o(e){var r=n[e];if(r!==undefined)return r.exports;var a=n[e]={exports:{}};return t[e](a,a.exports,o),a.exports}o.m=t,e=[],o.O=function(t,n,r,a){if(!n){var c=Infinity;for(d=0;d=a)&&Object.keys(o.O).every((function(e){return o.O[e](n[l])}))?n.splice(l--,1):(i=!1,a0&&e[d-1][2]>a;d--)e[d]=e[d-1];e[d]=[n,r,a]},o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},function(){var e={764:0};o.O.j=function(t){return 0===e[t]};var t=function(t,n){var r,a,c=n[0],i=n[1],l=n[2],d=0;for(r in i)o.o(i,r)&&(o.m[r]=i[r]);for(l&&l(o),t&&t(n);d