diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 817626d228..643b4d6e64 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -414,10 +414,17 @@ Regarding sprites & sounds, you must credit the artist and possibly the codebase Do not add any of the following in a Pull Request or risk getting the PR closed: * National Socialist Party of Germany content, National Socialist Party of Germany related content, or National Socialist Party of Germany references * Code where one line of code is split across mutiple lines (except for multiple, separate strings and comments; in those cases, existing longer lines must not be split up) -* Code adding, removing, or updating the availability of alien races/species/human mutants without prior approval. Pull requests attempting to add or remove features from said races/species/mutants require prior approval as well. Just because something isn't on this list doesn't mean that it's acceptable. Use common sense above all else. +## Content requiring prior approval +Certain types of changes may require prior approval from maintainers. This currently includes: + +* Code adding, removing, or updating the availability of alien races/species/human mutants. This includes pull requests attempting to add or remove features from said races/species/mutants. (Requires approval from at least one maintainer) +* Code adding, removing, or modifying the functionality of adult-oriented features (such as, but not limited to: vore, genitals, MKUltra, and more). This also includes pull requests attempting to add or remove these features outright. (Requires approval from at least half of the formal maintainer team) + +The above content requires approval from the specified amount of maintainers prior to PR creation. Seeking approval must be done via a @Maintainer ping in a relevant development/code or staff channel on the Discord, otherwise it will be considered insufficient. If a PR contains any of the above content, but the creator does not have sufficient approval prior to the PR's creation, then the PR may be closed by any maintainer, at any time, for any reason. + ## A word on Git Yes, we know that the files have a tonne of mixed Windows and Linux line endings. Attempts to fix this have been met with less than stellar success, and as such we have decided to give up caring until there comes a time when it matters. diff --git a/_maps/RandomRuins/IceRuins/icemoon_surface_mining_site.dmm b/_maps/RandomRuins/IceRuins/icemoon_surface_mining_site.dmm index 969acdd871..23abc4b731 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_surface_mining_site.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_surface_mining_site.dmm @@ -16,7 +16,7 @@ /turf/open/floor/wood, /area/ruin/unpowered) "d" = ( -/turf/open/openspace/icemoon, +/turf/open/transparent/openspace/icemoon, /area/icemoon/surface/outdoors) "e" = ( /obj/item/clothing/suit/hooded/explorer, diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index a77fcf1bd5..264fdb1058 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -6471,6 +6471,12 @@ }, /turf/open/floor/plasteel/white, /area/science/xenobiology) +"alX" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/white, +/area/medical/chemistry) "alY" = ( /obj/structure/cable{ icon_state = "1-2" @@ -8073,6 +8079,13 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) +"apI" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/closet/secure_closet/medical1, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "apJ" = ( /turf/closed/wall, /area/construction/mining/aux_base) @@ -9385,6 +9398,13 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/construction/mining/aux_base) +"asG" = ( +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) "asH" = ( /obj/structure/closet/toolcloset, /obj/effect/turf_decal/tile/yellow{ @@ -9428,6 +9448,35 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"asL" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/obj/item/reagent_containers/spray/cleaner, +/obj/item/crowbar, +/obj/item/clothing/neck/stethoscope, +/obj/item/storage/box/gloves{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/storage/box/masks, +/obj/structure/table, +/turf/open/floor/plasteel/white, +/area/medical/sleeper) +"asM" = ( +/obj/structure/table, +/obj/item/crowbar, +/obj/item/clothing/neck/stethoscope, +/obj/item/reagent_containers/spray/cleaner, +/obj/structure/sign/warning/nosmoking{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/dark, +/area/medical/sleeper) "asN" = ( /obj/machinery/airalarm{ dir = 4; @@ -9457,12 +9506,66 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/maintenance/fore) +"asT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/medical/medbay/central) +"asU" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_y = 30 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/yellow{ + dir = 4 + }, +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"asV" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/medical/medbay/central) "asW" = ( /obj/machinery/light/small{ dir = 8 }, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) +"asX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/airlock/medical/glass{ + id_tag = "MedbayFoyer"; + name = "Medbay"; + req_access_txt = "5" + }, +/turf/open/floor/plasteel/white, +/area/medical/medbay/central) +"asY" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_y = 30 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/central) "ata" = ( /turf/open/floor/wood, /area/lawoffice) @@ -24471,12 +24574,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, /area/engine/gravity_generator) -"bgP" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/chemistry) "bgQ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 @@ -28214,12 +28311,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/white, /area/medical/medbay/central) -"bpy" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) "bpz" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 @@ -28708,13 +28799,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/hallway/primary/central) -"bqM" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/medical/medbay/central) "bqN" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -28747,22 +28831,6 @@ }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) -"bqR" = ( -/obj/structure/table, -/obj/item/crowbar, -/obj/item/clothing/neck/stethoscope, -/obj/item/reagent_containers/spray/cleaner, -/obj/structure/sign/warning/nosmoking{ - pixel_y = 30 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) "bqS" = ( /obj/structure/cable{ icon_state = "4-8" @@ -29265,13 +29333,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/crew_quarters/heads/hop) -"brV" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/medical/medbay/central) "brW" = ( /obj/structure/cable{ icon_state = "4-8" @@ -29279,18 +29340,6 @@ /obj/machinery/vending/cart, /turf/open/floor/plasteel, /area/crew_quarters/heads/hop) -"brX" = ( -/obj/structure/table, -/obj/item/storage/box/masks, -/obj/item/storage/box/gloves{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) "brY" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -31215,23 +31264,10 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/medical/medbay/central) -"bwy" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) "bwz" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/white, /area/medical/medbay/central) -"bwA" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/medical/medbay/central) "bwB" = ( /obj/structure/chair, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -32971,17 +33007,6 @@ }, /turf/open/floor/plating, /area/maintenance/port/aft) -"bAp" = ( -/obj/structure/closet/secure_closet/medical1, -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -24 - }, -/turf/open/floor/plasteel/white, -/area/medical/sleeper) "bAq" = ( /obj/machinery/sleeper{ dir = 8 @@ -55998,6 +56023,10 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/theatre) +"kEm" = ( +/mob/living/simple_animal/opossum/poppy, +/turf/open/floor/plating, +/area/maintenance/port/aft) "kEY" = ( /obj/effect/landmark/stationroom/box/engine, /turf/open/space/basic, @@ -58125,6 +58154,10 @@ /obj/effect/decal/cleanable/blood/old, /turf/open/floor/plating, /area/maintenance/fore) +"rtU" = ( +/mob/living/simple_animal/opossum, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) "ruo" = ( /obj/structure/cable{ icon_state = "4-8" @@ -85309,7 +85342,7 @@ bVI bTA xgk bHE -bHE +kEm bHE bHE bHE @@ -92215,7 +92248,7 @@ btJ buV bws bqH -aJq +asY aJq byW bCv @@ -94266,8 +94299,8 @@ bfF bfF bfF bfF -bqM -brV +asT +asV bof bwv bvj @@ -94523,8 +94556,8 @@ bmF bob bnB bfF -bqR -brX +asU +asX bof bwx bvj @@ -95031,7 +95064,7 @@ aYV bfF bhc bip -bgP +alX bjL bkL bmT @@ -95297,7 +95330,7 @@ bpF bqS brY bwz -bwy +asG bvj bza bxb @@ -95553,10 +95586,10 @@ bpt bfF bqV bEe +bhh bBL -bwA bvj -bAl +asM bAl bvh bzS @@ -96071,7 +96104,7 @@ bvh ajv bxN bze -bAp +asL bvh bCG bBd @@ -98119,7 +98152,7 @@ bjX blp bmO bhi -bpy +apI bwz brg btZ @@ -104254,7 +104287,7 @@ anf anf alP alP -anf +rtU alP alP alP diff --git a/_maps/map_files/CogStation/CogStation.dmm b/_maps/map_files/CogStation/CogStation.dmm index 182f1a4f27..8bf6d0e32b 100644 --- a/_maps/map_files/CogStation/CogStation.dmm +++ b/_maps/map_files/CogStation/CogStation.dmm @@ -242,13 +242,13 @@ pixel_x = 22 }, /obj/structure/rack, -/obj/item/gun/energy{ +/obj/item/gun/energy/e_gun{ pixel_y = -6 }, -/obj/item/gun/energy{ +/obj/item/gun/energy/e_gun{ pixel_y = -3 }, -/obj/item/gun/energy, +/obj/item/gun/energy/e_gun, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "aaI" = ( diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 4a18b67e02..1b7b9c7414 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -126384,6 +126384,13 @@ }, /turf/open/space, /area/engine/atmos) +"kqo" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/mob/living/simple_animal/opossum, +/turf/open/floor/plating, +/area/maintenance/port/fore) "ktK" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -127042,6 +127049,10 @@ dir = 1 }, /area/science/circuit) +"pok" = ( +/mob/living/simple_animal/opossum/poppy, +/turf/open/floor/plasteel/grimy, +/area/crew_quarters/theatre/abandoned) "poI" = ( /obj/structure/bed, /obj/item/tank/internals/anesthetic, @@ -164027,7 +164038,7 @@ aof aky aky aky -arD +kqo asZ aui avF @@ -178786,7 +178797,7 @@ dCX dEj dFq dGJ -dGJ +pok dJy dGJ dGJ diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index fbe5b954ff..e848fd87d1 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -78498,6 +78498,7 @@ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/mob/living/simple_animal/opossum/poppy, /turf/open/floor/plating{ icon_state = "platingdmg3" }, @@ -84902,6 +84903,11 @@ /obj/machinery/light, /turf/open/floor/plating/airless, /area/hallway/secondary/entry) +"jGN" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/opossum, +/turf/open/floor/plating, +/area/maintenance/starboard/aft) "jHJ" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 9 @@ -125028,7 +125034,7 @@ bAP bCf bhQ bhQ -bAM +jGN bGH bOc bHZ diff --git a/_maps/map_files/LambdaStation/lambda.dmm b/_maps/map_files/LambdaStation/lambda.dmm index 9000c90388..47d8dd9cb4 100644 --- a/_maps/map_files/LambdaStation/lambda.dmm +++ b/_maps/map_files/LambdaStation/lambda.dmm @@ -80285,6 +80285,11 @@ }, /turf/open/space/basic, /area/engine/engineering) +"eCO" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/opossum/poppy, +/turf/open/floor/plasteel/dark, +/area/maintenance/starboard/aft) "eDP" = ( /obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 8 @@ -82038,6 +82043,10 @@ }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) +"vDO" = ( +/mob/living/simple_animal/opossum, +/turf/open/floor/plating, +/area/maintenance/fore) "vDW" = ( /obj/structure/cable{ icon_state = "1-2" @@ -107578,7 +107587,7 @@ aaA abY ayy acw -acw +vDO acw acw aeG @@ -135197,7 +135206,7 @@ bPp ccJ clR bQh -clN +eCO bPp bQh bYx diff --git a/_maps/map_files/Mafia/mafia_ayylmao.dmm b/_maps/map_files/Mafia/mafia_ayylmao.dmm new file mode 100644 index 0000000000..5d6f2aec5f --- /dev/null +++ b/_maps/map_files/Mafia/mafia_ayylmao.dmm @@ -0,0 +1,768 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/indestructible/riveted, +/area/mafia) +"b" = ( +/turf/closed/indestructible{ + desc = "A wall with alien alloy plating."; + icon = 'icons/turf/walls/abductor_wall.dmi'; + icon_state = "abductor"; + name = "alien wall"; + smooth = 5 + }, +/area/mafia) +"g" = ( +/obj/mafia_game_board, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/mafia) +"h" = ( +/obj/structure/grille/indestructable, +/turf/open/floor/plating, +/area/mafia) +"i" = ( +/turf/open/floor/fakespace, +/area/mafia) +"j" = ( +/turf/closed/indestructible/abductor{ + icon_state = "alien22" + }, +/area/mafia) +"k" = ( +/obj/mafia_game_board, +/turf/open/floor/plating, +/area/mafia) +"l" = ( +/obj/structure/closet/abductor, +/turf/open/floor/plating/abductor, +/area/mafia) +"m" = ( +/obj/effect/landmark/mafia, +/obj/structure/bed/abductor, +/turf/open/floor/plating/abductor, +/area/mafia) +"n" = ( +/obj/effect/landmark/mafia, +/obj/structure/bed/abductor, +/turf/open/floor/plating/abductor2, +/area/mafia) +"o" = ( +/obj/structure/closet/abductor, +/turf/open/floor/plating/abductor2, +/area/mafia) +"p" = ( +/obj/machinery/door/poddoor/preopen{ + desc = "When it's time to sleep, the lights will go out. Remember - no one in space can hear you scream."; + id = "mafia"; + max_integrity = 99999; + name = "Station Night Shutters" + }, +/turf/closed/indestructible/fakeglass, +/area/mafia) +"q" = ( +/turf/open/floor/plating/abductor, +/area/mafia) +"r" = ( +/turf/open/floor/plating/abductor2, +/area/mafia) +"t" = ( +/turf/open/floor/light/colour_cycle/dancefloor_a, +/area/mafia) +"u" = ( +/obj/effect/baseturf_helper/asteroid, +/obj/effect/landmark/mafia/town_center, +/turf/open/floor/light/colour_cycle/dancefloor_b, +/area/mafia) +"v" = ( +/obj/mafia_game_board, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/mafia) +"x" = ( +/obj/machinery/door/poddoor/preopen{ + desc = "When it's time to sleep, the lights will go out. Remember - no one in space can hear you scream."; + id = "mafia"; + max_integrity = 99999; + name = "Station Night Shutters" + }, +/obj/effect/spawner/structure/window/plastitanium, +/turf/open/floor/plating/abductor2, +/area/mafia) +"z" = ( +/obj/structure/grille/indestructable, +/turf/open/floor/fakespace, +/area/mafia) +"B" = ( +/turf/closed/indestructible/abductor{ + icon_state = "alien2" + }, +/area/mafia) +"D" = ( +/turf/closed/indestructible/abductor{ + icon_state = "alien15" + }, +/area/mafia) +"E" = ( +/turf/closed/indestructible/abductor{ + icon_state = "alien7" + }, +/area/mafia) +"F" = ( +/turf/closed/indestructible/abductor{ + icon_state = "alien12" + }, +/area/mafia) +"G" = ( +/turf/closed/indestructible/abductor{ + icon_state = "alien17" + }, +/area/mafia) +"H" = ( +/turf/open/space/basic, +/area/mafia) +"I" = ( +/turf/closed/indestructible/abductor{ + icon_state = "alien24" + }, +/area/mafia) +"J" = ( +/turf/closed/indestructible/abductor{ + icon_state = "alien18" + }, +/area/mafia) +"K" = ( +/turf/closed/indestructible/abductor{ + icon_state = "alien11" + }, +/area/mafia) +"L" = ( +/turf/closed/indestructible/abductor{ + icon_state = "alien14" + }, +/area/mafia) +"M" = ( +/turf/closed/indestructible/abductor{ + icon_state = "alien4" + }, +/area/mafia) +"N" = ( +/turf/closed/indestructible/abductor{ + icon_state = "alien21" + }, +/area/mafia) +"P" = ( +/turf/closed/indestructible/abductor, +/area/mafia) +"Q" = ( +/turf/closed/indestructible/abductor{ + icon_state = "alien5" + }, +/area/mafia) +"S" = ( +/turf/closed/indestructible/abductor{ + icon_state = "alien3" + }, +/area/mafia) +"U" = ( +/turf/closed/indestructible/abductor{ + icon_state = "alien23" + }, +/area/mafia) +"V" = ( +/turf/closed/indestructible/abductor{ + icon_state = "alien13" + }, +/area/mafia) +"W" = ( +/turf/closed/indestructible/abductor{ + icon_state = "alien20" + }, +/area/mafia) +"Y" = ( +/turf/closed/indestructible/abductor{ + icon_state = "alien8" + }, +/area/mafia) +"Z" = ( +/turf/closed/indestructible/abductor{ + icon_state = "alien10" + }, +/area/mafia) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(3,1,1) = {" +a +b +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +b +a +"} +(4,1,1) = {" +a +b +i +i +g +z +i +i +i +i +i +i +i +i +i +H +i +z +k +i +i +b +a +"} +(5,1,1) = {" +a +b +i +i +z +i +i +i +W +L +F +F +F +Z +P +i +i +i +h +i +i +b +a +"} +(6,1,1) = {" +a +b +i +i +i +W +L +Z +G +l +q +b +r +o +E +L +Z +P +i +i +i +b +a +"} +(7,1,1) = {" +a +b +i +i +i +N +o +r +p +m +q +x +r +n +x +q +l +B +i +i +i +b +a +"} +(8,1,1) = {" +a +b +i +i +i +U +n +r +b +b +q +b +r +b +b +q +m +M +i +i +i +b +a +"} +(9,1,1) = {" +a +b +i +i +W +G +x +r +r +x +q +x +r +x +q +q +x +E +P +i +i +b +a +"} +(10,1,1) = {" +a +b +i +i +N +l +x +b +x +x +x +x +x +x +x +b +x +o +B +i +i +b +a +"} +(11,1,1) = {" +a +b +i +i +j +m +q +q +q +x +t +t +t +x +r +r +r +n +S +i +i +b +a +"} +(12,1,1) = {" +a +b +i +i +j +b +x +b +x +x +t +u +t +x +x +b +x +b +S +i +i +b +a +"} +(13,1,1) = {" +a +b +i +i +j +n +r +r +r +x +t +t +t +x +q +q +q +m +S +i +i +b +a +"} +(14,1,1) = {" +a +b +i +i +U +o +x +b +x +x +x +x +x +x +x +b +x +l +M +i +i +b +a +"} +(15,1,1) = {" +a +b +i +i +I +J +x +q +q +x +r +x +q +x +r +r +x +Y +Q +i +i +b +a +"} +(16,1,1) = {" +a +b +i +i +i +N +m +q +b +b +r +b +q +b +b +r +n +B +i +i +i +b +a +"} +(17,1,1) = {" +a +b +i +i +i +U +l +q +x +n +r +x +q +m +x +r +o +M +i +i +i +b +a +"} +(18,1,1) = {" +a +b +i +i +i +I +D +K +J +o +r +b +q +l +Y +D +K +Q +i +i +i +b +a +"} +(19,1,1) = {" +a +b +i +i +z +i +i +i +I +D +V +V +V +K +Q +i +i +i +z +i +i +b +a +"} +(20,1,1) = {" +a +b +i +i +k +z +i +i +i +i +i +i +i +i +i +i +i +z +v +i +i +b +a +"} +(21,1,1) = {" +a +b +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +i +b +a +"} +(22,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(23,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/_maps/map_files/Mafia/mafia_ball.dmm b/_maps/map_files/Mafia/mafia_ball.dmm new file mode 100644 index 0000000000..6ca955726b --- /dev/null +++ b/_maps/map_files/Mafia/mafia_ball.dmm @@ -0,0 +1,675 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/indestructible/riveted, +/area/mafia) +"c" = ( +/turf/closed/wall/rust, +/area/mafia) +"d" = ( +/turf/open/floor/plating, +/area/mafia) +"e" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/mafia) +"f" = ( +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/mafia) +"g" = ( +/obj/mafia_game_board, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/mafia) +"h" = ( +/obj/structure/grille/indestructable, +/turf/open/floor/plating, +/area/mafia) +"i" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/mafia) +"j" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + max_integrity = 99999; + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plating, +/area/mafia) +"k" = ( +/obj/mafia_game_board, +/turf/open/floor/plating, +/area/mafia) +"l" = ( +/obj/structure/closet/cabinet{ + anchored = 1 + }, +/turf/open/floor/plasteel/dark, +/area/mafia) +"m" = ( +/obj/effect/landmark/mafia, +/turf/open/floor/plasteel/dark, +/area/mafia) +"n" = ( +/obj/effect/landmark/mafia, +/turf/open/floor/plasteel, +/area/mafia) +"o" = ( +/obj/structure/closet/cabinet{ + anchored = 1 + }, +/turf/open/floor/plasteel, +/area/mafia) +"p" = ( +/obj/machinery/door/poddoor/preopen{ + desc = "When it's time to sleep, the lights will go out. Remember - no one in space can hear you scream."; + id = "mafia"; + max_integrity = 99999; + name = "Station Night Shutters" + }, +/turf/closed/indestructible/fakeglass, +/area/mafia) +"q" = ( +/turf/open/floor/plasteel/dark, +/area/mafia) +"r" = ( +/turf/open/floor/plasteel, +/area/mafia) +"s" = ( +/turf/open/floor/fakespace, +/area/mafia) +"t" = ( +/turf/open/floor/plasteel/solarpanel, +/area/mafia) +"u" = ( +/obj/effect/baseturf_helper/asteroid, +/obj/effect/landmark/mafia/town_center, +/turf/open/floor/plasteel/solarpanel, +/area/mafia) +"v" = ( +/obj/mafia_game_board, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/mafia) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(3,1,1) = {" +a +a +a +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +a +a +a +"} +(4,1,1) = {" +a +a +a +c +g +h +d +d +d +d +d +e +d +d +d +d +d +h +k +c +a +a +a +"} +(5,1,1) = {" +a +a +a +c +h +d +d +e +a +a +j +a +j +a +a +d +d +i +h +c +a +a +a +"} +(6,1,1) = {" +a +a +a +c +i +a +a +j +a +l +q +a +r +o +a +j +a +a +d +c +a +a +a +"} +(7,1,1) = {" +a +a +c +c +d +a +o +r +p +m +q +p +r +n +p +q +l +a +d +c +c +a +a +"} +(8,1,1) = {" +a +a +c +d +d +a +n +r +a +a +q +a +r +a +a +q +m +a +d +d +c +a +a +"} +(9,1,1) = {" +a +a +c +d +a +a +p +r +r +p +q +p +r +p +q +q +p +a +a +d +c +a +a +"} +(10,1,1) = {" +a +a +c +d +a +l +p +a +p +p +p +p +p +p +p +a +p +o +a +d +c +a +a +"} +(11,1,1) = {" +a +a +c +d +j +m +q +q +q +p +s +t +s +p +r +r +r +n +j +e +c +a +a +"} +(12,1,1) = {" +a +a +c +e +a +a +p +a +p +p +t +u +t +p +p +a +p +a +a +d +c +a +a +"} +(13,1,1) = {" +a +a +c +d +j +n +r +r +r +p +s +t +s +p +q +q +q +m +j +d +c +a +a +"} +(14,1,1) = {" +a +a +c +d +a +o +p +a +p +p +p +p +p +p +p +a +p +l +a +i +c +a +a +"} +(15,1,1) = {" +a +a +c +d +a +a +p +q +q +p +r +p +q +p +r +r +p +a +a +d +c +a +a +"} +(16,1,1) = {" +a +a +c +f +d +a +m +q +a +a +r +a +q +a +a +r +n +a +d +d +c +a +a +"} +(17,1,1) = {" +a +a +c +c +d +a +l +q +p +n +r +p +q +m +p +r +o +a +d +c +c +a +a +"} +(18,1,1) = {" +a +a +a +c +d +a +a +j +a +o +r +a +q +l +a +j +a +a +d +c +a +a +a +"} +(19,1,1) = {" +a +a +a +c +h +i +d +d +a +a +j +a +j +a +a +d +e +d +h +c +a +a +a +"} +(20,1,1) = {" +a +a +a +c +k +h +d +d +e +d +d +d +d +d +d +d +d +h +v +c +a +a +a +"} +(21,1,1) = {" +a +a +a +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +a +a +a +"} +(22,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(23,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/_maps/map_files/Mafia/mafia_gothic.dmm b/_maps/map_files/Mafia/mafia_gothic.dmm new file mode 100644 index 0000000000..a3c19fee85 --- /dev/null +++ b/_maps/map_files/Mafia/mafia_gothic.dmm @@ -0,0 +1,724 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/indestructible/riveted, +/area/mafia) +"b" = ( +/turf/closed/wall/mineral/iron, +/area/mafia) +"c" = ( +/turf/closed/wall/rust, +/area/mafia) +"d" = ( +/turf/open/floor/plating, +/area/mafia) +"e" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/mafia) +"f" = ( +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/mafia) +"g" = ( +/obj/mafia_game_board, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/mafia) +"h" = ( +/obj/structure/grille/indestructable, +/turf/open/floor/plating, +/area/mafia) +"i" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/mafia) +"j" = ( +/turf/closed/indestructible/fakedoor, +/area/mafia) +"k" = ( +/obj/mafia_game_board, +/turf/open/floor/plating, +/area/mafia) +"l" = ( +/obj/structure/closet/crate/coffin, +/turf/open/floor/carpet/red, +/area/mafia) +"m" = ( +/obj/effect/landmark/mafia, +/turf/open/floor/carpet/red, +/area/mafia) +"n" = ( +/obj/effect/landmark/mafia, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/mafia) +"o" = ( +/obj/structure/closet/crate/coffin, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/mafia) +"p" = ( +/obj/machinery/door/poddoor/preopen{ + desc = "When it's time to sleep, the lights will go out. Remember - no one in space can hear you scream."; + id = "mafia"; + max_integrity = 99999; + name = "Station Night Shutters" + }, +/obj/effect/spawner/structure/window/plastitanium, +/turf/open/space/basic, +/area/mafia) +"q" = ( +/turf/open/floor/carpet/red, +/area/mafia) +"r" = ( +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/mafia) +"t" = ( +/turf/open/floor/carpet/royalblack, +/area/mafia) +"u" = ( +/obj/effect/baseturf_helper/asteroid, +/obj/effect/landmark/mafia/town_center, +/turf/open/floor/carpet/royalblack, +/area/mafia) +"v" = ( +/obj/mafia_game_board, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/mafia) +"D" = ( +/obj/effect/landmark/mafia, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/mafia) +"E" = ( +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/mafia) +"H" = ( +/obj/structure/closet/cabinet{ + anchored = 1 + }, +/turf/open/floor/carpet/red, +/area/mafia) +"J" = ( +/obj/structure/closet/crate/coffin, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/mafia) +"M" = ( +/obj/effect/landmark/mafia, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/mafia) +"N" = ( +/obj/effect/landmark/mafia, +/turf/open/floor/plasteel/chapel, +/area/mafia) +"O" = ( +/turf/open/floor/plasteel/chapel, +/area/mafia) +"P" = ( +/obj/structure/closet/crate/coffin, +/turf/open/floor/plasteel/chapel, +/area/mafia) +"Q" = ( +/obj/structure/closet/crate/coffin, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, +/area/mafia) +"X" = ( +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/mafia) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(3,1,1) = {" +a +b +b +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +b +b +a +"} +(4,1,1) = {" +a +b +b +c +g +h +d +d +d +d +d +e +d +d +d +d +d +h +k +c +b +b +a +"} +(5,1,1) = {" +a +b +b +c +h +d +d +e +b +b +j +b +j +b +b +d +d +i +h +c +b +b +a +"} +(6,1,1) = {" +a +b +b +c +i +b +b +j +b +l +q +b +X +Q +b +j +b +b +d +c +b +b +a +"} +(7,1,1) = {" +a +b +c +c +d +b +J +r +p +m +q +p +E +N +p +q +l +b +d +c +c +b +a +"} +(8,1,1) = {" +a +b +c +d +d +b +D +O +b +b +q +b +r +b +b +q +m +b +d +d +c +b +a +"} +(9,1,1) = {" +a +b +c +d +b +b +p +X +r +p +q +p +O +p +q +q +p +b +b +d +c +b +a +"} +(10,1,1) = {" +a +b +c +d +b +l +p +b +p +p +p +p +p +p +p +b +p +Q +b +d +c +b +a +"} +(11,1,1) = {" +a +b +c +d +j +m +q +q +q +p +t +t +t +p +X +r +E +N +j +e +c +b +a +"} +(12,1,1) = {" +a +b +c +e +b +b +p +b +p +p +t +u +t +p +p +b +p +b +b +d +c +b +a +"} +(13,1,1) = {" +a +b +c +d +j +n +r +E +O +p +t +t +t +p +q +q +q +m +j +d +c +b +a +"} +(14,1,1) = {" +a +b +c +d +b +o +p +b +p +p +p +p +p +p +p +b +p +l +b +i +c +b +a +"} +(15,1,1) = {" +a +b +c +d +b +b +p +q +q +p +X +p +q +p +E +O +p +b +b +d +c +b +a +"} +(16,1,1) = {" +a +b +c +f +d +b +m +q +b +b +E +b +q +b +b +X +M +b +d +d +c +b +a +"} +(17,1,1) = {" +a +b +c +c +d +b +l +q +p +n +r +p +q +m +p +E +P +b +d +c +c +b +a +"} +(18,1,1) = {" +a +b +b +c +d +b +b +j +b +o +O +b +q +H +b +j +b +b +d +c +b +b +a +"} +(19,1,1) = {" +a +b +b +c +h +i +d +d +b +b +j +b +j +b +b +d +e +d +h +c +b +b +a +"} +(20,1,1) = {" +a +b +b +c +k +h +d +d +e +d +d +d +d +d +d +d +d +h +v +c +b +b +a +"} +(21,1,1) = {" +a +b +b +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +b +b +a +"} +(22,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(23,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/_maps/map_files/Mafia/mafia_lavaland.dmm b/_maps/map_files/Mafia/mafia_lavaland.dmm new file mode 100644 index 0000000000..8c58fb9054 --- /dev/null +++ b/_maps/map_files/Mafia/mafia_lavaland.dmm @@ -0,0 +1,976 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/indestructible/riveted, +/area/mafia) +"c" = ( +/turf/closed/wall/rust, +/area/mafia) +"d" = ( +/turf/open/floor/plating, +/area/mafia) +"e" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/mafia) +"f" = ( +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/mafia) +"g" = ( +/obj/mafia_game_board, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/mafia) +"h" = ( +/obj/structure/grille/indestructable, +/turf/open/floor/plating, +/area/mafia) +"i" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/mafia) +"j" = ( +/obj/machinery/door/airlock/external{ + max_integrity = 99999; + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plating, +/area/mafia) +"k" = ( +/obj/mafia_game_board, +/turf/open/floor/plating, +/area/mafia) +"l" = ( +/obj/structure/closet{ + desc = "It's a storage unit. For mining stuff. Y'know."; + icon_state = "mining"; + name = "miner equipment locker" + }, +/obj/item/clothing/under/rank/cargo/miner/lavaland, +/turf/open/floor/grass/fakebasalt, +/area/mafia) +"m" = ( +/obj/effect/landmark/mafia, +/turf/open/floor/grass/fakebasalt, +/area/mafia) +"n" = ( +/obj/effect/landmark/mafia, +/obj/effect/turf_decal/trimline/brown/filled/line{ + icon_state = "trimline_fill"; + dir = 9 + }, +/obj/effect/turf_decal/trimline/brown/filled/corner, +/turf/open/floor/plasteel, +/area/mafia) +"o" = ( +/obj/effect/turf_decal/trimline/brown/filled/end{ + icon_state = "trimline_end_fill"; + dir = 4 + }, +/obj/structure/closet{ + desc = "It's a storage unit. For mining stuff. Y'know."; + icon_state = "mining"; + name = "miner equipment locker" + }, +/obj/item/clothing/under/rank/cargo/miner/lavaland, +/turf/open/floor/plasteel, +/area/mafia) +"p" = ( +/obj/machinery/door/poddoor/preopen{ + desc = "When it's time to sleep, the lights will go out. Remember - no one in space can hear you scream."; + id = "mafia"; + max_integrity = 99999; + name = "Station Night Shutters" + }, +/turf/closed/indestructible/fakeglass, +/area/mafia) +"q" = ( +/turf/open/floor/grass/fakebasalt, +/area/mafia) +"r" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + icon_state = "trimline_fill"; + dir = 9 + }, +/obj/structure/closet{ + desc = "It's a storage unit. For mining stuff. Y'know."; + icon_state = "mining"; + name = "miner equipment locker" + }, +/obj/item/clothing/under/rank/cargo/miner/lavaland, +/turf/open/floor/plasteel, +/area/mafia) +"s" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + icon_state = "trimline_fill"; + dir = 9 + }, +/turf/open/floor/plasteel, +/area/mafia) +"t" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/mafia) +"u" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel/dark, +/area/mafia) +"v" = ( +/obj/mafia_game_board, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/mafia) +"w" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + icon_state = "trimline_fill"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/filled/corner, +/turf/open/floor/plasteel, +/area/mafia) +"x" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + icon_state = "trimline_fill"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/filled/line, +/turf/open/floor/plasteel, +/area/mafia) +"y" = ( +/obj/effect/turf_decal/trimline/brown/filled/end{ + icon_state = "trimline_end_fill"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mafia) +"z" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + icon_state = "trimline_fill"; + dir = 5 + }, +/obj/structure/closet{ + desc = "It's a storage unit. For mining stuff. Y'know."; + icon_state = "mining"; + name = "miner equipment locker" + }, +/obj/item/clothing/under/rank/cargo/miner/lavaland, +/turf/open/floor/plasteel, +/area/mafia) +"A" = ( +/obj/effect/landmark/mafia, +/obj/effect/turf_decal/trimline/brown/filled/line{ + icon_state = "trimline_fill"; + dir = 6 + }, +/turf/open/floor/plasteel, +/area/mafia) +"B" = ( +/obj/effect/turf_decal/trimline/brown/filled/end{ + icon_state = "trimline_end_fill"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mafia) +"C" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + icon_state = "trimline_fill"; + dir = 4 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + icon_state = "trimline_fill"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mafia) +"D" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + icon_state = "trimline_fill"; + dir = 10 + }, +/obj/effect/turf_decal/trimline/brown/filled/corner{ + icon_state = "trimline_corner_fill"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mafia) +"E" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + icon_state = "trimline_fill"; + dir = 1 + }, +/obj/effect/turf_decal/trimline/brown/filled/corner{ + icon_state = "trimline_corner_fill"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mafia) +"F" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + icon_state = "trimline_fill"; + dir = 5 + }, +/turf/open/floor/plasteel, +/area/mafia) +"G" = ( +/obj/effect/landmark/mafia, +/obj/effect/turf_decal/trimline/brown/filled/line{ + icon_state = "trimline_fill"; + dir = 10 + }, +/turf/open/floor/plasteel, +/area/mafia) +"H" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + icon_state = "trimline_fill"; + dir = 10 + }, +/obj/structure/closet{ + desc = "It's a storage unit. For mining stuff. Y'know."; + icon_state = "mining"; + name = "miner equipment locker" + }, +/obj/item/clothing/under/rank/cargo/miner/lavaland, +/turf/open/floor/plasteel, +/area/mafia) +"I" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + icon_state = "trimline_fill"; + dir = 6 + }, +/obj/structure/closet{ + desc = "It's a storage unit. For mining stuff. Y'know."; + icon_state = "mining"; + name = "miner equipment locker" + }, +/obj/item/clothing/under/rank/cargo/miner/lavaland, +/turf/open/floor/plasteel, +/area/mafia) +"J" = ( +/obj/effect/landmark/mafia, +/obj/effect/turf_decal/trimline/brown/filled/line{ + icon_state = "trimline_fill"; + dir = 6 + }, +/obj/effect/turf_decal/trimline/brown/filled/corner{ + icon_state = "trimline_corner_fill"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mafia) +"K" = ( +/obj/effect/turf_decal/trimline/brown/filled/end{ + icon_state = "trimline_end_fill"; + dir = 8 + }, +/obj/structure/closet{ + desc = "It's a storage unit. For mining stuff. Y'know."; + icon_state = "mining"; + name = "miner equipment locker" + }, +/obj/item/clothing/under/rank/cargo/miner/lavaland, +/turf/open/floor/plasteel, +/area/mafia) +"L" = ( +/obj/effect/landmark/mafia, +/obj/effect/turf_decal/trimline/brown/filled/line{ + icon_state = "trimline_fill"; + dir = 5 + }, +/turf/open/floor/plasteel, +/area/mafia) +"M" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + icon_state = "trimline_fill"; + dir = 10 + }, +/turf/open/floor/plasteel, +/area/mafia) +"N" = ( +/obj/effect/turf_decal/trimline/brown/filled/line, +/obj/effect/turf_decal/trimline/brown/filled/corner{ + icon_state = "trimline_corner_fill"; + dir = 4 + }, +/turf/open/floor/plasteel, +/area/mafia) +"O" = ( +/obj/effect/turf_decal/trimline/brown/filled/corner{ + icon_state = "trimline_corner_fill"; + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + icon_state = "trimline_fill"; + dir = 5 + }, +/turf/open/floor/plasteel, +/area/mafia) +"P" = ( +/obj/effect/turf_decal/trimline/brown/filled/end, +/turf/open/floor/plasteel, +/area/mafia) +"Q" = ( +/obj/effect/landmark/mafia, +/obj/effect/turf_decal/trimline/brown/filled/line{ + icon_state = "trimline_fill"; + dir = 9 + }, +/turf/open/floor/plasteel, +/area/mafia) +"R" = ( +/obj/effect/baseturf_helper/asteroid, +/obj/effect/landmark/mafia/town_center, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/mafia) +"S" = ( +/obj/effect/turf_decal/trimline/brown/filled/end{ + icon_state = "trimline_end_fill"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/mafia) +"T" = ( +/obj/effect/turf_decal/trimline/brown/filled/line, +/obj/effect/turf_decal/trimline/brown/filled/line{ + icon_state = "trimline_fill"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mafia) +"U" = ( +/obj/effect/turf_decal/trimline/brown/filled/line, +/obj/effect/turf_decal/trimline/brown/filled/corner{ + icon_state = "trimline_corner_fill"; + dir = 1 + }, +/turf/open/floor/plasteel, +/area/mafia) +"V" = ( +/obj/effect/turf_decal/trimline/brown/filled/line{ + icon_state = "trimline_fill"; + dir = 6 + }, +/turf/open/floor/plasteel, +/area/mafia) +"W" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/mafia) +"X" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/mafia) +"Y" = ( +/turf/closed/indestructible{ + icon = 'icons/turf/walls/reinforced_wall.dmi'; + icon_state = "r_wall"; + name = "reinforced wall" + }, +/area/mafia) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +a +"} +(3,1,1) = {" +a +Y +Y +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +Y +Y +a +"} +(4,1,1) = {" +a +Y +Y +c +g +h +d +d +d +d +d +e +d +d +d +d +d +h +k +c +Y +Y +a +"} +(5,1,1) = {" +a +Y +Y +c +h +d +d +e +Y +Y +j +Y +j +Y +Y +d +d +i +h +c +Y +Y +a +"} +(6,1,1) = {" +a +Y +Y +c +i +Y +Y +j +Y +l +q +Y +s +H +Y +j +Y +Y +d +c +Y +Y +a +"} +(7,1,1) = {" +a +Y +c +c +d +Y +r +M +p +m +q +p +w +A +p +q +l +Y +d +c +c +Y +a +"} +(8,1,1) = {" +a +Y +c +d +d +Y +L +N +Y +Y +q +Y +x +Y +Y +q +m +Y +d +d +c +Y +a +"} +(9,1,1) = {" +a +Y +c +d +Y +Y +p +O +P +p +q +p +y +p +q +q +p +Y +Y +d +c +Y +a +"} +(10,1,1) = {" +a +Y +c +d +Y +l +p +Y +p +p +p +p +p +p +p +Y +p +K +Y +d +c +Y +a +"} +(11,1,1) = {" +a +Y +c +d +j +m +q +q +q +p +q +u +q +p +B +C +C +J +j +e +c +Y +a +"} +(12,1,1) = {" +a +Y +c +e +Y +Y +p +Y +p +p +t +R +X +p +p +Y +p +Y +Y +d +c +Y +a +"} +(13,1,1) = {" +a +Y +c +d +j +n +C +C +P +p +q +W +q +p +q +q +q +m +j +d +c +Y +a +"} +(14,1,1) = {" +a +Y +c +d +Y +o +p +Y +p +p +p +p +p +p +p +Y +p +l +Y +i +c +Y +a +"} +(15,1,1) = {" +a +Y +c +d +Y +Y +p +q +q +p +S +p +q +p +B +D +p +Y +Y +d +c +Y +a +"} +(16,1,1) = {" +a +Y +c +f +d +Y +m +q +Y +Y +T +Y +q +Y +Y +E +G +Y +d +d +c +Y +a +"} +(17,1,1) = {" +a +Y +c +c +d +Y +l +q +p +Q +U +p +q +m +p +F +I +Y +d +c +c +Y +a +"} +(18,1,1) = {" +a +Y +Y +c +d +Y +Y +j +Y +z +V +Y +q +l +Y +j +Y +Y +d +c +Y +Y +a +"} +(19,1,1) = {" +a +Y +Y +c +h +i +d +d +Y +Y +j +Y +j +Y +Y +d +e +d +h +c +Y +Y +a +"} +(20,1,1) = {" +a +Y +Y +c +k +h +d +d +e +d +d +d +d +d +d +d +d +h +v +c +Y +Y +a +"} +(21,1,1) = {" +a +Y +Y +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +Y +Y +a +"} +(22,1,1) = {" +a +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +a +"} +(23,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/_maps/map_files/Mafia/mafia_reebe.dmm b/_maps/map_files/Mafia/mafia_reebe.dmm new file mode 100644 index 0000000000..e82174ff93 --- /dev/null +++ b/_maps/map_files/Mafia/mafia_reebe.dmm @@ -0,0 +1,658 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/indestructible/riveted, +/area/mafia) +"b" = ( +/turf/open/indestructible/reebe_void, +/area/mafia) +"c" = ( +/turf/open/indestructible/reebe_void/spawning/lattices, +/area/mafia) +"d" = ( +/obj/mafia_game_board, +/turf/open/indestructible/reebe_void/spawning/lattices, +/area/mafia) +"e" = ( +/turf/closed/wall/clockwork, +/area/mafia) +"f" = ( +/turf/open/floor/clockwork/reebe, +/area/mafia) +"g" = ( +/obj/effect/landmark/mafia, +/turf/open/floor/clockwork/reebe, +/area/mafia) +"h" = ( +/obj/structure/window/reinforced/clockwork/fulltile, +/obj/structure/grille/ratvar, +/obj/machinery/door/poddoor/preopen{ + desc = "When it's time to sleep, the lights will go out. Remember - no one in space can hear you scream."; + id = "mafia"; + max_integrity = 99999; + name = "Station Night Shutters" + }, +/turf/open/floor/clockwork/reebe, +/area/mafia) +"i" = ( +/obj/structure/bed, +/obj/item/bedsheet/orange, +/turf/open/floor/clockwork/reebe, +/area/mafia) +"j" = ( +/obj/structure/chair/brass{ + dir = 4 + }, +/turf/open/floor/clockwork/reebe, +/area/mafia) +"k" = ( +/obj/structure/chair/brass, +/turf/open/floor/clockwork/reebe, +/area/mafia) +"l" = ( +/obj/structure/chair/brass{ + dir = 8 + }, +/turf/open/floor/clockwork/reebe, +/area/mafia) +"m" = ( +/obj/effect/baseturf_helper/asteroid, +/obj/effect/landmark/mafia/town_center, +/obj/structure/chair/brass, +/turf/open/floor/clockwork/reebe, +/area/mafia) +"n" = ( +/obj/structure/chair/brass{ + icon_state = "brass_chair"; + dir = 1 + }, +/turf/open/floor/clockwork/reebe, +/area/mafia) +"o" = ( +/obj/item/toy/plush/plushvar, +/turf/open/floor/clockwork/reebe, +/area/mafia) +"p" = ( +/obj/structure/window/reinforced/clockwork/fulltile, +/obj/structure/grille/ratvar, +/turf/open/floor/clockwork/reebe, +/area/mafia) +"q" = ( +/obj/item/toy/plush/plushvar, +/turf/open/indestructible/reebe_void/spawning/lattices, +/area/mafia) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(3,1,1) = {" +a +b +b +c +c +c +b +b +b +b +b +b +b +b +b +b +b +c +c +c +b +b +a +"} +(4,1,1) = {" +a +b +b +c +d +c +b +b +b +b +b +b +b +b +b +b +b +q +d +c +b +b +a +"} +(5,1,1) = {" +a +b +b +c +c +c +c +b +e +e +p +e +p +e +e +b +b +c +c +c +b +b +a +"} +(6,1,1) = {" +a +b +b +b +b +p +p +e +e +i +f +e +f +i +e +e +p +p +c +b +b +b +a +"} +(7,1,1) = {" +a +b +b +b +b +p +i +f +h +g +f +h +f +g +h +f +i +p +b +b +b +b +a +"} +(8,1,1) = {" +a +b +b +b +b +e +g +f +e +e +f +e +f +e +e +f +g +e +b +b +b +b +a +"} +(9,1,1) = {" +a +b +b +b +e +e +h +f +j +h +j +h +j +h +j +f +h +e +e +b +b +b +a +"} +(10,1,1) = {" +a +b +b +b +e +i +h +e +h +h +h +h +h +h +h +e +h +i +e +b +b +b +a +"} +(11,1,1) = {" +a +b +b +b +p +g +f +f +k +h +f +f +o +h +n +f +f +g +p +b +b +b +a +"} +(12,1,1) = {" +a +b +b +b +e +e +h +e +h +h +f +m +f +h +h +e +h +e +e +b +b +b +a +"} +(13,1,1) = {" +a +b +b +b +p +g +f +f +k +h +f +f +f +h +n +f +f +g +p +b +b +b +a +"} +(14,1,1) = {" +a +b +b +b +e +i +h +e +h +h +h +h +h +h +h +e +h +i +e +b +b +b +a +"} +(15,1,1) = {" +a +b +b +b +e +e +h +f +l +h +l +h +l +h +l +f +h +e +e +b +b +b +a +"} +(16,1,1) = {" +a +b +b +b +b +e +g +f +e +e +f +e +f +e +e +f +g +e +b +b +b +b +a +"} +(17,1,1) = {" +a +b +b +b +b +p +i +f +h +g +f +h +f +g +h +f +i +p +b +b +b +b +a +"} +(18,1,1) = {" +a +b +b +b +b +p +p +e +e +f +i +e +i +f +e +e +p +p +c +b +b +b +a +"} +(19,1,1) = {" +a +b +b +c +c +c +c +b +e +e +p +e +p +e +e +b +b +c +c +c +b +b +a +"} +(20,1,1) = {" +a +b +b +c +d +c +b +b +b +b +b +b +b +b +b +b +b +c +d +c +b +b +a +"} +(21,1,1) = {" +a +b +b +c +c +c +b +b +b +b +b +b +b +b +b +b +b +c +c +c +b +b +a +"} +(22,1,1) = {" +a +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +b +a +"} +(23,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/_maps/map_files/Mafia/mafia_snow.dmm b/_maps/map_files/Mafia/mafia_snow.dmm new file mode 100644 index 0000000000..a47440f00e --- /dev/null +++ b/_maps/map_files/Mafia/mafia_snow.dmm @@ -0,0 +1,755 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/indestructible/riveted, +/area/mafia) +"d" = ( +/turf/open/floor/plating, +/area/mafia) +"e" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/mafia) +"f" = ( +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/mafia) +"g" = ( +/obj/mafia_game_board, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/mafia) +"h" = ( +/obj/structure/grille/indestructable, +/turf/open/floor/plating, +/area/mafia) +"i" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/mafia) +"j" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + max_integrity = 99999; + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plating, +/area/mafia) +"k" = ( +/obj/mafia_game_board, +/turf/open/floor/plating, +/area/mafia) +"l" = ( +/obj/item/bedsheet/brown, +/obj/structure/bed, +/turf/open/floor/holofloor/wood, +/area/mafia) +"m" = ( +/obj/effect/landmark/mafia, +/turf/open/floor/holofloor/wood, +/area/mafia) +"n" = ( +/obj/item/bedsheet/green, +/obj/structure/bed, +/turf/open/floor/holofloor/wood, +/area/mafia) +"o" = ( +/obj/item/bedsheet/blue, +/obj/structure/bed, +/turf/open/floor/holofloor/wood, +/area/mafia) +"p" = ( +/obj/machinery/door/poddoor/preopen{ + desc = "When it's time to sleep, the lights will go out. Remember - no one in space can hear you scream."; + id = "mafia"; + max_integrity = 99999; + name = "Station Night Shutters" + }, +/turf/closed/indestructible/fakeglass, +/area/mafia) +"q" = ( +/turf/open/floor/plasteel/dark, +/area/mafia) +"r" = ( +/turf/open/floor/plasteel, +/area/mafia) +"s" = ( +/turf/closed/wall/ice, +/area/mafia) +"t" = ( +/turf/open/floor/holofloor/snow, +/area/mafia) +"u" = ( +/obj/structure/statue/plasma/scientist{ + anchored = 1 + }, +/turf/open/floor/holofloor/snow, +/area/mafia) +"v" = ( +/obj/effect/baseturf_helper/asteroid, +/obj/effect/landmark/mafia/town_center, +/turf/open/floor/holofloor/snow, +/area/mafia) +"w" = ( +/turf/open/lava/plasma, +/area/mafia) +"x" = ( +/obj/machinery/door/airlock/external{ + max_integrity = 9999; + opacity = 0 + }, +/obj/machinery/door/poddoor/preopen{ + desc = "When it's time to sleep, the lights will go out. Remember - no one in space can hear you scream."; + id = "mafia"; + max_integrity = 99999; + name = "Station Night Shutters" + }, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plasteel/dark, +/area/mafia) +"y" = ( +/obj/effect/landmark/mafia, +/turf/open/floor/holofloor/snow, +/area/mafia) +"z" = ( +/obj/structure/lattice/catwalk, +/turf/open/lava/plasma, +/area/mafia) +"A" = ( +/obj/machinery/door/airlock/external{ + max_integrity = 9999 + }, +/obj/machinery/door/poddoor/preopen{ + desc = "When it's time to sleep, the lights will go out. Remember - no one in space can hear you scream."; + id = "mafia"; + max_integrity = 99999; + name = "Station Night Shutters" + }, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plasteel, +/area/mafia) +"B" = ( +/obj/effect/landmark/mafia, +/obj/structure/lattice/catwalk, +/turf/open/lava/plasma, +/area/mafia) +"C" = ( +/obj/mafia_game_board, +/turf/open/floor/holofloor/snow, +/area/mafia) +"D" = ( +/obj/structure/closet/crate/science, +/obj/item/clothing/suit/hooded/wintercoat, +/obj/item/clothing/shoes/winterboots, +/turf/open/floor/holofloor/snow, +/area/mafia) +"E" = ( +/obj/structure/lattice/catwalk, +/obj/structure/closet/crate/critter, +/obj/item/clothing/suit/hooded/wintercoat/miner, +/obj/item/clothing/shoes/winterboots, +/turf/open/lava/plasma, +/area/mafia) +"F" = ( +/turf/open/floor/holofloor/wood, +/area/mafia) +"G" = ( +/obj/item/bedsheet/orange, +/obj/structure/bed, +/turf/open/floor/holofloor/wood, +/area/mafia) +"H" = ( +/obj/item/bedsheet/black, +/obj/structure/bed, +/turf/open/floor/holofloor/wood, +/area/mafia) +"I" = ( +/obj/item/bedsheet/red, +/obj/structure/bed, +/turf/open/floor/holofloor/wood, +/area/mafia) +"J" = ( +/turf/open/floor/plating/snowed/smoothed, +/area/mafia) +"K" = ( +/turf/closed/indestructible/rock/snow, +/area/mafia) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +s +K +K +K +K +K +K +K +K +K +K +a +"} +(3,1,1) = {" +a +a +a +s +s +s +s +s +s +s +s +s +w +w +t +w +w +w +w +w +w +K +a +"} +(4,1,1) = {" +a +a +a +s +g +h +d +d +d +d +d +s +t +w +w +w +w +w +C +w +w +K +a +"} +(5,1,1) = {" +a +a +a +s +h +d +d +e +s +s +j +s +p +p +p +w +w +w +w +w +w +K +a +"} +(6,1,1) = {" +a +a +a +s +i +s +s +j +s +H +F +s +t +D +p +p +p +p +w +w +w +K +a +"} +(7,1,1) = {" +a +a +s +s +d +s +o +F +p +m +q +p +t +y +p +z +E +p +w +t +w +K +a +"} +(8,1,1) = {" +a +a +s +d +d +s +m +r +s +s +q +s +t +p +p +z +B +p +w +w +w +K +a +"} +(9,1,1) = {" +a +a +s +d +s +s +p +r +r +p +q +p +t +p +z +z +p +p +p +w +w +K +a +"} +(10,1,1) = {" +a +a +s +d +s +l +p +s +p +p +p +p +p +p +p +p +p +D +p +w +w +K +a +"} +(11,1,1) = {" +a +a +s +d +j +m +F +q +q +x +J +t +t +p +t +t +t +y +p +w +t +K +a +"} +(12,1,1) = {" +a +a +s +e +s +a +p +s +p +p +u +v +t +p +p +p +p +p +p +w +w +K +a +"} +(13,1,1) = {" +a +a +s +d +j +m +F +r +r +A +J +t +t +p +t +t +t +y +p +w +w +K +a +"} +(14,1,1) = {" +a +a +s +d +s +n +p +s +p +p +p +p +p +p +p +p +p +D +p +w +w +K +a +"} +(15,1,1) = {" +a +a +s +d +s +s +p +q +q +p +r +p +t +p +z +z +p +p +p +w +w +K +a +"} +(16,1,1) = {" +a +a +s +f +d +s +m +q +s +s +r +s +t +p +p +z +B +p +w +w +w +K +a +"} +(17,1,1) = {" +a +a +s +s +d +s +G +F +p +m +r +p +t +y +p +z +E +p +w +w +w +K +a +"} +(18,1,1) = {" +a +a +a +s +d +s +s +j +s +I +F +s +t +D +p +p +p +p +w +t +w +K +a +"} +(19,1,1) = {" +a +a +a +s +h +i +d +d +s +s +j +s +p +p +p +t +w +w +w +w +w +K +a +"} +(20,1,1) = {" +a +a +a +s +k +h +d +d +e +d +d +s +t +w +w +w +w +w +C +w +w +K +a +"} +(21,1,1) = {" +a +a +a +s +s +s +s +s +s +s +s +s +w +w +w +w +w +w +w +w +w +K +a +"} +(22,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +s +K +K +K +K +K +K +K +K +K +K +a +"} +(23,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/_maps/map_files/Mafia/mafia_spiderclan.dmm b/_maps/map_files/Mafia/mafia_spiderclan.dmm new file mode 100644 index 0000000000..89771212b8 --- /dev/null +++ b/_maps/map_files/Mafia/mafia_spiderclan.dmm @@ -0,0 +1,690 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/indestructible/riveted, +/area/mafia) +"b" = ( +/obj/structure/closet/cabinet{ + anchored = 1 + }, +/obj/item/reagent_containers/food/snacks/sashimi, +/turf/open/floor/carpet/black, +/area/mafia) +"c" = ( +/turf/closed/wall/rust, +/area/mafia) +"d" = ( +/turf/open/floor/plating, +/area/mafia) +"e" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/mafia) +"f" = ( +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/mafia) +"g" = ( +/obj/mafia_game_board, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/mafia) +"h" = ( +/obj/structure/grille/indestructable, +/turf/open/floor/plating, +/area/mafia) +"i" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/mafia) +"j" = ( +/turf/closed/wall/mineral/wood{ + desc = "A door that goes nowhere. How kafkaesque."; + icon = 'icons/obj/doors/mineral_doors.dmi'; + icon_state = "paperframe"; + name = "Door" + }, +/area/mafia) +"k" = ( +/obj/mafia_game_board, +/turf/open/floor/plating, +/area/mafia) +"m" = ( +/obj/effect/landmark/mafia, +/turf/open/floor/wood, +/area/mafia) +"n" = ( +/obj/effect/landmark/mafia, +/turf/open/floor/carpet/black, +/area/mafia) +"o" = ( +/obj/structure/closet/cabinet{ + anchored = 1 + }, +/obj/item/reagent_containers/food/snacks/sashimi, +/turf/open/floor/wood, +/area/mafia) +"p" = ( +/obj/machinery/door/poddoor/preopen{ + desc = "When it's time to sleep, the lights will go out. Remember - no one in space can hear you scream."; + id = "mafia"; + max_integrity = 99999; + name = "Station Night Shutters" + }, +/turf/closed/indestructible/fakeglass{ + icon = 'icons/obj/smooth_structures/paperframes.dmi'; + icon_state = "paper" + }, +/area/mafia) +"q" = ( +/turf/open/floor/wood, +/area/mafia) +"r" = ( +/turf/open/floor/carpet/black, +/area/mafia) +"t" = ( +/turf/open/floor/plating/beach/sand, +/area/mafia) +"u" = ( +/obj/effect/baseturf_helper/asteroid, +/obj/effect/landmark/mafia/town_center, +/turf/open/floor/plating/beach/sand, +/area/mafia) +"v" = ( +/obj/mafia_game_board, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/mafia) +"B" = ( +/obj/structure/showcase{ + density = 0; + desc = "Welp, only one way to recover your honour."; + icon = 'icons/obj/items_and_weapons.dmi'; + icon_state = "katana"; + name = "seppuku katana" + }, +/turf/open/floor/plating/beach/sand, +/area/mafia) +"S" = ( +/turf/closed/wall/mineral/wood, +/area/mafia) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +a +"} +(3,1,1) = {" +a +S +S +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +S +S +a +"} +(4,1,1) = {" +a +S +S +c +g +h +d +d +d +d +d +e +d +d +d +d +d +h +k +c +S +S +a +"} +(5,1,1) = {" +a +S +S +c +h +d +d +e +S +S +j +S +j +S +S +d +d +i +h +c +S +S +a +"} +(6,1,1) = {" +a +S +S +c +i +S +S +j +S +o +q +S +r +b +S +j +S +S +d +c +S +S +a +"} +(7,1,1) = {" +a +S +c +c +d +S +b +r +p +m +q +p +r +n +p +q +o +S +d +c +c +S +a +"} +(8,1,1) = {" +a +S +c +d +d +S +n +r +S +S +q +S +r +S +S +q +m +S +d +d +c +S +a +"} +(9,1,1) = {" +a +S +c +d +S +S +p +r +r +p +q +p +r +p +q +q +p +S +S +d +c +S +a +"} +(10,1,1) = {" +a +S +c +d +S +o +p +S +p +p +p +p +p +p +p +S +p +b +S +d +c +S +a +"} +(11,1,1) = {" +a +S +c +d +j +m +q +q +q +p +t +t +t +p +r +r +r +n +j +e +c +S +a +"} +(12,1,1) = {" +a +S +c +e +S +S +p +S +p +p +t +u +B +p +p +S +p +S +S +d +c +S +a +"} +(13,1,1) = {" +a +S +c +d +j +n +r +r +r +p +t +t +t +p +q +q +q +m +j +d +c +S +a +"} +(14,1,1) = {" +a +S +c +d +S +b +p +S +p +p +p +p +p +p +p +S +p +o +S +i +c +S +a +"} +(15,1,1) = {" +a +S +c +d +S +S +p +q +q +p +r +p +q +p +r +r +p +S +S +d +c +S +a +"} +(16,1,1) = {" +a +S +c +f +d +S +m +q +S +S +r +S +q +S +S +r +n +S +d +d +c +S +a +"} +(17,1,1) = {" +a +S +c +c +d +S +o +q +p +n +r +p +q +m +p +r +b +S +d +c +c +S +a +"} +(18,1,1) = {" +a +S +S +c +d +S +S +j +S +b +r +S +q +o +S +j +S +S +d +c +S +S +a +"} +(19,1,1) = {" +a +S +S +c +h +i +d +d +S +S +j +S +j +S +S +d +e +d +h +c +S +S +a +"} +(20,1,1) = {" +a +S +S +c +k +h +d +d +e +d +d +d +d +d +d +d +d +h +v +c +S +S +a +"} +(21,1,1) = {" +a +S +S +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +S +S +a +"} +(22,1,1) = {" +a +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +S +a +"} +(23,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/_maps/map_files/Mafia/mafia_syndie.dmm b/_maps/map_files/Mafia/mafia_syndie.dmm new file mode 100644 index 0000000000..d56c3cc0c6 --- /dev/null +++ b/_maps/map_files/Mafia/mafia_syndie.dmm @@ -0,0 +1,869 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/indestructible/riveted, +/area/mafia) +"b" = ( +/obj/structure/closet/syndicate{ + desc = "A storage closet for syndicate conflict resolution operatives."; + name = "red closet" + }, +/obj/item/clothing/under/syndicate/tacticool, +/obj/item/clothing/under/syndicate/tacticool/skirt, +/turf/open/floor/mineral/plastitanium, +/area/mafia) +"c" = ( +/turf/closed/wall/rust, +/area/mafia) +"d" = ( +/turf/open/floor/plating, +/area/mafia) +"e" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/mafia) +"f" = ( +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/mafia) +"g" = ( +/obj/mafia_game_board, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/mafia) +"h" = ( +/obj/structure/grille/indestructable, +/turf/open/floor/plating, +/area/mafia) +"i" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/mafia) +"j" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + max_integrity = 99999; + name = "Maintenance" + }, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plating, +/area/mafia) +"k" = ( +/obj/mafia_game_board, +/turf/open/floor/plating, +/area/mafia) +"l" = ( +/obj/structure/closet/syndicate{ + desc = "A storage closet for syndicate conflict resolution operatives."; + name = "red closet" + }, +/obj/item/clothing/under/syndicate/tacticool, +/obj/item/clothing/under/syndicate/tacticool/skirt, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/mafia) +"m" = ( +/obj/structure/closet/syndicate{ + desc = "A storage closet for syndicate conflict resolution operatives."; + name = "red closet" + }, +/obj/item/clothing/under/syndicate/tacticool, +/obj/item/clothing/under/syndicate/tacticool/skirt, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/mafia) +"n" = ( +/obj/effect/landmark/mafia, +/turf/open/floor/mineral/plastitanium, +/area/mafia) +"o" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/mafia) +"p" = ( +/obj/machinery/door/poddoor/preopen{ + desc = "When it's time to sleep, the lights will go out. Remember - no one in space can hear you scream."; + id = "mafia"; + max_integrity = 99999; + name = "Station Night Shutters" + }, +/obj/effect/spawner/structure/window/plastitanium, +/turf/open/space/basic, +/area/mafia) +"q" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/chair/office{ + dir = 1; + name = "tactical swivel chair" + }, +/turf/open/floor/plasteel/dark, +/area/mafia) +"r" = ( +/turf/open/floor/mineral/plastitanium, +/area/mafia) +"s" = ( +/turf/open/floor/mineral/plastitanium/red, +/area/mafia) +"t" = ( +/turf/open/floor/circuit/red, +/area/mafia) +"u" = ( +/obj/effect/baseturf_helper/asteroid, +/obj/effect/landmark/mafia/town_center, +/obj/structure/chair, +/turf/open/floor/circuit/red, +/area/mafia) +"v" = ( +/obj/mafia_game_board, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/mafia) +"w" = ( +/turf/closed/indestructible/syndicate, +/area/mafia) +"x" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/chair/office{ + dir = 4; + name = "tactical swivel chair" + }, +/turf/open/floor/plasteel/dark, +/area/mafia) +"y" = ( +/obj/structure/chair/office{ + dir = 2; + name = "tactical swivel chair" + }, +/turf/open/floor/mineral/plastitanium, +/area/mafia) +"z" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/chair/office{ + dir = 2; + name = "tactical swivel chair" + }, +/turf/open/floor/plasteel/dark, +/area/mafia) +"A" = ( +/obj/structure/chair/office{ + dir = 8; + name = "tactical swivel chair" + }, +/turf/open/floor/mineral/plastitanium, +/area/mafia) +"B" = ( +/obj/structure/chair/office{ + dir = 4; + name = "tactical swivel chair" + }, +/turf/open/floor/mineral/plastitanium, +/area/mafia) +"C" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/chair/office{ + dir = 8; + name = "tactical swivel chair" + }, +/turf/open/floor/plasteel/dark, +/area/mafia) +"E" = ( +/obj/structure/chair/office{ + dir = 1; + name = "tactical swivel chair" + }, +/turf/open/floor/mineral/plastitanium, +/area/mafia) +"F" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/closet/syndicate{ + desc = "A storage closet for syndicate conflict resolution operatives."; + name = "red closet" + }, +/obj/item/clothing/under/syndicate/tacticool, +/obj/item/clothing/under/syndicate/tacticool/skirt, +/turf/open/floor/plasteel/dark, +/area/mafia) +"G" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/clothing/under/syndicate/tacticool, +/obj/structure/closet/syndicate{ + desc = "A storage closet for syndicate conflict resolution operatives."; + name = "red closet" + }, +/obj/item/clothing/under/syndicate/tacticool/skirt, +/turf/open/floor/plasteel/dark, +/area/mafia) +"H" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/landmark/mafia, +/turf/open/floor/plasteel/dark, +/area/mafia) + +(1,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} +(2,1,1) = {" +a +w +w +w +w +w +w +w +w +w +w +w +w +w +w +w +w +w +w +w +w +w +a +"} +(3,1,1) = {" +a +w +w +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +w +w +a +"} +(4,1,1) = {" +a +w +w +c +g +h +d +d +d +d +d +e +d +d +d +d +d +h +k +c +w +w +a +"} +(5,1,1) = {" +a +w +w +c +h +d +d +e +w +w +j +w +j +w +w +d +d +i +h +c +w +w +a +"} +(6,1,1) = {" +a +w +w +c +i +w +w +j +w +b +r +w +o +F +w +j +w +w +d +c +w +w +a +"} +(7,1,1) = {" +a +w +c +c +d +w +l +o +p +n +r +p +o +H +p +r +b +w +d +c +c +w +a +"} +(8,1,1) = {" +a +w +c +d +d +w +H +o +w +w +r +w +o +w +w +r +n +w +d +d +c +w +a +"} +(9,1,1) = {" +a +w +c +d +w +w +p +o +x +p +B +p +x +p +B +r +p +w +w +d +c +w +a +"} +(10,1,1) = {" +a +w +c +d +w +b +p +w +p +p +p +p +p +p +p +w +p +m +w +d +c +w +a +"} +(11,1,1) = {" +a +w +c +d +j +n +r +r +y +p +s +t +s +p +q +o +o +H +j +e +c +w +a +"} +(12,1,1) = {" +a +w +c +e +w +w +p +w +p +p +t +u +t +p +p +w +p +w +w +d +c +w +a +"} +(13,1,1) = {" +a +w +c +d +j +H +o +o +z +p +s +t +s +p +E +r +r +n +j +d +c +w +a +"} +(14,1,1) = {" +a +w +c +d +w +l +p +w +p +p +p +p +p +p +p +w +p +b +w +i +c +w +a +"} +(15,1,1) = {" +a +w +c +d +w +w +p +r +A +p +C +p +A +p +C +o +p +w +w +d +c +w +a +"} +(16,1,1) = {" +a +w +c +f +d +w +n +r +w +w +o +w +r +w +w +o +H +w +d +d +c +w +a +"} +(17,1,1) = {" +a +w +c +c +d +w +b +r +p +H +o +p +r +n +p +o +G +w +d +c +c +w +a +"} +(18,1,1) = {" +a +w +w +c +d +w +w +j +w +F +o +w +r +b +w +j +w +w +d +c +w +w +a +"} +(19,1,1) = {" +a +w +w +c +h +i +d +d +w +w +j +w +j +w +w +d +e +d +h +c +w +w +a +"} +(20,1,1) = {" +a +w +w +c +k +h +d +d +e +d +d +d +d +d +d +d +d +h +v +c +w +w +a +"} +(21,1,1) = {" +a +w +w +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +w +w +a +"} +(22,1,1) = {" +a +w +w +w +w +w +w +w +w +w +w +w +w +w +w +w +w +w +w +w +w +w +a +"} +(23,1,1) = {" +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +a +"} diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 6415c984bf..16659f3e7a 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -10324,6 +10324,7 @@ /turf/open/floor/carpet, /area/crew_quarters/dorms) "atd" = ( +/mob/living/simple_animal/opossum, /turf/open/floor/plating{ icon_state = "panelscorched" }, @@ -82149,6 +82150,16 @@ /obj/structure/grille, /turf/open/floor/plating, /area/maintenance/port/aft) +"pbc" = ( +/obj/structure/light_construct/small{ + dir = 4 + }, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 30 + }, +/mob/living/simple_animal/opossum/poppy, +/turf/open/floor/wood, +/area/maintenance/port/aft) "pbF" = ( /obj/machinery/portable_atmospherics/canister, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ @@ -100175,7 +100186,7 @@ csT dux cxQ ckS -cmi +pbc cnk ckP cmi diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index f3b1b2afb6..e07873089a 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -41988,6 +41988,16 @@ }, /turf/open/floor/plasteel, /area/hydroponics) +"saI" = ( +/obj/structure/cable/white{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/mob/living/simple_animal/opossum, +/turf/open/floor/plating, +/area/maintenance/starboard) "scn" = ( /obj/structure/cable{ icon_state = "4-8" @@ -45205,6 +45215,10 @@ /obj/effect/landmark/carpspawn, /turf/open/space, /area/space/station_ruins) +"uXV" = ( +/mob/living/simple_animal/opossum/poppy, +/turf/open/floor/wood, +/area/maintenance/port/aft) "ver" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 10 @@ -79446,7 +79460,7 @@ aFM aOH aOT aPV -aRm +uXV aSI aRC aKm @@ -92526,7 +92540,7 @@ aSD aRz aRz aRz -sGY +saI aRz sIb bsD diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 5cb4f044ae..e6f14badd9 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -54046,6 +54046,20 @@ }, /turf/open/floor/plasteel, /area/construction/mining/aux_base) +"fgS" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/mob/living/simple_animal/opossum/poppy, +/turf/open/floor/plasteel/dark, +/area/maintenance/department/engine) "fhM" = ( /obj/item/storage/secure/safe{ pixel_x = -22 @@ -58645,6 +58659,10 @@ "pyw" = ( /turf/open/space/basic, /area/hallway/secondary/entry) +"pzF" = ( +/mob/living/simple_animal/opossum, +/turf/open/floor/wood, +/area/maintenance/department/crew_quarters/dorms) "pBD" = ( /obj/structure/cable{ icon_state = "0-8" @@ -83454,7 +83472,7 @@ bHP bJb bJb bJb -bJb +fgS bJb bJb bPp @@ -99823,7 +99841,7 @@ akh alc alR amF -alb +pzF alb anm ajv diff --git a/_maps/map_files/Snaxi/Snaxi.dmm b/_maps/map_files/Snaxi/Snaxi.dmm index 43e7915ca4..45e6e4dee0 100644 --- a/_maps/map_files/Snaxi/Snaxi.dmm +++ b/_maps/map_files/Snaxi/Snaxi.dmm @@ -210,7 +210,8 @@ "aap" = ( /obj/machinery/quantumpad{ map_pad_id = "5"; - map_pad_link_id = "6" + map_pad_link_id = "6"; + name = "South Sector Pad" }, /obj/structure/sign/directions/evac{ pixel_y = 40 @@ -221,6 +222,13 @@ /obj/structure/sign/directions/command{ pixel_y = 24 }, +/obj/structure/sign/directions/science{ + dir = 8; + icon_state = "pad_s"; + layer = 4.1; + name = "south sector"; + pixel_y = 13 + }, /turf/open/floor/plasteel, /area/hallway/primary/aft) "aaq" = ( @@ -519,7 +527,8 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/quantumpad{ map_pad_id = "1"; - map_pad_link_id = "2" + map_pad_link_id = "2"; + name = "Northwest Sector Pad" }, /obj/structure/sign/directions/medical{ dir = 8; @@ -531,6 +540,13 @@ icon_state = "direction_sci"; pixel_y = 28 }, +/obj/structure/sign/directions/science{ + dir = 8; + icon_state = "pad_nw"; + layer = 4.1; + name = "northwest sector"; + pixel_y = 13 + }, /turf/open/floor/plasteel, /area/quartermaster/miningdock) "aaO" = ( @@ -730,13 +746,12 @@ /obj/machinery/light{ dir = 4 }, -/obj/structure/reagent_dispensers/watertank, -/obj/item/radio/intercom{ - pixel_y = -26 - }, /obj/structure/sign/departments/xenobio{ pixel_x = 32 }, +/obj/structure/closet/bombcloset{ + anchored = 1 + }, /turf/open/floor/plasteel/white, /area/science/misc_lab) "abi" = ( @@ -1242,11 +1257,8 @@ /turf/open/floor/plasteel/dark, /area/security/main) "acb" = ( -/obj/structure/sign/poster/official/science{ - pixel_y = -32 - }, -/turf/open/floor/plasteel/white, -/area/science/mixing) +/turf/open/floor/plasteel/dark, +/area/hydroponics) "acc" = ( /obj/structure/sign/poster/contraband/lusty_xenomorph{ pixel_x = -32; @@ -1640,8 +1652,8 @@ "aiS" = ( /obj/structure/closet/secure_closet/CMO, /obj/machinery/keycard_auth{ - pixel_y = 4; - pixel_x = -24 + pixel_x = -24; + pixel_y = 4 }, /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -3147,8 +3159,8 @@ dir = 4 }, /obj/machinery/conveyor{ - id = "packageSort2"; - dir = 1 + dir = 1; + id = "packageSort2" }, /obj/machinery/disposal/deliveryChute, /obj/structure/window/reinforced{ @@ -4061,9 +4073,9 @@ /area/crew_quarters/dorms) "aNS" = ( /obj/machinery/turnstile{ + dir = 4; name = "Genpop Entrance Turnstile"; - req_access_txt = "69"; - dir = 4 + req_access_txt = "69" }, /obj/machinery/door/poddoor/preopen{ id = "permacell1"; @@ -4554,9 +4566,9 @@ /area/maintenance/solars/port/fore) "bcc" = ( /obj/machinery/door/window/brigdoor/security/cell{ + dir = 1; id = "Cell 2"; - name = "Cell 2"; - dir = 1 + name = "Cell 2" }, /obj/effect/turf_decal/vg_decals/numbers/two, /obj/machinery/door/poddoor/preopen{ @@ -5031,9 +5043,9 @@ "brE" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/machinery/door/window/southleft{ + dir = 1; name = "Court Cell"; - req_access_txt = "2"; - dir = 1 + req_access_txt = "2" }, /obj/structure/window/reinforced{ dir = 8 @@ -5169,7 +5181,7 @@ /turf/open/floor/plasteel/dark, /area/hallway/secondary/exit/departure_lounge) "bum" = ( -/turf/open/openspace/icemoon, +/turf/open/transparent/openspace/icemoon, /area/icemoon/surface/outdoors) "buF" = ( /obj/machinery/light, @@ -5209,7 +5221,15 @@ "buO" = ( /obj/machinery/quantumpad{ map_pad_id = "3"; - map_pad_link_id = "4" + map_pad_link_id = "4"; + name = "Northeast Sector Pad" + }, +/obj/structure/sign/directions/science{ + dir = 8; + icon_state = "pad_ne"; + layer = 4.1; + name = "northeast sector"; + pixel_y = 13 }, /turf/open/floor/plasteel, /area/hallway/primary/port) @@ -5284,9 +5304,9 @@ dir = 1 }, /obj/machinery/turnstile{ + dir = 4; name = "Genpop Entrance Turnstile"; - req_access_txt = "69"; - dir = 4 + req_access_txt = "69" }, /turf/open/floor/plasteel/dark, /area/security/brig) @@ -6957,9 +6977,9 @@ name = "west facing firelock" }, /obj/machinery/door/window/southleft{ + dir = 8; name = "Test Chamber"; - req_access_txt = "55"; - dir = 8 + req_access_txt = "55" }, /obj/machinery/door/poddoor/preopen{ id = "xenobio2"; @@ -6975,9 +6995,9 @@ dir = 10 }, /obj/machinery/door/window/southleft{ + dir = 4; name = "Test Chamber"; - req_access_txt = "55"; - dir = 4 + req_access_txt = "55" }, /turf/open/floor/plasteel, /area/science/xenobiology) @@ -7072,9 +7092,9 @@ dir = 4 }, /obj/machinery/door/window/brigdoor{ + dir = 1; name = "Reception Desk"; - req_access_txt = "63"; - dir = 1 + req_access_txt = "63" }, /obj/machinery/door/window/brigdoor{ dir = 8; @@ -7186,9 +7206,6 @@ dir = 5 }, /obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/firealarm{ - pixel_y = 24 - }, /turf/open/floor/plasteel, /area/science/mixing) "bKO" = ( @@ -7475,8 +7492,8 @@ }, /obj/structure/table/wood, /obj/machinery/recharger{ - pixel_y = 4; - pixel_x = -7 + pixel_x = -7; + pixel_y = 4 }, /obj/item/book/manual/wiki/security_space_law{ pixel_x = 6; @@ -8958,7 +8975,15 @@ "cpC" = ( /obj/machinery/quantumpad{ map_pad_id = "2"; - map_pad_link_id = "1" + map_pad_link_id = "1"; + name = "South Sector Pad" + }, +/obj/structure/sign/directions/science{ + dir = 8; + icon_state = "pad_s"; + layer = 4.1; + name = "south sector"; + pixel_y = 13 }, /turf/open/floor/plasteel, /area/hallway/primary/port) @@ -9296,8 +9321,8 @@ }, /obj/machinery/camera{ c_tag = "Medbay West"; - network = list("ss13","medbay"); - dir = 4 + dir = 4; + network = list("ss13","medbay") }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) @@ -9414,9 +9439,9 @@ req_access_txt = "10" }, /obj/machinery/door/window/northright{ + dir = 4; name = "Engineering Delivery"; - req_access_txt = "10"; - dir = 4 + req_access_txt = "10" }, /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/dark, @@ -9818,7 +9843,15 @@ "cQa" = ( /obj/machinery/quantumpad{ map_pad_id = "6"; - map_pad_link_id = "5" + map_pad_link_id = "5"; + name = "Northeast Sector Pad" + }, +/obj/structure/sign/directions/science{ + dir = 8; + icon_state = "pad_ne"; + layer = 4.1; + name = "northeast sector"; + pixel_y = 13 }, /turf/open/floor/plasteel, /area/quartermaster/miningdock) @@ -10387,8 +10420,8 @@ dir = 4 }, /obj/machinery/shower{ - pixel_y = 20; - pixel_x = 11 + pixel_x = 11; + pixel_y = 20 }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -10760,8 +10793,8 @@ /obj/structure/table/wood, /obj/item/book/manual/wiki/security_space_law, /obj/item/flashlight/lamp/green{ - pixel_y = 1; - pixel_x = -7 + pixel_x = -7; + pixel_y = 1 }, /turf/open/floor/wood, /area/security/courtroom) @@ -11054,6 +11087,13 @@ "dAV" = ( /turf/closed/wall/r_wall, /area/ai_monitored/turret_protected/ai_upload_foyer) +"dBA" = ( +/obj/machinery/portable_atmospherics/pump, +/obj/item/radio/intercom{ + pixel_y = -26 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) "dBL" = ( /obj/structure/closet/secure_closet/medical1, /obj/structure/extinguisher_cabinet{ @@ -11207,9 +11247,9 @@ dir = 4 }, /obj/machinery/turnstile{ + dir = 8; name = "Genpop Exit Turnstile"; - req_access_txt = "70"; - dir = 8 + req_access_txt = "70" }, /turf/open/floor/plasteel/dark, /area/security/brig) @@ -12173,8 +12213,8 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/button/flasher{ id = "PCell 1"; - pixel_y = 9; - pixel_x = -37 + pixel_x = -37; + pixel_y = 9 }, /turf/open/floor/plasteel/dark, /area/security/brig) @@ -12356,9 +12396,9 @@ dir = 4 }, /obj/machinery/turnstile{ + dir = 8; name = "Genpop Exit Turnstile"; - req_access_txt = "70"; - dir = 8 + req_access_txt = "70" }, /obj/effect/turf_decal/tile/red{ dir = 1 @@ -12388,7 +12428,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/port) "esY" = ( -/turf/open/openspace/icemoon, +/turf/open/transparent/openspace/icemoon, /area/engine/atmos) "ets" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -13510,9 +13550,9 @@ icon_state = "1-4" }, /obj/machinery/door/window/brigdoor/security/cell{ + dir = 8; id = "Cell 1"; - name = "Cell 1"; - dir = 8 + name = "Cell 1" }, /obj/effect/turf_decal/vg_decals/numbers/one, /obj/machinery/door/poddoor/preopen{ @@ -13766,7 +13806,6 @@ dir = 4; pixel_x = -24 }, -/obj/structure/closet/crate/bin, /turf/open/floor/plasteel/white, /area/science/misc_lab) "fjS" = ( @@ -14345,8 +14384,8 @@ name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 24; - specialfunctions = 4; - pixel_y = -5 + pixel_y = -5; + specialfunctions = 4 }, /obj/machinery/light/small{ dir = 8 @@ -14836,8 +14875,8 @@ /obj/structure/table/wood, /obj/item/book/manual/wiki/security_space_law, /obj/item/flashlight/lamp/green{ - pixel_y = 1; - pixel_x = -7 + pixel_x = -7; + pixel_y = 1 }, /turf/open/floor/wood, /area/security/courtroom) @@ -15167,7 +15206,15 @@ "gct" = ( /obj/machinery/quantumpad{ map_pad_id = "4"; - map_pad_link_id = "3" + map_pad_link_id = "3"; + name = "Northwest Sector Pad" + }, +/obj/structure/sign/directions/science{ + dir = 8; + icon_state = "pad_nw"; + layer = 4.1; + name = "northwest sector"; + pixel_y = 13 }, /turf/open/floor/plasteel, /area/hallway/primary/aft) @@ -15538,9 +15585,9 @@ /obj/machinery/button/door{ id = "Secure Gate"; name = "Cell Shutters"; + pixel_x = 3; pixel_y = 24; - req_access_txt = "2"; - pixel_x = 3 + req_access_txt = "2" }, /turf/open/floor/plasteel/dark, /area/security/brig) @@ -15934,8 +15981,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, -/obj/machinery/portable_atmospherics/scrubber, -/obj/item/storage/firstaid/toxin, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -16444,6 +16489,9 @@ /area/storage/atmos) "gPE" = ( /obj/machinery/portable_atmospherics/pump, +/obj/machinery/firealarm{ + pixel_y = 24 + }, /turf/open/floor/plasteel/white, /area/science/mixing) "gPF" = ( @@ -16835,9 +16883,9 @@ /obj/machinery/button/door{ id = "kitchen"; name = "Kitchen Shutters Control"; - req_access_txt = "28"; pixel_x = 24; - pixel_y = -4 + pixel_y = -4; + req_access_txt = "28" }, /turf/open/floor/plasteel/cafeteria, /area/crew_quarters/kitchen) @@ -17096,8 +17144,8 @@ dir = 8 }, /obj/machinery/computer/monitor{ - name = "bridge power monitoring console"; - dir = 1 + dir = 1; + name = "bridge power monitoring console" }, /obj/structure/cable{ icon_state = "0-2" @@ -17235,8 +17283,8 @@ /obj/item/folder/blue, /obj/item/stamp/law, /obj/item/flashlight/lamp/green{ - pixel_y = 1; - pixel_x = -7 + pixel_x = -7; + pixel_y = 1 }, /turf/open/floor/plasteel/cult, /area/lawoffice) @@ -18346,9 +18394,8 @@ /turf/open/floor/carpet, /area/security/detectives_office) "hTL" = ( -/obj/effect/spawner/structure/window/plasma/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, +/turf/open/floor/plasteel/white, /area/science/mixing) "hTO" = ( /obj/structure/cable{ @@ -18426,9 +18473,9 @@ /area/engine/engineering) "hVH" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ + dir = 1; external_pressure_bound = 120; - name = "killroom vent"; - dir = 1 + name = "killroom vent" }, /turf/open/floor/circuit/telecomms, /area/science/xenobiology) @@ -18466,8 +18513,8 @@ }, /obj/machinery/camera{ c_tag = "Surgery Observation"; - network = list("ss13","medbay"); - dir = 8 + dir = 8; + network = list("ss13","medbay") }, /turf/open/floor/plasteel/dark, /area/medical/surgery) @@ -18616,8 +18663,8 @@ /area/security/main) "iam" = ( /obj/machinery/computer/slot_machine{ - pixel_y = 2; - pixel_x = -7 + pixel_x = -7; + pixel_y = 2 }, /turf/open/floor/wood, /area/maintenance/bar) @@ -18912,6 +18959,10 @@ }, /turf/open/floor/plasteel, /area/storage/primary) +"ihL" = ( +/mob/living/simple_animal/opossum, +/turf/open/floor/plating, +/area/maintenance/aft/secondary) "ihX" = ( /obj/structure/cable{ icon_state = "0-2" @@ -19807,8 +19858,8 @@ /obj/machinery/button/door{ id = "hos"; name = "HoS Office Shutters"; - pixel_y = -26; - pixel_x = -6 + pixel_x = -6; + pixel_y = -26 }, /turf/open/floor/carpet, /area/crew_quarters/heads/hos) @@ -21383,8 +21434,8 @@ pixel_y = -22 }, /obj/machinery/button/door/incinerator_vent_toxmix{ - pixel_y = -22; - pixel_x = 9 + pixel_x = 9; + pixel_y = -22 }, /obj/machinery/meter, /turf/open/floor/plasteel/white, @@ -22642,6 +22693,8 @@ c_tag = "Testing Lab East"; network = list("ss13","rd") }, +/obj/machinery/portable_atmospherics/scrubber, +/obj/item/storage/firstaid/toxin, /turf/open/floor/plasteel/white, /area/science/misc_lab) "kxI" = ( @@ -24053,6 +24106,10 @@ "luo" = ( /turf/open/floor/plasteel/white, /area/science/misc_lab) +"lwl" = ( +/mob/living/simple_animal/opossum/poppy, +/turf/open/floor/plating, +/area/engine/engineering) "lwH" = ( /obj/structure/cable{ icon_state = "1-4" @@ -24577,8 +24634,8 @@ "lMF" = ( /obj/machinery/camera{ c_tag = "Virology Module"; - network = list("ss13","medbay"); - dir = 1 + dir = 1; + network = list("ss13","medbay") }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -26012,8 +26069,8 @@ /obj/machinery/button/door{ id = "engsm"; name = "Radiation Shutters Control"; - req_access_txt = "10"; - pixel_y = 25 + pixel_y = 25; + req_access_txt = "10" }, /obj/machinery/atmospherics/pipe/manifold/cyan/visible, /obj/effect/turf_decal/stripes/line{ @@ -26159,9 +26216,9 @@ dir = 4 }, /obj/machinery/turnstile{ + dir = 8; name = "Genpop Exit Turnstile"; - req_access_txt = "70"; - dir = 8 + req_access_txt = "70" }, /obj/structure/cable{ icon_state = "4-8" @@ -27616,8 +27673,8 @@ /area/bridge) "nFM" = ( /obj/machinery/atmospherics/components/binary/pump{ - name = "Port Mix to Engine"; - dir = 1 + dir = 1; + name = "Port Mix to Engine" }, /turf/open/floor/plasteel, /area/engine/atmos) @@ -27738,9 +27795,9 @@ "nJI" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/southleft{ + dir = 4; name = "Reception Desk"; - req_access_txt = "63"; - dir = 4 + req_access_txt = "63" }, /obj/structure/cable{ icon_state = "1-2" @@ -27989,8 +28046,8 @@ /area/engine/engineering) "nSX" = ( /obj/machinery/atmospherics/components/binary/pump/on{ - name = "Gas to Cooling Loop"; - dir = 1 + dir = 1; + name = "Gas to Cooling Loop" }, /turf/open/floor/plating, /area/engine/atmospherics_engine) @@ -28291,6 +28348,12 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/maintenance/starboard) +"odf" = ( +/obj/structure/closet/bombcloset{ + anchored = 1 + }, +/turf/open/floor/plasteel/white, +/area/science/mixing) "odg" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 4 @@ -30136,8 +30199,8 @@ /area/quartermaster/storage) "pfb" = ( /obj/machinery/atmospherics/components/binary/pump/on{ - name = "Gas to Cooling Loop"; - dir = 1 + dir = 1; + name = "Gas to Cooling Loop" }, /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -30845,10 +30908,10 @@ /area/ai_monitored/security/armory) "pvY" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1; external_pressure_bound = 140; name = "killroom vent"; - pressure_checks = 0; - dir = 1 + pressure_checks = 0 }, /turf/open/floor/circuit/telecomms, /area/science/xenobiology) @@ -31385,9 +31448,9 @@ dir = 4 }, /obj/machinery/turnstile{ + dir = 8; name = "Genpop Exit Turnstile"; - req_access_txt = "70"; - dir = 8 + req_access_txt = "70" }, /obj/machinery/door/firedoor/border_only{ dir = 8; @@ -32565,8 +32628,8 @@ }, /obj/machinery/button/ignition{ id = "testigniter"; - pixel_y = -30; - pixel_x = -1 + pixel_x = -1; + pixel_y = -30 }, /obj/structure/disposalpipe/trunk{ dir = 1 @@ -32750,9 +32813,9 @@ /area/maintenance/bar) "qEz" = ( /obj/machinery/door/window/brigdoor/security/cell{ + dir = 1; id = "Cell 3"; - name = "Cell 3"; - dir = 1 + name = "Cell 3" }, /obj/effect/turf_decal/vg_decals/numbers/three, /obj/machinery/door/poddoor/preopen{ @@ -33684,8 +33747,8 @@ "rgQ" = ( /obj/machinery/camera{ c_tag = "Xenobiology Test Chamber"; - network = list("xeno","rd"); - dir = 4 + dir = 4; + network = list("xeno","rd") }, /turf/open/floor/engine, /area/science/xenobiology) @@ -34106,7 +34169,6 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plasteel/white, /area/science/misc_lab) "rqE" = ( @@ -34451,8 +34513,8 @@ }, /obj/machinery/camera{ c_tag = "AI Chamber - Core"; - network = list("aicore"); - dir = 4 + dir = 4; + network = list("aicore") }, /turf/open/floor/circuit/off, /area/ai_monitored/turret_protected/ai) @@ -34542,9 +34604,9 @@ dir = 4 }, /obj/machinery/turnstile{ + dir = 8; name = "Genpop Exit Turnstile"; - req_access_txt = "70"; - dir = 8 + req_access_txt = "70" }, /obj/machinery/door/firedoor/border_only{ dir = 4; @@ -34779,6 +34841,10 @@ }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) +"rQB" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/white, +/area/science/mixing) "rQH" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -34883,7 +34949,7 @@ /turf/open/floor/plasteel, /area/engine/engineering) "rUd" = ( -/turf/open/openspace/icemoon, +/turf/open/transparent/openspace/icemoon, /area/science/mixing) "rUl" = ( /obj/structure/cable{ @@ -36330,7 +36396,7 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "sTq" = ( -/turf/open/openspace/icemoon, +/turf/open/transparent/openspace/icemoon, /area/engine/atmospherics_engine) "sTz" = ( /obj/effect/turf_decal/bot_white, @@ -37650,7 +37716,6 @@ /area/icemoon/surface/outdoors) "tDO" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/portable_atmospherics/canister/toxins, /obj/machinery/computer/security/telescreen{ name = "Test Chamber Monitor"; network = list("test"); @@ -37770,8 +37835,8 @@ }, /obj/machinery/camera{ c_tag = "Genetics Research"; - network = list("ss13","medbay"); - dir = 8 + dir = 8; + network = list("ss13","medbay") }, /turf/open/floor/plasteel/white, /area/medical/genetics) @@ -37932,9 +37997,9 @@ /obj/machinery/button/door{ id = "Secure Brig Control"; name = "Brig Control Shutters"; + pixel_x = -6; pixel_y = -3; - req_access_txt = "2"; - pixel_x = -6 + req_access_txt = "2" }, /turf/open/floor/plasteel/dark, /area/security/warden) @@ -39014,8 +39079,8 @@ "uuY" = ( /obj/machinery/camera{ c_tag = "Toxins Lab West"; - network = list("ss13","rd"); - dir = 4 + dir = 4; + network = list("ss13","rd") }, /obj/structure/table/reinforced, /obj/item/assembly/prox_sensor{ @@ -39406,9 +39471,9 @@ pixel_y = 23 }, /obj/machinery/door/window/southright{ + dir = 8; name = "Bar Door"; - req_one_access_txt = "25;28"; - dir = 8 + req_one_access_txt = "25;28" }, /obj/machinery/door/firedoor/border_only{ dir = 8; @@ -39560,8 +39625,8 @@ dir = 4 }, /obj/machinery/computer/security/telescreen/prison{ - pixel_x = 29; - dir = 8 + dir = 8; + pixel_x = 29 }, /turf/open/floor/plasteel/cult, /area/lawoffice) @@ -39968,8 +40033,8 @@ dir = 8 }, /obj/structure/chair{ - name = "Judge"; - dir = 4 + dir = 4; + name = "Judge" }, /turf/open/floor/wood, /area/security/courtroom) @@ -40683,8 +40748,8 @@ }, /obj/machinery/button/ignition{ id = "Incinerator"; - pixel_y = 35; - pixel_x = -1 + pixel_x = -1; + pixel_y = 35 }, /turf/open/floor/plasteel, /area/engine/atmospherics_engine) @@ -42591,8 +42656,8 @@ "wtt" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp/green{ - pixel_y = 13; - pixel_x = -7 + pixel_x = -7; + pixel_y = 13 }, /obj/item/camera/detective, /obj/item/hand_labeler{ @@ -42600,8 +42665,8 @@ }, /obj/item/storage/briefcase, /obj/item/storage/secure/safe{ - pixel_y = 36; - pixel_x = 6 + pixel_x = 6; + pixel_y = 36 }, /turf/open/floor/carpet, /area/security/detectives_office) @@ -44647,8 +44712,8 @@ areastring = "/area/engine/engineering"; dir = 8; name = "Engineering APC"; - pixel_y = -1; - pixel_x = -27 + pixel_x = -27; + pixel_y = -1 }, /obj/machinery/firealarm{ dir = 1; @@ -45207,14 +45272,6 @@ /area/medical/medbay/central) "ykk" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/firedoor/border_only{ - dir = 1; - name = "north facing firelock" - }, -/obj/machinery/door/airlock/research{ - name = "Toxins Lab"; - req_access_txt = "7" - }, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/white, /area/science/mixing) @@ -81146,7 +81203,7 @@ bDW bEl bDE bFK -bJC +rQB prL fiN hmX @@ -81403,7 +81460,7 @@ bDW bIn bQP wOK -bJC +fjU gzZ gSu ipY @@ -82174,7 +82231,7 @@ bDW mOv jOB lYy -bJC +fjU ihE fJO eex @@ -82431,7 +82488,7 @@ bDW gpp wbT nHi -bJC +fjU rDA fjU dvO @@ -82688,7 +82745,7 @@ bEa kxj aaw rqx -qJV +fjU bKL fJO jKT @@ -82945,10 +83002,10 @@ bEa pHl aaw abh -qJV +odf +fjU fjU fjU -acb qJV fuG qJV @@ -83205,7 +83262,7 @@ cBt tRe gPE syy -gPE +dBA qJV goM gxF @@ -83466,7 +83523,7 @@ tRe tRe tRe bWf -bVa +ihL kXG sqx owj @@ -86968,7 +87025,7 @@ now mKv sAh sAh -sAh +acb aar uEz uEz @@ -87225,7 +87282,7 @@ qss mKv sAh sAh -sAh +acb urI qkO uEz @@ -87739,7 +87796,7 @@ qss sYv sAh sAh -sAh +acb urI uoV uEz @@ -87996,7 +88053,7 @@ qss sYv sAh sAh -sAh +acb urI uoV uEz @@ -98024,7 +98081,7 @@ xUL xUL dKF ijZ -ijZ +lwl bnU oJa cNE @@ -100071,11 +100128,11 @@ xUL xUL xUL xUL -xUL -xUL -xUL rGc jls +rGc +cly +jls odg ucC gUL @@ -100327,12 +100384,12 @@ bum bum bum bum -bum -bum -bum rGc tdX tdX +tdX +cly +tdX jPj ucC gUL @@ -100584,12 +100641,12 @@ bum bum bum bum -bum -bum -bum dQW tdX tdX +tdX +cly +tdX jls ucC gUL @@ -100841,12 +100898,12 @@ bum bum bum bum -bum -bum -bum rGc tdX tdX +tdX +cly +tdX jPj ucC cfs @@ -101098,12 +101155,12 @@ bum bum bum bum -bum -bum -bum dQW tdX tdX +tdX +cly +tdX jls ucC cfs @@ -101355,11 +101412,11 @@ bum bum bum bum -bum -bum -bum -xUL +rGc +jPj dQW +jPj +rGc flw flw lFN @@ -101612,11 +101669,11 @@ bum bum bum bum -bum -bum -bum -xUL -xUL +dQW +cly +cly +cly +jPj dQW jPj bnU @@ -101869,9 +101926,9 @@ bum bum bum bum -bum -bum -bum +xUL +xUL +xUL bDA bYY bYY @@ -102126,9 +102183,9 @@ bum bum bum bum -bum -bum -bum +xUL +xUL +xUL gjW xUL xUL @@ -102383,9 +102440,9 @@ bum bum bum bum -bum -bum -bum +xUL +xUL +xUL xUL xUL bum @@ -102640,9 +102697,9 @@ bum bum bum bum -bum -bum -bum +xUL +xUL +xUL xUL xUL sTq diff --git a/_maps/map_files/debug/multiz.dmm b/_maps/map_files/debug/multiz.dmm index 4614829679..5a18682129 100644 --- a/_maps/map_files/debug/multiz.dmm +++ b/_maps/map_files/debug/multiz.dmm @@ -102,7 +102,7 @@ /turf/open/floor/plasteel, /area/engine/gravity_generator) "au" = ( -/turf/open/openspace, +/turf/open/transparent/openspace, /area/space) "av" = ( /obj/structure/stairs{ @@ -1407,7 +1407,7 @@ }, /area/hallway/secondary/service) "eC" = ( -/turf/open/openspace, +/turf/open/transparent/openspace, /area/maintenance/department/bridge) "eD" = ( /obj/effect/turf_decal/stripes/asteroid/line{ @@ -1542,7 +1542,7 @@ /turf/open/floor/plating, /area/space) "iu" = ( -/turf/open/openspace, +/turf/open/transparent/openspace, /area/hallway/secondary/service) "iK" = ( /turf/open/floor/plasteel{ @@ -1593,7 +1593,7 @@ }, /area/hallway/secondary/service) "nx" = ( -/turf/open/openspace, +/turf/open/transparent/openspace, /area/space/nearstation) "nz" = ( /obj/machinery/light{ @@ -1633,7 +1633,7 @@ /turf/open/floor/plating, /area/maintenance/department/bridge) "qo" = ( -/turf/open/openspace, +/turf/open/transparent/openspace, /area/engine/storage) "qR" = ( /obj/effect/turf_decal/stripes/white/line{ @@ -1646,7 +1646,7 @@ /obj/machinery/light{ dir = 8 }, -/turf/open/openspace, +/turf/open/transparent/openspace, /area/engine/storage) "sh" = ( /turf/open/floor/plasteel{ @@ -1746,7 +1746,7 @@ /area/construction) "Bk" = ( /obj/structure/grille, -/turf/open/openspace, +/turf/open/transparent/openspace, /area/space/nearstation) "Bm" = ( /obj/machinery/light{ @@ -1876,7 +1876,7 @@ "Ob" = ( /obj/structure/lattice, /obj/structure/grille, -/turf/open/openspace, +/turf/open/transparent/openspace, /area/space/nearstation) "Og" = ( /obj/machinery/airalarm/directional/north, diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 5a14eb9041..020017c3fe 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -13490,6 +13490,9 @@ /obj/structure/table/wood, /obj/item/instrument/piano_synth, /obj/item/instrument/guitar, +/obj/structure/sign/painting{ + pixel_x = -32 + }, /turf/open/indestructible/hotelwood, /area/centcom/holding) "Fg" = ( @@ -13794,6 +13797,9 @@ /turf/open/indestructible/hotelwood, /area/centcom/holding) "FX" = ( +/obj/structure/sign/painting{ + pixel_x = 32 + }, /turf/open/floor/plasteel/stairs, /area/centcom/holding) "FZ" = ( @@ -14421,6 +14427,9 @@ dir = 8 }, /obj/structure/musician/piano, +/obj/structure/sign/painting{ + pixel_x = -32 + }, /turf/open/indestructible/hotelwood, /area/centcom/holding) "Hk" = ( @@ -16225,6 +16234,12 @@ dir = 1 }, /obj/structure/table/wood, +/obj/item/storage/crayons, +/obj/item/storage/crayons, +/obj/item/storage/crayons, +/obj/structure/sign/painting{ + pixel_x = -32 + }, /turf/open/indestructible/hotelwood, /area/centcom/holding) "KU" = ( @@ -16304,6 +16319,14 @@ /obj/item/storage/box/bodybags, /turf/open/floor/plasteel/white, /area/centcom/holding) +"Ll" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/easel, +/obj/item/canvas/twentythreeXtwentythree, +/turf/open/indestructible/hotelwood, +/area/centcom/holding) "Lm" = ( /obj/machinery/shower{ dir = 4 @@ -16808,6 +16831,22 @@ }, /turf/open/floor/plasteel, /area/centcom/supplypod/loading/two) +"NA" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/table/wood, +/obj/item/canvas/twentythreeXtwentythree, +/obj/item/canvas/twentythreeXtwentythree, +/obj/item/canvas/twentythreeXtwentythree, +/obj/item/canvas/twentythreeXnineteen, +/obj/item/canvas/twentythreeXnineteen, +/obj/item/canvas/twentythreeXnineteen, +/obj/item/canvas/nineteenXnineteen, +/obj/item/canvas/nineteenXnineteen, +/obj/item/canvas/nineteenXnineteen, +/turf/open/indestructible/hotelwood, +/area/centcom/holding) "NE" = ( /obj/machinery/light{ dir = 4 @@ -16924,6 +16963,12 @@ }, /turf/open/floor/plasteel, /area/centcom/supplypod/loading/three) +"On" = ( +/obj/structure/sign/painting{ + pixel_x = 32 + }, +/turf/open/indestructible/hotelwood, +/area/centcom/holding) "Op" = ( /obj/structure/sink{ dir = 8; @@ -17249,6 +17294,10 @@ }, /turf/open/floor/mineral/titanium, /area/centcom/evac) +"Qc" = ( +/obj/effect/landmark/mafia_game_area, +/turf/open/space/basic, +/area/space) "Qe" = ( /turf/open/ai_visible, /area/ai_multicam_room) @@ -17906,6 +17955,15 @@ /obj/machinery/light, /turf/open/floor/plasteel/freezer, /area/centcom/holding) +"TD" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/sign/painting{ + pixel_x = 32 + }, +/turf/open/indestructible/hotelwood, +/area/centcom/holding) "TF" = ( /obj/effect/turf_decal/tile/red{ dir = 8 @@ -45453,8 +45511,8 @@ Nd AE CV Sd -KT -Sd +Ll +CV Sd Sd Sd @@ -45710,7 +45768,7 @@ Nd QJ Sd Sd -KT +NA Sd Sd Sd @@ -46222,8 +46280,8 @@ Fh Fh Wl Sd -MR -Sd +TD +On FX Sd Sd @@ -58911,7 +58969,7 @@ aa aa aa aa -aa +Qc aa aa aa diff --git a/_maps/multiz_debug.json b/_maps/multiz_debug.json index 7e39981e23..e916a77d1d 100644 --- a/_maps/multiz_debug.json +++ b/_maps/multiz_debug.json @@ -2,5 +2,5 @@ "map_name": "MultiZ Debug", "map_path": "map_files/debug", "map_file": "multiz.dmm", - "traits": [{"Up": 1}, {"Up": 1, "Down": -1}, {"Down": -1}] + "traits": [{"Up" : 1, "Linkage" : "Cross"}, {"Up" : 1, "Down" : -1, "Baseturf" : "/turf/open/transparent/openspace", "Linkage" : "Cross"}, {"Down" : -1, "Baseturf" : "/turf/open/transparent/openspace", "Linkage" : "Cross"}] } diff --git a/_maps/shuttles/emergency_discoinferno.dmm b/_maps/shuttles/emergency_discoinferno.dmm index e142208e12..92b515f17e 100644 --- a/_maps/shuttles/emergency_discoinferno.dmm +++ b/_maps/shuttles/emergency_discoinferno.dmm @@ -94,7 +94,7 @@ /turf/open/floor/light/colour_cycle, /area/shuttle/escape) "r" = ( -/turf/open/floor/mineral/plasma, +/turf/open/floor/mineral/plasma/disco, /area/shuttle/escape) "s" = ( /turf/open/floor/mineral/silver, @@ -112,7 +112,7 @@ resistance_flags = 2 }, /obj/structure/fans/tiny, -/turf/open/floor/mineral/plasma, +/turf/open/floor/mineral/plasma/disco, /area/shuttle/escape) "v" = ( /obj/machinery/jukebox/disco/indestructible, diff --git a/_maps/snaxi.json b/_maps/snaxi.json index cb1917b6f6..3fc8eba15d 100644 --- a/_maps/snaxi.json +++ b/_maps/snaxi.json @@ -33,7 +33,7 @@ "Linkage":null, "Gravity":true, "Ice Ruins Underground":true, - "Baseturf":"/turf/open/openspace/icemoon" + "Baseturf":"/turf/open/transparent/openspace/icemoon" }, { "Down":-1, diff --git a/code/__DEFINES/_flags/_flags.dm b/code/__DEFINES/_flags/_flags.dm index 0734feaa42..ffa3f1c751 100644 --- a/code/__DEFINES/_flags/_flags.dm +++ b/code/__DEFINES/_flags/_flags.dm @@ -98,7 +98,7 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204 #define ZAP_MOB_DAMAGE (1<<3) #define ZAP_MOB_STUN (1<<4) -#define ZAP_DEFAULT_FLAGS ALL +#define ZAP_DEFAULT_FLAGS ZAP_MOB_STUN | ZAP_MOB_DAMAGE | ZAP_OBJ_DAMAGE #define ZAP_FUSION_FLAGS ZAP_OBJ_DAMAGE | ZAP_MOB_DAMAGE | ZAP_MOB_STUN #define ZAP_SUPERMATTER_FLAGS NONE diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index b883a54209..a3e5423753 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -63,6 +63,16 @@ #define CONTRACT_UPLINK_PAGE_CONTRACTS "CONTRACTS" #define CONTRACT_UPLINK_PAGE_HUB "HUB" + +///Heretics -- +#define IS_HERETIC(mob) (mob.mind?.has_antag_datum(/datum/antagonist/heretic)) + +#define PATH_SIDE "Side" + +#define PATH_ASH "Ash" +#define PATH_RUST "Rust" +#define PATH_FLESH "Flesh" + //Overthrow time to update heads obj #define OBJECTIVE_UPDATING_TIME 300 @@ -91,4 +101,4 @@ #define BLOB_REROLL_TIME 2400 // blob gets a free reroll every X time #define BLOB_SPREAD_COST 4 #define BLOB_ATTACK_REFUND 2 //blob refunds this much if it attacks and doesn't spread -#define BLOB_REFLECTOR_COST 15 \ No newline at end of file +#define BLOB_REFLECTOR_COST 15 diff --git a/code/__DEFINES/atom_hud.dm b/code/__DEFINES/atom_hud.dm index 01f14c748e..386473a3ae 100644 --- a/code/__DEFINES/atom_hud.dm +++ b/code/__DEFINES/atom_hud.dm @@ -60,6 +60,7 @@ #define ANTAG_HUD_BROTHER 23 #define ANTAG_HUD_BLOODSUCKER 24 #define ANTAG_HUD_FUGITIVE 25 +#define ANTAG_HUD_HERETIC 26 // Notification action types #define NOTIFY_JUMP "jump" diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 6900f36a33..bdee4cdcd5 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -15,22 +15,31 @@ ////////////////////////////////////////////////////////////////// // /datum signals -#define COMSIG_COMPONENT_ADDED "component_added" //sent to the new datum parent when a component is added to them: (/datum/component) -#define COMSIG_COMPONENT_REMOVING "component_removing" //sent to the datum parent before a component is removed from them because of RemoveComponent: (/datum/component) -#define COMSIG_COMPONENT_UNREGISTER_PARENT "component_unregister_parent" //sent to the component itself when unregistered from a parent -#define COMSIG_COMPONENT_REGISTER_PARENT "component_register_parent" //sent to the component itself when registered to a parent -#define COMSIG_PARENT_PREQDELETED "parent_preqdeleted" //before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation -#define COMSIG_PARENT_QDELETING "parent_qdeleting" //just before a datum's Destroy() is called: (force), at this point none of the other components chose to interrupt qdel and Destroy will be called - -/// Trait signals -#define COMPONENT_ADD_TRAIT (1<<0) -#define COMPONENT_REMOVE_TRAIT (1<<1) +/// when a component is added to a datum: (/datum/component) +#define COMSIG_COMPONENT_ADDED "component_added" +/// before a component is removed from a datum because of RemoveComponent: (/datum/component) +#define COMSIG_COMPONENT_REMOVING "component_removing" +/// before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation +#define COMSIG_PARENT_PREQDELETED "parent_preqdeleted" +/// just before a datum's Destroy() is called: (force), at this point none of the other components chose to interrupt qdel and Destroy will be called +#define COMSIG_PARENT_QDELETING "parent_qdeleting" +/// generic topic handler (usr, href_list) +#define COMSIG_TOPIC "handle_topic" /// fires on the target datum when an element is attached to it (/datum/element) #define COMSIG_ELEMENT_ATTACH "element_attach" /// fires on the target datum when an element is attached to it (/datum/element) #define COMSIG_ELEMENT_DETACH "element_detach" +/// sent to the component itself when unregistered from a parent +#define COMSIG_COMPONENT_UNREGISTER_PARENT "component_unregister_parent" +/// sent to the component itself when registered to a parent +#define COMSIG_COMPONENT_REGISTER_PARENT "component_register_parent" + +/// Trait signals +#define COMPONENT_ADD_TRAIT (1<<0) +#define COMPONENT_REMOVE_TRAIT (1<<1) + // /atom signals //from base of atom/proc/Initialize(): sent any time a new atom is created #define COMSIG_ATOM_CREATED "atom_created" @@ -56,30 +65,54 @@ #define COMSIG_ATOM_EXIT "atom_exit" //from base of atom/Exit(): (/atom/movable/exiting, /atom/newloc) #define COMPONENT_ATOM_BLOCK_EXIT 1 #define COMSIG_ATOM_EXITED "atom_exited" //from base of atom/Exited(): (atom/movable/exiting, atom/newloc) -#define COMSIG_ATOM_EX_ACT "atom_ex_act" //from base of atom/ex_act(): (severity, target) -#define COMSIG_ATOM_EMP_ACT "atom_emp_act" //from base of atom/emp_act(): (severity) -#define COMSIG_ATOM_FIRE_ACT "atom_fire_act" //from base of atom/fire_act(): (exposed_temperature, exposed_volume) -#define COMSIG_ATOM_BULLET_ACT "atom_bullet_act" //from base of atom/bullet_act(): (/obj/item/projectile, def_zone) -#define COMSIG_ATOM_BLOB_ACT "atom_blob_act" //from base of atom/blob_act(): (/obj/structure/blob) -#define COMSIG_ATOM_ACID_ACT "atom_acid_act" //from base of atom/acid_act(): (acidpwr, acid_volume) -#define COMSIG_ATOM_EMAG_ACT "atom_emag_act" //from base of atom/emag_act(): () -#define COMSIG_ATOM_RAD_ACT "atom_rad_act" //from base of atom/rad_act(intensity) -#define COMSIG_ATOM_NARSIE_ACT "atom_narsie_act" //from base of atom/narsie_act(): () -#define COMSIG_ATOM_RATVAR_ACT "atom_ratvar_act" //from base of atom/ratvar_act(): () -#define COMSIG_ATOM_RCD_ACT "atom_rcd_act" //from base of atom/rcd_act(): (/mob, /obj/item/construction/rcd, passed_mode) -#define COMSIG_ATOM_SING_PULL "atom_sing_pull" //from base of atom/singularity_pull(): (S, current_size) -#define COMSIG_ATOM_SET_LIGHT "atom_set_light" //from base of atom/set_light(): (l_range, l_power, l_color) -#define COMSIG_ATOM_DIR_CHANGE "atom_dir_change" //from base of atom/setDir(): (old_dir, new_dir) -#define COMSIG_ATOM_CONTENTS_DEL "atom_contents_del" //from base of atom/handle_atom_del(): (atom/deleted) -#define COMSIG_ATOM_HAS_GRAVITY "atom_has_gravity" //from base of atom/has_gravity(): (turf/location, list/forced_gravities) -#define COMSIG_ATOM_RAD_PROBE "atom_rad_probe" //from proc/get_rad_contents(): () - #define COMPONENT_BLOCK_RADIATION 1 -#define COMSIG_ATOM_RAD_CONTAMINATING "atom_rad_contam" //from base of datum/radiation_wave/radiate(): (strength) - #define COMPONENT_BLOCK_CONTAMINATION 1 -#define COMSIG_ATOM_RAD_WAVE_PASSING "atom_rad_wave_pass" //from base of datum/radiation_wave/check_obstructions(): (datum/radiation_wave, width) - #define COMPONENT_RAD_WAVE_HANDLED 1 -#define COMSIG_ATOM_CANREACH "atom_can_reach" //from internal loop in atom/movable/proc/CanReach(): (list/next) - #define COMPONENT_BLOCK_REACH 1 +///from base of atom/ex_act(): (severity, target) +#define COMSIG_ATOM_EX_ACT "atom_ex_act" +///from base of atom/emp_act(): (severity) +#define COMSIG_ATOM_EMP_ACT "atom_emp_act" +///from base of atom/fire_act(): (exposed_temperature, exposed_volume) +#define COMSIG_ATOM_FIRE_ACT "atom_fire_act" +///from base of atom/bullet_act(): (/obj/projectile, def_zone) +#define COMSIG_ATOM_BULLET_ACT "atom_bullet_act" +///from base of atom/blob_act(): (/obj/structure/blob) +#define COMSIG_ATOM_BLOB_ACT "atom_blob_act" +///from base of atom/acid_act(): (acidpwr, acid_volume) +#define COMSIG_ATOM_ACID_ACT "atom_acid_act" +///from base of atom/emag_act(): (/mob/user) +#define COMSIG_ATOM_EMAG_ACT "atom_emag_act" +///from base of atom/rad_act(intensity) +#define COMSIG_ATOM_RAD_ACT "atom_rad_act" +///from base of atom/narsie_act(): () +#define COMSIG_ATOM_NARSIE_ACT "atom_narsie_act" +///from base of atom/ratvar_act(): () +#define COMSIG_ATOM_RATVAR_ACT "atom_ratvar_act" +///from base of atom/rcd_act(): (/mob, /obj/item/construction/rcd, passed_mode) +#define COMSIG_ATOM_RCD_ACT "atom_rcd_act" +///from base of atom/singularity_pull(): (S, current_size) +#define COMSIG_ATOM_SING_PULL "atom_sing_pull" +///from obj/machinery/bsa/full/proc/fire(): () +#define COMSIG_ATOM_BSA_BEAM "atom_bsa_beam_pass" + #define COMSIG_ATOM_BLOCKS_BSA_BEAM (1<<0) +///from base of atom/set_light(): (l_range, l_power, l_color) +#define COMSIG_ATOM_SET_LIGHT "atom_set_light" +///from base of atom/setDir(): (old_dir, new_dir). Called before the direction changes. +#define COMSIG_ATOM_DIR_CHANGE "atom_dir_change" +///from base of atom/handle_atom_del(): (atom/deleted) +#define COMSIG_ATOM_CONTENTS_DEL "atom_contents_del" +///from base of atom/has_gravity(): (turf/location, list/forced_gravities) +#define COMSIG_ATOM_HAS_GRAVITY "atom_has_gravity" +///from proc/get_rad_contents(): () +#define COMSIG_ATOM_RAD_PROBE "atom_rad_probe" + #define COMPONENT_BLOCK_RADIATION (1<<0) +///from base of datum/radiation_wave/radiate(): (strength) +#define COMSIG_ATOM_RAD_CONTAMINATING "atom_rad_contam" + #define COMPONENT_BLOCK_CONTAMINATION (1<<0) +///from base of datum/radiation_wave/check_obstructions(): (datum/radiation_wave, width) +#define COMSIG_ATOM_RAD_WAVE_PASSING "atom_rad_wave_pass" + #define COMPONENT_RAD_WAVE_HANDLED (1<<0) +///from internal loop in atom/movable/proc/CanReach(): (list/next) +#define COMSIG_ATOM_CANREACH "atom_can_reach" + #define COMPONENT_BLOCK_REACH (1<<0) + #define COMSIG_ATOM_SCREWDRIVER_ACT "atom_screwdriver_act" //from base of atom/screwdriver_act(): (mob/living/user, obj/item/I) #define COMSIG_ATOM_INTERCEPT_TELEPORT "intercept_teleport" //called when teleporting into a protected turf: (channel, turf/origin, turf/destination) #define COMPONENT_BLOCK_TELEPORT 1 diff --git a/code/__DEFINES/footsteps.dm b/code/__DEFINES/footsteps.dm index 2dd66b9833..215e287adf 100644 --- a/code/__DEFINES/footsteps.dm +++ b/code/__DEFINES/footsteps.dm @@ -7,6 +7,8 @@ #define FOOTSTEP_WATER "water" #define FOOTSTEP_LAVA "lava" #define FOOTSTEP_MEAT "meat" +#define FOOTSTEP_RUST "rust" + //barefoot sounds #define FOOTSTEP_WOOD_BAREFOOT "woodbarefoot" #define FOOTSTEP_WOOD_CLAW "woodclaw" @@ -91,7 +93,9 @@ GLOBAL_LIST_INIT(footstep, list( 'sound/effects/footstep/lava2.ogg', 'sound/effects/footstep/lava3.ogg'), 100, 0), FOOTSTEP_MEAT = list(list( - 'sound/effects/meatslap.ogg'), 100, 0) + 'sound/effects/meatslap.ogg'), 100, 0), + FOOTSTEP_RUST = list(list( + 'sound/effects/footstep/rustystep1.ogg'), 100, 0) )) //bare footsteps lists @@ -135,7 +139,9 @@ GLOBAL_LIST_INIT(barefootstep, list( 'sound/effects/footstep/lava2.ogg', 'sound/effects/footstep/lava3.ogg'), 100, 0), FOOTSTEP_MEAT = list(list( - 'sound/effects/meatslap.ogg'), 100, 0) + 'sound/effects/meatslap.ogg'), 100, 0), + FOOTSTEP_RUST = list(list( + 'sound/effects/footstep/rustystep1.ogg'), 100, 0) )) //claw footsteps lists @@ -179,7 +185,9 @@ GLOBAL_LIST_INIT(clawfootstep, list( 'sound/effects/footstep/lava2.ogg', 'sound/effects/footstep/lava3.ogg'), 100, 0), FOOTSTEP_MEAT = list(list( - 'sound/effects/meatslap.ogg'), 100, 0) + 'sound/effects/meatslap.ogg'), 100, 0), + FOOTSTEP_RUST = list(list( + 'sound/effects/footstep/rustystep1.ogg'), 100, 0) )) //heavy footsteps list @@ -197,5 +205,7 @@ GLOBAL_LIST_INIT(heavyfootstep, list( 'sound/effects/footstep/lava2.ogg', 'sound/effects/footstep/lava3.ogg'), 100, 0), FOOTSTEP_MEAT = list(list( - 'sound/effects/meatslap.ogg'), 100, 0) + 'sound/effects/meatslap.ogg'), 100, 0), + FOOTSTEP_RUST = list(list( + 'sound/effects/footstep/rustystep1.ogg'), 150, 2) )) diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index d66521d945..55be13834d 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -17,7 +17,7 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list( /turf/open/chasm, /turf/open/lava, /turf/open/water, - /turf/open/openspace + /turf/open/transparent/openspace ))) #define isgroundlessturf(A) (is_type_in_typecache(A, GLOB.turfs_without_ground)) @@ -44,6 +44,8 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list( #define isplatingturf(A) (istype(A, /turf/open/floor/plating)) +#define istransparentturf(A) (istype(A, /turf/open/transparent)) + //Mobs #define isliving(A) (istype(A, /mob/living)) diff --git a/code/__DEFINES/logging.dm b/code/__DEFINES/logging.dm index 71de692410..ecb58f1291 100644 --- a/code/__DEFINES/logging.dm +++ b/code/__DEFINES/logging.dm @@ -19,6 +19,7 @@ #define INVESTIGATE_FERMICHEM "fermichem" #define INVESTIGATE_RCD "rcd" #define INVESTIGATE_CRYOGENICS "cryogenics" +#define INVESTIGATE_GHOST "ghost" // Logging types for log_message() #define LOG_ATTACK (1 << 0) diff --git a/code/__DEFINES/maths.dm b/code/__DEFINES/maths.dm index 24726b8058..370f869c48 100644 --- a/code/__DEFINES/maths.dm +++ b/code/__DEFINES/maths.dm @@ -46,6 +46,8 @@ // Cosecant #define CSC(x) (1 / sin(x)) +#define ATAN2(x, y) ( !(x) && !(y) ? 0 : (y) >= 0 ? arccos((x) / sqrt((x)*(x) + (y)*(y))) : -arccos((x) / sqrt((x)*(x) + (y)*(y))) ) + // Greatest Common Divisor - Euclid's algorithm /proc/Gcd(a, b) return b ? Gcd(b, (a) % (b)) : a diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 782095f883..6ddd269b4b 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -332,3 +332,5 @@ /// If you examine the same atom twice in this timeframe, we call examine_more() instead of examine() #define EXAMINE_MORE_TIME 1 SECONDS + +#define SILENCE_RANGED_MESSAGE (1<<0) diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm index 7fabb74157..d7487eb54b 100644 --- a/code/__DEFINES/role_preferences.dm +++ b/code/__DEFINES/role_preferences.dm @@ -17,6 +17,7 @@ #define ROLE_ALIEN "xenomorph" #define ROLE_PAI "pAI" #define ROLE_CULTIST "cultist" +#define ROLE_HERETIC "Heretic" #define ROLE_BLOB "blob" #define ROLE_NINJA "space ninja" #define ROLE_MONKEY "monkey" @@ -64,6 +65,7 @@ GLOBAL_LIST_INIT(special_roles, list( ROLE_INTERNAL_AFFAIRS = /datum/game_mode/traitor/internal_affairs, ROLE_SENTIENCE, ROLE_GANG = /datum/game_mode/gang, + ROLE_HERETIC = /datum/game_mode/heretics, ROLE_BLOODSUCKER = /datum/game_mode/bloodsucker //ROLE_MONSTERHUNTER Disabled for now )) diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index 9a3b5d55f4..bfff1dc629 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -111,6 +111,10 @@ #define STATUS_EFFECT_LIMP /datum/status_effect/limp //For when you have a busted leg (or two!) and want additional slowdown when walking on that leg +#define STATUS_EFFECT_AMOK /datum/status_effect/amok //Makes the target automatically strike out at adjecent non-heretics. + +#define STATUS_EFFECT_CLOUDSTRUCK /datum/status_effect/cloudstruck //blinds and applies an overlay. + /// shoves inflict this to indicate the next shove while this is in effect should disarm guns #define STATUS_EFFECT_OFF_BALANCE /datum/status_effect/off_balance diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 3e5b27d376..674cc16980 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -104,7 +104,9 @@ #define TRAIT_RESISTCOLD "resist_cold" #define TRAIT_RESISTHIGHPRESSURE "resist_high_pressure" #define TRAIT_RESISTLOWPRESSURE "resist_low_pressure" +#define TRAIT_BOMBIMMUNE "bomb_immunity" #define TRAIT_RADIMMUNE "rad_immunity" +#define TRAIT_GENELESS "geneless" #define TRAIT_VIRUSIMMUNE "virus_immunity" #define TRAIT_PIERCEIMMUNE "pierce_immunity" #define TRAIT_NODISMEMBER "dismember_immunity" @@ -178,6 +180,7 @@ #define TRAIT_FREERUNNING "freerunning" #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 TRAIT_PROSOPAGNOSIA "prosopagnosia" #define TRAIT_DRUNK_HEALING "drunk_healing" #define TRAIT_TAGGER "tagger" @@ -202,7 +205,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_NICE_SHOT "nice_shot" //hnnnnnnnggggg..... you're pretty good.... +#define TRAIT_NICE_SHOT "nice_shot" //hnnnnnnnggggg..... you're pretty good... // mobility flag traits // IN THE FUTURE, IT WOULD BE NICE TO DO SOMETHING SIMILAR TO https://github.com/tgstation/tgstation/pull/48923/files (ofcourse not nearly the same because I have my.. thoughts on it) @@ -256,6 +259,7 @@ #define CURSED_ITEM_TRAIT "cursed-item" // The item is magically cursed #define ABSTRACT_ITEM_TRAIT "abstract-item" #define STATUS_EFFECT_TRAIT "status-effect" +#define CLOTHING_TRAIT "clothing" #define ROUNDSTART_TRAIT "roundstart" //cannot be removed without admin intervention #define GHOSTROLE_TRAIT "ghostrole" #define APHRO_TRAIT "aphro" @@ -310,4 +314,4 @@ #define ACTIVE_BLOCK_TRAIT "active_block" /// This trait is added by the parry system. #define ACTIVE_PARRY_TRAIT "active_parry" -#define STICKY_NODROP "sticky-nodrop" //sticky nodrop sounds like a bad soundcloud rapper's name \ No newline at end of file +#define STICKY_NODROP "sticky-nodrop" //sticky nodrop sounds like a bad soundcloud rapper's name diff --git a/code/__HELPERS/cmp.dm b/code/__HELPERS/cmp.dm index a688d20451..4ee622961a 100644 --- a/code/__HELPERS/cmp.dm +++ b/code/__HELPERS/cmp.dm @@ -128,6 +128,10 @@ GLOBAL_VAR_INIT(cmp_field, "name") else return B.required_temp - A.required_temp //return hottest + +/proc/cmp_mob_realname_dsc(mob/A,mob/B) + return sorttext(A.real_name,B.real_name) + /proc/cmp_job_display_asc(datum/job/A, datum/job/B) return A.display_order - B.display_order @@ -135,4 +139,4 @@ GLOBAL_VAR_INIT(cmp_field, "name") return sorttext(initial(b.name),initial(a.name)) /proc/cmp_typepaths_asc(A, B) - return sorttext("[B]","[A]") \ No newline at end of file + return sorttext("[B]","[A]") diff --git a/code/_globalvars/game_modes.dm b/code/_globalvars/game_modes.dm index 01a34c2ab7..960e1f8d59 100644 --- a/code/_globalvars/game_modes.dm +++ b/code/_globalvars/game_modes.dm @@ -9,4 +9,8 @@ GLOBAL_DATUM(start_state, /datum/station_state) // Used in round-end report //TODO clear this one up too -GLOBAL_DATUM(cult_narsie, /obj/singularity/narsie/large/cult) \ No newline at end of file +GLOBAL_DATUM(cult_narsie, /obj/singularity/narsie/large/cult) + + +///We want reality_smash_tracker to exist only once and be accesable from anywhere. +GLOBAL_DATUM_INIT(reality_smash_track, /datum/reality_smash_tracker, new) diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index a25381f266..7c2ebc5f0c 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -231,4 +231,10 @@ GLOBAL_LIST_INIT(speech_verbs, list("default","says","gibbers", "states", "chitt GLOBAL_LIST_INIT(roundstart_tongues, list("default","human tongue" = /obj/item/organ/tongue, "lizard tongue" = /obj/item/organ/tongue/lizard, "skeleton tongue" = /obj/item/organ/tongue/bone, "fly tongue" = /obj/item/organ/tongue/fly, "ipc tongue" = /obj/item/organ/tongue/robot/ipc)) - +//locked parts are those that your picked species requires to have +//unlocked parts are those that anyone can choose on customisation regardless +//parts not in unlocked, but in all, are thus locked +GLOBAL_LIST_INIT(all_mutant_parts, list("tail_lizard" = "Tail", "mam_tail" = "Tail", "tail_human" = "Tail", "snout" = "Snout", "frills" = "Frills", "spines" = "Spines", "body_markings" = "Body Markings", "mam_body_markings" = "Species Markings" , "mam_ears" = "Ears", "ears" = "Ears", "mam_snouts" = "Snout", "legs" = "Legs", "deco_wings" = "Decorative Wings", "insect_wings" = "Insect Wings", "insect_fluff" = "Insect Fluff", "taur" = "Tauric Body", "insect_markings" = "Insect Markings", "wings" = "Wings", "xenohead" = "Caste Head", "xenotail" = "Tail", "xenodorsal" = "Dorsal Spines", "ipc_screen" = "Screen", "ipc_antenna" = "Antenna", "meat_type" = "Meat Type", "horns" = "Horns")) +GLOBAL_LIST_INIT(unlocked_mutant_parts, list("horns", "insect_fluff")) +//parts in either of the above two lists that require a second option that allows them to be coloured +GLOBAL_LIST_INIT(colored_mutant_parts, list("insect_wings" = "wings_color", "deco_wings" = "wings_color", "horns" = "horns_color")) diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index 8d8b8820b2..605b20a4f3 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -37,7 +37,9 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_RESISTCOLD" = TRAIT_RESISTCOLD, "TRAIT_RESISTHIGHPRESSURE" = TRAIT_RESISTHIGHPRESSURE, "TRAIT_RESISTLOWPRESSURE" = TRAIT_RESISTLOWPRESSURE, + "TRAIT_BOMBIMMUNE" = TRAIT_BOMBIMMUNE, "TRAIT_RADIMMUNE" = TRAIT_RADIMMUNE, + "TRAIT_GENELESS" = TRAIT_GENELESS, "TRAIT_VIRUSIMMUNE" = TRAIT_VIRUSIMMUNE, "TRAIT_PIERCEIMMUNE" = TRAIT_PIERCEIMMUNE, "TRAIT_NODISMEMBER" = TRAIT_NODISMEMBER, diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index 5765f291e9..cc9c067b5d 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -98,6 +98,11 @@ config_entry_value = 6 min_val = 1 +/datum/config_entry/number/ecult_scaling_coeff //how much does the amount of players get divided by to determine e_cult + config_entry_value = 6 + integer = FALSE + min_val = 1 + /datum/config_entry/number/security_scaling_coeff //how much does the amount of players get divided by to determine open security officer positions config_entry_value = 8 min_val = 1 diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 97addfa131..617004646a 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -113,7 +113,7 @@ SUBSYSTEM_DEF(mapping) // needs to be whitelisted for underground too so place_below ruins work seedRuins(ice_ruins, CONFIG_GET(number/icemoon_budget), list(/area/icemoon/surface/outdoors/unexplored, /area/icemoon/underground/unexplored), ice_ruins_templates) for (var/ice_z in ice_ruins) - spawn_rivers(ice_z, 4, /turf/open/openspace/icemoon, /area/icemoon/surface/outdoors/unexplored/rivers) + spawn_rivers(ice_z, 4, /turf/open/transparent/openspace/icemoon, /area/icemoon/surface/outdoors/unexplored/rivers) var/list/ice_ruins_underground = levels_by_trait(ZTRAIT_ICE_RUINS_UNDERGROUND) if (ice_ruins_underground.len) diff --git a/code/datums/components/crafting/recipes/recipes_misc.dm b/code/datums/components/crafting/recipes/recipes_misc.dm index 214c1b1427..2bfb187018 100644 --- a/code/datums/components/crafting/recipes/recipes_misc.dm +++ b/code/datums/components/crafting/recipes/recipes_misc.dm @@ -126,7 +126,7 @@ /datum/crafting_recipe/brute_pack name = "Suture Pack" - result = /obj/item/stack/medical/suture/one + result = /obj/item/stack/medical/suture/five time = 1 reqs = list(/obj/item/stack/medical/gauze = 1, /datum/reagent/medicine/styptic_powder = 10) @@ -135,7 +135,7 @@ /datum/crafting_recipe/burn_pack name = "Regenerative Mesh" - result = /obj/item/stack/medical/mesh/one + result = /obj/item/stack/medical/mesh/five time = 1 reqs = list(/obj/item/stack/medical/gauze = 1, /datum/reagent/medicine/silver_sulfadiazine = 10) @@ -188,7 +188,7 @@ result = /obj/item/screwdriver/bronze reqs = list(/obj/item/screwdriver = 1, /obj/item/stack/cable_coil = 10, - /obj/item/stack/tile/bronze = 1, + /obj/item/stack/sheet/bronze = 1, /datum/reagent/water = 15) time = 40 subcategory = CAT_TOOL @@ -200,7 +200,7 @@ result = /obj/item/weldingtool/bronze reqs = list(/obj/item/weldingtool = 1, /obj/item/stack/cable_coil = 10, - /obj/item/stack/tile/bronze = 1, + /obj/item/stack/sheet/bronze = 1, /datum/reagent/water = 15) time = 40 subcategory = CAT_TOOL @@ -212,7 +212,7 @@ result = /obj/item/wirecutters/bronze reqs = list(/obj/item/wirecutters = 1, /obj/item/stack/cable_coil = 10, - /obj/item/stack/tile/bronze = 1, + /obj/item/stack/sheet/bronze = 1, /datum/reagent/water = 15) time = 40 subcategory = CAT_TOOL @@ -224,7 +224,7 @@ result = /obj/item/crowbar/bronze reqs = list(/obj/item/crowbar = 1, /obj/item/stack/cable_coil = 10, - /obj/item/stack/tile/bronze = 1, + /obj/item/stack/sheet/bronze = 1, /datum/reagent/water = 15) time = 40 subcategory = CAT_TOOL @@ -236,7 +236,7 @@ result = /obj/item/wrench/bronze reqs = list(/obj/item/wrench = 1, /obj/item/stack/cable_coil = 10, - /obj/item/stack/tile/bronze = 1, + /obj/item/stack/sheet/bronze = 1, /datum/reagent/water = 15) time = 40 subcategory = CAT_TOOL @@ -269,6 +269,19 @@ subcategory = CAT_TOOL category = CAT_MISC +/datum/crafting_recipe/heretic/codex + name = "Codex Cicatrix" + result = /obj/item/forbidden_book + tools = list(/obj/item/pen) + reqs = list(/obj/item/paper = 5, + /obj/item/organ/eyes = 1, + /obj/item/organ/heart = 1, + /obj/item/stack/sheet/animalhide/human = 1) + time = 150 + subcategory = CAT_MISCELLANEOUS + category = CAT_MISC + always_availible = FALSE + //////////// //Vehicles// //////////// diff --git a/code/datums/components/uplink.dm b/code/datums/components/uplink.dm index 460a73bf5a..4a9c558d39 100644 --- a/code/datums/components/uplink.dm +++ b/code/datums/components/uplink.dm @@ -29,8 +29,8 @@ GLOBAL_LIST_EMPTY(uplinks) var/saved_player_population = 0 var/list/filters = list() - -/datum/component/uplink/Initialize(_owner, _lockable = TRUE, _enabled = FALSE, datum/game_mode/_gamemode, starting_tc = 20, datum/ui_state/_checkstate, datum/traitor_class/traitor_class) + +/datum/component/uplink/Initialize(_owner, _lockable = TRUE, _enabled = FALSE, datum/game_mode/_gamemode, starting_tc = 20, datum/traitor_class/traitor_class) if(!isitem(parent)) return COMPONENT_INCOMPATIBLE @@ -144,6 +144,8 @@ GLOBAL_LIST_EMPTY(uplinks) return COMPONENT_NO_INTERACT /datum/component/uplink/ui_state(mob/user) + if(istype(parent, /obj/item/implant/uplink)) + return GLOB.not_incapacitated_state return GLOB.inventory_state /datum/component/uplink/ui_interact(mob/user, datum/tgui/ui) diff --git a/code/datums/elements/bsa_blocker.dm b/code/datums/elements/bsa_blocker.dm new file mode 100644 index 0000000000..61140ad0ed --- /dev/null +++ b/code/datums/elements/bsa_blocker.dm @@ -0,0 +1,10 @@ +//blocks bluespace artillery beams that try to fly through +//look not all elements need to be fancy +/datum/element/bsa_blocker/Attach(datum/target) + if(!isatom(target)) + return ELEMENT_INCOMPATIBLE + RegisterSignal(target, COMSIG_ATOM_BSA_BEAM, .proc/block_bsa) + return ..() + +/datum/element/bsa_blocker/proc/block_bsa() + return COMSIG_ATOM_BLOCKS_BSA_BEAM diff --git a/code/datums/hud.dm b/code/datums/hud.dm index c1811fb9b3..1c23d5f2a0 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -28,7 +28,8 @@ GLOBAL_LIST_INIT(huds, list( ANTAG_HUD_CLOCKWORK = new/datum/atom_hud/antag(), ANTAG_HUD_BROTHER = new/datum/atom_hud/antag/hidden(), ANTAG_HUD_BLOODSUCKER = new/datum/atom_hud/antag/bloodsucker(), - ANTAG_HUD_FUGITIVE = new/datum/atom_hud/antag() + ANTAG_HUD_FUGITIVE = new/datum/atom_hud/antag(), + ANTAG_HUD_HERETIC = new/datum/atom_hud/antag/hidden() )) /datum/atom_hud diff --git a/code/datums/materials/basemats.dm b/code/datums/materials/basemats.dm index 721af65449..1469965b57 100644 --- a/code/datums/materials/basemats.dm +++ b/code/datums/materials/basemats.dm @@ -287,7 +287,7 @@ Unless you know what you're doing, only use the first three numbers. They're in desc = "Clock Cult? Never heard of it." color = "#92661A" categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE) - sheet_type = /obj/item/stack/tile/bronze + sheet_type = /obj/item/stack/sheet/bronze value_per_unit = 0.025 armor_modifiers = list("melee" = 1, "bullet" = 1, "laser" = 1, "energy" = 1, "bomb" = 1, "bio" = 1, "rad" = 1.5, "fire" = 1.5, "acid" = 1.5) beauty_modifier = 0.2 diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm index 787d6375a7..38b004a657 100644 --- a/code/datums/mood_events/generic_negative_events.dm +++ b/code/datums/mood_events/generic_negative_events.dm @@ -162,6 +162,11 @@ mood_change = -8 timeout = 3 MINUTES +/datum/mood_event/gates_of_mansus + description = "LIVING IN A PERFORMANCE IS WORSE THAN DEATH\n" + mood_change = -25 + timeout = 4 MINUTES + //These are unused so far but I want to remember them to use them later /datum/mood_event/cloned_corpse diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm index 8f98917ed3..b73756c2b1 100644 --- a/code/datums/mood_events/generic_positive_events.dm +++ b/code/datums/mood_events/generic_positive_events.dm @@ -70,6 +70,11 @@ mood_change = 40 //maybe being a cultist isnt that bad after all hidden = TRUE +/datum/mood_event/heretics + description = "THE HIGHER I RISE, THE MORE I SEE.\n" + mood_change = 12 //maybe being a cultist isnt that bad after all + hidden = TRUE + /datum/mood_event/family_heirloom description = "My family heirloom is safe with me.\n" mood_change = 1 diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm index 5d86290f8f..64b8692ccd 100644 --- a/code/datums/ruins/space.dm +++ b/code/datums/ruins/space.dm @@ -325,6 +325,12 @@ name = "Abductor Replication Lab" description = "Some scientists tried and almost succeeded to recreate abductor tools. Somewhat slower and a bit less modern than their originals, these tools are the best you can get if you aren't an alien." +/datum/map_template/ruin/space/spacediner + id = "spacediner" + suffix = "spacediner.dmm" + name = "Space Diner" + description = "Come, traveler of the bluespace planes. Sit, enjoy a drink and take one of the fair maidens for a night. The exit is the way you came in, via that teleporter thingy, but do remember to stay safe." + //Space ruins for the station z /datum/map_template/ruin/spacenearstation prefix = "_maps/RandomRuins/SpaceRuinsStation/" diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 6e59d4fa2c..9cd47403d1 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -403,6 +403,197 @@ owner.underlays -= marked_underlay //if this is being called, we should have an owner at this point. ..() +/datum/status_effect/eldritch + duration = 15 SECONDS + status_type = STATUS_EFFECT_REPLACE + alert_type = null + on_remove_on_mob_delete = TRUE + ///underlay used to indicate that someone is marked + var/mutable_appearance/marked_underlay + ///path for the underlay + var/effect_sprite = "" + +/datum/status_effect/eldritch/on_creation(mob/living/new_owner, ...) + marked_underlay = mutable_appearance('icons/effects/effects.dmi', effect_sprite,BELOW_MOB_LAYER) + return ..() + +/datum/status_effect/eldritch/on_apply() + . = ..() + if(owner.mob_size >= MOB_SIZE_HUMAN) + RegisterSignal(owner,COMSIG_ATOM_UPDATE_OVERLAYS,.proc/update_owner_underlay) + owner.update_icon() + return TRUE + return FALSE + +/datum/status_effect/eldritch/on_remove() + UnregisterSignal(owner,COMSIG_ATOM_UPDATE_OVERLAYS) + owner.update_icon() + return ..() + +/datum/status_effect/eldritch/proc/update_owner_underlay(atom/source, list/overlays) + overlays += marked_underlay + +/datum/status_effect/eldritch/Destroy() + QDEL_NULL(marked_underlay) + return ..() + +/** + * What happens when this mark gets popped + * + * Adds actual functionality to each mark + */ +/datum/status_effect/eldritch/proc/on_effect() + playsound(owner, 'sound/magic/repulse.ogg', 75, TRUE) + qdel(src) //what happens when this is procced. + +//Each mark has diffrent effects when it is destroyed that combine with the mansus grasp effect. +/datum/status_effect/eldritch/flesh + id = "flesh_mark" + effect_sprite = "emark1" + +/datum/status_effect/eldritch/flesh/on_effect() + + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + var/obj/item/bodypart/bodypart = pick(H.bodyparts) + var/datum/wound/slash/severe/crit_wound = new + crit_wound.apply_wound(bodypart) + return ..() + +/datum/status_effect/eldritch/ash + id = "ash_mark" + effect_sprite = "emark2" + ///Dictates how much damage and stamina loss this mark will cause. + var/repetitions = 1 + +/datum/status_effect/eldritch/ash/on_creation(mob/living/new_owner, _repetition = 5) + . = ..() + repetitions = min(1,_repetition) + +/datum/status_effect/eldritch/ash/on_effect() + if(iscarbon(owner)) + var/mob/living/carbon/carbon_owner = owner + carbon_owner.adjustStaminaLoss(10 * repetitions) + carbon_owner.adjustFireLoss(5 * repetitions) + for(var/mob/living/carbon/victim in range(1,carbon_owner)) + if(IS_HERETIC(victim) || victim == carbon_owner) + continue + victim.apply_status_effect(type,repetitions-1) + break + return ..() + +/datum/status_effect/eldritch/rust + id = "rust_mark" + effect_sprite = "emark3" + +/datum/status_effect/eldritch/rust/on_effect() + if(!iscarbon(owner)) + return + var/mob/living/carbon/carbon_owner = owner + for(var/obj/item/I in carbon_owner.get_all_gear()) //Affects roughly 75% of items + if(!QDELETED(I) && prob(75)) //Just in case + I.take_damage(100) + return ..() + +/datum/status_effect/corrosion_curse + id = "corrosion_curse" + status_type = STATUS_EFFECT_REPLACE + alert_type = null + tick_interval = 1 SECONDS + +/datum/status_effect/corrosion_curse/on_creation(mob/living/new_owner, ...) + . = ..() + to_chat(owner, "Your feel your body starting to break apart...") + +/datum/status_effect/corrosion_curse/tick() + . = ..() + if(!ishuman(owner)) + return + var/mob/living/carbon/human/H = owner + var/chance = rand(0,100) + switch(chance) + if(0 to 19) + H.vomit() + if(20 to 29) + H.Dizzy(10) + if(30 to 39) + H.adjustOrganLoss(ORGAN_SLOT_LIVER,5) + if(40 to 49) + H.adjustOrganLoss(ORGAN_SLOT_HEART,5) + if(50 to 59) + H.adjustOrganLoss(ORGAN_SLOT_STOMACH,5) + if(60 to 69) + H.adjustOrganLoss(ORGAN_SLOT_EYES,10) + if(70 to 79) + H.adjustOrganLoss(ORGAN_SLOT_EARS,10) + if(80 to 89) + H.adjustOrganLoss(ORGAN_SLOT_LUNGS,10) + if(90 to 99) + H.adjustOrganLoss(ORGAN_SLOT_TONGUE,10) + if(100) + H.adjustOrganLoss(ORGAN_SLOT_BRAIN,20) + +/datum/status_effect/amok + id = "amok" + status_type = STATUS_EFFECT_REPLACE + alert_type = null + duration = 10 SECONDS + tick_interval = 1 SECONDS + +/datum/status_effect/amok/on_apply(mob/living/afflicted) + . = ..() + to_chat(owner, "Your feel filled with a rage that is not your own!") + +/datum/status_effect/amok/tick() + . = ..() + var/prev_intent = owner.a_intent + owner.a_intent = INTENT_HARM + + var/list/mob/living/targets = list() + for(var/mob/living/potential_target in oview(owner, 1)) + if(IS_HERETIC(potential_target) || potential_target.mind?.has_antag_datum(/datum/antagonist/heretic_monster)) + continue + targets += potential_target + if(LAZYLEN(targets)) + owner.log_message(" attacked someone due to the amok debuff.", LOG_ATTACK) //the following attack will log itself + owner.ClickOn(pick(targets)) + owner.a_intent = prev_intent + +/datum/status_effect/cloudstruck + id = "cloudstruck" + status_type = STATUS_EFFECT_REPLACE + duration = 3 SECONDS + on_remove_on_mob_delete = TRUE + ///This overlay is applied to the owner for the duration of the effect. + var/mutable_appearance/mob_overlay + +/datum/status_effect/cloudstruck/on_creation(mob/living/new_owner, set_duration) + if(isnum(set_duration)) + duration = set_duration + . = ..() + +/datum/status_effect/cloudstruck/on_apply() + . = ..() + mob_overlay = mutable_appearance('icons/effects/eldritch.dmi', "cloud_swirl", ABOVE_MOB_LAYER) + owner.overlays += mob_overlay + owner.update_icon() + ADD_TRAIT(owner, TRAIT_BLIND, "cloudstruck") + return TRUE + +/datum/status_effect/cloudstruck/on_remove() + . = ..() + if(QDELETED(owner)) + return + REMOVE_TRAIT(owner, TRAIT_BLIND, "cloudstruck") + if(owner) + owner.overlays -= mob_overlay + owner.update_icon() + +/datum/status_effect/cloudstruck/Destroy() + . = ..() + QDEL_NULL(mob_overlay) + + /datum/status_effect/stacking/saw_bleed id = "saw_bleed" tick_interval = 6 diff --git a/code/game/atoms.dm b/code/game/atoms.dm index dfa9776489..6e1692c17e 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -1121,3 +1121,11 @@ max_grav = max(G.setting,max_grav) return max_grav return SSmapping.level_trait(T.z, ZTRAIT_GRAVITY) + +/** + * Causes effects when the atom gets hit by a rust effect from heretics + * + * Override this if you want custom behaviour in whatever gets hit by the rust + */ +/atom/proc/rust_heretic_act() + return diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm index da33da5f43..63574c6475 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm @@ -191,6 +191,24 @@ SSticker.mode_result = "loss - rev heads killed" SSticker.news_report = REVS_LOSE +////////////////////////////////////////////// +// // +// HERETIC SMUGGLER // +// // +////////////////////////////////////////////// + +/datum/dynamic_ruleset/latejoin/heretic_smuggler + name = "Heretic Smuggler" + antag_datum = /datum/antagonist/heretic + antag_flag = ROLE_HERETIC + protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") + restricted_roles = list("AI","Cyborg") + required_candidates = 1 + weight = 4 + cost = 10 + requirements = list(40,30,20,10,10,10,10,10,10,10) + repeatable = TRUE + ////////////////////////////////////////////// // // // BLOODSUCKERS // diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm index edaadeae1c..766ddcefc7 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm @@ -143,6 +143,46 @@ changeling.add_antag_datum(new_antag) return TRUE +////////////////////////////////////////////// +// // +// ELDRITCH CULT // +// // +////////////////////////////////////////////// + +/datum/dynamic_ruleset/roundstart/heretics + name = "Heretics" + antag_flag = ROLE_HERETIC + antag_datum = /datum/antagonist/heretic + protected_roles = list("Prisoner","Security Officer", "Warden", "Detective", "Head of Security", "Captain") + restricted_roles = list("AI", "Cyborg") + required_candidates = 1 + weight = 3 + cost = 20 + scaling_cost = 15 + requirements = list(50,45,45,40,35,20,20,15,10,10) + antag_cap = list(1,1,1,1,2,2,2,2,3,3) + + +/datum/dynamic_ruleset/roundstart/heretics/pre_execute() + . = ..() + var/num_ecult = antag_cap[indice_pop] * (scaled_times + 1) + + for (var/i = 1 to num_ecult) + var/mob/picked_candidate = pick_n_take(candidates) + assigned += picked_candidate.mind + picked_candidate.mind.restricted_roles = restricted_roles + picked_candidate.mind.special_role = ROLE_HERETIC + return TRUE + +/datum/dynamic_ruleset/roundstart/heretics/execute() + + for(var/c in assigned) + var/datum/mind/cultie = c + var/datum/antagonist/heretic/new_antag = new antag_datum() + cultie.add_antag_datum(new_antag) + + return TRUE + ////////////////////////////////////////////// // // // WIZARDS // diff --git a/code/game/gamemodes/eldritch_cult/eldritch_cult.dm b/code/game/gamemodes/eldritch_cult/eldritch_cult.dm new file mode 100644 index 0000000000..20a129a5a3 --- /dev/null +++ b/code/game/gamemodes/eldritch_cult/eldritch_cult.dm @@ -0,0 +1,67 @@ +/datum/game_mode/heretics + name = "heresy" + config_tag = "heresy" + antag_flag = ROLE_HERETIC + false_report_weight = 5 + restricted_jobs = list("AI", "Cyborg") + protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") //citadel change - adds HoP, CE, CMO, and RD to heretic role blacklist + required_players = 15 + required_enemies = 1 + recommended_enemies = 4 + reroll_friendly = 1 + enemy_minimum_age = 0 + round_ends_with_antag_death = 0 + + announce_span = "danger" + announce_text = "Heretics have been spotted on the station!\n\ + Heretics: Accomplish your objectives.\n\ + Crew: Do not let the madman succeed!" + + var/ecult_possible = 4 //hard limit on culties if scaling is turned off + var/num_ecult = 1 + var/list/culties = list() + +/datum/game_mode/heretics/pre_setup() + + if(CONFIG_GET(flag/protect_roles_from_antagonist)) + restricted_jobs += protected_jobs + + if(CONFIG_GET(flag/protect_assistant_from_antagonist)) + restricted_jobs += "Assistant" + + + var/esc = CONFIG_GET(number/ecult_scaling_coeff) + if(esc) + num_ecult = min(max(1, min(round(num_players() / (esc * 2)) + 2, round(num_players() / esc))),4) + else + num_ecult = max(1, min(num_players(), ecult_possible)) + + for(var/i in 1 to num_ecult) + if(!antag_candidates.len) + break + var/datum/mind/cultie = antag_pick(antag_candidates) + antag_candidates -= cultie + cultie.special_role = ROLE_HERETIC + cultie.restricted_roles = restricted_jobs + culties += cultie + + var/enough_heretics = culties.len > 0 + + if(!enough_heretics) + setup_error = "Not enough heretic candidates" + return FALSE + else + for(var/antag in culties) + return TRUE + +/datum/game_mode/heretics/post_setup() + for(var/c in culties) + var/datum/mind/cultie = c + log_game("[key_name(cultie)] has been selected as a heretic!") + var/datum/antagonist/heretic/new_antag = new() + cultie.add_antag_datum(new_antag) + return ..() + +/datum/game_mode/heretics/generate_report() + return "Cybersun Industries has announced that they have successfully raided a high-security library. The library contained a very dangerous book that was \ + shown to posses anomalous properties. We suspect that the book has been copied over, Stay vigilant!" diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 2415770e66..047e6c955f 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -12,9 +12,9 @@ density = FALSE state_open = TRUE circuit = /obj/item/circuitboard/machine/sleeper - req_access = list(ACCESS_CMO) //Used for reagent deletion and addition of non medicines + var/efficiency = 1 - var/min_health = 30 + var/min_health = -25 var/list/available_chems var/controls_inside = FALSE var/list/possible_chems = list( @@ -31,32 +31,13 @@ /obj/machinery/sleeper/Initialize() . = ..() - create_reagents(500, NO_REACT) + // if(mapload) + // component_parts -= circuit + // QDEL_NULL(circuit) occupant_typecache = GLOB.typecache_living update_icon() reset_chem_buttons() RefreshParts() - add_inital_chems() - new_occupant_dir = dir - -/obj/machinery/sleeper/setDir(newdir) - . = ..() - new_occupant_dir = dir - -/obj/machinery/sleeper/on_deconstruction() - var/obj/item/reagent_containers/sleeper_buffer/buffer = new (loc) - buffer.volume = reagents.maximum_volume - buffer.reagents.maximum_volume = reagents.maximum_volume - reagents.trans_to(buffer.reagents, reagents.total_volume) - -/obj/machinery/sleeper/proc/add_inital_chems() - for(var/i in available_chems) - var/datum/reagent/R = reagents.has_reagent(i) - if(!R) - reagents.add_reagent(i, (20)) - continue - if(R.volume < 20) - reagents.add_reagent(i, (20 - R.volume)) /obj/machinery/sleeper/RefreshParts() var/E @@ -73,15 +54,11 @@ available_chems |= possible_chems[i] reset_chem_buttons() - //Total container size 500 - 2000u - if(reagents) - reagents.maximum_volume = (500*E) - - /obj/machinery/sleeper/update_icon_state() - icon_state = initial(icon_state) if(state_open) - icon_state += "-open" + icon_state = "[initial(icon_state)]-open" + else + icon_state = initial(icon_state) /obj/machinery/sleeper/container_resist(mob/living/user) visible_message("[occupant] emerges from [src]!", @@ -98,10 +75,12 @@ /obj/machinery/sleeper/open_machine() if(!state_open && !panel_open) + // flick("[initial(icon_state)]-anim", src) ..() /obj/machinery/sleeper/close_machine(mob/user) if((isnull(user) || istype(user)) && state_open && !panel_open) + // flick("[initial(icon_state)]-anim", src) ..(user) var/mob/living/mob_occupant = occupant if(mob_occupant && mob_occupant.stat != DEAD) @@ -112,46 +91,23 @@ if (. & EMP_PROTECT_SELF) return if(is_operational() && occupant) - var/datum/reagent/R = pick(reagents.reagent_list) + var/datum/reagent/R = pick(reagents.reagent_list) //cit specific inject_chem(R.type, occupant) open_machine() - //Is this too much? + //Is this too much? Cit specific if(severity == EMP_HEAVY) var/chem = pick(available_chems) available_chems -= chem available_chems += get_random_reagent_id() reset_chem_buttons() -/obj/machinery/sleeper/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/reagent_containers/sleeper_buffer)) - var/obj/item/reagent_containers/sleeper_buffer/SB = I - if((SB.reagents.total_volume + reagents.total_volume) < reagents.maximum_volume) - SB.reagents.trans_to(reagents, SB.reagents.total_volume) - visible_message("[user] places the [SB] into the [src].") - qdel(SB) - return - else - SB.reagents.trans_to(reagents, SB.reagents.total_volume) - visible_message("[user] adds as much as they can to the [src] from the [SB].") - return - if(istype(I, /obj/item/reagent_containers)) - var/obj/item/reagent_containers/RC = I - if(RC.reagents.total_volume == 0) - to_chat(user, "The [I] is empty!") - for(var/datum/reagent/R in RC.reagents.reagent_list) - if((obj_flags & EMAGGED) || (allowed(usr))) - break - if(!istype(R, /datum/reagent/medicine)) - visible_message("The [src] gives out a hearty boop and rejects the [I]. The Sleeper's screen flashes with a pompous \"Medicines only, please.\"") - return - RC.reagents.trans_to(reagents, 1000) - visible_message("[user] adds as much as they can to the [src] from the [I].") - return - - /obj/machinery/sleeper/MouseDrop_T(mob/target, mob/user) - if(user.stat || user.lying || !Adjacent(user) || !user.Adjacent(target) || !iscarbon(target) || !user.IsAdvancedToolUser()) + if(user.stat || !Adjacent(user) || !user.Adjacent(target) || !iscarbon(target) || !user.IsAdvancedToolUser()) return + if(isliving(user)) + var/mob/living/L = user + if(!(L.mobility_flags & MOBILITY_STAND)) + return close_machine(target) /obj/machinery/sleeper/screwdriver_act(mob/living/user, obj/item/I) @@ -187,23 +143,9 @@ visible_message("[usr] pries open [src].", "You pry open [src].") open_machine() -/obj/machinery/sleeper/AltClick(mob/user) - . = ..() - if(!user.canUseTopic(src, !hasSiliconAccessInArea(user))) - return - if(state_open) - close_machine() - else - open_machine() - return TRUE - -/obj/machinery/sleeper/examine(mob/user) - . = ..() - . += "Alt-click [src] to [state_open ? "close" : "open"] it." - /obj/machinery/sleeper/ui_state(mob/user) if(controls_inside) - return GLOB.notcontained_state + return GLOB.contained_state return GLOB.default_state /obj/machinery/sleeper/ui_interact(mob/user, datum/tgui/ui) @@ -212,6 +154,18 @@ ui = new(user, src, "Sleeper", name) ui.open() +/obj/machinery/sleeper/AltClick(mob/user) + if(!user.canUseTopic(src, !issilicon(user))) + return + if(state_open) + close_machine() + else + open_machine() + +/obj/machinery/sleeper/examine(mob/user) + . = ..() + . += "Alt-click [src] to [state_open ? "close" : "open"] it." + /obj/machinery/sleeper/process() ..() check_nap_violations() @@ -221,22 +175,13 @@ /obj/machinery/sleeper/ui_data() var/list/data = list() - var/chemical_list = list() - var/blood_percent = 0 - data["occupied"] = occupant ? 1 : 0 data["open"] = state_open - data["blood_levels"] = blood_percent - data["blood_status"] = "Patient either has no blood, or does not require it to function." - data["chemical_list"] = chemical_list data["chems"] = list() for(var/chem in available_chems) - var/datum/reagent/R = reagents.has_reagent(chem) - R = GLOB.chemical_reagents_list[chem] - data["synthchems"] += list(list("name" = R.name, "id" = R.type, "synth_allowed" = synth_allowed(chem))) - for(var/datum/reagent/R in reagents.reagent_list) - data["chems"] += list(list("name" = R.name, "id" = R.type, "vol" = R.volume, "purity" = R.purity, "allowed" = chem_allowed(R.type))) + var/datum/reagent/R = GLOB.chemical_reagents_list[chem] + data["chems"] += list(list("name" = R.name, "id" = R.type, "allowed" = chem_allowed(chem))) data["occupant"] = list() var/mob/living/mob_occupant = occupant @@ -264,40 +209,10 @@ data["occupant"]["fireLoss"] = mob_occupant.getFireLoss() data["occupant"]["cloneLoss"] = mob_occupant.getCloneLoss() data["occupant"]["brainLoss"] = mob_occupant.getOrganLoss(ORGAN_SLOT_BRAIN) - - if(mob_occupant.reagents.reagent_list.len) + data["occupant"]["reagents"] = list() + if(mob_occupant.reagents && mob_occupant.reagents.reagent_list.len) for(var/datum/reagent/R in mob_occupant.reagents.reagent_list) - chemical_list += list(list("name" = R.name, "volume" = R.volume)) - else - chemical_list = "Patient has no reagents." - - data["occupant"]["failing_organs"] = list() - var/mob/living/carbon/C = mob_occupant - if(C) - for(var/obj/item/organ/Or in C.getFailingOrgans()) - if(istype(Or, /obj/item/organ/brain)) - continue - data["occupant"]["failing_organs"] += list(list("name" = Or.name)) - - if(istype(C)) //Non-carbons shouldn't be able to enter sleepers, but this is to prevent runtimes if something ever breaks - if(mob_occupant.has_dna()) // Blood-stuff is mostly a copy-paste from the healthscanner. - blood_percent = round((C.blood_volume / BLOOD_VOLUME_NORMAL)*100) - var/blood_id = C.get_blood_id() - var/blood_warning = "" - if(blood_percent < 80) - blood_warning = "Patient has low blood levels." - if(blood_percent < 60) - blood_warning = "Patient has DANGEROUSLY low blood levels." - if(blood_id) - var/blood_type = C.dna.blood_type - if(!(blood_id in GLOB.blood_reagent_types)) // special blood substance - var/datum/reagent/R = GLOB.chemical_reagents_list[blood_id] - if(R) - blood_type = R.name - else - blood_type = blood_id - data["blood_status"] = "Patient has [blood_type] type blood. [blood_warning]" - data["blood_levels"] = blood_percent + data["occupant"]["reagents"] += list(list("name" = R.name, "volume" = R.volume)) return data /obj/machinery/sleeper/ui_act(action, params) @@ -314,37 +229,14 @@ . = TRUE if("inject") var/chem = text2path(params["chem"]) - var/amount = text2num(params["volume"]) if(!is_operational() || !mob_occupant || isnull(chem)) return if(mob_occupant.health < min_health && chem != /datum/reagent/medicine/epinephrine) return - if(inject_chem(chem, usr, amount)) + if(inject_chem(chem, usr)) . = TRUE if(scrambled_chems && prob(5)) to_chat(usr, "Chemical system re-route detected, results may not be as expected!") - if("synth") - var/chem = text2path(params["chem"]) - if(!is_operational()) - return - reagents.add_reagent(chem_buttons[chem], 10) //other_purity = 0.75 for when the mechanics are in - if("purge") - var/chem = text2path(params["chem"]) - if(allowed(usr)) - if(!is_operational()) - return - reagents.remove_reagent(chem, 1000) - return - if(chem in available_chems) - if(!is_operational()) - return - /*var/datum/reagent/R = reagents.has_reagent(chem) //For when purity effects are in - if(R.purity < 0.8)*/ - reagents.remove_reagent(chem, 1000) - else - visible_message("Access Denied.") - playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0) - /obj/machinery/sleeper/emag_act(mob/user) . = ..() @@ -353,10 +245,9 @@ to_chat(user, "You scramble the sleeper's user interface!") return TRUE -//trans to -/obj/machinery/sleeper/proc/inject_chem(chem, mob/user, volume = 10) - if(chem_allowed(chem)) - reagents.trans_id_to(occupant, chem, volume)//emag effect kicks in here so that the "intended" chem is used for all checks, for extra FUUU +/obj/machinery/sleeper/proc/inject_chem(chem, mob/user) + if((chem in available_chems) && chem_allowed(chem)) + occupant.reagents.add_reagent(chem_buttons[chem], 10) //emag effect kicks in here so that the "intended" chem is used for all checks, for extra FUUU if(user) log_combat(user, occupant, "injected [chem] into", addition = "via [src]") return TRUE @@ -369,14 +260,6 @@ var/occ_health = mob_occupant.health > min_health || chem == /datum/reagent/medicine/epinephrine return amount && occ_health -/obj/machinery/sleeper/proc/synth_allowed(chem) - var/datum/reagent/R = reagents.has_reagent(chem) - if(!R) - return TRUE - if(R.volume < 50) - return TRUE - return FALSE - /obj/machinery/sleeper/proc/reset_chem_buttons() scrambled_chems = FALSE LAZYINITLIST(chem_buttons) @@ -416,23 +299,6 @@ component_parts += new /obj/item/stack/cable_coil(null) RefreshParts() -/obj/machinery/sleeper/clockwork - name = "soothing sleeper" - desc = "A large cryogenics unit built from brass. Its surface is pleasantly cool the touch." - icon_state = "sleeper_clockwork" - enter_message = "You hear the gentle hum and click of machinery, and are lulled into a sense of peace." - possible_chems = list(list(/datum/reagent/medicine/epinephrine, /datum/reagent/medicine/salbutamol, /datum/reagent/medicine/bicaridine, - /datum/reagent/medicine/kelotane, /datum/reagent/medicine/oculine, /datum/reagent/medicine/inacusiate, /datum/reagent/medicine/mannitol)) - -/obj/machinery/sleeper/clockwork/process() - if(occupant && isliving(occupant)) - var/mob/living/L = occupant - if(GLOB.clockwork_vitality) //If there's Vitality, the sleeper has passive healing - GLOB.clockwork_vitality = max(0, GLOB.clockwork_vitality - 1) - L.adjustBruteLoss(-1) - L.adjustFireLoss(-1) - L.adjustOxyLoss(-5) - /obj/machinery/sleeper/old icon_state = "oldpod" @@ -443,8 +309,6 @@ idle_power_usage = 3000 circuit = /obj/item/circuitboard/machine/sleeper/party var/leddit = FALSE //Get it like reddit and lead alright fine - ui_x = 310 - ui_y = 400 controls_inside = TRUE possible_chems = list( @@ -477,3 +341,23 @@ /obj/machinery/sleeper/party/emag_act(mob/user) ..() leddit = TRUE + +/obj/machinery/sleeper/clockwork + name = "soothing sleeper" + desc = "A large cryogenics unit built from brass. Its surface is pleasantly cool the touch." + icon_state = "sleeper_clockwork" + enter_message = "You hear the gentle hum and click of machinery, and are lulled into a sense of peace." + possible_chems = list( + list(/datum/reagent/medicine/epinephrine, /datum/reagent/medicine/salbutamol, /datum/reagent/medicine/bicaridine, /datum/reagent/medicine/kelotane, /datum/reagent/medicine/oculine, /datum/reagent/medicine/inacusiate, /datum/reagent/medicine/mannitol) + ) //everything is available at start + fair_market_price = 0 //it's free + +/obj/machinery/sleeper/clockwork/process() + ..() + if(occupant && isliving(occupant)) + var/mob/living/L = occupant + if(GLOB.clockwork_vitality) //If there's Vitality, the sleeper has passive healing + GLOB.clockwork_vitality = max(0, GLOB.clockwork_vitality - 1) + L.adjustBruteLoss(-1) + L.adjustFireLoss(-1) + L.adjustOxyLoss(-5) diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm index 3faf6d5727..bd4ac5f2d1 100644 --- a/code/game/machinery/_machinery.dm +++ b/code/game/machinery/_machinery.dm @@ -92,6 +92,7 @@ Class Procs: pressure_resistance = 15 max_integrity = 200 layer = BELOW_OBJ_LAYER //keeps shit coming out of the machine from ending up underneath it. + flags_1 = DEFAULT_RICOCHET_1 flags_ricochet = RICOCHET_HARD ricochet_chance_mod = 0.3 @@ -546,3 +547,6 @@ Class Procs: . = . % 9 AM.pixel_x = -8 + ((.%3)*8) AM.pixel_y = -8 + (round( . / 3)*8) + +/obj/machinery/rust_heretic_act() + take_damage(500, BRUTE, "melee", 1) diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index 530a287134..b34e97d374 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -310,6 +310,17 @@ opacity = 0 glass = TRUE +/obj/machinery/door/airlock/bronze + name = "bronze airlock" + icon = 'icons/obj/doors/airlocks/clockwork/pinion_airlock.dmi' + overlays_file = 'icons/obj/doors/airlocks/clockwork/overlays.dmi' + assemblytype = /obj/structure/door_assembly/door_assembly_bronze + +/obj/machinery/door/airlock/bronze/seethru + assemblytype = /obj/structure/door_assembly/door_assembly_bronze/seethru + opacity = 0 + glass = TRUE + ////////////////////////////////// /* Station2 Airlocks diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 4248e1684f..d4ba70bb6c 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -11,7 +11,7 @@ max_integrity = 350 armor = list("melee" = 30, "bullet" = 30, "laser" = 20, "energy" = 20, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 70) CanAtmosPass = ATMOS_PASS_DENSITY - flags_1 = PREVENT_CLICK_UNDER_1 + flags_1 = PREVENT_CLICK_UNDER_1|DEFAULT_RICOCHET_1 ricochet_chance_mod = 0.8 interaction_flags_atom = INTERACT_ATOM_UI_INTERACT diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 2d41575e70..228c2e1f52 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -298,7 +298,7 @@ /obj/machinery/door/firedoor/border_only icon = 'icons/obj/doors/edge_Doorfire.dmi' - flags_1 = ON_BORDER_1 + flags_1 = ON_BORDER_1|DEFAULT_RICOCHET_1 CanAtmosPass = ATMOS_PASS_PROC /obj/machinery/door/firedoor/border_only/closed @@ -320,7 +320,7 @@ to_chat(M, "You pull [M.pulling] through [src] right as it closes") M.pulling.forceMove(T1) M.start_pulling(M2) - + for(var/mob/living/M in T2) if(M.stat == CONSCIOUS && M.pulling && M.pulling.loc == T1 && !M.pulling.anchored && M.pulling.move_resist <= M.move_force) var/mob/living/M2 = M.pulling diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index c9c577231e..22bacf6aa1 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -11,7 +11,7 @@ integrity_failure = 0 armor = list("melee" = 20, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 70, "acid" = 100) visible = FALSE - flags_1 = ON_BORDER_1 + flags_1 = ON_BORDER_1|DEFAULT_RICOCHET_1 opacity = 0 CanAtmosPass = ATMOS_PASS_PROC interaction_flags_machine = INTERACT_MACHINE_WIRES_IF_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OPEN_SILICON | INTERACT_MACHINE_REQUIRES_SILICON | INTERACT_MACHINE_OPEN diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 5b691607db..f16a5f9292 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -153,6 +153,9 @@ /obj/mecha/get_cell() return cell +/obj/mecha/rust_heretic_act() + take_damage(500, BRUTE) + /obj/mecha/Destroy() go_out() var/mob/living/silicon/ai/AI diff --git a/code/game/objects/effects/spawners/bundle.dm b/code/game/objects/effects/spawners/bundle.dm index 3f2701c03f..b75df644eb 100644 --- a/code/game/objects/effects/spawners/bundle.dm +++ b/code/game/objects/effects/spawners/bundle.dm @@ -168,3 +168,26 @@ items = list( /obj/item/clothing/mask/gas/sexymime, /obj/item/clothing/under/rank/civilian/mime/sexy) + +/obj/effect/spawner/bundle/crate/Initialize(mapload) + if(items && items.len) + var/turf/T = get_turf(src) + var/obj/structure/closet/LC = locate(/obj/structure/closet) in T + if(LC) + for(var/path in items) + new path(LC) + return INITIALIZE_HINT_QDEL + +/obj/effect/spawner/bundle/crate/mosin + name = "Mosin-Nagant spawner" + items = list( + /obj/item/gun/ballistic/shotgun/boltaction, + /obj/item/ammo_box/a762 + ) + +/obj/effect/spawner/bundle/crate/surplusrifle + name = "surplus rifle spawner" + items = list( + /obj/item/gun/ballistic/automatic/surplus, + /obj/item/ammo_box/magazine/m10mm/rifle + ) diff --git a/code/game/objects/effects/temporary_visuals/miscellaneous.dm b/code/game/objects/effects/temporary_visuals/miscellaneous.dm index 396f463136..8d5458333c 100644 --- a/code/game/objects/effects/temporary_visuals/miscellaneous.dm +++ b/code/game/objects/effects/temporary_visuals/miscellaneous.dm @@ -139,6 +139,23 @@ /obj/effect/temp_visual/dir_setting/curse/hand icon_state = "cursehand" +/obj/effect/temp_visual/bsa_splash + name = "\improper Bluespace energy wave" + desc = "A massive, rippling wave of bluepace energy, all rapidly exhausting itself the moment it leaves the concentrated beam of light." + icon = 'icons/effects/beam_splash.dmi' + icon_state = "beam_splash_l" + layer = ABOVE_ALL_MOB_LAYER + pixel_y = -16 + duration = 50 + +/obj/effect/temp_visual/bsa_splash/Initialize(mapload, dir) + . = ..() + switch(dir) + if(WEST) + icon_state = "beam_splash_w" + if(EAST) + icon_state = "beam_splash_e" + /obj/effect/temp_visual/wizard name = "water" icon = 'icons/mob/mob.dmi' diff --git a/code/game/objects/items/dualsaber.dm b/code/game/objects/items/dualsaber.dm index 9db9449fcb..cf5c3d4fc5 100644 --- a/code/game/objects/items/dualsaber.dm +++ b/code/game/objects/items/dualsaber.dm @@ -51,6 +51,10 @@ // no attacking while blocking block_lock_attacking = TRUE block_projectile_mitigation = 75 + // more efficient vs projectiles + block_stamina_efficiency_override = list( + TEXT_ATTACK_TYPE_PROJECTILE = 4 + ) parry_time_windup = 0 parry_time_active = 8 @@ -65,14 +69,20 @@ parry_imperfect_falloff_percent = 10 parry_efficiency_to_counterattack = 100 parry_efficiency_considered_successful = 25 // VERY generous - parry_efficiency_perfect = 90 parry_failed_stagger_duration = 3 SECONDS parry_failed_clickcd_duration = CLICK_CD_MELEE - // more efficient vs projectiles - block_stamina_efficiency_override = list( - TEXT_ATTACK_TYPE_PROJECTILE = 4 - ) +/obj/item/dualsaber/active_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return, override_direction) + if((attack_type & ATTACK_TYPE_PROJECTILE) && is_energy_reflectable_projectile(object)) + block_return[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_RETURN_TO_SENDER + return BLOCK_SUCCESS | BLOCK_REDIRECTED | BLOCK_SHOULD_REDIRECT + return ..() + +/obj/item/dualsaber/on_active_parry(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/block_return, parry_efficiency, parry_time) + . = ..() + if(parry_efficiency >= 90) // perfect parry + block_return[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_RETURN_TO_SENDER + . |= BLOCK_SHOULD_REDIRECT /obj/item/dualsaber/Initialize() . = ..() @@ -342,12 +352,30 @@ name = "divine lightblade" desc = "A giant blade of bright and holy light, said to cut down the wicked with ease." force = 5 - block_chance = 50 armour_penetration = 0 + block_parry_data = /datum/block_parry_data/chaplain var/chaplain_spawnable = TRUE can_reflect = FALSE obj_flags = UNIQUE_RENAME +/datum/block_parry_data/chaplain + parry_stamina_cost = 12 + parry_time_windup = 2 + parry_time_active = 5 + parry_time_spindown = 3 + // parry_flags = PARRY_DEFAULT_HANDLE_FEEDBACK + parry_time_perfect = 1 + parry_time_perfect_leeway = 1 + parry_imperfect_falloff_percent = 7.5 + parry_efficiency_to_counterattack = 100 + parry_efficiency_considered_successful = 80 + parry_efficiency_perfect = 120 + parry_efficiency_perfect_override = list( + TEXT_ATTACK_TYPE_PROJECTILE = 30, + ) + parry_failed_stagger_duration = 3 SECONDS + parry_failed_clickcd_duration = 2 SECONDS + /obj/item/dualsaber/hypereutactic/chaplain/ComponentInitialize() . = ..() AddComponent(/datum/component/two_handed, force_unwielded=5, force_wielded=20, \ diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm index 609cc3b719..979fa7e958 100644 --- a/code/game/objects/items/granters.dm +++ b/code/game/objects/items/granters.dm @@ -253,7 +253,7 @@ user.set_nutrition(NUTRITION_LEVEL_STARVING + 50) /obj/item/book/granter/spell/blind - spell = /obj/effect/proc_holder/spell/targeted/trigger/blind + spell = /obj/effect/proc_holder/spell/pointed/trigger/blind spellname = "blind" icon_state ="bookblind" desc = "This book looks blurry, no matter how you look at it." @@ -265,7 +265,7 @@ user.blind_eyes(10) /obj/item/book/granter/spell/mindswap - spell = /obj/effect/proc_holder/spell/targeted/mind_transfer + spell = /obj/effect/proc_holder/spell/pointed/mind_transfer spellname = "mindswap" icon_state ="bookmindswap" desc = "This book's cover is pristine, though its pages look ragged and torn." @@ -289,7 +289,7 @@ if(stored_swap == user) to_chat(user,"You stare at the book some more, but there doesn't seem to be anything else to learn...") return - var/obj/effect/proc_holder/spell/targeted/mind_transfer/swapper = new + var/obj/effect/proc_holder/spell/pointed/mind_transfer/swapper = new if(swapper.cast(list(stored_swap), user, TRUE, TRUE)) to_chat(user,"You're suddenly somewhere else... and someone else?!") to_chat(stored_swap,"Suddenly you're staring at [src] again... where are you, who are you?!") @@ -324,7 +324,7 @@ user.DefaultCombatKnockdown(40) /obj/item/book/granter/spell/barnyard - spell = /obj/effect/proc_holder/spell/targeted/barnyardcurse + spell = /obj/effect/proc_holder/spell/pointed/barnyardcurse spellname = "barnyard" icon_state ="bookhorses" desc = "This book is more horse than your mind has room for." diff --git a/code/game/objects/items/implants/implant_uplink.dm b/code/game/objects/items/implants/implant_uplink.dm index 9895c1e34c..0cac8f838a 100644 --- a/code/game/objects/items/implants/implant_uplink.dm +++ b/code/game/objects/items/implants/implant_uplink.dm @@ -9,7 +9,7 @@ /obj/item/implant/uplink/Initialize(mapload, _owner) . = ..() - AddComponent(/datum/component/uplink, _owner, TRUE, FALSE, null, starting_tc, GLOB.not_incapacitated_state) + AddComponent(/datum/component/uplink, _owner, TRUE, FALSE, null, starting_tc) /obj/item/implanter/uplink name = "implanter (uplink)" diff --git a/code/game/objects/items/pet_carrier.dm b/code/game/objects/items/pet_carrier.dm index c6b5a7e224..a4b12dd629 100644 --- a/code/game/objects/items/pet_carrier.dm +++ b/code/game/objects/items/pet_carrier.dm @@ -240,7 +240,31 @@ custom_materials = list(/datum/material/glass = 1000, /datum/material/bluespace = 600) escape_time = 200 //equal to the time of a bluespace bodybag alternate_escape_time = 100 + + ///gas supply for simplemobs so they don't die var/datum/gas_mixture/occupant_gas_supply + ///level until the reagent gets INGEST ed instead of TOUCH + var/sipping_level = 150 + ///prob50 level of sipping + var/sipping_probably = 99 + ///chem transfer rate / second + var/transfer_rate = 5 + +/obj/item/pet_carrier/bluespace/Initialize() + . = ..() + create_reagents(300, OPENCONTAINER, DEFAULT_REAGENTS_VALUE) //equivalent of bsbeakers + +/obj/item/pet_carrier/bluespace/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/item/pet_carrier/bluespace/attack_self(mob/living/user) + ..() + if(reagents) + if(open) + reagents.reagents_holder_flags = OPENCONTAINER + else + reagents.reagents_holder_flags = NONE /obj/item/pet_carrier/bluespace/update_icon_state() if(open) @@ -248,11 +272,28 @@ else icon_state = "bluespace_jar" -/obj/item/pet_carrier/bluespace/throw_impact() +/obj/item/pet_carrier/bluespace/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) . = ..() //delete the item upon impact, releasing the creature inside (this is handled by its deletion) if(occupants.len) loc.visible_message("The bluespace jar smashes, releasing [occupants[1]]!") + + if(reagents?.total_volume && ismob(hit_atom) && hit_atom.reagents) + reagents.total_volume *= rand(5,10) * 0.1 //Not all of it makes contact with the target + var/mob/M = hit_atom + var/R = reagents.log_list() + hit_atom.visible_message("[M] has been splashed with something!", \ + "[M] has been splashed with something!") + var/turf/TT = get_turf(hit_atom) + var/throwerstring + if(thrownby) + log_combat(thrownby, M, "splashed", R) + var/turf/AT = get_turf(thrownby) + throwerstring = " THROWN BY [key_name(thrownby)] at [AT] (AREACOORD(AT)]" + log_reagent("SPLASH: [src] mob throw_impact() onto [key_name(hit_atom)] at [TT] ([AREACOORD(TT)])[throwerstring] - [R]") + reagents.reaction(hit_atom, TOUCH) + reagents.clear_reagents() + playsound(src, "shatter", 70, 1) qdel(src) @@ -260,21 +301,24 @@ . = ..() if(!occupant_gas_supply) occupant_gas_supply = new + if(isanimal(occupant)) var/mob/living/simple_animal/animal = occupant occupant_gas_supply[/datum/gas/oxygen] = 0.0064 //make sure it has some gas in so it isn't depressurized occupant_gas_supply.set_temperature(animal.minbodytemp) //simple animals only care about temperature/pressure when their turf isnt a location - else - if(ishuman(occupant)) //humans require resistance to cold/heat and living in no air while inside, and lose this when outside - ADD_TRAIT(occupant, TRAIT_RESISTCOLD, "bluespace_container_cold_resist") - ADD_TRAIT(occupant, TRAIT_RESISTHEAT, "bluespace_container_heat_resist") - ADD_TRAIT(occupant, TRAIT_NOBREATH, "bluespace_container_no_breath") - ADD_TRAIT(occupant, TRAIT_RESISTHIGHPRESSURE, "bluespace_container_resist_high_pressure") - ADD_TRAIT(occupant, TRAIT_RESISTLOWPRESSURE, "bluespace_container_resist_low_pressure") + + if(ishuman(occupant)) //humans require resistance to cold/heat and living in no air while inside, and lose this when outside + START_PROCESSING(SSobj, src) + ADD_TRAIT(occupant, TRAIT_RESISTCOLD, "bluespace_container_cold_resist") + ADD_TRAIT(occupant, TRAIT_RESISTHEAT, "bluespace_container_heat_resist") + ADD_TRAIT(occupant, TRAIT_NOBREATH, "bluespace_container_no_breath") + ADD_TRAIT(occupant, TRAIT_RESISTHIGHPRESSURE, "bluespace_container_resist_high_pressure") + ADD_TRAIT(occupant, TRAIT_RESISTLOWPRESSURE, "bluespace_container_resist_low_pressure") /obj/item/pet_carrier/bluespace/remove_occupant(mob/living/occupant) . = ..() if(ishuman(occupant)) + STOP_PROCESSING(SSobj, src) REMOVE_TRAIT(occupant, TRAIT_RESISTCOLD, "bluespace_container_cold_resist") REMOVE_TRAIT(occupant, TRAIT_RESISTHEAT, "bluespace_container_heat_resist") REMOVE_TRAIT(occupant, TRAIT_NOBREATH, "bluespace_container_no_breath") @@ -287,6 +331,18 @@ occupant_gas_supply = new return occupant_gas_supply +/obj/item/pet_carrier/bluespace/process() + if(!reagents) + return + for(var/mob/living/L in occupants) + if(!ishuman(L)) + continue + if((reagents.total_volume >= sipping_level) || ((reagents.total_volume >= sipping_probably) && prob(50))) //sipp + reagents.reaction(L, INGEST) //consume + reagents.trans_to(L, transfer_rate) + else + reagents.reaction(L, TOUCH, show_message = FALSE) + /obj/item/pet_carrier/bluespace/load_occupant(mob/living/user, mob/living/target) if(..()) name = "[initial(name)] ([target])" diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index 44205f4884..a3da49ed89 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -688,6 +688,18 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) icon_state = "scrubpuppy" item_state = "scrubpuppy" +/obj/item/toy/plush/borgplushie/meddrake + name = "MediDrake Plushie" + desc = "An adorable stuffed toy of a Medidrake." + icon_state = "meddrake" + item_state = "meddrake" + +/obj/item/toy/plush/borgplushie/secdrake + name = "SecDrake Plushie" + desc = "An adorable stuffed toy of a Secdrake." + icon_state = "secdrake" + item_state = "secdrake" + /obj/item/toy/plush/aiplush name = "AI plushie" desc = "A little stuffed toy AI core... it appears to be malfunctioning." diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 11df83230c..9ea8c9c689 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -239,6 +239,9 @@ /obj/item/stack/medical/suture/one amount = 1 +/obj/item/stack/medical/suture/five + amount = 5 + /obj/item/stack/medical/suture/medicated name = "medicated suture" icon_state = "suture_purp" @@ -319,6 +322,9 @@ /obj/item/stack/medical/mesh/one amount = 1 +/obj/item/stack/medical/mesh/five + amount = 5 + /obj/item/stack/medical/mesh/advanced name = "advanced regenerative mesh" desc = "An advanced mesh made with aloe extracts and sterilizing chemicals, used to treat burns." diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 5f6341ea21..305c2ab276 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -672,6 +672,10 @@ GLOBAL_LIST_INIT(brass_recipes, list ( \ GLOBAL_LIST_INIT(bronze_recipes, list ( \ new/datum/stack_recipe("wall gear", /obj/structure/girder/bronze, 2, time = 20, one_per_turf = TRUE, on_floor = TRUE), \ null, + new/datum/stack_recipe("directional bronze window", /obj/structure/window/bronze/unanchored, time = 0, on_floor = TRUE, window_checks = TRUE), \ + new/datum/stack_recipe("fulltile bronze window", /obj/structure/window/bronze/fulltile/unanchored, 2, time = 0, on_floor = TRUE, window_checks = TRUE), \ + new/datum/stack_recipe("pinion airlock assembly", /obj/structure/door_assembly/door_assembly_bronze, 4, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("bronze pinion airlock assembly", /obj/structure/door_assembly/door_assembly_bronze/seethru, 4, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("bronze hat", /obj/item/clothing/head/bronze), \ new/datum/stack_recipe("bronze suit", /obj/item/clothing/suit/bronze), \ new/datum/stack_recipe("bronze boots", /obj/item/clothing/shoes/bronze), \ @@ -679,9 +683,10 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ new/datum/stack_recipe("bronze chair", /obj/structure/chair/bronze, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("bronze bar stool", /obj/structure/chair/stool/bar/bronze, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("bronze stool", /obj/structure/chair/stool/bronze, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \ + new /datum/stack_recipe("bronze floor tiles", /obj/item/stack/tile/bronze, 1, 4, 20), \ )) -/obj/item/stack/tile/bronze +/obj/item/stack/sheet/bronze name = "brass" desc = "On closer inspection, what appears to be wholly-unsuitable-for-building brass is actually more structurally stable bronze." singular_name = "bronze sheet" @@ -690,27 +695,21 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ icon = 'icons/obj/stack_objects.dmi' custom_materials = list(/datum/material/bronze = MINERAL_MATERIAL_AMOUNT) resistance_flags = FIRE_PROOF | ACID_PROOF - throwforce = 10 - max_amount = 50 - throw_speed = 1 - throw_range = 3 - turf_type = /turf/open/floor/bronze - novariants = FALSE grind_results = list(/datum/reagent/iron = 5, /datum/reagent/copper = 3) //we have no "tin" reagent so this is the closest thing - merge_type = /obj/item/stack/tile/bronze + merge_type = /obj/item/stack/sheet/bronze tableVariant = /obj/structure/table/bronze material_type = /datum/material/bronze -/obj/item/stack/tile/bronze/attack_self(mob/living/user) +/obj/item/stack/sheet/bronze/attack_self(mob/living/user) if(is_servant_of_ratvar(user)) //still lets them build with it, just gives a message to_chat(user, "Wha... what is this cheap imitation crap? This isn't brass at all!") ..() -/obj/item/stack/tile/bronze/get_main_recipes() +/obj/item/stack/sheet/bronze/get_main_recipes() . = ..() . += GLOB.bronze_recipes -/obj/item/stack/tile/bronze/thirty +/obj/item/stack/sheet/bronze/thirty amount = 30 /* diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 13fca1e8fe..0d85e897d2 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -513,3 +513,12 @@ icon_state = "material_tile" turf_type = /turf/open/floor/material material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS + +/obj/item/stack/tile/bronze + name = "bronze tile" + singular_name = "bronze floor tile" + desc = "A tile made out of bronze. Looks like clockwork." + icon_state = "material_tile" + color = "#92661A" + turf_type = /turf/open/floor/bronze + custom_materials = list(/datum/material/bronze = 250) diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm index 7532aacbfa..28850e79a2 100644 --- a/code/game/objects/items/storage/book.dm +++ b/code/game/objects/items/storage/book.dm @@ -47,41 +47,58 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible", user.visible_message("[user] is offering [user.p_them()]self to [deity_name]! It looks like [user.p_theyre()] trying to commit suicide!") return (BRUTELOSS) -/obj/item/storage/book/bible/attack_self(mob/living/carbon/human/H) - if(!istype(H)) +/obj/item/storage/book/bible/attack_self(mob/living/carbon/human/user) + if(!istype(user)) return - // If H is the Chaplain, we can set the icon_state of the bible (but only once!) - if(!GLOB.bible_icon_state && H.job == "Chaplain") - var/dat = "
| [nicename] |
=0&&p+"s"||"Dispensing..."})]})})})}}},function(e,t,n){"use strict";t.__esModule=!0,t.ForbiddenLore=void 0;var o=n(0),r=n(16),a=n(34),i=n(1),c=n(3),l=n(2);t.ForbiddenLore=function(e,t){var n=(0,i.useBackend)(t),d=n.act,u=n.data,s=u.charges,p=(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,c.Section,{title:"Research Eldritch Knowledge",children:["Charges left : ",s,null!==p?p.map((function(e){return(0,o.createComponentVNode)(2,c.Section,{title:e.name,level:2,children:[(0,o.createComponentVNode)(2,c.Box,{bold:!0,my:1,children:[e.path," path"]}),(0,o.createComponentVNode)(2,c.Box,{my:1,children:[(0,o.createComponentVNode)(2,c.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,c.Box,{italic:!0,my:1,children:e.flavour}),(0,o.createComponentVNode)(2,c.Box,{my:1,children:e.desc})]},e.name)})):(0,o.createComponentVNode)(2,c.Box,{children:"No more knowledge can be found"})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Gateway=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.Gateway=function(){return(0,o.createComponentVNode)(2,i.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,c)})})};var c=function(e,t){var n=(0,r.useBackend)(t),i=n.act,c=n.data,l=c.gateway_present,d=void 0!==l&&l,u=c.gateway_status,s=void 0!==u&&u,p=c.current_target,m=void 0===p?null:p,f=c.destinations,h=void 0===f?[]:f;return d?m?(0,o.createComponentVNode)(2,a.Section,{title:m.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 i("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.availible&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,onClick:function(){return i("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 i("linkup")},children:"Linkup"})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.GlandDispenser=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.GlandDispenser=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data.glands,d=void 0===l?[]:l;return(0,o.createComponentVNode)(2,i.Window,{width:300,height:338,theme:"abductor",children:(0,o.createComponentVNode)(2,i.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 c("dispense",{gland_id:e.id})}},e.id)}))})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Gps=void 0;var o=n(0),r=n(16),a=n(34),i=n(14),c=n(120),l=n(1),d=n(3),u=n(2),s=function(e){return(0,r.map)(parseFloat)(e.split(", "))};t.Gps=function(e,t){var n=(0,l.useBackend)(t),p=n.act,m=n.data,f=m.currentArea,h=m.currentCoords,C=m.globalmode,g=m.power,b=m.tag,N=m.updating,v=(0,a.flow)([(0,r.map)((function(e,t){var n=e.dist&&Math.round((0,c.vecLength)((0,c.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}))])(m.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:g?"On":"Off",selected:g,onClick:function(){return p("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 p("rename")}})}),(0,o.createComponentVNode)(2,d.LabeledList.Item,{label:"Scan Mode",children:(0,o.createComponentVNode)(2,d.Button,{icon:N?"unlock":"lock",content:N?"AUTO":"MANUAL",color:!N&&"bad",onClick:function(){return p("updating")}})}),(0,o.createComponentVNode)(2,d.LabeledList.Item,{label:"Range",children:(0,o.createComponentVNode)(2,d.Button,{icon:"sync",content:C?"MAXIMUM":"LOCAL",selected:!C,onClick:function(){return p("globalmode")}})})]})}),!!g&&(0,o.createFragment)([(0,o.createComponentVNode)(2,d.Section,{title:"Current Location",children:(0,o.createComponentVNode)(2,d.Box,{fontSize:"18px",children:[f," (",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"})]}),v.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,i.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)]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.GravityGenerator=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);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,i.Window,{width:400,height:165,children:(0,o.createComponentVNode)(2,i.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,c)]})})};var c=function(e,t){var n=(0,r.useBackend)(t),i=n.act,c=n.data,l=c.breaker,d=c.charge_count,u=c.charging_state,s=c.on,p=c.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:!p,onClick:function(){return i("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"})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.GulagItemReclaimer=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.GulagItemReclaimer=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=l.mobs,u=void 0===d?[]:d;return(0,o.createComponentVNode)(2,i.Window,{width:325,height:400,resizable:!0,children:(0,o.createComponentVNode)(2,i.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 c("release_items",{mobref:e.mob})}})})]},e.mob)}))})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.GulagTeleporterConsole=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.GulagTeleporterConsole=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=l.teleporter,u=l.teleporter_lock,s=l.teleporter_state_open,p=l.teleporter_location,m=l.beacon,f=l.beacon_location,h=l.id,C=l.id_name,g=l.can_teleport,b=l.goal,N=void 0===b?0:b,v=l.prisoner,V=void 0===v?{}:v;return(0,o.createComponentVNode)(2,i.Window,{width:350,height:295,children:(0,o.createComponentVNode)(2,i.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 c("toggle_open")}}),(0,o.createComponentVNode)(2,a.Button,{icon:u?"lock":"unlock",content:u?"Locked":"Unlocked",selected:u,disabled:s,onClick:function(){return c("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 c("scan_teleporter")}}),children:d?p:"Not Connected"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Receiver Beacon",color:m?"good":"bad",buttons:!m&&(0,o.createComponentVNode)(2,a.Button,{content:"Reconnect",onClick:function(){return c("scan_beacon")}}),children:m?f:"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?C:"No ID",onClick:function(){return c("handle_id")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Point Goal",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:N,width:"48px",minValue:1,maxValue:1e3,onChange:function(e,t){return c("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:!g,textAlign:"center",color:"bad",onClick:function(){return c("teleport")}})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Holodeck=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.Holodeck=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=l.can_toggle_safety,u=l.default_programs,s=void 0===u?[]:u,p=l.emag_programs,m=void 0===p?[]:p,f=l.emagged,h=l.program;return(0,o.createComponentVNode)(2,i.Window,{width:400,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Default Programs",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:f?"unlock":"lock",content:"Safeties",color:"bad",disabled:!d,selected:!f,onClick:function(){return c("safety")}}),children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name.substring(11),textAlign:"center",selected:e.type===h,onClick:function(){return c("load_program",{type:e.type})}},e.type)}))}),!!f&&(0,o.createComponentVNode)(2,a.Section,{title:"Dangerous Programs",children:m.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name.substring(11),color:"bad",textAlign:"center",selected:e.type===h,onClick:function(){return c("load_program",{type:e.type})}},e.type)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Holopad=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.Holopad=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data.calling;return(0,o.createComponentVNode)(2,i.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,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,c)})]})};var c=function(e,t){var n=(0,r.useBackend)(t),i=n.act,c=n.data,l=c.on_network,d=c.on_cooldown,u=c.allowed,s=c.disk,p=c.disk_record,m=c.replay_mode,f=c.loop_mode,h=c.record_mode,C=c.holo_calls,g=void 0===C?[]:C;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 i("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 i("holocall",{headcall:u})}})}),g.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 i(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||m||h,onClick:function(){return i("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:m?"pause":"play",content:m?"Stop":"Replay",selected:m,disabled:h||!p,onClick:function(){return i("replay_mode")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:f?"Looping":"Loop",selected:f,disabled:h||!p,onClick:function(){return i("loop_mode")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"exchange-alt",content:"Change Offset",disabled:!m,onClick:function(){return i("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:p&&!h||m,onClick:function(){return i("record_mode")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"trash",content:"Clear Recording",color:"bad",disabled:!p||m||h,onClick:function(){return i("record_clear")}})]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.HypnoChair=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.HypnoChair=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data;return(0,o.createComponentVNode)(2,i.Window,{width:375,height:480,children:(0,o.createComponentVNode)(2,i.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 c("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 c("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 c("interrogate")}}),1===l.interrogating&&(0,o.createComponentVNode)(2,a.Icon,{name:"cog",color:"orange",spin:!0})]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ImplantChair=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.ImplantChair=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data;return(0,o.createComponentVNode)(2,i.Window,{width:375,height:280,children:(0,o.createComponentVNode)(2,i.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 c("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 c("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})]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.InfraredEmitter=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.InfraredEmitter=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=l.on,u=l.visible;return(0,o.createComponentVNode)(2,i.Window,{width:225,height:110,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:"Status",children:(0,o.createComponentVNode)(2,a.Button,{icon:d?"power-off":"times",content:d?"On":"Off",selected:d,onClick:function(){return c("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 c("visibility")}})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Intellicard=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.Intellicard=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=l.name,u=l.isDead,s=l.isBraindead,p=l.health,m=l.wireless,f=l.radio,h=l.wiping,C=l.laws,g=void 0===C?[]:C,b=u||s;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,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 c("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:p,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:m,onClick:function(){return c("wireless")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"microphone",content:"Subspace Radio",selected:f,onClick:function(){return c("radio")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Laws",children:g.map((function(e){return(0,o.createComponentVNode)(2,a.BlockQuote,{children:e},e)}))})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Jukebox=void 0;var o=n(0),r=n(16),a=n(34),i=n(1),c=n(3),l=n(2);t.Jukebox=function(e,t){var n=(0,i.useBackend)(t),d=n.act,u=n.data,s=u.active,p=u.track_selected,m=u.track_length,f=u.track_beat,h=u.volume,C=(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,c.Section,{title:"Song Player",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:s?"pause":"play",content:s?"Stop":"Play",selected:s,onClick:function(){return d("toggle")}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Track Selected",children:(0,o.createComponentVNode)(2,c.Dropdown,{"overflow-y":"scroll",width:"240px",options:C.map((function(e){return e.name})),disabled:s,selected:p||"Select a Track",onSelected:function(e){return d("select_track",{track:e})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Track Length",children:p?m:"No Track Selected"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Track Beat",children:[p?f:"No Track Selected",1===f?" beat":" beats"]})]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Machine Settings",children:(0,o.createComponentVNode)(2,c.LabeledControls,{justify:"center",children:(0,o.createComponentVNode)(2,c.LabeledControls.Item,{label:"Volume",children:(0,o.createComponentVNode)(2,c.Box,{position:"relative",children:[(0,o.createComponentVNode)(2,c.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,c.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,c.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,c.Button,{fluid:!0,position:"absolute",top:"34px",right:"-22px",color:"transparent",icon:"undo",onClick:function(){return d("set_volume",{volume:"reset"})}})]})})})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.KeycardAuth=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.KeycardAuth=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data;return(0,o.createComponentVNode)(2,i.Window,{width:375,height:125,children:(0,o.createComponentVNode)(2,i.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 c("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 c("red_alert")},content:"Red Alert"}),(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",fluid:!0,onClick:function(){return c("emergency_maint")},content:"Emergency Maintenance Access"}),(0,o.createComponentVNode)(2,a.Button,{icon:"meteor",fluid:!0,onClick:function(){return c("bsa_unlock")},content:"Bluespace Artillery Unlock"})],4)],0)})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.LaborClaimConsole=void 0;var o=n(0),r=n(19),a=n(1),i=n(3),c=n(2);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,p=d.ores,m=d.status_info,f=d.unclaimed_points;return(0,o.createComponentVNode)(2,c.Window,{width:315,height:430,children:(0,o.createComponentVNode)(2,c.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:"Status",children:m}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Shuttle controls",children:(0,o.createComponentVNode)(2,i.Button,{content:"Move shuttle",disabled:!u,onClick:function(){return l("move_shuttle")}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Points",children:s}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Unclaimed points",buttons:(0,o.createComponentVNode)(2,i.Button,{content:"Claim points",disabled:!f,onClick:function(){return l("claim_points")}}),children:f})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Material values",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:"Material"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:"Value"})]}),p.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,r.toTitleCase)(e.ore)}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{color:"label",inline:!0,children:e.value})})]},e.ore)}))]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.LanguageMenu=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.LanguageMenu=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=l.admin_mode,u=l.is_living,s=l.omnitongue,p=l.languages,m=void 0===p?[]:p,f=l.unknown_languages,h=void 0===f?[]:f;return(0,o.createComponentVNode)(2,i.Window,{title:"Language Menu",width:700,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Known Languages",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:m.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 c("select_default",{language_name:e.name})}}),!!d&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Grant",onClick:function(){return c("grant_language",{language_name:e.name})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Remove",onClick:function(){return c("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 c("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 c("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)}))})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.LaunchpadRemote=void 0;var o=n(0),r=n(1),a=n(3),i=n(2),c=n(181);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,i.Window,{title:"Briefcase Launchpad Remote",width:300,height:240,theme:"syndicate",children:(0,o.createComponentVNode)(2,i.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,c.LaunchpadControl,{topLevel:!0})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MafiaPanel=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.MafiaPanel=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=l.players,u=l.actions,s=l.phase,p=l.roleinfo,m=l.role_theme,f=l.admin_controls,h=l.judgement_phase,C=l.timeleft,g=l.all_roles;return(0,o.createComponentVNode)(2,i.Window,{title:"Mafia",theme:m,width:650,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,a.Section,{title:s,children:!!p&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.TimeDisplay,{auto:"down",value:C})}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createVNode)(1,"b",null,[(0,o.createTextVNode)("You are a "),p.role],0)}),(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createVNode)(1,"b",null,p.desc,0)})],4)}),(0,o.createComponentVNode)(2,a.Flex,{children:!!u&&u.map((function(e){return(0,o.createComponentVNode)(2,a.Flex.Item,{children:(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return c("mf_action",{atype:e})},children:e})},e)}))}),!!f&&(0,o.createComponentVNode)(2,a.Section,{title:"ADMIN CONTROLS",backgroundColor:"red",children:["THESE ARE DEBUG, THEY WILL BREAK THE GAME, DO NOT TOUCH ",(0,o.createVNode)(1,"br"),"Also because an admin did it: do not gib/delete/etc anyone! It will runtime the game to death! ",(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button,{icon:"arrow-right",onClick:function(){return c("next_phase")},children:"Next Phase"}),(0,o.createComponentVNode)(2,a.Button,{icon:"home",onClick:function(){return c("players_home")},children:"Send All Players Home"}),(0,o.createComponentVNode)(2,a.Button,{icon:"radiation",onClick:function(){return c("new_game")},children:"New Game"}),(0,o.createVNode)(1,"br"),(0,o.createComponentVNode)(2,a.Button,{icon:"skull",onClick:function(){return c("nuke")},color:"black",children:"Nuke (delete datum + landmarks, hope it fixes everything!)"})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Players",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:!!d&&d.map((function(e){return(0,o.createComponentVNode)(2,a.LabeledList.Item,{className:"candystripe",label:e.name,children:[!e.alive&&(0,o.createComponentVNode)(2,a.Box,{color:"red",children:"DEAD"}),e.votes!==undefined&&!!e.alive&&(0,o.createFragment)([(0,o.createTextVNode)("Votes : "),e.votes,(0,o.createTextVNode)(" ")],0),!!e.actions&&e.actions.map((function(t){return(0,o.createComponentVNode)(2,a.Button,{onClick:function(){return c("mf_targ_action",{atype:t,target:e.ref})},children:t},t)}))]},e.ref)}))})}),!!h&&(0,o.createComponentVNode)(2,a.Section,{title:"JUDGEMENT",children:(0,o.createComponentVNode)(2,a.Flex,{justify:"space-around",children:[(0,o.createComponentVNode)(2,a.Button,{icon:"smile-beam",color:"good",onClick:function(){return c("vote_innocent")},children:"INNOCENT!"}),"Use these buttons to vote the accused innocent or guilty!",(0,o.createComponentVNode)(2,a.Button,{icon:"angry",color:"bad",onClick:function(){return c("vote_guilty")},children:"GUILTY!"})]})}),(0,o.createComponentVNode)(2,a.Flex,{mt:1,spacing:1,children:[(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,basis:0,children:(0,o.createComponentVNode)(2,a.Section,{title:"Roles",minHeight:10,children:!!g&&g.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:(0,o.createComponentVNode)(2,a.Flex,{justify:"space-between",children:[e,(0,o.createComponentVNode)(2,a.Button,{content:"?",onClick:function(){return c("mf_lookup",{atype:e.slice(0,-3)})}})]})},e)}))})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:2,basis:0,children:(0,o.createComponentVNode)(2,a.Section,{title:"Notes",minHeight:10,children:p!==undefined&&!!p.action_log&&p.action_log.map((function(e){return(0,o.createComponentVNode)(2,a.Box,{children:e},e)}))})})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MalfunctionModulePicker=void 0;var o=n(0),r=n(1),a=n(2),i=n(128);t.MalfunctionModulePicker=function(e,t){var n=(0,r.useBackend)(t),c=(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,i.GenericUplink,{currencyAmount:c,currencySymbol:"PT"})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MechBayPowerConsole=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.MechBayPowerConsole=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data.recharge_port,d=l&&l.mech,u=d&&d.cell;return(0,o.createComponentVNode)(2,i.Window,{width:400,height:200,children:(0,o.createComponentVNode)(2,i.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 c("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]})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MedicalKiosk=void 0;var o=n(0),r=(n(19),n(1)),a=n(3),i=n(2);t.MedicalKiosk=function(e,t){var n=(0,r.useBackend)(t),m=(n.act,n.data),f=(0,r.useSharedState)(t,"scanIndex")[0],h=m.active_status_1,C=m.active_status_2,g=m.active_status_3,b=m.active_status_4;return(0,o.createComponentVNode)(2,i.Window,{width:575,height:420,resizable:!0,children:(0,o.createComponentVNode)(2,i.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,c,{index:1,icon:"procedures",name:"General Health Scan",description:"Reads back exact values of your general health scan."}),(0,o.createComponentVNode)(2,c,{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,c,{index:3,icon:"radiation-alt",name:"Neurological/Radiological Scan",description:"Provides information about brain trauma and radiation."}),(0,o.createComponentVNode)(2,c,{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===f&&(0,o.createComponentVNode)(2,d),!!C&&2===f&&(0,o.createComponentVNode)(2,u),!!g&&3===f&&(0,o.createComponentVNode)(2,s),!!b&&4===f&&(0,o.createComponentVNode)(2,p)]})})};var c=function(e,t){var n=e.index,i=e.name,c=e.description,l=e.icon,d=(0,r.useBackend)(t),u=d.act,s=d.data,p=(0,r.useSharedState)(t,"scanIndex"),m=p[0],f=p[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&&m===n,tooltip:c,tooltipPosition:"right",content:i,onClick:function(){h||u("beginScan_"+n),f(n)}})})]})},l=function(e,t){var n=(0,r.useBackend)(t),i=n.act,c=n.data,l=c.kiosk_cost,d=c.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 i("clearTarget")},content:"Reset Scanner"})]})},d=function(e,t){var n=(0,r.useBackend)(t).data,i=n.patient_health,c=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:i/100,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i}),"%"]})}),(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:c/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c})})}),(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,i=n.patient_status,c=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:i}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disease Status",children:c}),(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,i=n.clone_health,c=n.brain_damage,l=n.brain_health,d=n.rad_contamination_status,u=n.rad_contamination_value,s=n.rad_sickness_status,p=n.rad_sickness_value,m=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:i/100,color:"good",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i})})}),(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:c/100,color:"good",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c})})}),(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:m}),(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:[p,"%"]}),(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,"%"]})]})})},p=function(e,t){var n=(0,r.useBackend)(t).data,i=n.chemical_list,c=void 0===i?[]:i,l=n.overdose_list,d=void 0===l?[]:l,u=n.addict_list,s=void 0===u?[]:u,p=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===c.length&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No reagents detected."}),c.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:p})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MiningVendor=void 0;var o=n(0),r=n(6),a=n(1),i=n(3),c=n(2);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,c.Window,{width:425,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,i.Section,{title:"User",children:d.user&&(0,o.createComponentVNode)(2,i.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,i.Box,{color:"light-gray",children:["No registered ID card!",(0,o.createVNode)(1,"br"),"Please contact your local HoP!"]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Equipment",children:(0,o.createComponentVNode)(2,i.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.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,i.Table.Cell,{children:(0,o.createComponentVNode)(2,i.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)}))})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Mint=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.Mint=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=l.inserted_materials||[];return(0,o.createComponentVNode)(2,i.Window,{children:(0,o.createComponentVNode)(2,i.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 c(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 c("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."]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Mule=void 0;var o=n(0),r=n(1),a=n(3),i=n(2),c=n(61);t.Mule=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.on,s=d.cell,p=d.cellPercent,m=d.load,f=d.mode,h=d.modeStatus,C=d.haspai,g=d.autoReturn,b=d.autoPickup,N=d.reportDelivery,v=d.destination,V=d.home,y=d.id,k=d.destinations,x=void 0===k?[]:k,_=d.locked&&!d.siliconUser;return(0,o.createComponentVNode)(2,i.Window,{width:350,height:425,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,c.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?p/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:f})})}),(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:m?"good":"average",children:m||"None"})})})]})]}),!_&&(0,o.createComponentVNode)(2,a.Section,{title:"Controls",buttons:(0,o.createFragment)([!!m&&(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Unload",onClick:function(){return l("unload")}}),!!C&&(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:y,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:v||"None",options:x,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:x,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:g,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:N,content:"Report Delivery",onClick:function(){return l("report")}})]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteChamberControlContent=t.NaniteChamberControl=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.NaniteChamberControl=function(e,t){return(0,o.createComponentVNode)(2,i.Window,{width:380,height:570,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,c)})})};var c=function(e,t){var n=(0,r.useBackend)(t),i=n.act,c=n.data,l=c.status_msg,d=c.locked,u=c.occupant_name,s=c.has_nanites,p=c.nanite_volume,m=c.regen_rate,f=c.safety_threshold,h=c.cloud_id,C=c.scan_level;if(l)return(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:l});var g=c.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 i("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 i("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:p}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Growth Rate",children:m})]})}),(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:f,minValue:0,maxValue:500,width:"39px",onChange:function(e,t){return i("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 i("set_cloud",{value:t})}})})]})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Programs",level:2,children:g.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}),C>=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"]})]})})]}),C>=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"]})]})})})]}),C>=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)}))})}),C>=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 i("nanite_injection")}})],4)})};t.NaniteChamberControlContent=c},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteCloudControl=t.NaniteCloudBackupDetails=t.NaniteCloudBackupList=t.NaniteInfoBox=t.NaniteDiskBox=void 0;var o=n(0),r=n(1),a=n(3),i=n(2),c=function(e,t){var n=(0,r.useBackend)(t).data,i=n.has_disk,c=n.has_program,d=n.disk;return i?c?(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=c;var l=function(e,t){var n=e.program,r=n.name,i=n.desc,c=n.activated,l=n.use_rate,d=n.can_trigger,u=n.trigger_cost,s=n.trigger_cooldown,p=n.activation_code,m=n.deactivation_code,f=n.kill_code,h=n.trigger_code,C=n.timer_restart,g=n.timer_shutdown,b=n.timer_trigger,N=n.timer_trigger_delay,v=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:c?"good":"bad",children:c?"Activated":"Deactivated"}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{mr:1,children:i}),(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:p}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:m}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:f}),!!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:[C," s"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown",children:[g," 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:[N," s"]})],4)]})})})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Extra Settings",level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:v.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),i=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 i("set_view",{view:e.cloud_id})}},e.cloud_id)}))};t.NaniteCloudBackupList=d;var u=function(e,t){var n=(0,r.useBackend)(t),i=n.act,c=n.data,d=c.current_view,u=c.disk,s=c.has_program,p=c.cloud_backup,m=u&&u.can_rule||!1;if(!p)return(0,o.createComponentVNode)(2,a.NoticeBox,{children:"ERROR: Backup not found"});var f=c.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 i("upload_program")}}),children:f.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 i("remove_program",{program_id:e.id})}}),children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,l,{program:e}),(!!m||!!e.has_rules)&&(0,o.createComponentVNode)(2,a.Section,{mt:-2,title:"Rules",level:2,buttons:!!m&&(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Add Rule from Disk",color:"good",onClick:function(){return i("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 i("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,p=s.has_disk,m=s.current_view,f=s.new_backup_id;return(0,o.createComponentVNode)(2,i.Window,{width:375,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,i.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:!p,onClick:function(){return l("eject")}}),children:(0,o.createComponentVNode)(2,c)}),(0,o.createComponentVNode)(2,a.Section,{title:"Cloud Storage",buttons:m?(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:f,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)})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteProgramHub=void 0;var o=n(0),r=n(16),a=n(1),i=n(3),c=n(2);t.NaniteProgramHub=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.detail_view,s=d.disk,p=d.has_disk,m=d.has_program,f=d.programs,h=void 0===f?{}:f,C=(0,a.useSharedState)(t,"category"),g=C[0],b=C[1],N=h&&h[g]||[];return(0,o.createComponentVNode)(2,c.Window,{width:500,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,i.Section,{title:"Program Disk",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",onClick:function(){return l("eject")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"minus-circle",content:"Delete Program",onClick:function(){return l("clear")}})],4),children:p?m?(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Program Name",children:s.name}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Description",children:s.desc})]}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"No Program Installed"}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"Insert Disk"})}),(0,o.createComponentVNode)(2,i.Section,{title:"Programs",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:u?"info":"list",content:u?"Detailed":"Compact",onClick:function(){return l("toggle_details")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"sync",content:"Sync Research",onClick:function(){return l("refresh")}})],4),children:null!==h?(0,o.createComponentVNode)(2,i.Flex,{children:[(0,o.createComponentVNode)(2,i.Flex.Item,{minWidth:"110px",children:(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:(0,r.map)((function(e,t){var n=t.substring(0,t.length-8);return(0,o.createComponentVNode)(2,i.Tabs.Tab,{selected:t===g,onClick:function(){return b(t)},children:n},t)}))(h)})}),(0,o.createComponentVNode)(2,i.Flex.Item,{grow:1,basis:0,children:u?N.map((function(e){return(0,o.createComponentVNode)(2,i.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"download",content:"Download",disabled:!p,onClick:function(){return l("download",{program_id:e.id})}}),children:e.desc},e.id)})):(0,o.createComponentVNode)(2,i.LabeledList,{children:N.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.name,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"download",content:"Download",disabled:!p,onClick:function(){return l("download",{program_id:e.id})}})},e.id)}))})})]}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"No nanite programs are currently researched."})})]})})}},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(0),r=n(1),a=n(3),i=n(2),c=function(e,t){var n=(0,r.useBackend)(t),i=n.act,c=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:c.activation_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return i("set_code",{target_code:"activation",code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:c.deactivation_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return i("set_code",{target_code:"deactivation",code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:c.kill_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return i("set_code",{target_code:"kill",code:t})}})}),!!c.can_trigger&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:c.trigger_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return i("set_code",{target_code:"trigger",code:t})}})})]})})};t.NaniteCodes=c;var l=function(e,t){var n=(0,r.useBackend)(t),i=n.act,c=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:c.timer_restart,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return i("set_restart_timer",{delay:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:c.timer_shutdown,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return i("set_shutdown_timer",{delay:t})}})}),!!c.can_trigger&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Repeat Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:c.timer_trigger,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return i("set_trigger_timer",{delay:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:c.timer_trigger_delay,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return i("set_timer_trigger_delay",{delay:t})}})})],4)]})})};t.NaniteDelays=l;var d=function(e,t){var n=e.extra_setting,r=n.name,i=n.type,c={number:(0,o.createComponentVNode)(2,u,{extra_setting:n}),text:(0,o.createComponentVNode)(2,s,{extra_setting:n}),type:(0,o.createComponentVNode)(2,p,{extra_setting:n}),boolean:(0,o.createComponentVNode)(2,m,{extra_setting:n})};return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:r,children:c[i]})};t.NaniteExtraEntry=d;var u=function(e,t){var n=e.extra_setting,i=(0,r.useBackend)(t).act,c=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 i("set_extra_setting",{target_setting:c,value:t})}})};t.NaniteExtraNumber=u;var s=function(e,t){var n=e.extra_setting,i=(0,r.useBackend)(t).act,c=n.name,l=n.value;return(0,o.createComponentVNode)(2,a.Input,{value:l,width:"200px",onInput:function(e,t){return i("set_extra_setting",{target_setting:c,value:t})}})};t.NaniteExtraText=s;var p=function(e,t){var n=e.extra_setting,i=(0,r.useBackend)(t).act,c=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 i("set_extra_setting",{target_setting:c,value:e})}})};t.NaniteExtraType=p;var m=function(e,t){var n=e.extra_setting,i=(0,r.useBackend)(t).act,c=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 i("set_extra_setting",{target_setting:c})}})};t.NaniteExtraBoolean=m;t.NaniteProgrammer=function(e,t){return(0,o.createComponentVNode)(2,i.Window,{width:420,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,f)})})};var f=function(e,t){var n=(0,r.useBackend)(t),i=n.act,u=n.data,s=u.has_disk,p=u.has_program,m=u.name,f=u.desc,h=u.use_rate,C=u.can_trigger,g=u.trigger_cost,b=u.trigger_cooldown,N=u.activated,v=u.has_extra_settings,V=u.extra_settings,y=void 0===V?{}:V;return s?p?(0,o.createComponentVNode)(2,a.Section,{title:m,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return i("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:f}),(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}),!!C&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:g}),(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:N?"power-off":"times",content:N?"Active":"Inactive",selected:N,color:"bad",bold:!0,onClick:function(){return i("toggle_active")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,c)}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,l)})]}),!!v&&(0,o.createComponentVNode)(2,a.Section,{title:"Special",level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:y.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 i("eject")}})}):(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"Insert a nanite program disk"})};t.NaniteProgrammerContent=f},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteRemoteContent=t.NaniteRemote=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.NaniteRemote=function(e,t){return(0,o.createComponentVNode)(2,i.Window,{width:420,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,c)})})};var c=function(e,t){var n=(0,r.useBackend)(t),i=n.act,c=n.data,l=c.code,d=c.locked,u=c.mode,s=c.program_name,p=c.relay_code,m=c.comms,f=c.message,h=c.saved_settings,C=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 i("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 i("update_name",{name:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"save",content:"Save",onClick:function(){return i("save")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:m?"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 i("set_code",{code:t})}})}),!!m&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message",children:(0,o.createComponentVNode)(2,a.Input,{value:f,width:"270px",onChange:function(e,t){return i("set_message",{value:t})}})}),"Relay"===u&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Relay Code",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:p,minValue:0,maxValue:9999,width:"47px",step:1,stepPixelSize:2,onChange:function(e,t){return i("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 i("select_mode",{mode:e})}},e)}))})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Saved Settings",children:C.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"})]}),C.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 i("load",{save_id:e.id})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"minus",color:"bad",onClick:function(){return i("remove_save",{save_id:e.id})}})]})]},e.id)}))]}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No settings currently saved"})})],4)};t.NaniteRemoteContent=c},function(e,t,n){"use strict";t.__esModule=!0,t.NotificationPreferences=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.NotificationPreferences=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=(n.data.ignore||[]).sort((function(e,t){var n=e.desc.toLowerCase(),o=t.desc.toLowerCase();return n
'+(n?e:H(e,!0))+"\n":""+(n?e:H(e,!0))+"\n"},t.blockquote=function(e){return"\n"+e+"\n"},t.html=function(e){return e},t.heading=function(e,t,n,o){return this.options.headerIds?"
"+e+"
\n"},t.table=function(e,t){return t&&(t=""+t+""),""+e+""},t.br=function(){return this.options.xhtml?""+Z(l.message+"",!0)+"";throw l}}return ne.options=ne.setOptions=function(e){return X(ne.defaults,e),ee(ne.defaults),ne},ne.getDefaults=J,ne.defaults=te,ne.use=function(e){var t=X({},e);if(e.renderer&&function(){var n=ne.defaults.renderer||new U,o=function(t){var o=n[t];n[t]=function(){for(var r=arguments.length,a=new Array(r),i=0;i
=0&&p+"s"||"Dispensing..."})]})})})}}},function(e,t,n){"use strict";t.__esModule=!0,t.ForbiddenLore=void 0;var o=n(0),r=n(16),a=n(34),i=n(1),c=n(3),l=n(2);t.ForbiddenLore=function(e,t){var n=(0,i.useBackend)(t),d=n.act,u=n.data,s=u.charges,p=(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,c.Section,{title:"Research Eldritch Knowledge",children:["Charges left : ",s,null!==p?p.map((function(e){return(0,o.createComponentVNode)(2,c.Section,{title:e.name,level:2,children:[(0,o.createComponentVNode)(2,c.Box,{bold:!0,my:1,children:[e.path," path"]}),(0,o.createComponentVNode)(2,c.Box,{my:1,children:[(0,o.createComponentVNode)(2,c.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,c.Box,{italic:!0,my:1,children:e.flavour}),(0,o.createComponentVNode)(2,c.Box,{my:1,children:e.desc})]},e.name)})):(0,o.createComponentVNode)(2,c.Box,{children:"No more knowledge can be found"})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Gateway=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.Gateway=function(){return(0,o.createComponentVNode)(2,i.Window,{resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,c)})})};var c=function(e,t){var n=(0,r.useBackend)(t),i=n.act,c=n.data,l=c.gateway_present,d=void 0!==l&&l,u=c.gateway_status,s=void 0!==u&&u,p=c.current_target,m=void 0===p?null:p,h=c.destinations,f=void 0===h?[]:h;return d?m?(0,o.createComponentVNode)(2,a.Section,{title:m.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 i("deactivate")},children:"Deactivate"})]}):f.length?(0,o.createFragment)([!s&&(0,o.createComponentVNode)(2,a.NoticeBox,{children:"Gateway Unpowered"}),f.map((function(e){return(0,o.createComponentVNode)(2,a.Section,{title:e.name,children:e.availible&&(0,o.createComponentVNode)(2,a.Button,{fluid:!0,onClick:function(){return i("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 i("linkup")},children:"Linkup"})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.GlandDispenser=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.GlandDispenser=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data.glands,d=void 0===l?[]:l;return(0,o.createComponentVNode)(2,i.Window,{width:300,height:338,theme:"abductor",children:(0,o.createComponentVNode)(2,i.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 c("dispense",{gland_id:e.id})}},e.id)}))})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Gps=void 0;var o=n(0),r=n(16),a=n(34),i=n(14),c=n(120),l=n(1),d=n(3),u=n(2),s=function(e){return(0,r.map)(parseFloat)(e.split(", "))};t.Gps=function(e,t){var n=(0,l.useBackend)(t),p=n.act,m=n.data,h=m.currentArea,f=m.currentCoords,C=m.globalmode,g=m.power,b=m.tag,N=m.updating,v=(0,a.flow)([(0,r.map)((function(e,t){var n=e.dist&&Math.round((0,c.vecLength)((0,c.vecSubtract)(s(f),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}))])(m.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:g?"On":"Off",selected:g,onClick:function(){return p("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 p("rename")}})}),(0,o.createComponentVNode)(2,d.LabeledList.Item,{label:"Scan Mode",children:(0,o.createComponentVNode)(2,d.Button,{icon:N?"unlock":"lock",content:N?"AUTO":"MANUAL",color:!N&&"bad",onClick:function(){return p("updating")}})}),(0,o.createComponentVNode)(2,d.LabeledList.Item,{label:"Range",children:(0,o.createComponentVNode)(2,d.Button,{icon:"sync",content:C?"MAXIMUM":"LOCAL",selected:!C,onClick:function(){return p("globalmode")}})})]})}),!!g&&(0,o.createFragment)([(0,o.createComponentVNode)(2,d.Section,{title:"Current Location",children:(0,o.createComponentVNode)(2,d.Box,{fontSize:"18px",children:[h," (",f,")"]})}),(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"})]}),v.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,i.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)]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.GravityGenerator=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);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,i.Window,{width:400,height:165,children:(0,o.createComponentVNode)(2,i.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,c)]})})};var c=function(e,t){var n=(0,r.useBackend)(t),i=n.act,c=n.data,l=c.breaker,d=c.charge_count,u=c.charging_state,s=c.on,p=c.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:!p,onClick:function(){return i("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"})]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.GulagItemReclaimer=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.GulagItemReclaimer=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=l.mobs,u=void 0===d?[]:d;return(0,o.createComponentVNode)(2,i.Window,{width:325,height:400,resizable:!0,children:(0,o.createComponentVNode)(2,i.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 c("release_items",{mobref:e.mob})}})})]},e.mob)}))})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.GulagTeleporterConsole=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.GulagTeleporterConsole=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=l.teleporter,u=l.teleporter_lock,s=l.teleporter_state_open,p=l.teleporter_location,m=l.beacon,h=l.beacon_location,f=l.id,C=l.id_name,g=l.can_teleport,b=l.goal,N=void 0===b?0:b,v=l.prisoner,V=void 0===v?{}:v;return(0,o.createComponentVNode)(2,i.Window,{width:350,height:295,children:(0,o.createComponentVNode)(2,i.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 c("toggle_open")}}),(0,o.createComponentVNode)(2,a.Button,{icon:u?"lock":"unlock",content:u?"Locked":"Unlocked",selected:u,disabled:s,onClick:function(){return c("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 c("scan_teleporter")}}),children:d?p:"Not Connected"}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Receiver Beacon",color:m?"good":"bad",buttons:!m&&(0,o.createComponentVNode)(2,a.Button,{content:"Reconnect",onClick:function(){return c("scan_beacon")}}),children:m?h:"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:f?C:"No ID",onClick:function(){return c("handle_id")}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Point Goal",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:N,width:"48px",minValue:1,maxValue:1e3,onChange:function(e,t){return c("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:!g,textAlign:"center",color:"bad",onClick:function(){return c("teleport")}})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Holodeck=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.Holodeck=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=l.can_toggle_safety,u=l.default_programs,s=void 0===u?[]:u,p=l.emag_programs,m=void 0===p?[]:p,h=l.emagged,f=l.program;return(0,o.createComponentVNode)(2,i.Window,{width:400,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Default Programs",buttons:(0,o.createComponentVNode)(2,a.Button,{icon:h?"unlock":"lock",content:"Safeties",color:"bad",disabled:!d,selected:!h,onClick:function(){return c("safety")}}),children:s.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name.substring(11),textAlign:"center",selected:e.type===f,onClick:function(){return c("load_program",{type:e.type})}},e.type)}))}),!!h&&(0,o.createComponentVNode)(2,a.Section,{title:"Dangerous Programs",children:m.map((function(e){return(0,o.createComponentVNode)(2,a.Button,{fluid:!0,content:e.name.substring(11),color:"bad",textAlign:"center",selected:e.type===f,onClick:function(){return c("load_program",{type:e.type})}},e.type)}))})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Holopad=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.Holopad=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data.calling;return(0,o.createComponentVNode)(2,i.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,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,c)})]})};var c=function(e,t){var n=(0,r.useBackend)(t),i=n.act,c=n.data,l=c.on_network,d=c.on_cooldown,u=c.allowed,s=c.disk,p=c.disk_record,m=c.replay_mode,h=c.loop_mode,f=c.record_mode,C=c.holo_calls,g=void 0===C?[]:C;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 i("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 i("holocall",{headcall:u})}})}),g.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 i(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||m||f,onClick:function(){return i("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:m?"pause":"play",content:m?"Stop":"Replay",selected:m,disabled:f||!p,onClick:function(){return i("replay_mode")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"sync",content:h?"Looping":"Loop",selected:h,disabled:f||!p,onClick:function(){return i("loop_mode")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"exchange-alt",content:"Change Offset",disabled:!m,onClick:function(){return i("offset")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Recorder",children:[(0,o.createComponentVNode)(2,a.Button,{icon:f?"pause":"video",content:f?"End Recording":"Record",selected:f,disabled:p&&!f||m,onClick:function(){return i("record_mode")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"trash",content:"Clear Recording",color:"bad",disabled:!p||m||f,onClick:function(){return i("record_clear")}})]})]})})],4)}},function(e,t,n){"use strict";t.__esModule=!0,t.HypnoChair=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.HypnoChair=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data;return(0,o.createComponentVNode)(2,i.Window,{width:375,height:480,children:(0,o.createComponentVNode)(2,i.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 c("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 c("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 c("interrogate")}}),1===l.interrogating&&(0,o.createComponentVNode)(2,a.Icon,{name:"cog",color:"orange",spin:!0})]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.ImplantChair=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.ImplantChair=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data;return(0,o.createComponentVNode)(2,i.Window,{width:375,height:280,children:(0,o.createComponentVNode)(2,i.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 c("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 c("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})]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.InfraredEmitter=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.InfraredEmitter=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=l.on,u=l.visible;return(0,o.createComponentVNode)(2,i.Window,{width:225,height:110,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:"Status",children:(0,o.createComponentVNode)(2,a.Button,{icon:d?"power-off":"times",content:d?"On":"Off",selected:d,onClick:function(){return c("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 c("visibility")}})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Intellicard=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.Intellicard=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=l.name,u=l.isDead,s=l.isBraindead,p=l.health,m=l.wireless,h=l.radio,f=l.wiping,C=l.laws,g=void 0===C?[]:C,b=u||s;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,o.createComponentVNode)(2,a.Section,{title:d||"Empty Card",buttons:!!d&&(0,o.createComponentVNode)(2,a.Button,{icon:"trash",content:f?"Stop Wiping":"Wipe",disabled:u,onClick:function(){return c("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:p,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:m,onClick:function(){return c("wireless")}}),(0,o.createComponentVNode)(2,a.Button,{icon:"microphone",content:"Subspace Radio",selected:h,onClick:function(){return c("radio")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Laws",children:g.map((function(e){return(0,o.createComponentVNode)(2,a.BlockQuote,{children:e},e)}))})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Jukebox=void 0;var o=n(0),r=n(16),a=n(34),i=n(1),c=n(3),l=n(2);t.Jukebox=function(e,t){var n=(0,i.useBackend)(t),d=n.act,u=n.data,s=u.active,p=u.track_selected,m=u.track_length,h=u.track_beat,f=u.volume,C=(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,c.Section,{title:"Song Player",buttons:(0,o.createComponentVNode)(2,c.Button,{icon:s?"pause":"play",content:s?"Stop":"Play",selected:s,onClick:function(){return d("toggle")}}),children:(0,o.createComponentVNode)(2,c.LabeledList,{children:[(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Track Selected",children:(0,o.createComponentVNode)(2,c.Dropdown,{"overflow-y":"scroll",width:"240px",options:C.map((function(e){return e.name})),disabled:s,selected:p||"Select a Track",onSelected:function(e){return d("select_track",{track:e})}})}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Track Length",children:p?m:"No Track Selected"}),(0,o.createComponentVNode)(2,c.LabeledList.Item,{label:"Track Beat",children:[p?h:"No Track Selected",1===h?" beat":" beats"]})]})}),(0,o.createComponentVNode)(2,c.Section,{title:"Machine Settings",children:(0,o.createComponentVNode)(2,c.LabeledControls,{justify:"center",children:(0,o.createComponentVNode)(2,c.LabeledControls.Item,{label:"Volume",children:(0,o.createComponentVNode)(2,c.Box,{position:"relative",children:[(0,o.createComponentVNode)(2,c.Knob,{size:3.2,color:f>=50?"red":"green",value:f,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,c.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,c.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,c.Button,{fluid:!0,position:"absolute",top:"34px",right:"-22px",color:"transparent",icon:"undo",onClick:function(){return d("set_volume",{volume:"reset"})}})]})})})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.KeycardAuth=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.KeycardAuth=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data;return(0,o.createComponentVNode)(2,i.Window,{width:375,height:125,children:(0,o.createComponentVNode)(2,i.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 c("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 c("red_alert")},content:"Red Alert"}),(0,o.createComponentVNode)(2,a.Button,{icon:"wrench",fluid:!0,onClick:function(){return c("emergency_maint")},content:"Emergency Maintenance Access"}),(0,o.createComponentVNode)(2,a.Button,{icon:"meteor",fluid:!0,onClick:function(){return c("bsa_unlock")},content:"Bluespace Artillery Unlock"})],4)],0)})]})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.LaborClaimConsole=void 0;var o=n(0),r=n(19),a=n(1),i=n(3),c=n(2);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,p=d.ores,m=d.status_info,h=d.unclaimed_points;return(0,o.createComponentVNode)(2,c.Window,{width:315,height:430,children:(0,o.createComponentVNode)(2,c.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:"Status",children:m}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Shuttle controls",children:(0,o.createComponentVNode)(2,i.Button,{content:"Move shuttle",disabled:!u,onClick:function(){return l("move_shuttle")}})}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Points",children:s}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Unclaimed points",buttons:(0,o.createComponentVNode)(2,i.Button,{content:"Claim points",disabled:!h,onClick:function(){return l("claim_points")}}),children:h})]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Material values",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:"Material"}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:"Value"})]}),p.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,r.toTitleCase)(e.ore)}),(0,o.createComponentVNode)(2,i.Table.Cell,{collapsing:!0,textAlign:"right",children:(0,o.createComponentVNode)(2,i.Box,{color:"label",inline:!0,children:e.value})})]},e.ore)}))]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.LanguageMenu=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.LanguageMenu=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=l.admin_mode,u=l.is_living,s=l.omnitongue,p=l.languages,m=void 0===p?[]:p,h=l.unknown_languages,f=void 0===h?[]:h;return(0,o.createComponentVNode)(2,i.Window,{title:"Language Menu",width:700,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,a.Section,{title:"Known Languages",children:(0,o.createComponentVNode)(2,a.LabeledList,{children:m.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 c("select_default",{language_name:e.name})}}),!!d&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.Button,{content:"Grant",onClick:function(){return c("grant_language",{language_name:e.name})}}),(0,o.createComponentVNode)(2,a.Button,{content:"Remove",onClick:function(){return c("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 c("toggle_omnitongue")}}),children:(0,o.createComponentVNode)(2,a.LabeledList,{children:f.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 c("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)}))})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.LaunchpadRemote=void 0;var o=n(0),r=n(1),a=n(3),i=n(2),c=n(181);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,i.Window,{title:"Briefcase Launchpad Remote",width:300,height:240,theme:"syndicate",children:(0,o.createComponentVNode)(2,i.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,c.LaunchpadControl,{topLevel:!0})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MafiaPanel=void 0;var o=n(0),r=n(6),a=(n(19),n(1)),i=n(3),c=n(2);t.MafiaPanel=function(e,t){var n=(0,a.useBackend)(t),d=n.act,u=n.data,s=u.lobbydata,p=u.players,m=u.actions,h=u.phase,f=u.roleinfo,C=u.role_theme,g=u.admin_controls,b=u.judgement_phase,N=u.timeleft,v=u.all_roles,V=f?30*p.length:7,y=s?s.filter((function(e){return"Ready"===e.status})):null;return(0,o.createComponentVNode)(2,c.Window,{title:"Mafia",theme:C,width:650,height:293+V,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:g,children:[!f&&(0,o.createComponentVNode)(2,i.Flex,{scrollable:!0,overflowY:"scroll",direction:"column",height:"100%",grow:1,children:(0,o.createComponentVNode)(2,i.Section,{title:"Lobby",mb:1,buttons:(0,o.createComponentVNode)(2,l,{phase:h,timeleft:N,admin_controls:g}),children:(0,o.createComponentVNode)(2,i.Box,{textAlign:"center",children:[(0,o.createComponentVNode)(2,i.NoticeBox,{info:!0,children:["The lobby currently has ",y.length,"/12 valid players signed up."]}),(0,o.createComponentVNode)(2,i.Flex,{direction:"column",children:!!s&&s.map((function(e){return(0,o.createComponentVNode)(2,i.Flex.Item,{basis:2,className:"Section__title candystripe",children:(0,o.createComponentVNode)(2,i.Flex,{height:2,align:"center",justify:"space-between",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{basis:0,children:e.name}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:"STATUS:"}),(0,o.createComponentVNode)(2,i.Flex.Item,{width:"30%",children:(0,o.createComponentVNode)(2,i.Section,{children:(0,o.createComponentVNode)(2,i.Box,{color:"Ready"===e.status?"green":"red",textAlign:"center",children:[e.status," ",e.spectating]})})})]})},e)}))})]})})}),!!f&&(0,o.createComponentVNode)(2,i.Section,{title:h,minHeight:"100px",maxHeight:"50px",buttons:(0,o.createComponentVNode)(2,i.Box,{children:[!!g&&(0,o.createComponentVNode)(2,i.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,i.TimeDisplay,{auto:"down",value:N})]}),children:(0,o.createComponentVNode)(2,i.Flex,{justify:"space-between",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{align:"center",textAlign:"center",maxWidth:"500px",children:[(0,o.createVNode)(1,"b",null,[(0,o.createTextVNode)("You are the "),f.role],0),(0,o.createVNode)(1,"br"),(0,o.createVNode)(1,"b",null,f.desc,0)]}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:[(0,o.createComponentVNode)(2,i.Box,{className:(0,r.classes)(["mafia32x32",f.revealed_icon]),style:{transform:"scale(2) translate(0px, 10%)","vertical-align":"middle"}}),(0,o.createComponentVNode)(2,i.Box,{className:(0,r.classes)(["mafia32x32",f.hud_icon]),style:{transform:"scale(2) translate(-5px, -5px)","vertical-align":"middle"}})]})]})}),(0,o.createComponentVNode)(2,i.Flex,{children:!!m&&m.map((function(e){return(0,o.createComponentVNode)(2,i.Flex.Item,{children:(0,o.createComponentVNode)(2,i.Button,{onClick:function(){return d("mf_action",{atype:e})},children:e})},e)}))}),!!f&&(0,o.createComponentVNode)(2,i.Section,{title:"Judgement",buttons:(0,o.createComponentVNode)(2,i.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,i.Flex,{justify:"space-around",children:[(0,o.createComponentVNode)(2,i.Button,{icon:"smile-beam",content:"INNOCENT!",color:"good",disabled:!b,onClick:function(){return d("vote_innocent")}}),!b&&(0,o.createComponentVNode)(2,i.Box,{children:"There is nobody on trial at the moment."}),!!b&&(0,o.createComponentVNode)(2,i.Box,{children:"It is now time to vote, vote the accused innocent or guilty!"}),(0,o.createComponentVNode)(2,i.Button,{icon:"angry",content:"GUILTY!",color:"bad",disabled:!b,onClick:function(){return d("vote_guilty")}})]}),(0,o.createComponentVNode)(2,i.Flex,{justify:"center",children:(0,o.createComponentVNode)(2,i.Button,{icon:"meh",content:"Abstain",color:"white",disabled:!b,onClick:function(){return d("vote_abstain")}})})]}),"No Game"!==h&&(0,o.createComponentVNode)(2,i.Flex,{spacing:1,children:[(0,o.createComponentVNode)(2,i.Flex.Item,{grow:2,children:(0,o.createComponentVNode)(2,i.Section,{title:"Players",buttons:(0,o.createComponentVNode)(2,i.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,i.Flex,{direction:"column",children:!!p&&p.map((function(e){return(0,o.createComponentVNode)(2,i.Flex.Item,{height:"30px",className:"Section__title candystripe",children:(0,o.createComponentVNode)(2,i.Flex,{height:"18px",justify:"space-between",align:"center",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{basis:16,children:[!!e.alive&&(0,o.createComponentVNode)(2,i.Box,{children:e.name}),!e.alive&&(0,o.createComponentVNode)(2,i.Box,{color:"red",children:e.name})]}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:!e.alive&&(0,o.createComponentVNode)(2,i.Box,{color:"red",children:"DEAD"})}),(0,o.createComponentVNode)(2,i.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,i.Flex.Item,{grow:1}),(0,o.createComponentVNode)(2,i.Flex.Item,{children:!!e.actions&&e.actions.map((function(t){return(0,o.createComponentVNode)(2,i.Button,{onClick:function(){return d("mf_targ_action",{atype:t,target:e.ref})},children:t},t)}))})]})},e.ref)}))})})}),(0,o.createComponentVNode)(2,i.Flex.Item,{grow:2,children:(0,o.createComponentVNode)(2,i.Flex,{direction:"column",height:"100%",children:[(0,o.createComponentVNode)(2,i.Section,{title:"Roles and Notes",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.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,i.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,i.Flex,{direction:"column",children:!!v&&v.map((function(e){return(0,o.createComponentVNode)(2,i.Flex.Item,{height:"30px",className:"Section__title candystripe",children:(0,o.createComponentVNode)(2,i.Flex,{height:"18px",align:"center",justify:"space-between",children:[(0,o.createComponentVNode)(2,i.Flex.Item,{children:e}),(0,o.createComponentVNode)(2,i.Flex.Item,{textAlign:"right",children:(0,o.createComponentVNode)(2,i.Button,{color:"transparent",icon:"question",onClick:function(){return d("mf_lookup",{atype:e.slice(0,-3)})}})})]})},e)}))})}),!!f&&(0,o.createComponentVNode)(2,i.Flex.Item,{height:0,grow:1,children:(0,o.createComponentVNode)(2,i.Section,{scrollable:!0,fill:!0,overflowY:"scroll",children:f!==undefined&&!!f.action_log&&f.action_log.map((function(e){return(0,o.createComponentVNode)(2,i.Box,{children:e},e)}))})})]})})]}),(0,o.createComponentVNode)(2,i.Flex,{mt:1,direction:"column",children:(0,o.createComponentVNode)(2,i.Flex.Item,{children:!!g&&(0,o.createComponentVNode)(2,i.Section,{textAlign:"center",children:(0,o.createComponentVNode)(2,i.Collapsible,{title:"ADMIN CONTROLS",color:"red",children:[(0,o.createComponentVNode)(2,i.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,i.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,i.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,i.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,i.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,i.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,i.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,c=n.data,l=c.phase,d=c.timeleft,u=c.admin_controls;return(0,o.createComponentVNode)(2,i.Box,{children:["[Phase = ",l," | ",(0,o.createComponentVNode)(2,i.TimeDisplay,{auto:"down",value:d}),"]"," ",(0,o.createComponentVNode)(2,i.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,i.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,i.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!"})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.MalfunctionModulePicker=void 0;var o=n(0),r=n(1),a=n(2),i=n(128);t.MalfunctionModulePicker=function(e,t){var n=(0,r.useBackend)(t),c=(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,i.GenericUplink,{currencyAmount:c,currencySymbol:"PT"})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MechBayPowerConsole=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.MechBayPowerConsole=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data.recharge_port,d=l&&l.mech,u=d&&d.cell;return(0,o.createComponentVNode)(2,i.Window,{width:400,height:200,children:(0,o.createComponentVNode)(2,i.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 c("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]})})]})})})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MedicalKiosk=void 0;var o=n(0),r=(n(19),n(1)),a=n(3),i=n(2);t.MedicalKiosk=function(e,t){var n=(0,r.useBackend)(t),m=(n.act,n.data),h=(0,r.useSharedState)(t,"scanIndex")[0],f=m.active_status_1,C=m.active_status_2,g=m.active_status_3,b=m.active_status_4;return(0,o.createComponentVNode)(2,i.Window,{width:575,height:420,resizable:!0,children:(0,o.createComponentVNode)(2,i.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,c,{index:1,icon:"procedures",name:"General Health Scan",description:"Reads back exact values of your general health scan."}),(0,o.createComponentVNode)(2,c,{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,c,{index:3,icon:"radiation-alt",name:"Neurological/Radiological Scan",description:"Provides information about brain trauma and radiation."}),(0,o.createComponentVNode)(2,c,{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)})]}),!!f&&1===h&&(0,o.createComponentVNode)(2,d),!!C&&2===h&&(0,o.createComponentVNode)(2,u),!!g&&3===h&&(0,o.createComponentVNode)(2,s),!!b&&4===h&&(0,o.createComponentVNode)(2,p)]})})};var c=function(e,t){var n=e.index,i=e.name,c=e.description,l=e.icon,d=(0,r.useBackend)(t),u=d.act,s=d.data,p=(0,r.useSharedState)(t,"scanIndex"),m=p[0],h=p[1],f=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:f?"check":"dollar-sign",color:f?"green":"grey"})}),(0,o.createComponentVNode)(2,a.Flex.Item,{grow:1,children:(0,o.createComponentVNode)(2,a.Button,{fluid:!0,icon:l,selected:f&&m===n,tooltip:c,tooltipPosition:"right",content:i,onClick:function(){f||u("beginScan_"+n),h(n)}})})]})},l=function(e,t){var n=(0,r.useBackend)(t),i=n.act,c=n.data,l=c.kiosk_cost,d=c.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 i("clearTarget")},content:"Reset Scanner"})]})},d=function(e,t){var n=(0,r.useBackend)(t).data,i=n.patient_health,c=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:i/100,children:[(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i}),"%"]})}),(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:c/100,color:"bad",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c})})}),(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,i=n.patient_status,c=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:i}),(0,o.createComponentVNode)(2,a.LabeledList.Divider),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Disease Status",children:c}),(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,i=n.clone_health,c=n.brain_damage,l=n.brain_health,d=n.rad_contamination_status,u=n.rad_contamination_value,s=n.rad_sickness_status,p=n.rad_sickness_value,m=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:i/100,color:"good",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:i})})}),(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:c/100,color:"good",children:(0,o.createComponentVNode)(2,a.AnimatedNumber,{value:c})})}),(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:m}),(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:[p,"%"]}),(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,"%"]})]})})},p=function(e,t){var n=(0,r.useBackend)(t).data,i=n.chemical_list,c=void 0===i?[]:i,l=n.overdose_list,d=void 0===l?[]:l,u=n.addict_list,s=void 0===u?[]:u,p=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===c.length&&(0,o.createComponentVNode)(2,a.Box,{color:"average",children:"No reagents detected."}),c.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:p})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.MiningVendor=void 0;var o=n(0),r=n(6),a=n(1),i=n(3),c=n(2);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,c.Window,{width:425,height:600,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,i.Section,{title:"User",children:d.user&&(0,o.createComponentVNode)(2,i.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,i.Box,{color:"light-gray",children:["No registered ID card!",(0,o.createVNode)(1,"br"),"Please contact your local HoP!"]})}),(0,o.createComponentVNode)(2,i.Section,{title:"Equipment",children:(0,o.createComponentVNode)(2,i.Table,{children:u.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{children:[(0,o.createComponentVNode)(2,i.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,i.Table.Cell,{children:(0,o.createComponentVNode)(2,i.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)}))})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Mint=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.Mint=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=n.data,d=l.inserted_materials||[];return(0,o.createComponentVNode)(2,i.Window,{children:(0,o.createComponentVNode)(2,i.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 c(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 c("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."]})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.Mule=void 0;var o=n(0),r=n(1),a=n(3),i=n(2),c=n(61);t.Mule=function(e,t){var n=(0,r.useBackend)(t),l=n.act,d=n.data,u=d.on,s=d.cell,p=d.cellPercent,m=d.load,h=d.mode,f=d.modeStatus,C=d.haspai,g=d.autoReturn,b=d.autoPickup,N=d.reportDelivery,v=d.destination,V=d.home,y=d.id,k=d.destinations,x=void 0===k?[]:k,_=d.locked&&!d.siliconUser;return(0,o.createComponentVNode)(2,i.Window,{width:350,height:425,children:(0,o.createComponentVNode)(2,i.Window.Content,{children:[(0,o.createComponentVNode)(2,c.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?p/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:f,children:h})})}),(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:m?"good":"average",children:m||"None"})})})]})]}),!_&&(0,o.createComponentVNode)(2,a.Section,{title:"Controls",buttons:(0,o.createFragment)([!!m&&(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Unload",onClick:function(){return l("unload")}}),!!C&&(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:y,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:v||"None",options:x,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:x,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:g,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:N,content:"Report Delivery",onClick:function(){return l("report")}})]})]})})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteChamberControlContent=t.NaniteChamberControl=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.NaniteChamberControl=function(e,t){return(0,o.createComponentVNode)(2,i.Window,{width:380,height:570,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,c)})})};var c=function(e,t){var n=(0,r.useBackend)(t),i=n.act,c=n.data,l=c.status_msg,d=c.locked,u=c.occupant_name,s=c.has_nanites,p=c.nanite_volume,m=c.regen_rate,h=c.safety_threshold,f=c.cloud_id,C=c.scan_level;if(l)return(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:l});var g=c.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 i("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 i("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:p}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Growth Rate",children:m})]})}),(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:h,minValue:0,maxValue:500,width:"39px",onChange:function(e,t){return i("set_safety",{value:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Cloud ID",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:f,minValue:0,maxValue:100,step:1,stepPixelSize:3,width:"39px",onChange:function(e,t){return i("set_cloud",{value:t})}})})]})})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Programs",level:2,children:g.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}),C>=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"]})]})})]}),C>=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"]})]})})})]}),C>=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)}))})}),C>=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 i("nanite_injection")}})],4)})};t.NaniteChamberControlContent=c},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteCloudControl=t.NaniteCloudBackupDetails=t.NaniteCloudBackupList=t.NaniteInfoBox=t.NaniteDiskBox=void 0;var o=n(0),r=n(1),a=n(3),i=n(2),c=function(e,t){var n=(0,r.useBackend)(t).data,i=n.has_disk,c=n.has_program,d=n.disk;return i?c?(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=c;var l=function(e,t){var n=e.program,r=n.name,i=n.desc,c=n.activated,l=n.use_rate,d=n.can_trigger,u=n.trigger_cost,s=n.trigger_cooldown,p=n.activation_code,m=n.deactivation_code,h=n.kill_code,f=n.trigger_code,C=n.timer_restart,g=n.timer_shutdown,b=n.timer_trigger,N=n.timer_trigger_delay,v=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:c?"good":"bad",children:c?"Activated":"Deactivated"}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{mr:1,children:i}),(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:p}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:m}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:h}),!!d&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:f})]})})}),(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:[C," s"]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown",children:[g," 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:[N," s"]})],4)]})})})]}),(0,o.createComponentVNode)(2,a.Section,{title:"Extra Settings",level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:v.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),i=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 i("set_view",{view:e.cloud_id})}},e.cloud_id)}))};t.NaniteCloudBackupList=d;var u=function(e,t){var n=(0,r.useBackend)(t),i=n.act,c=n.data,d=c.current_view,u=c.disk,s=c.has_program,p=c.cloud_backup,m=u&&u.can_rule||!1;if(!p)return(0,o.createComponentVNode)(2,a.NoticeBox,{children:"ERROR: Backup not found"});var h=c.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 i("upload_program")}}),children:h.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 i("remove_program",{program_id:e.id})}}),children:(0,o.createComponentVNode)(2,a.Section,{children:[(0,o.createComponentVNode)(2,l,{program:e}),(!!m||!!e.has_rules)&&(0,o.createComponentVNode)(2,a.Section,{mt:-2,title:"Rules",level:2,buttons:!!m&&(0,o.createComponentVNode)(2,a.Button,{icon:"plus",content:"Add Rule from Disk",color:"good",onClick:function(){return i("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 i("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,p=s.has_disk,m=s.current_view,h=s.new_backup_id;return(0,o.createComponentVNode)(2,i.Window,{width:375,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,i.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:!p,onClick:function(){return l("eject")}}),children:(0,o.createComponentVNode)(2,c)}),(0,o.createComponentVNode)(2,a.Section,{title:"Cloud Storage",buttons:m?(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:h,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)})]})})}},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteProgramHub=void 0;var o=n(0),r=n(16),a=n(1),i=n(3),c=n(2);t.NaniteProgramHub=function(e,t){var n=(0,a.useBackend)(t),l=n.act,d=n.data,u=d.detail_view,s=d.disk,p=d.has_disk,m=d.has_program,h=d.programs,f=void 0===h?{}:h,C=(0,a.useSharedState)(t,"category"),g=C[0],b=C[1],N=f&&f[g]||[];return(0,o.createComponentVNode)(2,c.Window,{width:500,height:700,resizable:!0,children:(0,o.createComponentVNode)(2,c.Window.Content,{scrollable:!0,children:[(0,o.createComponentVNode)(2,i.Section,{title:"Program Disk",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:"eject",content:"Eject",onClick:function(){return l("eject")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"minus-circle",content:"Delete Program",onClick:function(){return l("clear")}})],4),children:p?m?(0,o.createComponentVNode)(2,i.LabeledList,{children:[(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Program Name",children:s.name}),(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:"Description",children:s.desc})]}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"No Program Installed"}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"Insert Disk"})}),(0,o.createComponentVNode)(2,i.Section,{title:"Programs",buttons:(0,o.createFragment)([(0,o.createComponentVNode)(2,i.Button,{icon:u?"info":"list",content:u?"Detailed":"Compact",onClick:function(){return l("toggle_details")}}),(0,o.createComponentVNode)(2,i.Button,{icon:"sync",content:"Sync Research",onClick:function(){return l("refresh")}})],4),children:null!==f?(0,o.createComponentVNode)(2,i.Flex,{children:[(0,o.createComponentVNode)(2,i.Flex.Item,{minWidth:"110px",children:(0,o.createComponentVNode)(2,i.Tabs,{vertical:!0,children:(0,r.map)((function(e,t){var n=t.substring(0,t.length-8);return(0,o.createComponentVNode)(2,i.Tabs.Tab,{selected:t===g,onClick:function(){return b(t)},children:n},t)}))(f)})}),(0,o.createComponentVNode)(2,i.Flex.Item,{grow:1,basis:0,children:u?N.map((function(e){return(0,o.createComponentVNode)(2,i.Section,{title:e.name,level:2,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"download",content:"Download",disabled:!p,onClick:function(){return l("download",{program_id:e.id})}}),children:e.desc},e.id)})):(0,o.createComponentVNode)(2,i.LabeledList,{children:N.map((function(e){return(0,o.createComponentVNode)(2,i.LabeledList.Item,{label:e.name,buttons:(0,o.createComponentVNode)(2,i.Button,{icon:"download",content:"Download",disabled:!p,onClick:function(){return l("download",{program_id:e.id})}})},e.id)}))})})]}):(0,o.createComponentVNode)(2,i.NoticeBox,{children:"No nanite programs are currently researched."})})]})})}},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(0),r=n(1),a=n(3),i=n(2),c=function(e,t){var n=(0,r.useBackend)(t),i=n.act,c=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:c.activation_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return i("set_code",{target_code:"activation",code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Deactivation",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:c.deactivation_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return i("set_code",{target_code:"deactivation",code:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Kill",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:c.kill_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return i("set_code",{target_code:"kill",code:t})}})}),!!c.can_trigger&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:c.trigger_code,width:"47px",minValue:0,maxValue:9999,onChange:function(e,t){return i("set_code",{target_code:"trigger",code:t})}})})]})})};t.NaniteCodes=c;var l=function(e,t){var n=(0,r.useBackend)(t),i=n.act,c=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:c.timer_restart,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return i("set_restart_timer",{delay:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Shutdown Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:c.timer_shutdown,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return i("set_shutdown_timer",{delay:t})}})}),!!c.can_trigger&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Repeat Timer",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:c.timer_trigger,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return i("set_trigger_timer",{delay:t})}})}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Delay",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:c.timer_trigger_delay,unit:"s",width:"57px",minValue:0,maxValue:3600,onChange:function(e,t){return i("set_timer_trigger_delay",{delay:t})}})})],4)]})})};t.NaniteDelays=l;var d=function(e,t){var n=e.extra_setting,r=n.name,i=n.type,c={number:(0,o.createComponentVNode)(2,u,{extra_setting:n}),text:(0,o.createComponentVNode)(2,s,{extra_setting:n}),type:(0,o.createComponentVNode)(2,p,{extra_setting:n}),boolean:(0,o.createComponentVNode)(2,m,{extra_setting:n})};return(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:r,children:c[i]})};t.NaniteExtraEntry=d;var u=function(e,t){var n=e.extra_setting,i=(0,r.useBackend)(t).act,c=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 i("set_extra_setting",{target_setting:c,value:t})}})};t.NaniteExtraNumber=u;var s=function(e,t){var n=e.extra_setting,i=(0,r.useBackend)(t).act,c=n.name,l=n.value;return(0,o.createComponentVNode)(2,a.Input,{value:l,width:"200px",onInput:function(e,t){return i("set_extra_setting",{target_setting:c,value:t})}})};t.NaniteExtraText=s;var p=function(e,t){var n=e.extra_setting,i=(0,r.useBackend)(t).act,c=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 i("set_extra_setting",{target_setting:c,value:e})}})};t.NaniteExtraType=p;var m=function(e,t){var n=e.extra_setting,i=(0,r.useBackend)(t).act,c=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 i("set_extra_setting",{target_setting:c})}})};t.NaniteExtraBoolean=m;t.NaniteProgrammer=function(e,t){return(0,o.createComponentVNode)(2,i.Window,{width:420,height:550,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,h)})})};var h=function(e,t){var n=(0,r.useBackend)(t),i=n.act,u=n.data,s=u.has_disk,p=u.has_program,m=u.name,h=u.desc,f=u.use_rate,C=u.can_trigger,g=u.trigger_cost,b=u.trigger_cooldown,N=u.activated,v=u.has_extra_settings,V=u.extra_settings,y=void 0===V?{}:V;return s?p?(0,o.createComponentVNode)(2,a.Section,{title:m,buttons:(0,o.createComponentVNode)(2,a.Button,{icon:"eject",content:"Eject",onClick:function(){return i("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:h}),(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:f}),!!C&&(0,o.createFragment)([(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Trigger Cost",children:g}),(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:N?"power-off":"times",content:N?"Active":"Inactive",selected:N,color:"bad",bold:!0,onClick:function(){return i("toggle_active")}}),children:[(0,o.createComponentVNode)(2,a.Grid,{children:[(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,c)}),(0,o.createComponentVNode)(2,a.Grid.Column,{children:(0,o.createComponentVNode)(2,l)})]}),!!v&&(0,o.createComponentVNode)(2,a.Section,{title:"Special",level:3,children:(0,o.createComponentVNode)(2,a.LabeledList,{children:y.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 i("eject")}})}):(0,o.createComponentVNode)(2,a.NoticeBox,{textAlign:"center",children:"Insert a nanite program disk"})};t.NaniteProgrammerContent=h},function(e,t,n){"use strict";t.__esModule=!0,t.NaniteRemoteContent=t.NaniteRemote=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.NaniteRemote=function(e,t){return(0,o.createComponentVNode)(2,i.Window,{width:420,height:500,resizable:!0,children:(0,o.createComponentVNode)(2,i.Window.Content,{scrollable:!0,children:(0,o.createComponentVNode)(2,c)})})};var c=function(e,t){var n=(0,r.useBackend)(t),i=n.act,c=n.data,l=c.code,d=c.locked,u=c.mode,s=c.program_name,p=c.relay_code,m=c.comms,h=c.message,f=c.saved_settings,C=void 0===f?[]:f;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 i("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 i("update_name",{name:t})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"save",content:"Save",onClick:function(){return i("save")}})]}),(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:m?"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 i("set_code",{code:t})}})}),!!m&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Message",children:(0,o.createComponentVNode)(2,a.Input,{value:h,width:"270px",onChange:function(e,t){return i("set_message",{value:t})}})}),"Relay"===u&&(0,o.createComponentVNode)(2,a.LabeledList.Item,{label:"Relay Code",children:(0,o.createComponentVNode)(2,a.NumberInput,{value:p,minValue:0,maxValue:9999,width:"47px",step:1,stepPixelSize:2,onChange:function(e,t){return i("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 i("select_mode",{mode:e})}},e)}))})]})}),(0,o.createComponentVNode)(2,a.Section,{title:"Saved Settings",children:C.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"})]}),C.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 i("load",{save_id:e.id})}}),(0,o.createComponentVNode)(2,a.Button,{icon:"minus",color:"bad",onClick:function(){return i("remove_save",{save_id:e.id})}})]})]},e.id)}))]}):(0,o.createComponentVNode)(2,a.NoticeBox,{children:"No settings currently saved"})})],4)};t.NaniteRemoteContent=c},function(e,t,n){"use strict";t.__esModule=!0,t.NotificationPreferences=void 0;var o=n(0),r=n(1),a=n(3),i=n(2);t.NotificationPreferences=function(e,t){var n=(0,r.useBackend)(t),c=n.act,l=(n.data.ignore||[]).sort((function(e,t){var n=e.desc.toLowerCase(),o=t.desc.toLowerCase();return n
'+(n?e:H(e,!0))+"\n":""+(n?e:H(e,!0))+"\n"},t.blockquote=function(e){return"\n"+e+"\n"},t.html=function(e){return e},t.heading=function(e,t,n,o){return this.options.headerIds?"
"+e+"
\n"},t.table=function(e,t){return t&&(t=""+t+""),""+e+""},t.br=function(){return this.options.xhtml?""+Z(l.message+"",!0)+"";throw l}}return ne.options=ne.setOptions=function(e){return X(ne.defaults,e),ee(ne.defaults),ne},ne.getDefaults=J,ne.defaults=te,ne.use=function(e){var t=X({},e);if(e.renderer&&function(){var n=ne.defaults.renderer||new U,o=function(t){var o=n[t];n[t]=function(){for(var r=arguments.length,a=new Array(r),i=0;i