From de14f00d60e1943d8dd43c1cd3c53154f696853c Mon Sep 17 00:00:00 2001 From: Jedi-Toothpaste <53096233+Jedi-Toothpaste@users.noreply.github.com> Date: Tue, 24 Sep 2024 23:47:10 +0100 Subject: [PATCH 001/167] mudskipper and shetland window fix (#3426) ## About The Pull Request Added windows to the mudskipper and shetland's engines as well for consistency see #3434 for the Kilo fixes too. Also seperated the Shetland's engine rooms so both buttons don't open both sides. Now the button in each engine room will open only it's respective side. ## Changelog :cl: fix: Added windows to the mudskipper and shetland's engines. fix: Adjusted the blast doors which open on the Shetland's engines. /:cl: --- .../independent/independent_mudskipper.dmm | 6 +++++ .../independent/independent_shetland.dmm | 24 ++++++++++++++----- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/_maps/shuttles/independent/independent_mudskipper.dmm b/_maps/shuttles/independent/independent_mudskipper.dmm index ac2be582662a..be3d9a994e7f 100644 --- a/_maps/shuttles/independent/independent_mudskipper.dmm +++ b/_maps/shuttles/independent/independent_mudskipper.dmm @@ -1096,6 +1096,9 @@ dir = 4; id = "mudskipper_engine" }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/engineering/engine) "zR" = ( @@ -1670,6 +1673,9 @@ dir = 4; id = "mudskipper_engine" }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/engineering/engine) "MK" = ( diff --git a/_maps/shuttles/independent/independent_shetland.dmm b/_maps/shuttles/independent/independent_shetland.dmm index 256e9bc75c88..89dd45bb2262 100644 --- a/_maps/shuttles/independent/independent_shetland.dmm +++ b/_maps/shuttles/independent/independent_shetland.dmm @@ -1492,7 +1492,7 @@ }, /obj/machinery/button/door{ dir = 1; - id = "amogusthrusters"; + id = "shetportthrusters"; name = "Thruster Lockdown"; pixel_y = -21 }, @@ -2297,7 +2297,7 @@ pixel_y = 5 }, /obj/machinery/button/door{ - id = "amogusthrusters"; + id = "shetstarboardengine"; name = "Thruster Lockdown"; pixel_y = 24 }, @@ -2748,11 +2748,14 @@ }, /obj/machinery/door/poddoor{ dir = 4; - id = "amogusthrusters" + id = "shetstarboardengine" }, /obj/effect/turf_decal/industrial/warning{ dir = 4 }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "wU" = ( @@ -4423,11 +4426,14 @@ }, /obj/machinery/door/poddoor{ dir = 4; - id = "amogusthrusters" + id = "shetportthrusters" }, /obj/effect/turf_decal/industrial/warning{ dir = 4 }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/maintenance/port) "Lx" = ( @@ -4989,11 +4995,14 @@ }, /obj/machinery/door/poddoor{ dir = 4; - id = "amogusthrusters" + id = "shetportthrusters" }, /obj/effect/turf_decal/industrial/warning{ dir = 4 }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/maintenance/port) "PR" = ( @@ -5157,11 +5166,14 @@ }, /obj/machinery/door/poddoor{ dir = 4; - id = "amogusthrusters" + id = "shetstarboardengine" }, /obj/effect/turf_decal/industrial/warning{ dir = 4 }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "Ri" = ( From 5a7fcb32088ac609ee462c51d7da4ff73e2fd076 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 24 Sep 2024 17:57:55 -0500 Subject: [PATCH 002/167] Automatic changelog generation for PR #3426 [ci skip] --- html/changelogs/AutoChangeLog-pr-3426.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3426.yml diff --git a/html/changelogs/AutoChangeLog-pr-3426.yml b/html/changelogs/AutoChangeLog-pr-3426.yml new file mode 100644 index 000000000000..476c9d7c88aa --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3426.yml @@ -0,0 +1,5 @@ +author: Jedi-Toothpaste +changes: + - {bugfix: Added windows to the mudskipper and shetland's engines.} + - {bugfix: Adjusted the blast doors which open on the Shetland's engines.} +delete-after: true From d52f36b1ce04ae3f2091c787858d3a4ddd205688 Mon Sep 17 00:00:00 2001 From: Theos Date: Tue, 24 Sep 2024 19:44:59 -0400 Subject: [PATCH 003/167] Sawn variants for the illestren and improvised shotgun now properly have their stats set (#3427) ## About The Pull Request If the illestren's sawn off accuracy is unreasonably high I'd like to know because it's TERRIBLE ## Changelog :cl: fix: sawn off illestren/improvised shotgun stats are now consistent if they are spawned in /:cl: --------- Signed-off-by: Theos --- code/modules/projectiles/guns/ballistic/rifle.dm | 2 ++ code/modules/projectiles/guns/ballistic/shotgun.dm | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index 2d3cb6908c83..2be77ee20835 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -127,6 +127,8 @@ sawn_off = TRUE weapon_weight = WEAPON_MEDIUM w_class = WEIGHT_CLASS_NORMAL + spread = 24 + spread_unwielded = 30 slot_flags = ITEM_SLOT_BELT /obj/item/gun/ballistic/rifle/solgov diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index eb8ea3355fe9..2d70bf9851bb 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -432,6 +432,14 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) sawn_off = TRUE slot_flags = ITEM_SLOT_BELT + wield_slowdown = 0.25 + wield_delay = 0.3 SECONDS //OP? maybe + + spread = 8 + spread_unwielded = 15 + recoil = 3 //or not + recoil_unwielded = 5 + /obj/item/gun/ballistic/shotgun/automatic/combat/compact/compact name = "compact compact combat shotgun" desc = "A compact version of the compact version of the semi automatic combat shotgun. For when you want a gun the same size as your brain." From fcdc0c0dddfea17b3f62d5733bda8c95499f86bd Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 24 Sep 2024 18:55:45 -0500 Subject: [PATCH 004/167] Automatic changelog generation for PR #3427 [ci skip] --- html/changelogs/AutoChangeLog-pr-3427.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3427.yml diff --git a/html/changelogs/AutoChangeLog-pr-3427.yml b/html/changelogs/AutoChangeLog-pr-3427.yml new file mode 100644 index 000000000000..9db44c29cad7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3427.yml @@ -0,0 +1,5 @@ +author: SomeguyManperson +changes: + - {bugfix: sawn off illestren/improvised shotgun stats are now consistent if they + are spawned in} +delete-after: true From d0171aa08ab7d4770422af584432490c1956b374 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 25 Sep 2024 01:03:35 +0000 Subject: [PATCH 005/167] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3426.yml | 5 ----- html/changelogs/AutoChangeLog-pr-3427.yml | 5 ----- html/changelogs/archive/2024-09.yml | 7 +++++++ 3 files changed, 7 insertions(+), 10 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3426.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3427.yml diff --git a/html/changelogs/AutoChangeLog-pr-3426.yml b/html/changelogs/AutoChangeLog-pr-3426.yml deleted file mode 100644 index 476c9d7c88aa..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3426.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Jedi-Toothpaste -changes: - - {bugfix: Added windows to the mudskipper and shetland's engines.} - - {bugfix: Adjusted the blast doors which open on the Shetland's engines.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3427.yml b/html/changelogs/AutoChangeLog-pr-3427.yml deleted file mode 100644 index 9db44c29cad7..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3427.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: SomeguyManperson -changes: - - {bugfix: sawn off illestren/improvised shotgun stats are now consistent if they - are spawned in} -delete-after: true diff --git a/html/changelogs/archive/2024-09.yml b/html/changelogs/archive/2024-09.yml index 130805ee50eb..d86f5c86c955 100644 --- a/html/changelogs/archive/2024-09.yml +++ b/html/changelogs/archive/2024-09.yml @@ -163,3 +163,10 @@ - bugfix: miso soup spelling error zimon9: - rscadd: Adds a bit more contrast to the output of health analyzers +2024-09-25: + Jedi-Toothpaste: + - bugfix: Added windows to the mudskipper and shetland's engines. + - bugfix: Adjusted the blast doors which open on the Shetland's engines. + SomeguyManperson: + - bugfix: sawn off illestren/improvised shotgun stats are now consistent if they + are spawned in From 975debf86e1907ee0156a514e8d7fe14bb3d3d82 Mon Sep 17 00:00:00 2001 From: generalthrax <139387950+generalthrax@users.noreply.github.com> Date: Wed, 25 Sep 2024 08:44:46 -0500 Subject: [PATCH 006/167] More Rust Reds (#3423) ## About The Pull Request Increases rust reds on the black market from maximum 1 to a maximum of 3 ## Why It's Good For The Game Makes them about as available as the other suits on the market. They Suck, shouldn't really matter ## Changelog :cl: balance: Rust Reds on the blackmarket are now available to a maximum of 3 /:cl: --- code/modules/cargo/blackmarket/blackmarket_items/clothing.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm b/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm index d049589fe40a..7a9803085ab8 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm @@ -264,7 +264,7 @@ price_min = 1500 price_max = 2500 - stock = 1 + stock_max = 3 availability_prob = 30 /datum/blackmarket_item/clothing/frontiersmen_hardsuit From 554905548d7b5de1591d04ffeb014aca091caec9 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 25 Sep 2024 08:56:47 -0500 Subject: [PATCH 007/167] Automatic changelog generation for PR #3423 [ci skip] --- html/changelogs/AutoChangeLog-pr-3423.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3423.yml diff --git a/html/changelogs/AutoChangeLog-pr-3423.yml b/html/changelogs/AutoChangeLog-pr-3423.yml new file mode 100644 index 000000000000..21c44ad0f32e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3423.yml @@ -0,0 +1,4 @@ +author: generalthrax +changes: + - {balance: Rust Reds on the blackmarket are now available to a maximum of 3} +delete-after: true From f93fa2a563c40653ab0d349bc19a2506c29f6cd2 Mon Sep 17 00:00:00 2001 From: zimon9 <122945887+zimon9@users.noreply.github.com> Date: Wed, 25 Sep 2024 09:45:50 -0400 Subject: [PATCH 008/167] Makes Vegan rations actually Vegan (#3408) ## About The Pull Request Exchanges the pizza crackers snack, which is a meat foodtype, with fruit puree, in the vegan chili ration. ## Why It's Good For The Game It always felt like a really minor and silly oversight that pizza crackers weren't actually vegan, which, in turn, made the _vegan ration_ not actually entirely vegan. This isn't really a gamebreaking change, but I thought it might help with consistency. ## Changelog :cl: add: Added fruit puree to vegan rations del: Removed pizza crackers from vegan rations /:cl: --- code/game/objects/items/storage/ration.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/storage/ration.dm b/code/game/objects/items/storage/ration.dm index b016cc339260..169e0dfad0a6 100644 --- a/code/game/objects/items/storage/ration.dm +++ b/code/game/objects/items/storage/ration.dm @@ -54,7 +54,7 @@ /obj/item/reagent_containers/food/snacks/ration/entree/vegan_chili = 1, /obj/item/reagent_containers/food/snacks/ration/side/vegan_crackers = 1, /obj/item/reagent_containers/food/snacks/ration/side/cornbread = 1, - /obj/item/reagent_containers/food/snacks/ration/snack/pizza_crackers = 1, + /obj/item/reagent_containers/food/snacks/ration/snack/fruit_puree = 1, /obj/item/reagent_containers/food/snacks/ration/condiment/cheese_spread = 1, /obj/item/reagent_containers/food/snacks/ration/pack/grape_beverage = 1, /obj/item/ration_heater = 1 From 053a7ba7721e7924d6698f6bc4b9879746943d82 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 25 Sep 2024 09:10:35 -0500 Subject: [PATCH 009/167] Automatic changelog generation for PR #3408 [ci skip] --- html/changelogs/AutoChangeLog-pr-3408.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3408.yml diff --git a/html/changelogs/AutoChangeLog-pr-3408.yml b/html/changelogs/AutoChangeLog-pr-3408.yml new file mode 100644 index 000000000000..f85514c5004c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3408.yml @@ -0,0 +1,5 @@ +author: zimon9 +changes: + - {rscadd: Added fruit puree to vegan rations} + - {rscdel: Removed pizza crackers from vegan rations} +delete-after: true From bad30456a4bfa0e495d6cdaf1ecb02c2bb1f184d Mon Sep 17 00:00:00 2001 From: Gristlebee <56049844+Gristlebee@users.noreply.github.com> Date: Wed, 25 Sep 2024 06:46:02 -0700 Subject: [PATCH 010/167] Fixes deconstructing walls causing runtimes (#3398) ## About The Pull Request Fixes the while loops so they dont do silly shit and call procs on turfs they shouldnt. ## Why It's Good For The Game Kill 9 billion runtimes. ## Changelog :cl: fix: fixes wall deconstruction causing runtimes /:cl: --- .../game/mecha/equipment/tools/mining_tools.dm | 7 +++++-- code/game/objects/items.dm | 3 +++ code/game/turfs/closed/_closed.dm | 11 ++++++++--- code/game/turfs/closed/minerals.dm | 8 ++++++-- code/game/turfs/closed/wall/reinf_walls.dm | 3 ++- code/game/turfs/closed/walls.dm | 18 +++--------------- 6 files changed, 27 insertions(+), 23 deletions(-) diff --git a/code/game/mecha/equipment/tools/mining_tools.dm b/code/game/mecha/equipment/tools/mining_tools.dm index e99d24e3f558..d330865a4be2 100644 --- a/code/game/mecha/equipment/tools/mining_tools.dm +++ b/code/game/mecha/equipment/tools/mining_tools.dm @@ -65,17 +65,20 @@ /turf/closed/wall/drill_act(obj/item/mecha_parts/mecha_equipment/drill/drill) while(drill.do_after_mecha(src, 15 / drill.drill_level)) drill.log_message("Drilled through [src]", LOG_MECHA) - alter_integrity(-drill.wall_decon_damage) drill.occupant_message("You drill through some of the outer plating...") playsound(src,'sound/weapons/drill.ogg',60,TRUE) + if(!alter_integrity(-drill.wall_decon_damage)) + return TRUE /turf/closed/wall/r_wall/drill_act(obj/item/mecha_parts/mecha_equipment/drill/drill) if(drill.drill_level >= DRILL_HARDENED) while(drill.do_after_mecha(src, 20 / drill.drill_level)) drill.log_message("Drilled through [src]", LOG_MECHA) - alter_integrity(-drill.wall_decon_damage) drill.occupant_message("You drill through some of the outer plating...") playsound(src,'sound/weapons/drill.ogg',60,TRUE) + if(!alter_integrity(-drill.wall_decon_damage)) + return TRUE + else drill.occupant_message("[src] is too durable to drill through.") diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 17d6cf96b21a..a1302008cf89 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -957,6 +957,9 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb /// Called when a mob tries to use the item as a tool.Handles most checks. /obj/item/proc/use_tool(atom/target, mob/living/user, delay, amount=0, volume=0, datum/callback/extra_checks) + // we have no target, why are we even doing this? + if(isnull(target)) + return // No delay means there is no start message, and no reason to call tool_start_check before use_tool. // Run the start check here so we wouldn't have to call it manually. if(!delay && !tool_start_check(user, amount)) diff --git a/code/game/turfs/closed/_closed.dm b/code/game/turfs/closed/_closed.dm index dc410d027504..766d7e0e5a24 100644 --- a/code/game/turfs/closed/_closed.dm +++ b/code/game/turfs/closed/_closed.dm @@ -227,6 +227,8 @@ return ..() /turf/closed/proc/attack_override(obj/item/W, mob/user, turf/loc) + if(!isclosedturf(src)) + return //the istype cascade has been spread among various procs for easy overriding or if we want to call something specific if(try_decon(W, user, loc) || try_destroy(W, user, loc)) return @@ -252,15 +254,18 @@ return TRUE /turf/closed/proc/try_decon(obj/item/I, mob/user, turf/T) + var/act_duration = breakdown_duration if(I.tool_behaviour == TOOL_WELDER) if(!I.tool_start_check(user, amount=0)) return FALSE - to_chat(user, "You begin slicing through the outer plating...") - while(I.use_tool(src, user, breakdown_duration, volume=50)) + while(I.use_tool(src, user, act_duration, volume=50)) if(iswallturf(src)) to_chat(user, "You slice through some of the outer plating...") - alter_integrity(-(I.wall_decon_damage),user,FALSE,TRUE) + if(!alter_integrity(-(I.wall_decon_damage),user,FALSE,TRUE)) + return TRUE + else + break return FALSE diff --git a/code/game/turfs/closed/minerals.dm b/code/game/turfs/closed/minerals.dm index 0d9b3205cc27..3970cc403d73 100644 --- a/code/game/turfs/closed/minerals.dm +++ b/code/game/turfs/closed/minerals.dm @@ -79,16 +79,20 @@ return ..() /turf/closed/mineral/try_decon(obj/item/I, mob/user, turf/T) + var/act_duration = breakdown_duration if(I.tool_behaviour == TOOL_MINING) if(!I.tool_start_check(user, amount=0)) return FALSE to_chat(user, "You begin breaking through the rock...") - while(I.use_tool(src, user, breakdown_duration, volume=50)) + while(I.use_tool(src, user, act_duration, volume=50)) if(ismineralturf(src)) to_chat(user, "You break through some of the stone...") SSblackbox.record_feedback("tally", "pick_used_mining", 1, I.type) - alter_integrity(-(I.wall_decon_damage),user,FALSE,TRUE) + if(!alter_integrity(-(I.wall_decon_damage),user,FALSE,TRUE)) + return TRUE + else + break return FALSE diff --git a/code/game/turfs/closed/wall/reinf_walls.dm b/code/game/turfs/closed/wall/reinf_walls.dm index ed2f0141eaff..c0fb9232ad28 100644 --- a/code/game/turfs/closed/wall/reinf_walls.dm +++ b/code/game/turfs/closed/wall/reinf_walls.dm @@ -78,7 +78,8 @@ to_chat(user, "You begin slicing through the [src].") while(W.use_tool(src,user,30,volume = 100)) to_chat(user, "You slice through some of the outer plating...") - alter_integrity(-(W.wall_decon_damage)) + if(!alter_integrity(-(W.wall_decon_damage))) + return TRUE return 1 switch(d_state) diff --git a/code/game/turfs/closed/walls.dm b/code/game/turfs/closed/walls.dm index bed648ff592b..1d8f242e216a 100644 --- a/code/game/turfs/closed/walls.dm +++ b/code/game/turfs/closed/walls.dm @@ -85,9 +85,10 @@ return null /turf/closed/wall/attack_override(obj/item/W, mob/user, turf/loc) - if(try_clean(W, user, loc) || try_wallmount(W, user, loc)) + if(!iswallturf(src)) + return + if(try_clean(W, user, loc) || try_wallmount(W, user, loc) || try_decon(W, user, loc) || try_destroy(W, user, loc)) return - ..() /turf/closed/wall/proc/try_clean(obj/item/W, mob/user, turf/T) if((user.a_intent != INTENT_HELP)) @@ -122,19 +123,6 @@ return FALSE -/turf/closed/wall/try_decon(obj/item/I, mob/user, turf/T) - if(I.tool_behaviour == TOOL_WELDER) - if(!I.tool_start_check(user, amount=0)) - return FALSE - - to_chat(user, "You begin slicing through the outer plating...") - while(I.use_tool(src, user, breakdown_duration, volume=50)) - if(iswallturf(src)) - to_chat(user, "You slice through some of the outer plating...") - alter_integrity(-(I.wall_decon_damage),FALSE,TRUE) - - return FALSE - /turf/closed/wall/singularity_pull(S, current_size) ..() wall_singularity_pull(current_size) From b1038979ab692d27e64fbe6905001959322672dd Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 25 Sep 2024 09:24:04 -0500 Subject: [PATCH 011/167] Automatic changelog generation for PR #3398 [ci skip] --- html/changelogs/AutoChangeLog-pr-3398.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3398.yml diff --git a/html/changelogs/AutoChangeLog-pr-3398.yml b/html/changelogs/AutoChangeLog-pr-3398.yml new file mode 100644 index 000000000000..65eb77137267 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3398.yml @@ -0,0 +1,4 @@ +author: Gristlebee +changes: + - {bugfix: fixes wall deconstruction causing runtimes} +delete-after: true From de480f809e1aabfc6590453820c5cd024f1b255e Mon Sep 17 00:00:00 2001 From: generalthrax <139387950+generalthrax@users.noreply.github.com> Date: Wed, 25 Sep 2024 08:46:49 -0500 Subject: [PATCH 012/167] Pants Accessories (#3418) ## About The Pull Request Most accessories fit on pants now ## Why It's Good For The Game I should be able to pin my captain's medal on the turtleneck I'm wearing with my black pants. ## Changelog :cl: balance: Most common accessories now fit on pants /:cl: --- code/modules/clothing/under/accessories.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index d1ee50d1a629..0d05c4e0cf7f 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -137,6 +137,7 @@ icon_state = "bronze" custom_materials = list(/datum/material/iron=1000) resistance_flags = FIRE_PROOF + attachment_slot = null var/medaltype = "medal" //Sprite used for medalbox var/commended = FALSE @@ -409,6 +410,7 @@ icon_state = "holster" item_state = "holster" pocket_storage_component_path = /datum/component/storage/concrete/pockets/holster + attachment_slot = null /obj/item/clothing/accessory/holster/detective name = "detective's shoulder holster" @@ -477,7 +479,7 @@ icon_state = "rilena_pin" above_suit = FALSE minimize_when_attached = TRUE - attachment_slot = CHEST + attachment_slot = null /obj/item/clothing/accessory/rilena_pin/on_uniform_equip(obj/item/clothing/under/U, user) var/mob/living/L = user From 9aab7f2d0df8b76a55d9f43886d655c679057325 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 25 Sep 2024 09:37:14 -0500 Subject: [PATCH 013/167] Automatic changelog generation for PR #3418 [ci skip] --- html/changelogs/AutoChangeLog-pr-3418.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3418.yml diff --git a/html/changelogs/AutoChangeLog-pr-3418.yml b/html/changelogs/AutoChangeLog-pr-3418.yml new file mode 100644 index 000000000000..b2b6703a1756 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3418.yml @@ -0,0 +1,4 @@ +author: generalthrax +changes: + - {balance: Most common accessories now fit on pants} +delete-after: true From 4009cd5c74be78c030d042450c88e8d9f620f443 Mon Sep 17 00:00:00 2001 From: generalthrax <139387950+generalthrax@users.noreply.github.com> Date: Wed, 25 Sep 2024 08:47:03 -0500 Subject: [PATCH 014/167] Exosuit Recharger Equipment in Cargo (#3420) ## About The Pull Request Adds the exosuit recharger machine and computer boards to cargo ## Why It's Good For The Game You can't get them outside of ruins or RND and they're Way Cooler than cell-swapping ## Changelog :cl: add: Exosuit Recharger machines are now available from cargo /:cl: --- code/modules/cargo/packs/mechs.dm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/code/modules/cargo/packs/mechs.dm b/code/modules/cargo/packs/mechs.dm index 7790e696ee15..744e9f67e2f2 100644 --- a/code/modules/cargo/packs/mechs.dm +++ b/code/modules/cargo/packs/mechs.dm @@ -220,6 +220,15 @@ Mech Equipment /obj/item/mecha_parts/mecha_equipment/antiproj_armor_booster ) +/datum/supply_pack/mech/equipment/recharger + name = "Exosuit Recharger kit" + desc = "Two boards for an exosuit recharger and recharger console. For the stylish exosuit bay." + cost = 400 + contains = list( + /obj/item/circuitboard/computer/mech_bay_power_console, + /obj/item/circuitboard/machine/mech_recharger + ) + /* weapons */ From 14a4b8c324f03571ee1a15be7696efe39c74018c Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 25 Sep 2024 09:50:32 -0500 Subject: [PATCH 015/167] Automatic changelog generation for PR #3420 [ci skip] --- html/changelogs/AutoChangeLog-pr-3420.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3420.yml diff --git a/html/changelogs/AutoChangeLog-pr-3420.yml b/html/changelogs/AutoChangeLog-pr-3420.yml new file mode 100644 index 000000000000..832736e59bfd --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3420.yml @@ -0,0 +1,4 @@ +author: generalthrax +changes: + - {rscadd: Exosuit Recharger machines are now available from cargo} +delete-after: true From af77144e59c474fea4831f0241dfb9d95c1ef2c2 Mon Sep 17 00:00:00 2001 From: generalthrax <139387950+generalthrax@users.noreply.github.com> Date: Wed, 25 Sep 2024 08:47:38 -0500 Subject: [PATCH 016/167] Adds .38 Hearth and .38 Chilled ammo boxes, to the Black Market (#3425) ## About The Pull Request Adds ammo boxes for hotshot and iceblox variants of .38 Special, and puts them in the black market. Slightly reflavoured to imply infusion of trickwines by black market elements. Sprites courtesy of @rye-rice ![stuff](https://github.com/user-attachments/assets/3c29840f-e46a-4780-ad92-091c5f5f81d1) ## Why It's Good For The Game Cute little thing to maybe make .38 attractive to some as a gimmicky cartridge ## Changelog :cl: add: Adds .38 Hearth and .38 Chilled specialty ammo boxes to the black market /:cl: --- .../blackmarket/blackmarket_items/ammo.dm | 22 ++++++++++++++++++ .../ammunition/ballistic/revolver.dm | 8 +++---- .../projectiles/boxes_magazines/ammo_boxes.dm | 20 ++++++++++++---- .../projectile/bullets/revolver.dm | 4 ++-- .../research/designs/weapon_designs.dm | 4 ++-- icons/obj/ammo.dmi | Bin 63786 -> 59485 bytes 6 files changed, 46 insertions(+), 12 deletions(-) diff --git a/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm b/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm index 47f7fd884993..d5489edeb3e0 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/ammo.dm @@ -271,3 +271,25 @@ stock_min = 2 stock_max = 10 availability_prob = 10 + +/datum/blackmarket_item/ammo/c38hotshot + name = ".38 Hearth Ammo Box" + desc = "We got our ship cook to marinade some .38 in some hearthwine we pocketed off some hunters. It'll cook your targets to a nice well done." + item = /obj/item/ammo_box/c38/hotshot + + price_min = 300 + price_max = 500 + stock_min = 3 + stock_max = 8 + availability_prob = 50 + +/datum/blackmarket_item/ammo/c38iceblox + name = ".38 Chilled Ammo Box" + desc = "One of our runners accidentally spilled some .38 into a fucking pristine icewine shipment. It'll freeze your targets faster than our runner froze solid outside for making a mess." + item = /obj/item/ammo_box/c38/iceblox + + price_min = 300 + price_max = 500 + stock_min = 3 + stock_max = 8 + availability_prob = 50 diff --git a/code/modules/projectiles/ammunition/ballistic/revolver.dm b/code/modules/projectiles/ammunition/ballistic/revolver.dm index e235e00b98f6..8705a932b392 100644 --- a/code/modules/projectiles/ammunition/ballistic/revolver.dm +++ b/code/modules/projectiles/ammunition/ballistic/revolver.dm @@ -88,14 +88,14 @@ projectile_type = /obj/projectile/bullet/c38/dumdum /obj/item/ammo_casing/c38/hotshot - name = ".38 hot shot bullet casing" - desc = "A .38 hot shot bullet casing." + name = ".38 hearth bullet casing" + desc = "A .38 hearth bullet casing." bullet_skin = "incen" projectile_type = /obj/projectile/bullet/c38/hotshot /obj/item/ammo_casing/c38/iceblox - name = ".38 iceblox bullet casing" - desc = "A .38 iceblox bullet casing." + name = ".38 chilled bullet casing" + desc = "A .38 chilled bullet casing." bullet_skin = "surplus" projectile_type = /obj/projectile/bullet/c38/iceblox diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index b590f0831df1..443f70c3314d 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -113,13 +113,13 @@ ammo_type = /obj/item/ammo_casing/c38/dumdum /obj/item/ammo_box/c38/hotshot - name = "speed loader (.38 hot shot)" - desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These hot shot bullets contain an incendiary payload that set targets alight." + name = "speed loader (.38 hearth)" + desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These hearthwine bullets contain an incendiary payload that set targets alight." ammo_type = /obj/item/ammo_casing/c38/hotshot /obj/item/ammo_box/c38/iceblox - name = "speed loader (.38 iceblox)" - desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These iceblox bullets contain a cryogenic payload that chills targets." + name = "speed loader (.38 chilled)" + desc = "A 6-round speed loader for quickly reloading .38 special revolvers. These icewine bullets contain a cryogenic payload that chills targets." ammo_type = /obj/item/ammo_casing/c38/iceblox /obj/item/ammo_box/c38/empty @@ -213,6 +213,18 @@ icon_state = "38box-surplus" ammo_type = /obj/item/ammo_casing/c38/surplus +/obj/item/ammo_box/c38_box/hotshot + name = "ammo box (.38 hearth)" + desc = "An unorthodox .38 Special cartridge infused with hearthwine. Catches the target on fire." + icon_state = "38hotshot" + ammo_type = /obj/item/ammo_casing/c38/hotshot + +/obj/item/ammo_box/c38_box/iceblox + name = "ammo box (.38 chilled)" + desc = "An unorthodox .38 Special cartridge infused with icewine. Chills the target, slowing them down." + icon_state = "38iceblox" + ammo_type = /obj/item/ammo_casing/c38/iceblox + /obj/item/ammo_box/a12g name = "ammo box (12g buckshot)" desc = "A box of 12-gauge buckshot shells, devastating at close range." diff --git a/code/modules/projectiles/projectile/bullets/revolver.dm b/code/modules/projectiles/projectile/bullets/revolver.dm index dede2ce0d7ce..340aa692f5b2 100644 --- a/code/modules/projectiles/projectile/bullets/revolver.dm +++ b/code/modules/projectiles/projectile/bullets/revolver.dm @@ -69,7 +69,7 @@ imp.implant(M) /obj/projectile/bullet/c38/hotshot //similar to incendiary bullets, but do not leave a flaming trail - name = ".38 hot shot bullet" + name = ".38 hearth bullet" ricochets_max = 0 /obj/projectile/bullet/c38/hotshot/on_hit(atom/target, blocked = FALSE) @@ -80,7 +80,7 @@ M.IgniteMob() /obj/projectile/bullet/c38/iceblox //see /obj/projectile/temp for the original code - name = ".38 iceblox bullet" + name = ".38 chilled bullet" var/temperature = 100 ricochets_max = 0 diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 2a8f390e9e36..1c3edc8b7c32 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -18,7 +18,7 @@ departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_BALLISTICS /datum/design/c38_hotshot - name = "Speed Loader (.38 Hot Shot)" + name = "Speed Loader (.38 Hearth)" desc = "Designed to quickly reload revolvers. Hot Shot bullets contain an incendiary payload." id = "c38_hotshot" build_type = PROTOLATHE @@ -28,7 +28,7 @@ departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_BALLISTICS /datum/design/c38_iceblox - name = "Speed Loader (.38 Iceblox)" + name = "Speed Loader (.38 Chilled)" desc = "Designed to quickly reload revolvers. Iceblox bullets contain a cryogenic payload." id = "c38_iceblox" build_type = PROTOLATHE diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 403b198c179bcfddd76bc5ec6100a098244fa217..ec5f147485401833d8ad24fb12c0cf6a26dc9a09 100644 GIT binary patch literal 59485 zcmZsCcT^K^&@R157o}sQ2qH?6uF^q@^dcZ7AOg}wKom&=(xoa@Py zij*WEAPFUq-ndAD-CBd@?dxvtSGB04*1P=jZOv0^EIl$jDxPto~@|yQs(-H8xl)wSehJz9nwN z92dFp(mB7Lea?ts`)l&GehxwXM|wUfM0|0z;AM_O1a{nK#l}w6}qnr$WV$8M}YF*3o}jj{Kzk zRE;@yN5^`vOCn*6qhnY6!EezRj+M7szfJ4Xi7l#*6C8S*rVWN#dsv>2IdR}8d23N$ zAa~k~`}Z^-Q6O$Qn+g+C6f>*HCyZ`x$>ltn^NM3=`Fa_~A5u>ffP~&|7dE6&rJp+E zQscO{(cM(QV<2fBuEUpUM9ow}S=1Bo$V2KAPW?vlFYUxX>QiKNMLm>1rC+KAgwqzu zat{A?hcuL3pR%UfQg``lKnkG9{_{#v`Gd*vqIGDeML0@!+%fnakAY}B&D8l%6A!8C zCK}3YBW7=j3q>t_wyS;h+T0FdGIi=<&iU#nT1N$|RoSODt2W~e*z(r6qPdf7WiDCD z(rfb1g5S{?>3r=*5uU6zy`?c4Snfv2^ml)7Dv%jsWaoc~+I2qe$?plExnyIJUg!C# z1VUnWsYykpr3!ashO~DQZrgNgo4uoF>o14B%vs17M>0`rarcG(;1{LA5*4NMg1*I) zcj*{0ZrMNPQgp7V`Tj<%s=@I_<;~2=8w@2az|WcnGGrQ*ud=I<=r>0UUFV?>yFVr1 zFzT}k;nt;vgB7>9ueG8X)t}c>=zLp;q?|r;nX2PM==Mz1=}J%4>E)5QS8WW)Yg_F zWMI<$j>;WFRfqW4#;13jK!tW?3rZQazfki5AseE?5E$VyB1Jp@_=@x+K44EvI-FxI z*IedX-8XMBY`;yXe*W1R74L0xhuroOn47UiF}PasO||0NYQ^`}Tv^pz1=Ws|>t!3y zE&P=#+WDsKqC6xtaP5Unh)GAm>5;pFDvF(tUK7Z|%j2nl|)L7=)T{zP7lu z`f4VxTh!p}bCN}Y94+IIWbEAICt=U!g!3lZA3c&2{w=e2V3?XG`OAp0&PGNCC(7=X zx}rQuVkzz#UHZDYJ`CyfG&0>VP3Onga3E=B{qinXt*O=841~G1BvP_X_&xE=7lmn3 zWJ}F|aj%01Y+-_;1#Mfxl~TxLXB_W9c?>qAXecFvomG?GLfM3@X48wCx$dg*zBCv! zJ|XWQ`R`ttd%rc)d@Byh|1y*elElT|D0F|bhpo^b6Eh)w=ds$+p9_#~IboCR;_{o1 zRn8g??u;6v3AowCa5w#rwP(E}m5=@QB%eEP&Lb%b z2V1FL;QIz_D`l3~lE>atFaO+D*pw#Yw3Oo;|K=1j+c?;FeuQ2)q}HaQ3<*z){9%zoQT@=($<8Et^rPLX}@9a8VIQ{(#k@)P|x(I}(9tvOa z(yEacA-pJP*^^0K>Uok%Re_E@JELyCe)x)Gm*J5ME!&!|UsD+)nb-|hlL88E4GWqw z<`$Xz5oJ=A+ZjE~kzrq%Zr&90Ok|Jkr;5=I|HZ!XrBGU3=$9g=nNioYvS2*3KT>*| zESB-g_~0t{W9}Evn86xiA%h3p)Ea3qG2m;8!uV%go8JuF{*0VC_1{?nY3G!Fh;cUM z_{K_nnp*lgHlpFaQ-&qSh?i61Z&1qD;Rp3j( zF#B_w_0mmWc-BqV6wfhxLu;F#Ns>{RchuJ+7G7Z{O!6^?T1PQ=$7;K0P0ilIP&>~9 zBZtq*if;%}kjEQgjC#wo7nKlUmH{z2BoK95WzulKZb3g!Hsw7 z4ZzIJxg;TdDibj-Mf*o3ewjK+(vUlHjw>a+)VCOrj<*;>lAD~l{qq(TZ|S#+KDxAZ zJLGB2t)Y1)v$ZT5wc^*0yZOn>f{hv5gr3nl;zixXdY?-6jQz$){cShqr>)`SFzEta z9q0V}>N_P(h!Hw;qWZHCP1D+^{pB6Gx)>g+;GN5K*gxW|FF8%Z_8x}@UB0ZF>nNw& zntyOr_yfLH6AKZW0{85`PB{tO-HX0Or2Hmwc4I_H*@KL1wO>z5-QwlP?N1CJFHL{i zWyyS!5N7(0oaVlh+7%(iH{XO-#f8hbE>p+yI?p{(P{4RJm^S*=N-Ov+a~%cm_HT=H zxcWXHxmFX)Vj(N8Vgs(bN3HYhQUp0wloKm!4A1gh5VZ6}q13YiZ?pL^r)K5oKny*- zj6mmCqOC|I(#I*y;!6S%$v$7I-Z7OAviEPTyKgdD3EfY!#LQNk#^o&JZCqI~XKD*n zXF;3i;)OYtpOWb*G2ZiWL=XF`mPW;Mm(D8G+E*Lxv}cG42ypZ;?R6?R6!?aS?5Ze& z`2$g2U3N0in&yKfJkq!U+N?%7XZS(Zy@8lpS;<>A3wrfiU{m#QRXRTFWmFE>e^sec zR3JdRvAw;0h`6u-4~Bcqn~B5NCsyWX@<(%AEvC=DP8yk>Mx8SF@ARMo21cV#BM z8D;|c6ue5LovyLpL6)lEDh&`>$Crs1$NLwWCDnHfZQc@nBSQDJ)VHS-g}yv#A>C!t5R zS)bl6l9{j6s&treJ7_^WgihGr7HXAj*Jiy`rYwd4IlNuDm@| zU0sbVg;wD&zM|7?TAL|W!IkfV5er)v$s_zcz4-ExSS;Rfh5KE7Op+?$BmQs%G5q-u zgdlOE&rojBu;+zl7_jZi3DLLs(W99RFJV2a-!w6=bOwC*cPfvGL?R^)^p7*MdWzm%qEouu|ZDs1ZS|YGBUD>)&yijfoL0f%*%1un!sUulT?@IkD zV*7b8K`E2srMmWUZ2hCxoBMRI;FBdJj5M(m-22zt$}V%^Ro`$$l@C%(YAu?XGO9d3 zU!AlS_K{D%5T=qy-r*z)y(Cov?9dK>B2}2Il6Ss8jum2|9fY4;E0y{F4j8kG)D2^sGOP&{uAwOteAZP}Z(Ml8>ul}hC3i(rYI^eqLFatJ_e}chCL6A0X`1G$KS(LGYpeZUQPm6kuhE3i;Gb+IXf=9Xz&pER!mmcjd&8NrG zJ&c3a9ZE1tJJg^_cKqSP z{vs~yt5zjc+$}dIXrYA&Z?|~$fBhD)K<|+iJTsFJC03Z>UVo2! zBl-FC!|ZgdDAt_!=yT~O;Y092buFg7=*7s<_a}XOmnq{j>)ecWrctLgU6m2e$)d_i z%t+YfsXM87q-3Nc_OAZaLwXtlRmP=M=d$o|CicwwndIV;M}M))`($|!rlT(x+fTpsYPBbvhH$HH?KmUf2%cRr+ z;*zj{2r{-r4Y69cGp48DRapk|Fo>*zqX)=|dnbT6+OQA8@PJwZ(S<~2v4_Z&WgJ)& zEC1;&Vdusts5XC2bqk9h=4iN?9R+4JIKa!odhnf6Uqaf;NdDEiNkvG~x<}Xp$SJ=4 z(dxrO6@ds{0)I08Zf1R*Mb!u%(T0^_Q`0)6Ib8lQzrQhKpAUNebx*83iahr^YBjv+ z&zahCqf_kVl;4HKu@-2}!duTqhb6H&$?$y_CffE{!(4)WY<1 z66Zv8lX!b&BMy%YQXdcaz$D!f2Nj_xn?i_UhqmYHPnACr6CR`2yDW44PG#6d)NUL zp=Rt;sGB21ADX}=u#MI zo<$AWT3d_Rb>$`O5?)w#5dSo9&*qayHRBPPI2i(&5pjDH8HYLAqIZ?D!gI>{Dw>V4 zQGaw$|X_v2?i;NA<*qa)vbDb0lq{PvFIg=Ml%l;b)_eVl}|}SH-Eb z0w5`Ngxx?~E+X+dN8-4xpWnbk`PcK1WZzY)qKjXX)^}BI>Q4m`KAn3PXF_hsl_)&L zQ|gYreNmypcgRw>;f2`ei}!#Ta`8~CDXf%dY6y-dX(94e_~TiOtc&)uY z1IJSJ=Y!3tSozg67BfHvF}yDjVB~9S(rlVXHE9Y3paR0=#j%iI;oNh@zx4XdRp;>$ ztY+6;y&ZxkB?rkUxY{0{RDwc2Zy{?#zwwj^^xcp8(`rxJe4sj;44#Y5zQV{;;-LAu z^c?jZ?lmSkcPH4Z$lUn;^aUg1_+_=7B6zvWP�|5v&&(+6#QTH|7xXxCio~B9FI+ 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

)AGle|iV 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 From 7e9752abf56562c3608ba6598528820f1e9f8fc0 Mon Sep 17 00:00:00 2001 From: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Date: Wed, 25 Sep 2024 08:51:41 -0500 Subject: [PATCH 017/167] minimum recoil for ballistics (#3330) ## About The Pull Request gives a very small kick to all ballistics, not enough to affect your aim but makes them feel alot better to use. atomization of #3094 currently debating what the value should be.. 0 https://github.com/user-attachments/assets/1630a089-bf9f-4ec5-8853-c2728f420f4e .1 https://github.com/user-attachments/assets/2064b49b-37f5-4860-b273-1f28274724f7 .175 https://github.com/user-attachments/assets/6baba2ad-8100-403e-b6c4-d4e958ad21d6 .25 https://github.com/user-attachments/assets/ca3bdf37-bf30-493e-bb24-ae452cbc6481 a bit of an extreme case being a fast firing auto but it happens to be a gun with a recoil of 0 rn so it will be affected by the change ## Why It's Good For The Game without it, a surprising amount of ballistics get 0 recoil just but wielding them which feels really jarring. ## Changelog :cl: add: Ballistics now have a minimum recoil, not enough to mess up your shot! /:cl: --- code/modules/projectiles/gun.dm | 11 +++++++---- code/modules/projectiles/guns/ballistic.dm | 2 ++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index b59a1530a209..28ef8cecdd80 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -207,6 +207,12 @@ ///this is how much deviation the gun recoil can have, recoil pushes the screen towards the reverse angle you shot + some deviation which this is the max. var/recoil_deviation = 22.5 + ///Used if the guns recoil is lower then the min, it clamps the highest recoil + var/min_recoil = 0 + + var/gunslinger_recoil_bonus = 0 + var/gunslinger_spread_bonus = 0 + /// how many shots per burst, Ex: most machine pistols, M90, some ARs are 3rnd burst, while others like the GAR and laser minigun are 2 round burst. var/burst_size = 3 ///The rate of fire when firing in a burst. Not the delay between bursts @@ -318,9 +324,6 @@ ///This prevents gun from firing until the coodown is done, affected by lag var/current_cooldown = 0 - var/gunslinger_recoil_bonus = 0 - var/gunslinger_spread_bonus = 0 - /obj/item/gun/Initialize() . = ..() RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) @@ -815,7 +818,7 @@ /obj/item/gun/proc/calculate_recoil(mob/user, recoil_bonus = 0) if(HAS_TRAIT(user, TRAIT_GUNSLINGER)) recoil_bonus += gunslinger_recoil_bonus - return clamp(recoil_bonus, 0 , INFINITY) + return clamp(recoil_bonus, min_recoil , INFINITY) /obj/item/gun/proc/calculate_spread(mob/user, bonus_spread) var/final_spread = 0 diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index 0288813fd089..00f48cc29239 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -13,6 +13,8 @@ has_safety = TRUE safety = TRUE + min_recoil = 0.1 + valid_attachments = list( /obj/item/attachment/silencer, /obj/item/attachment/laser_sight, From 12f73cbb6e621e3891d853f4bdd3f28591bae609 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 25 Sep 2024 10:18:15 -0500 Subject: [PATCH 018/167] Automatic changelog generation for PR #3330 [ci skip] --- html/changelogs/AutoChangeLog-pr-3330.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3330.yml diff --git a/html/changelogs/AutoChangeLog-pr-3330.yml b/html/changelogs/AutoChangeLog-pr-3330.yml new file mode 100644 index 000000000000..46e461f2f53f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3330.yml @@ -0,0 +1,4 @@ +author: FalloutFalcon +changes: + - {rscadd: 'Ballistics now have a minimum recoil, not enough to mess up your shot!'} +delete-after: true From 06cc8b612d18ca841cb03140a7d816d14481bf43 Mon Sep 17 00:00:00 2001 From: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Date: Wed, 25 Sep 2024 08:52:11 -0500 Subject: [PATCH 019/167] Ship joining starts on locked (#3346) ## About The Pull Request Ship's start on locked instead of open Idea from #772 ## Why It's Good For The Game No longer can an assistant join your ship faster then you can, rejoice in time to write your memo and change your ships name. ## Changelog :cl: fix: ships now start closed. shiptesters be writing there memos and ship names. /:cl: --- code/modules/overmap/ships/controlled_ship_datum.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/overmap/ships/controlled_ship_datum.dm b/code/modules/overmap/ships/controlled_ship_datum.dm index 5d851e52f4fd..efa4e36026c0 100644 --- a/code/modules/overmap/ships/controlled_ship_datum.dm +++ b/code/modules/overmap/ships/controlled_ship_datum.dm @@ -56,7 +56,7 @@ var/owner_check_timer_id /// The ship's join mode. Controls whether players can join freely, have to apply, or can't join at all. - var/join_mode = SHIP_JOIN_MODE_OPEN + var/join_mode = SHIP_JOIN_MODE_CLOSED /// Lazylist of /datum/ship_applications for this ship. Only used if join_mode == SHIP_JOIN_MODE_APPLY var/list/datum/ship_application/applications From 8839b3e262ea10ec415f2680140d805f71be5e32 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 25 Sep 2024 10:31:47 -0500 Subject: [PATCH 020/167] Automatic changelog generation for PR #3346 [ci skip] --- html/changelogs/AutoChangeLog-pr-3346.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3346.yml diff --git a/html/changelogs/AutoChangeLog-pr-3346.yml b/html/changelogs/AutoChangeLog-pr-3346.yml new file mode 100644 index 000000000000..46be6f8474b6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3346.yml @@ -0,0 +1,4 @@ +author: FalloutFalcon +changes: + - {bugfix: ships now start closed. shiptesters be writing there memos and ship names.} +delete-after: true From 065b41dc33b4682678261952b4686c403b800552 Mon Sep 17 00:00:00 2001 From: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Date: Wed, 25 Sep 2024 08:52:29 -0500 Subject: [PATCH 021/167] blank ammo (#3352) ## About The Pull Request pending sprites! ## Why It's Good For The Game ## Changelog :cl: add: Added new blank shells for training drills! refactor: Minor refactor of design disks to reduce repeated code /:cl: --- code/modules/cargo/packs/ammo.dm | 12 +++ .../mining/lavaland/necropolis_chests.dm | 28 ------- .../ammunition/ballistic/shotgun.dm | 7 ++ .../projectiles/boxes_magazines/ammo_boxes.dm | 6 ++ .../projectiles/projectile/bullets/shotgun.dm | 6 ++ code/modules/research/designs.dm | 78 ++++++++++++------ .../research/designs/autolathe_designs.dm | 8 ++ .../ruins/spaceruin_code/bigderelict1.dm | 10 --- icons/obj/ammo_shotshells.dmi | Bin 1296 -> 3149 bytes 9 files changed, 93 insertions(+), 62 deletions(-) diff --git a/code/modules/cargo/packs/ammo.dm b/code/modules/cargo/packs/ammo.dm index 6fa0b54966c1..a7ab407b428e 100644 --- a/code/modules/cargo/packs/ammo.dm +++ b/code/modules/cargo/packs/ammo.dm @@ -72,6 +72,18 @@ cost = 500 contains = list(/obj/item/ammo_box/a12g/slug) +/datum/supply_pack/ammo/blank_shells + name = "Blank Shell Crate" + desc = "Contains a box of blank shells." + cost = 500 + contains = list(/obj/item/ammo_box/a12g/blanks) + +/datum/supply_pack/ammo/blank_ammo_disk + name = "Blank Ammo Design Disk Crate" + desc = "Run your own training drills!" + cost = 1000 + contains = list(/obj/item/disk/design_disk/blanks) + /datum/supply_pack/ammo/techshells name = "Unloaded Shotgun Technological Shells Crate" desc = "Contains a box of 7 versatile tech shells, capable of producing a variety of deadly effects for any situation. Some assembly required." diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index afae0dd0a6c0..e3e9f6aac8f0 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -150,34 +150,6 @@ if(28) new /obj/item/clothing/suit/armor/ascetic(src) -//KA modkit design discs -/obj/item/disk/design_disk/modkit_disc - name = "KA Mod Disk" - desc = "A design disc containing the design for a unique kinetic accelerator modkit. It's compatible with a research console." - illustration = "accel" - color = "#6F6F6F" - var/modkit_design = /datum/design/unique_modkit - -/obj/item/disk/design_disk/modkit_disc/Initialize() - . = ..() - blueprints[1] = new modkit_design - -/obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe - name = "Offensive Mining Explosion Mod Disk" - modkit_design = /datum/design/unique_modkit/offensive_turf_aoe - -/obj/item/disk/design_disk/modkit_disc/rapid_repeater - name = "Rapid Repeater Mod Disk" - modkit_design = /datum/design/unique_modkit/rapid_repeater - -/obj/item/disk/design_disk/modkit_disc/resonator_blast - name = "Resonator Blast Mod Disk" - modkit_design = /datum/design/unique_modkit/resonator_blast - -/obj/item/disk/design_disk/modkit_disc/bounty - name = "Death Syphon Mod Disk" - modkit_design = /datum/design/unique_modkit/bounty - /datum/design/unique_modkit category = list("Mining Designs", "Cyborg Upgrade Modules") //can't be normally obtained build_type = PROTOLATHE | MECHFAB diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm index 9f6a8c169ecd..24854030c041 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -46,6 +46,13 @@ icon_state = "incendiary" projectile_type = /obj/projectile/bullet/incendiary/shotgun +/obj/item/ammo_casing/shotgun/blank + name = "blank shell" + desc = "A shell packed with powder but no projectile." + icon_state = "blank" + projectile_type = /obj/projectile/bullet/pellet/blank + custom_materials = list(/datum/material/iron=250) + /obj/item/ammo_casing/shotgun/improvised name = "improvised shell" desc = "An extremely weak shotgun shell with multiple small pellets made out of metal shards." diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index 443f70c3314d..5b78f1fc93a1 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -250,6 +250,12 @@ icon_state = "12gbox-rubbershot" ammo_type = /obj/item/ammo_casing/shotgun/rubbershot +/obj/item/ammo_box/a12g/blanks + name = "ammo box (12g blanks)" + desc = "A box of 12-gauge blank shells, designed for training." + icon_state ="12gbox-slug" + ammo_type = /obj/item/ammo_casing/shotgun/blank + /obj/item/ammo_box/c9mm name = "ammo box (9mm)" desc = "A box of standard 9mm ammo." diff --git a/code/modules/projectiles/projectile/bullets/shotgun.dm b/code/modules/projectiles/projectile/bullets/shotgun.dm index ba9c8c88d7f8..a069102a39cc 100644 --- a/code/modules/projectiles/projectile/bullets/shotgun.dm +++ b/code/modules/projectiles/projectile/bullets/shotgun.dm @@ -114,3 +114,9 @@ damage = 30 armour_penetration = -25 tile_dropoff = 3 + +/obj/projectile/bullet/pellet/blank + name = "blank" + damage = 30 + range = 2 + armour_penetration = -70 diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index 79b28ccef331..340119a4e78a 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -97,18 +97,25 @@ other types of metals and chemistry for reagents). color = "#8b70ff" illustration = "design" custom_materials = list(/datum/material/iron =300, /datum/material/glass =100) + var/disk_name = "Design Disk" + var/design_name var/list/blueprints = list() - var/list/starting_blueprints = list() + var/starting_blueprints = list() var/max_blueprints = 1 /obj/item/disk/design_disk/Initialize() . = ..() pixel_x = base_pixel_x + rand(-5, 5) pixel_y = base_pixel_y + rand(-5, 5) - blueprints = new/list(max_blueprints) + if(design_name) + name = jointext(list(disk_name, design_name), " - ") + if(length(starting_blueprints)) + for(var/design in starting_blueprints) + blueprints += new design() /obj/item/disk/design_disk/adv name = "Advanced Component Design Disk" + disk_name = "Advanced Design Disk" color = "#bed876" desc = "A disk for storing device design data for construction in lathes. This one has a little bit of extra storage space." custom_materials = list(/datum/material/iron =300, /datum/material/glass = 100, /datum/material/silver = 50) @@ -116,6 +123,7 @@ other types of metals and chemistry for reagents). /obj/item/disk/design_disk/super name = "Super Component Design Disk" + disk_name = "Super Design Disk" color = "#c25454" desc = "A disk for storing device design data for construction in lathes. This one has more extra storage space." custom_materials = list(/datum/material/iron =300, /datum/material/glass = 100, /datum/material/silver = 50, /datum/material/gold = 50) @@ -123,6 +131,7 @@ other types of metals and chemistry for reagents). /obj/item/disk/design_disk/elite name = "Elite Component Design Disk" + disk_name = "Elite Design Disk" color = "#333333" desc = "A disk for storing device design data for construction in lathes. This one has absurd amounts of extra storage space." custom_materials = list(/datum/material/iron =300, /datum/material/glass = 100, /datum/material/silver = 100, /datum/material/gold = 100, /datum/material/bluespace = 50) @@ -130,39 +139,60 @@ other types of metals and chemistry for reagents). //Disks with content /obj/item/disk/design_disk/ammo_c10mm - name = "Design Disk - 10mm Ammo" + design_name = "10mm Ammo" desc = "A design disk containing the pattern for a refill box of standard 10mm ammo, used in Stechkin pistols." - -/obj/item/disk/design_disk/ammo_c10mm/Initialize() - . = ..() - blueprints[1] = new /datum/design/c10mm() - + starting_blueprints = (/datum/design/c10mm) /obj/item/disk/design_disk/disposable_gun - name = "design disk - disposable gun" + design_name = "Disposable gun" desc = "A design disk containing designs for a cheap and disposable gun." illustration = "gun" max_blueprints = 2 - -/obj/item/disk/design_disk/disposable_gun/Initialize() - . = ..() - blueprints[1] = new /datum/design/disposable_gun() + starting_blueprints = list(/datum/design/disposable_gun) /obj/item/disk/design_disk/clip_mechs - name = "design disk - CLIP exosuit modifications" + design_name = "CLIP exosuit modifications" desc = "A design disk containing specifications for CLIP-custom exosuit conversions." color = "#57b8f0" max_blueprints = 2 - -/obj/item/disk/design_disk/clip_mechs/Initialize() - . = ..() - blueprints[1] = new /datum/design/clip_ripley_upgrade() - blueprints[2] = new /datum/design/clip_durand_upgrade() + starting_blueprints = list(/datum/design/clip_ripley_upgrade, /datum/design/clip_durand_upgrade) /obj/item/disk/design_disk/ammo_c9mm - name = "Design Disk - 9mm Ammo" + design_name = "9mm Ammo" desc = "A design disk containing the pattern for a refill box of standard 9mm ammo, used in Commander pistols." - -/obj/item/disk/design_disk/ammo_c9mm/Initialize() - . = ..() - blueprints[1] = new /datum/design/c9mmautolathe() + starting_blueprints = list(/datum/design/c9mmautolathe) + +/obj/item/disk/design_disk/blanks + design_name = "Blank Ammo" + starting_blueprints = list(/datum/design/blank_shell) + + +/obj/item/disk/design_disk/ammo_1911 + design_name = "1911 Magazine" + desc = "A design disk containing the pattern for the classic 1911's seven round .45ACP magazine." + illustration = "ammo" + starting_blueprints = list(/datum/design/colt_1911_magazine) + +//KA modkit design discs +/obj/item/disk/design_disk/modkit_disc + design_name = "KA Mod" + desc = "A design disc containing the design for a unique kinetic accelerator modkit. It's compatible with a research console." + illustration = "accel" + color = "#6F6F6F" + starting_blueprints = list(/datum/design/unique_modkit) + +/obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe + design_name = "Offensive Mining Explosion Mod" + starting_blueprints = list(/datum/design/unique_modkit/offensive_turf_aoe) + +/obj/item/disk/design_disk/modkit_disc/rapid_repeater + design_name = "Rapid Repeater Mod" + starting_blueprints = list(/datum/design/unique_modkit/rapid_repeater) + +/obj/item/disk/design_disk/modkit_disc/resonator_blast + design_name = "Resonator Blast Mod" + starting_blueprints = list(/datum/design/unique_modkit/resonator_blast) + +/obj/item/disk/design_disk/modkit_disc/bounty + design_name = "Death Syphon Mod" + starting_blueprints = list(/datum/design/unique_modkit/bounty) diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index d1fe33024919..0b679dfcc4bf 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -796,6 +796,14 @@ build_path = /obj/item/ammo_casing/shotgun/beanbag category = list("initial", "Security", "Ammo") +/datum/design/blank_shell + name = "Shotgun Blank" + id = "blank_shell" + build_type = AUTOLATHE | PROTOLATHE + materials = list(/datum/material/iron = 2000) + build_path = /obj/item/ammo_casing/shotgun/blank + category = list("Security", "Ammo") + /datum/design/riot_dart name = "Foam Riot Dart" id = "riot_dart" diff --git a/code/modules/ruins/spaceruin_code/bigderelict1.dm b/code/modules/ruins/spaceruin_code/bigderelict1.dm index 99af3b9efa28..9e2a0957547b 100644 --- a/code/modules/ruins/spaceruin_code/bigderelict1.dm +++ b/code/modules/ruins/spaceruin_code/bigderelict1.dm @@ -6,13 +6,3 @@ /obj/item/paper/crumpled/ruins/bigderelict1/coward icon_state = "scrap_bloodied" default_raw_text = "If anyone finds this, please, don't let my kids know I died a coward.." - -/obj/item/disk/design_disk/ammo_1911 - name = "design disk - 1911 magazine" - desc = "A design disk containing the pattern for the classic 1911's seven round .45ACP magazine." - illustration = "ammo" - -/obj/item/disk/design_disk/ammo_1911/Initialize() - . = ..() - var/datum/design/colt_1911_magazine/M = new - blueprints[1] = M diff --git a/icons/obj/ammo_shotshells.dmi b/icons/obj/ammo_shotshells.dmi index fe37023686bdb306d3b9d05aceb053a4352be841..55b00cdd0b21797c4f752dd63dc42530a6d6b336 100644 GIT binary patch literal 3149 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 From 833285300c5ad5867789ab46d5cc2f65ba485602 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 25 Sep 2024 10:44:41 -0500 Subject: [PATCH 022/167] Automatic changelog generation for PR #3352 [ci skip] --- html/changelogs/AutoChangeLog-pr-3352.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3352.yml diff --git a/html/changelogs/AutoChangeLog-pr-3352.yml b/html/changelogs/AutoChangeLog-pr-3352.yml new file mode 100644 index 000000000000..266106d74f64 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3352.yml @@ -0,0 +1,5 @@ +author: FalloutFalcon +changes: + - {rscadd: Added new blank shells for training drills!} + - {refactor: Minor refactor of design disks to reduce repeated code} +delete-after: true From eb41937929ecefa9ea723a2d129ee9b208fa9183 Mon Sep 17 00:00:00 2001 From: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Date: Wed, 25 Sep 2024 08:58:42 -0500 Subject: [PATCH 023/167] Partial port of tg points of intrest and improved orbit menu (#3320) ## About The Pull Request Squash of #3219 rebased ontop of a revert of #3218 cause i fucked up the commit history - [x] Fix admin menu - [x] Fix auto-observe ## Why It's Good For The Game This massively improves the readability of the orbit menu. You can now add custom points of interest pretty easily as it uses an element now. ## Changelog :cl: add: You can now see ships in the orbit menu and its alot prettier! code: ported tg points of interest and a much improved orbit menu /:cl: --------- Signed-off-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> --- _maps/map_files/generic/CentCom.dmm | 12 +- code/__DEFINES/dcs/signals/signals.dm | 6 + code/__HELPERS/_lists.dm | 36 +++ code/__HELPERS/roundend.dm | 2 +- code/__HELPERS/unsorted.dm | 61 +--- code/_globalvars/lists/objects.dm | 2 - .../subsystem/points_of_interest.dm | 227 +++++++++++++++ code/datums/elements/point_of_interest.dm | 22 ++ code/datums/spawners_menu.dm | 2 +- code/game/atom/atom_orbit.dm | 33 +++ code/game/atoms.dm | 5 - code/game/gamemodes/wizard/wizard.dm | 2 +- code/game/mecha/mecha.dm | 4 +- code/game/objects/items/eightball.dm | 4 +- code/modules/admin/player_panel.dm | 12 +- code/modules/admin/verbs/adminjump.dm | 2 +- code/modules/antagonists/cult/runes.dm | 6 +- .../nukeop/equipment/nuclearbomb.dm | 8 +- .../nukeop/equipment/pinpointer.dm | 2 +- code/modules/antagonists/nukeop/nukeop.dm | 2 +- code/modules/awaymissions/capture_the_flag.dm | 4 +- code/modules/awaymissions/corpse.dm | 4 +- code/modules/cargo/centcom_podlauncher.dm | 2 +- code/modules/events/immovable_rod.dm | 4 +- code/modules/events/wizard/greentext.dm | 4 +- .../modules/mob/dead/new_player/new_player.dm | 1 + code/modules/mob/dead/observer/observer.dm | 21 +- code/modules/mob/dead/observer/orbit.dm | 271 ++++++++++++++---- code/modules/mob/living/living.dm | 1 + .../friendly/drone/drones_as_items.dm | 5 - .../hostile/megafauna/colossus.dm | 4 +- code/modules/mob/mob.dm | 2 +- .../file_system/programs/radar.dm | 6 +- code/modules/overmap/helm.dm | 3 + code/modules/power/singularity/singularity.dm | 4 +- code/modules/power/supermatter/supermatter.dm | 4 +- code/modules/power/tesla/energy_ball.dm | 2 +- code/modules/projectiles/guns/energy/pulse.dm | 4 +- code/modules/spells/spell_types/lichdom.dm | 4 +- shiptest.dme | 3 + tgui/packages/tgui/interfaces/Orbit.js | 218 -------------- .../tgui/interfaces/Orbit/OrbitContent.tsx | 98 +++++++ .../tgui/interfaces/Orbit/OrbitItem.tsx | 50 ++++ .../tgui/interfaces/Orbit/OrbitSection.tsx | 65 +++++ .../tgui/interfaces/Orbit/OrbitTooltip.tsx | 57 ++++ .../tgui/interfaces/Orbit/constants.ts | 8 + .../packages/tgui/interfaces/Orbit/helpers.ts | 119 ++++++++ tgui/packages/tgui/interfaces/Orbit/index.tsx | 86 ++++++ tgui/packages/tgui/interfaces/Orbit/types.ts | 38 +++ 49 files changed, 1135 insertions(+), 407 deletions(-) create mode 100644 code/controllers/subsystem/points_of_interest.dm create mode 100644 code/datums/elements/point_of_interest.dm create mode 100644 code/game/atom/atom_orbit.dm delete mode 100644 tgui/packages/tgui/interfaces/Orbit.js create mode 100644 tgui/packages/tgui/interfaces/Orbit/OrbitContent.tsx create mode 100644 tgui/packages/tgui/interfaces/Orbit/OrbitItem.tsx create mode 100644 tgui/packages/tgui/interfaces/Orbit/OrbitSection.tsx create mode 100644 tgui/packages/tgui/interfaces/Orbit/OrbitTooltip.tsx create mode 100644 tgui/packages/tgui/interfaces/Orbit/constants.ts create mode 100644 tgui/packages/tgui/interfaces/Orbit/helpers.ts create mode 100644 tgui/packages/tgui/interfaces/Orbit/index.tsx create mode 100644 tgui/packages/tgui/interfaces/Orbit/types.ts diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index e25bceb1dd44..405950bfe633 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -26,7 +26,7 @@ /turf/open/floor/plasteel/dark, /area/tdome/tdomeadmin) "afh" = ( -/obj/machinery/computer/helm{ +/obj/machinery/computer{ dir = 4 }, /obj/effect/turf_decal/industrial/warning{ @@ -1356,7 +1356,7 @@ /turf/open/floor/plasteel, /area/wizard_station) "ara" = ( -/obj/machinery/computer/helm, +/obj/machinery/computer, /turf/open/floor/plasteel, /area/wizard_station) "ard" = ( @@ -3939,7 +3939,7 @@ /turf/open/floor/mineral/titanium/blue, /area/centcom/evac) "aLP" = ( -/obj/machinery/computer/helm{ +/obj/machinery/computer{ dir = 1 }, /turf/open/floor/mineral/titanium/blue, @@ -8827,7 +8827,7 @@ }, /area/centcom) "gFU" = ( -/obj/machinery/computer/helm, +/obj/machinery/computer, /obj/effect/turf_decal/industrial/warning{ dir = 6 }, @@ -12230,7 +12230,7 @@ /turf/open/floor/plasteel/dark, /area/tdome/tdomeadmin) "nEL" = ( -/obj/machinery/computer/helm, +/obj/machinery/computer, /obj/effect/turf_decal/industrial/warning{ dir = 10 }, @@ -15778,7 +15778,7 @@ /turf/open/floor/plasteel/dark, /area/ctf) "vcL" = ( -/obj/machinery/computer/helm, +/obj/machinery/computer, /obj/effect/turf_decal/corner/transparent/bar, /obj/effect/turf_decal/corner/transparent/bar{ dir = 1 diff --git a/code/__DEFINES/dcs/signals/signals.dm b/code/__DEFINES/dcs/signals/signals.dm index 38f7d8692853..f3295b737904 100644 --- a/code/__DEFINES/dcs/signals/signals.dm +++ b/code/__DEFINES/dcs/signals/signals.dm @@ -735,3 +735,9 @@ ///sent when the access on an id is changed/updated, ensures wallets get updated once ids generate there access #define COSMIG_ACCESS_UPDATED "acces_updated" + +// Point of interest signals +/// Sent from base of /datum/controller/subsystem/points_of_interest/proc/on_poi_element_added : (atom/new_poi) +#define COMSIG_ADDED_POINT_OF_INTEREST "added_point_of_interest" +/// Sent from base of /datum/controller/subsystem/points_of_interest/proc/on_poi_element_removed : (atom/old_poi) +#define COMSIG_REMOVED_POINT_OF_INTEREST "removed_point_of_interest" diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 435b83e29797..b231b4e944c9 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -87,6 +87,42 @@ };\ } while(FALSE) + +/** + * Custom binary search sorted insert utilising comparison procs instead of vars. + * INPUT: Object to be inserted + * LIST: List to insert object into + * TYPECONT: The typepath of the contents of the list + * COMPARE: The object to compare against, usualy the same as INPUT + * COMPARISON: The plaintext name of a proc on INPUT that takes a single argument to accept a single element from LIST and returns a positive, negative or zero number to perform a comparison. + * COMPTYPE: How should the values be compared? Either COMPARE_KEY or COMPARE_VALUE. + */ +#define BINARY_INSERT_PROC_COMPARE(INPUT, LIST, TYPECONT, COMPARE, COMPARISON, COMPTYPE) \ + do {\ + var/list/__BIN_LIST = LIST;\ + var/__BIN_CTTL = length(__BIN_LIST);\ + if(!__BIN_CTTL) {\ + __BIN_LIST += INPUT;\ + } else {\ + var/__BIN_LEFT = 1;\ + var/__BIN_RIGHT = __BIN_CTTL;\ + var/__BIN_MID = (__BIN_LEFT + __BIN_RIGHT) >> 1;\ + var ##TYPECONT/__BIN_ITEM;\ + while(__BIN_LEFT < __BIN_RIGHT) {\ + __BIN_ITEM = COMPTYPE;\ + if(__BIN_ITEM.##COMPARISON(COMPARE) <= 0) {\ + __BIN_LEFT = __BIN_MID + 1;\ + } else {\ + __BIN_RIGHT = __BIN_MID;\ + };\ + __BIN_MID = (__BIN_LEFT + __BIN_RIGHT) >> 1;\ + };\ + __BIN_ITEM = COMPTYPE;\ + __BIN_MID = __BIN_ITEM.##COMPARISON(COMPARE) > 0 ? __BIN_MID : __BIN_MID + 1;\ + __BIN_LIST.Insert(__BIN_MID, INPUT);\ + };\ + } while(FALSE) + //Returns a list in plain english as a string /proc/english_list(list/input, nothing_text = "nothing", and_text = " and ", comma_text = ", ", final_comma_text = "" ) var/total = length(input) diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index 97740a79537e..01fd964120ea 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -116,7 +116,7 @@ SSblackbox.record_feedback("associative", "antagonists", 1, antag_info) /datum/controller/subsystem/ticker/proc/record_nuke_disk_location() - var/obj/item/disk/nuclear/N = locate() in GLOB.poi_list + var/obj/item/disk/nuclear/N = locate() in SSpoints_of_interest.other_points_of_interest if(N) var/list/data = list() var/turf/T = get_turf(N) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 36764c6bae9f..d831296dbb62 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -294,65 +294,6 @@ Turf and target are separate in case you want to teleport some distance from a t /proc/ionnum() return "[pick("!","@","#","$","%","^","&")][pick("!","@","#","$","%","^","&","*")][pick("!","@","#","$","%","^","&","*")][pick("!","@","#","$","%","^","&","*")]" -//Returns a list of all items of interest with their name -/proc/getpois(mobs_only = FALSE, skip_mindless = FALSE, specify_dead_role = TRUE) - var/list/mobs = sortmobs() - var/list/namecounts = list() - var/list/pois = list() - for(var/mob/M in mobs) - if(skip_mindless && (!M.mind && !M.ckey)) - if(!isbot(M) && !iscameramob(M) && !ismegafauna(M)) - continue - if(M.client && M.client.holder && M.client.holder.fakekey) //stealthmins - continue - var/name = avoid_assoc_duplicate_keys(M.name, namecounts) + M.get_realname_string() - - if(M.stat == DEAD && specify_dead_role) - if(isobserver(M)) - name += " \[ghost\]" - else - name += " \[dead\]" - pois[name] = M - - if(!mobs_only) - for(var/atom/A in GLOB.poi_list) - if(!A || !A.loc) - continue - pois[avoid_assoc_duplicate_keys(A.name, namecounts)] = A - - return pois -//Orders mobs by type then by name -/proc/sortmobs() - var/list/moblist = list() - var/list/sortmob = sortNames(GLOB.mob_list) - for(var/mob/living/silicon/ai/M in sortmob) - moblist.Add(M) - for(var/mob/camera/M in sortmob) - moblist.Add(M) - for(var/mob/living/silicon/pai/M in sortmob) - moblist.Add(M) - for(var/mob/living/silicon/robot/M in sortmob) - moblist.Add(M) - for(var/mob/living/carbon/human/M in sortmob) - moblist.Add(M) - for(var/mob/living/brain/M in sortmob) - moblist.Add(M) - for(var/mob/living/carbon/alien/M in sortmob) - moblist.Add(M) - for(var/mob/dead/observer/M in sortmob) - moblist.Add(M) - for(var/mob/dead/new_player/M in sortmob) - moblist.Add(M) - for(var/mob/living/carbon/monkey/M in sortmob) - moblist.Add(M) - for(var/mob/living/simple_animal/slime/M in sortmob) - moblist.Add(M) - for(var/mob/living/simple_animal/M in sortmob) - moblist.Add(M) - for(var/mob/living/carbon/true_devil/M in sortmob) - moblist.Add(M) - return moblist - // Format a power value in W, kW, MW, or GW. /proc/DisplayPower(powerused) if(powerused < 1000) //Less than a kW @@ -384,7 +325,7 @@ Turf and target are separate in case you want to teleport some distance from a t /proc/get_mob_by_ckey(key) if(!key) return - var/list/mobs = sortmobs() + var/list/mobs = SSpoints_of_interest.get_mob_pois() for(var/mob/M in mobs) if(M.ckey == key) return M diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index 7ee53ec1f37b..6d08f1d1bceb 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -46,8 +46,6 @@ GLOBAL_LIST_EMPTY(apcs_list) GLOBAL_LIST_EMPTY(tracked_implants) /// List of implants the prisoner console can track and send inject commands too GLOBAL_LIST_EMPTY(tracked_chem_implants) -/// List of points of interest for observe/follow -GLOBAL_LIST_EMPTY(poi_list) /// List of all pinpointers. Used to change stuff they are pointing to all at once. GLOBAL_LIST_EMPTY(pinpointer_list) /// List of all zombie_infection organs, for any mass "animation" diff --git a/code/controllers/subsystem/points_of_interest.dm b/code/controllers/subsystem/points_of_interest.dm new file mode 100644 index 000000000000..6de327bc8666 --- /dev/null +++ b/code/controllers/subsystem/points_of_interest.dm @@ -0,0 +1,227 @@ +/// Subsystem for managing all POIs. +SUBSYSTEM_DEF(points_of_interest) + name = "Points of Interest" + + flags = SS_NO_FIRE | SS_NO_INIT + + /// List of mob POIs. This list is automatically sorted. + var/list/datum/point_of_interest/mob_poi/mob_points_of_interest = list() + /// List of non-mob POIs. This list is automatically sorted. + var/list/datum/point_of_interest/other_points_of_interest = list() + /// List of all value:POI datums by their key:target refs. + var/list/datum/point_of_interest/points_of_interest_by_target_ref = list() + +/** + * Turns new_poi into a new point of interest by adding the /datum/element/point_of_interest element to it. + */ +/datum/controller/subsystem/points_of_interest/proc/make_point_of_interest(atom/new_poi) + new_poi.AddElement(/datum/element/point_of_interest) + +/** + * Stops old_poi from being a point of interest by removing the /datum/element/point_of_interest element from it. + */ +/datum/controller/subsystem/points_of_interest/proc/remove_point_of_interest(atom/old_poi) + old_poi.RemoveElement(/datum/element/point_of_interest) + +/** + * Called by [/datum/element/point_of_interest] when it gets removed from old_poi. + */ +/datum/controller/subsystem/points_of_interest/proc/on_poi_element_added(atom/new_poi) + var/datum/point_of_interest/new_poi_datum + if(ismob(new_poi)) + new_poi_datum = new /datum/point_of_interest/mob_poi(new_poi) + BINARY_INSERT_PROC_COMPARE(new_poi_datum, mob_points_of_interest, /datum/point_of_interest/mob_poi, new_poi_datum, compare_to, COMPARE_KEY) + points_of_interest_by_target_ref[REF(new_poi)] = new_poi_datum + else + new_poi_datum = new /datum/point_of_interest(new_poi) + BINARY_INSERT_PROC_COMPARE(new_poi_datum, other_points_of_interest, /datum/point_of_interest, new_poi_datum, compare_to, COMPARE_KEY) + points_of_interest_by_target_ref[REF(new_poi)] = new_poi_datum + + + SEND_SIGNAL(src, COMSIG_ADDED_POINT_OF_INTEREST, new_poi) + +/** + * Called by [/datum/element/point_of_interest] when it gets removed from old_poi. + */ +/datum/controller/subsystem/points_of_interest/proc/on_poi_element_removed(atom/old_poi) + var/poi_ref = REF(old_poi) + var/datum/point_of_interest/poi_to_remove = points_of_interest_by_target_ref[poi_ref] + + if(!poi_to_remove) + return + + if(ismob(old_poi)) + mob_points_of_interest -= poi_to_remove + else + other_points_of_interest -= poi_to_remove + + points_of_interest_by_target_ref -= poi_ref + + poi_to_remove.target = null + + SEND_SIGNAL(src, COMSIG_REMOVED_POINT_OF_INTEREST, old_poi) + +/** + * If there is a valid POI for a given reference, it returns that POI's associated atom. Otherwise, it returns null. + */ +/datum/controller/subsystem/points_of_interest/proc/get_poi_atom_by_ref(reference) + return points_of_interest_by_target_ref[reference]?.target + +/** + * Returns a list of mob POIs with names as keys and mobs as values. + * + * If multiple POIs have the same name, then avoid_assoc_duplicate_keys is used alongside used_name_list to + * tag them as Mob Name (1), Mob Name (2), Mob Name (3) etc. + * + * Arguments: + * * poi_validation_override - [OPTIONAL] Callback to a proc that takes a single argument for the POI and returns TRUE if this POI should be included. Overrides standard POI validation. + * * append_dead_role - [OPTIONAL] If TRUE, adds a ghost tag to the end of observer names and a dead tag to the end of any other mob which is not alive. + */ +/datum/controller/subsystem/points_of_interest/proc/get_mob_pois(datum/callback/poi_validation_override = null, append_dead_role = TRUE) + var/list/pois = list() + var/list/used_name_list = list() + + for(var/datum/point_of_interest/mob_poi/mob_poi as anything in mob_points_of_interest) + if(poi_validation_override) + if(!poi_validation_override.Invoke(mob_poi)) + continue + else if(!mob_poi.validate()) + continue + + var/mob/target_mob = mob_poi.target + var/name = avoid_assoc_duplicate_keys(target_mob.name, used_name_list) + target_mob.get_realname_string() + + // Add the ghost/dead tag to the end of dead mob POIs. + if(append_dead_role && target_mob.stat == DEAD) + if(isobserver(target_mob)) + name += " \[ghost\]" + else + name += " \[dead\]" + + pois[name] = target_mob + + return pois + +/** + * Returns a list of non-mob POIs with names as keys and atoms as values. + * + * If multiple POIs have the same name, then avoid_assoc_duplicate_keys is used alongside used_name_list to + * tag them as Object Name (1), Object Name (2), Object Name (3) etc. + * + * Arguments: + * * poi_validation_override - [OPTIONAL] Callback to a proc that takes a single argument for the POI and returns TRUE if this POI should be included. Overrides standard POI validation. + */ +/datum/controller/subsystem/points_of_interest/proc/get_other_pois(datum/callback/poi_validation_override = null) + var/list/pois = list() + var/list/used_name_list = list() + + for(var/datum/point_of_interest/other_poi as anything in other_points_of_interest) + if(poi_validation_override) + if(!poi_validation_override.Invoke(other_poi)) + continue + else if(!other_poi.validate()) + continue + + var/atom/target_poi = other_poi.target + + pois[avoid_assoc_duplicate_keys(target_poi.name, used_name_list)] = target_poi + + return pois + +/// Returns TRUE if potential_poi has an associated poi_datum that validates. +/datum/controller/subsystem/points_of_interest/proc/is_valid_poi(atom/potential_poi, datum/callback/poi_validation_override = null) + var/datum/point_of_interest/poi_datum = points_of_interest_by_target_ref[REF(potential_poi)] + + if(!poi_datum) + return FALSE + + if(poi_validation_override) + return poi_validation_override.Invoke(poi_datum) + + return poi_datum.validate() + +/// Simple helper datum for points of interest. +/datum/point_of_interest + /// The specific point of interest this datum references. This won't hard del as the POI element will be removed from the target when it qdels, which will clear this reference. + var/atom/target + /// The type of POI this datum references. + var/poi_type = /atom + +/datum/point_of_interest/New(poi_target) + if(!istype(poi_target, poi_type)) + CRASH("Incorrect target type provided to /datum/point_of_interest/New: Expected \[[poi_type]\]") + + target = poi_target + +/// Validates the POI. Returns TRUE if the POI has valid state, returns FALSE if the POI has invalid state. +/datum/point_of_interest/proc/validate() + // In nullspace, invalid as a POI. + if(!target.loc) + return FALSE + + return TRUE + +/// Comparison proc used to sort POIs. Override to implement logic used doing binary sort insertions. +/datum/point_of_interest/proc/compare_to(datum/point_of_interest/rhs) + return cmp_name_asc(target, rhs.target) + +/datum/point_of_interest/mob_poi + poi_type = /mob + +/// Validation for mobs is expanded to invalidate stealthmins and /mob/dead/new_player as POIs. +/datum/point_of_interest/mob_poi/validate() + . = ..() + + if(!.) + return + + var/mob/poi_mob = target + + // Stealthmin, invalid as a POI. + if(poi_mob.client?.holder?.fakekey) + return FALSE + + /* + // POI is a /mob/dead/new_player, players in the lobby are invalid as POIs. + if(isnewplayer(poi_mob)) + return FALSE + */ + + return TRUE + +/// Mob POIs are sorted by a simple priority list depending on their type. When their type priority is identical, they're sub-sorted by name. +/datum/point_of_interest/mob_poi/compare_to(datum/point_of_interest/mob_poi/rhs) + var/sort_difference = get_type_sort_priority() - rhs.get_type_sort_priority() + + // If they're equal in priority, call parent to sort by name. + if(sort_difference == 0) + return ..() + // Else sort by priority. + else + return sort_difference + +/// Priority list broadly stolen from /proc/sortmobs(). Lower numbers are higher priorities when sorted and appear closer to the top or start of lists. +/datum/point_of_interest/mob_poi/proc/get_type_sort_priority() + if(isAI(target)) + return 0 + if(iscameramob(target)) + return 1 + if(ispAI(target)) + return 2 + if(iscyborg(target)) + return 3 + if(ishuman(target)) + return 4 + if(isbrain(target)) + return 5 + if(isalien(target)) + return 6 + if(isobserver(target)) + return 7 + if(isnewplayer(target)) + return 8 + if(isslime(target)) + return 9 + if(isanimal(target)) + return 10 + return 11 diff --git a/code/datums/elements/point_of_interest.dm b/code/datums/elements/point_of_interest.dm new file mode 100644 index 000000000000..d64ee5466ace --- /dev/null +++ b/code/datums/elements/point_of_interest.dm @@ -0,0 +1,22 @@ +/// Designates the atom as a "point of interest", meaning it can be directly orbited +/datum/element/point_of_interest + element_flags = ELEMENT_DETACH + +/datum/element/point_of_interest/Attach(datum/target) + if (!isatom(target)) + return ELEMENT_INCOMPATIBLE + + /* + // New players are abstract mobs assigned to people who are still in the lobby screen. + // As a result, they are not a valid POI and should never be a valid POI. If they + // somehow get this element attached to them, there's something we need to debug. + if(isnewplayer(target)) + return ELEMENT_INCOMPATIBLE + */ + + SSpoints_of_interest.on_poi_element_added(target) + return ..() + +/datum/element/point_of_interest/Detach(datum/target) + SSpoints_of_interest.on_poi_element_removed(target) + return ..() diff --git a/code/datums/spawners_menu.dm b/code/datums/spawners_menu.dm index 9e7e4b334ddc..01709a00c1a1 100644 --- a/code/datums/spawners_menu.dm +++ b/code/datums/spawners_menu.dm @@ -53,7 +53,7 @@ if(!spawnerlist.len) return var/obj/effect/mob_spawn/MS = pick(spawnerlist) - if(!istype(MS) || !(MS in GLOB.poi_list)) + if(!istype(MS) || !(MS in SSpoints_of_interest.other_points_of_interest)) return switch(action) if("jump") diff --git a/code/game/atom/atom_orbit.dm b/code/game/atom/atom_orbit.dm new file mode 100644 index 000000000000..2294293bd8b7 --- /dev/null +++ b/code/game/atom/atom_orbit.dm @@ -0,0 +1,33 @@ +/atom + ///Reference to atom being orbited + var/atom/orbit_target + ///The orbiter component, if there's anything orbiting this atom + var/datum/component/orbiter/orbiters + +/** + * Recursive getter method to return a list of all ghosts orbitting this atom + * + * This will work fine without manually passing arguments. + * * processed - The list of atoms we've already convered + * * source - Is this the atom for who we're counting up all the orbiters? + * * ignored_stealthed_admins - If TRUE, don't count admins who are stealthmoded and orbiting this + */ +/atom/proc/get_all_orbiters(list/processed, source = TRUE, ignore_stealthed_admins = TRUE) + var/list/output = list() + if(!processed) + processed = list() + else if(src in processed) + return output + + if(!source) + output += src + + processed += src + for(var/atom/atom_orbiter as anything in orbiters?.orbiters) + output += atom_orbiter.get_all_orbiters(processed, source = FALSE) + return output + +/mob/get_all_orbiters(list/processed, source = TRUE, ignore_stealthed_admins = TRUE) + if(!source && ignore_stealthed_admins && client?.holder?.fakekey) + return list() + return ..() diff --git a/code/game/atoms.dm b/code/game/atoms.dm index f52b9bdace9e..b96e8a53c824 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -75,9 +75,6 @@ ///Economy cost of item in premium vendor var/custom_premium_price - //List of datums orbiting this atom - var/datum/component/orbiter/orbiters - /// Radiation insulation types var/rad_insulation = RAD_NO_INSULATION @@ -154,8 +151,6 @@ /// The current connector overlay appearance. Saved so that it can be cut when necessary. var/connector_overlay - ///Reference to atom being orbited - var/atom/orbit_target ///Default X pixel offset var/base_pixel_x ///Default Y pixel offset diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index c3895f302279..83d7a32d1fd9 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -56,7 +56,7 @@ if(isliving(wizard.current) && wizard.current.stat!=DEAD) return FALSE - for(var/obj/item/phylactery/P in GLOB.poi_list) //TODO : IsProperlyDead() + for(var/obj/item/phylactery/P in SSpoints_of_interest.other_points_of_interest) //TODO : IsProperlyDead() if(P.mind && P.mind.has_antag_datum(/datum/antagonist/wizard)) return FALSE diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index b903564c88d6..a1b46fd2fbfa 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -137,7 +137,7 @@ add_scanmod() add_capacitor() START_PROCESSING(SSobj, src) - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) log_message("[src.name] created.", LOG_MECHA) GLOB.mechas_list += src //global mech list prepare_huds() @@ -176,7 +176,7 @@ AI.gib() //No wreck, no AI to recover AI = null STOP_PROCESSING(SSobj, src) - GLOB.poi_list.Remove(src) + SSpoints_of_interest.remove_point_of_interest(src) equipment.Cut() for(var/datum/atom_hud/data/diagnostic/diag_hud in GLOB.huds) diff --git a/code/game/objects/items/eightball.dm b/code/game/objects/items/eightball.dm index 1396521aaf9a..b721393e85ed 100644 --- a/code/game/objects/items/eightball.dm +++ b/code/game/objects/items/eightball.dm @@ -136,10 +136,10 @@ become_hearing_sensitive(ROUNDSTART_TRAIT) for (var/answer in haunted_answers) votes[answer] = 0 - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) /obj/item/toy/eightball/haunted/Destroy() - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) . = ..() /obj/item/toy/eightball/haunted/MakeHaunted() diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index cf834c9f9c5d..e5888f8088df 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -216,9 +216,10 @@ "} - var/list/mobs = sortmobs() + var/list/mobs = SSpoints_of_interest.get_mob_pois() var/i = 1 - for(var/mob/M in mobs) + for(var/mob_name in mobs) + var/mob/M = mobs[mob_name] if(M.ckey) var/color = "#e6e6e6" @@ -254,12 +255,7 @@ M_job = "Silicon-based" else if(isanimal(M)) //simple animals - if(iscorgi(M)) - M_job = "Corgi" - else if(isslime(M)) - M_job = "slime" - else - M_job = "Animal" + M_job = "Animal" else M_job = "Living" diff --git a/code/modules/admin/verbs/adminjump.dm b/code/modules/admin/verbs/adminjump.dm index 9b84224317a9..708448cf52cd 100644 --- a/code/modules/admin/verbs/adminjump.dm +++ b/code/modules/admin/verbs/adminjump.dm @@ -140,7 +140,7 @@ usr.forceMove(M.loc) SSblackbox.record_feedback("tally", "admin_verb", 1, "Get Key") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/client/proc/sendmob(mob/M in sortmobs()) +/client/proc/sendmob(mob/M in SSpoints_of_interest.get_mob_pois()) set category = "Admin.Game" set name = "Send Mob" if(!src.holder) diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm index b0fb446405c2..3382672071cc 100644 --- a/code/modules/antagonists/cult/runes.dm +++ b/code/modules/antagonists/cult/runes.dm @@ -450,10 +450,10 @@ structure_check() searches for nearby cultist structures required for the invoca /obj/effect/rune/narsie/Initialize(mapload, set_keyword) . = ..() - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) /obj/effect/rune/narsie/Destroy() - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) . = ..() /obj/effect/rune/narsie/conceal() //can't hide this, and you wouldn't want to @@ -469,7 +469,7 @@ structure_check() searches for nearby cultist structures required for the invoca if(!(place in summon_objective.summon_spots)) to_chat(user, "The Geometer can only be summoned where the veil is weak - in [english_list(summon_objective.summon_spots)]!") return - if(locate(/obj/singularity/narsie) in GLOB.poi_list) + if(locate(/obj/singularity/narsie) in SSpoints_of_interest.other_points_of_interest) for(var/M in invokers) to_chat(M, "Nar'Sie is already on this plane!") log_game("Nar'Sie rune failed - already summoned") diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index 26d7321eb813..9c65e50130cf 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -38,7 +38,7 @@ core = new /obj/item/nuke_core(src) STOP_PROCESSING(SSobj, core) update_appearance() - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) previous_level = get_security_level() /obj/machinery/nuclearbomb/Destroy() @@ -46,7 +46,7 @@ if(!exploding) // If we're not exploding, set the alert level back to normal set_safety() - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) GLOB.nuke_list -= src QDEL_NULL(countdown) QDEL_NULL(core) @@ -611,7 +611,7 @@ This is here to make the tiles around the station mininuke change when it's arme AddElement(/datum/element/bed_tuckable, 6, -6, 0) if(!fake) - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) last_disk_move = world.time START_PROCESSING(SSobj, src) @@ -661,7 +661,7 @@ This is here to make the tiles around the station mininuke change when it's arme /obj/item/disk/nuclear/Destroy(force=FALSE) // respawning is handled in /obj/Destroy() if(force) - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) . = ..() /obj/item/disk/nuclear/fake diff --git a/code/modules/antagonists/nukeop/equipment/pinpointer.dm b/code/modules/antagonists/nukeop/equipment/pinpointer.dm index b316e60c5e14..c1f9ffa37428 100644 --- a/code/modules/antagonists/nukeop/equipment/pinpointer.dm +++ b/code/modules/antagonists/nukeop/equipment/pinpointer.dm @@ -32,7 +32,7 @@ target = null switch(mode) if(TRACK_NUKE_DISK) - var/obj/item/disk/nuclear/N = locate() in GLOB.poi_list + var/obj/item/disk/nuclear/N = locate() in SSpoints_of_interest.other_points_of_interest target = N if(TRACK_MALF_AI) for(var/V in GLOB.ai_list) diff --git a/code/modules/antagonists/nukeop/nukeop.dm b/code/modules/antagonists/nukeop/nukeop.dm index 9f807d9521e7..f51c64142450 100644 --- a/code/modules/antagonists/nukeop/nukeop.dm +++ b/code/modules/antagonists/nukeop/nukeop.dm @@ -345,7 +345,7 @@ /datum/team/nuclear/antag_listing_entry() var/disk_report = "Nuclear Disk(s)
" disk_report += "
" - for(var/obj/item/disk/nuclear/N in GLOB.poi_list) + for(var/obj/item/disk/nuclear/N in SSpoints_of_interest.other_points_of_interest) disk_report += "
[N.name], " var/atom/disk_loc = N.loc while(!isturf(disk_loc)) diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index 42d7643fb926..5fc667c4db4a 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -195,10 +195,10 @@ /obj/machinery/capture_the_flag/Initialize() . = ..() - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) /obj/machinery/capture_the_flag/Destroy() - GLOB.poi_list.Remove(src) + SSpoints_of_interest.remove_point_of_interest(src) return ..() /obj/machinery/capture_the_flag/process() diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 0bf0b74c715a..26361b99cfc6 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -61,11 +61,11 @@ if(instant || (roundstart && (mapload || (SSticker && SSticker.current_state > GAME_STATE_SETTING_UP)))) INVOKE_ASYNC(src, PROC_REF(create)) else if(ghost_usable) - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) LAZYADD(GLOB.mob_spawners[name], src) /obj/effect/mob_spawn/Destroy() - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) var/list/spawners = GLOB.mob_spawners[name] LAZYREMOVE(spawners, src) if(!LAZYLEN(spawners)) diff --git a/code/modules/cargo/centcom_podlauncher.dm b/code/modules/cargo/centcom_podlauncher.dm index dfec659e1644..0b302925e10e 100644 --- a/code/modules/cargo/centcom_podlauncher.dm +++ b/code/modules/cargo/centcom_podlauncher.dm @@ -383,7 +383,7 @@ if (specificTarget) specificTarget = null return - var/list/mobs = getpois()//code stolen from observer.dm + var/list/mobs = SSpoints_of_interest.get_mob_pois() var/inputTarget = input("Select a mob! (Smiting does this automatically)", "Target", null, null) as null|anything in mobs if (isnull(inputTarget)) return diff --git a/code/modules/events/immovable_rod.dm b/code/modules/events/immovable_rod.dm index adde1124935f..4ba2d878ad46 100644 --- a/code/modules/events/immovable_rod.dm +++ b/code/modules/events/immovable_rod.dm @@ -62,7 +62,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 z_original = z destination = end special_target = aimed_at - GLOB.poi_list += src + SSpoints_of_interest.make_point_of_interest(src) var/special_target_valid = FALSE if(special_target) @@ -81,7 +81,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1 ghost.ManualFollow(src) /obj/effect/immovablerod/Destroy() - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) . = ..() /obj/effect/immovablerod/Moved() diff --git a/code/modules/events/wizard/greentext.dm b/code/modules/events/wizard/greentext.dm index 890bbc0f1f2b..8e4baab893fc 100644 --- a/code/modules/events/wizard/greentext.dm +++ b/code/modules/events/wizard/greentext.dm @@ -34,7 +34,7 @@ /obj/item/greentext/Initialize(mapload) . = ..() - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) roundend_callback = CALLBACK(src, PROC_REF(check_winner)) SSticker.OnRoundend(roundend_callback) @@ -83,7 +83,7 @@ if(!(resistance_flags & ON_FIRE) && !force) return QDEL_HINT_LETMELIVE - GLOB.poi_list.Remove(src) + SSpoints_of_interest.remove_point_of_interest(src) LAZYREMOVE(SSticker.round_end_events, roundend_callback) roundend_callback = null //This ought to free the callback datum, and prevent us from harddeling for(var/i in GLOB.player_list) diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 8fbf9c32a38e..2dbbd9d4b65b 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -35,6 +35,7 @@ . = ..() GLOB.new_player_list += src + SSpoints_of_interest.make_point_of_interest(src) /mob/dead/new_player/Destroy() GLOB.new_player_list -= src diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index c15c4a1af835..0fcfa5c13940 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -62,6 +62,9 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) var/datum/orbit_menu/orbit_menu var/datum/spawners_menu/spawners_menu + // The POI we're orbiting (orbit menu) + var/orbiting_ref + /mob/dead/observer/Initialize() set_invisibility(GLOB.observer_default_invisibility) @@ -142,6 +145,8 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) . = ..() + SSpoints_of_interest.make_point_of_interest(src) + grant_all_languages() show_data_huds() data_huds_on = 1 @@ -499,7 +504,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/list/dest = list() //List of possible destinations (mobs) var/target = null //Chosen target. - dest += getpois(mobs_only = TRUE) //Fill list, prompt user with list + dest += SSpoints_of_interest.get_mob_pois() target = input("Please, select a player!", "Jump to Mob", null, null) as null|anything in dest if (!target)//Make sure we actually have a target @@ -839,20 +844,24 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp /mob/dead/observer/reset_perspective(atom/A) if(client) if(ismob(client.eye) && (client.eye != src)) - var/mob/target = client.eye - observetarget = null - if(target.observers) - LAZYREMOVE(target.observers, src) + cleanup_observe() if(..()) if(hud_used) client.screen = list() hud_used.show_hud(hud_used.hud_version) +/mob/dead/observer/proc/cleanup_observe() + var/mob/target = client.eye + observetarget = null + client?.perspective = initial(client.perspective) + if(target.observers) + LAZYREMOVE(target.observers, src) + /mob/dead/observer/verb/observe() set name = "Observe" set category = "Ghost" - var/list/creatures = getpois() + var/list/creatures = SSpoints_of_interest.get_mob_pois() reset_perspective(null) diff --git a/code/modules/mob/dead/observer/orbit.dm b/code/modules/mob/dead/observer/orbit.dm index 86d54577538c..051faa5bedac 100644 --- a/code/modules/mob/dead/observer/orbit.dm +++ b/code/modules/mob/dead/observer/orbit.dm @@ -1,6 +1,9 @@ /datum/orbit_menu + ///mobs worth orbiting. Because spaghetti, all mobs have the point of interest, but only some are allowed to actually show up. + ///this obviously should be changed in the future, so we only add mobs as POI if they actually are interesting, and we don't use + ///a typecache. + var/static/list/mob_allowed_typecache var/mob/dead/observer/owner - var/auto_observe = FALSE /datum/orbit_menu/New(mob/dead/observer/new_owner) if(!istype(new_owner)) @@ -23,87 +26,243 @@ switch(action) if ("orbit") var/ref = params["ref"] - var/atom/movable/poi = (locate(ref) in GLOB.mob_list) || (locate(ref) in GLOB.poi_list) - if (poi == null) - . = TRUE - return + var/auto_observe = params["auto_observe"] + var/atom/movable/poi = SSpoints_of_interest.get_poi_atom_by_ref(ref) + + if((ismob(poi) && !SSpoints_of_interest.is_valid_poi(poi, CALLBACK(src, PROC_REF(validate_mob_poi)))) \ + || !SSpoints_of_interest.is_valid_poi(poi) + ) + to_chat(usr, span_notice("That point of interest is no longer valid.")) + return TRUE + + var/mob/dead/observer/user = usr owner.ManualFollow(poi) owner.reset_perspective(null) + user.orbiting_ref = ref if (auto_observe) owner.do_observe(poi) . = TRUE if ("refresh") update_static_data(owner, ui) . = TRUE - if ("toggle_observe") - auto_observe = !auto_observe - if (auto_observe && owner.orbit_target) - owner.do_observe(owner.orbit_target) - else - owner.reset_perspective(null) + /datum/orbit_menu/ui_data(mob/user) var/list/data = list() - data["auto_observe"] = auto_observe + + if(isobserver(user)) + data["orbiting"] = get_currently_orbiting(user) + return data /datum/orbit_menu/ui_static_data(mob/user) - var/list/data = list() + var/list/new_mob_pois = SSpoints_of_interest.get_mob_pois(CALLBACK(src, PROC_REF(validate_mob_poi)), append_dead_role = FALSE) + var/list/new_other_pois = SSpoints_of_interest.get_other_pois() var/list/alive = list() var/list/antagonists = list() + var/list/critical = list() var/list/dead = list() var/list/ghosts = list() var/list/misc = list() var/list/npcs = list() + var/list/ships = list() - var/list/pois = getpois(skip_mindless = TRUE, specify_dead_role = FALSE) - for (var/name in pois) + for(var/name in new_mob_pois) var/list/serialized = list() - serialized["name"] = name - - var/poi = pois[name] - - serialized["ref"] = REF(poi) - - var/mob/M = poi - if (istype(M)) - if (isobserver(M)) - ghosts += list(serialized) - else if (M.stat == DEAD) - dead += list(serialized) - else if (M.mind == null) - npcs += list(serialized) - else - var/number_of_orbiters = M.orbiters?.orbiters?.len - if (number_of_orbiters) - serialized["orbiters"] = number_of_orbiters - - var/datum/mind/mind = M.mind - var/was_antagonist = FALSE - - for (var/_A in mind.antag_datums) - var/datum/antagonist/A = _A - if (A.show_to_ghosts) - was_antagonist = TRUE - serialized["antag"] = A.name - antagonists += list(serialized) - break - - if (!was_antagonist) - alive += list(serialized) + var/mob/mob_poi = new_mob_pois[name] + var/number_of_orbiters = length(mob_poi.get_all_orbiters()) + + if(isnewplayer(mob_poi)) + continue + + serialized["ref"] = REF(mob_poi) + serialized["full_name"] = mob_poi.name + serialized["job"] = mob_poi.job + if(number_of_orbiters) + serialized["orbiters"] = number_of_orbiters + + if(isobserver(mob_poi)) + ghosts += list(serialized) + continue + + if(mob_poi.stat == DEAD) + dead += list(serialized) + continue + + if(isnull(mob_poi.mind)) + if(isliving(mob_poi)) + var/mob/living/npc = mob_poi + serialized["health"] = FLOOR((npc.health / npc.maxHealth * 100), 1) + + npcs += list(serialized) + continue + + serialized["client"] = !!mob_poi.client + serialized["name"] = mob_poi.real_name + + if(isliving(mob_poi)) + serialized += get_living_data(mob_poi) + + var/list/antag_data = get_antag_data(mob_poi.mind) + if(length(antag_data)) + serialized += antag_data + antagonists += list(serialized) + continue + + alive += list(serialized) + + for(var/name in new_other_pois) + var/atom/atom_poi = new_other_pois[name] + + var/list/other_data = get_misc_data(atom_poi) + var/misc_data = list(other_data[1]) + + if(istype(atom_poi, /obj/machinery/computer/helm)) + ships += misc_data else - misc += list(serialized) - - data["alive"] = alive - data["antagonists"] = antagonists - data["dead"] = dead - data["ghosts"] = ghosts - data["misc"] = misc - data["npcs"] = npcs - return data + misc += misc_data + + if(other_data[2]) // Critical = TRUE + critical += misc_data + + return list( + "alive" = alive, + "antagonists" = antagonists, + "critical" = critical, + "dead" = dead, + "ghosts" = ghosts, + "misc" = misc, + "npcs" = npcs, + "ships" = ships, + ) /datum/orbit_menu/ui_assets() . = ..() || list() . += get_asset_datum(/datum/asset/simple/orbit) +/// Helper function to get threat type, group, overrides for job and icon +/datum/orbit_menu/proc/get_antag_data(datum/mind/poi_mind) as /list + var/list/serialized = list() + + for(var/datum/antagonist/antag as anything in poi_mind.antag_datums) + if(!antag.show_to_ghosts) + continue + + serialized["antag"] = antag.name + serialized["antag_group"] = antag.antagpanel_category + serialized["job"] = antag.name + serialized["icon"] = antag.antag_hud_name + + return serialized + +/// Helper to get the current thing we're orbiting (if any) +/datum/orbit_menu/proc/get_currently_orbiting(mob/dead/observer/user) + if(isnull(user.orbiting_ref)) + return + + var/atom/poi = SSpoints_of_interest.get_poi_atom_by_ref(user.orbiting_ref) + if(isnull(poi)) + user.orbiting_ref = null + return + + if((ismob(poi) && !SSpoints_of_interest.is_valid_poi(poi, CALLBACK(src, PROC_REF(validate_mob_poi)))) \ + || !SSpoints_of_interest.is_valid_poi(poi) + ) + user.orbiting_ref = null + return + + var/list/serialized = list() + + if(!ismob(poi)) + var/list/misc_info = get_misc_data(poi) + serialized += misc_info[1] + return serialized + + var/mob/mob_poi = poi + serialized["full_name"] = mob_poi.name + serialized["ref"] = REF(poi) + + if(mob_poi.mind) + serialized["client"] = !!mob_poi.client + serialized["name"] = mob_poi.real_name + + if(isliving(mob_poi)) + serialized += get_living_data(mob_poi) + + return serialized + +/// Helper function to get job / icon / health data for a living mob +/datum/orbit_menu/proc/get_living_data(mob/living/player) as /list + var/list/serialized = list() + + serialized["health"] = FLOOR((player.health / player.maxHealth * 100), 1) + + return serialized + + +/// Gets a list: Misc data and whether it's critical. Handles all snowflakey type cases +/datum/orbit_menu/proc/get_misc_data(atom/movable/atom_poi) as /list + var/list/misc = list() + var/critical = FALSE + + misc["ref"] = REF(atom_poi) + misc["full_name"] = atom_poi.name + + // Display the nuke timer + if(istype(atom_poi, /obj/machinery/nuclearbomb)) + var/obj/machinery/nuclearbomb/bomb = atom_poi + + if(bomb.timing) + misc["extra"] = "Timer: [bomb.countdown?.displayed_text]s" + critical = TRUE + + return list(misc, critical) + + // Display the holder if its a nuke disk + if(istype(atom_poi, /obj/item/disk/nuclear)) + var/obj/item/disk/nuclear/disk = atom_poi + var/mob/holder = disk.pulledby || get(disk, /mob) + misc["extra"] = "Location: [holder?.real_name || "Unsecured"]" + + return list(misc, critical) + + // Display singuloths if they exist + if(istype(atom_poi, /obj/singularity)) + var/obj/singularity/singulo = atom_poi + misc["extra"] = "Energy: [round(singulo.energy)]" + + if(singulo.current_size > 2) + critical = TRUE + + return list(misc, critical) + + if(istype(atom_poi, /obj/machinery/computer/helm)) + var/obj/machinery/computer/helm/helm_poi = atom_poi + if(helm_poi.current_ship) + misc["extra"] = "Ship: [helm_poi.current_ship.name]" + + return list(misc, critical) + + return list(misc, critical) + +/** + * Helper POI validation function passed as a callback to various SSpoints_of_interest procs. + * + * Provides extended validation above and beyond standard, limiting mob POIs without minds or ckeys + * unless they're mobs, camera mobs or megafauna. Also allows exceptions for mobs that are deadchat controlled. + * + * If they satisfy that requirement, falls back to default validation for the POI. + */ +/datum/orbit_menu/proc/validate_mob_poi(datum/point_of_interest/mob_poi/potential_poi) + var/mob/potential_mob_poi = potential_poi.target + if(!potential_mob_poi.mind && !potential_mob_poi.ckey) + if(!mob_allowed_typecache) + mob_allowed_typecache = typecacheof(list( + /mob/living/simple_animal/hostile/megafauna, + /mob/living/simple_animal/hostile/boss + )) + if(!is_type_in_typecache(potential_mob_poi, mob_allowed_typecache) && !potential_mob_poi.GetComponent(/datum/component/deadchat_control)) + return FALSE + + return potential_poi.validate() diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 1258df8b84c5..6046cfe82b63 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -9,6 +9,7 @@ diag_hud.add_to_hud(src) faction += "[REF(src)]" GLOB.mob_living_list += src + SSpoints_of_interest.make_point_of_interest(src) if(speed) update_living_varspeed() diff --git a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm index e0537594c8ff..76dc1f095009 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm @@ -30,11 +30,6 @@ var/area/A = get_area(src) if(A) notify_ghosts("A drone shell has been created in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE, ignore_key = POLL_IGNORE_DRONE) - GLOB.poi_list |= src - -/obj/effect/mob_spawn/drone/Destroy() - GLOB.poi_list -= src - . = ..() //ATTACK GHOST IGNORING PARENT RETURN VALUE /obj/effect/mob_spawn/drone/attack_ghost(mob/user) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 863abf56dad1..ff06df9c6113 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -607,12 +607,12 @@ GLOBAL_DATUM(blackbox, /obj/machinery/smartfridge/black_box) var/ready_to_deploy = FALSE /obj/machinery/anomalous_crystal/helpers/Destroy() - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) . = ..() /obj/machinery/anomalous_crystal/helpers/ActivationReaction(mob/user, method) if(..() && !ready_to_deploy) - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) ready_to_deploy = TRUE notify_ghosts("An anomalous crystal has been activated in [get_area(src)]! This crystal can always be used by ghosts hereafter.", enter_link = "(Click to enter)", ghost_sound = 'sound/effects/ghost2.ogg', source = src, action = NOTIFY_ATTACK, header = "Anomalous crystal activated") diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index b1788a7aa50d..a05c2e65688e 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -462,7 +462,7 @@ else client.perspective = EYE_PERSPECTIVE client.eye = loc - return 1 + return TRUE /// Show the mob's inventory to another mob /mob/proc/show_inv(mob/user) diff --git a/code/modules/modular_computers/file_system/programs/radar.dm b/code/modules/modular_computers/file_system/programs/radar.dm index d082503a012d..06324b8f8b78 100644 --- a/code/modules/modular_computers/file_system/programs/radar.dm +++ b/code/modules/modular_computers/file_system/programs/radar.dm @@ -156,7 +156,7 @@ *something like "mob_209". In order to find the actual atom, we need *to search the appropriate list for the REF string. This is dependant *on the program (Lifeline uses GLOB.human_list, while Fission360 uses - *GLOB.poi_list), but the result will be the same; evaluate the string and + *SSpoints_of_interest.other_points_of_interest), but the result will be the same; evaluate the string and *return an atom reference. */ /datum/computer_file/program/radar/proc/find_atom() @@ -269,7 +269,7 @@ pointercolor = "red" /datum/computer_file/program/radar/fission360/find_atom() - return locate(selected) in GLOB.poi_list + return locate(selected) in SSpoints_of_interest.other_points_of_interest /datum/computer_file/program/radar/fission360/scan() if(world.time < next_scan) @@ -286,7 +286,7 @@ name = nuke.name, ) objects += list(nukeinfo) - var/obj/item/disk/nuclear/disk = locate() in GLOB.poi_list + var/obj/item/disk/nuclear/disk = locate() in SSpoints_of_interest.other_points_of_interest if(trackable(disk)) var/list/nukeinfo = list( ref = REF(disk), diff --git a/code/modules/overmap/helm.dm b/code/modules/overmap/helm.dm index 5b1f27fa2cb9..3b825ce39524 100644 --- a/code/modules/overmap/helm.dm +++ b/code/modules/overmap/helm.dm @@ -49,6 +49,8 @@ /obj/machinery/computer/helm/Initialize(mapload, obj/item/circuitboard/C) . = ..() + if(!viewer) + SSpoints_of_interest.make_point_of_interest(src) jump_allowed = world.time + CONFIG_GET(number/bluespace_jump_wait) ntnet_relay = new(src) @@ -76,6 +78,7 @@ SStgui.close_uis(src) ASSERT(length(concurrent_users) == 0) QDEL_NULL(ntnet_relay) + SSpoints_of_interest.remove_point_of_interest(src) if(current_ship) current_ship.helms -= src current_ship = null diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 9218b829e940..499a88b161f1 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -38,7 +38,7 @@ src.energy = starting_energy . = ..() START_PROCESSING(SSobj, src) - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) GLOB.singularities |= src for(var/obj/machinery/power/singularity_beacon/singubeacon in GLOB.machines) if(singubeacon.active) @@ -53,7 +53,7 @@ /obj/singularity/Destroy() STOP_PROCESSING(SSobj, src) - GLOB.poi_list.Remove(src) + SSpoints_of_interest.remove_point_of_interest(src) GLOB.singularities.Remove(src) return ..() diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 6ed294fa8936..400366415d9a 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -275,7 +275,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) SSair.start_processing_machine(src, mapload) countdown = new(src) countdown.start() - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) radio = new(src) radio.keyslot = new radio_key radio.listening = 0 @@ -293,7 +293,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) investigate_log("has been destroyed.", INVESTIGATE_SUPERMATTER) SSair.stop_processing_machine(src) QDEL_NULL(radio) - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) QDEL_NULL(countdown) if(is_main_engine && GLOB.main_supermatter_engine == src) GLOB.main_supermatter_engine = null diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm index 7d58610fc7f7..d4a6f71cca4d 100644 --- a/code/modules/power/tesla/energy_ball.dm +++ b/code/modules/power/tesla/energy_ball.dm @@ -151,7 +151,7 @@ /obj/singularity/energy_ball/orbit(obj/singularity/energy_ball/target) if (istype(target)) target.orbiting_balls += src - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) target.dissipate_strength = target.orbiting_balls.len . = ..() diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index c2e5b4cb2933..40fd10e94785 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -46,7 +46,7 @@ /obj/item/gun/energy/pulse/prize/Initialize() . = ..() - GLOB.poi_list += src + SSpoints_of_interest.make_point_of_interest(src) var/turf/T = get_turf(src) message_admins("A pulse rifle prize has been created at [ADMIN_VERBOSEJMP(T)]") @@ -55,7 +55,7 @@ notify_ghosts("Someone won a pulse rifle as a prize!", source = src, action = NOTIFY_ORBIT, header = "Pulse rifle prize") /obj/item/gun/energy/pulse/prize/Destroy() - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) . = ..() /obj/item/gun/energy/pulse/pistol diff --git a/code/modules/spells/spell_types/lichdom.dm b/code/modules/spells/spell_types/lichdom.dm index 720670e3fc21..38e2f0df145e 100644 --- a/code/modules/spells/spell_types/lichdom.dm +++ b/code/modules/spells/spell_types/lichdom.dm @@ -99,7 +99,7 @@ name = "phylactery of [mind.name]" active_phylacteries++ - GLOB.poi_list |= src + SSpoints_of_interest.make_point_of_interest(src) START_PROCESSING(SSobj, src) if(initial(SSticker.mode.round_ends_with_antag_death)) SSticker.mode.round_ends_with_antag_death = FALSE @@ -107,7 +107,7 @@ /obj/item/phylactery/Destroy(force=FALSE) STOP_PROCESSING(SSobj, src) active_phylacteries-- - GLOB.poi_list -= src + SSpoints_of_interest.remove_point_of_interest(src) if(!active_phylacteries) SSticker.mode.round_ends_with_antag_death = initial(SSticker.mode.round_ends_with_antag_death) . = ..() diff --git a/shiptest.dme b/shiptest.dme index 88900c60e222..e460d129f655 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -370,6 +370,7 @@ #include "code\controllers\subsystem\persistence.dm" #include "code\controllers\subsystem\physics.dm" #include "code\controllers\subsystem\ping.dm" +#include "code\controllers\subsystem\points_of_interest.dm" #include "code\controllers\subsystem\profiler.dm" #include "code\controllers\subsystem\radiation.dm" #include "code\controllers\subsystem\radio.dm" @@ -672,6 +673,7 @@ #include "code\datums\elements\lazy_fishing_spot.dm" #include "code\datums\elements\light_blocking.dm" #include "code\datums\elements\mobappearance.dm" +#include "code\datums\elements\point_of_interest.dm" #include "code\datums\elements\plant_backfire.dm" #include "code\datums\elements\renamemob.dm" #include "code\datums\elements\selfknockback.dm" @@ -857,6 +859,7 @@ #include "code\game\area\areas\ruins\space.dm" #include "code\game\area\areas\ruins\templates.dm" #include "code\game\area\areas\ruins\wasteplanet.dm" +#include "code\game\atom\atom_orbit.dm" #include "code\game\gamemodes\events.dm" #include "code\game\gamemodes\game_mode.dm" #include "code\game\gamemodes\objective.dm" diff --git a/tgui/packages/tgui/interfaces/Orbit.js b/tgui/packages/tgui/interfaces/Orbit.js deleted file mode 100644 index 91bf9d1f7929..000000000000 --- a/tgui/packages/tgui/interfaces/Orbit.js +++ /dev/null @@ -1,218 +0,0 @@ -import { createSearch } from 'common/string'; -import { multiline } from 'common/string'; -import { resolveAsset } from '../assets'; -import { useBackend, useLocalState } from '../backend'; -import { - Box, - Button, - Divider, - Flex, - Icon, - Input, - Section, -} from '../components'; -import { Window } from '../layouts'; - -const PATTERN_NUMBER = / \(([0-9]+)\)$/; - -const searchFor = (searchText) => - createSearch(searchText, (thing) => thing.name); - -const compareString = (a, b) => (a < b ? -1 : a > b); - -const compareNumberedText = (a, b) => { - const aName = a.name; - const bName = b.name; - - // Check if aName and bName are the same except for a number at the end - // e.g. Medibot (2) and Medibot (3) - const aNumberMatch = aName.match(PATTERN_NUMBER); - const bNumberMatch = bName.match(PATTERN_NUMBER); - - if ( - aNumberMatch && - bNumberMatch && - aName.replace(PATTERN_NUMBER, '') === bName.replace(PATTERN_NUMBER, '') - ) { - const aNumber = parseInt(aNumberMatch[1], 10); - const bNumber = parseInt(bNumberMatch[1], 10); - - return aNumber - bNumber; - } - - return compareString(aName, bName); -}; - -const BasicSection = (props, context) => { - const { act } = useBackend(context); - const { searchText, source, title } = props; - const things = source.filter(searchFor(searchText)); - things.sort(compareNumberedText); - return ( - source.length > 0 && ( -
- {things.map((thing) => ( -
- ) - ); -}; - -const OrbitedButton = (props, context) => { - const { act } = useBackend(context); - const { color, thing } = props; - - return ( - - ); -}; - -export const Orbit = (props, context) => { - const { act, data } = useBackend(context); - const { alive, antagonists, auto_observe, dead, ghosts, misc, npcs } = data; - - const [searchText, setSearchText] = useLocalState(context, 'searchText', ''); - - const collatedAntagonists = {}; - for (const antagonist of antagonists) { - if (collatedAntagonists[antagonist.antag] === undefined) { - collatedAntagonists[antagonist.antag] = []; - } - collatedAntagonists[antagonist.antag].push(antagonist); - } - - const sortedAntagonists = Object.entries(collatedAntagonists); - sortedAntagonists.sort((a, b) => { - return compareString(a[0], b[0]); - }); - - const orbitMostRelevant = (searchText) => { - for (const source of [ - sortedAntagonists.map(([_, antags]) => antags), - alive, - ghosts, - dead, - npcs, - misc, - ]) { - const member = source - .filter(searchFor(searchText)) - .sort(compareNumberedText)[0]; - if (member !== undefined) { - act('orbit', { ref: member.ref }); - break; - } - } - }; - - return ( - - -
- - - - - - setSearchText(value)} - onEnter={(_, value) => orbitMostRelevant(value)} - /> - - - - - -
- {antagonists.length > 0 && ( -
- {sortedAntagonists.map(([name, antags]) => ( -
- {antags - .filter(searchFor(searchText)) - .sort(compareNumberedText) - .map((antag) => ( - - ))} -
- ))} -
- )} - -
- {alive - .filter(searchFor(searchText)) - .sort(compareNumberedText) - .map((thing) => ( - - ))} -
- -
- {ghosts - .filter(searchFor(searchText)) - .sort(compareNumberedText) - .map((thing) => ( - - ))} -
- - - - - - -
-
- ); -}; diff --git a/tgui/packages/tgui/interfaces/Orbit/OrbitContent.tsx b/tgui/packages/tgui/interfaces/Orbit/OrbitContent.tsx new file mode 100644 index 000000000000..f3c59a75e189 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Orbit/OrbitContent.tsx @@ -0,0 +1,98 @@ +import { toTitleCase } from 'common/string'; + +import { useBackend } from '../../backend'; +import { NoticeBox, Section, Stack, Table, Tooltip } from '../../components'; + +import { getAntagCategories } from './helpers'; +import { AntagGroup, Observable, OrbitData } from './types'; +import { OrbitSection } from './OrbitSection'; + +type ContentSection = { + content: Observable[]; + title: string; + color?: string; +}; + +export const OrbitContent = (props, context) => { + const { act, data } = useBackend(context); + const { antagonists = [], critical = [] } = data; + const { searchText, autoObserve } = props; + + let antagGroups: AntagGroup[] = []; + if (antagonists.length) { + antagGroups = getAntagCategories(antagonists); + } + + const sections: readonly ContentSection[] = [ + { + content: data.alive, + title: 'Alive', + color: 'good', + }, + { + content: data.dead, + title: 'Dead', + }, + { + content: data.ghosts, + title: 'Ghosts', + }, + { + content: data.misc, + title: 'Misc', + }, + { + content: data.npcs, + title: 'NPCs', + }, + { + content: data.ships, + title: 'Ships', + }, + ]; + + return ( +
+ + {critical.map((crit) => ( + + act('orbit', { ref: crit.ref })} + > + + + {toTitleCase(crit.full_name)} + {crit.extra} + +
+
+
+ ))} + + {antagGroups.map(([title, members]) => ( + + ))} + + {sections.map((section) => ( + + ))} +
+
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/Orbit/OrbitItem.tsx b/tgui/packages/tgui/interfaces/Orbit/OrbitItem.tsx new file mode 100644 index 000000000000..957104afa8b9 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Orbit/OrbitItem.tsx @@ -0,0 +1,50 @@ +import { useBackend } from '../../backend'; +import { Stack, Button, Flex, Icon } from '../../components'; + +import { capitalizeFirst } from 'common/string'; + +import { getDisplayColor, getDisplayName } from './helpers'; +import { Antagonist, Observable, OrbitData } from './types'; + +type Props = { + item: Observable | Antagonist; + autoObserve: boolean; + color: string | undefined; +}; + +export const OrbitItem = (props: Props, context) => { + const { item, autoObserve, color } = props; + const { full_name, icon, job, name, orbiters, ref } = item; + + const { act, data } = useBackend(context); + const { orbiting } = data; + + const selected = ref === orbiting?.ref; + const validIcon = !!job && !!icon && icon !== 'hudunknown'; + + return ( + act('orbit', { auto_observe: autoObserve, ref })} + style={{ + display: 'flex', + }} + > + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/Orbit/OrbitSection.tsx b/tgui/packages/tgui/interfaces/Orbit/OrbitSection.tsx new file mode 100644 index 000000000000..d27d9080e08d --- /dev/null +++ b/tgui/packages/tgui/interfaces/Orbit/OrbitSection.tsx @@ -0,0 +1,65 @@ +import { Collapsible, Flex, Tooltip } from '../../components'; +import { isJobOrNameMatch } from './helpers'; +import { OrbitItem } from './OrbitItem'; +import { OrbitTooltip } from './OrbitTooltip'; +import { Observable } from './types'; + +type Props = { + color?: string; + section: Observable[]; + title: string; + searchQuery: string; + autoObserve: boolean; +}; + +/** + * Displays a collapsible with a map of observable items. + * Filters the results if there is a provided search query. + */ +export const OrbitSection = (props: Props) => { + const { color, section = [], title, searchQuery, autoObserve } = props; + + const filteredSection = section.filter((observable) => + isJobOrNameMatch(observable, searchQuery) + ); + + if (!filteredSection.length) { + return null; + } + + return ( + + + {filteredSection.map((item) => { + const content = ( + + ); + + if (!item.health && !item.extra) { + return content; + } + + return ( + } + key={item.ref} + position="bottom-start" + > + {content} + + ); + })} + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/Orbit/OrbitTooltip.tsx b/tgui/packages/tgui/interfaces/Orbit/OrbitTooltip.tsx new file mode 100644 index 000000000000..0a941dcb0fb5 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Orbit/OrbitTooltip.tsx @@ -0,0 +1,57 @@ +import { LabeledList, NoticeBox } from '../../components'; +import { Antagonist, Observable } from './types'; + +type Props = { + item: Observable | Antagonist; +}; + +/** Displays some info on the mob as a tooltip. */ +export const OrbitTooltip = (props: Props) => { + const { item } = props; + const { extra, name, full_name, health, job } = item; + + let antag; + if ('antag' in item) { + antag = item.antag; + } + + const extraInfo = extra?.split(':'); + const displayHealth = !!health && health >= 0 ? `${health}%` : 'Critical'; + const showAFK = 'client' in item && !item.client; + + return ( + <> + + Last Known Data + + + {extraInfo ? ( + + {extraInfo[1]} + + ) : ( + <> + {!!name && ( + {name} + )} + {!!full_name && ( + + {full_name} + + )} + {!!job && {job}} + {!!antag && ( + {antag} + )} + {!!health && ( + + {displayHealth} + + )} + + )} + {showAFK && Away} + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/Orbit/constants.ts b/tgui/packages/tgui/interfaces/Orbit/constants.ts new file mode 100644 index 000000000000..1edadc9bfe45 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Orbit/constants.ts @@ -0,0 +1,8 @@ +export const HEALTH = { + Good: 69, // nice + Average: 19, + Bad: 0, + Crit: -30, + Dead: -100, + Ruined: -200, +} as const; diff --git a/tgui/packages/tgui/interfaces/Orbit/helpers.ts b/tgui/packages/tgui/interfaces/Orbit/helpers.ts new file mode 100644 index 000000000000..7046f784cd6c --- /dev/null +++ b/tgui/packages/tgui/interfaces/Orbit/helpers.ts @@ -0,0 +1,119 @@ +import { createSearch } from '../../../common/string'; + +import { HEALTH } from './constants'; +import { AntagGroup, Antagonist, Observable } from './types'; + +const PATTERN_NUMBER = / \(([0-9]+)\)$/; + +/** Return a map of strings with each antag in its antag_category */ +export const getAntagCategories = (antagonists: Antagonist[]): AntagGroup[] => { + const categories = new Map(); + + for (const player of antagonists) { + const { antag_group } = player; + + if (!categories.has(antag_group)) { + categories.set(antag_group, []); + } + categories.get(antag_group)!.push(player); + } + + const sorted = Array.from(categories.entries()).sort((a, b) => { + const lowerA = a[0].toLowerCase(); + const lowerB = b[0].toLowerCase(); + + if (lowerA < lowerB) return -1; + if (lowerA > lowerB) return 1; + return 0; + }); + + return sorted; +}; + +/** Returns a disguised name in case the person is wearing someone else's ID */ +export const getDisplayName = ( + full_name: string, + nickname?: string +): string => { + if (!nickname) { + return full_name; + } + + return nickname; +}; + +/** Displays color for buttons based on the health or orbiter count. */ +export const getDisplayColor = ( + item: Observable, + override?: string +): string => { + const { job, health, orbiters } = item; + + // Things like blob camera, etc + if (typeof health !== 'number') { + return override ? 'good' : 'grey'; + } + + // Players that are AFK + if ('client' in item && !item.client) { + return 'grey'; + } + + return getHealthColor(health); +}; + +/** Returns the display color for certain health percentages */ +const getHealthColor = (health: number): string => { + switch (true) { + case health > HEALTH.Good: + return 'good'; + case health > HEALTH.Average: + return 'average'; + default: + return 'bad'; + } +}; + +/** Checks if a full name or job title matches the search. */ +export const isJobOrNameMatch = ( + observable: Observable, + searchQuery: string +): boolean => { + if (!searchQuery) return true; + + const { full_name, job } = observable; + + return ( + full_name?.toLowerCase().includes(searchQuery?.toLowerCase()) || + job?.toLowerCase().includes(searchQuery?.toLowerCase()) || + false + ); +}; + +export const searchFor = (searchText) => + createSearch(searchText, (thing: Observable) => thing.full_name); + +export const compareString = (a, b) => (a < b ? -1 : a > b); + +export const compareNumberedText = (a, b) => { + const aName = a.name; + const bName = b.name; + + // Check if aName and bName are the same except for a number at the end + // e.g. Medibot (2) and Medibot (3) + const aNumberMatch = aName.match(PATTERN_NUMBER); + const bNumberMatch = bName.match(PATTERN_NUMBER); + + if ( + aNumberMatch && + bNumberMatch && + aName.replace(PATTERN_NUMBER, '') === bName.replace(PATTERN_NUMBER, '') + ) { + const aNumber = parseInt(aNumberMatch[1], 10); + const bNumber = parseInt(bNumberMatch[1], 10); + + return aNumber - bNumber; + } + + return compareString(aName, bName); +}; diff --git a/tgui/packages/tgui/interfaces/Orbit/index.tsx b/tgui/packages/tgui/interfaces/Orbit/index.tsx new file mode 100644 index 000000000000..f0854f7bfa69 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Orbit/index.tsx @@ -0,0 +1,86 @@ +import { multiline } from '../../../common/string'; +import { useBackend, useLocalState } from '../../backend'; +import { Button, Divider, Flex, Icon, Input, Section } from '../../components'; +import { Window } from '../../layouts'; + +import { searchFor } from './helpers'; +import { OrbitData } from './types'; +import { OrbitContent } from './OrbitContent'; + +export const Orbit = (props, context) => { + const { act, data } = useBackend(context); + + const [searchText, setSearchText] = useLocalState(context, 'searchText', ''); + const [autoObserve, setAutoObserve] = useLocalState( + context, + 'autoObserve', + false + ); + + const orbitMostRelevant = () => { + const mostRelevant = [ + data.antagonists, + data.alive, + data.ghosts, + data.dead, + data.npcs, + data.misc, + data.ships, + ] + .flat() + .filter(searchFor(searchText)) + .sort()[0]; + + if (mostRelevant !== undefined) { + act('orbit', { ref: mostRelevant.ref }); + } + }; + + return ( + + +
+ + + + + + setSearchText(value)} + onEnter={(_, value) => orbitMostRelevant()} + /> + + + + + +
+ +
+
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/Orbit/types.ts b/tgui/packages/tgui/interfaces/Orbit/types.ts new file mode 100644 index 000000000000..4912ae10db4c --- /dev/null +++ b/tgui/packages/tgui/interfaces/Orbit/types.ts @@ -0,0 +1,38 @@ +import { BooleanLike } from '../../../common/react'; + +export type Antagonist = Observable & { antag: string; antag_group: string }; + +export type AntagGroup = [string, Antagonist[]]; + +export type OrbitData = { + alive: Observable[]; + antagonists: Antagonist[]; + critical: Critical[]; + dead: Observable[]; + ghosts: Observable[]; + misc: Observable[]; + npcs: Observable[]; + ships: Observable[]; + orbiting: Observable | null; + autoObserve: boolean; +}; + +export type Observable = { + full_name: string; + ref: string; + // Optionals +} & Partial<{ + client: BooleanLike; + extra: string; + health: number; + icon: string; + job: string; + name: string; + orbiters: number; +}>; + +type Critical = { + extra: string; + full_name: string; + ref: string; +}; From ce35cdda0b8c684a4d4c121871732dd51dec54fd Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 25 Sep 2024 10:57:35 -0500 Subject: [PATCH 024/167] Automatic changelog generation for PR #3320 [ci skip] --- html/changelogs/AutoChangeLog-pr-3320.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3320.yml diff --git a/html/changelogs/AutoChangeLog-pr-3320.yml b/html/changelogs/AutoChangeLog-pr-3320.yml new file mode 100644 index 000000000000..4832c9776c22 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3320.yml @@ -0,0 +1,5 @@ +author: FalloutFalcon +changes: + - {rscadd: You can now see ships in the orbit menu and its alot prettier!} + - {code_imp: ported tg points of interest and a much improved orbit menu} +delete-after: true From ddbcb281c1ed2e83fc0b06bddecfb9a386455782 Mon Sep 17 00:00:00 2001 From: Jedi-Toothpaste <53096233+Jedi-Toothpaste@users.noreply.github.com> Date: Wed, 25 Sep 2024 21:32:46 +0100 Subject: [PATCH 025/167] kilo remap fixes (#3424) ## About The Pull Request Kilo remap was good, asides the fact there was not a reinforced window on the thrusters to stop it being spaced if you open the blast doors. However, this problem was self-solving as the blast doors were not connected to the new button. This fixes both issues by adding windows to the thrusters, and linking the button correctly. ![image](https://github.com/user-attachments/assets/852855b1-98a7-4850-bf05-f327c809913e) ![image](https://github.com/user-attachments/assets/1066b7e4-5bb2-41dd-be5f-aa1101df9a00) ## Changelog :cl: fix: Fixed the lack of windows for the Kilo's Thrusters, and fixed the broken link for the new blast doors. /:cl: --- _maps/shuttles/independent/independent_kilo.dmm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/_maps/shuttles/independent/independent_kilo.dmm b/_maps/shuttles/independent/independent_kilo.dmm index 0dad29cb9f9b..35f955ff0b3d 100644 --- a/_maps/shuttles/independent/independent_kilo.dmm +++ b/_maps/shuttles/independent/independent_kilo.dmm @@ -22,6 +22,9 @@ dir = 4; id = "kilothrusters" }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating/airless, /area/ship/engineering) "av" = ( @@ -1581,6 +1584,9 @@ dir = 4; id = "kilothrusters" }, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/engineering) "MY" = ( @@ -1890,7 +1896,7 @@ /obj/effect/decal/cleanable/oil, /obj/machinery/button/door{ dir = 8; - id = "amogusthrusters"; + id = "kilothrusters"; name = "Thruster Lockdown"; pixel_x = 21 }, From 3f869318da50bb04241f389350db3f0ad60af111 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 25 Sep 2024 15:43:55 -0500 Subject: [PATCH 026/167] Automatic changelog generation for PR #3424 [ci skip] --- html/changelogs/AutoChangeLog-pr-3424.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3424.yml diff --git a/html/changelogs/AutoChangeLog-pr-3424.yml b/html/changelogs/AutoChangeLog-pr-3424.yml new file mode 100644 index 000000000000..8258d255a6c2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3424.yml @@ -0,0 +1,5 @@ +author: Jedi-Toothpaste +changes: + - {bugfix: "Fixed the lack of windows for the Kilo's Thrusters, and fixed the broken + link for the new blast doors."} +delete-after: true From 3d061395b682198f7b68a2c75b29e2f204709a3f Mon Sep 17 00:00:00 2001 From: Changelogs Date: Thu, 26 Sep 2024 01:01:48 +0000 Subject: [PATCH 027/167] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3320.yml | 5 ----- html/changelogs/AutoChangeLog-pr-3330.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3346.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3352.yml | 5 ----- html/changelogs/AutoChangeLog-pr-3398.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3408.yml | 5 ----- html/changelogs/AutoChangeLog-pr-3418.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3420.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3423.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3424.yml | 5 ----- html/changelogs/archive/2024-09.yml | 20 ++++++++++++++++++++ 11 files changed, 20 insertions(+), 44 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3320.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3330.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3346.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3352.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3398.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3408.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3418.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3420.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3423.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3424.yml diff --git a/html/changelogs/AutoChangeLog-pr-3320.yml b/html/changelogs/AutoChangeLog-pr-3320.yml deleted file mode 100644 index 4832c9776c22..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3320.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: FalloutFalcon -changes: - - {rscadd: You can now see ships in the orbit menu and its alot prettier!} - - {code_imp: ported tg points of interest and a much improved orbit menu} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3330.yml b/html/changelogs/AutoChangeLog-pr-3330.yml deleted file mode 100644 index 46e461f2f53f..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3330.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: FalloutFalcon -changes: - - {rscadd: 'Ballistics now have a minimum recoil, not enough to mess up your shot!'} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3346.yml b/html/changelogs/AutoChangeLog-pr-3346.yml deleted file mode 100644 index 46be6f8474b6..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3346.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: FalloutFalcon -changes: - - {bugfix: ships now start closed. shiptesters be writing there memos and ship names.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3352.yml b/html/changelogs/AutoChangeLog-pr-3352.yml deleted file mode 100644 index 266106d74f64..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3352.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: FalloutFalcon -changes: - - {rscadd: Added new blank shells for training drills!} - - {refactor: Minor refactor of design disks to reduce repeated code} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3398.yml b/html/changelogs/AutoChangeLog-pr-3398.yml deleted file mode 100644 index 65eb77137267..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3398.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Gristlebee -changes: - - {bugfix: fixes wall deconstruction causing runtimes} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3408.yml b/html/changelogs/AutoChangeLog-pr-3408.yml deleted file mode 100644 index f85514c5004c..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3408.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: zimon9 -changes: - - {rscadd: Added fruit puree to vegan rations} - - {rscdel: Removed pizza crackers from vegan rations} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3418.yml b/html/changelogs/AutoChangeLog-pr-3418.yml deleted file mode 100644 index b2b6703a1756..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3418.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: generalthrax -changes: - - {balance: Most common accessories now fit on pants} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3420.yml b/html/changelogs/AutoChangeLog-pr-3420.yml deleted file mode 100644 index 832736e59bfd..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3420.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: generalthrax -changes: - - {rscadd: Exosuit Recharger machines are now available from cargo} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3423.yml b/html/changelogs/AutoChangeLog-pr-3423.yml deleted file mode 100644 index 21c44ad0f32e..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3423.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: generalthrax -changes: - - {balance: Rust Reds on the blackmarket are now available to a maximum of 3} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3424.yml b/html/changelogs/AutoChangeLog-pr-3424.yml deleted file mode 100644 index 8258d255a6c2..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3424.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Jedi-Toothpaste -changes: - - {bugfix: "Fixed the lack of windows for the Kilo's Thrusters, and fixed the broken - link for the new blast doors."} -delete-after: true diff --git a/html/changelogs/archive/2024-09.yml b/html/changelogs/archive/2024-09.yml index d86f5c86c955..a90afebaaf94 100644 --- a/html/changelogs/archive/2024-09.yml +++ b/html/changelogs/archive/2024-09.yml @@ -170,3 +170,23 @@ SomeguyManperson: - bugfix: sawn off illestren/improvised shotgun stats are now consistent if they are spawned in +2024-09-26: + FalloutFalcon: + - rscadd: Added new blank shells for training drills! + - refactor: Minor refactor of design disks to reduce repeated code + - rscadd: Ballistics now have a minimum recoil, not enough to mess up your shot! + - bugfix: ships now start closed. shiptesters be writing there memos and ship names. + - rscadd: You can now see ships in the orbit menu and its alot prettier! + - code_imp: ported tg points of interest and a much improved orbit menu + Gristlebee: + - bugfix: fixes wall deconstruction causing runtimes + Jedi-Toothpaste: + - bugfix: Fixed the lack of windows for the Kilo's Thrusters, and fixed the broken + link for the new blast doors. + generalthrax: + - balance: Most common accessories now fit on pants + - rscadd: Exosuit Recharger machines are now available from cargo + - balance: Rust Reds on the blackmarket are now available to a maximum of 3 + zimon9: + - rscadd: Added fruit puree to vegan rations + - rscdel: Removed pizza crackers from vegan rations From d67e5e2b91ac23c03ebaf00d5d32db90fceb808c Mon Sep 17 00:00:00 2001 From: Imaginos16 <77556824+Imaginos16@users.noreply.github.com> Date: Thu, 26 Sep 2024 08:48:25 -0700 Subject: [PATCH 028/167] Makes a Slight Cosmetic Edit to Normal Rabbit Ears (#3443) ## About The Pull Request It's subtle but I did it mostly because the current version was bothering me for some god forsaken reason and I guess I'm a perfectionist. ![image](https://github.com/user-attachments/assets/f9fdfe82-d59e-40bd-94a3-4e19b678e2d6) ## Why It's Good For The Game I hate creating characters ## Changelog :cl: PositiveEntropy imageadd: Adjusts the inner part of the normal rabbit ears. /:cl: --- icons/mob/species/human/rabbit.dmi | Bin 1013 -> 1000 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/species/human/rabbit.dmi b/icons/mob/species/human/rabbit.dmi index fcc6599f735685713dabb3bf310c4d1e26339c1e..26f0cb080d22653f3ac9a61223c4a9c877225522 100644 GIT binary patch delta 745 zcmV$i?pxq@o`qVe&}9 zM}2~p?T02UmuD4G9oxaazD_G&?%+ycM|~!3t7t*0WGBkmE2e+@uDl_Ajn^ZkNh`id zEnh?HUh%Bj>rK@G0000000919;yvs{cn+*}N0~3$&J{7{y9+)B%kX->$Nc!MWvpk) zyi0C%U|1QPqUwUyueCYR&r#vpMN}yI`8Kn&x2uG82|tPID(_nl1KQ=>m4{O^Lm8O zX5WGO=&7hO2X|2wQ^tm(nH2xzf_8c`5puKbv4R>28vp2B9n!Jow$-00000NkvXXu0mjfHg8{w delta 758 zcmVl{`oHxo*4LYw0{{R30002|zpS^g6A>7&wZF=F`%C5Tc}(?1LHlSS((1GEnBbWA zm@LEVg%P3||WskQYKJjSIe!epktn96mhRb=b8EoA=*+n`G@ChbVy)a3dAWsj2A93F?M)vv96G;oXGSt_y$p(4mq&w63%_srAA(Kr-~b z@67#vj3592000000Dyz2CSM1TPrml&dFGEZVgLa6Ma*npFNAk}K-|HM-?;yX_zt~T zA1bz$ac?<9GTZ1MqS{!lK5j(;0002|4Kk7^E}eRL;o6ho5=oS#CVl}X@$$ku5(Gms zZZ$FS3)p|)WUvO&xitiS0KyA~egT}{!%qZ#|1YzGBK3?e2^y1l!S;w=8J#VJX^FlE zL1_~IgpXj2YIG+N)(PH*$Fwk8UYD>29bA0}Z1+xv=RT7gVCpsZtDv$CbuKWyU}4+D zf^QwTHvZG6EaNJZh|VA7>5~%v_ovycLdA$RNMP3i^(d;`=AH5V+=HMZ!VvN{O6bbQ9E@;O$GcLYUAqn+3#C*8yiMHA9 o8dGkzJyuX7U;_XE003$D2SExfS^H-GdjJ3c07*qoM6N<$f*}lQQUCw| From 58eb610c1c1c1b48e1b5c308682b2746982bd86a Mon Sep 17 00:00:00 2001 From: Changelogs Date: Thu, 26 Sep 2024 10:59:29 -0500 Subject: [PATCH 029/167] Automatic changelog generation for PR #3443 [ci skip] --- html/changelogs/AutoChangeLog-pr-3443.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3443.yml diff --git a/html/changelogs/AutoChangeLog-pr-3443.yml b/html/changelogs/AutoChangeLog-pr-3443.yml new file mode 100644 index 000000000000..3fd19b120e6d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3443.yml @@ -0,0 +1,4 @@ +author: PositiveEntropy +changes: + - {imageadd: Adjusts the inner part of the normal rabbit ears.} +delete-after: true From 96c4fa999f2265d368905a4544e448d3175691c1 Mon Sep 17 00:00:00 2001 From: Jedi-Toothpaste <53096233+Jedi-Toothpaste@users.noreply.github.com> Date: Thu, 26 Sep 2024 21:06:07 +0100 Subject: [PATCH 030/167] valor map fixes (#3440) ## About The Pull Request So, currently the Valor is awaiting a remap, but this should fix a few problems that it currently has, most notably, the large areas, lack of firelocks and lack of lighting in some rooms. What's changed: - Added firelocks to every door, no more mid-corridor firelocks which don't do much. - Added firelocks across the cargo-bay door. Similar to the Mudskipper. - _I understand this may be a contentious change but i'm happy to remove it if the danger of the holofield falling would still like to be realised_. ![image](https://github.com/user-attachments/assets/48d83b56-7fec-4fb7-9917-337f7f41d78f) - Added lighting to the Corpsman prep room, and the EVA Room as it currently does not spawn with a light at all. (with this, I have also added extra light switches to said rooms). - Seperated the large area at the bottom of the ship. At the moment, the Surgery Room, Morgue Room, Corridor, Corpsman prep, and post-op area all share the same area. I have given each one a seperate area so you can control the lighting in each room. ![image](https://github.com/user-attachments/assets/29ed4c5c-d67a-407a-9ff9-587135f92483) - Similar to the above, I have added seperate areas for the Janitor Closet, EVA prep, Toilet and Laundry Room as well. ![image](https://github.com/user-attachments/assets/ee47bf9b-b07b-4794-911d-e310cc8db933) ## Why It's Good For The Game Being able to turn the lights off in the Morgue seperatly from the entire medbay's is a bit of a no-brainer, and helps enhance the roleplay. It is a little bit immerssion breaking to go to turn off the lights in the patient-care area and suddenly you've plunged the surgery into pitch-darkness. As for the firelocks, having consistent firelocks that are actually present on every door, is also a no brainer; but this change brings the Valor in-line with other IRMG ships in actually having fire-locks on every door. ## Changelog :cl: add: Firelocks to the Valor-Class' Doors add: Lighting to dark areas on the Valor-Class' Doors add: New areas on the Valor-Class to seperate rooms add: Added APC for the Surgical Area /:cl: --- _maps/shuttles/inteq/inteq_valor.dmm | 341 +++++++++++++++++++++------ 1 file changed, 263 insertions(+), 78 deletions(-) diff --git a/_maps/shuttles/inteq/inteq_valor.dmm b/_maps/shuttles/inteq/inteq_valor.dmm index 737e424096fd..dac3ac7a0ebb 100644 --- a/_maps/shuttles/inteq/inteq_valor.dmm +++ b/_maps/shuttles/inteq/inteq_valor.dmm @@ -123,7 +123,7 @@ /obj/effect/turf_decal/borderfloorwhite, /obj/machinery/light/directional/south, /turf/open/floor/plasteel/white, -/area/ship/medical) +/area/ship/medical/surgery) "bJ" = ( /obj/effect/turf_decal/siding/thinplating/dark, /obj/effect/turf_decal/trimline/opaque/brown/line, @@ -136,7 +136,7 @@ dir = 4 }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "bN" = ( /obj/structure/catwalk/over/plated_catwalk, /obj/machinery/power/apc/auto_name/directional/east, @@ -353,7 +353,7 @@ }, /obj/structure/chair, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "dG" = ( /obj/effect/turf_decal/industrial/traffic/corner{ dir = 4 @@ -366,6 +366,12 @@ dir = 8; name = "Custodian Closet" }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/crew/canteen) "dM" = ( @@ -407,7 +413,7 @@ name = "Surgery" }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "dO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 @@ -546,7 +552,7 @@ pixel_y = 8 }, /turf/open/floor/plasteel/white, -/area/ship/medical) +/area/ship/medical/surgery) "eV" = ( /obj/structure/cable{ icon_state = "1-4" @@ -733,8 +739,13 @@ dir = 5 }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "gq" = ( +/obj/machinery/light_switch{ + dir = 1; + pixel_y = -20; + pixel_x = -3 + }, /turf/open/floor/plasteel/mono/dark, /area/ship/cargo) "gt" = ( @@ -762,7 +773,7 @@ dir = 4 }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "gZ" = ( /obj/machinery/door/airlock/external{ dir = 4 @@ -840,6 +851,9 @@ }, /turf/open/floor/plasteel/tech/grid, /area/ship/crew/cryo) +"hJ" = ( +/turf/open/floor/plasteel/dark, +/area/ship/medical/surgery) "hN" = ( /obj/effect/turf_decal/siding/thinplating{ dir = 4 @@ -862,8 +876,13 @@ dir = 8; pixel_x = 12 }, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20; + pixel_y = 8 + }, /turf/open/floor/plasteel/patterned/brushed, -/area/ship/medical) +/area/ship/medical/surgery) "id" = ( /obj/structure/cable{ icon_state = "1-2" @@ -1018,7 +1037,7 @@ id = "valor_external" }, /turf/open/floor/plating, -/area/ship/medical) +/area/ship/medical/surgery) "jN" = ( /obj/structure/chair/office, /obj/machinery/power/apc/auto_name/directional/west, @@ -1063,6 +1082,11 @@ pixel_x = 1; pixel_y = 16 }, +/obj/machinery/light_switch{ + dir = 1; + pixel_y = -20; + pixel_x = 4 + }, /turf/open/floor/plasteel/patterned/ridged, /area/ship/medical) "jU" = ( @@ -1094,6 +1118,12 @@ dir = 4; name = "Starboard Engines" }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, /turf/open/floor/plasteel/dark, /area/ship/maintenance/starboard) "kx" = ( @@ -1178,6 +1208,10 @@ /obj/machinery/door/airlock/grunge{ name = "Medbay" }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, /turf/open/floor/plasteel/dark, /area/ship/medical) "lc" = ( @@ -1329,6 +1363,10 @@ }, /turf/open/floor/plasteel/dark, /area/ship/crew/canteen) +"ml" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/patterned, +/area/ship/medical) "mp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 @@ -1338,6 +1376,9 @@ }, /turf/open/floor/plasteel/tech, /area/ship/medical) +"mr" = ( +/turf/closed/wall/mineral/plastitanium, +/area/ship/medical/surgery) "mt" = ( /obj/structure/rack, /obj/item/tank/internals/plasmaman/full, @@ -1479,8 +1520,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/obj/machinery/light/directional/north, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "nz" = ( /obj/machinery/door/firedoor/border_only{ dir = 8 @@ -1509,8 +1551,12 @@ /obj/machinery/door/airlock/medical/glass{ name = "Surgical Bay" }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, /turf/open/floor/plasteel/white, -/area/ship/medical) +/area/ship/medical/surgery) "nU" = ( /obj/effect/turf_decal/corner/opaque/yellow{ dir = 1 @@ -1551,6 +1597,9 @@ /obj/item/flashlight/lamp/green, /turf/open/floor/carpet/black, /area/ship/crew/dorm) +"ou" = ( +/turf/open/floor/plasteel/mono/dark, +/area/ship/cargo) "oy" = ( /obj/effect/turf_decal/trimline/opaque/brown/warning{ dir = 6 @@ -1569,7 +1618,7 @@ dir = 4 }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "oz" = ( /obj/structure/cable{ icon_state = "6-8" @@ -1719,7 +1768,7 @@ /obj/structure/table/optable, /obj/structure/curtain, /turf/open/floor/plasteel/patterned/brushed, -/area/ship/medical) +/area/ship/medical/surgery) "pL" = ( /obj/machinery/power/terminal{ dir = 8 @@ -1789,8 +1838,12 @@ icon_state = "1-2" }, /obj/machinery/door/airlock/hatch, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, /turf/open/floor/plasteel/patterned, -/area/ship/medical) +/area/ship/medical/surgery) "qt" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable{ @@ -1846,7 +1899,7 @@ id = "valor_surgery" }, /turf/open/floor/plating, -/area/ship/medical) +/area/ship/medical/surgery) "qW" = ( /obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2{ dir = 4 @@ -1890,6 +1943,20 @@ }, /turf/open/floor/plating, /area/ship/crew/dorm) +"rh" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20; + pixel_y = -1 + }, +/turf/open/floor/plating, +/area/ship/hallway/central) "rL" = ( /turf/open/floor/plasteel/patterned/cargo_one, /area/ship/cargo) @@ -1905,7 +1972,7 @@ icon_state = "1-8" }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "rX" = ( /obj/structure/sign/poster/contraband/inteq_gec{ pixel_y = 32 @@ -1996,8 +2063,12 @@ /obj/machinery/door/airlock/medical{ name = "Morgue" }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, /turf/open/floor/plasteel/white, -/area/ship/medical) +/area/ship/medical/surgery) "ss" = ( /obj/structure/rack, /obj/item/pickaxe/emergency, @@ -2011,8 +2082,12 @@ /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20 + }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "sy" = ( /obj/effect/turf_decal/corner/opaque/yellow{ dir = 1 @@ -2083,6 +2158,11 @@ pixel_y = 10 }, /obj/machinery/firealarm/directional/west, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20; + pixel_y = -10 + }, /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) "sM" = ( @@ -2192,6 +2272,10 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, +/obj/machinery/light_switch{ + dir = 1; + pixel_y = -20 + }, /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/port) "tZ" = ( @@ -2234,7 +2318,7 @@ dir = 1 }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "uA" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ dir = 4 @@ -2466,12 +2550,11 @@ /turf/open/floor/plasteel/dark, /area/ship/crew/canteen) "xg" = ( -/obj/machinery/door/firedoor/border_only, /obj/effect/turf_decal/siding/thinplating/dark/corner{ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "xj" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/cargo) @@ -2727,7 +2810,7 @@ /obj/effect/turf_decal/borderfloorblack, /obj/structure/bodycontainer/morgue, /turf/open/floor/plasteel/patterned/brushed, -/area/ship/medical) +/area/ship/medical/surgery) "zE" = ( /obj/effect/turf_decal/siding/thinplating/dark{ dir = 1 @@ -2768,8 +2851,12 @@ "zI" = ( /obj/effect/turf_decal/borderfloorblack, /obj/machinery/door/airlock/hatch, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, /turf/open/floor/plasteel/patterned, -/area/ship/medical) +/area/ship/medical/surgery) "zK" = ( /obj/docking_port/stationary{ dir = 4; @@ -2800,6 +2887,10 @@ /obj/effect/turf_decal/siding/thinplating/dark{ dir = 9 }, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20 + }, /turf/open/floor/plasteel/dark, /area/ship/medical) "zT" = ( @@ -2889,7 +2980,7 @@ pixel_y = -4 }, /turf/open/floor/plasteel/patterned/brushed, -/area/ship/medical) +/area/ship/medical/surgery) "AG" = ( /obj/structure/bed, /obj/item/bedsheet/hos{ @@ -2968,6 +3059,10 @@ desc = "A poster encouraging you to work for your future."; pixel_y = 32 }, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20 + }, /turf/open/floor/plasteel/dark, /area/ship/medical) "Bc" = ( @@ -2984,6 +3079,13 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/dark, /area/ship/crew/canteen) +"BB" = ( +/obj/machinery/light_switch{ + dir = 1; + pixel_y = -20 + }, +/turf/template_noop, +/area/template_noop) "BC" = ( /obj/structure/filingcabinet/double, /obj/structure/sign/poster/official/help_others{ @@ -3082,7 +3184,7 @@ pixel_x = 28 }, /turf/open/floor/plasteel/white, -/area/ship/medical) +/area/ship/medical/surgery) "CH" = ( /obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, /obj/structure/cable{ @@ -3330,8 +3432,9 @@ /obj/effect/turf_decal/trimline/opaque/brown/line{ dir = 5 }, +/obj/machinery/light/directional/north, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "EJ" = ( /obj/effect/turf_decal/siding/thinplating/corner{ dir = 1 @@ -3463,7 +3566,7 @@ /area/ship/crew/canteen) "FY" = ( /turf/open/floor/plasteel/patterned/brushed, -/area/ship/medical) +/area/ship/medical/surgery) "FZ" = ( /obj/effect/turf_decal/siding/thinplating{ dir = 1 @@ -3532,6 +3635,20 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) +"GT" = ( +/obj/structure/catwalk/over/plated_catwalk/dark, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20; + pixel_y = 4 + }, +/turf/open/floor/plating, +/area/ship/hallway/central) "Hg" = ( /obj/effect/turf_decal/siding/thinplating{ dir = 1 @@ -3567,6 +3684,9 @@ /obj/machinery/door/airlock/hatch{ name = "Port Hallway" }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, /turf/open/floor/plasteel/tech/grid, /area/ship/cargo) "HA" = ( @@ -3631,6 +3751,10 @@ /obj/structure/mirror{ pixel_y = -24 }, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20 + }, /turf/open/floor/plasteel/patterned/brushed, /area/ship/crew/canteen) "HT" = ( @@ -4042,7 +4166,7 @@ pixel_y = -23 }, /turf/open/floor/plasteel/white, -/area/ship/medical) +/area/ship/medical/surgery) "LL" = ( /obj/structure/closet/secure_closet{ icon_state = "med_secure"; @@ -4089,6 +4213,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/obj/machinery/light_switch{ + dir = 1; + pixel_y = -20 + }, /turf/open/floor/plasteel/stairs{ dir = 8 }, @@ -4158,6 +4286,14 @@ "Nh" = ( /turf/closed/wall/mineral/plastitanium, /area/ship/cargo) +"Nk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ship/medical/surgery) "Nn" = ( /obj/structure/table/reinforced, /obj/effect/decal/cleanable/cobweb, @@ -4175,6 +4311,10 @@ /obj/item/soap{ pixel_x = -6 }, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20 + }, /turf/open/floor/plasteel/tech/techmaint, /area/ship/crew/canteen) "NA" = ( @@ -4309,6 +4449,7 @@ /obj/effect/turf_decal/techfloor{ dir = 4 }, +/obj/machinery/light/directional/east, /turf/open/floor/plasteel/tech/grid, /area/ship/cargo) "Ok" = ( @@ -4318,6 +4459,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/patterned, /area/ship/cargo) +"Ox" = ( +/obj/structure/grille, +/obj/structure/window/plasma/reinforced/plastitanium, +/obj/machinery/door/poddoor/shutters{ + id = "valor_external" + }, +/turf/open/floor/plating, +/area/ship/medical/surgery) "Oz" = ( /obj/structure/table, /obj/item/folder{ @@ -4351,7 +4500,7 @@ /obj/effect/turf_decal/borderfloorblack, /obj/machinery/light/directional/south, /turf/open/floor/plasteel/patterned/brushed, -/area/ship/medical) +/area/ship/medical/surgery) "OM" = ( /turf/open/floor/pod, /area/ship/cargo) @@ -4410,14 +4559,19 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "Pg" = ( /obj/structure/sink{ dir = 4; pixel_x = -12 }, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20; + pixel_y = 8 + }, /turf/open/floor/plasteel/white, -/area/ship/medical) +/area/ship/medical/surgery) "Pk" = ( /obj/effect/turf_decal/corner/opaque/brown{ dir = 4 @@ -4451,10 +4605,9 @@ /obj/effect/turf_decal/trimline/opaque/brown/line{ dir = 1 }, -/obj/machinery/light/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "PU" = ( /turf/closed/wall/mineral/plastitanium, /area/ship/crew/cryo) @@ -4582,8 +4735,12 @@ /turf/open/floor/plasteel/tech/grid, /area/ship/cargo) "Re" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc/auto_name/directional/west, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "Rh" = ( /turf/closed/wall/mineral/plastitanium, /area/ship/security) @@ -4704,6 +4861,9 @@ }, /turf/open/floor/carpet/black, /area/ship/crew/dorm) +"SL" = ( +/turf/closed/wall/mineral/plastitanium/nodiagonal, +/area/ship/medical/surgery) "SX" = ( /obj/machinery/power/terminal{ dir = 1 @@ -4808,7 +4968,7 @@ dir = 1 }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "Uj" = ( /obj/effect/turf_decal/siding/thinplating/dark, /obj/structure/cable{ @@ -4860,6 +5020,15 @@ }, /turf/open/floor/plasteel/dark, /area/ship/crew/canteen) +"UD" = ( +/obj/machinery/suit_storage_unit/inherit, +/obj/item/clothing/suit/space/inteq, +/obj/item/clothing/head/helmet/space/inteq, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/cargo) "UN" = ( /obj/effect/turf_decal/siding/thinplating, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ @@ -5046,10 +5215,12 @@ dir = 9 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/machinery/firealarm/directional/west, +/obj/machinery/firealarm/directional/west{ + pixel_y = 4 + }, /obj/structure/chair, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "WQ" = ( /obj/structure/cable/yellow{ icon_state = "0-2" @@ -5221,12 +5392,18 @@ /area/ship/medical) "Yi" = ( /turf/open/floor/plasteel/white, -/area/ship/medical) +/area/ship/medical/surgery) "Yn" = ( /obj/machinery/door/airlock/grunge{ dir = 8; name = "Restroom" }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, /turf/open/floor/plasteel/patterned/brushed, /area/ship/crew/canteen) "Yt" = ( @@ -5262,14 +5439,16 @@ /turf/open/floor/plating, /area/ship/maintenance/starboard) "YL" = ( -/obj/machinery/door/firedoor/border_only, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/structure/cable{ icon_state = "1-2" }, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plasteel/dark, -/area/ship/medical) +/area/ship/medical/surgery) "YM" = ( /obj/effect/turf_decal/corner/opaque/yellow{ dir = 1 @@ -5304,6 +5483,12 @@ dir = 4; name = "Port Engines" }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, /turf/open/floor/plating, /area/ship/maintenance/port) "Zc" = ( @@ -5481,7 +5666,7 @@ cu Td Td Td -Td +BB Nh xj qG @@ -5595,13 +5780,13 @@ xj Td Td Td -bB -LI +mr +SL ns -LI +SL pC zD -LI +SL "} (8,1,1) = {" Zu @@ -5628,13 +5813,13 @@ xj Td Td Td -WC +Ox WO gp -LI +SL FY OK -LI +SL "} (9,1,1) = {" Zu @@ -5661,13 +5846,13 @@ xj Td Td Td -WC +Ox dA Pe si hW AE -LI +SL "} (10,1,1) = {" Zu @@ -5690,17 +5875,17 @@ OM OM Kz ZF -LI +SL jL jL jL -LI +SL PL bJ -LI -LI -LI -LI +SL +SL +SL +SL "} (11,1,1) = {" Zu @@ -5724,8 +5909,8 @@ Mn de KU zI -Re -Re +hJ +hJ xg Re Ui @@ -5733,7 +5918,7 @@ gU nK Pg eU -LI +SL "} (12,1,1) = {" tZ @@ -5758,15 +5943,15 @@ Fa MR qk su -su +Nk +Nk YL -su ux rO qR Yi bI -LI +SL "} (13,1,1) = {" tZ @@ -5799,7 +5984,7 @@ oy qR CF LJ -LI +SL "} (14,1,1) = {" tZ @@ -5824,15 +6009,15 @@ zT nX LI jG -Io +ml Au LI -LI +SL dN -LI -LI -LI -LI +SL +SL +SL +SL "} (15,1,1) = {" tZ @@ -5842,9 +6027,9 @@ tZ Qc AP HC -gq -gq -gq +ou +ou +ou Hw nX ct @@ -5875,8 +6060,8 @@ ME iN xl HC -gq -gq +ou +ou gq xj Rc @@ -5908,9 +6093,9 @@ tZ VD Um DT +UD Oj -Oj -Oj +UD DT DT DT @@ -5974,7 +6159,7 @@ mB ma CH jk -lc +GT Sh lc ht @@ -5990,7 +6175,7 @@ hj id lc Sh -lc +rh bR XD NZ From 1543835a520a43260c3661216301328cb43495d8 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Thu, 26 Sep 2024 15:16:55 -0500 Subject: [PATCH 031/167] Automatic changelog generation for PR #3440 [ci skip] --- html/changelogs/AutoChangeLog-pr-3440.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3440.yml diff --git a/html/changelogs/AutoChangeLog-pr-3440.yml b/html/changelogs/AutoChangeLog-pr-3440.yml new file mode 100644 index 000000000000..6736a4cc4659 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3440.yml @@ -0,0 +1,7 @@ +author: Jedi-Toothpaste +changes: + - {rscadd: Firelocks to the Valor-Class' Doors} + - {rscadd: Lighting to dark areas on the Valor-Class' Doors} + - {rscadd: New areas on the Valor-Class to seperate rooms} + - {rscadd: Added APC for the Surgical Area} +delete-after: true From a358a4dc45c636d84704ef429224075c5ac657d3 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 27 Sep 2024 01:02:14 +0000 Subject: [PATCH 032/167] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3440.yml | 7 ------- html/changelogs/AutoChangeLog-pr-3443.yml | 4 ---- html/changelogs/archive/2024-09.yml | 8 ++++++++ 3 files changed, 8 insertions(+), 11 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3440.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3443.yml diff --git a/html/changelogs/AutoChangeLog-pr-3440.yml b/html/changelogs/AutoChangeLog-pr-3440.yml deleted file mode 100644 index 6736a4cc4659..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3440.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: Jedi-Toothpaste -changes: - - {rscadd: Firelocks to the Valor-Class' Doors} - - {rscadd: Lighting to dark areas on the Valor-Class' Doors} - - {rscadd: New areas on the Valor-Class to seperate rooms} - - {rscadd: Added APC for the Surgical Area} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3443.yml b/html/changelogs/AutoChangeLog-pr-3443.yml deleted file mode 100644 index 3fd19b120e6d..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3443.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: PositiveEntropy -changes: - - {imageadd: Adjusts the inner part of the normal rabbit ears.} -delete-after: true diff --git a/html/changelogs/archive/2024-09.yml b/html/changelogs/archive/2024-09.yml index a90afebaaf94..fac7a3a0bd23 100644 --- a/html/changelogs/archive/2024-09.yml +++ b/html/changelogs/archive/2024-09.yml @@ -190,3 +190,11 @@ zimon9: - rscadd: Added fruit puree to vegan rations - rscdel: Removed pizza crackers from vegan rations +2024-09-27: + Jedi-Toothpaste: + - rscadd: Firelocks to the Valor-Class' Doors + - rscadd: Lighting to dark areas on the Valor-Class' Doors + - rscadd: New areas on the Valor-Class to seperate rooms + - rscadd: Added APC for the Surgical Area + PositiveEntropy: + - imageadd: Adjusts the inner part of the normal rabbit ears. From 8bec073a1bee248c55888769ff25555b47f410e4 Mon Sep 17 00:00:00 2001 From: Sadhorizon <108196626+Sadhorizon@users.noreply.github.com> Date: Sat, 28 Sep 2024 01:11:18 +0200 Subject: [PATCH 033/167] Adds a fax machine to the Dwayne. (#3402) ## About The Pull Request ![obraz](https://github.com/user-attachments/assets/79430ae8-1e33-4d11-8dd5-1d687790a261) ## Why It's Good For The Game - Communication with the outpost is fun. - NT is like, THE tcomm company, even if the ship is meant to be their civ market garbage, it should still get one. ## Changelog :cl: add: Added a fax machine to the Dwayne-class. /:cl: --- _maps/shuttles/independent/independent_dwayne.dmm | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/_maps/shuttles/independent/independent_dwayne.dmm b/_maps/shuttles/independent/independent_dwayne.dmm index a0383e507ec1..d1cc698c0c92 100644 --- a/_maps/shuttles/independent/independent_dwayne.dmm +++ b/_maps/shuttles/independent/independent_dwayne.dmm @@ -886,12 +886,15 @@ dir = 1 }, /obj/item/radio/weather_monitor{ - pixel_x = 5; + pixel_x = 8; pixel_y = 7 }, -/obj/item/reagent_containers/food/drinks/mug{ - pixel_x = -8 +/obj/machinery/newscaster/directional/west, +/obj/item/paper_bin{ + pixel_x = -8; + pixel_y = 6 }, +/obj/item/pen/fountain, /turf/open/floor/plasteel/mono/dark, /area/ship/bridge) "mR" = ( @@ -2686,9 +2689,8 @@ "Oz" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/corner/opaque/ntblue/half, -/obj/machinery/newscaster/directional/west, -/obj/item/megaphone/cargo{ - pixel_y = 5 +/obj/machinery/fax/indie{ + pixel_y = 7 }, /turf/open/floor/plasteel/mono/dark, /area/ship/bridge) @@ -2711,6 +2713,7 @@ /obj/item/ammo_box/c38, /obj/item/ammo_box/c38, /obj/item/gun/ballistic/revolver/detective, +/obj/item/megaphone/cargo, /turf/open/floor/plasteel/mono/dark, /area/ship/bridge) "OP" = ( From 86659425ecc9a1577a068115034051b623dd4881 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 27 Sep 2024 18:22:03 -0500 Subject: [PATCH 034/167] Automatic changelog generation for PR #3402 [ci skip] --- html/changelogs/AutoChangeLog-pr-3402.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3402.yml diff --git a/html/changelogs/AutoChangeLog-pr-3402.yml b/html/changelogs/AutoChangeLog-pr-3402.yml new file mode 100644 index 000000000000..a19f7367125f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3402.yml @@ -0,0 +1,4 @@ +author: Sadhorizon +changes: + - {rscadd: Added a fax machine to the Dwayne-class.} +delete-after: true From c830d5f6ea455267f1a087d475e42be0716013a0 Mon Sep 17 00:00:00 2001 From: Theos Date: Fri, 27 Sep 2024 19:48:33 -0400 Subject: [PATCH 035/167] Fixes some stuff with legion infections (#3450) ## About The Pull Request homeless skulls no longer complain about not being fed ## Why It's Good For The Game ## Changelog :cl: fix: legion skulls will no longer check if they should rise up and consume their owner if they are ownerless /:cl: Signed-off-by: Theos --- .../mob/living/simple_animal/hostile/mining_mobs/hivelord.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index b7ca291a5be4..bd9133ffce20 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -297,6 +297,8 @@ /// track our timers and reagents /obj/item/organ/legion_skull/proc/skull_check() + if(!owner) + return if(!malignance) malignance = new() malignance.infect(owner, FALSE) From 771b608b4f0113906e003a05e99dad207589534b Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 27 Sep 2024 18:59:30 -0500 Subject: [PATCH 036/167] Automatic changelog generation for PR #3450 [ci skip] --- html/changelogs/AutoChangeLog-pr-3450.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3450.yml diff --git a/html/changelogs/AutoChangeLog-pr-3450.yml b/html/changelogs/AutoChangeLog-pr-3450.yml new file mode 100644 index 000000000000..0e16d8aa9f70 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3450.yml @@ -0,0 +1,5 @@ +author: SomeguyManperson +changes: + - {bugfix: legion skulls will no longer check if they should rise up and consume + their owner if they are ownerless} +delete-after: true From 943006f473bfc236c7c9ff9478395785fe39d154 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 28 Sep 2024 01:01:54 +0000 Subject: [PATCH 037/167] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3402.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3450.yml | 5 ----- html/changelogs/archive/2024-09.yml | 6 ++++++ 3 files changed, 6 insertions(+), 9 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3402.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3450.yml diff --git a/html/changelogs/AutoChangeLog-pr-3402.yml b/html/changelogs/AutoChangeLog-pr-3402.yml deleted file mode 100644 index a19f7367125f..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3402.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Sadhorizon -changes: - - {rscadd: Added a fax machine to the Dwayne-class.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3450.yml b/html/changelogs/AutoChangeLog-pr-3450.yml deleted file mode 100644 index 0e16d8aa9f70..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3450.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: SomeguyManperson -changes: - - {bugfix: legion skulls will no longer check if they should rise up and consume - their owner if they are ownerless} -delete-after: true diff --git a/html/changelogs/archive/2024-09.yml b/html/changelogs/archive/2024-09.yml index fac7a3a0bd23..d5ef25458196 100644 --- a/html/changelogs/archive/2024-09.yml +++ b/html/changelogs/archive/2024-09.yml @@ -198,3 +198,9 @@ - rscadd: Added APC for the Surgical Area PositiveEntropy: - imageadd: Adjusts the inner part of the normal rabbit ears. +2024-09-28: + Sadhorizon: + - rscadd: Added a fax machine to the Dwayne-class. + SomeguyManperson: + - bugfix: legion skulls will no longer check if they should rise up and consume + their owner if they are ownerless From f22469aa3ccac2169ec807764462c4804e372002 Mon Sep 17 00:00:00 2001 From: fighterslam <56803762+fighterslam@users.noreply.github.com> Date: Sat, 28 Sep 2024 14:18:48 -0500 Subject: [PATCH 038/167] Ranger Modernization & Tweaks (#3313) ## About The Pull Request Updates the Ranger-Class, giving it facilities that feel better without significantly altering the balance. ![image](https://github.com/user-attachments/assets/b9a6de86-3fc3-44cb-9b9a-46c971fb5165) Major changes: Adds a Logistics Specialist to the ship's crew manifest, and enhances the Cargo Bay to accommodate for them. Now they have a desk, a bed, and a locker, all painted in N+S colors! The Cargo Bay now also requires ship access to be opened/closed. The ship is now a bit more focused on "disaster response" rather than being a generalist, and the tags have been updated to reflect this. I might do some more work on this in the future, to lean into the "ship that can fix both the crew and the ship" aspect. This also leaves the niche of Vigilitas Gunship open for when that's made. Re-paints the ship to be more in line with Vigilitas colors, and reflect NT Spaceworks' designs (titanium hulls/windows) & updates the prefix to VISV. Smaller changes: Adds access locks to the AI core/Comms (engineering access), the Ready Room (requires Ship Access now and a non-intern role), security office, and specialist quarters/rooms Adds a few internal windows - the Bridge now has a shutter-able window to the atrium, Security gets shutterable windows, and so does Medical. Updates the Air Cycler to be more secure and not have any exterior windows, keeping with the Ranger's "no external windows" theme. Moves the atmospherics equipment to the engine bays, replacing the equipment room with a proper ready-room for the LP Squad, and a small armory compartment. Also adds a 9mm Saber SMG to the armory. All of the LP hardsuits have been moved into this ready-room, except for the Lieutenant's. Enhances Medical by replacing the weird cell with a proper surgical compartment, and uses tinted windows to give the Medical Specialist's bedroom some privacy. Rearranges the Security Specialist's office by giving them a proper desk, a records console, and a camera monitor, aswell as a much more functional holding cell. Makes the AI core & Comms room much prettier (and more secure) Adjusts the location of the docking port so you no longer need to cross hyperspace Expands the bridge slightly & adds more shutters to the ship. Fixes the LP med-spec's hardsuit to be spaceproof again. Enhances the LT's living quarters. Upgrades the Ion Engines to the premium variant - currently, it has the same amount of thrusters as a Kilo, but is significantly heavier. As it'd require significant hull changes to add more thrusters, they've just been upgraded to make it more fitting for a proper response ship. Adds an air refilling system, so you don't have to depressurize your air supply in order to refill it. Replaces the "Emergency EVA" closets with Fragile Space Suit Storage Units, which are weaker than the previous EVA suits + spawns less supplies. Makes it so the LP Lieutenant spawns with the Vigilitas Security Coat rather than the standard NT one, and removes the indie officer stuff from their closet. Fixes the Medical Specialist's hardsuit to be spaceproof again. Adds GPSes to every specialist's locker, instead of just a few, and gives the AI Core a stationary computer GPS. Shoves a dresser into Cryo. Adds External Atmospherics control - you can now control the external atmospherics fittings and also have an ability to actually check the external atmosphere with sensors. Code for it's a bit jank but it works. Are we out of scope yet? Countless other small changes I've forgotten about as this expands. ## Why It's Good For The Game Makes the Ranger feel much better to play on - brings the crew together more, makes the areas feel a bit more usable, and helps the Ranger lean into a specialization, rather than being Yet Another NT Generalist. ## Changelog :cl: balance: Modernizes and slightly buffs the Ranger. /:cl: --------- Signed-off-by: fighterslam <56803762+fighterslam@users.noreply.github.com> Co-authored-by: Sadhorizon <108196626+Sadhorizon@users.noreply.github.com> --- _maps/configs/nanotrasen_ranger.json | 15 +- .../shuttles/nanotrasen/nanotrasen_ranger.dmm | 4417 +++++++++++------ code/__DEFINES/atmospherics.dm | 2 + .../MapData/shuttles/nanotrasen_ranger.dm | 160 +- code/game/area/ship_areas.dm | 3 + code/game/machinery/computer/atmos_control.dm | 9 +- .../decals/turfdecal/flooring_decals.dm | 2 +- code/game/turfs/open/floor/plasteel_floor.dm | 7 + .../clothing/outfits/factions/nanotrasen.dm | 2 +- .../modules/projectiles/guns/ballistic/smg.dm | 1 + 10 files changed, 2998 insertions(+), 1620 deletions(-) diff --git a/_maps/configs/nanotrasen_ranger.json b/_maps/configs/nanotrasen_ranger.json index d9c2e207e4d9..fedc351e03b0 100644 --- a/_maps/configs/nanotrasen_ranger.json +++ b/_maps/configs/nanotrasen_ranger.json @@ -1,24 +1,23 @@ { "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", + "prefix": "VISV", "map_name": "Ranger-class Aid Vessel", - "faction": "/datum/faction/nt", - "prefix": "NTSV", + "faction": "/datum/faction/nt/vigilitas", "namelists": [ "NANOTRASEN", "NATURAL_AGGRESSIVE", "WEAPONS" ], "map_short_name": "Ranger-class", - "description": "A Nanotrasen rescue and aid vessel. Equipped with an AI core, moderate combat gear, and equipment fit for rescue and general aid operations. Nanotrasen often deploys these ships in lieu of a proper ERT to aid their allies in the Frontier without committing their full might. The shipowner is the Lieutenant of a Loss Prevention squad, with a Commissioner to aid with operations on the ship proper.", + "description": "A Vigilitas Interstellar aid vessel, manufactured by NT Spaceworks. Equipped with a Nanotrasen AI core, moderate combat gear, and equipment fit for rescue and general aid operations. Vigitilas Interstellar often deploys these ships in lieu of a proper ERT to aid their allies in the Frontier without committing their full might. The shipowner is the Lieutenant of a Loss Prevention squad.", "tags": [ "Combat", - "Riot", - "Robotics", "Medical", + "Firefighting", "Telecomms", "Generalist" ], - "starting_funds": 4000, + "starting_funds": 6000, "map_path": "_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm", "limit": 1, "job_slots": { @@ -39,6 +38,10 @@ "outfit": "/datum/outfit/job/nanotrasen/doctor/lp", "slots": 1 }, + "N+S Logistics Specialist": { + "outfit": "/datum/outfit/job/nanotrasen/quartermaster", + "slots": 1 + }, "Intern": { "outfit": "/datum/outfit/job/nanotrasen/assistant", "slots": 1 diff --git a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm index fcd049fb153f..4e194b4bdb98 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm @@ -6,12 +6,16 @@ pixel_y = 11; layer = 4.2 }, -/obj/structure/railing{ +/obj/item/toy/plush/moth/redish{ + pixel_x = -4 + }, +/obj/structure/window/reinforced/tinted{ dir = 4 }, -/obj/item/toy/plush/moth/redish{ +/obj/item/folder/red{ pixel_x = -4; - layer = 4.3 + layer = 3.01; + pixel_y = -8 }, /turf/open/floor/wood, /area/ship/security) @@ -29,7 +33,8 @@ pixel_x = 8; pixel_y = 22 }, -/turf/open/floor/plating, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/port) "am" = ( /obj/structure/urinal{ @@ -39,7 +44,7 @@ /obj/structure/cable{ icon_state = "0-4" }, -/turf/open/floor/plastic, +/turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) "an" = ( /obj/structure/railing/corner, @@ -56,34 +61,47 @@ icon_state = "1-2" }, /obj/machinery/light/floor, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "aD" = ( /obj/machinery/light/dim/directional/north, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/turf_decal/corner/opaque/ntblue/three_quarters{ +/obj/effect/turf_decal/corner/opaque/vired/three_quarters{ dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "aG" = ( -/obj/structure/railing{ - dir = 4 +/obj/structure/closet/cabinet, +/obj/item/clothing/suit/hooded/wintercoat/engineering, +/obj/item/clothing/head/beret/eng/hazard, +/obj/item/storage/backpack/satchel/eng, +/obj/item/storage/backpack/messenger/engi, +/obj/item/storage/backpack/industrial, +/obj/item/storage/backpack/duffelbag/engineering, +/obj/item/clothing/under/rank/engineering/engineer/nt/lp, +/obj/item/clothing/under/rank/engineering/engineer/nt/skirt/lp, +/obj/item/storage/backpack/ert/engineer, +/obj/item/clothing/suit/nanotrasen/vest, +/obj/structure/window/reinforced/tinted{ + dir = 1 }, -/obj/structure/table/reinforced, -/obj/item/storage/box/stockparts/basic, -/obj/machinery/light/dim/directional/south, -/obj/effect/turf_decal/techfloor{ - dir = 4 +/obj/structure/window/reinforced/tinted{ + dir = 8 }, -/obj/machinery/cell_charger, -/turf/open/floor/plasteel/mono/dark, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/wood, /area/ship/engineering) "aI" = ( -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "Ranger_FireFighting_Shut" - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -99,15 +117,33 @@ /obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown/mono, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "Ranger_FireFighting_Shut"; + name = "Ready Room" + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner, /turf/open/floor/plasteel/dark, -/area/ship/storage) +/area/ship/storage/equip) "aK" = ( /obj/machinery/light/dim/directional/north, -/obj/item/radio/intercom/directional/east, -/obj/structure/reagent_dispensers/foamtank, -/turf/open/floor/plasteel/tech, -/area/ship/storage) +/obj/effect/turf_decal/industrial/fire/corner{ + dir = 1 + }, +/obj/machinery/suit_storage_unit/inherit/industrial, +/obj/item/clothing/suit/space/hardsuit/ancient/lp, +/obj/item/clothing/mask/breath, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 6 + }, +/turf/open/floor/plasteel/lightgrey, +/area/ship/storage/equip) "aO" = ( /obj/structure/closet/secure_closet/lp/medical, /obj/item/storage/box/gloves, @@ -119,6 +155,25 @@ /obj/item/pinpointer/crew, /obj/item/storage/box/bodybags, /obj/item/storage/firstaid/regular, +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/item/defibrillator/loaded, +/obj/item/roller{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/roller{ + pixel_x = 5; + pixel_y = 12 + }, +/obj/item/clothing/neck/stethoscope, +/obj/item/gps, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/glasses/hud/health/prescription, /turf/open/floor/wood, /area/ship/medical) "aP" = ( @@ -129,6 +184,7 @@ dir = 1 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/decal/cleanable/plasma, /turf/open/floor/plating, /area/ship/maintenance/port) "bf" = ( @@ -141,7 +197,7 @@ /obj/effect/turf_decal/trimline/opaque/blue/filled/corner{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "bn" = ( /obj/machinery/light/dim/directional/south, @@ -150,10 +206,10 @@ pixel_x = -21; pixel_y = 7 }, -/obj/effect/turf_decal/corner/opaque/ntblue/three_quarters{ +/obj/effect/turf_decal/corner/opaque/vired/three_quarters{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "br" = ( /obj/machinery/atmospherics/components/unary/shuttle/heater{ @@ -164,12 +220,14 @@ }, /obj/machinery/door/poddoor/shutters{ dir = 4; - id = "Ranger_SB_maint_shut" + id = "Ranger_SB_maint_shut"; + name = "Engine Shutters" }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "bu" = ( -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "bw" = ( /obj/structure/closet/secure_closet/lp/security, @@ -184,31 +242,47 @@ /obj/item/clothing/suit/armor/vest/security, /obj/item/clothing/mask/gas/sechailer, /obj/item/gps, -/obj/structure/railing{ - dir = 4 - }, -/obj/item/ammo_box/c9mm, -/obj/item/ammo_box/c9mm, /obj/item/ammo_box/magazine/co9mm, /obj/item/storage/belt/security/webbing, /obj/item/storage/pistolcase/commander, +/obj/item/clothing/glasses/hud/security/sunglasses, +/obj/structure/window/reinforced/tinted{ + dir = 4 + }, /turf/open/floor/wood, /area/ship/security) "bD" = ( -/obj/structure/chair/wood{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) -"bN" = ( -/obj/structure/window/reinforced{ +"bK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/obj/structure/weightmachine/weightlifter, /turf/open/floor/plasteel/dark, +/area/ship/hallway/central) +"bN" = ( +/obj/item/flashlight/lamp{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/paper_bin{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/pen/red{ + pixel_x = 6 + }, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/turf/open/floor/mineral/plastitanium/red/brig, /area/ship/security) "bX" = ( /obj/machinery/telecomms/bus/preset_four{ @@ -217,25 +291,41 @@ id = "Nanotrasen Communications Bus"; freq_listening = list(1353,1447,1459) }, -/turf/open/floor/circuit/telecomms{ - initial_gas_mix = "TEMP=2.7" +/obj/effect/turf_decal/techfloor{ + dir = 4 }, +/turf/open/floor/circuit, /area/ship/engineering/communications) -"cj" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/closet/crate/secure/loot, +"ci" = ( +/obj/effect/turf_decal/industrial/outline/orange, +/obj/machinery/portable_atmospherics/pump, /turf/open/floor/plasteel/tech, -/area/ship/cargo) +/area/ship/maintenance/port) +"cj" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/under/rank/medical/paramedic/skirt/lp, +/obj/item/clothing/under/rank/medical/paramedic/lp, +/obj/item/clothing/suit/hooded/wintercoat/medical, +/obj/item/clothing/head/beret/med, +/obj/item/storage/backpack/satchel/med, +/obj/item/storage/backpack/messenger/med, +/obj/item/storage/backpack/medic, +/obj/item/storage/backpack/duffelbag/med, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/item/storage/backpack/ert/medical, +/turf/open/floor/wood, +/area/ship/medical) "cv" = ( /obj/structure/chair/comfy/shuttle{ dir = 4; - name = "Operations" + name = "Navigator's Chair" }, -/obj/effect/turf_decal/steeldecal/steel_decals9, -/obj/effect/turf_decal/steeldecal/steel_decals9{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-8" }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "cx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -247,7 +337,6 @@ /obj/machinery/camera/autoname{ dir = 10 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/machinery/firealarm/directional/south, /obj/structure/cable{ icon_state = "4-8" @@ -255,7 +344,8 @@ /obj/structure/cable{ icon_state = "4-9" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "cE" = ( /obj/structure/railing{ @@ -263,20 +353,28 @@ }, /obj/effect/decal/cleanable/glass, /obj/machinery/light/dim/directional/south, +/obj/structure/janitorialcart{ + dir = 4 + }, +/obj/item/mop, +/obj/item/reagent_containers/food/drinks/sillycup{ + pixel_x = -8; + pixel_y = 10 + }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "cI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 10 +/obj/structure/chair/handrail{ + dir = 8; + pixel_x = 2 }, -/obj/structure/window/reinforced/fulltile, -/obj/structure/grille, -/obj/machinery/door/firedoor/window, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "Ranger_Cycler_Shutters" +/obj/machinery/light/dim/directional/north, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/techmaint{ + color = "#a8b2b6" }, -/turf/open/floor/plating, /area/ship/hallway/central) "cN" = ( /obj/structure/cable{ @@ -288,13 +386,13 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 10 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 1 - }, /obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "cR" = ( /obj/structure/cable{ @@ -305,9 +403,15 @@ /obj/effect/turf_decal/trimline/opaque/blue/filled/line{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "cW" = ( +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/lightgrey{ + dir = 10 + }, /turf/open/floor/plasteel/dark, /area/ship/crew/cryo) "dd" = ( @@ -315,22 +419,71 @@ /obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) -"dl" = ( -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "Ranger_FireFighting_Shut" +"df" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/machinery/firealarm/directional/south, +/obj/structure/table/wood, +/obj/item/toy/plush/moth/deadhead{ + pixel_x = -7; + layer = 4.3 + }, +/obj/item/flashlight/lamp/green{ + pixel_x = 5; + pixel_y = 13; + layer = 4.2 }, +/obj/item/folder/yellow{ + pixel_y = -4; + pixel_x = 4 + }, +/obj/item/pen/survival{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/open/floor/wood, +/area/ship/engineering) +"dl" = ( /obj/machinery/door/firedoor/border_only{ dir = 8 }, /obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown/mono, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "Ranger_FireFighting_Shut"; + name = "Ready Room" + }, +/turf/open/floor/plasteel/dark, +/area/ship/storage/equip) +"dm" = ( +/obj/machinery/camera/autoname{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 10 + }, /turf/open/floor/plasteel/dark, -/area/ship/storage) +/area/ship/hallway/starboard) "dn" = ( /obj/structure/cable{ icon_state = "4-8" @@ -341,15 +494,15 @@ /obj/effect/turf_decal/steeldecal/steel_decals7{ dir = 4 }, -/turf/open/floor/plasteel/tech/airless, +/turf/open/floor/plasteel/tech, /area/ship/engineering/communications) "dq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/ntblue{ +/obj/effect/turf_decal/corner/opaque/vired{ dir = 8 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "dr" = ( /obj/machinery/power/smes{ @@ -358,25 +511,33 @@ /obj/structure/cable{ icon_state = "0-2" }, +/obj/structure/catwalk/over/plated_catwalk/dark, /turf/open/floor/plating, /area/ship/engineering) +"dx" = ( +/obj/structure/chair/handrail{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/light/floor, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "dC" = ( /obj/effect/turf_decal/ntspaceworks_small/right, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 9 }, -/obj/machinery/light/dim/directional/south, +/obj/effect/turf_decal/spline/fancy/opaque/blue, /turf/open/floor/plasteel/dark, /area/ship/bridge) "dG" = ( /obj/machinery/airalarm/directional/south, -/obj/machinery/atmospherics/components/binary/valve/layer4{ - dir = 8; - name = "Disposals Outlet Valve" - }, /obj/machinery/door/firedoor/border_only{ dir = 4 }, +/obj/machinery/atmospherics/components/unary/portables_connector{ + dir = 4 + }, /turf/open/floor/plating, /area/ship/hallway/central) "dK" = ( @@ -387,10 +548,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "dM" = ( /obj/structure/cable/cyan{ @@ -399,34 +560,38 @@ /obj/effect/decal/cleanable/glass, /turf/open/floor/plating, /area/ship/maintenance/port) +"dN" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/ship/hallway/port) "dP" = ( /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, /obj/machinery/door/poddoor/shutters{ - id = "Engineering_Specialist_Shutters" + id = "Engineering_Specialist_Shutters"; + name = "Communications Shutters" }, /obj/machinery/door/firedoor/window, +/obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, /area/ship/engineering) "ec" = ( /obj/effect/turf_decal/ntspaceworks_small/left, -/obj/structure/cable{ - icon_state = "1-8" - }, /obj/structure/cable{ icon_state = "5-8" }, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = -7; - pixel_y = -19 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/obj/effect/turf_decal/spline/fancy/opaque/blue, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plasteel/dark, /area/ship/bridge) "ef" = ( @@ -438,15 +603,19 @@ /turf/template_noop, /area/template_noop) "eo" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 +/obj/machinery/camera/autoname{ + dir = 5 }, -/obj/structure/cable{ - icon_state = "0-2" +/obj/structure/railing{ + dir = 4; + layer = 4.1 }, -/obj/machinery/power/ship_gravity, -/turf/open/floor/plasteel/mono/dark, -/area/ship/engineering) +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/structure/closet/emcloset/wall/directional/west, +/turf/open/floor/plasteel/lightgrey, +/area/ship/hallway/central) "er" = ( /obj/structure/cable{ icon_state = "4-8" @@ -460,13 +629,16 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "eE" = ( /obj/machinery/computer/cargo{ dir = 1 }, +/obj/structure/railing{ + dir = 8 + }, /turf/open/floor/plasteel/tech, /area/ship/cargo) "eN" = ( @@ -481,7 +653,8 @@ dir = 1; pixel_y = -21; id = "Rangar_Starboard_Blasts"; - name = "Blast Doors" + name = "Blast Doors"; + req_ship_access = 1 }, /obj/machinery/button/shieldwallgen{ dir = 1; @@ -495,23 +668,50 @@ /obj/structure/cable{ icon_state = "4-9" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/corner, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "eU" = ( -/obj/structure/closet/crate, -/obj/effect/decal/cleanable/sprayweb, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 5 + }, +/obj/item/stack/tape{ + pixel_y = 10; + pixel_x = 6 + }, +/obj/item/stack/tape{ + pixel_y = 24; + pixel_x = 6; + layer = 3.02 + }, +/obj/item/stack/tape{ + pixel_y = 17; + pixel_x = 7; + layer = 3.01 + }, +/obj/item/hand_labeler{ + pixel_x = -7; + pixel_y = 8 + }, +/obj/item/folder/yellow{ + pixel_x = 6 + }, +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/machinery/computer/helm/viewscreen/directional/east, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) "eY" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/line{ +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/vired/filled/shrink_ccw{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "fd" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/border{ - dir = 8 - }, /obj/structure/cable{ icon_state = "6-8" }, @@ -524,85 +724,139 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "ff" = ( /obj/structure/railing{ dir = 1 }, /obj/effect/turf_decal/techfloor/hole/right, -/obj/machinery/telecomms/message_server/preset{ - autolinkers = list("messaging","hub"); - network = "nt_commnet"; - layer = 3.1 +/obj/effect/turf_decal/spline/fancy/opaque/blue/corner{ + dir = 8 }, +/obj/structure/closet/crate/bin, /turf/open/floor/plasteel/dark, /area/ship/bridge) "fo" = ( -/obj/structure/window/reinforced/tinted/frosted, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plastic, -/area/ship/crew/toilet) +/obj/structure/girder/reinforced, +/obj/machinery/camera/autoname{ + dir = 10 + }, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "fy" = ( -/obj/structure/table/wood, /obj/item/newspaper, -/turf/open/floor/plasteel/dark, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "fz" = ( -/obj/machinery/door/poddoor/shutters{ - dir = 8; - name = "Cargo Bay"; - id = "Ranger_Cargo_Door" - }, /obj/machinery/door/firedoor/border_only{ dir = 8 }, /obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 10 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 8; + name = "Cargo Bay"; + id = "Ranger_Cargo_Door" + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) "fU" = ( /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/tech/airless, +/obj/effect/turf_decal/techfloor/hole/right, +/turf/open/floor/plasteel/tech, /area/ship/engineering/communications) "fV" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/security) +"gd" = ( +/obj/structure/sign/nanotrasen/vigilitas, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/port) "gg" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/crew/toilet) "gh" = ( -/obj/structure/chair/comfy/blue/directional/east, -/obj/item/toy/plush/moth/lovers, /obj/item/radio/intercom/directional/north, -/turf/open/floor/circuit/green/airless, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/obj/item/wrench, +/obj/item/screwdriver, +/obj/item/stack/cable_coil/cyan, +/obj/item/stack/sheet/rglass{ + amount = 25 + }, +/obj/item/aicard, +/turf/open/floor/circuit, /area/ship/engineering/communications) "gi" = ( -/obj/machinery/light_switch{ - pixel_x = 8; - pixel_y = 22 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 6 }, /obj/effect/turf_decal/siding/red{ dir = 1 }, -/obj/machinery/camera/autoname, -/turf/open/floor/mineral/plastitanium/red/brig, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/plasteel/tech, /area/ship/security) "gk" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/firedoor/window, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plating, +/obj/machinery/door/poddoor/preopen{ + dir = 4; + name = "Intelligence Core"; + id = "AiCore" + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/machinery/door/airlock/engineering/glass{ + dir = 4; + name = "Intelligence Core"; + req_access_txt = "10" + }, +/turf/open/floor/plasteel/tech, /area/ship/engineering/communications) +"gr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "RangerCryoShutters"; + name = "Cryogenic Storage" + }, +/obj/machinery/button/door{ + pixel_x = -21; + dir = 4; + pixel_y = 3; + name = "Cryogenics Access"; + id = "RangerCryoShutters" + }, +/turf/open/floor/plasteel/stairs{ + color = "#8A9397" + }, +/area/ship/crew/cryo) "gz" = ( /obj/machinery/camera/autoname{ dir = 9 @@ -610,7 +864,7 @@ /obj/effect/turf_decal/industrial/outline/blue, /obj/structure/closet/crate/trashcart, /obj/item/storage/bag/trash, -/turf/open/floor/plating, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) "gD" = ( /obj/structure/cable/cyan{ @@ -619,12 +873,17 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 6 }, -/obj/effect/decal/cleanable/vomit/old, +/obj/effect/decal/cleanable/vomit/old{ + color = "#30b7e5"; + name = "blueish dried vomit" + }, +/obj/item/broken_bottle{ + pixel_x = -10 + }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "gG" = ( /obj/effect/turf_decal/corner/opaque/blue/diagonal, -/obj/machinery/door/airlock/medical/glass, /obj/structure/cable{ icon_state = "1-2" }, @@ -634,13 +893,13 @@ dir = 1 }, /obj/machinery/door/firedoor/border_only, +/obj/machinery/door/airlock/medical{ + name = "Medical Bay" + }, /turf/open/floor/plasteel/white, /area/ship/medical) "gL" = ( -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/outline/yellow, +/obj/structure/crate_shelf, /turf/open/floor/plasteel/tech, /area/ship/cargo) "gN" = ( @@ -655,16 +914,18 @@ /turf/open/floor/plating, /area/ship/engineering) "gT" = ( -/obj/structure/cable{ - icon_state = "2-5" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 10 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 10 }, -/obj/effect/turf_decal/siding/blue, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/siding/blue{ + dir = 6 + }, /turf/open/floor/plasteel/white, /area/ship/medical) "gW" = ( @@ -676,14 +937,21 @@ dir = 8 }, /obj/item/radio/intercom/directional/west, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "hf" = ( -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/dark, +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "CellHallShutters"; + name = "Holding Cell Hall Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, /area/ship/security) "hk" = ( /obj/structure/cable{ @@ -699,7 +967,7 @@ /obj/structure/cable{ icon_state = "1-10" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "hl" = ( /obj/structure/cable/cyan{ @@ -708,35 +976,42 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 5 }, +/obj/effect/decal/cleanable/plasma, /turf/open/floor/plating, /area/ship/maintenance/port) "hn" = ( -/obj/effect/turf_decal/corner/opaque/orange/full, -/obj/structure/railing/corner, /obj/structure/cable{ icon_state = "1-8" }, -/obj/effect/turf_decal/siding/yellow, +/obj/effect/decal/cleanable/oil, +/obj/effect/turf_decal/spline/fancy/opaque/orange, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, /turf/open/floor/plasteel/tech, /area/ship/engineering) "hp" = ( -/obj/structure/railing{ - dir = 4 - }, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, +/obj/effect/turf_decal/industrial/outline/orange, +/obj/effect/decal/cleanable/plasma, +/obj/machinery/portable_atmospherics/pump, /turf/open/floor/plasteel/tech, -/area/ship/cargo) +/area/ship/maintenance/port) "hx" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/under/rank/security/head_of_security/alt/skirt/lp, +/obj/item/clothing/under/rank/security/head_of_security/alt/lp, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/suit/jacket/miljacket, +/obj/item/storage/backpack/messenger/com, +/obj/item/storage/backpack/satchel/cap, +/obj/item/storage/backpack/captain, +/obj/item/storage/backpack/duffelbag/captain, +/obj/item/storage/backpack/ert, /obj/machinery/airalarm/directional/south, -/obj/effect/turf_decal/siding/wood, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, +/obj/item/clothing/head/nanotrasen/beret/security/command, +/obj/item/clothing/suit/armor/nanotrasen/sec_director, /turf/open/floor/wood, -/area/ship/crew/dorm) +/area/ship/crew/dorm/captain) "hz" = ( /obj/docking_port/mobile{ dir = 2; @@ -746,12 +1021,8 @@ /obj/machinery/camera/autoname, /obj/machinery/light/floor, /turf/open/floor/engine/hull, -/area/ship/external) +/area/ship/external/dark) "hF" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable{ - icon_state = "0-2" - }, /turf/open/floor/plasteel/dark, /area/ship/bridge) "hJ" = ( @@ -761,22 +1032,23 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 8 - }, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "hK" = ( /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor/window, /obj/machinery/door/poddoor/shutters{ id = "Engineering_Specialist_Shutters"; - dir = 4 + dir = 4; + name = "Communications Shutters" }, -/obj/machinery/door/firedoor/window, +/obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, /area/ship/engineering) "hN" = ( @@ -785,33 +1057,34 @@ }, /obj/machinery/light/floor, /turf/open/floor/engine/hull, -/area/ship/external) +/area/ship/external/dark) "hQ" = ( +/obj/machinery/door/window/survival_pod{ + dir = 4; + opacity = 1; + req_access_txt = "1"; + name = "Security Specialist Quarters"; + req_ship_access = 1 + }, /turf/open/floor/plasteel/stairs/wood{ dir = 8 }, /area/ship/security) "hZ" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp/green{ - pixel_x = 5; - pixel_y = 13; - layer = 4.2 - }, -/obj/effect/turf_decal/siding/wood/end{ - dir = 1 +/obj/machinery/camera/autoname{ + dir = 4 }, -/obj/item/toy/plush/moth/deadhead{ - pixel_x = -7; - layer = 4.3 +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 6 }, -/turf/open/floor/wood, -/area/ship/engineering) +/turf/open/floor/plasteel/lightgrey, +/area/ship/hallway/central) "ib" = ( /obj/structure/cable/cyan{ icon_state = "5-10" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/oil, /turf/open/floor/plating, /area/ship/maintenance/starboard) "id" = ( @@ -833,6 +1106,12 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "ih" = ( @@ -851,7 +1130,7 @@ pixel_x = 7; pixel_y = -20 }, -/turf/open/floor/plating, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) "iq" = ( /obj/effect/turf_decal/industrial/warning{ @@ -859,25 +1138,35 @@ }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /obj/machinery/firealarm/directional/east, +/obj/effect/spawner/lootdrop/waste/trash, +/obj/effect/decal/cleanable/plasma, /turf/open/floor/plating, /area/ship/maintenance/port) +"iv" = ( +/turf/open/floor/plasteel/lightgrey, +/area/ship/hallway/central) "ix" = ( -/obj/structure/table/greyscale, +/obj/machinery/camera/autoname, /obj/effect/turf_decal/siding/blue{ - dir = 1 + dir = 5 }, -/obj/item/storage/firstaid/medical{ - pixel_y = 7; - pixel_x = -2 +/obj/item/storage/firstaid/toxin{ + pixel_x = 4; + pixel_y = -3 }, /obj/item/storage/firstaid/o2{ pixel_x = 1; pixel_y = 2 }, -/obj/item/storage/firstaid/toxin{ - pixel_x = 4; - pixel_y = -3 +/obj/item/storage/firstaid/medical{ + pixel_y = 7; + pixel_x = -2 }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/table/reinforced, /turf/open/floor/plasteel/white, /area/ship/medical) "iC" = ( @@ -885,22 +1174,23 @@ dir = 4 }, /obj/effect/decal/cleanable/robot_debris/old, +/obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/ship/maintenance/starboard) "iD" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 }, -/obj/machinery/camera/autoname{ - dir = 10 +/obj/effect/turf_decal/trimline/transparent/white/filled/corner{ + dir = 8 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "iF" = ( /obj/structure/railing{ @@ -914,23 +1204,35 @@ /obj/structure/table/reinforced{ color = "#c1b6a5" }, -/obj/effect/spawner/lootdrop/lpaid{ - pixel_x = -4; +/obj/item/stamp/captain{ + pixel_x = 7 + }, +/obj/item/folder/blue{ + pixel_x = 8; pixel_y = 10 }, -/obj/effect/spawner/lootdrop/lpcombat{ - pixel_y = 6 +/obj/effect/turf_decal/techfloor{ + dir = 10 }, -/obj/effect/spawner/lootdrop/lpretrieval{ - pixel_x = 3; - pixel_y = 1 +/obj/item/clipboard{ + pixel_y = -2; + pixel_x = -7 }, -/turf/open/floor/plasteel/dark, +/obj/item/pen{ + pixel_x = -7; + pixel_y = -1 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "iH" = ( -/obj/structure/bed, -/obj/item/bedsheet/grey, -/turf/open/floor/plasteel/dark, +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 4; + id = "SecCellWindowShutters"; + name = "Brig Cell Window Shutters" + }, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, /area/ship/security) "iI" = ( /obj/structure/closet/emcloset/wall/directional/north, @@ -940,27 +1242,37 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) +"iS" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 9 + }, +/turf/open/floor/plasteel/lightgrey, +/area/ship/hallway/central) "iX" = ( /obj/effect/turf_decal/siding/yellow{ dir = 10 }, /obj/structure/ore_box, -/turf/open/floor/plasteel/dark, +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/computer/helm/viewscreen/directional/east, +/turf/open/floor/plasteel/tech, /area/ship/hallway/port) "iZ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue{ +/obj/effect/turf_decal/corner/opaque/vired{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "jb" = ( /obj/machinery/power/shuttle/engine/fueled/plasma{ @@ -968,30 +1280,61 @@ }, /turf/open/floor/plating, /area/ship/maintenance/port) +"jd" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "CellHallShutters"; + name = "Holding Cell Hall Shutters" + }, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, +/area/ship/security) "ji" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/mopbucket, -/obj/item/mop, -/turf/open/floor/plasteel/white, +/obj/machinery/light/dim/directional/south, +/obj/effect/turf_decal/trimline/transparent/white/filled/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "jj" = ( /obj/machinery/holopad/emergency, -/turf/open/floor/plasteel/dark, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/window/reinforced/survival_pod{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "jk" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/turf_decal/siding/blue/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/blue/corner{ + dir = 8 + }, /turf/open/floor/plasteel/white, /area/ship/medical) "jr" = ( -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/ert/lp/engi, -/obj/item/clothing/mask/breath, -/obj/item/tank/internals/emergency_oxygen, /obj/effect/turf_decal/techfloor{ dir = 8 }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical, +/obj/item/storage/toolbox/electrical{ + pixel_x = 3; + pixel_y = 7 + }, /turf/open/floor/plasteel/mono/dark, /area/ship/engineering) "js" = ( @@ -999,12 +1342,22 @@ /turf/open/floor/plasteel/telecomms_floor, /area/ship/crew/cryo) "jt" = ( -/obj/machinery/autolathe, /obj/effect/turf_decal/techfloor{ dir = 1 }, +/obj/machinery/airalarm/directional/west, +/obj/machinery/computer/atmos_control/external{ + dir = 4; + icon_state = "computer-right" + }, +/obj/machinery/light_switch{ + pixel_y = 23; + name = "External Lighting Switch"; + color = "#efbc43"; + pixel_x = 6 + }, /turf/open/floor/plasteel/mono/dark, -/area/ship/engineering) +/area/ship/external/dark) "jv" = ( /obj/structure/closet/cabinet, /obj/item/clothing/shoes/jackboots, @@ -1016,29 +1369,43 @@ /obj/item/clothing/suit/armor/vest/security/officer, /obj/item/clothing/under/rank/security/head_of_security/alt/lp, /obj/machinery/light/dim/directional/west, +/obj/item/storage/backpack/ert/security, /turf/open/floor/wood, /area/ship/security) "jA" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/hallway/port) "jC" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4{ - dir = 8 +/obj/structure/bed, +/obj/item/bedsheet/nanotrasen, +/obj/item/toy/plush/moth/royal{ + pixel_x = 5; + pixel_y = 1 }, -/turf/open/floor/engine/hull, -/area/ship/external) +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/wood, +/area/ship/crew/dorm/captain) "jF" = ( -/obj/effect/turf_decal/corner/opaque/orange/full, /obj/structure/cable{ icon_state = "1-4" }, /obj/structure/cable{ icon_state = "1-10" }, -/obj/effect/turf_decal/siding/yellow{ - dir = 10 +/obj/structure/table/reinforced, +/obj/item/weldingtool{ + pixel_x = -6 }, -/turf/open/floor/plasteel/tech, +/obj/item/multitool, +/obj/item/t_scanner{ + pixel_x = 7; + pixel_y = 4 + }, +/obj/item/stack/cable_coil/random, +/obj/item/storage/belt/utility, +/turf/open/floor/plasteel/mono/dark, /area/ship/engineering) "jH" = ( /obj/machinery/power/apc/auto_name/directional/north, @@ -1051,8 +1418,12 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) +"jQ" = ( +/obj/structure/sign/nanotrasen/vigilitas, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/starboard) "jZ" = ( /obj/structure/cable{ icon_state = "6-8" @@ -1063,38 +1434,87 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 9 }, -/obj/effect/turf_decal/corner/opaque/brown/mono, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/dark, -/area/ship/storage) +/obj/effect/turf_decal/corner/opaque/vired/three_quarters{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/plasteel/tech, +/area/ship/storage/equip) "kh" = ( /obj/machinery/light_switch{ dir = 1; pixel_x = 7; pixel_y = -20 }, -/obj/item/radio/intercom/directional/west, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/firealarm/directional/south{ + pixel_x = -4 + }, +/obj/effect/turf_decal/corner/opaque/lightgrey{ + dir = 10 + }, +/obj/machinery/computer/cryopod/directional/west, /turf/open/floor/plasteel/dark, /area/ship/crew/cryo) "ks" = ( /obj/effect/decal/cleanable/cobweb, +/obj/machinery/portable_atmospherics/scrubber, +/obj/machinery/camera/autoname, /turf/open/floor/plating, /area/ship/maintenance/port) "kt" = ( -/obj/effect/turf_decal/borderfloorblack, -/turf/open/floor/plasteel/tech/airless, -/area/ship/engineering/communications) +/obj/machinery/light/dim/directional/south, +/obj/machinery/airalarm/directional/east, +/obj/structure/filingcabinet/double{ + dir = 1 + }, +/obj/item/folder/blue{ + pixel_x = 8; + pixel_y = 10 + }, +/obj/item/folder/red{ + pixel_x = -4; + layer = 3.01; + pixel_y = -8 + }, +/obj/item/folder, +/obj/item/pen, +/obj/item/pen{ + pixel_x = 7; + pixel_y = 10 + }, +/obj/item/pen{ + pixel_x = -4; + pixel_y = -6 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/bridge) "kw" = ( +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/firedoor/window, +/obj/machinery/door/poddoor/preopen{ + dir = 4; + name = "Intelligence Core"; + id = "AiCore" + }, +/obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, /area/ship/engineering/communications) "kK" = ( -/obj/structure/table/wood, -/obj/item/storage/box/cups, /obj/machinery/light/dim/directional/south, -/turf/open/floor/plasteel/dark, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/obj/item/cutting_board, +/obj/item/reagent_containers/food/snacks/donkpocket/warm, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "kO" = ( /obj/structure/cable{ @@ -1103,8 +1523,9 @@ /obj/structure/cable{ icon_state = "2-5" }, -/obj/effect/turf_decal/corner/opaque/ntblue, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "kQ" = ( /obj/structure/grille, @@ -1118,8 +1539,8 @@ /area/ship/engineering/communications) "kS" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/turf_decal/siding/blue/corner{ - dir = 4 +/obj/effect/turf_decal/siding/blue{ + dir = 1 }, /turf/open/floor/plasteel/white, /area/ship/medical) @@ -1132,14 +1553,11 @@ dir = 4; railing_color = "#0C119E" }, -/obj/machinery/computer/cryopod/directional/south, +/obj/machinery/recharge_station, /turf/open/floor/plasteel/dark, /area/ship/crew/cryo) "lj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, /obj/machinery/button/door{ dir = 4; pixel_x = -22; @@ -1147,10 +1565,14 @@ id = "Ranger_Cycler_Shutters"; name = "Air Cycler Shutters" }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/structure/chair/handrail{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "lp" = ( /obj/machinery/button/door{ @@ -1158,7 +1580,10 @@ pixel_y = 6; pixel_x = 22; id = "Ranger_FireFighting_Shut"; - name = "Shutters" + name = "Ready Room"; + req_ship_access = 1; + req_one_access_txt = "50,10,5,1,20"; + req_one_access = list(50, 10, 5, 1, 20) }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 @@ -1166,89 +1591,98 @@ /obj/machinery/camera/autoname{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, -/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner{ +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/trimline/opaque/vired/filled/corner{ dir = 4 }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "lv" = ( -/obj/effect/decal/cleanable/insectguts, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/warning{ + dir = 1 + }, +/obj/effect/turf_decal/siding{ + color = "#474747"; + dir = 1 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) "lw" = ( -/obj/machinery/airalarm/directional/north, -/obj/structure/closet/crate/large, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 9 + }, +/obj/structure/fluff/hedge/opaque, +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) "lB" = ( /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "lD" = ( /obj/structure/cable{ icon_state = "1-4" }, -/obj/machinery/camera/autoname{ - dir = 5 - }, /turf/open/floor/plasteel/stairs{ - dir = 1 + dir = 1; + color = "#a8b2b6" }, /area/ship/bridge) "lL" = ( +/obj/structure/cable{ + icon_state = "2-9" + }, /obj/effect/turf_decal/siding/blue{ - dir = 1 + dir = 5 }, /turf/open/floor/plasteel/white, /area/ship/medical) "lU" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, /obj/machinery/light_switch{ dir = 4; pixel_x = -21; pixel_y = 7 }, +/obj/structure/crate_shelf, /turf/open/floor/plasteel/tech, /area/ship/cargo) "lW" = ( -/obj/effect/turf_decal/steeldecal/steel_decals9, -/obj/effect/turf_decal/steeldecal/steel_decals9{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/obj/item/radio/intercom/wideband/directional/south, +/obj/effect/turf_decal/techfloor, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "lX" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/orange/full, -/obj/effect/turf_decal/siding/yellow, -/obj/structure/railing{ - dir = 2; - layer = 4.1 +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 6 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 5 }, -/obj/effect/turf_decal/siding/yellow, /turf/open/floor/plasteel/tech, /area/ship/engineering) "mh" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, /obj/machinery/light/floor, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "ml" = ( /obj/structure/cable{ @@ -1259,46 +1693,46 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/ntblue/half, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "mn" = ( -/obj/structure/table/reinforced{ - color = "#c1b6a5" - }, -/obj/item/modular_computer/laptop/preset/civilian, /obj/machinery/light/dim/directional/north, -/turf/open/floor/plasteel/dark, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/item/computer_hardware/card_slot, +/obj/machinery/modular_computer/console/preset/research{ + name = "modular console" + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "mv" = ( -/obj/item/radio/intercom/directional/north, /obj/effect/turf_decal/siding/wood{ - dir = 1 + dir = 8 }, -/mob/living/simple_animal/pet/dog/corgi/Lisa, -/obj/structure/bed/dogbed, /turf/open/floor/wood, -/area/ship/crew/dorm) +/area/ship/crew/dorm/captain) "mw" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/light/dim/directional/west, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "my" = ( -/obj/structure/urinal{ - pixel_y = 29 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plastic, -/area/ship/crew/toilet) +/obj/machinery/light/dim/directional/east, +/obj/effect/turf_decal/borderfloorblack, +/obj/structure/bed, +/obj/item/bedsheet, +/turf/open/floor/plasteel/tech, +/area/ship/security) "mJ" = ( -/obj/machinery/portable_atmospherics/pump, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/machinery/light_switch{ dir = 4; @@ -1308,13 +1742,37 @@ /obj/machinery/camera/autoname{ dir = 4 }, -/turf/open/floor/plasteel/tech, -/area/ship/storage) +/obj/effect/turf_decal/industrial/fire{ + dir = 1 + }, +/obj/structure/closet/crate/secure/gear{ + name = "Ammunition Crate" + }, +/obj/structure/chair/handrail{ + dir = 4 + }, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/c9mm/rubbershot, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/c9mm, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 10 + }, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/plasteel/lightgrey, +/area/ship/storage/equip) "mQ" = ( /obj/structure/cable{ icon_state = "2-4" }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/lightgrey{ + dir = 10 + }, /turf/open/floor/plasteel/dark, /area/ship/crew/cryo) "nh" = ( @@ -1322,38 +1780,43 @@ dir = 1 }, /obj/effect/turf_decal/siding/red, -/obj/machinery/door/window/brigdoor{ - req_ship_access = 1; - req_access_txt = "1"; - id = "ranger_brig"; - name = "Holding Cell Door" +/obj/effect/turf_decal/siding/red{ + dir = 6 }, -/turf/open/floor/mineral/plastitanium/red/brig, +/turf/open/floor/plasteel/tech, /area/ship/security) "no" = ( /obj/structure/cable{ icon_state = "6-8" }, -/obj/structure/chair/wood{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) +"nq" = ( +/obj/structure/grille, +/obj/machinery/door/firedoor/window, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "SecShutters"; + name = "Security Specialist's Office" + }, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, +/area/ship/security) "nA" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "nE" = ( /obj/machinery/button/door{ dir = 2; pixel_x = -2; - name = "Blast Doors"; + name = "Access Blast Doors"; id = "Ranger_AI_Core_Blasts"; - pixel_y = 22 + pixel_y = 22; + req_access_txt = "10" }, /obj/machinery/button/shieldwallgen{ dir = 2; @@ -1361,7 +1824,14 @@ pixel_y = 20; id = "AI_Core_Field_Engi" }, -/turf/open/floor/plasteel/tech/airless, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/machinery/recharge_station, +/turf/open/floor/plasteel/tech, /area/ship/engineering/communications) "nJ" = ( /obj/structure/cable/cyan{ @@ -1383,12 +1853,11 @@ /turf/open/floor/plating, /area/ship/maintenance/port) "of" = ( -/obj/machinery/light/dim/directional/south, /obj/structure/cable{ icon_state = "1-4" }, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "og" = ( /obj/structure/railing{ @@ -1398,12 +1867,22 @@ dir = 8; icon_state = "computer-right" }, -/turf/open/floor/plasteel/dark, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "oi" = ( -/obj/structure/railing/corner{ +/obj/effect/turf_decal/siding/blue{ dir = 8 }, +/obj/structure/chair/office{ + dir = 4; + name = "tactical swivel chair" + }, /turf/open/floor/plasteel/white, /area/ship/medical) "ok" = ( @@ -1413,13 +1892,23 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/door/poddoor{ + dir = 4; + id = "Ranger_Cycler_Shutters"; + name = "Air Cycler Lockdown" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/tech/techmaint{ + color = "#a8b2b6" + }, /area/ship/hallway/central) "oq" = ( /obj/structure/cable/cyan{ @@ -1428,16 +1917,38 @@ /turf/open/floor/plating, /area/ship/maintenance/starboard) "or" = ( +/obj/item/bodypart/leg/right/robot, +/obj/item/bodypart/r_arm/robot, +/obj/item/bodypart/leg/left/robot, +/obj/item/bodypart/l_arm/robot, +/obj/item/bodypart/chest/robot, +/obj/item/bodypart/head/robot, +/obj/item/borg/upgrade/ai, +/obj/item/robot_suit, +/obj/structure/closet/crate/engineering{ + name = "Robotics Crate" + }, +/obj/item/stock_parts/cell/high, +/obj/item/assembly/flash/handheld, +/obj/item/assembly/flash/handheld, +/obj/item/borg/upgrade/restart, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /turf/open/floor/plating, /area/ship/engineering) "ox" = ( /obj/structure/chair/sofa/brown/corner/directional/south, /obj/machinery/light/dim/directional/east, -/turf/open/floor/plasteel/dark, +/obj/item/ammo_casing/spent{ + pixel_x = 13; + desc = "A spent bullet-casing that someone hid behind the couch, likely to avoid the Lieutenant's ire." + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "oz" = ( -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "oI" = ( /obj/machinery/power/smes/shuttle/precharged{ @@ -1446,37 +1957,33 @@ /obj/machinery/door/window/northleft{ dir = 4 }, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "Ranger_Port_maint_shut" - }, /obj/structure/cable/yellow{ icon_state = "0-8" }, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "Ranger_Port_maint_shut"; + name = "Engine Shutters" + }, /turf/open/floor/plating, /area/ship/maintenance/port) -"oM" = ( -/obj/machinery/door/window/eastleft{ - dir = 2 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/turf/open/floor/plastic, -/area/ship/crew/toilet) "oQ" = ( /obj/item/radio/intercom/directional/west, +/obj/machinery/camera/autoname{ + dir = 4 + }, /turf/open/floor/wood, /area/ship/medical) "pa" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "pf" = ( /obj/structure/closet/emcloset/wall/directional/south, @@ -1484,39 +1991,72 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "pi" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/turf_decal/corner/opaque/ntblue/three_quarters{ +/obj/effect/turf_decal/corner/opaque/vired/three_quarters{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/structure/table/rolling, +/obj/item/chair/plastic, +/obj/item/chair/plastic{ + pixel_y = 4 + }, +/obj/item/chair/plastic{ + pixel_y = 6 + }, +/obj/item/chair/plastic{ + pixel_y = 10 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "pn" = ( /obj/structure/chair/wood, /obj/item/toy/figure/assistant{ layer = 3.1 }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/molten_object{ + pixel_x = 10 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "pp" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 13; - pixel_y = 2 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 }, -/obj/structure/mirror{ - pixel_x = 24 +/obj/structure/window/reinforced/tinted, +/obj/structure/dresser{ + dir = 1 + }, +/obj/structure/bedsheetbin/empty{ + pixel_y = 7 + }, +/obj/item/towel{ + pixel_y = 10 + }, +/obj/item/towel{ + pixel_y = 10 }, -/turf/open/floor/plastic, +/obj/item/towel{ + pixel_y = 10 + }, +/obj/item/towel{ + pixel_y = 10 + }, +/obj/item/towel{ + pixel_y = 10 + }, +/turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) "ps" = ( -/obj/structure/closet/secure_closet/lp/engineer, /obj/machinery/light/dim/directional/north, /obj/item/clothing/gloves/color/yellow{ pixel_y = -9 @@ -1551,10 +2091,19 @@ /obj/item/clothing/head/welding{ pixel_y = -9 }, -/obj/item/clothing/glasses/meson/gar{ - pixel_y = 8 +/obj/item/clothing/glasses/meson/engine, +/obj/item/clothing/glasses/hud/diagnostic, +/obj/item/pipe_dispenser, +/obj/effect/turf_decal/techfloor{ + dir = 4 }, +/obj/structure/closet/secure_closet/lp/engineer, /obj/item/gun/energy/plasmacutter, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 19; + pixel_y = -10 + }, /turf/open/floor/plasteel/mono/dark, /area/ship/engineering) "pA" = ( @@ -1562,56 +2111,68 @@ icon_state = "1-2" }, /turf/open/floor/plasteel/stairs{ - dir = 1 + dir = 1; + color = "#a8b2b6" }, /area/ship/bridge) "pD" = ( +/obj/structure/closet/crate/secure/loot, /turf/open/floor/plasteel/tech, /area/ship/cargo) "pL" = ( /obj/structure/chair/comfy/blue/directional/east, -/obj/item/toy/plush/moth/royal, +/obj/item/toy/plush/moth/royal{ + layer = 3.05; + pixel_x = -6; + pixel_y = 11 + }, /obj/item/radio/intercom/wideband/directional/south, -/turf/open/floor/circuit/green/airless, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/item/toy/plush/moth/lovers{ + layer = 3.05; + pixel_x = 4 + }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "pU" = ( /obj/machinery/camera/autoname{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "qb" = ( /obj/item/radio/intercom/directional/south, /obj/effect/turf_decal/industrial/outline/blue, -/obj/structure/janitorialcart{ - dir = 4 - }, -/obj/item/mop, -/turf/open/floor/plating, +/obj/structure/reagent_dispensers/foamtank, +/obj/item/extinguisher/advanced, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/port) "qe" = ( -/obj/structure/urinal{ - pixel_y = 29 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/structure/girder/reinforced, +/obj/machinery/camera/autoname{ dir = 6 }, -/turf/open/floor/plastic, -/area/ship/crew/toilet) -"qs" = ( -/obj/machinery/power/shuttle/engine/electric{ - dir = 4 +/turf/open/floor/engine/hull, +/area/ship/external/dark) +"qn" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 }, +/obj/structure/bed/dogbed, +/mob/living/simple_animal/pet/dog/corgi/Lisa, +/turf/open/floor/wood, +/area/ship/crew/dorm/captain) +"qs" = ( /obj/structure/cable/yellow{ icon_state = "0-4" }, +/obj/machinery/power/shuttle/engine/electric/premium, /turf/open/floor/plating, /area/ship/maintenance/starboard) "qQ" = ( @@ -1621,10 +2182,6 @@ /turf/open/floor/plating, /area/ship/maintenance/starboard) "qR" = ( -/obj/machinery/door/airlock/security/glass, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/door/firedoor/border_only{ @@ -1632,6 +2189,13 @@ }, /obj/machinery/door/firedoor/border_only, /obj/effect/turf_decal/corner/opaque/red/full, +/obj/machinery/door/airlock/security{ + name = "Security Specialist's Office"; + req_access_txt = "1" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel/dark, /area/ship/security) "qS" = ( @@ -1640,38 +2204,55 @@ }, /obj/effect/decal/cleanable/oil/streak, /obj/machinery/light/dim/directional/north, +/obj/machinery/portable_atmospherics/scrubber, /turf/open/floor/plating, /area/ship/maintenance/port) "qZ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/corner/opaque/brown/mono, -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/ship/storage) +/obj/machinery/holopad, +/turf/open/floor/plasteel/tech, +/area/ship/storage/equip) "rg" = ( -/obj/machinery/portable_atmospherics/scrubber, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/plasteel/tech, -/area/ship/storage) +/obj/effect/turf_decal/industrial/fire{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/plasteel/lightgrey, +/area/ship/storage/equip) "rq" = ( /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel/stairs, +/turf/open/floor/plasteel/stairs{ + color = "#8A9397" + }, /area/ship/crew/cryo) +"rw" = ( +/obj/machinery/camera/autoname{ + dir = 5 + }, +/obj/machinery/light/floor, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "rA" = ( -/obj/effect/turf_decal/corner/opaque/orange/full, /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/siding/yellow, -/obj/machinery/holopad, -/turf/open/floor/plasteel/tech, -/area/ship/engineering) -"rC" = ( +/obj/structure/chair/office{ + dir = 8; + name = "tactical swivel chair" + }, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/tech, +/area/ship/engineering) +"rC" = ( /obj/structure/cable{ icon_state = "1-2" }, @@ -1693,31 +2274,31 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "rM" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/corner/opaque/orange/border{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/orange/arrow_cw{ +/obj/effect/turf_decal/trimline/opaque/vired/arrow_cw{ dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/starboard) "rT" = ( -/obj/structure/reagent_dispensers/water_cooler, /obj/machinery/light_switch{ dir = 1; pixel_x = -7; pixel_y = -19 }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/structure/closet/secure_closet/freezer/fridge, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "rW" = ( /obj/machinery/power/smes/shuttle/precharged{ @@ -1728,7 +2309,8 @@ }, /obj/machinery/door/poddoor/shutters{ dir = 4; - id = "Ranger_SB_maint_shut" + id = "Ranger_SB_maint_shut"; + name = "Engine Shutters" }, /obj/structure/cable/yellow{ icon_state = "0-8" @@ -1736,21 +2318,20 @@ /turf/open/floor/plating, /area/ship/maintenance/starboard) "rX" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 8 +/obj/structure/railing{ + dir = 5; + layer = 4.1 }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable{ - icon_state = "0-2" +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/white, +/obj/structure/closet/firecloset/wall/directional/west, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "rZ" = ( /obj/effect/turf_decal/atmos/air, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 }, /turf/open/floor/engine/air, /area/ship/hallway/central) @@ -1763,13 +2344,28 @@ color = "#c1b6a5" }, /obj/machinery/fax/nanotrasen, -/turf/open/floor/plasteel/dark, +/obj/machinery/camera/autoname{ + dir = 6 + }, +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/obj/machinery/button/door{ + pixel_y = 21; + id = "BridgeAtrium"; + name = "Atrium Shutters"; + pixel_x = 9 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "sl" = ( -/obj/effect/turf_decal/borderfloorblack{ - dir = 8 +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 9 }, -/turf/open/floor/plasteel/tech/airless, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "sm" = ( /obj/structure/cable{ @@ -1782,8 +2378,14 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plating, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/port) +"sp" = ( +/obj/machinery/camera/autoname, +/obj/machinery/light/floor, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "sw" = ( /obj/structure/cable{ icon_state = "6-8" @@ -1794,10 +2396,9 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "sF" = ( -/obj/structure/table/greyscale, /obj/item/storage/box/syringes{ pixel_y = 10; pixel_x = -5 @@ -1813,28 +2414,51 @@ pixel_x = 5 }, /obj/machinery/light/dim/directional/north, +/obj/structure/table/reinforced, +/obj/machinery/airalarm/directional/west, /turf/open/floor/plasteel/white, /area/ship/medical) "sJ" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/hallway/central) "sR" = ( -/obj/structure/table/wood, /obj/machinery/light/dim/directional/south, /obj/effect/turf_decal/siding/red/end, -/obj/item/toy/plush/spider, -/turf/open/floor/mineral/plastitanium/red/brig, +/obj/machinery/computer/security/telescreen{ + dir = 1; + pixel_y = -32; + network = list("ss13") + }, +/obj/machinery/airalarm/directional/west, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/plasteel/tech, /area/ship/security) "sU" = ( -/obj/structure/table/greyscale, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable{ - icon_state = "0-10" +/obj/effect/turf_decal/industrial/warning{ + dir = 9 }, -/obj/effect/turf_decal/siding/blue{ - dir = 5 +/obj/effect/turf_decal/siding/thinplating/light{ + dir = 9 + }, +/obj/effect/turf_decal/borderfloorwhite/corner, +/obj/structure/sink{ + dir = 8; + pixel_x = 12; + pixel_y = 4 + }, +/obj/machinery/button/door{ + pixel_x = 26; + dir = 8; + name = "Medical Shutters"; + id = "MedShutters"; + req_ship_access = 1; + req_access_txt = "5" + }, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 25; + pixel_y = -9 }, -/obj/item/defibrillator/loaded, /turf/open/floor/plasteel/white, /area/ship/medical) "tb" = ( @@ -1865,20 +2489,20 @@ /obj/structure/cable{ icon_state = "4-10" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "tg" = ( -/obj/machinery/power/shuttle/engine/electric{ - dir = 4 - }, /obj/structure/cable/yellow{ icon_state = "0-4" }, +/obj/machinery/power/shuttle/engine/electric/premium, /turf/open/floor/plating, /area/ship/maintenance/port) "tj" = ( /obj/machinery/door/airlock/command{ - dir = 4 + dir = 4; + name = "Bridge"; + req_one_access_txt = list(50, 10, 5, 1, 20) }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 @@ -1898,8 +2522,10 @@ /turf/open/floor/plasteel/dark, /area/ship/bridge) "tk" = ( -/obj/effect/turf_decal/corner/opaque/orange/full, -/obj/effect/turf_decal/siding/yellow, +/obj/machinery/light/dim/directional/east, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ + dir = 6 + }, /turf/open/floor/plasteel/tech, /area/ship/engineering) "tq" = ( @@ -1921,7 +2547,10 @@ dir = 8; icon_state = "computer-left" }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/techfloor{ + dir = 5 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "tQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, @@ -1931,49 +2560,63 @@ /obj/effect/turf_decal/siding/red{ dir = 1 }, -/obj/structure/cable{ - icon_state = "1-6" +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/effect/turf_decal/siding/red{ + dir = 5 }, -/turf/open/floor/mineral/plastitanium/red/brig, +/obj/machinery/light_switch{ + pixel_x = 20; + pixel_y = 11; + dir = 8 + }, +/turf/open/floor/plasteel/tech, /area/ship/security) "tR" = ( /obj/structure/cable{ icon_state = "4-9" }, /obj/machinery/light/dim/directional/south, -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "tT" = ( -/turf/open/floor/plasteel/tech/airless, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/obj/effect/turf_decal/spline/fancy/opaque/black, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "tZ" = ( /obj/machinery/button/door{ dir = 4; pixel_x = -21; name = "Shutters"; - id = "Ranger_SB_maint_shut" + id = "Ranger_SB_maint_shut"; + req_ship_access = 1; + pixel_y = 5 }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "uk" = ( -/obj/item/clothing/suit/space/eva, -/obj/item/clothing/head/helmet/space/eva, /obj/item/clothing/mask/breath, -/obj/structure/closet/emcloset/empty{ - name = "emergency EVA gear" - }, /obj/item/tank/internals/emergency_oxygen, /obj/effect/turf_decal/siding/yellow{ dir = 5 }, -/turf/open/floor/plasteel/dark, +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/obj/machinery/suit_storage_unit/inherit{ + name = "Emergency EVA Suit" + }, +/obj/item/clothing/suit/space/fragile, +/obj/item/clothing/head/helmet/space/fragile, +/turf/open/floor/plasteel/tech, /area/ship/hallway/starboard) "up" = ( -/obj/effect/turf_decal/corner/opaque/orange/full, /obj/machinery/airalarm/directional/north, /obj/structure/cable{ icon_state = "2-4" @@ -1981,10 +2624,11 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/machinery/holopad, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ + dir = 1 }, -/obj/effect/turf_decal/siding/yellow{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 1 }, /turf/open/floor/plasteel/tech, @@ -1993,7 +2637,20 @@ /obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/obj/machinery/camera/autoname{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1; + color = "#a8b2b6" + }, +/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw, +/turf/open/floor/plasteel/tech/techmaint{ + color = "#a8b2b6" + }, /area/ship/hallway/central) "ux" = ( /obj/machinery/light/dim/directional/south, @@ -2003,9 +2660,13 @@ name = "Nanotrasen relay"; network = "nt_commnet" }, -/turf/open/floor/circuit/telecomms{ - initial_gas_mix = "TEMP=2.7" +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/camera/autoname{ + dir = 10 }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "uE" = ( /obj/structure/cable{ @@ -2014,22 +2675,25 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "uH" = ( -/obj/machinery/door/airlock/public/glass, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/door/firedoor/border_only, /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/machinery/door/poddoor/shutters/preopen{ + name = "Corridor Lockdown Port"; + id = "RangerPortShutters" + }, +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "uW" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -2039,27 +2703,30 @@ dir = 4 }, /obj/effect/turf_decal/siding/blue, -/obj/machinery/iv_drip, +/obj/machinery/holopad, /turf/open/floor/plasteel/white, /area/ship/medical) "vh" = ( /obj/effect/turf_decal/corner/opaque/blue/diagonal, -/obj/machinery/door/window, +/obj/machinery/door/window{ + req_ship_access = 1; + name = "Surgical Compartment" + }, +/obj/effect/turf_decal/borderfloorwhite{ + dir = 1 + }, /turf/open/floor/plasteel/white, /area/ship/medical) "vj" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/camera/autoname{ - dir = 4 +/obj/structure/cable{ + icon_state = "2-9" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "vk" = ( /obj/structure/sink{ @@ -2074,11 +2741,36 @@ pixel_x = -7; pixel_y = 21 }, -/turf/open/floor/plastic, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/item/towel{ + pixel_x = 10; + pixel_y = 14 + }, +/obj/item/towel{ + pixel_x = -7; + pixel_y = 14 + }, +/obj/structure/railing{ + dir = 1; + name = "towel holder" + }, +/turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) "vm" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/medical) +"vo" = ( +/obj/structure/crate_shelf, +/obj/structure/sign/nanotrasen/ns{ + pixel_x = 32 + }, +/obj/machinery/camera/autoname{ + dir = 10 + }, +/turf/open/floor/plasteel/tech, +/area/ship/cargo) "vp" = ( /obj/effect/turf_decal/steeldecal/steel_decals10{ dir = 5 @@ -2086,47 +2778,76 @@ /obj/effect/turf_decal/steeldecal/steel_decals10{ dir = 6 }, -/turf/open/floor/plasteel/dark, +/obj/structure/cable{ + icon_state = "4-10" + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "vr" = ( /obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/manifold/cyan/visible, /turf/open/floor/engine/air, /area/ship/hallway/central) "vv" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/reagent_dispensers/fueltank, +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/decal/cleanable/oil, /turf/open/floor/plating, /area/ship/maintenance/starboard) "vz" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/machinery/light/dim/directional/south, +/obj/structure/closet/crate/hydroponics{ + name = "Sustenance Crate" + }, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/storage/ration/assorted_salted_offal, +/obj/item/storage/ration/battered_fish_sticks, +/obj/item/storage/ration/beef_goulash, +/obj/item/storage/ration/beef_strips, +/obj/item/storage/ration/fried_fish, +/obj/machinery/airalarm/directional/south, /turf/open/floor/plasteel/tech, /area/ship/cargo) "vB" = ( -/obj/machinery/cryopod, /obj/machinery/camera/autoname, +/obj/machinery/cryopod, /turf/open/floor/plasteel/telecomms_floor, /area/ship/crew/cryo) "vF" = ( -/obj/effect/turf_decal/siding/blue, -/obj/structure/closet/crate/freezer/blood, -/obj/structure/railing{ - dir = 8; - layer = 4.1 +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/machinery/door/window/survival_pod{ + dir = 4; + opacity = 1; + name = "Medical Specialist's Quarters"; + req_access_txt = "5"; + req_ship_access = 1 + }, +/turf/open/floor/plasteel/stairs/wood{ + dir = 8 }, -/turf/open/floor/plasteel/white, /area/ship/medical) "vO" = ( -/turf/open/floor/circuit/green/airless, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "vR" = ( -/obj/machinery/light/dim/directional/south, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 5 }, @@ -2136,15 +2857,16 @@ /obj/effect/turf_decal/industrial/warning/corner{ dir = 1 }, -/turf/open/floor/plasteel/white, +/obj/machinery/light/dim/directional/west, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "vS" = ( -/obj/structure/table/optable, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 5 }, -/obj/effect/turf_decal/siding/blue, -/obj/item/storage/backpack/duffelbag/med/surgery, +/obj/effect/turf_decal/siding/blue{ + dir = 10 + }, /turf/open/floor/plasteel/white, /area/ship/medical) "vT" = ( @@ -2166,20 +2888,23 @@ /obj/machinery/door/firedoor/border_only{ dir = 4 }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, /turf/open/floor/plating, /area/ship/maintenance/port) "vV" = ( +/obj/effect/turf_decal/corner/opaque/blue/diagonal, /obj/structure/window/reinforced/spawner{ - dir = 4 + dir = 8 }, -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/ert/lp/med, -/obj/item/clothing/mask/breath, -/obj/machinery/camera/autoname, -/obj/effect/turf_decal/siding/blue{ - dir = 5 +/obj/effect/turf_decal/borderfloorwhite{ + dir = 4 }, -/obj/item/tank/internals/emergency_oxygen, +/obj/machinery/computer/operating, /turf/open/floor/plasteel/white, /area/ship/medical) "wc" = ( @@ -2189,25 +2914,27 @@ /obj/machinery/door/window/northright{ dir = 4 }, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "Ranger_Port_maint_shut" - }, /obj/structure/cable/yellow{ icon_state = "0-8" }, -/turf/open/floor/plating, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "Ranger_Port_maint_shut"; + name = "Engine Shutters" + }, +/turf/open/floor/plating, /area/ship/maintenance/port) "wf" = ( -/obj/machinery/telecomms/receiver/preset_right{ - autolinkers = list("receiverB","hub"); - freq_listening = list(1353,1447,1459); - network = "nt_commnet" - }, -/turf/open/floor/circuit/telecomms{ - initial_gas_mix = "TEMP=2.7" +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20; + pixel_y = 12 }, -/area/ship/engineering/communications) +/obj/machinery/photocopier, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/bridge) "wh" = ( /obj/machinery/power/shieldwallgen/atmos/roundstart{ dir = 4; @@ -2224,57 +2951,66 @@ /turf/open/floor/plasteel, /area/ship/hallway/starboard) "wp" = ( -/obj/item/clothing/suit/space/eva, -/obj/item/clothing/head/helmet/space/eva, /obj/item/clothing/mask/breath, /obj/item/tank/internals/emergency_oxygen, -/obj/structure/closet/emcloset/empty{ - name = "emergency EVA gear" - }, /obj/effect/turf_decal/siding/yellow{ dir = 6 }, -/turf/open/floor/plasteel/dark, +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/obj/machinery/suit_storage_unit/inherit{ + name = "Emergency EVA Suit" + }, +/obj/item/clothing/suit/space/fragile, +/obj/item/clothing/head/helmet/space/fragile, +/turf/open/floor/plasteel/tech, /area/ship/hallway/port) "wq" = ( /turf/open/floor/engine/hull, -/area/ship/external) +/area/ship/external/dark) "wu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 9 }, -/obj/effect/turf_decal/corner/opaque/brown/mono, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/dark, -/area/ship/storage) -"ww" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/stand_clear{ - dir = 1 - }, +/obj/effect/turf_decal/corner/opaque/vired/half, +/obj/effect/turf_decal/siding/thinplating/dark, /turf/open/floor/plasteel/tech, -/area/ship/cargo) +/area/ship/storage/equip) +"ww" = ( +/obj/machinery/light/dim/directional/west, +/obj/structure/chair/handrail, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "wC" = ( /obj/effect/turf_decal/steeldecal/steel_decals6, -/obj/effect/turf_decal/borderfloorblack{ - dir = 6 +/obj/machinery/telecomms/receiver/preset_right{ + autolinkers = list("receiverB","hub"); + freq_listening = list(1353,1447,1459); + network = "nt_commnet" + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 }, -/turf/open/floor/plasteel/tech/airless, +/turf/open/floor/circuit, /area/ship/engineering/communications) "wE" = ( /obj/machinery/button/door{ pixel_y = 21; name = "Blast Doors"; - id = "Ranger_Port_Blasts" + id = "Ranger_Port_Blasts"; + req_ship_access = 1 }, /obj/machinery/button/shieldwallgen{ pixel_y = 20; pixel_x = 8; id = "Ranger_Port_holofields" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "wT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -2284,26 +3020,10 @@ dir = 4 }, /obj/effect/turf_decal/trimline/opaque/red/filled/corner, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "wU" = ( -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 19; - pixel_y = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/orange/full, -/obj/effect/turf_decal/siding/yellow{ - dir = 6 - }, -/obj/structure/railing{ - dir = 2; - layer = 4.1 - }, -/turf/open/floor/plasteel/tech, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/engineering) "xj" = ( /obj/structure/cable{ @@ -2315,27 +3035,48 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/effect/turf_decal/trimline/opaque/ntblue/filled/line, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "xp" = ( -/obj/machinery/airalarm/directional/west, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/wood, -/area/ship/medical) +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/item/lighter/greyscale{ + pixel_x = 8; + pixel_y = -8 + }, +/obj/machinery/computer/helm/viewscreen/directional/south, +/obj/item/paper_bin{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/pen/fourcolor{ + pixel_x = -6; + pixel_y = 3 + }, +/turf/open/floor/plasteel/patterned/brushed, +/area/ship/bridge) "xq" = ( /obj/effect/turf_decal/industrial/warning, /turf/open/floor/plating, /area/ship/engineering) "xv" = ( -/obj/machinery/recharge_station, -/obj/machinery/light/dim/directional/east, -/turf/open/floor/plasteel/white, -/area/ship/crew/toilet) +/obj/structure/curtain/bounty, +/obj/machinery/shower{ + dir = 1 + }, +/turf/open/floor/plating/catwalk_floor, +/area/ship/security) "xw" = ( -/obj/structure/table/wood, /obj/machinery/microwave, /obj/machinery/light/dim/directional/east, -/turf/open/floor/plasteel/dark, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "xA" = ( /obj/structure/tank_dispenser/oxygen, @@ -2343,7 +3084,11 @@ /obj/effect/turf_decal/siding/yellow{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/turf/open/floor/plasteel/tech, /area/ship/hallway/starboard) "xB" = ( /obj/structure/cable{ @@ -2361,38 +3106,40 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plating, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 8 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 1 + }, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/port) "xK" = ( /obj/structure/table/reinforced{ color = "#c1b6a5" }, -/obj/item/folder/blue{ - pixel_x = -6 - }, -/obj/item/folder/red{ - pixel_y = 2 - }, -/obj/item/folder{ - pixel_y = 5; - pixel_x = 7 +/obj/effect/turf_decal/techfloor{ + dir = 4 }, -/turf/open/floor/plasteel/dark, +/obj/item/binoculars, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "yi" = ( /obj/effect/turf_decal/industrial/warning, /obj/machinery/button/shieldwallgen{ dir = 8; pixel_x = 20; - pixel_y = -7; + pixel_y = 9; id = "AI_Core_Field_Engi" }, /obj/machinery/button/door{ dir = 8; pixel_x = 22; - name = "Blast Doors"; + name = "Access Blast Doors"; id = "Ranger_AI_Core_Blasts"; - pixel_y = 1 + pixel_y = 1; + req_access_txt = "10" }, /obj/structure/cable{ icon_state = "1-2" @@ -2402,17 +3149,34 @@ }, /turf/open/floor/plating, /area/ship/engineering) +"yk" = ( +/obj/machinery/computer/helm/viewscreen/directional/south, +/obj/machinery/computer/secure_data{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red/brig, +/area/ship/security) "ym" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/corner/opaque/lightgrey{ + dir = 10 + }, /turf/open/floor/plasteel/dark, /area/ship/crew/cryo) "yo" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/white, +/obj/structure/chair/plastic{ + dir = 4 + }, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "yA" = ( /obj/machinery/telecomms/hub{ @@ -2420,50 +3184,64 @@ id = "Nanotrasen Communications Hub"; autolinkers = list("hub","bus","relay","messaging","nanotrasen","broadcasterB","receiverB") }, -/turf/open/floor/circuit/telecomms{ - initial_gas_mix = "TEMP=2.7" +/obj/effect/turf_decal/techfloor{ + dir = 1 }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "yC" = ( -/obj/structure/toilet{ - dir = 1 +/obj/effect/turf_decal/siding/thinplating{ + dir = 1; + color = "#a8b2b6" }, -/turf/open/floor/plastic, +/obj/item/bikehorn/rubberducky, +/turf/open/floor/noslip, /area/ship/crew/toilet) -"yK" = ( -/obj/item/soap/nanotrasen, -/obj/structure/window/reinforced/tinted/frosted{ +"yG" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/chair/handrail{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/ship/crew/toilet) +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ship/hallway/central) +"yK" = ( +/obj/machinery/camera/autoname{ + dir = 9 + }, +/obj/machinery/light/floor, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "yU" = ( /obj/structure/table/reinforced, -/obj/item/storage/belt/utility, -/obj/item/t_scanner{ - pixel_x = 7; - pixel_y = 4 - }, -/obj/item/weldingtool{ - pixel_x = -6 +/obj/machinery/computer/helm/viewscreen/directional/south, +/obj/machinery/cell_charger, +/obj/effect/turf_decal/techfloor{ + dir = 4 }, -/obj/item/stack/cable_coil/random, -/obj/item/multitool, /turf/open/floor/plasteel/mono/dark, /area/ship/engineering) "yZ" = ( -/obj/structure/reagent_dispensers/watertank, /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable{ icon_state = "0-9" }, -/turf/open/floor/plasteel/tech, -/area/ship/storage) +/obj/machinery/suit_storage_unit/inherit{ + name = "Medical Specialist's Storage Unit" + }, +/obj/item/clothing/suit/space/hardsuit/ert/lp/med, +/obj/item/clothing/mask/breath, +/obj/item/tank/internals/oxygen, +/obj/effect/turf_decal/industrial/outline/blue, +/turf/open/floor/plasteel/lightgrey, +/area/ship/storage/equip) "zc" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/effect/turf_decal/industrial/warning{ dir = 8 }, @@ -2473,7 +3251,9 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "zi" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, @@ -2483,23 +3263,24 @@ dir = 1 }, /obj/machinery/door/airlock/public/glass, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "zB" = ( -/obj/machinery/camera/autoname{ - dir = 1 +/obj/effect/turf_decal/trimline/opaque/nsorange/line, +/obj/structure/railing/corner{ + dir = 8 }, -/obj/machinery/door/window{ - dir = 4 +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 8 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/structure/chair/office{ + dir = 8 }, -/turf/open/floor/circuit/green/airless, -/area/ship/engineering/communications) +/turf/open/floor/plasteel/lightgrey, +/area/ship/cargo) "zC" = ( /obj/structure/cable{ icon_state = "4-8" @@ -2510,60 +3291,111 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/door/poddoor/shutters{ - dir = 8; - name = "Cargo Bay"; - id = "Ranger_Cargo_Door" - }, /obj/machinery/door/firedoor/border_only{ dir = 8 }, /obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 9 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 8; + name = "Cargo Bay"; + id = "Ranger_Cargo_Door" + }, +/obj/machinery/button/door{ + name = "Cargo Bay Shutters"; + id = "Ranger_Cargo_Door"; + pixel_y = 23; + req_ship_access = 1 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) "zF" = ( /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "zW" = ( /turf/template_noop, /area/template_noop) +"Ab" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech, +/area/ship/security) "Ao" = ( /obj/structure/cable{ icon_state = "2-4" }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, /turf/open/floor/wood, -/area/ship/crew/dorm) +/area/ship/crew/dorm/captain) "Av" = ( -/obj/structure/table/wood, /obj/item/toy/cards/deck{ pixel_x = -1; pixel_y = 10 }, -/turf/open/floor/plasteel/dark, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 10 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "Aw" = ( /turf/open/floor/wood, /area/ship/medical) "AF" = ( /obj/structure/chair/comfy/shuttle{ - dir = 4 + dir = 4; + name = "Operations Monitoring" }, /obj/machinery/light/dim/directional/north, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/button/door{ + pixel_y = 20; + pixel_x = -5; + name = "Starboard Corridor Shutters"; + id = "RangerStarboardShutters" + }, +/obj/machinery/button/door{ + pixel_y = 20; + pixel_x = 5; + name = "Port Corridor Shutters"; + id = "RangerPortShutters" + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "AH" = ( -/obj/effect/turf_decal/borderfloorblack/corner{ - dir = 8 - }, /obj/effect/turf_decal/steeldecal/steel_decals7{ dir = 1 }, -/turf/open/floor/plasteel/tech/airless, +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/machinery/camera/autoname{ + dir = 5 + }, +/obj/machinery/button/door{ + dir = 4; + pixel_x = -26; + id = "AiCore"; + name = "Core Access"; + req_access_txt = "20" + }, +/turf/open/floor/plasteel/tech, /area/ship/engineering/communications) "AP" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -2575,29 +3407,44 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "AT" = ( /obj/effect/turf_decal/industrial/outline/blue, /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/port) "AZ" = ( /obj/machinery/airalarm/directional/west, /turf/open/floor/wood, /area/ship/security) "Be" = ( -/obj/structure/reagent_dispensers/fueltank, /obj/machinery/light/dim/directional/south, /obj/machinery/button/door{ dir = 4; id = "Ranger_FireFighting_Shut"; - name = "Shutters"; + name = "Ready Room"; pixel_x = -22; - pixel_y = 6 + pixel_y = 6; + req_one_access_txt = "50,10,5,1,20"; + req_ship_access = 1; + req_one_access = list(50, 10, 5, 1, 20) }, -/turf/open/floor/plasteel/tech, -/area/ship/storage) +/obj/item/clothing/suit/space/hardsuit/ert/lp/sec, +/obj/machinery/suit_storage_unit/inherit{ + name = "Security Specialist's Storage Unit" + }, +/obj/item/clothing/mask/breath, +/obj/item/tank/internals/oxygen/red, +/obj/effect/turf_decal/industrial/outline/red, +/turf/open/floor/plasteel/lightgrey, +/area/ship/storage/equip) "Bg" = ( /obj/machinery/power/shieldwallgen/atmos/roundstart{ dir = 8; @@ -2616,22 +3463,28 @@ /turf/open/floor/plasteel, /area/ship/hallway/starboard) "Bh" = ( -/turf/open/floor/plasteel/stairs/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/turf/open/floor/wood, /area/ship/engineering) "Bl" = ( -/obj/effect/turf_decal/corner/opaque/orange/border{ - dir = 4 +/obj/structure/chair/handrail{ + dir = 8 }, -/obj/effect/turf_decal/trimline/opaque/orange/arrow_ccw{ +/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/starboard) "Bo" = ( /obj/effect/turf_decal/steeldecal/steel_decals4, -/obj/effect/turf_decal/borderfloorblack{ - dir = 4 - }, /obj/effect/turf_decal/steeldecal/steel_decals7{ dir = 1 }, @@ -2641,19 +3494,30 @@ /obj/effect/turf_decal/steeldecal/steel_decals6{ dir = 8 }, -/turf/open/floor/plasteel/tech/airless, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 6 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "BA" = ( -/obj/machinery/shower{ +/obj/machinery/light/small/directional/east, +/obj/structure/toilet{ dir = 1 }, -/obj/structure/curtain, -/obj/item/bikehorn/rubberducky, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1; + color = "#a8b2b6" + }, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) "BI" = ( -/obj/machinery/door/airlock/wood, -/turf/open/floor/plasteel/white, +/obj/machinery/door/airlock/wood{ + name = "Toilets"; + req_ship_access = 0 + }, +/turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) "BO" = ( /obj/machinery/power/smes/shuttle/precharged{ @@ -2662,38 +3526,37 @@ /obj/machinery/door/window/northleft{ dir = 4 }, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "Ranger_SB_maint_shut" - }, /obj/structure/cable/yellow{ icon_state = "0-8" }, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "Ranger_SB_maint_shut"; + name = "Engine Shutters" + }, /turf/open/floor/plating, /area/ship/maintenance/starboard) "BX" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/closet/firecloset/wall/directional/west, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "BY" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 4 - }, /obj/structure/cable{ icon_state = "2-9" }, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "Ca" = ( -/obj/effect/turf_decal/corner/opaque/orange/full, /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable{ icon_state = "0-8" @@ -2704,7 +3567,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/siding/yellow{ +/obj/effect/turf_decal/spline/fancy/opaque/orange/corner{ + dir = 8 + }, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ dir = 1 }, /turf/open/floor/plasteel/tech, @@ -2717,7 +3583,9 @@ dir = 6 }, /obj/machinery/light/dim/directional/west, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/industrial/hatch/blue, +/obj/structure/bed/roller, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "Cg" = ( /obj/structure/cable{ @@ -2727,47 +3595,50 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Cq" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, -/turf/open/floor/circuit/green/airless, +/obj/machinery/blackbox_recorder, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "Ct" = ( -/obj/structure/table/greyscale, /obj/machinery/light/dim/directional/east, -/obj/effect/turf_decal/siding/blue{ - dir = 6 +/obj/effect/turf_decal/industrial/warning{ + dir = 10 }, -/obj/item/roller{ - pixel_x = 5; - pixel_y = 12 +/obj/effect/turf_decal/siding/thinplating/light{ + dir = 10 }, -/obj/item/roller{ - pixel_x = -3; - pixel_y = 7 +/obj/effect/turf_decal/borderfloorwhite/corner{ + dir = 4 + }, +/obj/machinery/shower{ + dir = 8; + pixel_y = 2 }, /turf/open/floor/plasteel/white, /area/ship/medical) "CB" = ( -/obj/effect/turf_decal/borderfloorblack{ - dir = 8 +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 10 }, -/obj/effect/turf_decal/techfloor/hole/right, -/turf/open/floor/plasteel/tech/airless, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "CD" = ( -/obj/effect/turf_decal/corner/opaque/orange/border{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/opaque/orange/arrow_ccw{ +/obj/machinery/computer/helm/viewscreen/directional/east, +/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw{ dir = 8 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ + dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/starboard) "CG" = ( /obj/machinery/door/airlock/public/glass, @@ -2777,23 +3648,25 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "CI" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /turf/open/floor/plasteel/dark, /area/ship/bridge) "CJ" = ( -/obj/machinery/atmospherics/components/binary/pump/layer2{ - dir = 8; - name = "Air Supply Pump" - }, /obj/machinery/door/firedoor/border_only{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/components/binary/pump/on/layer2{ + dir = 8 + }, /turf/open/floor/plating, /area/ship/hallway/central) "CN" = ( @@ -2805,65 +3678,192 @@ /obj/structure/window/reinforced{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 10 + }, /turf/open/floor/engine/air, /area/ship/hallway/central) "CP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/door/poddoor{ + dir = 4; + id = "Ranger_Cycler_Shutters"; + name = "Air Cycler Lockdown" + }, +/obj/machinery/door/airlock/external{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/turf/open/floor/plasteel/tech/techmaint{ + color = "#a8b2b6" + }, +/area/ship/hallway/central) +"CW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/button/door{ + pixel_x = 21; + dir = 8; + pixel_y = 3; + name = "Cryogenics Access"; + id = "RangerCryoShutters" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "RangerCryoShutters"; + name = "Cryogenic Storage" + }, +/turf/open/floor/plasteel/stairs{ + color = "#8A9397" + }, +/area/ship/crew/cryo) +"Dd" = ( +/obj/effect/turf_decal/industrial/outline/orange, +/obj/machinery/portable_atmospherics/canister/nitrogen, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) +"Dr" = ( +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + id = "AI_Core_Field_Engi"; + dir = 8 + }, +/obj/machinery/door/poddoor{ + dir = 2; + id = "Ranger_AI_Core_Blasts"; + name = "Communications Access" + }, +/obj/structure/cable, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/noslip, +/area/ship/engineering) +"Ds" = ( /obj/machinery/camera/autoname{ - dir = 10 + dir = 6 + }, +/obj/effect/turf_decal/steeldecal/steel_decals7{ + dir = 1 + }, +/obj/effect/turf_decal/steeldecal/steel_decals7{ + dir = 4 + }, +/obj/effect/turf_decal/steeldecal/steel_decals6{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 5 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/engineering/communications) +"Dx" = ( +/obj/machinery/recharger{ + pixel_x = 6; + pixel_y = -3 + }, +/obj/machinery/button/door{ + id = "SecureCell"; + normaldoorcontrol = 1; + pixel_x = 7; + pixel_y = 10; + specialfunctions = 4; + req_access_txt = "1"; + req_ship_access = 1; + name = "Cell Bolt Controls" + }, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/obj/machinery/button/door{ + id = "SecShutters"; + name = "Privacy Shutters"; + layer = 2.92; + req_ship_access = 1; + req_access_txt = "1"; + pixel_x = -5; + pixel_y = 10 + }, +/obj/machinery/button/door{ + id = "CellHallShutters"; + name = "Cell Hall Shutters"; + req_access_txt = "1"; + req_ship_access = 1; + pixel_x = -5; + pixel_y = 2; + layer = 2.91 + }, +/obj/machinery/button/door{ + pixel_y = -6; + pixel_x = -5; + id = "SecCellWindowShutters"; + name = "Cell Window Shutters"; + req_access_txt = "1"; + req_ship_access = 1 + }, +/turf/open/floor/mineral/plastitanium/red/brig, +/area/ship/security) +"DE" = ( +/obj/machinery/firealarm/directional/east, +/obj/machinery/recharger{ + dir = 4; + pixel_x = -8 + }, +/obj/machinery/cell_charger{ + dir = 4; + pixel_x = 5 }, -/turf/open/floor/engine/hull, -/area/ship/external) -"Dd" = ( -/obj/machinery/portable_atmospherics/canister/air, -/obj/effect/turf_decal/industrial/outline/orange, -/turf/open/floor/plasteel/tech, -/area/ship/maintenance/starboard) -"Dr" = ( -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - id = "AI_Core_Field_Engi"; - dir = 8 +/obj/structure/table/reinforced, +/obj/item/stack/marker_beacon/thirty{ + icon_state = "markerrandom"; + pixel_x = -9; + pixel_y = 13; + amount = 100 }, -/obj/machinery/door/poddoor{ - dir = 2; - id = "Ranger_AI_Core_Blasts" +/obj/item/stack/marker_beacon/thirty{ + icon_state = "markerrandom"; + pixel_x = 11; + pixel_y = 13; + amount = 100 }, -/obj/structure/cable, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/obj/item/stack/marker_beacon/thirty{ + icon_state = "markerrandom"; + pixel_x = 5; + pixel_y = 13; + amount = 100 }, -/turf/open/floor/plating, -/area/ship/engineering) -"Ds" = ( -/obj/machinery/camera/autoname{ - dir = 6 +/obj/item/stack/marker_beacon/thirty{ + icon_state = "markerrandom"; + pixel_x = -2; + pixel_y = 13; + amount = 100 }, -/obj/effect/turf_decal/borderfloorblack/corner, -/obj/effect/turf_decal/steeldecal/steel_decals7{ - dir = 1 +/obj/effect/turf_decal/corner/opaque/vired/three_quarters{ + dir = 8 }, -/obj/effect/turf_decal/steeldecal/steel_decals7{ - dir = 4 +/obj/item/stock_parts/cell/gun, +/turf/open/floor/plasteel/tech, +/area/ship/storage/equip) +"DQ" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/steeldecal/steel_decals6{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 }, -/turf/open/floor/plasteel/tech/airless, -/area/ship/engineering/communications) -"Dx" = ( -/turf/open/floor/plasteel/dark, -/area/ship/security) -"DE" = ( -/obj/item/storage/box/metalfoam, -/obj/item/watertank/atmos, -/obj/structure/rack, -/obj/effect/turf_decal/corner/opaque/brown/mono, -/obj/machinery/firealarm/directional/east, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 4 }, /turf/open/floor/plasteel/dark, -/area/ship/storage) +/area/ship/hallway/central) "DW" = ( /obj/structure/cable/cyan{ icon_state = "0-4" @@ -2876,23 +3876,41 @@ /area/ship/maintenance/starboard) "DZ" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/machinery/button/door{ - dir = 4; - pixel_x = -20; - name = "Cargo Bay Shutters"; - id = "Ranger_Cargo_Door"; - pixel_y = 1 - }, +/obj/structure/filingcabinet/double, /turf/open/floor/plasteel/tech, /area/ship/cargo) "Ek" = ( /obj/machinery/computer/telecomms/server, -/turf/open/floor/plasteel/dark, +/obj/structure/window/reinforced/survival_pod{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 9 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) +"Ep" = ( +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 10 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/engineering/communications) "Eq" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 1 }, +/obj/effect/turf_decal/trimline/opaque/nsorange/warning, +/obj/effect/turf_decal/siding{ + color = "#474747" + }, +/turf/open/floor/plasteel/lightgrey, +/area/ship/cargo) +"EA" = ( +/obj/structure/crate_shelf, +/obj/machinery/light/dim/directional/west, /turf/open/floor/plasteel/tech, /area/ship/cargo) "EL" = ( @@ -2903,45 +3921,52 @@ /obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "EP" = ( /obj/machinery/vending/snack/random, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "Ff" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Fg" = ( -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/ert/lp, -/obj/item/clothing/mask/breath, -/obj/item/tank/internals/emergency_oxygen, -/obj/effect/turf_decal/siding/wood/end{ +/obj/effect/turf_decal/trimline/opaque/nsorange/corner{ dir = 4 }, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"Fh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ - dir = 9 +/obj/item/paper/crumpled, +/obj/item/paper/crumpled{ + pixel_x = 6; + pixel_y = -1 }, -/obj/machinery/door/airlock/external{ - dir = 4 +/obj/item/paper/crumpled{ + pixel_x = -10; + pixel_y = 6 }, -/obj/machinery/door/firedoor/border_only{ +/obj/item/paper/crumpled{ + pixel_y = -6; + pixel_x = -4 + }, +/turf/open/floor/plasteel/lightgrey, +/area/ship/cargo) +"Fh" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/visible{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/effect/turf_decal/siding/thinplating{ + dir = 1; + color = "#a8b2b6" + }, +/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw, +/turf/open/floor/plasteel/tech/techmaint{ + color = "#a8b2b6" }, -/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "Fw" = ( /obj/structure/cable{ @@ -2953,11 +3978,13 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/machinery/door/airlock/wood, +/obj/machinery/door/airlock/wood{ + name = "Restroom"; + req_ship_access = 0 + }, /turf/open/floor/plasteel/white, /area/ship/crew/toilet) "Fx" = ( -/obj/structure/table/wood, /obj/item/storage/box/matches{ pixel_y = 4 }, @@ -2969,7 +3996,13 @@ pixel_y = 2; pixel_x = -5 }, -/turf/open/floor/plasteel/dark, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "FB" = ( /obj/structure/cable{ @@ -2978,15 +4011,24 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/orange/full, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/effect/turf_decal/siding/yellow{ - dir = 5 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "1-4" +/obj/machinery/door/airlock/engineering{ + dir = 4; + name = "Engineering Sector" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 }, /turf/open/floor/plasteel/tech, /area/ship/engineering) @@ -3001,32 +4043,33 @@ dir = 4 }, /obj/machinery/airalarm/directional/south, -/turf/open/floor/plating, +/obj/effect/decal/cleanable/oil/streak, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) "Gc" = ( -/obj/structure/closet/cabinet, -/obj/item/clothing/under/rank/security/head_of_security/alt/skirt/lp, -/obj/item/clothing/under/rank/security/head_of_security/alt/lp, -/obj/item/clothing/shoes/jackboots, -/obj/item/clothing/suit/jacket/miljacket, -/obj/item/clothing/suit/jacket/leather/duster/command, -/obj/item/storage/backpack/messenger/com, -/obj/item/storage/backpack/satchel/cap, -/obj/item/storage/backpack/captain, -/obj/item/storage/backpack/duffelbag/captain, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, /obj/machinery/light/dim/directional/north, -/turf/open/floor/wood, -/area/ship/crew/dorm) +/obj/machinery/camera/autoname{ + dir = 5 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/machinery/suit_storage_unit/inherit, +/obj/item/clothing/suit/space/hardsuit/ert/lp, +/obj/item/clothing/mask/breath, +/obj/item/tank/internals/emergency_oxygen/double, +/turf/open/floor/plasteel/tech, +/area/ship/crew/dorm/captain) "Ge" = ( /obj/structure/cable{ icon_state = "0-8" }, /obj/machinery/power/port_gen/pacman, -/obj/item/stack/sheet/mineral/plasma/twenty, /obj/effect/turf_decal/industrial/outline/orange, +/obj/item/stack/sheet/mineral/plasma/twenty, /turf/open/floor/plating, /area/ship/engineering) "Gh" = ( @@ -3036,24 +4079,20 @@ /obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, /obj/machinery/light/floor, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "Gk" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 8 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 8 }, -/obj/structure/closet/emcloset/wall/directional/west, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "Gn" = ( /obj/structure/table/wood, @@ -3064,8 +4103,22 @@ /obj/item/toy/plush/moth/snow{ pixel_x = -3 }, +/obj/item/folder/blue{ + pixel_x = -3; + pixel_y = -10 + }, +/obj/item/flashlight/pen{ + pixel_x = -5; + pixel_y = -9 + }, /turf/open/floor/wood, /area/ship/medical) +"Gs" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "Gz" = ( /obj/effect/turf_decal/steeldecal/steel_decals7{ dir = 1 @@ -3076,22 +4129,29 @@ /obj/effect/turf_decal/steeldecal/steel_decals7{ dir = 4 }, -/turf/open/floor/plasteel/tech/airless, +/turf/open/floor/plasteel/tech, /area/ship/engineering/communications) "GC" = ( +/obj/effect/turf_decal/corner/opaque/blue/diagonal, +/obj/structure/window/reinforced/spawner, /obj/structure/window/reinforced/spawner{ - dir = 4 + dir = 8 }, -/obj/effect/turf_decal/siding/blue{ +/obj/structure/cable{ + icon_state = "6-8" + }, +/obj/effect/turf_decal/borderfloorwhite/corner{ dir = 4 }, /turf/open/floor/plasteel/white, /area/ship/medical) "GE" = ( -/obj/effect/turf_decal/corner/opaque/blue/diagonal, -/obj/structure/bed, -/obj/item/bedsheet/medical, -/turf/open/floor/plasteel/white, +/obj/structure/table/optable, +/obj/effect/turf_decal/borderfloorwhite/full, +/obj/machinery/defibrillator_mount/loaded{ + pixel_y = 24 + }, +/turf/open/floor/noslip, /area/ship/medical) "GG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -3103,50 +4163,54 @@ /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "GY" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, /obj/effect/turf_decal/siding/wood, /obj/item/radio/intercom/directional/south, +/obj/item/bedsheet/orange, +/obj/structure/bed, +/obj/machinery/camera/autoname{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, /turf/open/floor/wood, /area/ship/engineering) "Ha" = ( -/obj/structure/closet/secure_closet/lp/lieutenant, -/obj/item/stock_parts/cell/gun, /obj/item/melee/classic_baton/telescopic, /obj/item/melee/knife/survival, /obj/item/gps, /obj/item/screwdriver, -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, /obj/machinery/light_switch{ dir = 1; pixel_x = 7; pixel_y = -20 }, -/obj/item/ammo_box/c9mm, -/obj/item/ammo_box/c9mm, -/obj/item/ammo_box/c9mm/rubbershot, -/obj/item/ammo_box/magazine/co9mm, -/obj/item/storage/pistolcase/commander, /obj/item/storage/pistolcase/egun, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"Hd" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/poddoor/shutters{ - id = "Engineering_Specialist_Shutters"; +/obj/item/megaphone/command, +/obj/structure/closet/secure_closet/lp/lieutenant, +/obj/effect/turf_decal/techfloor{ dir = 4 }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, +/area/ship/crew/dorm/captain) +"Hd" = ( +/obj/structure/grille, /obj/structure/cable{ icon_state = "5-8" }, /obj/machinery/door/firedoor/window, +/obj/machinery/door/poddoor/shutters{ + id = "Engineering_Specialist_Shutters"; + dir = 4; + name = "Communications Shutters" + }, +/obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, /area/ship/engineering) "Hs" = ( @@ -3156,27 +4220,25 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/orange/full, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ + dir = 5 + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/siding/yellow{ - dir = 1 - }, /turf/open/floor/plasteel/tech, /area/ship/engineering) "Hy" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/trimline/opaque/orange/arrow_cw{ +/obj/effect/turf_decal/trimline/opaque/vired/arrow_cw{ dir = 8 }, -/obj/effect/turf_decal/trimline/opaque/orange/filled/line{ +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ dir = 4 }, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/port) "HA" = ( /obj/machinery/power/shieldwallgen/atmos/roundstart{ @@ -3193,6 +4255,7 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel, /area/ship/hallway/port) "HZ" = ( @@ -3207,10 +4270,30 @@ dir = 4; pixel_x = -21; name = "Shutters"; - id = "Ranger_Port_maint_shut" + id = "Ranger_Port_maint_shut"; + req_ship_access = 1 }, +/obj/effect/spawner/lootdrop/waste/trash, /turf/open/floor/plating, /area/ship/maintenance/port) +"Ih" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/blood/drip{ + pixel_x = 14; + pixel_y = 4 + }, +/obj/item/stack/medical/suture{ + amount = 1; + name = "bloody suture" + }, +/obj/item/melee/knife/kitchen{ + pixel_y = -12 + }, +/turf/open/floor/plasteel/lightgrey, +/area/ship/hallway/central) "Iy" = ( /obj/structure/table/wood, /obj/machinery/light/dim/directional/north, @@ -3229,6 +4312,10 @@ /obj/item/radio{ pixel_x = -2 }, +/obj/item/reagent_containers/food/drinks/soda_cans/sol_dry{ + pixel_x = 8; + pixel_y = 9 + }, /turf/open/floor/plasteel/dark, /area/ship/crew/cryo) "Iz" = ( @@ -3236,11 +4323,45 @@ /obj/structure/cable{ icon_state = "0-10" }, +/obj/structure/closet/secure_closet{ + icon_state = "qm"; + name = "Logistics Specialist's Locker"; + req_ship_access = 1; + req_one_access = list(50) + }, +/obj/item/clothing/suit/hooded/wintercoat/cargo{ + pixel_x = 14 + }, +/obj/item/clothing/shoes/sneakers/brown{ + pixel_x = -10; + pixel_y = -12 + }, +/obj/item/storage/backpack/satchel/leather{ + pixel_y = -6 + }, +/obj/item/clothing/under/nanotrasen/supply/qm, +/obj/item/gps{ + pixel_x = 11; + pixel_y = 9 + }, +/obj/item/stack/packageWrap{ + pixel_x = -10; + pixel_y = 12 + }, +/obj/item/stack/packageWrap{ + pixel_x = -10 + }, +/obj/item/stack/packageWrap{ + pixel_x = -10; + pixel_y = 6 + }, /turf/open/floor/plasteel/tech, /area/ship/cargo) "IC" = ( /obj/effect/turf_decal/corner/opaque/orange/full, -/obj/machinery/door/airlock/engineering/glass, +/obj/machinery/door/airlock/engineering/glass{ + name = "Electrical Bay" + }, /obj/structure/cable{ icon_state = "1-2" }, @@ -3250,18 +4371,28 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/effect/turf_decal/techfloor, /turf/open/floor/plasteel/tech, /area/ship/engineering) "IE" = ( /obj/machinery/light/floor, -/turf/open/floor/circuit/green/airless, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "IM" = ( /obj/structure/chair/sofa/brown/directional/west, /obj/item/toy/plush/blahaj{ layer = 3.1 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "IQ" = ( /obj/machinery/cryopod, @@ -3273,19 +4404,19 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "Ji" = ( -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/ert/lp/sec, -/obj/item/clothing/mask/breath, -/obj/machinery/light/dim/directional/east, -/obj/effect/turf_decal/siding/red{ - dir = 5 +/obj/effect/turf_decal/borderfloorblack, +/obj/structure/chair/handrail{ + dir = 4 }, -/obj/item/tank/internals/emergency_oxygen, -/turf/open/floor/mineral/plastitanium/red/brig, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/effect/decal/cleanable/confetti, +/turf/open/floor/plasteel/tech, /area/ship/security) "Js" = ( /obj/machinery/holopad, @@ -3293,7 +4424,7 @@ dir = 8 }, /obj/effect/turf_decal/siding/red/corner, -/turf/open/floor/mineral/plastitanium/red/brig, +/turf/open/floor/plasteel/tech, /area/ship/security) "Jw" = ( /obj/structure/cable/cyan{ @@ -3305,20 +4436,14 @@ /turf/open/floor/plating, /area/ship/maintenance/port) "JK" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/obj/structure/mirror{ - pixel_x = -25 - }, -/obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/ship/engineering) "JO" = ( -/obj/machinery/door/airlock/command, +/obj/machinery/door/airlock/command{ + req_access_txt = "20"; + name = "Lieutenant's Quarters" + }, /obj/structure/cable{ icon_state = "1-2" }, @@ -3327,7 +4452,7 @@ }, /obj/machinery/door/firedoor/border_only, /turf/open/floor/wood, -/area/ship/crew/dorm) +/area/ship/crew/dorm/captain) "JP" = ( /obj/structure/cable{ icon_state = "4-8" @@ -3341,38 +4466,40 @@ /turf/open/floor/plating, /area/ship/engineering) "JR" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/crew/cryo) "Kf" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/three_quarters, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/three_quarters, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "Kg" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/engineering/communications) "Kj" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible/layer3{ dir = 8 }, /obj/effect/decal/cleanable/plasma, +/obj/effect/decal/cleanable/plasma, /turf/open/floor/plating, /area/ship/maintenance/port) "Kl" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/camera/autoname{ - dir = 5 +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/machinery/computer/helm/viewscreen/directional/west, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "Kt" = ( -/obj/machinery/holopad, +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/white, /area/ship/medical) "Kw" = ( @@ -3381,18 +4508,17 @@ }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 + dir = 5 }, -/turf/open/floor/plastic, +/turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) "KC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/brown/mono, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/effect/turf_decal/corner/opaque/vired/three_quarters{ + dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/ship/storage) +/turf/open/floor/plasteel/tech, +/area/ship/storage/equip) "KQ" = ( /obj/structure/closet, /obj/item/pickaxe, @@ -3405,7 +4531,11 @@ /obj/effect/turf_decal/siding/yellow{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/turf/open/floor/plasteel/tech, /area/ship/hallway/port) "KX" = ( /obj/structure/cable{ @@ -3424,24 +4554,29 @@ /obj/effect/turf_decal/trimline/opaque/red/filled/corner{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/corner, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Lg" = ( -/obj/structure/window/reinforced, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 1 }, /obj/effect/turf_decal/siding/red, -/turf/open/floor/mineral/plastitanium/red/brig, +/turf/open/floor/plasteel/tech, /area/ship/security) "Lk" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/bridge) "Lt" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 }, -/turf/open/floor/plastic, +/obj/machinery/airalarm/directional/west, +/obj/machinery/door/window{ + opacity = 1; + name = "Toilet" + }, +/turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) "Lu" = ( /obj/structure/cable{ @@ -3453,31 +4588,27 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/trimline/opaque/yellow/filled/line{ +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "Lw" = ( -/obj/structure/bed, -/obj/item/bedsheet/orange, -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/engineering) +/obj/effect/turf_decal/industrial/outline/orange, +/obj/effect/decal/cleanable/plasma, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plasteel/tech, +/area/ship/maintenance/starboard) "LM" = ( /obj/machinery/telecomms/processor/preset_four{ autolinkers = list("processor4","bus"); network = "nt_commnet"; id = "Nanotrasen Communications Processor" }, -/turf/open/floor/circuit/telecomms{ - initial_gas_mix = "TEMP=2.7" +/obj/effect/turf_decal/techfloor{ + dir = 4 }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "LQ" = ( /obj/structure/cable{ @@ -3486,6 +4617,7 @@ /obj/effect/turf_decal/industrial/outline/orange, /obj/machinery/power/port_gen/pacman/super, /obj/item/stack/sheet/mineral/uranium/five, +/obj/effect/decal/cleanable/greenglow, /turf/open/floor/plating, /area/ship/engineering) "LU" = ( @@ -3494,39 +4626,46 @@ id = "Ranger_Bridge_Shutters" }, /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, /obj/machinery/door/firedoor/window, +/obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, /area/ship/bridge) "LV" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/maintenance/port) "Ma" = ( -/obj/structure/chair/wood, /obj/effect/turf_decal/siding/red{ dir = 4 }, /obj/effect/turf_decal/siding/red{ dir = 8 }, -/turf/open/floor/mineral/plastitanium/red/brig, +/turf/open/floor/plasteel/tech, /area/ship/security) "Mc" = ( -/obj/structure/toilet{ +/obj/machinery/light/dim/directional/east, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1; + color = "#a8b2b6" + }, +/obj/machinery/shower{ dir = 1 }, -/obj/machinery/light/dim/directional/east, -/turf/open/floor/plastic, +/obj/item/soap/nanotrasen, +/turf/open/floor/noslip, /area/ship/crew/toilet) "Md" = ( /obj/structure/AIcore, /obj/item/mmi/posibrain, /obj/item/circuitboard/aicore, -/turf/open/floor/circuit/green/airless, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "Mf" = ( -/turf/closed/wall/r_wall, -/area/ship/crew/dorm) +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/dorm/captain) "Mg" = ( /obj/structure/cable{ icon_state = "1-2" @@ -3534,17 +4673,21 @@ /obj/structure/cable{ icon_state = "1-6" }, -/obj/effect/turf_decal/corner/opaque/orange/border{ +/obj/effect/turf_decal/trimline/opaque/vired/arrow_cw{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ dir = 8 }, -/obj/effect/turf_decal/trimline/opaque/orange/arrow_cw{ +/obj/structure/chair/handrail{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/starboard) "Mh" = ( /obj/machinery/computer/apc_control{ - dir = 4 + dir = 4; + icon_state = "computer-left" }, /obj/effect/turf_decal/techfloor, /turf/open/floor/plasteel/mono/dark, @@ -3553,12 +4696,16 @@ /obj/structure/cable{ icon_state = "5-8" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Mn" = ( -/obj/machinery/holopad, +/obj/machinery/holopad{ + pixel_x = 1; + pixel_y = 1 + }, /obj/effect/turf_decal/trimline/opaque/ntblue, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "Ms" = ( /obj/machinery/button/door{ @@ -3568,24 +4715,31 @@ dir = 1; pixel_x = 6 }, +/obj/effect/turf_decal/steeldecal/steel_decals4, /obj/effect/turf_decal/techfloor{ - dir = 8 + dir = 10 }, -/obj/effect/turf_decal/steeldecal/steel_decals4, -/turf/open/floor/plasteel/dark, +/obj/machinery/door/window/survival_pod{ + dir = 8; + name = "Captain's Nest"; + req_one_access_txt = list(50, 10, 5, 1, 20) + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "Mt" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/orange/full, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/siding/yellow{ +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ dir = 1 }, /turf/open/floor/plasteel/tech, @@ -3608,32 +4762,32 @@ dir = 5 }, /turf/open/floor/wood, -/area/ship/crew/dorm) +/area/ship/crew/dorm/captain) "Mx" = ( /obj/machinery/light_switch{ dir = 8; pixel_x = 19; pixel_y = 8 }, -/turf/open/floor/plasteel/tech/airless, +/obj/effect/turf_decal/techfloor, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, /area/ship/engineering/communications) "Mz" = ( -/obj/effect/turf_decal/corner/opaque/orange/full, /obj/structure/cable{ icon_state = "1-2" }, /obj/structure/cable{ icon_state = "1-4" }, -/obj/effect/turf_decal/siding/yellow{ - dir = 9 - }, /obj/machinery/button/door{ dir = 4; pixel_y = 6; pixel_x = -22; id = "Engineering_Specialist_Shutters"; - name = "Privacy Shutters" + name = "Comms Shutters" }, /obj/machinery/camera/autoname{ dir = 5 @@ -3644,12 +4798,24 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 5 }, +/obj/effect/decal/cleanable/oil, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ + dir = 10 + }, +/obj/effect/turf_decal/spline/fancy/opaque/orange{ + dir = 9 + }, /turf/open/floor/plasteel/tech, /area/ship/engineering) "MD" = ( -/obj/item/disk/design_disk/ammo_c9mm, -/turf/open/floor/plating, -/area/ship/engineering) +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 1 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/engineering/communications) "MI" = ( /obj/machinery/airalarm/directional/north, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -3658,33 +4824,55 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "MK" = ( -/obj/structure/table/reinforced, -/obj/item/aicard, -/obj/item/stack/sheet/rglass{ - amount = 25 +/obj/structure/sign/nanotrasen{ + pixel_x = 32 }, -/obj/item/wrench, -/obj/item/stack/cable_coil/cyan, -/turf/open/floor/circuit/green/airless, +/obj/effect/turf_decal/techfloor, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "ML" = ( /obj/machinery/light/dim/directional/north, /obj/effect/turf_decal/industrial/outline/blue, /obj/structure/closet/crate/trashcart/laundry, -/turf/open/floor/plating, +/obj/item/clothing/under/nanotrasen, +/obj/item/clothing/under/nanotrasen, +/obj/item/clothing/shoes/sneakers/black{ + pixel_y = -10 + }, +/obj/item/clothing/shoes/sneakers/black{ + pixel_y = -10 + }, +/obj/item/clothing/suit/hooded/wintercoat, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) +"MR" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ship/hallway/central) "MW" = ( /obj/item/radio/intercom/directional/south, /obj/machinery/computer/helm{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/techfloor{ + dir = 6 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "MY" = ( /obj/effect/turf_decal/corner/opaque/ntblue/border{ @@ -3699,7 +4887,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "Nd" = ( /obj/structure/cable{ @@ -3709,6 +4897,9 @@ dir = 10 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plating, /area/ship/engineering) "Nf" = ( @@ -3719,74 +4910,81 @@ id = "Ranger_AI_Core_Ext_Blasts" }, /obj/machinery/light/dim/directional/south, -/turf/open/floor/circuit/green/airless, +/obj/machinery/telecomms/message_server/preset{ + autolinkers = list("messaging","hub"); + network = "nt_commnet"; + layer = 3.1 + }, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "Nn" = ( /obj/structure/cable{ icon_state = "2-4" }, -/turf/open/floor/circuit/green/airless, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "Nu" = ( /obj/machinery/vending/cigarette, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "Ny" = ( -/obj/structure/closet/cabinet, -/obj/item/clothing/suit/hooded/wintercoat/engineering, -/obj/item/clothing/head/beret/eng/hazard, -/obj/item/storage/backpack/satchel/eng, -/obj/item/storage/backpack/messenger/engi, -/obj/item/storage/backpack/industrial, -/obj/item/storage/backpack/duffelbag/engineering, -/obj/effect/turf_decal/siding/wood/end{ +/obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/item/clothing/under/rank/engineering/engineer/nt/lp, -/obj/item/clothing/under/rank/engineering/engineer/nt/skirt/lp, +/obj/machinery/door/window/survival_pod{ + dir = 1; + opacity = 1; + req_one_access_txt = "10"; + name = "Engineering Specialist's Quarters" + }, /turf/open/floor/wood, /area/ship/engineering) "NC" = ( /obj/machinery/camera/autoname{ dir = 6 }, -/obj/machinery/light/floor, +/obj/machinery/light/floor{ + pixel_y = -9 + }, /turf/open/floor/engine/hull, -/area/ship/external) +/area/ship/external/dark) "NM" = ( /turf/open/floor/plasteel/stairs{ - dir = 4 + dir = 4; + color = "#a8b2b6" }, /area/ship/bridge) "NR" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 9 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 9 }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "NS" = ( -/obj/structure/railing{ - dir = 8; - layer = 4.1 - }, -/obj/structure/closet/crate/medical{ - name = "anesthetics crate" - }, -/obj/item/tank/internals/anesthetic, -/obj/item/tank/internals/anesthetic{ - pixel_x = 3 - }, -/obj/item/clothing/mask/breath/medical, -/obj/item/clothing/mask/breath/medical{ - pixel_x = 3 +/obj/structure/crate_shelf, +/obj/structure/closet/crate/freezer/blood, +/obj/effect/turf_decal/siding/blue{ + dir = 10 }, +/obj/machinery/iv_drip, /turf/open/floor/plasteel/white, /area/ship/medical) "NZ" = ( @@ -3796,24 +4994,61 @@ /obj/machinery/power/apc/auto_name/directional/south, /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, -/area/ship/crew/dorm) +/area/ship/crew/dorm/captain) +"Og" = ( +/obj/machinery/camera/autoname{ + dir = 1 + }, +/obj/machinery/air_sensor/external, +/obj/machinery/light/dim/directional/south, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "Om" = ( -/obj/structure/closet/cabinet, -/obj/item/clothing/under/rank/medical/paramedic/skirt/lp, -/obj/item/clothing/under/rank/medical/paramedic/lp, -/obj/item/clothing/suit/hooded/wintercoat/medical, -/obj/item/clothing/head/beret/med, -/obj/item/storage/backpack/satchel/med, -/obj/item/storage/backpack/messenger/med, -/obj/item/storage/backpack/medic, -/obj/item/storage/backpack/duffelbag/med, -/turf/open/floor/wood, -/area/ship/medical) +/obj/effect/turf_decal/trimline/opaque/nsorange/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/white/corner{ + dir = 1; + color = "#474747" + }, +/turf/open/floor/plasteel/lightgrey, +/area/ship/cargo) "On" = ( -/obj/structure/closet/crate, -/obj/effect/decal/cleanable/sprayweb, /obj/machinery/light/dim/directional/east, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 6 + }, +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_y = 16 + }, +/obj/item/paper_bin{ + pixel_x = 7; + pixel_y = -4 + }, +/obj/item/pen/fountain{ + pixel_x = 6; + pixel_y = -5 + }, +/obj/structure/table/reinforced{ + color = "#c1b6a5" + }, +/obj/item/toy/plush/moth/atlas{ + pixel_x = 9; + pixel_y = 16 + }, +/obj/machinery/camera/autoname{ + dir = 1 + }, +/obj/item/paper/crumpled{ + pixel_y = -6; + pixel_x = -4 + }, +/obj/item/paper/crumpled/muddy{ + name = "coffee-stained paper scrap"; + pixel_x = -9; + pixel_y = 6 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) "Ou" = ( /obj/structure/cable{ @@ -3823,10 +5058,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/trimline/opaque/yellow/filled/line{ +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/line{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Ov" = ( /obj/machinery/light/dim/directional/east, @@ -3834,19 +5069,25 @@ autolinkers = list("broadcasterB","hub"); network = "nt_commnet" }, -/turf/open/floor/circuit/telecomms{ - initial_gas_mix = "TEMP=2.7" +/obj/effect/turf_decal/techfloor{ + dir = 8 }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "Ox" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel/white, -/area/ship/hallway/central) +/obj/item/gps/computer{ + pixel_x = 32; + pixel_y = 0; + density = 0 + }, +/turf/open/floor/plasteel/telecomms_floor, +/area/ship/engineering/communications) "OC" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -3855,44 +5096,39 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 1 - }, /obj/structure/cable{ icon_state = "0-6" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "OK" = ( -/obj/machinery/light_switch{ - pixel_x = -7; - pixel_y = 21 - }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 1 +/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner, +/obj/machinery/autolathe, +/obj/item/disk/design_disk/ammo_c9mm, +/obj/item/stack/sheet/metal/ten, +/obj/item/stack/sheet/glass{ + amount = 10 }, -/obj/machinery/button/door{ - dir = 8; - pixel_x = 20; - name = "Cargo Bay Shutters"; - id = "Ranger_Cargo_Door"; - pixel_y = 1 +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 1 }, -/obj/effect/turf_decal/trimline/opaque/yellow/filled/corner, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/corner, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "OP" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 4 - }, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "Pd" = ( -/obj/structure/table/reinforced, /obj/item/aiModule/core/freeformcore{ pixel_x = -2; pixel_y = 1 @@ -3905,12 +5141,12 @@ pixel_x = 4; pixel_y = -2 }, -/obj/item/aiModule/zeroth{ - pixel_x = -5; - pixel_y = -6 - }, /obj/machinery/light/dim/directional/north, -/turf/open/floor/circuit/green/airless, +/obj/effect/turf_decal/techfloor, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "Ph" = ( /obj/effect/turf_decal/industrial/warning, @@ -3925,18 +5161,31 @@ /obj/effect/turf_decal/siding/yellow{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, /area/ship/hallway/port) "Pr" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/ntblue{ +/obj/effect/turf_decal/corner/opaque/vired{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) +"Pu" = ( +/obj/effect/decal/cleanable/robot_debris, +/turf/open/floor/plating, +/area/ship/engineering) +"PB" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/lightgrey, +/area/ship/hallway/central) "PG" = ( /obj/structure/cable{ icon_state = "1-2" @@ -3948,72 +5197,93 @@ dir = 4 }, /obj/machinery/light/floor, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "PR" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "PV" = ( /obj/structure/table/reinforced, -/obj/item/storage/toolbox/mechanical, -/obj/item/storage/toolbox/electrical{ - pixel_x = 3; - pixel_y = 7 - }, /obj/effect/turf_decal/techfloor{ dir = 8 }, +/obj/item/stock_parts/micro_laser/high, +/obj/item/stock_parts/micro_laser/high{ + pixel_y = 4; + pixel_x = -2 + }, +/obj/item/stack/cable_coil/cut/red, /turf/open/floor/plasteel/mono/dark, /area/ship/engineering) "Qf" = ( -/obj/effect/turf_decal/corner/opaque/brown/mono, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/dark, -/area/ship/storage) +/obj/effect/turf_decal/corner/opaque/vired/half, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/open/floor/plasteel/tech, +/area/ship/storage/equip) "Qt" = ( -/obj/item/bodypart/leg/right/robot, -/obj/item/bodypart/r_arm/robot, -/obj/item/bodypart/leg/left/robot, -/obj/item/bodypart/l_arm/robot, -/obj/item/bodypart/chest/robot, -/obj/item/bodypart/head/robot, -/obj/item/borg/upgrade/ai, -/obj/item/robot_suit, -/obj/structure/closet/crate/engineering, /obj/effect/turf_decal/industrial/hatch/orange, -/obj/item/stock_parts/cell/high, -/obj/item/assembly/flash/handheld, -/obj/item/assembly/flash/handheld, +/obj/machinery/power/ship_gravity, +/obj/structure/cable{ + icon_state = "0-8" + }, /turf/open/floor/plating, /area/ship/engineering) "Qu" = ( /obj/machinery/door/firedoor/window, /obj/structure/grille, -/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "MedShutters"; + name = "Medical Privacy Shutters" + }, +/obj/structure/window/reinforced/fulltile/shuttle, /turf/open/floor/plating, /area/ship/medical) "QT" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/maintenance/starboard) "QV" = ( /obj/machinery/light/dim/directional/west, +/obj/structure/chair/handrail{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 4 + }, /turf/open/floor/engine/hull, -/area/ship/external) +/area/ship/external/dark) "Rn" = ( -/obj/machinery/portable_atmospherics/pump, /obj/machinery/light/dim/directional/north, -/turf/open/floor/plasteel/tech, -/area/ship/storage) +/obj/structure/crate_shelf, +/obj/machinery/door/window/brigdoor/eastleft{ + dir = 2; + req_access_txt = "1"; + name = "Armory"; + req_ship_access = 1 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 5 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 6 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 9 + }, +/turf/open/floor/plasteel/lightgrey, +/area/ship/storage/equip) "Ro" = ( /obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ dir = 1 }, /obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "RA" = ( /obj/structure/closet/firecloset/wall/directional/south, @@ -4023,25 +5293,25 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/corner/opaque/vired/half, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "RB" = ( -/obj/effect/turf_decal/trimline/opaque/orange/arrow_ccw{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 }, -/obj/effect/turf_decal/trimline/opaque/orange/filled/line{ - dir = 8 +/obj/machinery/camera/autoname{ + dir = 10 }, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/white, -/area/ship/hallway/port) +/turf/open/floor/engine/hull, +/area/ship/external/dark) "RM" = ( /obj/structure/chair/sofa/brown/left/directional/west, -/turf/open/floor/plasteel/dark, +/obj/machinery/light/dim/directional/east, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "RS" = ( /obj/machinery/portable_atmospherics/canister/toxins, @@ -4057,13 +5327,14 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 9 }, -/obj/machinery/airalarm/directional/south, +/obj/effect/turf_decal/spline/fancy/opaque/blue, /turf/open/floor/plasteel/dark, /area/ship/bridge) "Sl" = ( -/obj/machinery/light/dim/directional/east, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/structure/rack, +/obj/structure/closet/crate/secure/plasma{ + name = "Relay Parts Crate" + }, +/obj/item/storage/box/stockparts/basic, /obj/item/circuitboard/machine/telecomms/relay{ pixel_x = -5; pixel_y = 9 @@ -4076,6 +5347,15 @@ pixel_x = -5; pixel_y = 9 }, +/obj/item/encryptionkey/nanotrasen{ + pixel_x = -1 + }, +/obj/item/encryptionkey/nanotrasen{ + pixel_x = 3 + }, +/obj/item/encryptionkey/nanotrasen{ + pixel_x = 7 + }, /obj/item/stack/cable_coil/cyan{ pixel_x = 6 }, @@ -4121,6 +5401,9 @@ pixel_x = 7; pixel_y = 7 }, +/obj/structure/crate_shelf, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/machinery/light/dim/directional/east, /turf/open/floor/plating, /area/ship/engineering) "So" = ( @@ -4133,10 +5416,24 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 9 }, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/warning{ + dir = 1 + }, +/obj/effect/turf_decal/siding{ + color = "#474747"; + dir = 1 + }, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) +"Sv" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plasteel/lightgrey, +/area/ship/hallway/central) "SC" = ( -/obj/structure/table/wood, /obj/item/storage/box/donkpockets{ pixel_x = -3 }, @@ -4148,32 +5445,36 @@ pixel_y = 9; pixel_x = 7 }, -/turf/open/floor/plasteel/dark, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "SE" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, /obj/effect/turf_decal/industrial/outline/orange, +/obj/machinery/portable_atmospherics/canister/toxins, /turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) +"SG" = ( +/obj/structure/toilet{ + dir = 1 + }, +/turf/open/floor/plating/catwalk_floor, +/area/ship/security) "SN" = ( -/obj/effect/turf_decal/trimline/opaque/yellow/filled/line{ +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/line{ dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) -"SU" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/ship/hallway/central) "Tb" = ( -/turf/closed/wall/r_wall, -/area/ship/storage) +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/storage/equip) "Te" = ( /obj/machinery/light/floor, /turf/open/floor/engine/hull, -/area/ship/external) +/area/ship/external/dark) "Tg" = ( /obj/structure/railing/corner{ dir = 4 @@ -4184,60 +5485,89 @@ /turf/open/floor/plating, /area/ship/maintenance/port) "Tl" = ( -/obj/machinery/light/dim/directional/north, -/obj/machinery/light/floor, -/turf/open/floor/engine/hull, -/area/ship/external) +/obj/structure/sign/nanotrasen/vigilitas, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/central) "Tz" = ( -/turf/closed/wall/r_wall, -/area/ship/engineering) +/obj/effect/turf_decal/corner/opaque/vired/three_quarters, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/port) +"TG" = ( +/obj/item/toy/plush/spider, +/obj/machinery/camera/autoname{ + dir = 9 + }, +/obj/structure/table/reinforced{ + color = "#8A9397" + }, +/turf/open/floor/plasteel/tech, +/area/ship/security) "TL" = ( -/obj/structure/closet/crate, /obj/machinery/light/dim/directional/north, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 5 + }, +/obj/item/bedsheet/qm, +/obj/structure/bed, +/obj/structure/curtain/bounty, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) "TR" = ( -/obj/structure/table/wood, /obj/machinery/light/dim/directional/north, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "TZ" = ( -/obj/effect/turf_decal/trimline/opaque/orange/arrow_ccw{ +/obj/structure/chair/handrail{ dir = 4 }, -/obj/effect/turf_decal/trimline/opaque/orange/filled/line{ +/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/port) "Ua" = ( /obj/machinery/camera/autoname{ dir = 9 }, -/turf/open/floor/circuit/green/airless, +/obj/machinery/button/door{ + dir = 8; + pixel_x = 26; + id = "AiCore"; + name = "Core Access"; + req_access_txt = "20"; + pixel_y = 8 + }, +/obj/effect/turf_decal/spline/fancy/opaque/black{ + dir = 5 + }, +/obj/effect/turf_decal/trimline/opaque/yellow/filled/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "Uj" = ( /obj/structure/table/reinforced{ color = "#c1b6a5" }, -/obj/item/paper_bin{ - pixel_y = 8; - pixel_x = 5 - }, -/obj/item/pen/fountain{ - pixel_x = -4; - pixel_y = 7 - }, -/obj/machinery/recharger{ - pixel_x = -4 +/obj/effect/turf_decal/techfloor{ + dir = 5 }, -/obj/item/stamp/captain{ - pixel_x = 7 +/obj/effect/spawner/lootdrop/lpaid{ + pixel_x = 2; + pixel_y = -2 }, -/turf/open/floor/plasteel/dark, +/obj/effect/spawner/lootdrop/lpretrieval{ + pixel_x = -10; + pixel_y = 10 + }, +/turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "Ur" = ( /obj/structure/cable{ @@ -4246,36 +5576,38 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/trimline/opaque/orange/arrow_cw{ +/obj/structure/chair/handrail{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/vired/arrow_cw{ dir = 8 }, -/obj/effect/turf_decal/trimline/opaque/orange/filled/line{ +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/port) "Us" = ( /obj/effect/turf_decal/siding/red{ dir = 9 }, -/obj/machinery/door_timer{ - pixel_y = 28; - id = "ranger_brig" +/obj/structure/closet/crate/bin, +/obj/machinery/camera/autoname{ + dir = 4 }, -/turf/open/floor/mineral/plastitanium/red/brig, +/turf/open/floor/plasteel/tech, /area/ship/security) "Ut" = ( /obj/structure/urinal{ pixel_y = 29 }, /obj/machinery/light/dim/directional/west, -/turf/open/floor/plastic, +/turf/open/floor/plasteel/showroomfloor, /area/ship/crew/toilet) "UQ" = ( /turf/open/floor/engine/air, /area/ship/hallway/central) "UU" = ( -/obj/machinery/door/airlock/public/glass, /obj/structure/cable{ icon_state = "1-2" }, @@ -4283,31 +5615,31 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/machinery/door/poddoor/shutters/preopen{ + name = "Corridor Lockdown Port"; + id = "RangerPortShutters" + }, +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "UW" = ( /obj/structure/cable/cyan{ icon_state = "6-9" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/decal/cleanable/plasma, /turf/open/floor/plating, /area/ship/maintenance/port) "Vg" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/door/firedoor/window, -/obj/machinery/door/poddoor/shutters{ - dir = 4; - id = "Ranger_Cycler_Shutters" +/obj/machinery/camera/autoname{ + dir = 10 }, -/turf/open/floor/plating, -/area/ship/hallway/central) +/obj/machinery/light/floor, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "Vh" = ( /obj/structure/cable{ icon_state = "2-4" @@ -4319,21 +5651,14 @@ dir = 1 }, /obj/effect/turf_decal/trimline/opaque/red/filled/line, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Vk" = ( -/obj/structure/bed, -/obj/item/bedsheet/nanotrasen, -/obj/machinery/firealarm/directional/north, -/obj/item/toy/plush/moth/royal{ - pixel_x = 5; - pixel_y = 1 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 }, /turf/open/floor/wood, -/area/ship/crew/dorm) +/area/ship/crew/dorm/captain) "Vm" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8 @@ -4341,12 +5666,13 @@ /turf/open/floor/plating, /area/ship/maintenance/starboard) "Vp" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/hallway/starboard) "Vq" = ( -/obj/machinery/portable_atmospherics/canister/toxins, /obj/effect/turf_decal/industrial/outline/orange, /obj/effect/decal/cleanable/plasma, +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/effect/decal/cleanable/plasma, /turf/open/floor/plasteel/tech, /area/ship/maintenance/port) "Vt" = ( @@ -4355,16 +5681,27 @@ icon_state = "0-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/space_heater, +/obj/structure/railing, /turf/open/floor/plating, /area/ship/maintenance/port) "VC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/stairs, +/turf/open/floor/plasteel/stairs{ + color = "#8A9397" + }, /area/ship/crew/cryo) -"VJ" = ( -/obj/machinery/door/airlock/engineering{ - dir = 4 +"VE" = ( +/obj/structure/grille, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 4; + name = "Bridge-Atrium Shutters"; + id = "BridgeAtrium" }, +/obj/structure/window/reinforced/fulltile/shuttle, +/turf/open/floor/plating, +/area/ship/bridge) +"VJ" = ( /obj/structure/cable{ icon_state = "4-8" }, @@ -4374,39 +5711,52 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/corner/opaque/solgovgold/border{ dir = 8 }, /turf/open/floor/plasteel/dark, /area/ship/hallway/central) "VM" = ( /obj/effect/turf_decal/industrial/outline/blue, -/obj/item/storage/box/lights/mixed{ - pixel_x = -4; - pixel_y = 6 +/obj/machinery/washing_machine, +/obj/structure/railing{ + dir = 8 }, -/obj/item/storage/box/mousetraps{ - pixel_y = -1; - pixel_x = 3 +/obj/item/toy/plush/tali{ + pixel_y = 14 }, -/turf/open/floor/plating, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) "VP" = ( -/obj/structure/window/reinforced{ - dir = 8 +/obj/machinery/newscaster/security_unit/directional/south, +/obj/structure/chair/office{ + dir = 4; + name = "tactical swivel chair" }, -/obj/structure/closet, -/turf/open/floor/plasteel/dark, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/mineral/plastitanium/red/brig, /area/ship/security) "VQ" = ( /obj/machinery/camera/autoname{ dir = 5 }, /turf/open/floor/engine/hull, -/area/ship/external) +/area/ship/external/dark) +"We" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable{ + icon_state = "0-6" + }, +/obj/structure/railing{ + dir = 4; + layer = 4.1 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 5 + }, +/obj/structure/closet/crate/bin, +/turf/open/floor/plasteel/lightgrey, +/area/ship/hallway/central) "Wj" = ( /obj/structure/bed, /obj/item/radio/intercom/directional/south, @@ -4416,7 +5766,8 @@ "Wp" = ( /obj/machinery/door/poddoor{ dir = 2; - id = "Ranger_AI_Core_Blasts" + id = "Ranger_AI_Core_Blasts"; + name = "Communications Access" }, /obj/machinery/power/shieldwallgen/atmos/roundstart{ id = "AI_Core_Field_Engi"; @@ -4429,7 +5780,7 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/turf/open/floor/plating, +/turf/open/floor/noslip, /area/ship/engineering) "Wr" = ( /obj/structure/cable{ @@ -4438,10 +5789,10 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/corner/opaque/ntblue{ +/obj/effect/turf_decal/corner/opaque/vired{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Wv" = ( /obj/structure/chair/sofa/brown/right/directional/south, @@ -4452,12 +5803,28 @@ pixel_x = -7; pixel_y = 21 }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) +"Wz" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on/layer4, +/turf/open/floor/engine/hull, +/area/ship/external/dark) "WF" = ( -/obj/item/radio/intercom/wideband, -/turf/closed/wall/r_wall, -/area/ship/bridge) +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/effect/turf_decal/techfloor{ + dir = 4 + }, +/obj/machinery/light/dim/directional/south, +/turf/open/floor/plasteel/tech, +/area/ship/engineering/communications) "WG" = ( /obj/machinery/telecomms/server/presets/nanotrasen{ autolinkers = list("nanotrasen","hub"); @@ -4465,20 +5832,23 @@ freq_listening = list(1353,1447,1459) }, /obj/item/disk/holodisk/lp/stations, -/turf/open/floor/circuit/telecomms{ - initial_gas_mix = "TEMP=2.7" +/obj/effect/turf_decal/techfloor{ + dir = 1 }, +/turf/open/floor/circuit, /area/ship/engineering/communications) "WR" = ( -/obj/effect/turf_decal/corner/opaque/brown/mono, -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/ship/storage) +/obj/effect/decal/cleanable/shreds, +/obj/effect/decal/cleanable/wrapping, +/turf/open/floor/plasteel/tech, +/area/ship/storage/equip) "WZ" = ( /obj/machinery/computer/telecomms/server{ - dir = 4 + dir = 4; + icon_state = "computer-middle" }, /obj/machinery/light/dim/directional/west, /turf/open/floor/plasteel/mono/dark, @@ -4486,44 +5856,84 @@ "Xb" = ( /obj/effect/turf_decal/corner/opaque/blue/diagonal, /obj/structure/window/reinforced/spawner, -/obj/structure/closet, +/obj/structure/closet/wall/med/directional/east{ + name = "Anesthetics Closet" + }, +/obj/item/tank/internals/anesthetic{ + pixel_x = -2 + }, +/obj/item/tank/internals/anesthetic{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath/medical{ + pixel_x = 3 + }, +/obj/item/clothing/mask/breath/medical{ + pixel_x = 6; + pixel_y = -3 + }, +/obj/effect/turf_decal/borderfloorwhite/corner{ + dir = 1 + }, +/obj/structure/table/chem, +/obj/structure/sink/chem{ + pixel_x = 2; + pixel_y = 3 + }, /turf/open/floor/plasteel/white, /area/ship/medical) "Xt" = ( -/obj/machinery/space_heater, /obj/machinery/light/dim/directional/south, /obj/machinery/airalarm/directional/east, -/turf/open/floor/plasteel/tech, -/area/ship/storage) +/obj/machinery/suit_storage_unit/inherit{ + name = "Engineering Specialist's Storage Unit" + }, +/obj/item/clothing/mask/breath, +/obj/item/clothing/suit/space/hardsuit/ert/lp/engi, +/obj/item/tank/internals/oxygen/yellow, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/lightgrey, +/area/ship/storage/equip) "XA" = ( /obj/structure/cable{ icon_state = "1-10" }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/structure/cable{ + icon_state = "5-10" + }, /turf/open/floor/plasteel/dark, /area/ship/bridge) "XE" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 4 - }, /obj/structure/cable{ icon_state = "2-5" }, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/vired/half{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "XH" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable{ icon_state = "0-8" }, -/obj/machinery/firealarm/directional/south, +/obj/effect/turf_decal/techfloor{ + dir = 1 + }, +/obj/structure/closet/wall/directional/south, +/obj/effect/turf_decal/corner/opaque/lightgrey{ + dir = 10 + }, /turf/open/floor/plasteel/dark, /area/ship/crew/cryo) "XL" = ( -/obj/machinery/door/airlock/public/glass, /obj/structure/cable{ icon_state = "1-2" }, @@ -4531,10 +5941,18 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/machinery/door/poddoor/shutters/preopen{ + name = "Corridor Lockdown Starboard"; + id = "RangerStarboardShutters" + }, +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 4 }, -/turf/open/floor/plasteel/white, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "XQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ @@ -4546,7 +5964,7 @@ /obj/effect/turf_decal/trimline/opaque/blue/filled/corner{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "XR" = ( /obj/machinery/door/airlock/public/glass, @@ -4557,20 +5975,27 @@ /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 4 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "XS" = ( /obj/effect/turf_decal/corner/opaque/blue/diagonal, -/obj/structure/table/greyscale, /obj/machinery/light/dim/directional/east, -/obj/item/toy/plush/moth/ragged, +/obj/item/storage/backpack/duffelbag/med/surgery, +/obj/item/toy/plush/moth/ragged{ + pixel_y = 11 + }, +/obj/effect/turf_decal/borderfloorwhite{ + dir = 8 + }, +/obj/structure/table/chem, +/obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/plasteel/white, /area/ship/medical) "XT" = ( -/turf/closed/wall/r_wall, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/cargo) "XV" = ( /obj/machinery/camera/autoname{ @@ -4582,24 +6007,30 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Yk" = ( -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plasteel/tech, +/obj/effect/turf_decal/trimline/opaque/nsorange/warning, +/obj/effect/turf_decal/siding{ + color = "#474747" + }, +/turf/open/floor/plasteel/lightgrey, /area/ship/cargo) "Yw" = ( -/obj/machinery/door/airlock/public/glass, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/door/firedoor/border_only, /obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/machinery/door/poddoor/shutters/preopen{ + name = "Corridor Lockdown Starboard"; + id = "RangerStarboardShutters" + }, +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Yy" = ( /obj/machinery/power/shieldwallgen/atmos/roundstart{ @@ -4619,33 +6050,47 @@ /turf/open/floor/plasteel, /area/ship/hallway/port) "Yz" = ( -/obj/structure/window/reinforced, -/obj/effect/turf_decal/siding/red{ - dir = 6 +/obj/effect/turf_decal/techfloor{ + dir = 4 }, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable{ - icon_state = "0-9" +/obj/effect/turf_decal/techfloor{ + dir = 8 }, -/turf/open/floor/mineral/plastitanium/red/brig, +/obj/machinery/door/airlock/security/brig{ + dir = 8; + id_tag = "SecureCell"; + name = "Holding Cell"; + req_access_txt = "1" + }, +/turf/open/floor/plating, /area/ship/security) "YJ" = ( -/obj/machinery/suit_storage_unit/inherit, -/obj/item/clothing/suit/space/hardsuit/ancient/lp, -/obj/item/clothing/mask/breath, -/obj/effect/turf_decal/corner/opaque/brown/mono, -/obj/item/tank/internals/emergency_oxygen, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/dark, -/area/ship/storage) -"YK" = ( -/obj/machinery/light_switch{ +/obj/effect/turf_decal/corner/opaque/vired/three_quarters, +/obj/structure/table/reinforced, +/obj/item/screwdriver{ + pixel_x = -7; + pixel_y = 7 + }, +/obj/item/screwdriver{ + pixel_x = -7 + }, +/obj/item/hand_labeler{ pixel_x = 8; - pixel_y = 22 + pixel_y = 13 }, -/turf/open/floor/plasteel/stairs/wood{ +/obj/effect/turf_decal/siding/thinplating/dark/corner{ dir = 8 }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/plasteel/tech, +/area/ship/storage/equip) +"YK" = ( +/obj/machinery/firealarm/directional/north{ + pixel_x = -4 + }, +/obj/structure/table/reinforced, +/obj/machinery/computer/helm/viewscreen/directional/west, +/turf/open/floor/plasteel/white, /area/ship/medical) "YP" = ( /obj/structure/cable{ @@ -4663,21 +6108,29 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 6 }, -/turf/open/floor/plating, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 1 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 8 + }, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/starboard) "YW" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/camera/autoname{ dir = 4 }, /obj/item/radio/intercom/directional/west, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) "Zj" = ( /obj/machinery/atmospherics/components/unary/shuttle/heater{ @@ -4688,22 +6141,33 @@ }, /obj/machinery/door/poddoor/shutters{ dir = 4; - id = "Ranger_Port_maint_shut" + id = "Ranger_Port_maint_shut"; + name = "Engine Shutters" }, /turf/open/floor/plating, /area/ship/maintenance/port) "Zk" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/visible{ - dir = 4 - }, /obj/machinery/advanced_airlock_controller{ pixel_y = 24 }, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/techfloor{ + dir = 8 + }, +/obj/item/tank/internals/emergency_oxygen, +/obj/item/clothing/mask/breath, +/obj/machinery/suit_storage_unit/inherit{ + name = "Emergency EVA Suit" + }, +/obj/item/clothing/head/helmet/space/fragile, +/obj/item/clothing/suit/space/fragile, +/turf/open/floor/plasteel/tech/techmaint{ + color = "#a8b2b6" + }, /area/ship/hallway/central) "Zl" = ( -/obj/machinery/portable_atmospherics/canister, /obj/effect/turf_decal/industrial/outline/orange, +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/effect/decal/cleanable/plasma, /turf/open/floor/plasteel/tech, /area/ship/maintenance/port) "Zs" = ( @@ -4717,70 +6181,113 @@ /obj/structure/cable{ icon_state = "1-6" }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, +/area/ship/hallway/port) +"Zu" = ( +/obj/effect/turf_decal/trimline/opaque/vired/arrow_ccw{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/port) "Zv" = ( /obj/machinery/firealarm/directional/west, +/obj/machinery/camera/autoname{ + dir = 4 + }, /turf/open/floor/wood, /area/ship/security) "Zw" = ( /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "Zx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/ntblue{ +/obj/effect/turf_decal/corner/opaque/vired{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "ZF" = ( /obj/machinery/light/dim/directional/south, /obj/effect/turf_decal/industrial/outline/blue, /obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, +/turf/open/floor/plasteel/tech, /area/ship/maintenance/port) "ZI" = ( /obj/structure/cable{ icon_state = "4-8" }, /obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner, -/turf/open/floor/plasteel/white, +/obj/structure/chair/handrail{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, /area/ship/hallway/starboard) "ZJ" = ( /obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/turf/open/floor/plasteel/tech/airless, +/turf/open/floor/plasteel/tech, /area/ship/engineering/communications) "ZL" = ( /obj/machinery/vending/coffee, -/obj/machinery/light/dim/directional/east, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/lightgrey, /area/ship/hallway/central) "ZS" = ( -/obj/machinery/portable_atmospherics/scrubber, -/turf/open/floor/plasteel/tech, -/area/ship/storage) +/obj/structure/closet/syndicate{ + desc = "It's the armory closet. A closet with shelving, in an armory!" + }, +/obj/machinery/door/window/brigdoor/eastright{ + dir = 2; + req_access_txt = "1"; + name = "Armory"; + req_ship_access = 1 + }, +/obj/item/storage/pistolcase/commander, +/obj/item/ammo_box/magazine/co9mm, +/obj/item/clothing/suit/armor/nanotrasen/slim, +/obj/item/clothing/suit/armor/nanotrasen/slim, +/obj/item/ammo_box/magazine/smgm9mm, +/obj/item/ammo_box/magazine/smgm9mm, +/obj/item/ammo_box/magazine/smgm9mm, +/obj/item/storage/pistolcase, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 5 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 6 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 5 + }, +/obj/item/gun/ballistic/automatic/smg/skm_carbine/inteq/proto, +/turf/open/floor/plasteel/lightgrey, +/area/ship/storage/equip) "ZW" = ( /obj/machinery/light/dim/directional/north, /obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ dir = 1 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/plasteel/dark, /area/ship/hallway/port) "ZY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 +/obj/structure/chair/handrail{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ +/obj/effect/turf_decal/corner/opaque/vired/half{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/dark, /area/ship/hallway/central) (1,1,1) = {" @@ -4795,6 +6302,7 @@ tg tg LV zW +yK zW zW zW @@ -4808,8 +6316,7 @@ zW zW zW zW -zW -zW +yK zW QT qs @@ -4937,8 +6444,8 @@ zW zW zW LV -Zl -Vq +ci +hp aW UW hl @@ -4962,7 +6469,7 @@ qQ gD ib eN -RS +Lw Dd QT zW @@ -5045,10 +6552,10 @@ zW (8,1,1) = {" zW zW -zW +hN vm -xp -Aw +vm +cj oQ tq LV @@ -5060,9 +6567,9 @@ zW zW Kg Pd -vO +Ox IE -vO +Ep Nf Kg zW @@ -5077,7 +6584,7 @@ Zv AZ Wj fV -zW +sp "} (9,1,1) = {" zW @@ -5086,7 +6593,7 @@ vm vm YK aO -Om +Aw Gn LV vT @@ -5094,7 +6601,7 @@ LV LV zW zW -wq +yK Kg MK Ua @@ -5102,7 +6609,7 @@ vO Nn Cq Kg -wq +yK zW zW QT @@ -5130,14 +6637,14 @@ zc jA zW zW -Tz -Tz +wU +wU Kg Kg Kg kw gk -zB +Kg Kg Kg Kg @@ -5146,7 +6653,7 @@ zW Vp cN vR -fV +nq Us Js Ma @@ -5165,25 +6672,25 @@ Qu Cb NR jA -zW -Tz -Tz +qe +wU +wU jt WZ Mh -Tz +wU nE -fU -kt +WF +Kg LM bX Kg Kg -zW +fo Vp Ff wT -fV +nq gi Lg bN @@ -5203,10 +6710,10 @@ XQ PR jA zW -Tz +wU LQ -MD aP +Pu xq Wp Gz @@ -5224,7 +6731,7 @@ qR tQ nh Dx -Dx +yk fV "} (13,1,1) = {" @@ -5240,7 +6747,7 @@ cR pU jA zW -Tz +wU gN dr rC @@ -5249,7 +6756,7 @@ Dr ZJ fU Mx -tT +MD tT ux Kg @@ -5258,9 +6765,9 @@ Vp TR KX fV -Ji +fV Yz -hf +iH iH fV "} @@ -5277,15 +6784,15 @@ bf tR jA zW -Tz +wU Ge or JP -Tz -Tz +wU +wU hK Hd -Tz +wU Ds Bo WG @@ -5294,11 +6801,11 @@ zW Vp bD iD -fV -fV -fV -fV -fV +dm +hf +Ab +Ji +SG fV "} (15,1,1) = {" @@ -5314,8 +6821,8 @@ jH uE jA zW -Tz -Tz +wU +wU Sl Nd IC @@ -5332,11 +6839,11 @@ Vp yo Cg of -gg -Ut -BI +jd +TG +my xv -gg +fV "} (16,1,1) = {" zW @@ -5352,15 +6859,15 @@ Kf jA zW zW -Tz -Tz +wU +wU Qt -Tz +wU Ca rA yU -dP -wf +wU +Kg Kg Kg zW @@ -5370,7 +6877,7 @@ pi iZ ji gg -am +gg gg gg gg @@ -5382,24 +6889,24 @@ JR Iy ym VC -VC +CW EL ml -jA +Tz jA zW zW -zW -Tz -Tz -Tz +Vg +wU +wU +wU up hn aG -Tz +df Kg Kg -zW +sp zW zW Vp @@ -5407,8 +6914,8 @@ Vp MI zF gg -my -fo +Ut +BI BA gg "} @@ -5428,13 +6935,13 @@ zW zW zW zW -Tz +wU jr Mt lX Ny JK -Tz +wU zW zW zW @@ -5444,9 +6951,9 @@ Vp dK ZI gg -qe -oM -yK +am +gg +gg gg "} (19,1,1) = {" @@ -5456,7 +6963,7 @@ JR tb mQ rq -rq +gr Zs pf jA @@ -5465,13 +6972,13 @@ zW zW zW zW -Tz +wU ps Hs tk Bh GY -Tz +wU zW zW zW @@ -5501,15 +7008,15 @@ jA zW zW zW -Tz -Tz -eo +wU +wU +wU FB wU -hZ -Lw -Tz -Tz +wU +wU +wU +wU zW zW zW @@ -5539,13 +7046,13 @@ sJ sJ sJ sJ -sJ -sJ +We +hZ VJ -sJ -sJ -sJ -sJ +rX +Sv +Kl +eo sJ sJ sJ @@ -5565,7 +7072,7 @@ zW zW zW QV -jA +gd KQ wp oz @@ -5576,13 +7083,13 @@ gW ZY CG mw -rX +MR vj fd -Ox +yG BX Gk -Kl +bK mw zi lj @@ -5593,19 +7100,19 @@ nA Mm uk xA -Vp -QV +jQ +ww zW "} (23,1,1) = {" zW zW zW -wq +Gs HA TZ -RB -oz +Zu +dN pa kO UU @@ -5613,7 +7120,7 @@ PG Gh XR OP -OP +DQ OP OP BY @@ -5652,14 +7159,14 @@ sJ Wv Fx fy -bu +PB pn Av tf -bu +iS rT sJ -Vg +sJ ok sJ OK @@ -5674,8 +7181,8 @@ zW (25,1,1) = {" zW zW -zW -hN +ef +Og jA Po iX @@ -5690,10 +7197,10 @@ ox IM RM Mn -bu +iv bu AP -bu +Ih kK sJ Zk @@ -5709,7 +7216,7 @@ hz zW "} (26,1,1) = {" -ef +zW zW zW zW @@ -5740,7 +7247,7 @@ DZ So Eq lU -cj +EA XT zW zW @@ -5758,14 +7265,14 @@ jZ Be Tb sJ -SU +sJ Mf Gc Ha Lk -Lk -Lk -Lk +VE +VE +VE tj Lk sJ @@ -5775,8 +7282,8 @@ CP XT Iz lv +Yk pD -ww vz XT zW @@ -5795,8 +7302,8 @@ wu yZ Tb NC -jC Mf +jC mv Ao JO @@ -5804,17 +7311,17 @@ pA lD hF ec +wf Lk -Te -wq -zW -zW +Wz +dx +RB XT lw -pD +Om Yk -hp gL +vo XT zW zW @@ -5832,8 +7339,8 @@ Qf Xt Tb zW -zW Mf +Mu Vk NZ Lk @@ -5841,15 +7348,15 @@ sf iF XA Sa +xp Lk wq zW zW -zW XT TL -pD -pD +Fg +zB eE XT XT @@ -5869,18 +7376,18 @@ YJ Tb Tb zW -zW Mf -Mu +Mf +qn hx Lk AF vp CI dC +kt Lk -zW -zW +wq zW zW XT @@ -5909,14 +7416,14 @@ zW zW Mf Mf -Fg +Mf Lk tK og NM ff Lk -zW +Lk zW zW zW @@ -5982,14 +7489,14 @@ zW zW zW zW -wq +VQ wq Lk mn cv lW -WF -VQ +Lk +rw zW zW zW diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index 22e69cd06d9f..2870e31eff97 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -281,6 +281,8 @@ #define ATMOS_GAS_MONITOR_WASTE_ENGINE "engine-waste_out" #define ATMOS_GAS_MONITOR_WASTE_ATMOS "atmos-waste_out" +#define GAS_MONITOR_SENSOR_EXTERNAL "GAS_MONITOR_SENSOR_EXTERNAL" + //AIRLOCK CONTROLLER TAGS //RnD toxins burn chamber diff --git a/code/game/MapData/shuttles/nanotrasen_ranger.dm b/code/game/MapData/shuttles/nanotrasen_ranger.dm index 40f7816c2eb0..08f1a7c670d2 100644 --- a/code/game/MapData/shuttles/nanotrasen_ranger.dm +++ b/code/game/MapData/shuttles/nanotrasen_ranger.dm @@ -158,7 +158,7 @@ icon_state = "hardsuit0-ert_medical" item_state = "hardsuit0-ert_medical" hardsuit_type = "ert_medical" - clothing_flags = SCAN_REAGENTS + clothing_flags = SCAN_REAGENTS | STOPSPRESSUREDAMAGE | THICKMATERIAL | SNUG_FIT | BLOCK_GAS_SMOKE_EFFECT | ALLOWINTERNALS /obj/item/clothing/head/helmet/space/hardsuit/lp name = "RIG heatsuit helmet" @@ -170,7 +170,7 @@ /obj/item/clothing/suit/space/hardsuit/ancient/lp name = "RIG heat suit" - desc = "A fully heat resistance suit based on an early RIG hardsuit prototype. It sacrifices armor of any kind for intricate heatsinks. It remains rather bulky as a result." + desc = "A fully heat-resistant suit based on an early RIG hardsuit prototype. It sacrifices armor of any kind for intricate heatsinks. It remains rather bulky as a result." armor = list("melee" = 5, "bullet" = 5, "laser" = 1, "energy" = 1, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 75) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/lp heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS @@ -179,114 +179,6 @@ //holotapes -/obj/item/disk/holodisk/lp/combat/syndicate1 - name = "Combat Mission Eliminate Force" - desc = "A holodisk containing a combat mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a combat objective. The LP will have to get their hands dirty for this one. - DELAY 25 - SAY The LP is to respond to a hostile threat from a Syndicate vessel. In such action they are to kill or otherwise subdue the primary fighting force. - DELAY 25 - "} - -/obj/item/disk/holodisk/lp/combat/syndicate2 - name = "Combat Mission Capture" - desc = "A holodisk containing a combat mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a combat objective. The LP will have to get their hands dirty for this one. - DELAY 25 - SAY The LP is to respond to a hostile threat from a Syndicate vessel. In such action they are to subdue and capture one of the armed members of the crew. They should be stripped of gear, interrogated, and converted to NT if possible. If not possible, release them to whatever ship they belonged to or will accept them. - DELAY 25 - "} - -/obj/item/disk/holodisk/lp/combat/syndicate3 - name = "Combat Mission Capture Commander" - desc = "A holodisk containing a combat mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a combat objective. The LP will have to get their hands dirty for this one. - DELAY 25 - SAY The LP is to respond to a hostile threat from a Syndicate vessel. In such action they are to eliminate whatever leader or captain of such vession and bring their body back in a bodybag. The Medical Specialist has been given a box of them for such an occasion. - DELAY 25 - "} - -/obj/item/disk/holodisk/lp/combat/syndicate4 - name = "Combat Mission Secret Documents" - desc = "A holodisk containing a combat mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a combat objective. The LP will have to get their hands dirty for this one. - DELAY 25 - SAY The LP is to respond to a hostile threat from a Syndicate vessel. In such action they are to retrieve a set of secret documents from the syndicate vessel. This will likely require a boarding operation. Good luck. - DELAY 25 - "} - -/obj/item/disk/holodisk/lp/combat/megafauna - name = "Combat Mission Megafauna" - desc = "A holodisk containing a combat mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a combat objective. The LP will have to get their hands dirty for this one. - DELAY 25 - SAY This mission is very simple. The LP is to seek out a megafauna specimen and slay it. - DELAY 25 - "} - -/obj/item/disk/holodisk/lp/combat/bdm - name = "Combat Mission Blood Drunk" - desc = "A holodisk containing a combat mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a combat objective. The LP will have to get their hands dirty for this one. - DELAY 25 - SAY This mission is straightforward. The LP team is to seek out two blood drunk mines and termninate them. Bring back whatever weapons they wield and recover the bodies for the vault. - DELAY 25 - "} - -/obj/item/disk/holodisk/lp/combat/tumor - name = "Combat Mission Tumor" - desc = "A holodisk containing a combat mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a combat objective. The LP will have to get their hands dirty for this one. - DELAY 25 - SAY This mission is rather straightforward. Seak out 2 pulsing tumors and elimate the threat they produce. Return the body of the threat to the vault. - DELAY 25 - "} - -/obj/item/disk/holodisk/lp/combat/bloodred - name = "Combat Mission Blood Red" - desc = "A holodisk containing a combat mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a combat objective. The LP will have to get their hands dirty for this one. - DELAY 25 - SAY This mission overlaps with the retrieval missions. The LP is simply to obtain a Blood Red Hardsuit. This may include responding to a hostile syndicate vessel to take it by force. - DELAY 25 - "} - -/obj/item/disk/holodisk/lp/retrieval/supersuit - name = "Retrieval Mission Lost Hardsuit" - desc = "A holodisk containing a retrieval mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a retrieval objective. The LP will need to obtain or create something. - DELAY 25 - SAY This one is a bit difficult but completing it is extremely rewarding. Our sources show that two of our experimental hardsuits have been lost to the necropolis. Retrieve a Champion's Hardsuit or an Inquisitor's Hardsuit. These are often found in necropolis chests or held by certain megafauna. - DELAY 25 - "} - /obj/item/disk/holodisk/lp/retrieval/phazon name = "Retrieval Mission Secret Exosuit" desc = "A holodisk containing a retrieval mission for the LP." @@ -323,18 +215,6 @@ DELAY 25 "} -/obj/item/disk/holodisk/lp/retrieval/artifact - name = "Retrieval Mission Artifact" - desc = "A holodisk containing a retrieval mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around a retrieval objective. The LP will need to obtain or create something. - DELAY 25 - SAY For this mission the LP is to find three artifacts. These include but are not limited to, anything stored in a necropolis chest, most megafauna loot, anything befitting someone magical or otherwise special. - DELAY 25 - "} - /obj/item/disk/holodisk/lp/retrieval/materials name = "Retrieval Mission Materials" desc = "A holodisk containing a retrieval mission for the LP." @@ -347,18 +227,6 @@ DELAY 25 "} -/obj/item/disk/holodisk/lp/aid/recruits - name = "Aid Mission Recruitment Drive" - desc = "A holodisk containing an aid mission for the LP." - preset_image_type = /datum/preset_holoimage/commissioner - preset_record_text = {" - NAME Commissioner Gorre Donn - SAY This mission, should you choose to accept it, revolves around an aid objective. The LP will need to provide aid to local vessels not hostile or syndicate. - DELAY 25 - SAY Less providing aid and more networking. The LP will need to convince 4 independent vessels to switch to NTSV flight tags. - DELAY 25 - "} - /obj/item/disk/holodisk/lp/aid/repairs name = "Aid Mission Repair" desc = "A holodisk containing an aid mission for the LP." @@ -372,7 +240,7 @@ "} /obj/item/disk/holodisk/lp/aid/rescue - name = "Aid Mission Rescure" + name = "Aid Mission Rescue" desc = "A holodisk containing an aid mission for the LP." preset_image_type = /datum/preset_holoimage/commissioner preset_record_text = {" @@ -415,33 +283,14 @@ //lootdrop -/obj/effect/spawner/lootdrop/lpcombat - name = "LP Combat Missions" - lootdoubles = FALSE - - loot = list( - /obj/item/disk/holodisk/lp/combat/syndicate1 = 1, - /obj/item/disk/holodisk/lp/combat/syndicate2 = 1, - /obj/item/disk/holodisk/lp/combat/syndicate3 = 1, - /obj/item/disk/holodisk/lp/combat/syndicate4 = 1, - /obj/item/disk/holodisk/lp/combat/megafauna = 5, - /obj/item/disk/holodisk/lp/combat/bdm = 5, - /obj/item/disk/holodisk/lp/combat/tumor = 5, - /obj/item/disk/holodisk/lp/combat/bloodred = 5 - ) - - lootcount = 2 - /obj/effect/spawner/lootdrop/lpretrieval name = "LP Retrieval Missions" lootdoubles = FALSE loot = list( - /obj/item/disk/holodisk/lp/retrieval/supersuit = 1, /obj/item/disk/holodisk/lp/retrieval/phazon = 1, /obj/item/disk/holodisk/lp/retrieval/durand = 1, /obj/item/disk/holodisk/lp/retrieval/gunstock = 1, - /obj/item/disk/holodisk/lp/retrieval/artifact = 1, /obj/item/disk/holodisk/lp/retrieval/materials = 1 ) @@ -452,11 +301,10 @@ lootdoubles = FALSE loot = list( - /obj/item/disk/holodisk/lp/aid/recruits = 1, /obj/item/disk/holodisk/lp/aid/repairs = 1, /obj/item/disk/holodisk/lp/aid/rescue = 1, /obj/item/disk/holodisk/lp/aid/guard = 1, ) - lootcount = 2 + lootcount = 4 diff --git a/code/game/area/ship_areas.dm b/code/game/area/ship_areas.dm index 81fb4d20d124..54d74fc9538a 100644 --- a/code/game/area/ship_areas.dm +++ b/code/game/area/ship_areas.dm @@ -474,6 +474,9 @@ NOTE: there are two lists of areas in the end of this file: centcom and station name = "EVA Storage" icon_state = "eva" +/area/ship/storage/equip + name = "Equipment Room" + /// External Areas /// /area/ship/external name = "External" diff --git a/code/game/machinery/computer/atmos_control.dm b/code/game/machinery/computer/atmos_control.dm index 81d2860473c7..6e8b1b447cf2 100644 --- a/code/game/machinery/computer/atmos_control.dm +++ b/code/game/machinery/computer/atmos_control.dm @@ -42,6 +42,9 @@ /obj/machinery/air_sensor/atmos/incinerator_tank name = "incinerator chamber gas sensor" id_tag = ATMOS_GAS_MONITOR_SENSOR_INCINERATOR +/obj/machinery/air_sensor/external + name = "external atmosphere sensor" + id_tag = GAS_MONITOR_SENSOR_EXTERNAL /obj/machinery/air_sensor/update_icon_state() icon_state = "gsensor[on]" @@ -306,7 +309,11 @@ GLOBAL_LIST_EMPTY(atmos_air_controllers) icon_state = "computer-solgov" deconpath = /obj/structure/frame/computer/solgov -// This hacky madness is the evidence of the fact that a lot of machines were never meant to be constructable, im so sorry you had to see this +/obj/machinery/computer/atmos_control/external + sensors = list(GAS_MONITOR_SENSOR_EXTERNAL = "External Atmospherics Monitoring") + name = "External Atmospherics Monitoring" +//tbh I would love it if someone could make this like. Unique like ship camera networks & etc. +//This hacky madness is the evidence of the fact that a lot of machines were never meant to be constructable, im so sorry you had to see this /obj/machinery/computer/atmos_control/tank/proc/reconnect(mob/user) var/list/IO = list() var/datum/radio_frequency/freq = SSradio.return_frequency(frequency) diff --git a/code/game/objects/effects/decals/turfdecal/flooring_decals.dm b/code/game/objects/effects/decals/turfdecal/flooring_decals.dm index fc23ed89c278..a2ec15e5022f 100644 --- a/code/game/objects/effects/decals/turfdecal/flooring_decals.dm +++ b/code/game/objects/effects/decals/turfdecal/flooring_decals.dm @@ -166,7 +166,7 @@ TURF_DECAL_COLOR_HELPER(transparent/lightgrey, "#a8b2b6", 140) TURF_DECAL_COLOR_HELPER(transparent/bottlegreen, "#57967f", 140) TURF_DECAL_COLOR_HELPER(transparent/ntblue, "#283674", 140) TURF_DECAL_COLOR_HELPER(transparent/nsorange, "#FF6600", 140) -TURF_DECAL_COLOR_HELPER(opaque/vired, "#d40000", 140) +TURF_DECAL_COLOR_HELPER(transparent/vired, "#d40000", 140) TURF_DECAL_COLOR_HELPER(transparent/solgovblue, "#2d2a4e", 140) TURF_DECAL_COLOR_HELPER(transparent/solgovgold, "#eeac2e", 140) TURF_DECAL_COLOR_HELPER(transparent/syndiered, "#730622", 140) diff --git a/code/game/turfs/open/floor/plasteel_floor.dm b/code/game/turfs/open/floor/plasteel_floor.dm index 61a90ff0da86..1feb9d0921e0 100644 --- a/code/game/turfs/open/floor/plasteel_floor.dm +++ b/code/game/turfs/open/floor/plasteel_floor.dm @@ -151,6 +151,13 @@ base_icon_state = "plaque" tiled_dirt = FALSE +/turf/open/floor/plasteel/lightgrey + name = "light grey floor" + icon_state = "corner_white_full" + base_icon_state = "corner_white_full" + icon = 'icons/turf/decals/decals.dmi' + color = "#a8b2b6" + /turf/open/floor/plasteel/cult/narsie_act() return diff --git a/code/modules/clothing/outfits/factions/nanotrasen.dm b/code/modules/clothing/outfits/factions/nanotrasen.dm index e292a6e61d03..aaba1d8054cf 100644 --- a/code/modules/clothing/outfits/factions/nanotrasen.dm +++ b/code/modules/clothing/outfits/factions/nanotrasen.dm @@ -495,7 +495,7 @@ gloves = /obj/item/clothing/gloves/color/black uniform = /obj/item/clothing/under/rank/security/head_of_security/alt/lp alt_uniform = /obj/item/clothing/under/rank/security/head_of_security/alt/skirt/lp - dcoat = /obj/item/clothing/suit/jacket + dcoat = /obj/item/clothing/suit/armor/nanotrasen/sec_director shoes = /obj/item/clothing/shoes/jackboots head = /obj/item/clothing/head/beret/command diff --git a/code/modules/projectiles/guns/ballistic/smg.dm b/code/modules/projectiles/guns/ballistic/smg.dm index 266c9059046a..6f52daaf2292 100644 --- a/code/modules/projectiles/guns/ballistic/smg.dm +++ b/code/modules/projectiles/guns/ballistic/smg.dm @@ -192,6 +192,7 @@ name = "\improper Nanotrasen Saber SMG" desc = "A prototype full-auto 9mm submachine gun, designated 'SABR'. Has a threaded barrel for suppressors and a folding stock." icon = 'icons/obj/guns/projectile.dmi' + default_attachments = list(/obj/item/attachment/foldable_stock) icon_state = "saber" item_state = "gun" mag_type = /obj/item/ammo_box/magazine/smgm9mm From 81c2b76d9d6bf9b3208cfb924b818f958f0760f6 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 28 Sep 2024 14:29:32 -0500 Subject: [PATCH 039/167] Automatic changelog generation for PR #3313 [ci skip] --- html/changelogs/AutoChangeLog-pr-3313.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3313.yml diff --git a/html/changelogs/AutoChangeLog-pr-3313.yml b/html/changelogs/AutoChangeLog-pr-3313.yml new file mode 100644 index 000000000000..0dc833094984 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3313.yml @@ -0,0 +1,4 @@ +author: fighterslam +changes: + - {balance: Modernizes and slightly buffs the Ranger.} +delete-after: true From 9697b58fe834ced004d62a97c236cc112a377a8a Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 29 Sep 2024 01:08:10 +0000 Subject: [PATCH 040/167] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3313.yml | 4 ---- html/changelogs/archive/2024-09.yml | 3 +++ 2 files changed, 3 insertions(+), 4 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3313.yml diff --git a/html/changelogs/AutoChangeLog-pr-3313.yml b/html/changelogs/AutoChangeLog-pr-3313.yml deleted file mode 100644 index 0dc833094984..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3313.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: fighterslam -changes: - - {balance: Modernizes and slightly buffs the Ranger.} -delete-after: true diff --git a/html/changelogs/archive/2024-09.yml b/html/changelogs/archive/2024-09.yml index d5ef25458196..0beabb6bcc8b 100644 --- a/html/changelogs/archive/2024-09.yml +++ b/html/changelogs/archive/2024-09.yml @@ -204,3 +204,6 @@ SomeguyManperson: - bugfix: legion skulls will no longer check if they should rise up and consume their owner if they are ownerless +2024-09-29: + fighterslam: + - balance: Modernizes and slightly buffs the Ranger. From d60cfa171a6751c0607b59e1324ae9f38c057c1b Mon Sep 17 00:00:00 2001 From: HelmCrab <90987989+Thera-Pissed@users.noreply.github.com> Date: Sun, 29 Sep 2024 01:05:01 -0500 Subject: [PATCH 041/167] New Waste Ruin: Abandoned Miskilamo Shipbreaking Yard (#3136) ## About The Pull Request New wasteplanet ruin, an abandoned shipbreaking yard owned by Miskilamo ![yardreal4](https://github.com/shiptest-ss13/Shiptest/assets/90987989/152420c3-8ab3-4821-84de-0b7f81b9236a) ![yardreal3](https://github.com/shiptest-ss13/Shiptest/assets/90987989/5b391f45-c153-4c66-b291-0cf4e49ca8bd) ![image](https://github.com/shiptest-ss13/Shiptest/assets/90987989/ba243059-a2c2-4e7f-9d7c-4926d1a4d2c4) ![yardmap2](https://github.com/shiptest-ss13/Shiptest/assets/90987989/08f6c0fc-bbe4-4299-ab5a-961c2ab7b0ca) ## Why It's Good For The Game Waste ruins are needed, I think! ## Changelog :cl: add: New wasteplanet ruin, the abandoned Miskilamo shipbreaking yard! /:cl: --- .../WasteRuins/wasteplanet_yard.dmm | 6367 +++++++++++++++++ _maps/map_catalogue.txt | 242 + code/datums/ruins/wasteplanet.dm | 7 + code/game/area/areas/ruins/wasteplanet.dm | 22 + .../turfs/open/floor/plating/wasteplanet.dm | 11 + 5 files changed, 6649 insertions(+) create mode 100644 _maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm create mode 100644 _maps/map_catalogue.txt diff --git a/_maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm b/_maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm new file mode 100644 index 000000000000..60325851692d --- /dev/null +++ b/_maps/RandomRuins/WasteRuins/wasteplanet_yard.dmm @@ -0,0 +1,6367 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ah" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/bed{ + dir = 4 + }, +/obj/item/bedsheet/green{ + dir = 4 + }, +/obj/structure/curtain/cloth/grey, +/obj/machinery/light/small/broken/directional/north, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"aj" = ( +/obj/item/trash/sosjerky{ + pixel_x = 2; + pixel_y = -15 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/trash/raisins{ + pixel_x = 11; + pixel_y = -13 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"al" = ( +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 5 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"ar" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/item/storage/firstaid/radiation, +/obj/item/storage/cans/sixbeer, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/obj/effect/turf_decal/corner/transparent/blue/border{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"aw" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"aH" = ( +/obj/machinery/light/dim/directional/north, +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"aI" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"aL" = ( +/obj/structure/table, +/obj/item/soap, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"aM" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"aQ" = ( +/obj/structure/rack, +/obj/item/clothing/glasses/welding, +/obj/item/weldingtool/hugetank/empty, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"aV" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/obj/structure/chair, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"ba" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"bc" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/structure/closet/crate/secure/loot, +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"bf" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/obj/machinery/light/small/directional/east, +/obj/item/reagent_containers/food/snacks/chewable/bubblegum/nicotine{ + pixel_x = -8; + pixel_y = 11 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"bi" = ( +/obj/structure/crate_shelf, +/obj/structure/closet/crate, +/obj/item/grenade/chem_grenade/cleaner, +/obj/item/grenade/chem_grenade/cleaner{ + pixel_x = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"bp" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/item/gps{ + gpstag = "Distress Signal" + }, +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/obj/effect/decal/cleanable/blood/old, +/obj/item/screwdriver/power, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"bq" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"bu" = ( +/obj/structure/table, +/obj/structure/reagent_dispensers/beerkeg, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"bA" = ( +/obj/structure/closet/crate{ + name = "ration crate" + }, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"bB" = ( +/mob/living/simple_animal/hostile/hivebot/wasteplanet, +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"bD" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"bF" = ( +/obj/structure/closet, +/obj/structure/sign/poster/contraband/gec{ + pixel_x = -28 + }, +/obj/item/clothing/under/rank/engineering/engineer/hazard, +/obj/item/clothing/head/hardhat/orange, +/obj/item/clothing/shoes/workboots, +/obj/item/spacecash/bundle/smallrand, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"bO" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"bS" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/item/storage/belt/utility, +/obj/item/weldingtool/largetank, +/obj/item/weldingtool/largetank, +/obj/item/weldingtool/largetank, +/obj/structure/closet/crate/engineering, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"bU" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"bZ" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/structure/closet/crate/secure/loot, +/obj/item/crowbar/power, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"cd" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/item/stack/sheet/mineral/plasma/twenty, +/obj/structure/closet/crate/secure/plasma, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"cg" = ( +/obj/structure/fence/post, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"cj" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/wasteplanet/lit, +/area/ruin/wasteplanet) +"cp" = ( +/obj/structure/closet/wall/directional/south, +/obj/item/clothing/shoes/sneakers/black, +/obj/item/clothing/neck/cloak/qm, +/obj/item/clothing/head/beret/qm, +/obj/item/clothing/under/rank/cargo/qm, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"cv" = ( +/obj/item/kirbyplants/dead, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"cx" = ( +/obj/machinery/door/airlock/external, +/obj/effect/turf_decal/industrial/traffic/fulltile, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor/closed, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"cz" = ( +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/obj/effect/decal/cleanable/blood/old, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"cA" = ( +/obj/structure/grille/broken, +/obj/item/shard, +/obj/structure/curtain/cloth/grey, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"cF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"cI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"cP" = ( +/mob/living/simple_animal/hostile/hivebot/wasteplanet/strong, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/obj/item/wrench/combat, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"dd" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/obj/effect/decal/cleanable/garbage{ + pixel_x = -6; + pixel_y = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"de" = ( +/obj/effect/turf_decal/industrial/warning/dust, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"df" = ( +/obj/effect/turf_decal/industrial/hatch/red, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"dn" = ( +/obj/machinery/shower{ + pixel_y = 19 + }, +/obj/structure/curtain, +/obj/item/soap/nanotrasen, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"dv" = ( +/obj/effect/turf_decal/industrial/traffic, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"dw" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/structure/closet/crate/large, +/mob/living/simple_animal/hostile/hivebot/wasteplanet, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"dI" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"dP" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/food/snacks/ration/side/white_sandwich_bread, +/obj/item/reagent_containers/food/snacks/ration/snack/cherry_snackers{ + pixel_x = 10; + pixel_y = 8 + }, +/obj/item/trash/plate{ + pixel_x = -13 + }, +/obj/item/reagent_containers/food/snacks/ration/snack/sour_gummy_worms{ + pixel_x = 1; + pixel_y = 7 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"dY" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/crate_shelf, +/obj/machinery/light/small/broken/directional/west, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"ek" = ( +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"et" = ( +/obj/machinery/washing_machine, +/obj/machinery/light/small/broken/directional/east, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"ey" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"eD" = ( +/obj/structure/closet/cabinet, +/obj/item/clothing/shoes/workboots, +/obj/item/clothing/under/rank/engineering/chief_engineer, +/obj/item/stamp/ce, +/obj/item/clothing/head/hardhat/weldhat/white, +/obj/item/gun/energy/laser/retro, +/obj/structure/sign/poster/contraband/space_cube{ + pixel_x = 32 + }, +/obj/item/spacecash/bundle/pocketchange, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"eL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/lime/border, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"eN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east{ + start_charge = 0 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"eO" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"eS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"fe" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"fp" = ( +/obj/mecha/working/ripley/cargo, +/obj/effect/turf_decal/industrial/hatch/orange, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"fz" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"fA" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"fH" = ( +/obj/effect/turf_decal/miskilamo_small/left, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"fP" = ( +/obj/structure/catwalk/over, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"ga" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/item/stack/cable_coil/red{ + pixel_y = 4 + }, +/obj/item/stack/cable_coil/orange, +/obj/item/stack/cable_coil/yellow{ + pixel_y = -4 + }, +/obj/item/stack/cable_coil/cut/pink, +/obj/structure/closet/crate/engineering/electrical, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"gb" = ( +/obj/structure/chair/stool/bar{ + dir = 8; + pixel_x = -8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"ge" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"gg" = ( +/turf/closed/mineral/random/wasteplanet, +/area/ruin/wasteplanet) +"gk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light/small/broken/directional/east, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"gs" = ( +/turf/closed/wall, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"gx" = ( +/obj/structure/sign/warning/docking{ + pixel_y = 32 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 9 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"gF" = ( +/obj/structure/closet, +/obj/item/clothing/shoes/workboots, +/obj/item/clothing/under/rank/engineering/engineer/hazard, +/obj/item/clothing/head/hardhat, +/obj/item/trash/chips, +/obj/structure/sign/poster/contraband/hacking_guide{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"gH" = ( +/obj/effect/decal/cleanable/oil/slippery, +/obj/effect/decal/cleanable/robot_debris/up, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"gO" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"gP" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"gV" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/item/clothing/shoes/workboots, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"hn" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"hr" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"hs" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_x = 28 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ht" = ( +/obj/structure/bed, +/obj/item/bedsheet/brown, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"hA" = ( +/obj/machinery/door/airlock/external, +/obj/effect/turf_decal/industrial/traffic/fulltile, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"hG" = ( +/obj/structure/toilet{ + dir = 8; + pixel_x = 4 + }, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"hH" = ( +/obj/effect/turf_decal/miskilamo_small, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"hJ" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"hK" = ( +/obj/machinery/shower{ + pixel_y = 19 + }, +/obj/structure/curtain, +/obj/structure/catwalk/over/plated_catwalk/white, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"hO" = ( +/obj/machinery/vending/coffee, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"hP" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning/dust/corner, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"hW" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"hY" = ( +/obj/structure/grille/broken, +/obj/item/shard, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"il" = ( +/obj/structure/cable{ + icon_state = "2-5" + }, +/obj/structure/cable{ + icon_state = "2-9" + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"in" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"is" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ix" = ( +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"iB" = ( +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"iD" = ( +/obj/structure/grille/broken, +/obj/item/shard, +/obj/machinery/door/firedoor/window, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"iF" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"iJ" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 8 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"iK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"iR" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"iW" = ( +/obj/structure/closet/secure_closet/engineering_electrical, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"jd" = ( +/obj/effect/turf_decal/miskilamo_small/right, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"je" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/caution, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"jh" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"jo" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/obj/effect/turf_decal/corner/transparent/blue/border{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"jq" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"jt" = ( +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"jy" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"jC" = ( +/obj/machinery/microwave, +/obj/item/clothing/head/chefhat{ + pixel_y = 13 + }, +/obj/structure/table, +/obj/effect/decal/cleanable/food/flour, +/obj/item/reagent_containers/food/snacks/badrecipe, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/turf_decal/corner/transparent/neutral/diagonal, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"jI" = ( +/obj/effect/turf_decal/industrial/traffic, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"jT" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/can, +/obj/item/trash/candy, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"jY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"kc" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"kd" = ( +/obj/machinery/door/airlock/external, +/obj/effect/turf_decal/industrial/traffic/fulltile, +/obj/machinery/door/firedoor/closed, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ke" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ki" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"kn" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/item/multitool{ + pixel_y = -5; + pixel_x = 11 + }, +/obj/item/screwdriver{ + pixel_x = -7 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"ks" = ( +/obj/structure/mirror{ + pixel_x = -28 + }, +/obj/structure/sink{ + dir = 4; + pixel_x = -13 + }, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"kw" = ( +/obj/structure/chair/plastic, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"kD" = ( +/obj/effect/turf_decal/industrial/hatch/red, +/obj/structure/closet/crate/secure/loot, +/obj/item/circuitboard/machine/grounding_rod, +/obj/item/circuitboard/machine/grounding_rod, +/obj/item/circuitboard/machine/grounding_rod, +/obj/item/circuitboard/machine/grounding_rod, +/obj/item/stack/sheet/metal/twenty, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"kH" = ( +/obj/structure/table, +/obj/item/flashlight/lamp{ + pixel_y = 12; + pixel_x = -8 + }, +/obj/machinery/light/small/directional/east, +/obj/item/screwdriver{ + pixel_x = -7 + }, +/obj/item/stack/cable_coil/cut/red, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"kJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"kM" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"kP" = ( +/mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"kS" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"kW" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"kY" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"kZ" = ( +/obj/item/storage/toolbox/drone, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"lb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light/small/broken/directional/east, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"le" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/north{ + start_charge = 0 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"lf" = ( +/obj/item/stack/ore/salvage/scrapmetal, +/obj/item/stack/ore/salvage/scrapuranium, +/obj/structure/catwalk/over, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"lq" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/firealarm/directional/west, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"lx" = ( +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"lB" = ( +/obj/structure/marker_beacon{ + picked_color = "Lime" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"lG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"lO" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"lT" = ( +/obj/structure/closet/crate/secure/loot, +/obj/item/clothing/suit/space/nasavoid, +/obj/item/clothing/head/helmet/space/nasavoid, +/obj/item/tank/jetpack/void, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"lV" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"lW" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"lY" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"mi" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/blood/tracks, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/bordercorner, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"mq" = ( +/obj/structure/fence/door, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"mA" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/industrial/warning/dust/corner, +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"mG" = ( +/obj/machinery/suit_storage_unit/open, +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"mK" = ( +/obj/structure/fence/post{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"mS" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"mU" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"mZ" = ( +/obj/structure/fence, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"nd" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ne" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"nf" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"ng" = ( +/obj/structure/table_frame, +/obj/item/stack/ore/salvage/scrapmetal, +/obj/item/wirecutters, +/obj/item/screwdriver{ + pixel_x = 7; + pixel_y = -8 + }, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 5 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"ni" = ( +/obj/structure/bed{ + dir = 4 + }, +/obj/item/bedsheet/green{ + dir = 4 + }, +/obj/structure/curtain/cloth/grey, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"nr" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"nx" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"nH" = ( +/obj/machinery/door/airlock/command, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"nJ" = ( +/obj/structure/cable/yellow, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/power/apc/auto_name/directional/west{ + start_charge = 0 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"nL" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs{ + dir = 8 + }, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"nP" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/lime/border, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"nV" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/structure/closet/crate/coffin, +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"nZ" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"oe" = ( +/obj/machinery/power/terminal{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"oh" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 10 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"ok" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"os" = ( +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"ov" = ( +/obj/structure/fence, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"oz" = ( +/obj/item/kirbyplants/dead, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"oA" = ( +/obj/effect/turf_decal/industrial/traffic, +/obj/effect/turf_decal/industrial/caution{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"oJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/neutral/diagonal, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"oK" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"oS" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"oT" = ( +/obj/structure/fence{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"oW" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light/directional/east, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/item/seeds/potato, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"pb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"pd" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ph" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/stairs{ + dir = 4 + }, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"pj" = ( +/turf/closed/wall, +/area/ruin/wasteplanet) +"pr" = ( +/obj/effect/turf_decal/industrial/traffic, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"pt" = ( +/mob/living/simple_animal/hostile/hivebot/wasteplanet/strong, +/obj/structure/sign/warning/docking{ + pixel_x = 32 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"pu" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 1 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"px" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"pz" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = -6 + }, +/obj/item/folder/yellow{ + pixel_x = 8 + }, +/obj/item/pen/fountain{ + pixel_x = -6; + pixel_y = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"pB" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"pF" = ( +/obj/structure/chair/stool/bar{ + dir = 8; + pixel_x = -8 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/apc/auto_name/directional/north{ + start_charge = 0 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"pG" = ( +/obj/machinery/mech_bay_recharge_port{ + dir = 2 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"pJ" = ( +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"pK" = ( +/obj/machinery/light/dim/directional/east, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"pQ" = ( +/obj/structure/table, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"pY" = ( +/obj/item/stack/ore/iron, +/obj/effect/decal/cleanable/blood/gibs/down, +/obj/item/stack/ore/salvage/scrapmetal, +/obj/item/shard, +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/obj/item/clothing/head/caphat/cowboy, +/obj/structure/sign/poster/retro/smile{ + pixel_x = -28 + }, +/obj/machinery/light/small/broken/directional/south, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"qd" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"qo" = ( +/obj/machinery/door/airlock, +/obj/structure/barricade/wooden/crude, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"qr" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"qs" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/obj/structure/sign/warning/nosmoking/burnt{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"qt" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"qu" = ( +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 5 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"qw" = ( +/obj/machinery/vending/cola/pwr_game, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"qy" = ( +/obj/structure/toilet{ + pixel_y = 11 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"qB" = ( +/obj/effect/turf_decal/industrial/hatch/red, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"qL" = ( +/turf/open/floor/plating/asteroid/wasteplanet/lit, +/area/ruin/wasteplanet) +"qS" = ( +/obj/structure/closet/crate{ + name = "ration crate" + }, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/machinery/light/small/broken/directional/south, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"rd" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"re" = ( +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"rp" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"rv" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -6 + }, +/obj/item/folder/yellow{ + pixel_x = 8 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"rw" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/catwalk/over, +/obj/structure/spawner/hivebot, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"ry" = ( +/obj/structure/fence{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"rQ" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"sf" = ( +/mob/living/simple_animal/hostile/hivebot/wasteplanet, +/turf/open/floor/plating/asteroid/wasteplanet, +/area/ruin/wasteplanet) +"sm" = ( +/obj/item/stack/ore/salvage/scrapmetal/five, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"sx" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/machinery/airalarm/directional/north, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"sz" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/smes, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"sB" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"sF" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"sK" = ( +/obj/structure/girder, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"sL" = ( +/obj/machinery/ntnet_relay, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"sO" = ( +/obj/structure/fence/door, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"sT" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/sign/poster/contraband/space_cola{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"ta" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/locked, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"td" = ( +/obj/structure/fence, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"tn" = ( +/turf/template_noop, +/area/template_noop) +"to" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/bordercorner{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"tu" = ( +/obj/structure/table, +/obj/effect/turf_decal/corner/transparent/neutral/diagonal, +/obj/structure/sink/kitchen{ + dir = 4 + }, +/obj/effect/decal/cleanable/food/flour, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"tv" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"ty" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"tD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood/tracks{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/bordercorner, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"tK" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/terminal{ + dir = 1 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"tL" = ( +/obj/machinery/door/airlock/maintenance/external/glass, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"tT" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/broken_bottle, +/obj/item/shard, +/obj/item/reagent_containers/food/drinks/bottle/hooch, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"tX" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"tY" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"ul" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/sign/poster/contraband/engis_unite{ + pixel_y = -28 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"um" = ( +/obj/structure/table, +/obj/structure/showcase/machinery/tv{ + name = "\improper television"; + desc = "A mess of wires and duct tape that barely functions" + }, +/obj/item/toy/plush/among{ + pixel_x = 7; + pixel_y = 14 + }, +/obj/item/stack/cable_coil/cut/red{ + pixel_y = 10 + }, +/obj/item/kitchen/fork{ + pixel_x = 12; + name = "load bearing fork" + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 5 + }, +/obj/item/trash/raisins{ + pixel_x = -12; + pixel_y = -2 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"un" = ( +/obj/structure/rack, +/obj/item/clothing/glasses/welding, +/obj/item/weldingtool/hugetank/empty, +/obj/effect/turf_decal/industrial/traffic/corner, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"up" = ( +/obj/effect/decal/cleanable/oil/slippery, +/obj/item/stack/ore/salvage/scrapmetal/five, +/obj/item/stack/ore/salvage/scrapplasma, +/obj/effect/decal/cleanable/robot_debris, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"ut" = ( +/obj/structure/rack, +/obj/item/clothing/glasses/welding, +/obj/item/weldingtool/hugetank/empty, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"uw" = ( +/obj/structure/chair/stool/bar{ + dir = 1; + pixel_y = 12 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/corner/transparent/blue, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"uD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"uN" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"uU" = ( +/obj/structure/chair/comfy/orange/old/alt/directional/south, +/obj/item/toy/plush/snakeplushie, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"uZ" = ( +/obj/structure/table, +/obj/item/trash/plate, +/obj/item/reagent_containers/food/snacks/badrecipe, +/obj/item/reagent_containers/food/drinks/soda_cans/lunapunch{ + pixel_y = 9; + pixel_x = -8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"vb" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"vf" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"vh" = ( +/obj/structure/table/wood/fancy/orange, +/obj/item/flashlight/lamp/green, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"vv" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"vB" = ( +/obj/item/stack/ore/salvage/scraptitanium, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"vC" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"vH" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"vN" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/floodlight_frame, +/obj/machinery/light/directional/west, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"vU" = ( +/obj/effect/turf_decal/miskilamo_small/right, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"vV" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"vX" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"vZ" = ( +/obj/structure/fence{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"wb" = ( +/obj/machinery/light/dim/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"wc" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/obj/effect/turf_decal/corner/transparent/blue/border{ + dir = 9 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"wf" = ( +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/structure/grille, +/obj/structure/curtain/cloth/grey, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"wg" = ( +/obj/structure/fence/end{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"wr" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"wv" = ( +/obj/effect/turf_decal/industrial/traffic, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ww" = ( +/obj/effect/turf_decal/industrial/traffic/fulltile, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor/closed, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"wZ" = ( +/obj/machinery/suit_storage_unit/independent/engineering, +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/effect/turf_decal/industrial/traffic/corner, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"xe" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/caution, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"xf" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/warning/dust, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"xh" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"xl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 9 + }, +/obj/item/trash/raisins{ + pixel_x = 15; + pixel_y = -2 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"xs" = ( +/obj/structure/chair/office{ + dir = 4; + pixel_x = 8 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"xO" = ( +/obj/effect/turf_decal/corner/transparent/orange, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"yb" = ( +/obj/effect/decal/cleanable/oil/slippery, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"yi" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"yn" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"yp" = ( +/obj/structure/table, +/obj/item/storage/ration/chicken_wings_hot_sauce, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"yr" = ( +/obj/machinery/suit_storage_unit/open, +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"yz" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"yA" = ( +/obj/structure/bed, +/obj/item/bedsheet/grey, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"yC" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"yD" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"yK" = ( +/turf/closed/wall/r_wall, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"yR" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"yU" = ( +/obj/structure/sign/warning/docking{ + pixel_y = 32 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 5 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"zp" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"zt" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 9 + }, +/obj/structure/marker_beacon{ + picked_color = "Burgundy" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"zv" = ( +/obj/effect/turf_decal/industrial/traffic/corner, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"zw" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"zB" = ( +/obj/structure/closet, +/obj/item/clothing/shoes/workboots, +/obj/item/clothing/under/rank/engineering/atmospheric_technician, +/obj/item/clothing/head/hardhat, +/obj/item/pipe_dispenser, +/obj/structure/sign/poster/contraband/atmosia_independence{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"zN" = ( +/obj/structure/spawner/hivebot, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"zP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"zQ" = ( +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"zZ" = ( +/obj/machinery/power/floodlight, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Ab" = ( +/obj/effect/turf_decal/industrial/hatch/blue, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"An" = ( +/obj/machinery/suit_storage_unit/inherit/industrial, +/obj/item/tank/jetpack/void, +/obj/effect/decal/cleanable/cobweb, +/obj/item/clothing/suit/space/nasavoid{ + name = "Old Voidsuit"; + desc = "An old space suit that hasn't seen use in several decades." + }, +/obj/item/clothing/head/helmet/space/nasavoid{ + name = "Voidsuit Helmet"; + desc = "An old space suit helmet with a scratched visor." + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Ap" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Aq" = ( +/obj/machinery/light/dim/directional/east, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Av" = ( +/obj/structure/bed, +/obj/item/bedsheet/hos, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"AS" = ( +/obj/effect/decal/cleanable/oil/slippery, +/obj/effect/decal/cleanable/robot_debris, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"AZ" = ( +/obj/machinery/ltsrbt, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Bk" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Bn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Bs" = ( +/obj/structure/table, +/obj/effect/turf_decal/corner/transparent/neutral/diagonal, +/obj/item/reagent_containers/food/snacks/canned/beans{ + pixel_x = 6; + pixel_y = 14 + }, +/obj/item/reagent_containers/food/snacks/canned/peaches{ + pixel_x = -6; + pixel_y = 14 + }, +/obj/item/reagent_containers/food/snacks/canned/beans{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/reagent_containers/food/snacks/canned/beans{ + pixel_x = 6; + pixel_y = 2 + }, +/obj/item/trash/can/food/peaches{ + pixel_x = -6; + pixel_y = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"BJ" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs{ + dir = 1 + }, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"BL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"BO" = ( +/obj/machinery/vending/snack/teal, +/obj/item/stack/tape/industrial/electrical{ + pixel_y = 16 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 5 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"BP" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"BS" = ( +/obj/machinery/suit_storage_unit/independent/engineering, +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/structure/sign/warning/nosmoking{ + pixel_x = -28 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"BW" = ( +/obj/machinery/power/port_gen/pacman, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Cf" = ( +/obj/structure/sign/warning/docking{ + pixel_y = -32 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 6 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Ci" = ( +/obj/item/chair{ + pixel_x = -13; + pixel_y = -7 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Cs" = ( +/obj/structure/fence/cut/large, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Cw" = ( +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Cx" = ( +/obj/machinery/computer/monitor/retro{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/border, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"CC" = ( +/obj/effect/decal/cleanable/oil/slippery, +/obj/item/stack/ore/salvage/scrapuranium, +/obj/item/stack/ore/salvage/scrapmetal, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"CK" = ( +/obj/machinery/door/airlock, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood/tracks, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"CU" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/mob/living/simple_animal/hostile/hivebot/wasteplanet, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"CV" = ( +/obj/structure/fence/cut/medium, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Dc" = ( +/obj/effect/turf_decal/industrial/traffic, +/obj/effect/turf_decal/industrial/caution{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"De" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Dk" = ( +/obj/item/stack/ore/salvage/scraptitanium, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Dp" = ( +/obj/structure/marker_beacon{ + picked_color = "Burgundy" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Dz" = ( +/obj/structure/chair/stool/bar{ + dir = 8; + pixel_x = -8 + }, +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"DA" = ( +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"DE" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"DJ" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/obj/structure/chair, +/obj/item/instrument/banjo, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"DN" = ( +/obj/structure/rack, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 4 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Ea" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/boritos, +/obj/item/trash/candy, +/obj/item/trash/candy, +/obj/item/trash/raisins, +/obj/item/trash/syndi_cakes, +/obj/item/trash/sosjerky, +/obj/item/toy/beach_ball/holoball, +/obj/machinery/light/directional/south, +/obj/item/trash/can, +/obj/item/trash/can, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Ei" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"El" = ( +/obj/structure/bed/double{ + dir = 4 + }, +/obj/item/bedsheet/double/orange{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Ep" = ( +/obj/structure/table/reinforced, +/obj/item/radio/intercom/table{ + dir = 1 + }, +/obj/item/reagent_containers/food/drinks/waterbottle/large/empty{ + pixel_y = 12; + pixel_x = -16 + }, +/obj/item/reagent_containers/food/drinks/waterbottle/large/empty{ + pixel_x = -13; + pixel_y = 19 + }, +/obj/item/reagent_containers/food/drinks/waterbottle/large/empty{ + pixel_y = 4; + pixel_x = -14 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Er" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/miskilamo_small, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"EH" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs{ + dir = 4 + }, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"EK" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"EM" = ( +/obj/structure/mecha_wreckage/ripley/firefighter, +/obj/effect/mob_spawn/human/corpse/charredskeleton, +/obj/effect/decal/cleanable/ash, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"EU" = ( +/obj/effect/decal/cleanable/oil, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"EX" = ( +/obj/structure/table/wood, +/obj/structure/sink/chem, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Fb" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Ff" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/bottle/absinthe, +/obj/item/clothing/head/hardhat{ + pixel_x = 11 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Fh" = ( +/obj/effect/decal/cleanable/ash, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Fm" = ( +/obj/structure/closet/wall/directional/north, +/obj/item/toy/figure/bartender, +/obj/item/gun/energy/laser/retro, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Fn" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Fq" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"FC" = ( +/obj/machinery/door/airlock, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"FG" = ( +/obj/machinery/suit_storage_unit/open, +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/structure/sign/warning/nosmoking{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"FH" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/obj/item/reagent_containers/food/snacks/ration/side/beef_sticks{ + pixel_x = 10 + }, +/obj/item/reagent_containers/food/snacks/chips, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"FP" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"FW" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Gf" = ( +/obj/machinery/door/airlock{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Gj" = ( +/obj/structure/grille/broken, +/obj/item/stack/rods, +/obj/item/shard, +/obj/effect/decal/cleanable/glass, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Gk" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/stairs{ + dir = 8 + }, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Gl" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Go" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Gq" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"GK" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/structure/floodlight_frame, +/obj/item/shard, +/obj/item/stack/cable_coil/cut/red, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"GM" = ( +/turf/closed/wall/r_wall, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"GN" = ( +/obj/structure/table, +/obj/item/stamp/qm{ + pixel_y = 4; + pixel_x = 14 + }, +/obj/item/stamp{ + pixel_x = 14 + }, +/obj/item/stamp/denied{ + pixel_y = -4; + pixel_x = 14 + }, +/obj/item/paper, +/obj/item/pen, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"GO" = ( +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 8 + }, +/obj/structure/closet/firecloset/full, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"GV" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"GX" = ( +/obj/machinery/power/smes, +/obj/structure/cable/yellow, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Hb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Hf" = ( +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_y = -4 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_y = -4; + pixel_x = -8 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_y = -4; + pixel_x = 8 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_y = 9; + pixel_x = 4 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_y = 9; + pixel_x = -4 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass{ + pixel_y = 22 + }, +/obj/structure/table/wood, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Hh" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Hm" = ( +/obj/machinery/door/airlock/engineering, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/barricade/wooden/crude, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Hp" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/item/stack/sheet/metal/twenty, +/obj/item/stack/sheet/glass/twenty, +/obj/structure/closet/crate/secure/plasma, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"HD" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/orange, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"HR" = ( +/obj/structure/chair/sofa/brown/left{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"HY" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Ic" = ( +/obj/structure/fence, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 6 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"If" = ( +/obj/structure/marker_beacon{ + picked_color = "Burgundy" + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Il" = ( +/obj/structure/table/wood/fancy/orange, +/obj/item/toy/plush/moth/firewatch, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Iq" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/plasteel/stairs{ + dir = 8 + }, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"IB" = ( +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"IF" = ( +/obj/machinery/door/airlock/external, +/obj/effect/turf_decal/industrial/traffic/fulltile, +/obj/machinery/door/firedoor, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"IM" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"IQ" = ( +/obj/item/cutting_board, +/obj/structure/table, +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/corner/transparent/neutral/diagonal, +/obj/item/melee/knife/kitchen, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"IS" = ( +/obj/item/radio/intercom/wideband/table{ + dir = 8 + }, +/obj/structure/table, +/obj/effect/decal/cleanable/cobweb, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Je" = ( +/obj/structure/chair/stool/bar{ + dir = 1; + pixel_y = 12 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"JL" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"JR" = ( +/obj/structure/chair/sofa/brown/directional{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"JX" = ( +/obj/machinery/light/dim/directional/south, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Kc" = ( +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Km" = ( +/obj/machinery/vending/cola/red, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Kx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/neutral/diagonal, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"KG" = ( +/mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged/rapid, +/obj/structure/catwalk/over, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"KI" = ( +/obj/structure/tank_dispenser/oxygen, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"KM" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning/dust/corner{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"KW" = ( +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Lc" = ( +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-10" + }, +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Lq" = ( +/obj/machinery/suit_storage_unit/open, +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Lu" = ( +/obj/structure/bed{ + dir = 4 + }, +/obj/item/bedsheet/qm{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Lv" = ( +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Lw" = ( +/turf/open/floor/plating/asteroid/wasteplanet, +/area/ruin/wasteplanet) +"LA" = ( +/obj/item/stack/sheet/plastic, +/obj/item/stack/ore/salvage/scrapmetal/five, +/obj/item/circuitboard/computer/shuttle/helm, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"LB" = ( +/obj/structure/catwalk/over, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"LX" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/closet/wall/directional/west, +/obj/item/gun/ballistic/revolver, +/obj/item/clothing/suit/hooded/wintercoat/captain, +/obj/item/storage/firstaid/o2, +/obj/machinery/light/small/broken/directional/north, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Mf" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Mh" = ( +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Mi" = ( +/turf/closed/wall/r_wall, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Ml" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Mm" = ( +/obj/effect/turf_decal/miskilamo_small/left, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Mn" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Mt" = ( +/obj/machinery/door/airlock/external, +/obj/effect/turf_decal/industrial/traffic/fulltile, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Mx" = ( +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-6" + }, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Mz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/blood/tracks, +/obj/effect/turf_decal/corner/transparent/lime/bordercorner{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/bordercorner{ + dir = 1 + }, +/obj/structure/spawner/hivebot, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"MB" = ( +/obj/machinery/door/airlock/external, +/obj/effect/turf_decal/industrial/traffic/fulltile, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ME" = ( +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"MF" = ( +/turf/closed/wall, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"MJ" = ( +/obj/structure/marker_beacon{ + picked_color = "Burgundy" + }, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"MO" = ( +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/structure/cable{ + icon_state = "0-4" + }, +/mob/living/simple_animal/hostile/hivebot/wasteplanet, +/obj/machinery/light/directional/west, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"MX" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/light/directional/north, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"MZ" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Na" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Nd" = ( +/obj/effect/turf_decal/industrial/traffic/fulltile, +/obj/item/stack/ore/salvage/scrapmetal/five, +/obj/machinery/door/firedoor/closed, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Nf" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/industrial/warning/dust, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Nu" = ( +/obj/structure/reagent_dispensers/foamtank, +/obj/item/extinguisher/advanced, +/obj/structure/sign/warning/nosmoking{ + pixel_x = 28 + }, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Ny" = ( +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"NG" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"NI" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/item/stack/sheet/mineral/titanium/twenty, +/obj/item/stack/ore/salvage/scraptitanium/five, +/obj/structure/closet/crate/secure/plasma, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet) +"NO" = ( +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/floodlight, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Of" = ( +/obj/effect/turf_decal/industrial/hatch/red, +/obj/item/stack/ore/salvage/scrapuranium/five, +/obj/item/stack/ore/salvage/scrapuranium/five{ + pixel_y = -6 + }, +/obj/item/stack/ore/salvage/scrapuranium{ + pixel_y = 5 + }, +/obj/structure/closet/crate/radiation, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Og" = ( +/obj/effect/decal/cleanable/robot_debris, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Oi" = ( +/obj/structure/sign/warning/nosmoking{ + pixel_x = -28 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Ok" = ( +/obj/structure/table, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Oq" = ( +/obj/machinery/computer/mech_bay_power_console{ + dir = 4 + }, +/obj/structure/sign/warning/electricshock{ + pixel_x = -28 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Ow" = ( +/obj/structure/spawner/hivebot, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"OB" = ( +/obj/structure/marker_beacon{ + picked_color = "Lime" + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"OK" = ( +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"OM" = ( +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"OX" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"OY" = ( +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Pi" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/turf_decal/corner/transparent/lime/border, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Ps" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"PJ" = ( +/obj/structure/rack, +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 8 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"PK" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"PX" = ( +/obj/structure/janitorialcart, +/obj/item/storage/bag/trash, +/obj/item/mop{ + pixel_x = -6 + }, +/obj/item/clothing/shoes/galoshes{ + pixel_x = 16; + pixel_y = -8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Qc" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/industrial/warning/full, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Qe" = ( +/obj/machinery/power/shuttle/engine/electric{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Ql" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/item/clothing/suit/space/hardsuit/engine, +/obj/structure/closet/crate/engineering, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"QS" = ( +/mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged/rapid, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Ri" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 4 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Rn" = ( +/obj/structure/chair/stool/bar{ + dir = 1; + pixel_y = 12 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Rt" = ( +/obj/structure/closet/crate/bin, +/obj/item/trash/syndi_cakes, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 10 + }, +/obj/effect/decal/cleanable/plasma, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Rv" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/fulltile, +/obj/machinery/door/firedoor/window, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"RD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood/tracks, +/obj/item/stack/ore/salvage/scrapmetal/five, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"RE" = ( +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"RO" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/light/small/broken/directional/east, +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"RR" = ( +/obj/structure/reagent_dispensers/watertank/high, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"RX" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Se" = ( +/obj/structure/fence/cut/large{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Sg" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Sl" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Sm" = ( +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/obj/item/chair{ + pixel_x = -7; + pixel_y = -7 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Sq" = ( +/obj/machinery/washing_machine, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Sw" = ( +/obj/structure/girder, +/obj/item/stack/sheet/mineral/titanium, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"SA" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/sign/poster/official/cleanliness{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"SP" = ( +/obj/structure/closet/crate/trashcart/laundry, +/obj/item/clothing/gloves/color/yellow, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"SZ" = ( +/obj/machinery/airalarm/directional/west, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Te" = ( +/obj/machinery/cell_charger, +/obj/structure/table, +/obj/item/stock_parts/cell/hyper/empty, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Tf" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/caution, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Th" = ( +/obj/effect/turf_decal/industrial/hatch/red, +/obj/structure/closet/crate/secure/weapon, +/obj/item/gun/energy/lasercannon, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Tj" = ( +/obj/structure/closet/wall/directional/east, +/obj/item/clothing/under/utility, +/obj/item/clothing/under/utility, +/obj/item/clothing/shoes/workboots, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/obj/item/reagent_containers/food/snacks/ration/entree/beef_strips, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Ts" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/electrical{ + pixel_y = 8 + }, +/obj/item/storage/toolbox/electrical, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"TB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood/tracks, +/obj/machinery/light/small/broken/directional/east, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"TE" = ( +/obj/structure/fence, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"TK" = ( +/obj/effect/turf_decal/industrial/traffic{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"TN" = ( +/obj/machinery/vending/snack/orange, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"TX" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light/directional/east, +/obj/item/seeds/kudzu, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"TY" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 4 + }, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Ub" = ( +/obj/structure/sign/warning/coldtemp{ + pixel_x = 32 + }, +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/obj/effect/turf_decal/corner/transparent/blue/border{ + dir = 6 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Uc" = ( +/obj/structure/window/reinforced/fulltile/shuttle, +/obj/structure/grille, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Ud" = ( +/obj/item/storage/bag/plants, +/obj/item/plant_analyzer, +/obj/item/cultivator{ + pixel_x = -4 + }, +/obj/item/shovel/spade{ + pixel_x = 6 + }, +/obj/structure/rack, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Uj" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/obj/structure/closet/crate/engineering/electrical, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Us" = ( +/obj/effect/turf_decal/corner/transparent/neutral/mono, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Uz" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"UF" = ( +/obj/structure/fence, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 10 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"UP" = ( +/obj/structure/table_frame, +/obj/item/stack/ore/salvage/scrapmetal, +/obj/item/paper/crumpled{ + pixel_x = -3; + pixel_y = 3 + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"UR" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/food/drinks/waterbottle/large{ + pixel_y = 20; + pixel_x = 10 + }, +/obj/item/radio/intercom/wideband/table{ + dir = 4 + }, +/obj/machinery/light/small/broken/directional/east, +/obj/item/reagent_containers/food/snacks/ration/pack/orange_beverage{ + pixel_x = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"UW" = ( +/turf/closed/wall, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Va" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/bottle/rum{ + pixel_y = 8; + pixel_x = -4 + }, +/obj/item/reagent_containers/food/drinks/bottle/rum{ + pixel_x = -4 + }, +/obj/item/reagent_containers/food/drinks/bottle/rum{ + pixel_y = -8; + pixel_x = -4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Vp" = ( +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Vq" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/wasteplanet, +/area/ruin/wasteplanet) +"Vx" = ( +/obj/item/stack/ore/salvage/scrapmetal/five, +/obj/structure/frame, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"VG" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/structure/sign/warning/explosives{ + pixel_x = -28 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"VK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/corner/transparent/lime/border{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/lime/border, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"VO" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/mineral/stacking_unit_console{ + pixel_y = 28 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"VQ" = ( +/obj/structure/marker_beacon{ + picked_color = "Burgundy" + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"VS" = ( +/obj/machinery/computer/mech_bay_power_console{ + dir = 8 + }, +/obj/structure/sign/warning/electricshock{ + pixel_x = 28 + }, +/obj/machinery/light/broken/directional/north, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"VZ" = ( +/obj/machinery/power/port_gen/pacman, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/industrial/hatch/yellow, +/turf/open/floor/plating/wasteplanet/rust, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Wc" = ( +/obj/machinery/light/dim/directional/north, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/soda_cans/cola{ + pixel_y = 13; + pixel_x = -6 + }, +/obj/item/flashlight/lamp, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Wn" = ( +/obj/structure/fence, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Wu" = ( +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Wy" = ( +/obj/structure/bed{ + dir = 4 + }, +/obj/item/bedsheet/grey{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Wz" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 6 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"WB" = ( +/obj/effect/turf_decal/industrial/traffic, +/obj/effect/turf_decal/industrial/caution{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/binary/volume_pump/on, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"WI" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"WL" = ( +/obj/effect/turf_decal/industrial/traffic/corner, +/obj/structure/closet/bombcloset, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"WP" = ( +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"WQ" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 28 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"WS" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/drone{ + pixel_y = 8 + }, +/obj/item/storage/toolbox/drone{ + pixel_y = -8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"WW" = ( +/obj/structure/closet, +/obj/item/clothing/shoes/cowboy, +/obj/item/clothing/under/rank/engineering/engineer/hazard, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"Xr" = ( +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/floodlight, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"XG" = ( +/obj/structure/sign/warning/docking{ + pixel_y = -32 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 10 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"XI" = ( +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 5 + }, +/obj/item/kirbyplants/dead{ + pixel_x = 10; + pixel_y = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"XY" = ( +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Ya" = ( +/obj/structure/table/reinforced, +/obj/item/radio/intercom/table{ + dir = 1 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Yb" = ( +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Yh" = ( +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Yi" = ( +/obj/structure/sign/poster/contraband/missing_gloves{ + pixel_y = 32 + }, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 5 + }, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Yp" = ( +/mob/living/simple_animal/hostile/hivebot/wasteplanet/strong, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Yq" = ( +/obj/structure/table, +/obj/item/radio/old{ + pixel_y = 12; + pixel_x = -11 + }, +/obj/item/radio/weather_monitor{ + pixel_y = 11 + }, +/obj/item/stack/cable_coil/cut/red{ + pixel_y = 10 + }, +/obj/item/stack/tape/industrial/electrical, +/obj/machinery/light/directional/north, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"Yu" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 4 + }, +/obj/structure/crate_shelf, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Yy" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"YE" = ( +/obj/structure/fence/door/opened, +/obj/effect/decal/cleanable/blood/tracks, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 4 + }, +/obj/effect/turf_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"YJ" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 6 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"YK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen) +"YW" = ( +/obj/effect/turf_decal/industrial/hatch/orange, +/mob/living/simple_animal/hostile/hivebot/wasteplanet/ranged/rapid, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet) +"Za" = ( +/obj/structure/table/reinforced, +/obj/machinery/light/small/broken/directional/west, +/obj/item/ration_heater, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Ze" = ( +/obj/machinery/power/smes/shuttle/precharged{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Zr" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/turf_decal/corner/transparent/orange{ + dir = 9 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"Zu" = ( +/obj/structure/closet/crate{ + name = "ration crate" + }, +/obj/item/reagent_containers/food/drinks/waterbottle/large, +/obj/effect/turf_decal/industrial/hatch/yellow, +/obj/machinery/light/small/broken/directional/west, +/obj/effect/spawner/lootdrop/ration, +/turf/open/floor/plasteel/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship) +"Zy" = ( +/obj/structure/fence/end{ + dir = 8 + }, +/turf/open/floor/plating/wasteplanet/lit, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ZO" = ( +/obj/structure/railing{ + max_integrity = 70 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/stairs{ + dir = 4 + }, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) +"ZP" = ( +/obj/structure/chair/sofa/brown/right{ + dir = 1 + }, +/obj/effect/turf_decal/corner/transparent/blue{ + dir = 10 + }, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms) +"ZQ" = ( +/obj/effect/turf_decal/industrial/traffic/corner{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/plating/wasteplanet/rust/lit, +/area/ruin/wasteplanet) +"ZW" = ( +/obj/structure/rack, +/turf/open/floor/plasteel/dark/wasteplanet, +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay) + +(1,1,1) = {" +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +pj +pj +td +td +td +cg +td +td +td +cg +td +td +td +cg +td +td +td +pj +pj +"} +(2,1,1) = {" +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +pj +gx +VQ +OM +wr +wr +wr +OM +OM +wr +wr +wr +wr +wr +wr +OM +OB +XG +pj +"} +(3,1,1) = {" +tn +tn +tn +tn +tn +tn +tn +tn +tn +gg +gg +gg +gg +gg +gg +gg +gg +gg +gg +gg +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +gg +Lw +ry +OM +OM +OM +OM +OM +jt +OM +OM +OM +OM +jt +jt +OM +OM +OM +OM +de +ry +"} +(4,1,1) = {" +tn +tn +tn +tn +tn +tn +tn +gg +gg +gg +gg +gg +gg +gg +gg +gg +gg +pj +gg +gg +gg +gg +gg +tn +tn +tn +tn +gg +gg +gg +gg +Lw +ry +DA +LB +LB +OM +LB +LB +LB +LB +LB +OM +OM +OM +LB +LB +LB +jt +de +ry +"} +(5,1,1) = {" +tn +tn +tn +tn +tn +gg +gg +gg +gg +gg +gg +GM +GM +GM +GM +Mi +gg +gg +gg +gg +gg +gg +gg +gg +gg +gg +gg +gg +pj +gg +Lw +Lw +ry +DA +jt +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +de +ry +"} +(6,1,1) = {" +tn +tn +tn +tn +gg +gg +gg +GM +GM +GM +GM +GM +cv +qw +jT +Mi +Mi +Mi +Mi +Mi +Mi +Mi +Mi +gg +gg +gg +gg +gg +gg +gg +Lw +Lw +mK +DA +MJ +OM +px +Qe +Qe +px +OM +OM +OM +px +Qe +Qe +px +OM +lB +OM +mK +"} +(7,1,1) = {" +tn +tn +tn +gg +gg +gg +gg +GM +IS +sL +AZ +MF +kY +ek +ok +gs +zZ +vN +Te +RX +MO +BW +Mi +Mi +gg +pj +gg +gg +Lw +Lw +Lw +Lw +ry +DA +OM +OM +px +Ze +Ze +px +px +Uc +px +px +Ze +Ze +px +OM +OM +OM +ry +"} +(8,1,1) = {" +tn +tn +gg +gg +gg +pj +gg +GM +bp +iB +Yp +nH +BL +ba +kS +Hm +MZ +ke +Gl +sB +fe +GV +ul +Mi +gg +gg +gg +Lw +Lw +Lw +Lw +Lw +Se +OM +OM +sK +px +oe +nr +px +An +KI +Vx +px +nr +oe +px +px +LB +de +ry +"} +(9,1,1) = {" +tn +tn +gg +gg +gg +gg +gg +GM +MF +MF +MF +MF +kY +Sl +ok +gs +fz +iW +OY +CU +GX +tK +lY +Mi +gg +gg +gg +Lw +Vq +Lw +Lw +Lw +ry +DA +OM +sK +VZ +NG +Na +lb +jY +nf +eN +gk +Gq +tY +RR +px +OM +de +ry +"} +(10,1,1) = {" +tn +gg +gg +gg +gg +GM +GM +GM +tT +bi +PX +MF +oK +Fq +wb +gs +gs +gs +gs +gs +gs +gs +Mi +Mi +Mi +Mi +Mi +mZ +Wn +mZ +mZ +UF +mK +NO +Dp +sK +fA +Bn +Ap +px +px +vb +px +px +Ud +Mh +lV +Uc +lB +de +mK +"} +(11,1,1) = {" +tn +gg +gg +gg +gg +GM +Va +bu +Yh +JL +Yh +MF +kY +Sl +ok +gs +qt +qs +lq +Zr +Oi +zv +Mi +Lq +BS +wZ +Mi +ME +lG +df +df +OM +ry +zw +OM +sK +sz +RO +px +px +SA +VK +DE +px +px +oW +TX +px +OM +de +vZ +"} +(12,1,1) = {" +tn +gg +gg +gg +gg +GM +Fm +Wu +Aq +nx +Wu +MF +kY +Sl +ok +gs +Gk +Ny +EU +qB +Of +dv +Mt +aM +kJ +pr +IF +ey +lG +lT +df +de +ry +zw +OM +sK +px +px +px +Zu +IB +eL +kw +Za +px +px +px +px +LB +de +ry +"} +(13,1,1) = {" +gg +gg +pj +gg +GM +GM +sF +MF +MF +Gf +MF +MF +aH +Fb +kS +tL +hn +Ny +Th +kD +qB +Dc +hA +Tf +lO +WB +MB +je +yi +df +jt +OM +vZ +zw +OM +px +Yu +dY +px +bA +pt +eL +kw +dP +px +ah +ni +px +OM +de +ry +"} +(14,1,1) = {" +gg +gg +gg +gg +GM +TY +ix +EX +Rn +cF +Km +MF +kY +Sl +Lv +gs +MX +eS +iK +iK +is +jI +Mt +ne +ty +pr +IF +ki +EK +qd +qd +Nf +mK +zw +zt +Mx +hr +mi +RD +TB +to +Mz +tD +TB +CK +oh +Tj +wf +lB +jt +mK +"} +(15,1,1) = {" +gg +gg +gg +gg +GM +gP +Yh +aI +Je +YK +hO +MF +kY +cz +ok +gs +le +Hb +Hp +bB +HD +GO +Mi +ut +aQ +PJ +Mi +Vp +OM +Ab +Ab +xf +ry +zw +hW +XY +il +Pi +px +px +al +Bk +oz +px +px +in +px +px +OM +jt +ry +"} +(16,1,1) = {" +gg +gg +gg +gg +GM +Hf +aI +Ff +uw +WI +cI +gO +Lv +rQ +ok +Rv +yR +nL +bc +ga +re +Mi +Mi +bU +bU +bU +Mi +wg +OM +Ab +nV +hP +YE +KM +Wz +Lc +iR +os +qS +px +px +dI +px +px +dn +kc +WQ +wf +LB +de +ry +"} +(17,1,1) = {" +gg +pj +gg +gg +GM +pF +gb +Dz +oS +fH +Iq +MF +Lv +rQ +Lv +iD +Sg +vf +mS +cd +De +Mi +Oq +pG +Ml +WS +VG +oT +Mm +jt +Ab +OM +ry +jt +OM +px +sK +IB +sK +px +LX +aw +pY +px +px +qy +px +px +OM +de +ry +"} +(18,1,1) = {" +gg +gg +gg +gg +GM +sT +OX +OX +bO +Er +kn +qo +xh +rw +Lv +Rv +Qc +Go +Ny +Ny +De +Rv +RE +WP +RE +RE +RE +mq +hH +OM +OM +OM +mK +jt +Dp +OM +Sw +IB +sK +Ep +zQ +zQ +HY +IM +px +et +px +OM +Fh +de +mK +"} +(19,1,1) = {" +gg +gg +gg +gg +GM +lW +Ci +vX +Yb +jd +EH +MF +Lv +rQ +OK +Rv +TK +eO +bS +mS +De +Mi +VS +pG +fp +Ts +Nu +oT +vU +NI +jy +OM +ry +DA +OM +vB +Kc +Kc +sK +Ya +nP +rd +gV +pz +px +px +px +OM +OM +OM +ry +"} +(20,1,1) = {" +gg +gg +gg +gg +GM +yp +pQ +pQ +vV +yn +xl +gO +OK +rQ +Lv +Rv +yR +ZO +Uj +dw +vC +Mi +Mi +bU +bU +bU +Mi +Zy +OM +jt +jy +mA +sO +pu +LB +LB +LB +Dk +Sw +Uc +Cx +UR +LA +Uc +px +px +LB +LB +jt +de +ry +"} +(21,1,1) = {" +gg +gg +gg +gg +GM +Yq +pQ +uZ +Yh +aj +Ea +MF +kY +Sl +Lv +gs +sx +nd +mS +bZ +Hh +WL +Mi +DN +ZW +un +Mi +Xr +OM +YW +jy +yD +ry +zw +OM +OM +OM +kZ +OM +Uc +Uc +px +Gj +Uc +OM +OM +OM +OM +OM +de +ry +"} +(22,1,1) = {" +gg +gg +pj +gg +GM +jh +jh +jh +YJ +nx +TN +MF +Yi +Sl +ok +gs +vv +zP +iK +iK +pd +wv +kd +aM +kJ +pr +Nd +ki +Ps +qd +pB +Yy +mK +zw +MJ +OM +jt +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +lB +de +mK +"} +(23,1,1) = {" +tn +gg +gg +gg +GM +GM +MF +MF +MF +Gf +MF +MF +Wc +Fb +qr +tL +hJ +Ny +mS +Ql +KW +oA +cx +Tf +lO +WB +ww +xe +rp +jy +jy +de +ry +zw +OM +jt +jt +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +ry +"} +(24,1,1) = {" +tn +gg +gg +gg +gg +GM +wc +ar +MF +oJ +tu +MF +DJ +rQ +ok +gs +ph +Ny +Ny +mS +zp +dv +Nd +ne +ty +pr +Nd +ey +lG +jt +jy +de +ry +zw +LB +jt +AS +LB +LB +LB +OM +LB +OM +LB +LB +fP +KG +LB +LB +OM +ry +"} +(25,1,1) = {" +tn +gg +gg +gg +gg +GM +jo +Ub +FC +Kx +IQ +MF +Sm +Sl +OK +gs +VO +hs +kW +Uz +hs +pJ +Mi +yr +FG +mG +Mi +ZQ +lG +jy +jt +OM +ry +zw +OM +OM +OM +OM +OM +yb +jt +OM +OM +OM +OM +OM +OM +OM +OM +de +ry +"} +(26,1,1) = {" +tn +gg +gg +gg +gg +GM +GM +GM +MF +jC +Bs +MF +aV +Sl +JX +gs +gs +gs +gs +gs +gs +gs +Mi +Mi +Mi +Mi +Mi +TE +ov +Cs +TE +Ic +mK +GK +Dp +CC +OM +OM +jt +OM +jt +OM +Ow +OM +OM +OM +OM +jt +lB +de +mK +"} +(27,1,1) = {" +tn +tn +gg +gg +gg +gg +gg +yK +UW +UW +UW +UW +UP +FW +jq +UW +FH +Wy +UW +ge +Lu +UW +vh +El +Il +yK +qL +qL +cj +qL +qL +qL +ry +DA +OM +OM +EM +OM +Og +jt +jt +OM +OM +OM +OM +OM +OM +jt +OM +de +ry +"} +(28,1,1) = {" +tn +tn +tn +gg +gg +gg +gg +yK +Sq +Sq +Ok +UW +yz +iF +Mn +UW +uN +lx +UW +GN +kM +UW +lx +cP +lx +cA +qL +qL +qL +gg +gg +qL +ry +DA +LB +jt +OM +lf +LB +LB +LB +LB +jt +LB +LB +LB +LB +LB +LB +OM +ry +"} +(29,1,1) = {" +tn +tn +tn +gg +gg +gg +gg +yK +Us +Us +SP +UW +vH +FW +jq +UW +gF +lx +UW +rv +cp +UW +eD +lx +yK +yK +qL +qL +qL +gg +gg +qL +ry +DA +OM +OM +up +OM +OM +OM +OM +OM +OM +jt +jt +OM +OM +OM +OM +OM +ry +"} +(30,1,1) = {" +tn +tn +tn +tn +gg +gg +gg +yK +UW +nZ +UW +UW +vH +FW +jq +UW +UW +mU +UW +UW +yC +UW +UW +sm +yK +qL +qL +gg +qL +gg +gg +gg +mK +OM +Fh +gH +OM +QS +OM +OM +OM +OM +jt +jt +OM +OM +OM +OM +lB +de +mK +"} +(31,1,1) = {" +tn +tn +tn +tn +gg +gg +gg +yK +dd +bD +SZ +pb +uD +PK +iJ +Fn +Fn +Fn +nJ +pb +Ei +bD +bD +bD +yK +qL +qL +qL +qL +gg +gg +gg +ry +DA +jt +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +OM +jt +OM +OM +ry +"} +(32,1,1) = {" +tn +tn +tn +tn +gg +gg +gg +yK +bq +bq +pK +bq +Ri +kP +xO +bq +bq +bq +pK +bq +bq +bq +bq +bq +yK +qL +qL +qL +qL +qL +qL +gg +ry +DA +jt +LB +LB +LB +OM +LB +LB +LB +LB +LB +LB +LB +LB +LB +jt +de +ry +"} +(33,1,1) = {" +tn +tn +tn +tn +gg +gg +gg +yK +UW +ta +UW +UW +qu +BJ +Mf +UW +UW +yC +UW +UW +mU +UW +UW +yC +yK +gg +gg +qL +qL +qL +qL +qL +ry +DA +OM +OM +OM +jt +OM +OM +OM +OM +OM +OM +OM +OM +jt +jt +jt +de +ry +"} +(34,1,1) = {" +tn +tn +tn +tn +gg +pj +gg +yK +aL +Us +ks +UW +XI +Cw +Rt +UW +bF +lx +UW +zB +lx +UW +WW +lx +yK +gg +gg +qL +qL +qL +qL +qL +pj +yU +If +tv +OM +OM +OM +tv +OM +jt +tv +tv +OM +tv +tv +OM +lB +Cf +pj +"} +(35,1,1) = {" +tn +tn +tn +tn +gg +gg +gg +yK +hK +Us +hG +UW +BO +Cw +HR +UW +xs +lx +UW +BP +lx +UW +uU +lx +yK +gg +gg +gg +qL +qL +qL +qL +pj +pj +td +td +td +cg +td +td +td +cg +td +td +CV +cg +td +td +td +pj +pj +"} +(36,1,1) = {" +tn +tn +tn +tn +gg +gg +gg +yK +yK +yK +yK +yK +um +zN +JR +UW +kH +Av +UW +bf +yA +UW +FP +ht +yK +gg +gg +gg +qL +qL +qL +qL +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +"} +(37,1,1) = {" +tn +tn +tn +tn +tn +gg +gg +gg +gg +gg +gg +yK +ng +Cw +ZP +yK +yK +yK +yK +yK +yK +yK +yK +yK +yK +gg +gg +qL +qL +qL +qL +gg +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +"} +(38,1,1) = {" +tn +tn +tn +tn +tn +gg +gg +gg +pj +gg +gg +yK +hY +tX +tX +yK +gg +gg +gg +gg +gg +gg +gg +gg +gg +gg +gg +qL +qL +qL +qL +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +"} +(39,1,1) = {" +tn +tn +tn +tn +tn +gg +gg +gg +gg +gg +gg +Lw +Lw +Lw +Lw +Lw +gg +gg +gg +gg +gg +pj +gg +gg +pj +gg +gg +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +"} +(40,1,1) = {" +tn +tn +tn +tn +tn +tn +gg +gg +gg +gg +gg +gg +sf +Lw +Lw +Lw +gg +pj +gg +gg +gg +gg +gg +gg +gg +gg +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +"} +(41,1,1) = {" +tn +tn +tn +tn +tn +tn +tn +tn +gg +gg +pj +gg +gg +Lw +Lw +gg +gg +gg +gg +gg +gg +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +"} +(42,1,1) = {" +tn +tn +tn +tn +tn +tn +tn +tn +tn +gg +gg +gg +gg +Lw +Lw +gg +gg +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +"} +(43,1,1) = {" +tn +tn +tn +tn +tn +tn +tn +tn +tn +gg +gg +gg +gg +Lw +Lw +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +tn +"} diff --git a/_maps/map_catalogue.txt b/_maps/map_catalogue.txt new file mode 100644 index 000000000000..35eb2db0bb16 --- /dev/null +++ b/_maps/map_catalogue.txt @@ -0,0 +1,242 @@ +Find the key for using this catalogue in "map_catalogue_key.txt" + + + IceRuins: + File Name = _maps\RandomRuins\IceRuins\icemoon_hydroponics_lab.dmm + Size = (x = 33)(y = 33)(z = 1) + Tags = "Medium Loot", "Medium Combat Challenge", "Antag_Gear", "Shelter" + + File Name = _maps\RandomRuins\IceRuins\icemoon_surface_corporate_rejects.dmm + Size = (x = 34)(y = 38)(z = 1) + Tags = "Boss Combat Challenge", "Major Loot", "Antag Gear", "Shelter", "Lava" + + File Name = _maps\RandomRuins\IceRuins\icemoon_surface_engioutpost.dmm + Size = (x = 40)(y = 20)(z = 1) + Tags = "No Combat", "Minor Loot", "Shelter" + + File Name = _maps\RandomRuins\IceRuins\icemoon_underground_abandoned_newcops.dmm + Size = (x = 37)(y = 32)(z = 1) + Tags = "Medium Combat Challenge", "Minor Loot", "Shelter" + + File Name = _maps\RandomRuins\IceRuins\icemoon_underground_abandoned_village.dmm + Size = (x = 28)(y = 28)(z = 1) + Tags = "Medium Combat Challenge", "Minor Loot", "Antag Gear", "Inhospitable" + + File Name = _maps\RandomRuins\IceRuins\icemoon_underground_brazillianlab.dmm + Size = (x = 40)(y = 30)(z = 1) + Tags = "Boss Combat Challenge", "Major Loot", "Inhospitable" + + File Name = _maps\RandomRuins\IceRuins\icemoon_underground_burnies_lair.dmm + Size = (x = 20)(y = 20)(z = 1) + Tags = "Boss Combat Challenge", "Minor Loot", "Shelter", "Antag Gear" + + File Name = _maps\RandomRuins\IceRuins\icemoon_underground_drakelair.dmm + Size = (x = 29)(y = 30)(z = 1) + Tags = "Boss Combat Challenge", "Megafauna", "Major Loot", "Shelter", "Necropolis Loot" + + File Name = _maps\RandomRuins\IceRuins\icemoon_crashed_holemaker.dmm + Size = (x = 47)(y = 37)(z = 1) + Tags = "Medium Combat Challenge", "Minor Loot", "Shelter" + + + + JungleRuins: + File Name = "_maps\RandomRuins\JungleRuins\jungle_syndicate.dmm" + Size = (x = 15)(y = 15)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Liveable", "Antag Gear" + + File Name = "_maps\RandomRuins\JungleRuins\jungle_interceptor.dmm" + Size = (x = 53)(y = 51)(z = 1) + Tags = "No Combat", "Medium Loot", Liveable" + + File Name = "_maps\RandomRuins\JungleRuins\jungle_medtech_outbreak.dmm" + Size = (x = 31)(y = 25)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", Liveable" + + File Name = "_maps\RandomRuins\JungleRuins\jungle_paradise.dmm" + Size = (x = 70)(y = 66)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", Liveable", "Hazardous" + + File Name "_maps\RandomRuins\JungleRuins\jungle_bombed_starport + Size = (x = 100)(y = 75)(z = 1) + Tags = "Medium Combat Challenge", "Major Loot", "Hazardous", "Liveable" + + File Name "_maps\RandomRuins\JungleRuins\jungle_cavecrew + Size = (x = 43)(y = 63)(z = 1) + Tags = "Medium Combat Challenge", "Hazardous", "Liveable", "Major Loot" + + File Name "_maps\RandomRuins\JungleRuins\jungle_abandoned_library + Size = (x = 36)(y = 35)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Antag Gear", "Necropolis Loot", "Liveable" + + LavaRuins: + File Name = "_maps\RandomRuins\LavaRuins\lavaland_surface_buried_shrine.dmm" + Size = (x = 67)(y = 55)(z = 1) + Tags = "Medium Combat", "Medium Loot", "Hazardous", "Lava", "Inhospitable" + + File Name = "_maps\RandomRuins\LavaRuins\lavaland_surface_biodome_winter.dmm" + Size = (x = 46)(y = 42)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Shelter" + + File Name = "_maps\RandomRuins\LavaRuins\lavaland_surface_elephant_graveyard.dmm" + Size = (x = 29)(y = 35)(z = 1) + Tags = "No Combat", "Minor Loot", "Hazardous", "Inhospitable" + + File Name = "_maps\RandomRuins\LavaRuins\lavaland_surface_lava_canyon.dmm" + Size = (x = 90)(y = 63)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Megafauna", "Necropolis Loot", "Inhospitable", "Lava" + + File Name = "_maps\RandomRuins\LavaRuins\lavaland_surface_wrecked_factory.dmm" + Size = (x = 47)(y = 47)(z = 1) + Tags = "Boss Combat Challenge", "Major Loot", "Shelter", "Lava" + + File Name = "_maps\RandomRuins\LavaRuins\lavaland_crashed_starwalker.dmm" + Size = (x = 33)(y = 56)(z = 1) + Tags = "Minor Combat Challenge", "Medium Loot", "Lava" + + File Name = "_maps\RandomRuins\LavaRuins\lavaland_abandonedlisteningpost.dmm" + Size = (x = 33)(y = 56)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Shelter" + + + ReebeRuins: + File Name = "_maps\RandomRuins\Ruins\reebe_swarmers.dmm" + Size = (x = 20)(y = 20)(z = 1) + Tags = "Medium Combat Challenge", "Minor Loot", "Liveable" + + File Name = "_maps\RandomRuins\Ruins\reebe_arena.dmm" + Size = (x = 79)(y = 60)(z = 1) + Tags = "Boss Combat Challenge", "Medium Loot", "Liveable" + + File Name = "_maps\RandomRuins\Ruins\reebe_decayed_sm.dmm" + Size = (x = 10)(y = 10)(z = 1) + Tags = "No Combat", "Medium Loot", "Liveable", "Hazardous" + + File Name = "_maps\RandomRuins\Ruins\reebe_floating_island.dmm" + Size = (x = 20)(y = 20)(z = 1) + Tags = "Boss Combat Challenge", "Minor Loot", "Liveable" + + + RockRuins: + File Name = "_maps\RandomRuins\RockRuins\rockplanet_budgetcuts.dmm" + Size = (x = 52)(y = 44)(z = 1) + Tags = "Hard Combat Challenge", "Medium Loot", "hospitable" + + File Name = "_maps\RandomRuins\RockRuins\rockplanet_harmfactory.dmm" + Size = (x = 42)(y = 41)(z = 1) + Tags = "Boss Combat Challenge", "Major Loot", Shelter", "Antag Gear", "Hazardous" + + File Name = "_maps\RandomRuins\RockRuins\rockplanet_shippingdock.dmm" + Size = (x = 85)(y = 73)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Hazardous", "Shelter" + + File Name = "_maps\RandomRuins\RockRuins\rockplanet_nomadcrash.dmm" + Size = (x = 58)(y = 48)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Hazardous", "Hospitable" + + File Name = "_maps\RandomRuins\RockRuins\rockplanet_distillery.dmm" + Size = (x = 44)(y = 45)(z = 1) + Tags = "Medium Combat Challenge", "Major Loot", "Hazardous", "Hospitable" + + + SandRuins: + File Name = "_maps\RandomRuins\Ruins\whitesands_surface_camp_saloon.dmm" + Size = (x = 30)(y = 30)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Inhospitable" + + File Name = "_maps\RandomRuins\Ruins\whitesands_surface_camp_combination.dmm" + Size = (x = 59)(y = 59)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Inhospitable", "Hazardous" + + File Name = "_maps\RandomRuins\Ruins\whitesands_surface_medipen_plant.dmm" + Size = (x = 23)(y = 29)(z = 1) + Tags = "No Combat", "Major Loot", "Shelter" + + File Name = "_maps\RandomRuins\Ruins\whitesands_surface_pubbyslopcrash.dmm" + Size = (x = 40)(y = 25)(z = 1) + Tags = "Minor Combat Challenge", "Medium Loot", "Shelter" + + + + SpaceRuins: + File Name = "_maps\RandomRuins\SpaceRuins\astraeus.dmm" + Size = (x = 47)(y = 35)(z = 1) + Tags = "Minor Combat Challenge", "Medium Loot", "Inhospitable" + + File Name = "_maps\RandomRuins\SpaceRuins\bigderelict1.dmm" + Size = (x = 40)(y = 34)(z = 1) + Tags = "Minor Combat Challenge", "Medium Loot", "Shelter" + + File Name = "_maps\RandomRuins\SpaceRuins\corporate_mining.dmm" + Size = (x = 50)(y = 50)(z = 1) + Tags = "No Combat", "Medium Loot", "Shelter" + + File Name = "_maps\RandomRuins\SpaceRuins\onehalf.dmm" + Size = (x = 29)(y = 20)(z = 1) + Tags = "Minor Combat Challenge", "Medium Loot", "inhospitable" + + File Name = "_maps\RandomRuins\SpaceRuins\power_puzzle.dmm" + Size = (x = 30)(y = 30)(z = 1) + Tags = "Minor Combat Challenge", "Major Loot", "Shelter", "Hazardous" + + File Name = "_maps\RandomRuins\SpaceRuins\singularitylab.dmm" + Size = (x = 118)(y = 75)(z = 1) + Tags = "Boss Combat Challenge", "Major Loot", "Shelter" + + File Name = "_maps\RandomRuins\SpaceRuins\spacemall.dmm" + Size = (x = 86)(y = 48)(z = 1) + Tags = "Medium Combat Challenge", "Major Loot", "Shelter" + + BeachRuins: + File Name = "_maps\RandomRuins\BeachRuins\beach_ancient_ruin.dmm" + Size = (x = 75)(y = 76)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", Liveable" + + File Name = "_maps\RandomRuins\BeachRuins\beach_colony.dmm" + Size = (x = 30)(y = 30)(z = 1) + Tags = "Minor Combat Challenge", "Minor Loot" + + File Name = "_maps\RandomRuins\BeachRuins\beach_fishing_hut.dmm" + Size = (x = 30)(y = 40)(z = 1) + Tags = "Hard Combat Challenge, "Major Loot", "Hazardous" + + File Name = "_maps\RandomRuins\BeachRuins\beach_crashed_engineer.dmm" + Size = (x = 32)(y = 32)(z = 1) + Tags = "Minor Combat Challenge, "Medium Loot", "Hazardous" + + File Name = "_maps\RandomRuins\BeachRuins\beach_pirate_crash.dmm" + Size = (x = 33)(y = 26)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Liveable" + + File Name = "_maps\RandomRuins\BeachRuins\beach_ocean_town.dmm" + Size = (x = 80)(y = 83)(z = 1) + Tags = "No Combat", "Minor loot", "Liveable" + + File Name = "_maps\RandomRuins\BeachRuins\beach_treasure_cove.dmm" + Size = (x = 37)(y = 43)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Liveable" + + File Name = "_maps\RandomRuins\BeachRuins\beach_float_resort.dmm" + Size = (x = 38)(y = 52)(z = 1) + Tags = "No Combat", "Minor Loot", "Liveable" + + Waste Ruins: + File name ="_maps\RandomRuins\wasteruins\wasteplanet_lab.dmm" + Size = (x = 26)(y = 25)(z = 1) + Tags = "No Combat", "Medium Loot" "Shelter" "hazardous" "hospitable" + + File name ="_maps\RandomRuins\wasteruins\wasteplanet_pandora.dmm" + Size = (x = 18)(y = 21)(z = 1) + Tags = "Boss Combat Challenge", "Medium Loot" "Megafauna", "hospitable" + + File name ="_maps\RandomRuins\wasteruins\wasteplanet_unhonorable.dmm" + Size = (x = 34)(y = 34)(z = 1) + Tags = "Minor Combat Challenge", "Medium Loot", "Shelter", "Hazardous" + + File name = "_maps\RandomRuins\wasteruins\wasteplanet_abandoned_mechbay.dmm" + Size = (x = 45)(y = 47)(z = 1) + Tags = "Boss Combat Challenge", "Medium Loot", "Shelter", "Hazardous" + + File name = "_maps\RandomRuins\wasteruins\wasteplanet_yard.dmm" + Size = (x = 43)(y = 51)(z = 1) + Tags = "Medium Combat Challenge", "Medium Loot", "Shelter", "Hazardous" diff --git a/code/datums/ruins/wasteplanet.dm b/code/datums/ruins/wasteplanet.dm index 40c6d19cfd5e..a4a054a7f1a2 100644 --- a/code/datums/ruins/wasteplanet.dm +++ b/code/datums/ruins/wasteplanet.dm @@ -31,3 +31,10 @@ id = "abandoned_mechbay" suffix = "wasteplanet_abandoned_mechbay.dmm" ruin_tags = list(RUIN_TAG_BOSS_COMBAT, RUIN_TAG_MEDIUM_LOOT, RUIN_TAG_SHELTER, RUIN_TAG_HAZARDOUS) + +/datum/map_template/ruin/wasteplanet/yard + name = "Abandoned Miskilamo salvage yard" + description = "An abandonded shipbreaking yard." + id = "wasteplanet_yard" + suffix = "wasteplanet_yard.dmm" + ruin_tags = list(RUIN_TAG_MEDIUM_COMBAT, RUIN_TAG_MEDIUM_LOOT, RUIN_TAG_SHELTER, RUIN_TAG_HAZARDOUS) diff --git a/code/game/area/areas/ruins/wasteplanet.dm b/code/game/area/areas/ruins/wasteplanet.dm index e80cb364c3ea..5f069d3e055b 100644 --- a/code/game/area/areas/ruins/wasteplanet.dm +++ b/code/game/area/areas/ruins/wasteplanet.dm @@ -43,3 +43,25 @@ /area/ruin/wasteplanet/wasteplanet_radiation/containment name = "Abandoned Waste Containment Vault" icon_state = "disposal" + +//Abandonded shipbreaking yard + +/area/ruin/wasteplanet/wasteplanet_shipbreaking + name = "Abandoned Shipbreaking Yard" + icon_state = "green" + +/area/ruin/wasteplanet/wasteplanet_shipbreaking/bay + name = "Miskilamo Shipbreaking Yard Bay" + icon_state = "engine" + +/area/ruin/wasteplanet/wasteplanet_shipbreaking/canteen + name = "Miskilamo Shipbreaking Yard Canteen" + icon_state = "hallC" + +/area/ruin/wasteplanet/wasteplanet_shipbreaking/dorms + name = "Miskilamo Shipbreaking Yard Dormatory" + icon_state = "bridge" + +/area/ruin/wasteplanet/wasteplanet_shipbreaking/ship + name = "Abandoned Shipbreaking Yard" + icon_state = "red" diff --git a/code/game/turfs/open/floor/plating/wasteplanet.dm b/code/game/turfs/open/floor/plating/wasteplanet.dm index 3cf9b047662c..7d839b66932d 100644 --- a/code/game/turfs/open/floor/plating/wasteplanet.dm +++ b/code/game/turfs/open/floor/plating/wasteplanet.dm @@ -58,6 +58,17 @@ initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS planetary_atmos = TRUE +/turf/open/floor/plasteel/wasteplanet + initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS + +/turf/open/floor/plasteel/wasteplanet/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent) + return + +/turf/open/floor/plasteel/dark/wasteplanet + initial_gas_mix = WASTEPLANET_DEFAULT_ATMOS + +/turf/open/floor/plasteel/dark/wasteplanet/MakeSlippery(wet_setting, min_wet_time, wet_time_to_add, max_wet_time, permanent) + return //cement /turf/open/floor/concrete/wasteplanet From 25e62756da7d0c61d0cac7fd524633da4245a39f Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 29 Sep 2024 01:15:40 -0500 Subject: [PATCH 042/167] Automatic changelog generation for PR #3136 [ci skip] --- html/changelogs/AutoChangeLog-pr-3136.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3136.yml diff --git a/html/changelogs/AutoChangeLog-pr-3136.yml b/html/changelogs/AutoChangeLog-pr-3136.yml new file mode 100644 index 000000000000..1c06ebef6c3e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3136.yml @@ -0,0 +1,4 @@ +author: Thera-Pissed +changes: + - {rscadd: 'New wasteplanet ruin, the abandoned Miskilamo shipbreaking yard!'} +delete-after: true From f727ce82049310353ac09f799ca8301a795371cc Mon Sep 17 00:00:00 2001 From: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Date: Sun, 29 Sep 2024 07:27:07 -0500 Subject: [PATCH 043/167] Fixes condiment packs (#3350) ## About The Pull Request fixes #2367 also removes the /food/ from the path since it does nothing ## Why It's Good For The Game ## Changelog :cl: fix: condiment packs are no longer invisible and missing names /:cl: --------- Signed-off-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> --- .../BeachRuins/beach_float_resort.dmm | 4 +- .../icemoon_underground_abandoned_village.dmm | 6 +- .../JungleRuins/jungle_cavecrew.dmm | 2 +- .../JungleRuins/jungle_interceptor.dmm | 10 +- .../JungleRuins/jungle_paradise.dmm | 6 +- .../lavaland_abandonedlisteningpost.dmm | 6 +- .../LavaRuins/lavaland_crashed_starwalker.dmm | 2 +- .../lavaland_surface_wrecked_factory.dmm | 16 +-- .../RockRuins/rockplanet_budgetcuts.dmm | 8 +- .../RockRuins/rockplanet_distillery.dmm | 34 +++--- _maps/RandomRuins/SpaceRuins/spacemall.dmm | 30 ++--- _maps/map_files/generic/CentCom.dmm | 12 +- _maps/outpost/nanotrasen_asteroid.dmm | 24 ++-- .../independent/independent_beluga.dmm | 34 +++--- .../independent/independent_lagoon.dmm | 18 +-- .../independent/independent_mudskipper.dmm | 4 +- .../independent/independent_rigger.dmm | 8 +- .../independent/independent_schmiedeberg.dmm | 20 +-- .../independent/independent_shetland.dmm | 8 +- .../independent/independent_sunskipper.dmm | 26 ++-- .../independent/independent_tranquility.dmm | 28 ++--- .../shuttles/nanotrasen/nanotrasen_heron.dmm | 16 +-- _maps/shuttles/nanotrasen/nanotrasen_meta.dmm | 28 ++--- .../shuttles/nanotrasen/nanotrasen_mimir.dmm | 34 +++--- .../shuttles/nanotrasen/nanotrasen_osprey.dmm | 10 +- .../nanotrasen/nanotrasen_skipper.dmm | 20 +-- _maps/shuttles/pgf/pgf_crying_sun.dmm | 4 +- _maps/shuttles/solgov/solgov_chronicle.dmm | 12 +- _maps/shuttles/solgov/solgov_inkwell.dmm | 32 ++--- _maps/shuttles/solgov/solgov_paracelsus.dmm | 26 ++-- .../shuttles/syndicate/syndicate_panacea.dmm | 12 +- .../syndicate/syndicate_twinkleshine.dmm | 14 +-- _maps/templates/shelter_3.dmm | 4 +- code/__DEFINES/dcs/signals/signals_reagent.dm | 59 +++++++++ code/datums/components/_component.dm | 5 + code/datums/traits/negative.dm | 2 +- .../objects/items/grenades/chem_grenade.dm | 2 +- code/game/objects/items/robot/robot_items.dm | 2 +- code/game/objects/items/storage/boxes.dm | 2 +- .../crates_lockers/closets/secure/freezer.dm | 14 +-- code/modules/admin/topic.dm | 4 +- code/modules/cargo/packs/food.dm | 24 ++-- .../modules/food_and_drinks/food/condiment.dm | 114 ++++++++++-------- .../kitchen_machinery/deep_fryer.dm | 2 +- .../kitchen_machinery/smartfridge.dm | 2 +- .../mob/living/silicon/robot/robot_modules.dm | 4 +- code/modules/reagents/chemistry/holder.dm | 12 +- .../chemistry/machinery/chem_master.dm | 8 +- code/modules/vending/drinnerware.dm | 10 +- shiptest.dme | 1 + 50 files changed, 436 insertions(+), 349 deletions(-) create mode 100644 code/__DEFINES/dcs/signals/signals_reagent.dm diff --git a/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm b/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm index bf43f3ee9f94..b2c39404d641 100644 --- a/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm +++ b/_maps/RandomRuins/BeachRuins/beach_float_resort.dmm @@ -1314,10 +1314,10 @@ /area/ruin/beach/float_resort) "Ja" = ( /obj/structure/table/wood, -/obj/item/reagent_containers/food/condiment/ketchup{ +/obj/item/reagent_containers/condiment/ketchup{ pixel_y = 18 }, -/obj/item/reagent_containers/food/condiment/mayonnaise{ +/obj/item/reagent_containers/condiment/mayonnaise{ pixel_x = -8; pixel_y = 16 }, diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm index d26f9458a943..29710e094f64 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_abandoned_village.dmm @@ -242,9 +242,9 @@ /obj/item/reagent_containers/food/snacks/fishmeat/carp, /obj/item/reagent_containers/food/snacks/fishmeat/carp, /obj/item/reagent_containers/food/snacks/fishmeat/carp, -/obj/item/reagent_containers/food/condiment/pack/ketchup, -/obj/item/reagent_containers/food/condiment/pack/ketchup, -/obj/item/reagent_containers/food/condiment/pack/ketchup, +/obj/item/reagent_containers/condiment/pack/ketchup, +/obj/item/reagent_containers/condiment/pack/ketchup, +/obj/item/reagent_containers/condiment/pack/ketchup, /obj/effect/turf_decal/corner/opaque/black{ dir = 1 }, diff --git a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm index dec4c65755f9..063922d0d88e 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm @@ -1034,7 +1034,7 @@ /obj/item/reagent_containers/food/snacks/rationpack, /obj/item/reagent_containers/food/snacks/rationpack, /obj/item/reagent_containers/food/snacks/rationpack, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -8; pixel_y = 5 }, diff --git a/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm b/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm index 057b0cbdbe8f..aab9b566f78e 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_interceptor.dmm @@ -41,7 +41,7 @@ dir = 5 }, /obj/item/stack/cable_coil/cut/green, -/obj/item/reagent_containers/food/condiment/peppermill, +/obj/item/reagent_containers/condiment/peppermill, /turf/open/floor/plating/rust, /area/ruin/jungle/interceptor/starhall) "au" = ( @@ -992,9 +992,9 @@ /obj/structure/closet/wall/directional/east, /obj/item/reagent_containers/food/snacks/meat/slab/monkey, /obj/item/reagent_containers/food/snacks/meat/slab/monkey, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/rice, /turf/open/floor/plasteel/tech/techmaint, /area/ruin/jungle/interceptor/starhall) "hO" = ( @@ -2887,7 +2887,7 @@ icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt/dust, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = 5; pixel_y = 5 }, diff --git a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm index 39d17f372342..0e19890e63c7 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm @@ -1465,19 +1465,19 @@ pixel_x = 9 }, /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -3; pixel_y = 6 }, /obj/item/reagent_containers/glass/beaker{ pixel_x = -2 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = -8; pixel_y = 2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = -8; pixel_y = 12 diff --git a/_maps/RandomRuins/LavaRuins/lavaland_abandonedlisteningpost.dmm b/_maps/RandomRuins/LavaRuins/lavaland_abandonedlisteningpost.dmm index 483580cf70dd..8cc99b4a591a 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_abandonedlisteningpost.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_abandonedlisteningpost.dmm @@ -2100,11 +2100,11 @@ pixel_y = 29; pixel_x = -2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_y = 17; pixel_x = -3 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_y = 17; pixel_x = 4 }, @@ -2549,7 +2549,7 @@ pixel_y = 7; pixel_x = -9 }, -/obj/item/reagent_containers/food/condiment/bbqsauce{ +/obj/item/reagent_containers/condiment/bbqsauce{ pixel_y = 6; pixel_x = 7 }, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm b/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm index f9be78af5b89..4d63ae26b5bb 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_crashed_starwalker.dmm @@ -3133,7 +3133,7 @@ /obj/structure/closet/secure_closet/freezer/kitchen/wall{ pixel_y = 29 }, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/rice, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, /area/ruin/unpowered/crashed_starwalker) diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm index c4a3a0397508..fda16098a148 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_wrecked_factory.dmm @@ -705,11 +705,11 @@ /obj/item/reagent_containers/food/snacks/meat/slab, /obj/item/reagent_containers/food/snacks/meat/slab, /obj/item/reagent_containers/food/snacks/meat/slab, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/rice, /obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/milk, /obj/item/storage/box/ingredients/vegetarian, /turf/open/floor/wood, /area/ruin/lavaland/factory/adminstrative) @@ -1578,11 +1578,11 @@ /obj/effect/turf_decal/corner/opaque/bar, /obj/machinery/light/directional/east, /obj/item/storage/box/ingredients/vegetarian, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/soymilk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, /obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/rice, /obj/item/reagent_containers/food/snacks/meat/slab, /obj/item/reagent_containers/food/snacks/meat/slab, /obj/item/reagent_containers/food/snacks/meat/slab, diff --git a/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm b/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm index b837eff979f7..ef9240170e41 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_budgetcuts.dmm @@ -47,7 +47,7 @@ /obj/machinery/reagentgrinder{ pixel_y = 5 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -2; pixel_y = 6 }, @@ -517,7 +517,7 @@ pixel_x = -1; pixel_y = 3 }, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_x = 5; pixel_y = 5 }, @@ -769,12 +769,12 @@ "mO" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = -8; pixel_y = 2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = -8; pixel_y = 12 diff --git a/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm b/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm index d05a8c37f071..2fd3caa4c42f 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_distillery.dmm @@ -49,7 +49,7 @@ /obj/structure/catwalk/over, /obj/effect/decal/cleanable/dirt/dust, /obj/structure/table/glass, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_y = 13; pixel_x = -2; layer = 2.8 @@ -65,7 +65,7 @@ pixel_y = 6; layer = 2.8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_y = 10; pixel_x = 10 }, @@ -296,8 +296,8 @@ /obj/effect/turf_decal/industrial/outline/red, /obj/item/reagent_containers/food/snacks/grown/corn, /obj/item/reagent_containers/food/snacks/grown/corn, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, /obj/item/reagent_containers/food/snacks/grown/corn{ pixel_y = 3 }, @@ -1250,33 +1250,33 @@ "om" = ( /obj/structure/catwalk/over, /obj/structure/closet/crate/hydroponics, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_y = 8; pixel_x = -8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_y = 8; pixel_x = -8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_y = 8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_y = 8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_y = 8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = 8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = 8 }, /turf/open/floor/plating/rockplanet/lit, @@ -2140,12 +2140,12 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/rack, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_y = 13; pixel_x = -2; layer = 2.8 }, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_y = 7; pixel_x = -2; layer = 2.8 @@ -2897,10 +2897,10 @@ /obj/item/seeds/corn, /obj/item/seeds/corn, /obj/item/seeds/corn, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -8 }, -/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/condiment/enzyme, /obj/item/reagent_containers/food/snacks/grown/corn{ pixel_y = 4 }, diff --git a/_maps/RandomRuins/SpaceRuins/spacemall.dmm b/_maps/RandomRuins/SpaceRuins/spacemall.dmm index 251b40fb4443..3be5be2fdce0 100644 --- a/_maps/RandomRuins/SpaceRuins/spacemall.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacemall.dmm @@ -1430,10 +1430,10 @@ name = "Kiosk Shutters"; dir = 4 }, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_y = 5 }, -/obj/item/reagent_containers/food/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, /obj/structure/closet/wall/directional/north, /obj/item/spacecash/bundle/c100, /turf/open/floor/plasteel/dark, @@ -2212,10 +2212,10 @@ "iE" = ( /obj/effect/turf_decal/corner/transparent/black/diagonal, /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = 4 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -4 }, /obj/machinery/door/poddoor/shutters{ @@ -3478,10 +3478,10 @@ /area/ruin/space/has_grav/spacemall) "ns" = ( /obj/effect/turf_decal/corner/transparent/black/diagonal, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_y = -5 }, -/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/condiment/flour, /obj/structure/table, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/spacemall/dorms) @@ -5966,15 +5966,15 @@ pixel_x = -30; dir = 4 }, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/rice, /obj/structure/table, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/spacemall/dorms) diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 405950bfe633..2f651ffb4025 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -4407,7 +4407,7 @@ /turf/open/floor/plasteel/grimy, /area/centcom/ferry) "aOO" = ( -/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/condiment/enzyme, /obj/item/reagent_containers/food/drinks/shaker, /obj/item/book/manual/wiki/drinks, /obj/structure/closet/crate, @@ -4515,11 +4515,11 @@ "aPq" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -8; pixel_y = 5 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -8 }, /obj/item/reagent_containers/food/drinks/mug, @@ -10956,11 +10956,11 @@ /area/centcom/control) "lii" = ( /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -8; pixel_y = 5 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -8 }, /obj/item/melee/knife/kitchen, @@ -14482,7 +14482,7 @@ "rUH" = ( /obj/structure/table/reinforced, /obj/item/reagent_containers/food/snacks/mint, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_y = 5 }, /obj/effect/turf_decal/corner/transparent/neutral{ diff --git a/_maps/outpost/nanotrasen_asteroid.dmm b/_maps/outpost/nanotrasen_asteroid.dmm index cc6986e98b8d..f537143c31e9 100644 --- a/_maps/outpost/nanotrasen_asteroid.dmm +++ b/_maps/outpost/nanotrasen_asteroid.dmm @@ -4357,7 +4357,7 @@ /area/outpost/maintenance/fore) "qg" = ( /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -2; pixel_y = 6 }, @@ -4713,12 +4713,12 @@ pixel_x = 6; pixel_y = 6 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = -8; pixel_y = 2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = -8; pixel_y = 12 @@ -5019,12 +5019,12 @@ /area/outpost/cargo) "rZ" = ( /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = -8; pixel_y = 2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = -8; pixel_y = 12 @@ -10121,12 +10121,12 @@ /area/outpost/operations) "Ju" = ( /obj/structure/table, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = 9; pixel_y = 2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = 9; pixel_y = 12 @@ -11242,7 +11242,7 @@ /area/outpost/maintenance/fore) "NA" = ( /obj/structure/table, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -2; pixel_y = 6 }, @@ -11758,7 +11758,7 @@ pixel_x = -5; pixel_y = 5 }, -/obj/item/reagent_containers/food/condiment/soysauce{ +/obj/item/reagent_containers/condiment/soysauce{ pixel_x = -6; pixel_y = 7 }, @@ -12992,7 +12992,7 @@ /obj/structure/table/reinforced, /obj/machinery/light/directional/south, /obj/item/reagent_containers/glass/beaker, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -2; pixel_y = 6 }, @@ -14096,12 +14096,12 @@ pixel_x = 6; pixel_y = 6 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = -8; pixel_y = 2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = -8; pixel_y = 12 diff --git a/_maps/shuttles/independent/independent_beluga.dmm b/_maps/shuttles/independent/independent_beluga.dmm index 6158b206d67c..ca90adbeabe5 100644 --- a/_maps/shuttles/independent/independent_beluga.dmm +++ b/_maps/shuttles/independent/independent_beluga.dmm @@ -1454,29 +1454,29 @@ /obj/item/storage/bag/tray{ pixel_y = 6 }, -/obj/item/reagent_containers/food/condiment/soysauce{ +/obj/item/reagent_containers/condiment/soysauce{ pixel_x = 6; pixel_y = 11 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = -5; pixel_y = 12 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = -3; pixel_y = 8 }, -/obj/item/reagent_containers/food/condiment/pack/ketchup{ +/obj/item/reagent_containers/condiment/pack/ketchup{ pixel_x = -8; pixel_y = -4 }, -/obj/item/reagent_containers/food/condiment/pack/ketchup{ +/obj/item/reagent_containers/condiment/pack/ketchup{ pixel_x = -8; pixel_y = -4 }, -/obj/item/reagent_containers/food/condiment/pack/ketchup{ +/obj/item/reagent_containers/condiment/pack/ketchup{ pixel_x = -8; pixel_y = -4 }, @@ -3192,42 +3192,42 @@ /area/ship/crew/dorm) "EP" = ( /obj/structure/closet/secure_closet/freezer/wall/directional/north, -/obj/item/reagent_containers/food/condiment/rice{ +/obj/item/reagent_containers/condiment/rice{ pixel_y = 17 }, -/obj/item/reagent_containers/food/condiment/flour{ +/obj/item/reagent_containers/condiment/flour{ pixel_x = 6; pixel_y = 10 }, -/obj/item/reagent_containers/food/condiment/flour{ +/obj/item/reagent_containers/condiment/flour{ pixel_x = 6; pixel_y = 4 }, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_x = -7; pixel_y = 12 }, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_x = -7; pixel_y = 6 }, -/obj/item/reagent_containers/food/condiment/milk{ +/obj/item/reagent_containers/condiment/milk{ pixel_x = -10; pixel_y = -3 }, -/obj/item/reagent_containers/food/condiment/milk{ +/obj/item/reagent_containers/condiment/milk{ pixel_x = -10; pixel_y = -3 }, -/obj/item/reagent_containers/food/condiment/milk{ +/obj/item/reagent_containers/condiment/milk{ pixel_x = -10; pixel_y = -3 }, -/obj/item/reagent_containers/food/condiment/soymilk{ +/obj/item/reagent_containers/condiment/soymilk{ pixel_y = -5; pixel_x = -4 }, -/obj/item/reagent_containers/food/condiment/soymilk{ +/obj/item/reagent_containers/condiment/soymilk{ pixel_y = -5; pixel_x = -4 }, @@ -4139,7 +4139,7 @@ pixel_y = 17; pixel_x = -7 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -6; pixel_y = 10 }, diff --git a/_maps/shuttles/independent/independent_lagoon.dmm b/_maps/shuttles/independent/independent_lagoon.dmm index 16f3ad2cbfa1..3615828fa9d2 100644 --- a/_maps/shuttles/independent/independent_lagoon.dmm +++ b/_maps/shuttles/independent/independent_lagoon.dmm @@ -1366,7 +1366,7 @@ icon_state = "2-4" }, /obj/item/kitchen/rollingpin, -/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/condiment/enzyme, /obj/effect/turf_decal/corner/opaque/white/diagonal, /obj/item/radio/intercom/directional/west, /turf/open/floor/plasteel, @@ -1569,12 +1569,12 @@ /obj/structure/closet/secure_closet/freezer/kitchen, /obj/item/storage/fancy/egg_box, /obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/sugar, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, /obj/effect/turf_decal/corner/opaque/white/diagonal, /obj/machinery/firealarm/directional/north, /turf/open/floor/plasteel, @@ -3931,11 +3931,11 @@ /area/ship/hallway/aft) "An" = ( /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = 5; pixel_y = 5 }, -/obj/item/reagent_containers/food/condiment/peppermill, +/obj/item/reagent_containers/condiment/peppermill, /obj/machinery/door/firedoor/border_only, /obj/effect/turf_decal/corner/opaque/white/diagonal, /turf/open/floor/plasteel, diff --git a/_maps/shuttles/independent/independent_mudskipper.dmm b/_maps/shuttles/independent/independent_mudskipper.dmm index be3d9a994e7f..26474b9c4c2f 100644 --- a/_maps/shuttles/independent/independent_mudskipper.dmm +++ b/_maps/shuttles/independent/independent_mudskipper.dmm @@ -1881,11 +1881,11 @@ "Rl" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/structure/table, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = 10; pixel_y = 5 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = 18; pixel_y = 2 }, diff --git a/_maps/shuttles/independent/independent_rigger.dmm b/_maps/shuttles/independent/independent_rigger.dmm index da493fcdf548..d6cb54aed39c 100644 --- a/_maps/shuttles/independent/independent_rigger.dmm +++ b/_maps/shuttles/independent/independent_rigger.dmm @@ -241,8 +241,8 @@ /obj/item/storage/cans/sixbeer, /obj/effect/spawner/lootdrop/ration, /obj/effect/spawner/lootdrop/ration, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/sugar, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/sugar, /obj/item/radio/intercom/directional/north, /turf/open/floor/plasteel/white, /area/ship/crew/canteen) @@ -4398,10 +4398,10 @@ }, /obj/effect/turf_decal/corner/opaque/yellow/diagonal, /obj/structure/table, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -7 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -14 }, /turf/open/floor/plasteel/white, diff --git a/_maps/shuttles/independent/independent_schmiedeberg.dmm b/_maps/shuttles/independent/independent_schmiedeberg.dmm index 891e3bd2ce9a..3ae3915db4d3 100644 --- a/_maps/shuttles/independent/independent_schmiedeberg.dmm +++ b/_maps/shuttles/independent/independent_schmiedeberg.dmm @@ -68,13 +68,13 @@ "aO" = ( /obj/structure/table, /obj/item/storage/bag/tray, -/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/condiment/enzyme, /obj/item/melee/knife/kitchen, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -5; pixel_y = 10 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = 3; pixel_y = 11 }, @@ -2516,13 +2516,13 @@ /obj/structure/closet/secure_closet/freezer/wall/directional/north, /obj/item/storage/fancy/egg_box, /obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/peppermill, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/peppermill, /obj/effect/decal/cleanable/food/flour, /turf/open/floor/concrete/slab_3, /area/ship/crew/canteen) diff --git a/_maps/shuttles/independent/independent_shetland.dmm b/_maps/shuttles/independent/independent_shetland.dmm index 89dd45bb2262..3bf95ea99b6f 100644 --- a/_maps/shuttles/independent/independent_shetland.dmm +++ b/_maps/shuttles/independent/independent_shetland.dmm @@ -2852,11 +2852,11 @@ "xz" = ( /obj/effect/turf_decal/corner/opaque/neutral/half, /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -4; pixel_y = 10 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = 4; pixel_y = 10 }, @@ -3441,8 +3441,8 @@ populate = 0 }, /obj/effect/turf_decal/corner/opaque/neutral/half, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/sugar, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/sugar, /turf/open/floor/plasteel/dark, /area/ship/crew/canteen) "CK" = ( diff --git a/_maps/shuttles/independent/independent_sunskipper.dmm b/_maps/shuttles/independent/independent_sunskipper.dmm index a5fcf740be59..3edffc72acbc 100644 --- a/_maps/shuttles/independent/independent_sunskipper.dmm +++ b/_maps/shuttles/independent/independent_sunskipper.dmm @@ -196,11 +196,11 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/item/reagent_containers/food/condiment/ketchup{ +/obj/item/reagent_containers/condiment/ketchup{ pixel_x = -6; pixel_y = 8 }, -/obj/item/reagent_containers/food/condiment/mayonnaise{ +/obj/item/reagent_containers/condiment/mayonnaise{ pixel_x = 6; pixel_y = 8 }, @@ -349,11 +349,11 @@ pixel_x = -7; pixel_y = 9 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_y = 13; pixel_x = 4 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_y = 13; pixel_x = 11 }, @@ -3172,11 +3172,11 @@ /area/template_noop) "Pe" = ( /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -6; pixel_y = 8 }, -/obj/item/reagent_containers/food/condiment/oliveoil{ +/obj/item/reagent_containers/condiment/oliveoil{ pixel_x = 6; pixel_y = 8 }, @@ -3273,7 +3273,7 @@ /obj/structure/closet/secure_closet/freezer/kitchen, /obj/effect/turf_decal/borderfloorblack, /obj/effect/turf_decal/box, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/rice, /turf/open/floor/plasteel/dark, /area/ship/crew/canteen/kitchen) "QB" = ( @@ -3554,10 +3554,10 @@ /obj/structure/closet/crate{ name = "supplies crate" }, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/peppermill, -/obj/item/reagent_containers/food/condiment/peppermill, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/peppermill, +/obj/item/reagent_containers/condiment/peppermill, /obj/item/storage/box/lights/mixed, /obj/item/storage/box/drinkingglasses, /obj/item/storage/fancy/candle_box, @@ -3656,11 +3656,11 @@ "VG" = ( /obj/machinery/light/directional/west, /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/soysauce{ +/obj/item/reagent_containers/condiment/soysauce{ pixel_x = -6; pixel_y = 8 }, -/obj/item/reagent_containers/food/condiment/bbqsauce{ +/obj/item/reagent_containers/condiment/bbqsauce{ pixel_x = 6; pixel_y = 8 }, diff --git a/_maps/shuttles/independent/independent_tranquility.dmm b/_maps/shuttles/independent/independent_tranquility.dmm index 6a26f5e7b264..fe5a2993e2fc 100644 --- a/_maps/shuttles/independent/independent_tranquility.dmm +++ b/_maps/shuttles/independent/independent_tranquility.dmm @@ -544,20 +544,20 @@ dir = 1 }, /obj/effect/turf_decal/corner/transparent/bar, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/sugar, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, /obj/item/storage/box/ingredients/carnivore, /obj/item/storage/box/ingredients/fruity, /obj/item/storage/box/ingredients/grains, /obj/item/storage/box/ingredients/vegetarian, /obj/item/storage/box/ingredients/wildcard, /obj/item/storage/box/ingredients/wildcard, -/obj/item/reagent_containers/food/condiment/enzyme, -/obj/item/reagent_containers/food/condiment/mayonnaise, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/enzyme, +/obj/item/reagent_containers/condiment/mayonnaise, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/rice, /obj/item/storage/box/condimentbottles, /obj/structure/closet/secure_closet/wall/directional/west{ name = "Kitchen Cabinet" @@ -1160,7 +1160,7 @@ /area/ship/crew/dorm) "iq" = ( /obj/structure/table, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -11; pixel_y = 6 }, @@ -3002,7 +3002,7 @@ /area/ship/hallway/port) "yL" = ( /obj/structure/table, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = 13; pixel_y = 2 }, @@ -5415,10 +5415,10 @@ /obj/item/reagent_containers/food/snacks/meat/slab/synthmeat, /obj/item/reagent_containers/food/snacks/meat/slab/synthmeat, /obj/item/reagent_containers/food/snacks/meat/slab/synthmeat, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/soymilk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, /obj/item/storage/fancy/egg_box, /obj/item/storage/fancy/egg_box, /obj/structure/closet/secure_closet/wall/directional/east{ diff --git a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm index b469bbaa0984..3dda0b36dd63 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm @@ -7054,11 +7054,11 @@ /area/ship/hallway/fore) "zN" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/obj/item/reagent_containers/food/condiment/soysauce{ +/obj/item/reagent_containers/condiment/soysauce{ pixel_x = 3; pixel_y = 3 }, -/obj/item/reagent_containers/food/condiment/mayonnaise, +/obj/item/reagent_containers/condiment/mayonnaise, /obj/effect/turf_decal/box/corners{ dir = 4 }, @@ -9209,12 +9209,12 @@ "HT" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = -8; pixel_y = 2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = -8; pixel_y = 12 @@ -9319,11 +9319,11 @@ "Ip" = ( /obj/structure/table, /obj/item/reagent_containers/food/snacks/mint, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -2; pixel_y = 6 }, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_x = 5; pixel_y = 5 }, @@ -12148,12 +12148,12 @@ pixel_x = 6; pixel_y = 6 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; pixel_x = -8; pixel_y = 2 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ desc = "Salt. From space oceans, presumably. A staple of modern medicine."; pixel_x = -8; pixel_y = 12 diff --git a/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm b/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm index 1f645758f3cb..eaf4abc2b9b3 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm @@ -543,11 +543,11 @@ pixel_y = 3 }, /obj/effect/turf_decal/corner/transparent/bar/diagonal, -/obj/item/reagent_containers/food/condiment/ketchup{ +/obj/item/reagent_containers/condiment/ketchup{ pixel_y = 14; pixel_x = 9 }, -/obj/item/reagent_containers/food/condiment/mayonnaise{ +/obj/item/reagent_containers/condiment/mayonnaise{ pixel_y = 14 }, /obj/item/reagent_containers/food/drinks/soda_cans/cola{ @@ -1808,10 +1808,10 @@ /area/ship/engineering) "lH" = ( /obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/enzyme, /obj/item/reagent_containers/food/snacks/meat/slab/synthmeat{ pixel_x = -3; pixel_y = 3 @@ -1827,10 +1827,10 @@ name = "fridge"; anchored = 1 }, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, /turf/open/floor/plasteel, /area/ship/crew/canteen/kitchen) "lK" = ( @@ -2758,11 +2758,11 @@ /area/ship/cargo) "EX" = ( /obj/structure/table, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -8; pixel_y = 10 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -8; pixel_y = 4 }, @@ -2869,11 +2869,11 @@ pixel_y = 6 }, /obj/effect/turf_decal/corner/opaque/white/diagonal, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -8; pixel_y = 10 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -8; pixel_y = 4 }, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm index 708933a2287a..aa2a0aad5b1f 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm @@ -2814,18 +2814,18 @@ }, /obj/item/storage/fancy/egg_box, /obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/rice, /obj/item/reagent_containers/food/snacks/tofu, /obj/item/reagent_containers/food/snacks/tofu, /turf/open/floor/plasteel/mono/white, @@ -3878,14 +3878,14 @@ /area/ship/crew/canteen/kitchen) "xb" = ( /obj/structure/table, -/obj/item/reagent_containers/food/condiment/sugar{ +/obj/item/reagent_containers/condiment/sugar{ pixel_y = 4 }, -/obj/item/reagent_containers/food/condiment/rice{ +/obj/item/reagent_containers/condiment/rice{ pixel_y = 10; pixel_x = 3 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_x = -5; pixel_y = 5 }, @@ -4466,11 +4466,11 @@ /obj/item/toy/figure/chef, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_y = 10; pixel_x = -7 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = 8; pixel_y = 9 }, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm b/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm index a44e00c41303..fb1d6e3c1f12 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm @@ -2797,11 +2797,11 @@ /area/ship/hallway/central) "sl" = ( /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -4; pixel_y = 10 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = 4; pixel_y = 10 }, @@ -5577,7 +5577,7 @@ "JL" = ( /obj/structure/table/reinforced, /obj/item/reagent_containers/food/drinks/shaker, -/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/condiment/enzyme, /obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, @@ -7646,8 +7646,8 @@ /obj/structure/table/reinforced, /obj/item/melee/knife/kitchen, /obj/item/kitchen/rollingpin, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/rice, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/rice, /obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm index e69aa1de47ca..d875a024d07f 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm @@ -2621,11 +2621,11 @@ /obj/effect/turf_decal/corner/opaque/white/mono, /obj/structure/table/reinforced, /obj/item/kitchen/rollingpin, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -2; pixel_y = 11 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_y = 6; pixel_x = -8 }, @@ -4971,11 +4971,11 @@ /obj/effect/turf_decal/corner/opaque/neutral/half{ dir = 1 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_y = 6; pixel_x = -8 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -2; pixel_y = 11 }, @@ -5142,12 +5142,12 @@ /obj/structure/closet/secure_closet/freezer{ anchored = 1 }, -/obj/item/reagent_containers/food/condiment/enzyme, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/soymilk, +/obj/item/reagent_containers/condiment/enzyme, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, /obj/effect/turf_decal/corner/opaque/green/mono, /turf/open/floor/plasteel, /area/ship/crew/canteen/kitchen) diff --git a/_maps/shuttles/pgf/pgf_crying_sun.dmm b/_maps/shuttles/pgf/pgf_crying_sun.dmm index eb5211a95ac9..0c740842e5d9 100644 --- a/_maps/shuttles/pgf/pgf_crying_sun.dmm +++ b/_maps/shuttles/pgf/pgf_crying_sun.dmm @@ -2584,11 +2584,11 @@ pixel_x = 9; pixel_y = -5 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_y = 10; pixel_x = -6 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_y = 10 }, /turf/open/floor/plasteel/dark, diff --git a/_maps/shuttles/solgov/solgov_chronicle.dmm b/_maps/shuttles/solgov/solgov_chronicle.dmm index e8af1166a200..bacabd6cc23c 100644 --- a/_maps/shuttles/solgov/solgov_chronicle.dmm +++ b/_maps/shuttles/solgov/solgov_chronicle.dmm @@ -2476,8 +2476,8 @@ color = "#543C30"; dir = 4 }, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, /turf/open/floor/wood/mahogany, /area/ship/crew) "zh" = ( @@ -2528,10 +2528,10 @@ /obj/item/reagent_containers/food/snacks/grown/cabbage, /obj/item/reagent_containers/food/snacks/grown/cabbage, /obj/item/reagent_containers/food/snacks/grown/cabbage, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, /obj/structure/closet/crate/secure/gear{ desc = "For emergency use only"; name = "emergency sauerkraut supplies"; diff --git a/_maps/shuttles/solgov/solgov_inkwell.dmm b/_maps/shuttles/solgov/solgov_inkwell.dmm index 5d2c0fbe0ccc..27427f9bbfa2 100644 --- a/_maps/shuttles/solgov/solgov_inkwell.dmm +++ b/_maps/shuttles/solgov/solgov_inkwell.dmm @@ -3343,10 +3343,10 @@ /obj/structure/table/wood, /obj/item/cutting_board, /obj/item/melee/knife/kitchen, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -17 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -10; pixel_y = 6 }, @@ -3950,17 +3950,17 @@ /area/ship/crew/dorm/dormtwo) "yE" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/soymilk, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, /obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/condiment/enzyme, /turf/open/floor/wood/walnut, /area/ship/crew/canteen/kitchen) "yG" = ( @@ -7366,10 +7366,10 @@ /obj/item/reagent_containers/food/snacks/grown/cabbage, /obj/item/reagent_containers/food/snacks/grown/cabbage, /obj/item/reagent_containers/food/snacks/grown/cabbage, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/saltshaker, -/obj/item/reagent_containers/food/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/saltshaker, /obj/structure/closet/crate/secure/gear{ desc = "For emergency use only"; name = "emergency sauerkraut supplies"; diff --git a/_maps/shuttles/solgov/solgov_paracelsus.dmm b/_maps/shuttles/solgov/solgov_paracelsus.dmm index ef642488ef50..9cfda7a14c0d 100644 --- a/_maps/shuttles/solgov/solgov_paracelsus.dmm +++ b/_maps/shuttles/solgov/solgov_paracelsus.dmm @@ -3538,11 +3538,11 @@ pixel_x = -7; pixel_y = 8 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = 4; pixel_y = 10 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = 10; pixel_y = 10 }, @@ -4004,17 +4004,17 @@ /turf/open/floor/carpet/royalblue, /area/ship/crew/office) "ML" = ( -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/rice, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/soymilk, -/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/enzyme, /obj/structure/closet/secure_closet/freezer{ anchored = 1; name = "refrigerator" diff --git a/_maps/shuttles/syndicate/syndicate_panacea.dmm b/_maps/shuttles/syndicate/syndicate_panacea.dmm index 71526c69198f..3d26ff6512b5 100644 --- a/_maps/shuttles/syndicate/syndicate_panacea.dmm +++ b/_maps/shuttles/syndicate/syndicate_panacea.dmm @@ -6496,15 +6496,15 @@ /area/ship/crew/dorm/dormtwo) "LY" = ( /obj/structure/table, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = -2; pixel_y = 11 }, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_y = 8; pixel_x = -8 }, -/obj/item/reagent_containers/food/condiment/enzyme{ +/obj/item/reagent_containers/condiment/enzyme{ pixel_y = 14; pixel_x = 14 }, @@ -6798,15 +6798,15 @@ /area/ship/crew/office) "Nz" = ( /obj/structure/table, -/obj/item/reagent_containers/food/condiment/mayonnaise{ +/obj/item/reagent_containers/condiment/mayonnaise{ pixel_x = 2; pixel_y = 15 }, -/obj/item/reagent_containers/food/condiment/ketchup{ +/obj/item/reagent_containers/condiment/ketchup{ pixel_x = 11; pixel_y = 10 }, -/obj/item/reagent_containers/food/condiment/hotsauce{ +/obj/item/reagent_containers/condiment/hotsauce{ pixel_y = 16; pixel_x = -8 }, diff --git a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm index ca7bd7705efd..6c690286b2ac 100644 --- a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm +++ b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm @@ -2993,18 +2993,18 @@ "qP" = ( /obj/machinery/light/directional/north, /obj/item/kitchen/rollingpin, -/obj/item/reagent_containers/food/condiment/sugar, -/obj/item/reagent_containers/food/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, /obj/structure/closet/secure_closet/freezer/kitchen, /obj/item/storage/fancy/egg_box, /obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, -/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, /obj/item/storage/box/ingredients/carnivore, /obj/item/storage/box/ingredients/vegetarian, -/obj/item/reagent_containers/food/condiment/milk, -/obj/item/reagent_containers/food/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, /obj/effect/spawner/lootdrop/donkpockets, /obj/effect/spawner/lootdrop/donkpockets, /turf/open/floor/carpet/red, diff --git a/_maps/templates/shelter_3.dmm b/_maps/templates/shelter_3.dmm index dd4f6645a518..570483a06a1d 100644 --- a/_maps/templates/shelter_3.dmm +++ b/_maps/templates/shelter_3.dmm @@ -187,11 +187,11 @@ /area/survivalpod) "F" = ( /obj/structure/table/wood/fancy, -/obj/item/reagent_containers/food/condiment/peppermill{ +/obj/item/reagent_containers/condiment/peppermill{ pixel_x = -4; pixel_y = 12 }, -/obj/item/reagent_containers/food/condiment/saltshaker{ +/obj/item/reagent_containers/condiment/saltshaker{ pixel_x = 4; pixel_y = 4 }, diff --git a/code/__DEFINES/dcs/signals/signals_reagent.dm b/code/__DEFINES/dcs/signals/signals_reagent.dm new file mode 100644 index 000000000000..957bb6083674 --- /dev/null +++ b/code/__DEFINES/dcs/signals/signals_reagent.dm @@ -0,0 +1,59 @@ +// Atom reagent signals. Format: +// When the signal is called: (signal arguments) +// All signals send the source datum of the signal as the first argument + +///from base of atom/expose_reagents(): (/list, /datum/reagents, methods, volume_modifier, show_message) +//#define COMSIG_ATOM_EXPOSE_REAGENTS "atom_expose_reagents" + /// Prevents the atom from being exposed to reagents if returned on [COMSIG_ATOM_EXPOSE_REAGENTS] + //#define COMPONENT_NO_EXPOSE_REAGENTS (1<<0) +///from base of atom/expose_reagents(): (/list, /datum/reagents, methods, volume_modifier, show_message) +//#define COMSIG_ATOM_AFTER_EXPOSE_REAGENTS "atom_after_expose_reagents" +///from base of [/datum/reagent/proc/expose_atom]: (/datum/reagent, reac_volume) +//#define COMSIG_ATOM_EXPOSE_REAGENT "atom_expose_reagent" +///from base of [/datum/reagent/proc/expose_atom]: (/atom, reac_volume) +//#define COMSIG_REAGENT_EXPOSE_ATOM "reagent_expose_atom" +///from base of [/datum/reagent/proc/expose_atom]: (/obj, reac_volume) +//#define COMSIG_REAGENT_EXPOSE_OBJ "reagent_expose_obj" +///from base of [/datum/reagent/proc/expose_atom]: (/mob/living, reac_volume, methods, show_message, touch_protection, /mob/camera/blob) // ovemind arg is only used by blob reagents. +//#define COMSIG_REAGENT_EXPOSE_MOB "reagent_expose_mob" +///from base of [/datum/reagent/proc/expose_atom]: (/turf, reac_volume) +//#define COMSIG_REAGENT_EXPOSE_TURF "reagent_expose_turf" + +///from base of [/datum/materials_controller/proc/InitializeMaterial]: (/datum/material) +//#define COMSIG_MATERIALS_INIT_MAT "SSmaterials_init_mat" + +///from base of [/datum/component/multiple_lives/proc/respawn]: (mob/respawned_mob, gibbed, lives_left) +//#define COMSIG_ON_MULTIPLE_LIVES_RESPAWN "on_multiple_lives_respawn" + +///from base of [/datum/reagents/proc/add_reagent] - Sent before the reagent is added: (reagenttype, amount, reagtemp, data, no_react) +//#define COMSIG_REAGENTS_PRE_ADD_REAGENT "reagents_pre_add_reagent" + /// Prevents the reagent from being added. + //#define COMPONENT_CANCEL_REAGENT_ADD (1<<0) +///from base of [/datum/reagents/proc/add_reagent]: (/datum/reagent, amount, reagtemp, data, no_react) +#define COMSIG_REAGENTS_NEW_REAGENT "reagents_new_reagent" +///from base of [/datum/reagents/proc/add_reagent]: (/datum/reagent, amount, reagtemp, data, no_react) +#define COMSIG_REAGENTS_ADD_REAGENT "reagents_add_reagent" +///from base of [/datum/reagents/proc/del_reagent]: (/datum/reagent) +#define COMSIG_REAGENTS_DEL_REAGENT "reagents_del_reagent" +///from base of [/datum/reagents/proc/remove_reagent]: (/datum/reagent, amount) +#define COMSIG_REAGENTS_REM_REAGENT "reagents_rem_reagent" +///from base of [/datum/reagents/proc/clear_reagents]: () +#define COMSIG_REAGENTS_CLEAR_REAGENTS "reagents_clear_reagents" +///from base of [/datum/reagents/proc/set_temperature]: (new_temp, old_temp) +//#define COMSIG_REAGENTS_TEMP_CHANGE "reagents_temp_change" +///from base of [/datum/reagents/proc/handle_reactions]: (num_reactions) +//#define COMSIG_REAGENTS_REACTED "reagents_reacted" +///from base of [/datum/reagents/proc/process]: (num_reactions) +//#define COMSIG_REAGENTS_REACTION_STEP "reagents_time_step" +///from base of [/atom/proc/expose_reagents]: (/atom, /list, methods, volume_modifier, show_message) +//#define COMSIG_REAGENTS_EXPOSE_ATOM "reagents_expose_atom" +///from base of [/obj/proc/expose_reagents]: (/obj, /list, methods, volume_modifier, show_message) +//#define COMSIG_REAGENTS_EXPOSE_OBJ "reagents_expose_obj" +///from base of [/mob/living/proc/expose_reagents]: (/mob/living, /list, methods, volume_modifier, show_message, touch_protection) +//#define COMSIG_REAGENTS_EXPOSE_MOB "reagents_expose_mob" +///from base of [/turf/proc/expose_reagents]: (/turf, /list, methods, volume_modifier, show_message) +//#define COMSIG_REAGENTS_EXPOSE_TURF "reagents_expose_turf" +/// sent when reagents are transfered from a cup, to something refillable (atom/transfer_to) +//#define COMSIG_REAGENTS_CUP_TRANSFER_TO "reagents_cup_transfer_to" +/// sent when reagents are transfered from some reagent container, to a cup (atom/transfer_from) +//#define COMSIG_REAGENTS_CUP_TRANSFER_FROM "reagents_cup_transfer_from" diff --git a/code/datums/components/_component.dm b/code/datums/components/_component.dm index d76504787b04..6c15d00869f2 100644 --- a/code/datums/components/_component.dm +++ b/code/datums/components/_component.dm @@ -204,6 +204,11 @@ else // Many other things have registered here lookup[sig_type][src] = TRUE +/// Registers multiple signals to the same proc. +/datum/proc/RegisterSignals(datum/target, list/signal_types, proctype, override = FALSE) + for (var/signal_type in signal_types) + RegisterSignal(target, signal_type, proctype, override) + /** * Stop listening to a given signal from target * diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 6bb9ca1200c8..e504bfee31d5 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -109,7 +109,7 @@ if("Janitor") heirloom_type = pick(/obj/item/mop, /obj/item/clothing/suit/caution, /obj/item/reagent_containers/glass/bucket, /obj/item/paper/fluff/stations/soap) if("Cook") - heirloom_type = pick(/obj/item/reagent_containers/food/condiment/saltshaker, /obj/item/kitchen/rollingpin, /obj/item/clothing/head/chefhat) + heirloom_type = pick(/obj/item/reagent_containers/condiment/saltshaker, /obj/item/kitchen/rollingpin, /obj/item/clothing/head/chefhat) if("Botanist") heirloom_type = pick(/obj/item/cultivator, /obj/item/reagent_containers/glass/bucket, /obj/item/toy/plush/beeplushie) if("Bartender") diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm index b675a0012152..e8b7e0de487f 100644 --- a/code/game/objects/items/grenades/chem_grenade.dm +++ b/code/game/objects/items/grenades/chem_grenade.dm @@ -207,7 +207,7 @@ desc = "A custom made large grenade. Larger splash range and increased ignition temperature compared to basic grenades. Fits exotic and bluespace based containers." casedesc = "This casing affects a larger area than the basic model and can fit exotic containers, including slime cores and bluespace beakers. Heats contents by 25°K upon ignition." icon_state = "large_grenade" - allowed_containers = list(/obj/item/reagent_containers/glass, /obj/item/reagent_containers/food/condiment, /obj/item/reagent_containers/food/drinks) + allowed_containers = list(/obj/item/reagent_containers/glass, /obj/item/reagent_containers/condiment, /obj/item/reagent_containers/food/drinks) banned_containers = list() affected_area = 5 ignition_temp = 25 // Large grenades are slightly more effective at setting off heat-sensitive mixtures than smaller grenades. diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index 243b84b7e1ec..614b37ec4548 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -886,7 +886,7 @@ desc = "A special apparatus for carrying drinks without spilling the contents. Alt-Z or right-click to drop the beaker." icon_state = "borg_beaker_apparatus" storable = list(/obj/item/reagent_containers/food/drinks/, - /obj/item/reagent_containers/food/condiment) + /obj/item/reagent_containers/condiment) /obj/item/borg/apparatus/beaker/service/Initialize() . = ..() diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 8aa7b1d9c478..57b574e39b7f 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -455,7 +455,7 @@ /obj/item/storage/box/condimentbottles/PopulateContents() for(var/i in 1 to 6) - new /obj/item/reagent_containers/food/condiment(src) + new /obj/item/reagent_containers/condiment(src) /obj/item/storage/box/cups name = "box of paper cups" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm index 0e7ab6e0a526..2bdc4f762dc0 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/freezer.dm @@ -33,9 +33,9 @@ /obj/structure/closet/secure_closet/freezer/kitchen/PopulateContents() ..() for(var/i = 0, i < 3, i++) - new /obj/item/reagent_containers/food/condiment/flour(src) - new /obj/item/reagent_containers/food/condiment/rice(src) - new /obj/item/reagent_containers/food/condiment/sugar(src) + new /obj/item/reagent_containers/condiment/flour(src) + new /obj/item/reagent_containers/condiment/rice(src) + new /obj/item/reagent_containers/condiment/sugar(src) /obj/structure/closet/secure_closet/freezer/kitchen/maintenance name = "maintenance refrigerator" @@ -45,9 +45,9 @@ /obj/structure/closet/secure_closet/freezer/kitchen/maintenance/PopulateContents() ..() for(var/i = 0, i < 5, i++) - new /obj/item/reagent_containers/food/condiment/milk(src) + new /obj/item/reagent_containers/condiment/milk(src) for(var/i = 0, i < 5, i++) - new /obj/item/reagent_containers/food/condiment/soymilk(src) + new /obj/item/reagent_containers/condiment/soymilk(src) for(var/i = 0, i < 2, i++) new /obj/item/storage/fancy/egg_box(src) @@ -82,9 +82,9 @@ /obj/structure/closet/secure_closet/freezer/fridge/PopulateContents() ..() for(var/i = 0, i < 5, i++) - new /obj/item/reagent_containers/food/condiment/milk(src) + new /obj/item/reagent_containers/condiment/milk(src) for(var/i = 0, i < 5, i++) - new /obj/item/reagent_containers/food/condiment/soymilk(src) + new /obj/item/reagent_containers/condiment/soymilk(src) for(var/i = 0, i < 2, i++) new /obj/item/storage/fancy/egg_box(src) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 927120f94a9d..7f546f5a6e7d 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1217,9 +1217,9 @@ //milk to plasmemes and skeletons, meat to lizards, electricity bars to ethereals, cookies to everyone else var/obj/item/reagent_containers/food/cookiealt = /obj/item/reagent_containers/food/snacks/cookie if(isskeleton(H)) - cookiealt = /obj/item/reagent_containers/food/condiment/milk + cookiealt = /obj/item/reagent_containers/condiment/milk else if(isplasmaman(H)) - cookiealt = /obj/item/reagent_containers/food/condiment/milk + cookiealt = /obj/item/reagent_containers/condiment/milk else if(iselzuose(H)) cookiealt = /obj/item/reagent_containers/food/snacks/energybar // WS - More fun with cookies - Start diff --git a/code/modules/cargo/packs/food.dm b/code/modules/cargo/packs/food.dm index f2b9d0ec09a7..3eb7f33cbe4c 100644 --- a/code/modules/cargo/packs/food.dm +++ b/code/modules/cargo/packs/food.dm @@ -64,12 +64,12 @@ name = "Basic Ingredients Crate" desc = "Get things cooking with this crate full of useful ingredients! Contains a dozen eggs, two slabs of meat, some flour, some rice, a bottle of milk, a bottle of soymilk, and a bag of sugar." cost = 300 - contains = list(/obj/item/reagent_containers/food/condiment/flour, - /obj/item/reagent_containers/food/condiment/flour, - /obj/item/reagent_containers/food/condiment/rice, - /obj/item/reagent_containers/food/condiment/milk, - /obj/item/reagent_containers/food/condiment/soymilk, - /obj/item/reagent_containers/food/condiment/sugar, + contains = list(/obj/item/reagent_containers/condiment/flour, + /obj/item/reagent_containers/condiment/flour, + /obj/item/reagent_containers/condiment/rice, + /obj/item/reagent_containers/condiment/milk, + /obj/item/reagent_containers/condiment/soymilk, + /obj/item/reagent_containers/condiment/sugar, /obj/item/storage/fancy/egg_box, /obj/item/reagent_containers/food/snacks/meat/slab, /obj/item/reagent_containers/food/snacks/meat/slab @@ -81,13 +81,13 @@ name = "Condiments Crate" desc = "A variety of garnishes for topping off your dish with a little extra pizzaz. Contains a bottle of enzyme, a salt shaker, a pepper mill, a bottle of ketchup, a bottle of hot sauce, a bottle of BBQ sauce, and a bottle of cream." cost = 250 - contains = list(/obj/item/reagent_containers/food/condiment/enzyme, - /obj/item/reagent_containers/food/condiment/saltshaker, - /obj/item/reagent_containers/food/condiment/peppermill, - /obj/item/reagent_containers/food/condiment/ketchup, - /obj/item/reagent_containers/food/condiment/hotsauce, + contains = list(/obj/item/reagent_containers/condiment/enzyme, + /obj/item/reagent_containers/condiment/saltshaker, + /obj/item/reagent_containers/condiment/peppermill, + /obj/item/reagent_containers/condiment/ketchup, + /obj/item/reagent_containers/condiment/hotsauce, /obj/item/reagent_containers/food/drinks/bottle/cream, - /obj/item/reagent_containers/food/condiment/bbqsauce + /obj/item/reagent_containers/condiment/bbqsauce ) crate_name = "condiments crate" crate_type = /obj/structure/closet/crate/freezer diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm index 0adf98ba5666..bd24a21d1a16 100644 --- a/code/modules/food_and_drinks/food/condiment.dm +++ b/code/modules/food_and_drinks/food/condiment.dm @@ -5,7 +5,7 @@ // to mixed-drinks code. If you want an object that starts pre-loaded, you need to make it in addition to the other code. //Food items that aren't eaten normally and leave an empty container behind. -/obj/item/reagent_containers/food/condiment +/obj/item/reagent_containers/condiment name = "condiment bottle" desc = "Just your average condiment bottle." icon = 'icons/obj/food/containers.dmi' @@ -36,23 +36,25 @@ var/icon_empty = "" fill_icon_thresholds = list(0, 10, 25, 50, 75, 100) -/obj/item/reagent_containers/food/condiment/Initialize() +/obj/item/reagent_containers/condiment/Initialize() . = ..() possible_states = typelist("possible_states", possible_states) update_appearance() -/obj/item/reagent_containers/food/condiment/update_icon() +/obj/item/reagent_containers/condiment/update_icon() cut_overlays() if(reagents.reagent_list.len > 0 && possible_states.len) - var/main_reagent = reagents.get_master_reagent_id() - if(main_reagent in possible_states) - icon_state = possible_states[main_reagent]["icon_state"] - item_state = possible_states[main_reagent]["item_state"] - icon_empty = possible_states[main_reagent]["icon_empty"] - name = possible_states[main_reagent]["name"] - desc = possible_states[main_reagent]["desc"] + + var/datum/reagent/main_reagent_ref = reagents.get_master_reagent() + var/main_reagent_id = main_reagent_ref.type + if(main_reagent_id in possible_states) + icon_state = possible_states[main_reagent_id]["icon_state"] + item_state = possible_states[main_reagent_id]["item_state"] + icon_empty = possible_states[main_reagent_id]["icon_empty"] + name = possible_states[main_reagent_id]["name"] + desc = possible_states[main_reagent_id]["desc"] return ..(TRUE) // Don't fill normally else name = "condiment bottle" @@ -64,7 +66,7 @@ . = ..() -/obj/item/reagent_containers/food/condiment/attack(mob/M, mob/user, def_zone) +/obj/item/reagent_containers/condiment/attack(mob/M, mob/user, def_zone) if(!reagents || !reagents.total_volume) to_chat(user, "None of [src] left, oh no!") @@ -90,7 +92,7 @@ playsound(M.loc,'sound/items/drink.ogg', rand(10,50), TRUE) return 1 -/obj/item/reagent_containers/food/condiment/afterattack(obj/target, mob/user , proximity) +/obj/item/reagent_containers/condiment/afterattack(obj/target, mob/user , proximity) . = ..() if(!proximity) return @@ -119,23 +121,23 @@ to_chat(user, "You transfer [trans] units of the condiment to [target].") playsound(src, 'sound/items/glass_transfer.ogg', 50, 1) -/obj/item/reagent_containers/food/condiment/on_reagent_change(changetype) +/obj/item/reagent_containers/condiment/on_reagent_change(changetype) update_appearance() -/obj/item/reagent_containers/food/condiment/enzyme +/obj/item/reagent_containers/condiment/enzyme name = "universal enzyme" desc = "Used in cooking various dishes." icon_state = "enzyme" list_reagents = list(/datum/reagent/consumable/enzyme = 50) -/obj/item/reagent_containers/food/condiment/sugar +/obj/item/reagent_containers/condiment/sugar name = "sugar sack" desc = "Tasty spacey sugar!" icon_state = "sugar" item_state = "flour" list_reagents = list(/datum/reagent/consumable/sugar = 50) -/obj/item/reagent_containers/food/condiment/saltshaker //Separate from above since it's a small shaker rather then +/obj/item/reagent_containers/condiment/saltshaker //Separate from above since it's a small shaker rather then name = "salt shaker" // a large one. desc = "Salt. From space oceans, presumably." icon_state = "saltshakersmall" @@ -145,7 +147,7 @@ volume = 20 list_reagents = list(/datum/reagent/consumable/sodiumchloride = 20) -/obj/item/reagent_containers/food/condiment/saltshaker/afterattack(obj/target, mob/living/user, proximity) +/obj/item/reagent_containers/condiment/saltshaker/afterattack(obj/target, mob/living/user, proximity) . = ..() if(!proximity) return @@ -158,7 +160,7 @@ new/obj/effect/decal/cleanable/food/salt(target) return -/obj/item/reagent_containers/food/condiment/peppermill +/obj/item/reagent_containers/condiment/peppermill name = "pepper mill" desc = "Often used to flavor food or make people sneeze." icon_state = "peppermillsmall" @@ -168,7 +170,7 @@ volume = 20 list_reagents = list(/datum/reagent/consumable/blackpepper = 20) -/obj/item/reagent_containers/food/condiment/milk +/obj/item/reagent_containers/condiment/milk name = "space milk" desc = "It's milk. White and nutritious goodness!" icon_state = "milk" @@ -177,14 +179,14 @@ righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' list_reagents = list(/datum/reagent/consumable/milk = 50) -/obj/item/reagent_containers/food/condiment/flour +/obj/item/reagent_containers/condiment/flour name = "flour sack" desc = "A big bag of flour. Good for baking!" icon_state = "flour" item_state = "flour" list_reagents = list(/datum/reagent/consumable/flour = 30) -/obj/item/reagent_containers/food/condiment/soymilk +/obj/item/reagent_containers/condiment/soymilk name = "soy milk" desc = "It's soy milk. White and nutritious goodness!" icon_state = "soymilk" @@ -193,20 +195,20 @@ righthand_file = 'icons/mob/inhands/equipment/kitchen_righthand.dmi' list_reagents = list(/datum/reagent/consumable/soymilk = 50) -/obj/item/reagent_containers/food/condiment/rice +/obj/item/reagent_containers/condiment/rice name = "rice sack" desc = "A big bag of rice. Good for cooking!" icon_state = "rice" item_state = "flour" list_reagents = list(/datum/reagent/consumable/rice = 30) -/obj/item/reagent_containers/food/condiment/soysauce +/obj/item/reagent_containers/condiment/soysauce name = "soy sauce" desc = "A salty soy-based flavoring." icon_state = "soysauce" list_reagents = list(/datum/reagent/consumable/soysauce = 50) -/obj/item/reagent_containers/food/condiment/mayonnaise +/obj/item/reagent_containers/condiment/mayonnaise name = "mayonnaise" desc = "An oily condiment made from egg yolks." icon_state = "mayonnaise" @@ -214,7 +216,7 @@ //Food packs. To easily apply deadly toxi... delicious sauces to your food! -/obj/item/reagent_containers/food/condiment/pack +/obj/item/reagent_containers/condiment/pack name = "condiment pack" desc = "A small plastic pack with condiments to put on your food." icon_state = "condi_empty" @@ -234,14 +236,19 @@ /datum/reagent/consumable/bbqsauce = list("condi_bbq", "BBQ sauce", "Hand wipes not included."), ) -/obj/item/reagent_containers/food/condiment/pack/update_icon() +/obj/item/reagent_containers/condiment/pack/create_reagents(max_vol, flags) + . = ..() + RegisterSignals(reagents, list(COMSIG_REAGENTS_NEW_REAGENT, COMSIG_REAGENTS_ADD_REAGENT, COMSIG_REAGENTS_REM_REAGENT), PROC_REF(on_reagent_add), TRUE) + RegisterSignal(reagents, COMSIG_REAGENTS_DEL_REAGENT, PROC_REF(on_reagent_del), TRUE) + +/obj/item/reagent_containers/condiment/pack/update_icon() SHOULD_CALL_PARENT(FALSE) - return ..() + return -/obj/item/reagent_containers/food/condiment/pack/attack(mob/M, mob/user, def_zone) //Can't feed these to people directly. +/obj/item/reagent_containers/condiment/pack/attack(mob/M, mob/user, def_zone) //Can't feed these to people directly. return -/obj/item/reagent_containers/food/condiment/pack/afterattack(obj/target, mob/user , proximity) +/obj/item/reagent_containers/condiment/pack/afterattack(obj/target, mob/user , proximity) . = ..() if(!proximity) return @@ -257,67 +264,74 @@ src.reagents.trans_to(target, amount_per_transfer_from_this, transfered_by = user) qdel(src) -/obj/item/reagent_containers/food/condiment/pack/on_reagent_change(changetype) - if(reagents.reagent_list.len > 0) - var/main_reagent = reagents.get_master_reagent_id() - if(main_reagent in possible_states) - var/list/temp_list = possible_states[main_reagent] - icon_state = temp_list[1] - desc = temp_list[3] - else - icon_state = "condi_mixed" - desc = "A small condiment pack. The label says it contains [originalname]" +/// Handles reagents getting added to the condiment pack. +/obj/item/reagent_containers/condiment/pack/proc/on_reagent_add(datum/reagents/reagents) + SIGNAL_HANDLER + + var/datum/reagent/main_reagent = reagents.get_master_reagent() + + var/main_reagent_type = main_reagent?.type + if(main_reagent_type in possible_states) + var/list/temp_list = possible_states[main_reagent_type] + icon_state = temp_list[1] + desc = temp_list[3] else - icon_state = "condi_empty" - desc = "A small condiment pack. It is empty." + icon_state = "condi_mixed" + desc = "A small condiment pack. The label says it contains [originalname]" + +/// Handles reagents getting removed from the condiment pack. +/obj/item/reagent_containers/condiment/pack/proc/on_reagent_del(datum/reagents/reagents) + SIGNAL_HANDLER + icon_state = "condi_empty" + desc = "A small condiment pack. It is empty." //Ketchup -/obj/item/reagent_containers/food/condiment/pack/ketchup +/obj/item/reagent_containers/condiment/pack/ketchup name = "ketchup pack" originalname = "ketchup" list_reagents = list(/datum/reagent/consumable/ketchup = 10) //Hot sauce -/obj/item/reagent_containers/food/condiment/pack/hotsauce +/obj/item/reagent_containers/condiment/pack/hotsauce name = "hotsauce pack" originalname = "hotsauce" list_reagents = list(/datum/reagent/consumable/capsaicin = 10) -/obj/item/reagent_containers/food/condiment/pack/astrotame +/obj/item/reagent_containers/condiment/pack/astrotame name = "astrotame pack" originalname = "astrotame" list_reagents = list(/datum/reagent/consumable/astrotame = 5) -/obj/item/reagent_containers/food/condiment/pack/bbqsauce +/obj/item/reagent_containers/condiment/pack/bbqsauce name = "bbq sauce pack" originalname = "bbq sauce" list_reagents = list(/datum/reagent/consumable/bbqsauce = 10) -/obj/item/reagent_containers/food/condiment/ketchup +/obj/item/reagent_containers/condiment/ketchup name = "ketchup bottle" desc = "You feel more american already" icon_state = "ketchup" list_reagents = list(/datum/reagent/consumable/ketchup = 50) -/obj/item/reagent_containers/food/condiment/bbqsauce +/obj/item/reagent_containers/condiment/bbqsauce name = "bbq sauce bottle" desc = "Hand wipes not included" icon_state = "bbqsauce" list_reagents = list(/datum/reagent/consumable/bbqsauce = 50) -/obj/item/reagent_containers/food/condiment/hotsauce +/obj/item/reagent_containers/condiment/hotsauce name = "hot sauce bottle" desc = "You can almost TASTE the stomach ulcers now!" icon_state = "hotsauce" list_reagents = list(/datum/reagent/consumable/capsaicin = 50) -/obj/item/reagent_containers/food/condiment/coldsauce +/obj/item/reagent_containers/condiment/coldsauce name = "cold sauce bottle" desc = "Leaves the tounge numb in it's passage" icon_state = "coldsauce" list_reagents = list(/datum/reagent/consumable/frostoil = 50) -/obj/item/reagent_containers/food/condiment/oliveoil +/obj/item/reagent_containers/condiment/oliveoil name = "olive oil bottle" desc = "A delicious oil used in cooking" icon_state = "oliveoil" diff --git a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm index 62e6a4075a93..bcee075e0dcd 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm @@ -44,7 +44,7 @@ /obj/item/weldingtool, /obj/item/reagent_containers/glass, /obj/item/reagent_containers/syringe, - /obj/item/reagent_containers/food/condiment, + /obj/item/reagent_containers/condiment, /obj/item/storage, /obj/item/smallDelivery, ) diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index 5852ea34742b..9a6b10e0444b 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -366,7 +366,7 @@ /obj/machinery/smartfridge/drinks/accept_check(obj/item/O) if(!istype(O, /obj/item/reagent_containers) || (O.item_flags & ABSTRACT) || !O.reagents || !O.reagents.reagent_list.len) return FALSE - if(istype(O, /obj/item/reagent_containers/glass) || istype(O, /obj/item/reagent_containers/food/drinks) || istype(O, /obj/item/reagent_containers/food/condiment)) + if(istype(O, /obj/item/reagent_containers/glass) || istype(O, /obj/item/reagent_containers/food/drinks) || istype(O, /obj/item/reagent_containers/condiment)) return TRUE // ---------------------------- diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 27819d97cf15..f9bb15bb5941 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -782,7 +782,7 @@ basic_modules = list( /obj/item/assembly/flash/cyborg, /obj/item/reagent_containers/glass/beaker/large, //I know a shaker is more appropiate but this is for ease of identification - /obj/item/reagent_containers/food/condiment/enzyme, + /obj/item/reagent_containers/condiment/enzyme, /obj/item/pen, /obj/item/toy/crayon/spraycan/borg, /obj/item/extinguisher/mini, @@ -806,7 +806,7 @@ /obj/item/robot_module/butler/respawn_consumable(mob/living/silicon/robot/R, coeff = 1) ..() - var/obj/item/reagent_containers/O = locate(/obj/item/reagent_containers/food/condiment/enzyme) in basic_modules + var/obj/item/reagent_containers/O = locate(/obj/item/reagent_containers/condiment/enzyme) in basic_modules if(O) O.reagents.add_reagent(/datum/reagent/consumable/enzyme, 2 * coeff) diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 9eb48f11cf4d..49765fd6747b 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -162,7 +162,7 @@ handle_reactions() return amount -/// Get the name of the reagent there is the most of in this holder +/// DEPRICATED use get_master_regent. Get the name of the reagent there is the most of in this holder /datum/reagents/proc/get_master_reagent_name() var/list/cached_reagents = reagent_list var/name @@ -175,7 +175,7 @@ return name -/// Get the id of the reagent there is the most of in this holder +/// DEPRICATED use get_master_regent. Get the id of the reagent there is the most of in this holder /datum/reagents/proc/get_master_reagent_id() var/list/cached_reagents = reagent_list var/max_type @@ -611,6 +611,7 @@ //Clear from relevant lists addiction_list -= R reagent_list -= R + SEND_SIGNAL(src, COMSIG_REAGENTS_DEL_REAGENT, R) qdel(R) update_total() if(my_atom) @@ -638,6 +639,8 @@ del_reagent(R.type) if(my_atom) my_atom.on_reagent_change(CLEAR_REAGENTS) + + SEND_SIGNAL(src, COMSIG_REAGENTS_CLEAR_REAGENTS) return 0 /** @@ -747,6 +750,8 @@ if(my_atom) my_atom.on_reagent_change(ADD_REAGENT) R.on_merge(data, amount) + + SEND_SIGNAL(src, COMSIG_REAGENTS_ADD_REAGENT, cached_reagents, amount, reagtemp, data, no_react) if(!no_react) handle_reactions() return TRUE @@ -765,6 +770,8 @@ update_total() if(my_atom) my_atom.on_reagent_change(ADD_REAGENT) + + SEND_SIGNAL(src, COMSIG_REAGENTS_NEW_REAGENT, reagent, amount, reagtemp, data, no_react) if(!no_react) handle_reactions() return TRUE @@ -797,6 +804,7 @@ //and zero, to prevent removing more than the holder has stored amount = clamp(amount, 0, R.volume) R.volume -= amount + SEND_SIGNAL(src, COMSIG_REAGENTS_REM_REAGENT, A, amount) update_total() if(!safety)//So it does not handle reactions when it need not to handle_reactions() diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm index ac1cd94b092e..8e6935766346 100644 --- a/code/modules/reagents/chemistry/machinery/chem_master.dm +++ b/code/modules/reagents/chemistry/machinery/chem_master.dm @@ -337,18 +337,18 @@ reagents.trans_to(P, vol_each, transfered_by = usr) return TRUE if(item_type == "condimentPack") - var/obj/item/reagent_containers/food/condiment/pack/P + var/obj/item/reagent_containers/condiment/pack/P for(var/i = 0; i < amount; i++) - P = new/obj/item/reagent_containers/food/condiment/pack(drop_location()) + P = new/obj/item/reagent_containers/condiment/pack(drop_location()) P.originalname = name P.name = trim("[name] pack") P.desc = "A small condiment pack. The label says it contains [name]." reagents.trans_to(P, vol_each, transfered_by = usr) return TRUE if(item_type == "condimentBottle") - var/obj/item/reagent_containers/food/condiment/P + var/obj/item/reagent_containers/condiment/P for(var/i = 0; i < amount; i++) - P = new/obj/item/reagent_containers/food/condiment(drop_location()) + P = new/obj/item/reagent_containers/condiment(drop_location()) P.originalname = name P.name = trim("[name] bottle") reagents.trans_to(P, vol_each, transfered_by = usr) diff --git a/code/modules/vending/drinnerware.dm b/code/modules/vending/drinnerware.dm index 18b8fd522aab..0dc0102c91ef 100644 --- a/code/modules/vending/drinnerware.dm +++ b/code/modules/vending/drinnerware.dm @@ -8,11 +8,11 @@ /obj/item/reagent_containers/glass/bowl = 20, /obj/item/kitchen/fork = 6, /obj/item/reagent_containers/food/drinks/drinkingglass = 8, - /obj/item/reagent_containers/food/condiment/pack/ketchup = 5, - /obj/item/reagent_containers/food/condiment/pack/hotsauce = 5, - /obj/item/reagent_containers/food/condiment/pack/astrotame = 5, - /obj/item/reagent_containers/food/condiment/saltshaker = 5, - /obj/item/reagent_containers/food/condiment/peppermill = 5, + /obj/item/reagent_containers/condiment/pack/ketchup = 5, + /obj/item/reagent_containers/condiment/pack/hotsauce = 5, + /obj/item/reagent_containers/condiment/pack/astrotame = 5, + /obj/item/reagent_containers/condiment/saltshaker = 5, + /obj/item/reagent_containers/condiment/peppermill = 5, /obj/item/clothing/suit/apron/chef = 2, /obj/item/kitchen/rollingpin = 2, /obj/item/melee/knife/kitchen = 2, diff --git a/shiptest.dme b/shiptest.dme index e460d129f655..c4bbd664ee8c 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -163,6 +163,7 @@ #include "code\__DEFINES\dcs\helpers.dm" #include "code\__DEFINES\dcs\signals\signals.dm" #include "code\__DEFINES\dcs\signals\signals_mod.dm" +#include "code\__DEFINES\dcs\signals\signals_reagent.dm" #include "code\__DEFINES\dcs\signals\signals_ship.dm" #include "code\__DEFINES\dcs\signals\signals_storage.dm" #include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_carbon.dm" From f88a2ca5bed69f033a4edb2189a57154572433ab Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 29 Sep 2024 07:44:51 -0500 Subject: [PATCH 044/167] Automatic changelog generation for PR #3350 [ci skip] --- html/changelogs/AutoChangeLog-pr-3350.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3350.yml diff --git a/html/changelogs/AutoChangeLog-pr-3350.yml b/html/changelogs/AutoChangeLog-pr-3350.yml new file mode 100644 index 000000000000..8869478b429b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3350.yml @@ -0,0 +1,4 @@ +author: FalloutFalcon +changes: + - {bugfix: condiment packs are no longer invisible and missing names} +delete-after: true From 1930994317e4a6bbba913a7c53606a56291f3cbd Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Sun, 29 Sep 2024 08:50:31 -0400 Subject: [PATCH 045/167] Fixes m90 poster icon state (#3454) ## About The Pull Request poster had wrong icon state ## Changelog :cl: fix: m90 posters are real again /:cl: --- code/game/objects/effects/contraband.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/effects/contraband.dm b/code/game/objects/effects/contraband.dm index 267e6bb24f4e..1227ff3847b3 100644 --- a/code/game/objects/effects/contraband.dm +++ b/code/game/objects/effects/contraband.dm @@ -519,7 +519,7 @@ /obj/structure/sign/poster/contraband/m90 name = "M90 SMG" desc = "A poster advertising the Scarborough M90. Burst action with a grenade launcher, for some reason." - icon_state = "poster-bulldog" + icon_state = "poster-m90" /obj/structure/sign/poster/contraband/inteq_nt name = "Inteq Recruitment" From 9d9a3f5650b7b44762fc6f4671c5bd8931a974c9 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 29 Sep 2024 08:01:40 -0500 Subject: [PATCH 046/167] Automatic changelog generation for PR #3454 [ci skip] --- html/changelogs/AutoChangeLog-pr-3454.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3454.yml diff --git a/html/changelogs/AutoChangeLog-pr-3454.yml b/html/changelogs/AutoChangeLog-pr-3454.yml new file mode 100644 index 000000000000..9e1b731951c9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3454.yml @@ -0,0 +1,4 @@ +author: Bjarl +changes: + - {bugfix: m90 posters are real again} +delete-after: true From 315239cf5bf5d5f0960d7e1de2e0ee947bde7af6 Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Sun, 29 Sep 2024 09:01:02 -0400 Subject: [PATCH 047/167] Removes Elephant Graveyard. (#3422) ## About The Pull Request Removes Elephant Graveyard and fluff papers. ## Why It's Good For The Game Quality control ## Changelog :cl: del: The Elephant Graveyard ruin has been taken out back /:cl: --- .../lavaland_surface_elephant_graveyard.dmm | 1788 ----------------- code/datums/ruins/lavaland.dm | 9 - code/game/area/areas/ruins/lavaland.dm | 11 - .../crates_lockers/crates/graves.dm | 112 ++ code/game/objects/structures/statues.dm | 28 + code/game/objects/structures/watercloset.dm | 43 + .../lavalandruin_code/elephantgraveyard.dm | 258 --- shiptest.dme | 2 +- 8 files changed, 184 insertions(+), 2067 deletions(-) delete mode 100644 _maps/RandomRuins/LavaRuins/lavaland_surface_elephant_graveyard.dmm create mode 100644 code/game/objects/structures/crates_lockers/crates/graves.dm delete mode 100644 code/modules/ruins/lavalandruin_code/elephantgraveyard.dm diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_elephant_graveyard.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_elephant_graveyard.dmm deleted file mode 100644 index 911b6cf6f4e5..000000000000 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_elephant_graveyard.dmm +++ /dev/null @@ -1,1788 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/template_noop, -/area/template_noop) -"ab" = ( -/turf/closed/mineral/volcanic/lava_land_surface, -/area/overmap_encounter/planetoid/cave/explored) -"ac" = ( -/turf/closed/mineral/volcanic/lava_land_surface, -/area/ruin/unpowered/elephant_graveyard) -"ad" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/structure/closet/crate/grave/loot/lead_researcher, -/obj/effect/decal/cleanable/blood/gibs/old, -/obj/effect/mob_spawn/human/skeleton, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ae" = ( -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"af" = ( -/obj/effect/decal/cleanable/blood/drip, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ag" = ( -/obj/effect/decal/cleanable/vomit, -/obj/item/shovel, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ah" = ( -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ai" = ( -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aj" = ( -/obj/effect/decal/cleanable/blood/tracks{ - dir = 4 - }, -/obj/item/paper/fluff/ruins/elephant_graveyard/final_message, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ak" = ( -/turf/open/floor/plating/asteroid/basalt/wasteland{ - icon_state = "wasteland_dug" - }, -/area/ruin/unpowered/elephant_graveyard) -"al" = ( -/obj/structure/table, -/obj/item/clipboard, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"an" = ( -/obj/item/reagent_containers/food/snacks/deadmouse, -/obj/item/assembly/mousetrap, -/turf/open/floor/plating/asteroid/basalt/wasteland{ - icon_state = "wasteland_dug" - }, -/area/ruin/unpowered/elephant_graveyard) -"ao" = ( -/obj/structure/statue/bone/skull/half, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ap" = ( -/obj/structure/statue/bone/skull/half{ - dir = 1 - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ar" = ( -/obj/structure/flora/rock, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"at" = ( -/turf/closed/mineral/strong/wasteland, -/area/overmap_encounter/planetoid/cave/explored) -"av" = ( -/obj/structure/barricade/wooden/crude, -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ax" = ( -/obj/structure/statue/bone/rib{ - dir = 1 - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ay" = ( -/obj/structure/statue/bone/rib, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"az" = ( -/obj/structure/table, -/obj/item/pen, -/obj/item/pen, -/obj/item/pen, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aA" = ( -/turf/closed/wall, -/area/ruin/unpowered/elephant_graveyard) -"aB" = ( -/obj/item/chair, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aC" = ( -/obj/effect/decal/remains/human, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aE" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aG" = ( -/obj/structure/table, -/obj/effect/spawner/lootdrop/glowstick, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aH" = ( -/turf/closed/wall/mineral/titanium, -/area/ruin/powered/graveyard_shuttle) -"aI" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/structure/grille, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/powered/graveyard_shuttle) -"aK" = ( -/obj/item/cigbutt, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aL" = ( -/obj/machinery/power/floodlight, -/obj/structure/cable, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aM" = ( -/obj/structure/table, -/obj/item/clothing/gloves/color/black, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aN" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ruin/powered/graveyard_shuttle) -"aO" = ( -/obj/effect/decal/cleanable/glass, -/obj/machinery/computer, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"aP" = ( -/obj/structure/bed, -/obj/item/flashlight/lantern, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aR" = ( -/obj/structure/table, -/obj/item/taperecorder, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aS" = ( -/obj/structure/table, -/obj/item/tape/random, -/obj/item/tape/random, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aT" = ( -/obj/structure/closet/crate/bin, -/obj/item/trash/candle, -/obj/item/trash/can/food/beans, -/obj/item/trash/can, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/cigbutt, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aU" = ( -/obj/structure/bed, -/obj/item/bedsheet/brown, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aV" = ( -/obj/structure/bed, -/obj/item/bedsheet/brown, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aW" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/item/clothing/mask/gas/explorer/folded, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"aX" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"aY" = ( -/obj/structure/sign/warning/nosmoking/circle, -/turf/closed/wall, -/area/ruin/unpowered/elephant_graveyard) -"aZ" = ( -/obj/item/organ/brain, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ba" = ( -/obj/structure/headpike/bone, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bb" = ( -/obj/effect/decal/cleanable/oil/streak, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bc" = ( -/obj/structure/sign/poster/ripped, -/turf/closed/wall, -/area/ruin/unpowered/elephant_graveyard) -"bd" = ( -/obj/item/organ/heart, -/obj/item/organ/eyes, -/obj/item/organ/ears, -/obj/effect/decal/cleanable/blood/gibs/old, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"be" = ( -/obj/item/organ/lungs, -/obj/item/organ/liver, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bf" = ( -/turf/closed/mineral/strong/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bg" = ( -/obj/structure/sign/warning/securearea, -/turf/closed/wall/mineral/titanium, -/area/ruin/powered/graveyard_shuttle) -"bh" = ( -/obj/effect/decal/cleanable/oil, -/obj/structure/chair/office/light, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"bi" = ( -/obj/effect/turf_decal/industrial/hatch, -/turf/open/floor/circuit/off, -/area/ruin/powered/graveyard_shuttle) -"bj" = ( -/obj/structure/barricade/wooden, -/obj/structure/mineral_door/wood, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bk" = ( -/obj/item/melee/knife/bone, -/obj/item/organ/tongue, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bl" = ( -/obj/effect/decal/cleanable/shreds, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bm" = ( -/obj/structure/closet/wardrobe/curator, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bn" = ( -/obj/structure/sink/oil_well, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bo" = ( -/obj/item/stack/medical/gauze/improvised, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bp" = ( -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"bq" = ( -/obj/machinery/iv_drip, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"br" = ( -/obj/structure/sign/warning/nosmoking/circle, -/turf/closed/wall/mineral/titanium, -/area/ruin/powered/graveyard_shuttle) -"bs" = ( -/obj/structure/fence/door, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bt" = ( -/obj/structure/table, -/turf/closed/mineral/strong/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bu" = ( -/obj/structure/bed, -/obj/item/trash/pistachios, -/obj/item/trash/chips, -/obj/item/bedsheet/brown, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bv" = ( -/obj/effect/decal/remains/human, -/obj/item/clothing/mask/bandana/green, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bx" = ( -/obj/machinery/power/port_gen/pacman, -/obj/structure/cable, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"by" = ( -/obj/structure/closet/emcloset, -/obj/item/light/bulb, -/obj/effect/turf_decal/box/white, -/turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/graveyard_shuttle) -"bz" = ( -/obj/item/paper/crumpled/muddy/fluff/elephant_graveyard/mutiny, -/obj/item/cigbutt, -/obj/item/cigbutt, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bA" = ( -/obj/machinery/suit_storage_unit/mining/eva, -/obj/effect/turf_decal/box/white, -/turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/graveyard_shuttle) -"bB" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bC" = ( -/obj/structure/barricade/sandbags, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bD" = ( -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/elephant_graveyard) -"bE" = ( -/obj/structure/shuttle/engine/heater, -/obj/structure/window{ - dir = 1 - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/graveyard_shuttle) -"bF" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/elephant_graveyard) -"bG" = ( -/obj/effect/decal/remains/human, -/obj/item/tank/internals/emergency_oxygen/empty, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bH" = ( -/obj/item/paper/fluff/ruins/elephant_graveyard, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/overmap_encounter/planetoid/cave/explored) -"bI" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/powered/graveyard_shuttle) -"bJ" = ( -/obj/structure/sign/warning/xeno_mining, -/turf/closed/wall, -/area/ruin/unpowered/elephant_graveyard) -"bK" = ( -/obj/structure/sign/warning/explosives, -/turf/closed/wall, -/area/ruin/unpowered/elephant_graveyard) -"bL" = ( -/obj/effect/decal/cleanable/blood/gibs/old, -/obj/effect/decal/cleanable/blood/splatter, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bM" = ( -/obj/item/storage/fancy/cigarettes/cigpack_mindbreaker, -/obj/structure/closet/crate/grave/loot, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bN" = ( -/obj/structure/sign/warning/securearea, -/turf/closed/mineral/strong/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bO" = ( -/obj/item/paper/fluff/ruins/elephant_graveyard, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bP" = ( -/obj/structure/barricade/wooden/crude, -/obj/item/paper/fluff/ruins/elephant_graveyard, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/elephant_graveyard) -"bQ" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/effect/decal/cleanable/cobweb, -/obj/item/paper/fluff/ruins/elephant_graveyard/hypothesis, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"bR" = ( -/obj/effect/decal/cleanable/generic, -/obj/item/cigbutt, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bS" = ( -/obj/effect/decal/cleanable/oil/slippery, -/obj/machinery/rnd/destructive_analyzer, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"bT" = ( -/obj/structure/barricade/wooden, -/obj/item/paper/fluff/ruins/elephant_graveyard, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bU" = ( -/obj/item/light/bulb/broken, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"bV" = ( -/obj/effect/decal/cleanable/dirt, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/ruin/unpowered/elephant_graveyard) -"bW" = ( -/obj/effect/decal/cleanable/glass, -/obj/effect/decal/cleanable/dirt/dust, -/obj/machinery/door/airlock/shuttle{ - name = "Archaeology Shuttle Airlock" - }, -/turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/graveyard_shuttle) -"bX" = ( -/obj/effect/decal/remains/human, -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/clothing/head/fedora/curator, -/obj/item/clothing/suit/armor/curator, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"bY" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/item/cigbutt, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"bZ" = ( -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/overmap_encounter/planetoid/cave/explored) -"ca" = ( -/obj/structure/table, -/obj/item/storage/firstaid/o2, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cc" = ( -/obj/effect/decal/remains/human, -/obj/effect/decal/cleanable/blood/old, -/obj/effect/decal/cleanable/shreds, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cd" = ( -/obj/item/trash/can, -/obj/structure/bedsheetbin/empty, -/obj/structure/table, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ce" = ( -/obj/structure/stone_tile/slab/cracked, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cf" = ( -/obj/structure/bed, -/obj/item/wirecutters, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cg" = ( -/obj/structure/stone_tile/center/cracked, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ch" = ( -/obj/effect/decal/remains/human, -/obj/item/restraints/handcuffs/cable/zipties/used, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ci" = ( -/obj/structure/stone_tile/surrounding_tile, -/turf/open/floor/plating/asteroid/basalt/wasteland{ - icon_state = "wasteland_dug" - }, -/area/ruin/unpowered/elephant_graveyard) -"cj" = ( -/obj/structure/stone_tile/block/cracked, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ck" = ( -/obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cl" = ( -/obj/structure/closet/crate/grave/loot, -/obj/effect/mob_spawn/human/skeleton, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cm" = ( -/obj/structure/table/optable, -/obj/item/storage/backpack/explorer, -/obj/item/reagent_containers/food/drinks/soda_cans/cola, -/obj/item/restraints/handcuffs/cable/zipties/used, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"cn" = ( -/obj/structure/stone_tile/cracked, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"co" = ( -/obj/effect/decal/cleanable/blood/drip, -/obj/structure/stone_tile/cracked, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cq" = ( -/obj/structure/stone_tile/block/cracked{ - dir = 4 - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cr" = ( -/obj/structure/bonfire/prelit, -/obj/effect/decal/cleanable/ash, -/obj/item/organ/tail/lizard, -/obj/effect/decal/cleanable/blood/old, -/obj/structure/stone_tile/slab/cracked, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cs" = ( -/obj/structure/ore_box, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"ct" = ( -/obj/structure/stone_tile, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cu" = ( -/obj/structure/stone_tile{ - dir = 8 - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cv" = ( -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) -"cw" = ( -/obj/structure/closet/crate/grave/loot, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/mob_spawn/human/skeleton, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"cx" = ( -/obj/item/light/bulb/broken, -/obj/effect/turf_decal/industrial/stand_clear/white, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/graveyard_shuttle) -"cz" = ( -/obj/structure/stone_tile, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"fy" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"lO" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"oR" = ( -/obj/item/reagent_containers/glass/bottle/frostoil{ - desc = "A small bottle. Contains cold sauce. There's a label on here: APPLY ON SEVERE BURNS."; - volume = 10 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"rb" = ( -/obj/structure/rack, -/obj/item/shovel, -/obj/item/wrench, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"vS" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"Bi" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"BF" = ( -/obj/structure/flora/rock, -/obj/item/pickaxe{ - layer = 2.5; - pixel_x = -8; - pixel_y = 5 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"Gb" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"GT" = ( -/obj/item/reagent_containers/food/snacks/deadmouse, -/obj/item/assembly/mousetrap, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"GY" = ( -/obj/machinery/power/floodlight, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"Hq" = ( -/obj/structure/table, -/obj/item/reagent_containers/glass/bottle/plasma{ - volume = 25 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"MV" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"NJ" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"Qk" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"QG" = ( -/obj/structure/table, -/obj/item/paper/crumpled/muddy/fluff/elephant_graveyard/rnd_notes, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"QZ" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"WG" = ( -/obj/structure/table, -/obj/machinery/power/floodlight, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) -"XX" = ( -/obj/structure/table, -/obj/item/t_scanner/adv_mining_scanner/lesser, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) - -(1,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(2,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -at -ab -ab -ab -ac -ac -ac -ac -bf -ac -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(3,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -bf -bf -bf -bf -bf -ac -ac -ac -ac -bf -bf -bf -ac -ac -ab -ab -ab -aa -aa -aa -aa -aa -aa -aa -aa -"} -(4,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -ab -ab -bf -bf -aT -bR -bf -bf -bf -ac -bf -bf -bf -bf -bf -bf -bf -ac -ac -ab -ab -aa -aa -aa -aa -aa -aa -aa -"} -(5,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -bf -bf -bf -bz -aK -bY -ae -bf -bf -bf -cs -aE -bJ -bf -bf -bf -ac -ac -ac -ab -ab -ab -aa -aa -aa -aa -aa -"} -(6,1,1) = {" -aa -aa -aa -aa -ab -ab -bf -bf -bf -bf -aA -bc -aA -aY -ae -bv -ae -cl -ae -ae -aC -bs -bO -ae -ae -ac -ac -ac -ac -ab -ab -ab -aa -aa -aa -"} -(7,1,1) = {" -aa -aa -aa -aa -ab -bf -bf -bf -oR -vS -vS -vS -aL -ae -ae -ak -ae -ae -ae -ae -bK -bf -bf -bf -ae -ac -ac -ac -ac -ac -ac -ab -ab -aa -aa -"} -(8,1,1) = {" -aa -aa -ab -ab -ab -bf -bf -Gb -Bi -ar -ae -ae -ae -ar -aZ -ae -ba -ae -ba -ae -ae -ae -ae -bf -ae -ac -ac -ac -ac -ac -ac -ac -ab -ab -aa -"} -(9,1,1) = {" -aa -ab -ab -bf -bf -bf -Gb -Bi -ak -ae -aE -ae -ae -ae -ba -ae -af -ae -ae -ae -ba -ae -ak -bf -ae -ae -ac -ac -ac -ac -ac -ac -ac -ac -aa -"} -(10,1,1) = {" -ab -ab -bf -bf -bf -Gb -MV -ae -ae -ae -ae -cl -ae -ae -ae -co -bd -bk -ae -ae -ae -ae -aE -bf -bf -ae -ae -ac -ac -ac -ac -bG -bM -ac -ac -"} -(11,1,1) = {" -at -bf -bf -bf -bf -lO -ae -ae -ao -ae -ax -ax -ax -ax -ae -ae -be -cr -ae -cz -ae -ae -bn -cw -bf -bf -bB -ac -ac -ac -ac -bL -ae -ae -ac -"} -(12,1,1) = {" -at -bf -bf -bf -bf -lO -cl -ae -ae -ae -ae -ci -cj -ce -ae -cj -ae -cq -ae -ae -cu -ae -ae -ae -bf -bf -bC -ac -ac -ac -ac -ac -ac -bD -ac -"} -(13,1,1) = {" -bf -ad -ae -bf -cl -lO -ae -ae -ae -ae -cg -ae -ak -ak -cn -ae -cq -ae -ct -ar -ae -cl -ae -ae -bf -bf -ae -ac -ac -ac -ac -ac -ac -ae -ac -"} -(14,1,1) = {" -bf -aj -ae -bf -ae -lO -aE -ae -ap -ae -ay -ay -ay -ay -ae -ae -ak -ae -ae -bn -ae -ae -aE -GY -bf -cl -bB -ae -ac -ac -ac -ac -ac -ae -ac -"} -(15,1,1) = {" -bf -ai -ag -bf -an -lO -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -cw -ae -ae -ae -ae -ae -lO -bf -ac -ae -ae -bB -ac -ac -ac -ac -bD -ac -"} -(16,1,1) = {" -bf -ai -bf -bf -bf -Qk -vS -QZ -ae -ae -aE -ae -ar -ae -ba -ae -ae -ae -ae -ae -ba -ae -ae -lO -bf -ac -ac -ae -ae -bB -ac -ac -ac -bB -bP -"} -(17,1,1) = {" -bf -ae -af -bf -bf -aE -bf -Qk -BF -XX -az -aG -aM -aR -ae -ae -ba -ae -ba -ae -ae -aE -cl -lO -bf -bf -ac -ac -ae -bD -ac -ac -ac -bF -bT -"} -(18,1,1) = {" -at -bf -ah -bf -bf -af -bf -ae -ae -QG -aB -ae -ae -aS -ae -ae -aE -ae -ae -ae -ae -ae -ae -NJ -bx -bf -ac -ac -ac -ae -bB -bB -bF -bB -bP -"} -(19,1,1) = {" -ab -bf -af -av -af -ae -bf -ae -bt -Hq -ch -ae -ae -ca -ae -Gb -vS -vS -vS -vS -vS -vS -vS -GT -bf -bf -ac -ac -ac -ac -bF -bB -bV -ac -ac -"} -(20,1,1) = {" -aa -at -bf -bf -bf -bf -bf -bj -bf -WG -al -fy -vS -vS -vS -rb -bf -ac -bm -ae -bn -bf -bf -bf -bf -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -"} -(21,1,1) = {" -aa -aa -ab -ac -ac -bf -aU -aE -bf -bf -bf -bf -ck -aX -ae -bf -bf -bf -bf -bf -bf -bf -bf -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ab -ab -"} -(22,1,1) = {" -aa -aa -ab -ab -ac -bf -aU -ae -bl -cd -bf -bf -bf -bN -ae -bf -bf -bf -bf -ac -ac -ac -ac -ac -ac -ac -ac -ab -ab -ab -ab -ab -ab -bZ -bZ -"} -(23,1,1) = {" -aa -aa -aa -ab -ab -bf -aV -bl -aE -bu -bf -bf -bf -bf -bb -bf -bf -bf -bf -ab -ab -ab -ab -ab -ab -ab -ab -bZ -bZ -bZ -bH -bZ -bZ -bZ -ab -"} -(24,1,1) = {" -aa -aa -aa -aa -ab -at -aP -bo -cc -cf -bf -aH -aH -bg -bW -bg -aH -aH -aH -bH -bZ -bZ -bZ -bZ -bZ -bZ -bZ -bZ -bZ -bZ -bZ -bZ -ab -ab -ab -"} -(25,1,1) = {" -aa -aa -aa -aa -aa -at -bf -bf -bf -bf -aH -aN -bQ -bh -cv -bU -by -aH -aH -bI -bZ -bZ -bZ -bZ -bZ -bZ -bZ -bZ -bZ -ab -ab -ab -ab -ab -ab -"} -(26,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -aI -aO -bX -bi -bp -bi -cx -bE -aH -bI -bZ -bZ -bZ -bZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -"} -(27,1,1) = {" -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aH -aN -aW -cm -bq -bS -bA -aH -aH -bI -bZ -bZ -bZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -"} -(28,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -aH -aH -aH -br -aH -aH -aH -aH -bZ -bZ -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -"} -(29,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -"} diff --git a/code/datums/ruins/lavaland.dm b/code/datums/ruins/lavaland.dm index 4afa13dee07c..f94d75bd71f9 100644 --- a/code/datums/ruins/lavaland.dm +++ b/code/datums/ruins/lavaland.dm @@ -12,15 +12,6 @@ suffix = "lavaland_surface_biodome_winter.dmm" ruin_tags = list(RUIN_TAG_MINOR_COMBAT, RUIN_TAG_MINOR_LOOT, RUIN_TAG_SHELTER) -/datum/map_template/ruin/lavaland/elephant_graveyard - name = "Elephant Graveyard" - id = "Graveyard" - description = "An abandoned graveyard, calling to those unable to continue." - suffix = "lavaland_surface_elephant_graveyard.dmm" - allow_duplicates = FALSE - cost = 10 - ruin_tags = list(RUIN_TAG_NO_COMBAT, RUIN_TAG_MINOR_LOOT, RUIN_TAG_HAZARDOUS, RUIN_TAG_INHOSPITABLE) - /datum/map_template/ruin/lavaland/buried_shrine name = "Buried Shrine" id = "buried_shrine" diff --git a/code/game/area/areas/ruins/lavaland.dm b/code/game/area/areas/ruins/lavaland.dm index 317fd67a67b8..298f996ea43d 100644 --- a/code/game/area/areas/ruins/lavaland.dm +++ b/code/game/area/areas/ruins/lavaland.dm @@ -27,17 +27,6 @@ name = "Hierophant's Arena" icon_state = "dk_yellow" - -//Elephant Graveyard - -/area/ruin/unpowered/elephant_graveyard - name = "Elephant Graveyard" - icon_state = "dk_yellow" - -/area/ruin/powered/graveyard_shuttle - name = "Elephant Graveyard" - icon_state = "green" - //Lava Canyon /area/ruin/unpowered/scorched_hut diff --git a/code/game/objects/structures/crates_lockers/crates/graves.dm b/code/game/objects/structures/crates_lockers/crates/graves.dm new file mode 100644 index 000000000000..dc7eee343d01 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/crates/graves.dm @@ -0,0 +1,112 @@ +/obj/structure/closet/crate/grave + name = "burial mound" + desc = "A marked patch of soil, adorned with a wooden cross" + icon_state = "grave" + dense_when_open = TRUE + material_drop = /obj/item/stack/ore/glass/basalt + material_drop_amount = 5 + opened = TRUE + anchorable = FALSE + anchored = TRUE + locked = TRUE + breakout_time = 900 + cutting_tool = TOOL_SHOVEL + +/obj/structure/closet/crate/grave/attackby(obj/item/W, mob/user, params) + .=..() + if(istype(W, /obj/item/screwdriver)) + if(!user.is_literate()) + to_chat(user, "You scratch illegibly on [src]!") + return + var/t = stripped_input(user, "What would you like the inscription to be?", name, null, 53) + if(user.get_active_held_item() != W) + return + if(!user.canUseTopic(src, BE_CLOSE)) + return + if(t) + desc = "[t]" + return + +/obj/structure/closet/crate/grave/open(mob/living/user, obj/item/S, force = FALSE) + if(!opened) + to_chat(user, "The ground here is too hard to dig up with your bare hands. You'll need a shovel.") + else + to_chat(user, "The grave has already been dug up.") + +/obj/structure/closet/crate/grave/tool_interact(obj/item/S, mob/living/carbon/user) + if(user.a_intent == INTENT_HELP) //checks to attempt to dig the grave, must be done on help intent only. + if(!opened) + if(S.tool_behaviour == cutting_tool) + to_chat(user, "You start start to dig open \the [src] with \the [S]...") + if (do_after(user,20, target = src)) + opened = TRUE + locked = TRUE + dump_contents() + update_appearance() + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "graverobbing", /datum/mood_event/graverobbing) + return TRUE + return TRUE + else + to_chat(user, "You can't dig up a grave with \the [S.name].") + return TRUE + else + to_chat(user, "The grave has already been dug up.") + return TRUE + + else if((user.a_intent != INTENT_HELP) && opened) //checks to attempt to remove the grave entirely. + if(S.tool_behaviour == cutting_tool) + to_chat(user, "You start to remove \the [src] with \the [S].") + if (do_after(user,15, target = src)) + to_chat(user, "You remove \the [src] completely.") + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "graverobbing", /datum/mood_event/graverobbing) + deconstruct(TRUE) + return TRUE + return + +/obj/structure/closet/crate/grave/bust_open() + ..() + opened = TRUE + update_appearance() + dump_contents() + return + +/obj/structure/closet/crate/grave/stone + name = "burial mound" + desc = "A marked patch of soil, adorned with a sandstone slab" + icon_state = "grave_lead" + +/obj/structure/closet/crate/grave/loot + name = "burial mound" + desc = "A marked patch of soil, showing signs of a burial long ago. You wouldn't disturb a grave... right?" + opened = FALSE + +/obj/structure/closet/crate/grave/loot/PopulateContents() //GRAVEROBBING IS NOW A FEATURE + ..() + new /obj/effect/decal/remains/human/grave(src) + switch(rand(1,7)) + if(1) + new /obj/item/spacecash/bundle/smallrand(src) + new /obj/item/card/id + new /obj/item/storage/wallet(src) + if(2) + new /obj/item/clothing/head/papersack/smiley(src) + if(3) + new /obj/item/clothing/under/nanotrasen(src) + new /obj/item/clothing/head/nanotrasen(src) + if(4) + new /obj/item/storage/book/bible/booze(src) + if(5) + new /obj/item/clothing/neck/stethoscope(src) + new /obj/item/scalpel(src) + new /obj/item/hemostat(src) + + if(6) + new /obj/item/reagent_containers/glass/beaker/large/napalm(src) + new /obj/item/clothing/under/frontiersmen(src) + if(7) + new /obj/item/clothing/glasses/sunglasses(src) + new /obj/item/clothing/mask/cigarette/rollie(src) + new /obj/item/lighter(src) + +/obj/effect/decal/remains/human/grave + turf_loc_check = FALSE diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index 9f51ba34476a..68c99d6649a5 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -299,3 +299,31 @@ name = "\improper Karl Marx bust" desc = "A bust depicting a certain 19th century economist. You get the feeling a specter is haunting the sector." icon_state = "marx" + +/// bone +/obj/structure/statue/bone + anchored = TRUE + max_integrity = 120 + material_drop_type = /obj/item/stack/sheet/bone + impressiveness = 18 // Carved from the bones of a massive creature, it's going to be a specticle to say the least + layer = ABOVE_ALL_MOB_LAYER + +/obj/structure/statue/bone/rib + name = "collosal rib" + desc = "It's staggering to think that something this big could have lived, let alone died." + oreAmount = 4 + icon = 'icons/obj/statuelarge.dmi' + icon_state = "rib" + +/obj/structure/statue/bone/skull + name = "collosal skull" + desc = "The gaping maw of a dead, titanic monster." + oreAmount = 12 + icon = 'icons/obj/statuelarge.dmi' + icon_state = "skull" + +/obj/structure/statue/bone/skull/half + desc = "The gaping maw of a dead, titanic monster. This one is cracked in half." + oreAmount = 6 + icon = 'icons/obj/statuelarge.dmi' + icon_state = "skull-half" diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 0d97598a0504..6db5f18e31b9 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -397,6 +397,49 @@ icon_state = "puddle" resistance_flags = UNACIDABLE +//***Oil well puddles. +/obj/structure/sink/oil_well + name = "oil well" + desc = "A bubbling pool of oil.This would probably be valuable, had bluespace technology not destroyed the need for fossil fuels 200 years ago." + icon = 'icons/obj/watercloset.dmi' + icon_state = "puddle-oil" + dispensedreagent = /datum/reagent/fuel/oil + +/obj/structure/sink/oil_well/Initialize() + .=..() + create_reagents(20) + reagents.add_reagent(dispensedreagent, 20) + +/obj/structure/sink/oil_well/attack_hand(mob/M) + flick("puddle-oil-splash",src) + reagents.expose(M, TOUCH, 20) //Covers target in 20u of oil. + to_chat(M, "You touch the pool of oil, only to get oil all over yourself. It would be wise to wash this off with water.") + +/obj/structure/sink/oil_well/attackby(obj/item/O, mob/user, params) + flick("puddle-oil-splash",src) + if(O.tool_behaviour == TOOL_SHOVEL && !(flags_1&NODECONSTRUCT_1)) //attempt to deconstruct the puddle with a shovel + to_chat(user, "You fill in the oil well with soil.") + O.play_tool_sound(src) + deconstruct() + return 1 + if(istype(O, /obj/item/reagent_containers)) //Refilling bottles with oil + var/obj/item/reagent_containers/RG = O + if(RG.is_refillable()) + if(!RG.reagents.holder_full()) + RG.reagents.add_reagent(dispensedreagent, min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this)) + to_chat(user, "You fill [RG] from [src].") + return TRUE + to_chat(user, "\The [RG] is full.") + return FALSE + if(user.a_intent != INTENT_HARM) + to_chat(user, "You won't have any luck getting \the [O] out if you drop it in the oil.") + return 1 + else + return ..() + +/obj/structure/sink/oil_well/drop_materials() + new /obj/effect/decal/cleanable/oil(loc) + //ATTACK HAND IGNORING PARENT RETURN VALUE /obj/structure/sink/puddle/attack_hand(mob/M) icon_state = "puddle-splash" diff --git a/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm b/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm deleted file mode 100644 index e9ca8f3d4093..000000000000 --- a/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm +++ /dev/null @@ -1,258 +0,0 @@ -//******Decoration objects -//***Bone statues and giant skeleton parts. -/obj/structure/statue/bone - anchored = TRUE - max_integrity = 120 - material_drop_type = /obj/item/stack/sheet/bone - impressiveness = 18 // Carved from the bones of a massive creature, it's going to be a specticle to say the least - layer = ABOVE_ALL_MOB_LAYER - -/obj/structure/statue/bone/rib - name = "collosal rib" - desc = "It's staggering to think that something this big could have lived, let alone died." - oreAmount = 4 - icon = 'icons/obj/statuelarge.dmi' - icon_state = "rib" - -/obj/structure/statue/bone/skull - name = "collosal skull" - desc = "The gaping maw of a dead, titanic monster." - oreAmount = 12 - icon = 'icons/obj/statuelarge.dmi' - icon_state = "skull" - -/obj/structure/statue/bone/skull/half - desc = "The gaping maw of a dead, titanic monster. This one is cracked in half." - oreAmount = 6 - icon = 'icons/obj/statuelarge.dmi' - icon_state = "skull-half" - -//***Wasteland floor and rock turfs here. -/turf/open/floor/plating/asteroid/basalt/wasteland //Like a more fun version of living in Arizona. - name = "cracked earth" - icon = 'icons/turf/floors.dmi' - icon_state = "wasteland" - base_icon_state = "wasteland" - baseturfs = /turf/open/floor/plating/asteroid/basalt/wasteland - digResult = /obj/item/stack/ore/glass/basalt - initial_gas_mix = LAVALAND_DEFAULT_ATMOS - slowdown = 0.5 - floor_variance = 30 - max_icon_states = 6 - -/turf/closed/mineral/strong/wasteland - name = "ancient dry rock" - color = "#B5651D" - environment_type = "wasteland" - turf_type = /turf/open/floor/plating/asteroid/basalt/wasteland - baseturfs = /turf/open/floor/plating/asteroid/basalt/wasteland - smooth_icon = 'icons/turf/walls/rock_wall.dmi' - base_icon_state = "rock_wall" - smoothing_flags = SMOOTH_BITMASK | SMOOTH_BORDER - -/turf/closed/mineral/strong/wasteland/drop_ores() - if(prob(10)) - new /obj/item/stack/ore/iron(src, 1) - new /obj/item/stack/ore/glass(src, 1) - new /obj/effect/decal/remains/human/grave(src, 1) - else - new /obj/item/stack/sheet/bone(src, 1) - -//***Oil well puddles. -/obj/structure/sink/oil_well //You're not going to enjoy bathing in this... - name = "oil well" - desc = "A bubbling pool of oil.This would probably be valuable, had bluespace technology not destroyed the need for fossil fuels 200 years ago." - icon = 'icons/obj/watercloset.dmi' - icon_state = "puddle-oil" - dispensedreagent = /datum/reagent/fuel/oil - -/obj/structure/sink/oil_well/Initialize() - .=..() - create_reagents(20) - reagents.add_reagent(dispensedreagent, 20) - -/obj/structure/sink/oil_well/attack_hand(mob/M) - flick("puddle-oil-splash",src) - reagents.expose(M, TOUCH, 20) //Covers target in 20u of oil. - to_chat(M, "You touch the pool of oil, only to get oil all over yourself. It would be wise to wash this off with water.") - -/obj/structure/sink/oil_well/attackby(obj/item/O, mob/user, params) - flick("puddle-oil-splash",src) - if(O.tool_behaviour == TOOL_SHOVEL && !(flags_1&NODECONSTRUCT_1)) //attempt to deconstruct the puddle with a shovel - to_chat(user, "You fill in the oil well with soil.") - O.play_tool_sound(src) - deconstruct() - return 1 - if(istype(O, /obj/item/reagent_containers)) //Refilling bottles with oil - var/obj/item/reagent_containers/RG = O - if(RG.is_refillable()) - if(!RG.reagents.holder_full()) - RG.reagents.add_reagent(dispensedreagent, min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this)) - to_chat(user, "You fill [RG] from [src].") - return TRUE - to_chat(user, "\The [RG] is full.") - return FALSE - if(user.a_intent != INTENT_HARM) - to_chat(user, "You won't have any luck getting \the [O] out if you drop it in the oil.") - return 1 - else - return ..() - -/obj/structure/sink/oil_well/drop_materials() - new /obj/effect/decal/cleanable/oil(loc) - -//***Grave mounds. -/obj/structure/closet/crate/grave - name = "burial mound" - desc = "A marked patch of soil, adorned with a wooden cross" - icon_state = "grave" - dense_when_open = TRUE - material_drop = /obj/item/stack/ore/glass/basalt - material_drop_amount = 5 - opened = TRUE - anchorable = FALSE - anchored = TRUE - locked = TRUE - breakout_time = 900 - cutting_tool = TOOL_SHOVEL - var/lead_tomb = FALSE - var/first_open = FALSE - -/obj/structure/closet/crate/grave/attackby(obj/item/W, mob/user, params) - .=..() - if(istype(W, /obj/item/screwdriver)) - if(!user.is_literate()) - to_chat(user, "You scratch illegibly on [src]!") - return - var/t = stripped_input(user, "What would you like the inscription to be?", name, null, 53) - if(user.get_active_held_item() != W) - return - if(!user.canUseTopic(src, BE_CLOSE)) - return - if(t) - desc = "[t]" - return - -/obj/structure/closet/crate/grave/open(mob/living/user, obj/item/S, force = FALSE) - if(!opened) - to_chat(user, "The ground here is too hard to dig up with your bare hands. You'll need a shovel.") - else - to_chat(user, "The grave has already been dug up.") - -/obj/structure/closet/crate/grave/tool_interact(obj/item/S, mob/living/carbon/user) - if(user.a_intent == INTENT_HELP) //checks to attempt to dig the grave, must be done on help intent only. - if(!opened) - if(S.tool_behaviour == cutting_tool) - to_chat(user, "You start start to dig open \the [src] with \the [S]...") - if (do_after(user,20, target = src)) - opened = TRUE - locked = TRUE - dump_contents() - update_appearance() - SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "graverobbing", /datum/mood_event/graverobbing) - if(lead_tomb == TRUE && first_open == TRUE) - user.gain_trauma(/datum/brain_trauma/magic/stalker) - to_chat(user, "Oh no, no no no, THEY'RE EVERYWHERE! EVERY ONE OF THEM IS EVERYWHERE!") - first_open = FALSE - return 1 - return 1 - else - to_chat(user, "You can't dig up a grave with \the [S.name].") - return 1 - else - to_chat(user, "The grave has already been dug up.") - return 1 - - else if((user.a_intent != INTENT_HELP) && opened) //checks to attempt to remove the grave entirely. - if(S.tool_behaviour == cutting_tool) - to_chat(user, "You start to remove \the [src] with \the [S].") - if (do_after(user,15, target = src)) - to_chat(user, "You remove \the [src] completely.") - SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "graverobbing", /datum/mood_event/graverobbing) - deconstruct(TRUE) - return 1 - return - -/obj/structure/closet/crate/grave/bust_open() - ..() - opened = TRUE - update_appearance() - dump_contents() - return - -/obj/structure/closet/crate/grave/stone - name = "burial mound" - desc = "A marked patch of soil, adorned with a sandstone slab" - icon_state = "grave_lead" - -/obj/structure/closet/crate/grave/loot - name = "burial mound" - desc = "A marked patch of soil, showing signs of a burial long ago. You wouldn't disturb a grave... right?" - opened = FALSE - -/obj/structure/closet/crate/grave/loot/PopulateContents() //GRAVEROBBING IS NOW A FEATURE - ..() - new /obj/effect/decal/remains/human/grave(src) - switch(rand(1,7)) - if(1) - new /obj/item/coin/gold(src) - new /obj/item/storage/wallet(src) - if(2) - new /obj/item/clothing/glasses/meson(src) - if(3) - new /obj/item/coin/silver(src) - new /obj/item/shovel/spade(src) - if(4) - new /obj/item/storage/book/bible/booze(src) - if(5) - new /obj/item/clothing/neck/stethoscope(src) - new /obj/item/scalpel(src) - new /obj/item/hemostat(src) - - if(6) - new /obj/item/reagent_containers/glass/beaker(src) - new /obj/item/clothing/glasses/science(src) - if(7) - new /obj/item/clothing/glasses/sunglasses(src) - new /obj/item/clothing/mask/cigarette/rollie(src) - -/obj/structure/closet/crate/grave/loot/lead_researcher - name = "ominous burial mound" - desc = "Even in a place filled to the brim with graves, this one shows a level of preperation and planning that fills you with dread." - icon_state = "grave_lead" - lead_tomb = TRUE - first_open = TRUE - -/obj/structure/closet/crate/grave/loot/lead_researcher/PopulateContents() //ADVANCED GRAVEROBBING - ..() - new /obj/effect/decal/cleanable/blood/gibs/old(src) - -/obj/effect/decal/remains/human/grave - turf_loc_check = FALSE - -//***Fluff items for lore/intrigue -/obj/item/paper/crumpled/muddy/fluff/elephant_graveyard - name = "posted warning" - desc = "It seems to be smudged with mud and... oil?" - default_raw_text = "TO WHOM IT MAY CONCERN

This area is property of the Nanotrasen Mining Division.

Trespassing in this area is illegal, highly dangerous, and subject to several NDAs.

Please turn back now, under intergalactic law section 48-R." - -/obj/item/paper/crumpled/muddy/fluff/elephant_graveyard/rnd_notes - name = "Research Findings: Day 26" - desc = "Huh, this one page looks like it was torn out of a full book. How odd." - icon_state = "docs_part" - default_raw_text = "Researcher name: B--*--* J--*s.

Detailed findings:Today the camp site's cond-tion has wor--ene*. The ashst--ms keep blocking us off from le-ving the sit* for m-re supplies, and it's lo-king like we're out of pl*sma to p-wer the ge-erat*r. Can't rea-*y study c-*bon *ating with no li--ts, ya know? Da-*y's been going -*f again and ag-*n a-*ut h*w the company's left us to *ie here, but I j-s* keep tell-ng him to stop che*-in* out these damn graves. We m-y b* archaeologists, but -e sho*ld have t-e dec-**cy to know these grav-s are *-l NEW.

The rest of the page is just semantics about carbon dating methods." - -/obj/item/paper/crumpled/muddy/fluff/elephant_graveyard/mutiny - name = "hastily scribbled note" - desc = "Seems like someone was in a hurry." - default_raw_text = "Alright, we all know that stuck up son a bitch is just doing this to keep us satisifed. Who the hell does he think he is, taking extra rations? We're OUT OF FOOD, CARL. Tomorrow at noon, we're going to try and take the ship by force. He HAS to be lying about the engine cooling down. He HAS TO BE. I'm tellin ya, with this implant I lifted off that last supply ship, I got the smarts to get us offa this shithole. Keep your knife handy carl." - -/obj/item/paper/fluff/ruins/elephant_graveyard/hypothesis - name = "research document" - desc = "Standard Nanotrasen typeface for important research documents." - default_raw_text = "Day 9: Tenative Conclusions

While the area appears to be of significant cultural importance to the lizard race, outside of some sparce contact with native wildlife, we're yet to find any exact reasoning for the nature of this phenomenon. It seems that organic life is communally drawn to this planet as though it functions as a final resting place for intelligent life. As per company guidelines, this site shall be given the following classification: 'LZ-0271 - Elephant Graveyard'

Compiled list of Artifact findings (Currently Sent Offsite)
Cultist Blade Fragments: x8
Brass Multiplicative Ore Sample: x105
Syndicate Revolutionary Leader Implant (Broken) x1
Extinct Cortical Borer Tissue Sample x1
Space Carp Fossil x3" - -/obj/item/paper/fluff/ruins/elephant_graveyard/final_message - name = "important looking Note" - desc = "This note is well written, and seems to have been put here so you'd find it." - default_raw_text = "If you find this... you don't need to know who I am.

You need to leave this place. I dunno what shit they did to me out here, but I don't think I'm going to be making it out of here.

This place... it wears down your psyche. The other researchers out here laughed it off but... They were the first to go.

One by one they started turning on each other. The more they found out, the more they started fighting and arguing...
As I speak now, I had to... I wound up having to put most of my men down. I know what I had to do, and I know there's no way left for me to live with myself.
If anyone ever finds this, just don't touch the graves.

DO NOT. TOUCH. THE GRAVES. Don't be a dumbass, like we all were." diff --git a/shiptest.dme b/shiptest.dme index c4bbd664ee8c..0bff452a9161 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -1484,6 +1484,7 @@ #include "code\game\objects\structures\crates_lockers\closets\secure\security.dm" #include "code\game\objects\structures\crates_lockers\crates\bins.dm" #include "code\game\objects\structures\crates_lockers\crates\critter.dm" +#include "code\game\objects\structures\crates_lockers\crates\graves.dm" #include "code\game\objects\structures\crates_lockers\crates\large.dm" #include "code\game\objects\structures\crates_lockers\crates\secure.dm" #include "code\game\objects\structures\crates_lockers\crates\wooden.dm" @@ -3306,7 +3307,6 @@ #include "code\modules\ruins\icemoonruin_code\library.dm" #include "code\modules\ruins\icemoonruin_code\wrath.dm" #include "code\modules\ruins\lavalandruin_code\biodome_winter.dm" -#include "code\modules\ruins\lavalandruin_code\elephantgraveyard.dm" #include "code\modules\ruins\lavalandruin_code\puzzle.dm" #include "code\modules\ruins\lavalandruin_code\surface.dm" #include "code\modules\ruins\lavalandruin_code\syndicate_base.dm" From 7a3c545ee5cf6f048722a1e282c5a9932ae4220f Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 29 Sep 2024 08:15:28 -0500 Subject: [PATCH 048/167] Automatic changelog generation for PR #3422 [ci skip] --- html/changelogs/AutoChangeLog-pr-3422.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3422.yml diff --git a/html/changelogs/AutoChangeLog-pr-3422.yml b/html/changelogs/AutoChangeLog-pr-3422.yml new file mode 100644 index 000000000000..6bb9c3e4e60d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3422.yml @@ -0,0 +1,4 @@ +author: Bjarl +changes: + - {rscdel: The Elephant Graveyard ruin has been taken out back} +delete-after: true From 852d550b5056473eb2abebc1332c211259603b2a Mon Sep 17 00:00:00 2001 From: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Date: Sun, 29 Sep 2024 08:29:30 -0500 Subject: [PATCH 049/167] sawnoff weapons now call sawoff on init (#3428) ## About The Pull Request you dont have to re declare all your sawn off variables ## Why It's Good For The Game easier sawn off weapons ## Changelog :cl: fix: sawnoff weapons made from init now function correctly /:cl: --- code/modules/projectiles/gun.dm | 45 +++++++++++++++++++ code/modules/projectiles/guns/ballistic.dm | 40 +---------------- .../projectiles/guns/ballistic/rifle.dm | 11 +---- .../projectiles/guns/ballistic/shotgun.dm | 38 +++++----------- 4 files changed, 61 insertions(+), 73 deletions(-) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 28ef8cecdd80..94cc4f6f1e38 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -331,6 +331,8 @@ muzzle_flash = new(src, muzzleflash_iconstate) build_zooming() build_firemodes() + if(sawn_off) + sawoff(forced = TRUE) /obj/item/gun/ComponentInitialize() . = ..() @@ -1109,3 +1111,46 @@ var/safety_prefix = "[our_gun.adjust_fire_select_icon_state_on_safety ? "[our_gun.safety ? "safety_" : ""]" : ""]" button_icon_state = "[safety_prefix][our_gun.fire_select_icon_state_prefix][current_firemode]" return ..() + +GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list( + /obj/item/gun/energy/plasmacutter, + /obj/item/melee/transforming/energy, + ))) + +///Handles all the logic of sawing off guns, +/obj/item/gun/proc/try_sawoff(mob/user, obj/item/saw) + if(!saw.get_sharpness() || !is_type_in_typecache(saw, GLOB.gun_saw_types) && saw.tool_behaviour != TOOL_SAW) //needs to be sharp. Otherwise turned off eswords can cut this. + return + if(sawn_off) + to_chat(user, span_warning("\The [src] is already shortened!")) + return + user.changeNext_move(CLICK_CD_MELEE) + user.visible_message(span_notice("[user] begins to shorten \the [src]."), span_notice("You begin to shorten \the [src]...")) + + //if there's any live ammo inside the gun, makes it go off + if(blow_up(user)) + user.visible_message(span_danger("\The [src] goes off!"), span_danger("\The [src] goes off in your face!")) + return + + if(do_after(user, 30, target = src)) + user.visible_message(span_notice("[user] shortens \the [src]!"), span_notice("You shorten \the [src].")) + sawoff(user, saw) + +///Used on init or try_sawoff +/obj/item/gun/proc/sawoff(forced = FALSE) + if(sawn_off && !forced) + return + name = "sawn-off [src.name]" + desc = sawn_desc + w_class = WEIGHT_CLASS_NORMAL + item_state = "gun" + slot_flags &= ~ITEM_SLOT_BACK //you can't sling it on your back + slot_flags |= ITEM_SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally) + recoil = SAWN_OFF_RECOIL + sawn_off = TRUE + update_appearance() + return TRUE + +///used for sawing guns, causes the gun to fire without the input of the user +/obj/item/gun/proc/blow_up(mob/user) + return diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index 00f48cc29239..ccc399906365 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -230,7 +230,7 @@ update_appearance() return if (can_be_sawn_off) - if (sawoff(user, A)) + if (try_sawoff(user, A)) return return FALSE @@ -336,43 +336,7 @@ rounds.Add(magazine.ammo_list(drop_all)) return rounds -GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list( - /obj/item/gun/energy/plasmacutter, - /obj/item/melee/transforming/energy, - ))) - -///Handles all the logic of sawing off guns, -/obj/item/gun/ballistic/proc/sawoff(mob/user, obj/item/saw) - if(!saw.get_sharpness() || !is_type_in_typecache(saw, GLOB.gun_saw_types) && saw.tool_behaviour != TOOL_SAW) //needs to be sharp. Otherwise turned off eswords can cut this. - return - if(sawn_off) - to_chat(user, "\The [src] is already shortened!") - return - user.changeNext_move(CLICK_CD_MELEE) - user.visible_message("[user] begins to shorten \the [src].", "You begin to shorten \the [src]...") - - //if there's any live ammo inside the gun, makes it go off - if(blow_up(user)) - user.visible_message("\The [src] goes off!", "\The [src] goes off in your face!") - return - - if(do_after(user, 30, target = src)) - if(sawn_off) - return - user.visible_message("[user] shortens \the [src]!", "You shorten \the [src].") - name = "sawn-off [src.name]" - desc = sawn_desc - w_class = WEIGHT_CLASS_NORMAL - item_state = "gun" - slot_flags &= ~ITEM_SLOT_BACK //you can't sling it on your back - slot_flags |= ITEM_SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally) - recoil = SAWN_OFF_RECOIL - sawn_off = TRUE - update_appearance() - return TRUE - -///used for sawing guns, causes the gun to fire without the input of the user -/obj/item/gun/ballistic/proc/blow_up(mob/user) +/obj/item/gun/ballistic/blow_up(mob/user) . = FALSE for(var/obj/item/ammo_casing/AC in magazine.stored_ammo) if(AC.BB) diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm index 2be77ee20835..a61413057606 100644 --- a/code/modules/projectiles/guns/ballistic/rifle.dm +++ b/code/modules/projectiles/guns/ballistic/rifle.dm @@ -94,7 +94,7 @@ /obj/item/gun/ballistic/rifle/illestren/empty //i had to name it empty instead of no_mag because else it wouldnt work with guncases. sorry! spawnwithmagazine = FALSE -/obj/item/gun/ballistic/rifle/illestren/sawoff(mob/user) +/obj/item/gun/ballistic/rifle/illestren/sawoff(forced = FALSE) . = ..() if(.) spread = 24 @@ -114,22 +114,15 @@ icon_state = "illestren_factory" item_state = "illestren_factory" -/obj/item/gun/ballistic/rifle/illestren/sawoff(mob/user) +/obj/item/gun/ballistic/rifle/illestren/sawoff(forced = FALSE) . = ..() if(.) item_state = "illestren_factory_sawn" mob_overlay_state = item_state /obj/item/gun/ballistic/rifle/illestren/sawn - name = "sawn-off Illestren rifle" desc = "An Illestren rifle sawn down to a ridiculously small size. There was probably a reason it wasn't made this short to begin with, but it still packs a punch." - item_state = "illestren_sawn" sawn_off = TRUE - weapon_weight = WEAPON_MEDIUM - w_class = WEIGHT_CLASS_NORMAL - spread = 24 - spread_unwielded = 30 - slot_flags = ITEM_SLOT_BELT /obj/item/gun/ballistic/rifle/solgov name = "SSG-669C" diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 2d70bf9851bb..ab85fb9a01c4 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -74,7 +74,7 @@ can_be_sawn_off = TRUE -/obj/item/gun/ballistic/shotgun/brimstone/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/brimstone/sawoff(forced = FALSE) . = ..() if(.) weapon_weight = WEAPON_MEDIUM @@ -108,7 +108,7 @@ rack_sound = 'sound/weapons/gun/shotgun/rack_alt.ogg' fire_delay = 0.1 SECONDS -/obj/item/gun/ballistic/shotgun/hellfire/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/hellfire/sawoff(forced = FALSE) . = ..() if(.) var/obj/item/ammo_box/magazine/internal/tube = magazine @@ -316,7 +316,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) if(unique_reskin && !current_skin && user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY) && (!bolt_locked)) reskin_obj(user) -/obj/item/gun/ballistic/shotgun/doublebarrel/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/doublebarrel/sawoff(forced = FALSE) . = ..() if(.) weapon_weight = WEAPON_MEDIUM @@ -361,7 +361,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) item_state = "dshotgun_srm" unique_reskin = null -/obj/item/gun/ballistic/shotgun/doublebarrel/roumain/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/doublebarrel/roumain/sawoff(forced = FALSE) . = ..() if(.) item_state = "dshotgun_srm_sawn" @@ -416,7 +416,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) if(sawn_off) . += "ishotgun_sawn" -/obj/item/gun/ballistic/shotgun/doublebarrel/improvised/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/doublebarrel/improvised/sawoff(forced = FALSE) . = ..() if(. && slung) //sawing off the gun removes the sling new /obj/item/stack/cable_coil(get_turf(src), 10) @@ -424,21 +424,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) update_appearance() /obj/item/gun/ballistic/shotgun/doublebarrel/improvised/sawn - name = "sawn-off improvised shotgun" - desc = "A single-shot shotgun. Better not miss." - icon_state = "ishotgun_sawn" - item_state = "ishotgun_sawn" - w_class = WEIGHT_CLASS_NORMAL sawn_off = TRUE - slot_flags = ITEM_SLOT_BELT - - wield_slowdown = 0.25 - wield_delay = 0.3 SECONDS //OP? maybe - - spread = 8 - spread_unwielded = 15 - recoil = 3 //or not - recoil_unwielded = 5 /obj/item/gun/ballistic/shotgun/automatic/combat/compact/compact name = "compact compact combat shotgun" @@ -604,7 +590,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) balloon_alert_to_viewers("quickly racks!") fire_delay = 0 SECONDS -/obj/item/gun/ballistic/shotgun/flamingarrow/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/flamingarrow/sawoff(forced = FALSE) . = ..() if(.) var/obj/item/ammo_box/magazine/internal/tube = magazine @@ -629,7 +615,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) base_icon_state = "flamingarrow_factory" item_state = "flamingarrow_factory" -/obj/item/gun/ballistic/shotgun/flamingarrow/factory/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/flamingarrow/factory/sawoff(forced = FALSE) . = ..() if(.) item_state = "flamingarrow_factory_sawn" @@ -642,7 +628,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) icon_state = "flamingbolt" item_state = "flamingbolt" -/obj/item/gun/ballistic/shotgun/flamingarrow/bolt/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/flamingarrow/bolt/sawoff(forced = FALSE) . = ..() if(.) item_state = "flamingbolt_sawn" @@ -658,7 +644,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) sawn_desc = "A large lever-action rifle, sawn down for portability. It looks much cooler, but you should probably be using a revolver..." mag_type = /obj/item/ammo_box/magazine/internal/shot/winchester/absolution -/obj/item/gun/ballistic/shotgun/flamingarrow/absolution/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/flamingarrow/absolution/sawoff(forced = FALSE) . = ..() if(.) var/obj/item/ammo_box/magazine/internal/tube = magazine @@ -690,7 +676,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) sawn_desc = "A lever action shotgun that's been sawed down for portability. The recoil makes it mostly useless outside of point-blank range, but it hits hard for its size and, more importantly, can be flipped around stylishly." mag_type = /obj/item/ammo_box/magazine/internal/shot/winchester/conflagration -/obj/item/gun/ballistic/shotgun/flamingarrow/conflagration/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/flamingarrow/conflagration/sawoff(forced = FALSE) . = ..() if(.) var/obj/item/ammo_box/magazine/internal/tube = magazine @@ -773,7 +759,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) gun_firemodes = list(FIREMODE_SEMIAUTO) default_firemode = FIREMODE_SEMIAUTO -/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/sawoff(forced = FALSE) . = ..() if(.) item_state = "beacon_sawn" @@ -796,7 +782,7 @@ EMPTY_GUN_HELPER(shotgun/automatic/bulldog/inteq) icon_state = "beacon_factory" item_state = "beacon_factory" -/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/factory/sawoff(mob/user) +/obj/item/gun/ballistic/shotgun/doublebarrel/beacon/factory/sawoff(forced = FALSE) . = ..() if(.) item_state = "beacon_factory_sawn" From a661b0e0a710d56be63158f9ad7d34a9558aef93 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 29 Sep 2024 08:45:37 -0500 Subject: [PATCH 050/167] Automatic changelog generation for PR #3428 [ci skip] --- html/changelogs/AutoChangeLog-pr-3428.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3428.yml diff --git a/html/changelogs/AutoChangeLog-pr-3428.yml b/html/changelogs/AutoChangeLog-pr-3428.yml new file mode 100644 index 000000000000..ecad99d43c1d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3428.yml @@ -0,0 +1,4 @@ +author: FalloutFalcon +changes: + - {bugfix: sawnoff weapons made from init now function correctly} +delete-after: true From b07546713fa7dd56ba9511fd1db77f1dd34f1753 Mon Sep 17 00:00:00 2001 From: MassiveMen <164101356+MassiveMen@users.noreply.github.com> Date: Sun, 29 Sep 2024 09:38:02 -0400 Subject: [PATCH 051/167] Adds the fireaxe to the black market (#3364) ## About The Pull Request ## Why It's Good For The Game We need more axe murderer representation in this bitch ## Changelog :cl: add: Added the fire axe to the black market uplink /:cl: --------- Signed-off-by: MassiveMen <164101356+MassiveMen@users.noreply.github.com> Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> --- .../cargo/blackmarket/blackmarket_items/weapons.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm b/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm index cd0fcf9fd7a9..7da2610a9049 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm @@ -350,4 +350,12 @@ stock_max = 2 availability_prob = 20 +/datum/blackmarket_item/weapon/fireaxe + name = "Fire Axe" + desc = "An incredibly sharp axe of dubious make used by various engineers throughout the years to settle arguments while hammered. Sold to us by a very friendly man in a suit." + item = /obj/item/melee/axe/fire + price_min = 2500 + price_max = 3500 + stock = 2 + availability_prob = 40 From 24c2f00a7d88eff05b46d5928d5f634d96c0d80f Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 29 Sep 2024 08:59:04 -0500 Subject: [PATCH 052/167] Automatic changelog generation for PR #3364 [ci skip] --- html/changelogs/AutoChangeLog-pr-3364.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3364.yml diff --git a/html/changelogs/AutoChangeLog-pr-3364.yml b/html/changelogs/AutoChangeLog-pr-3364.yml new file mode 100644 index 000000000000..7c6b1f04c8a7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3364.yml @@ -0,0 +1,4 @@ +author: MassiveMen +changes: + - {rscadd: Added the fire axe to the black market uplink} +delete-after: true From f3df7ccb1e6185ef1181c388ad0af410118a9772 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 30 Sep 2024 01:04:44 +0000 Subject: [PATCH 053/167] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3136.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3350.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3364.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3422.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3428.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3454.yml | 4 ---- html/changelogs/archive/2024-09.yml | 11 +++++++++++ 7 files changed, 11 insertions(+), 24 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3136.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3350.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3364.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3422.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3428.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3454.yml diff --git a/html/changelogs/AutoChangeLog-pr-3136.yml b/html/changelogs/AutoChangeLog-pr-3136.yml deleted file mode 100644 index 1c06ebef6c3e..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3136.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Thera-Pissed -changes: - - {rscadd: 'New wasteplanet ruin, the abandoned Miskilamo shipbreaking yard!'} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3350.yml b/html/changelogs/AutoChangeLog-pr-3350.yml deleted file mode 100644 index 8869478b429b..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3350.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: FalloutFalcon -changes: - - {bugfix: condiment packs are no longer invisible and missing names} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3364.yml b/html/changelogs/AutoChangeLog-pr-3364.yml deleted file mode 100644 index 7c6b1f04c8a7..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3364.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: MassiveMen -changes: - - {rscadd: Added the fire axe to the black market uplink} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3422.yml b/html/changelogs/AutoChangeLog-pr-3422.yml deleted file mode 100644 index 6bb9c3e4e60d..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3422.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Bjarl -changes: - - {rscdel: The Elephant Graveyard ruin has been taken out back} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3428.yml b/html/changelogs/AutoChangeLog-pr-3428.yml deleted file mode 100644 index ecad99d43c1d..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3428.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: FalloutFalcon -changes: - - {bugfix: sawnoff weapons made from init now function correctly} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3454.yml b/html/changelogs/AutoChangeLog-pr-3454.yml deleted file mode 100644 index 9e1b731951c9..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3454.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Bjarl -changes: - - {bugfix: m90 posters are real again} -delete-after: true diff --git a/html/changelogs/archive/2024-09.yml b/html/changelogs/archive/2024-09.yml index 0beabb6bcc8b..52b3cbfbf679 100644 --- a/html/changelogs/archive/2024-09.yml +++ b/html/changelogs/archive/2024-09.yml @@ -207,3 +207,14 @@ 2024-09-29: fighterslam: - balance: Modernizes and slightly buffs the Ranger. +2024-09-30: + Bjarl: + - rscdel: The Elephant Graveyard ruin has been taken out back + - bugfix: m90 posters are real again + FalloutFalcon: + - bugfix: sawnoff weapons made from init now function correctly + - bugfix: condiment packs are no longer invisible and missing names + MassiveMen: + - rscadd: Added the fire axe to the black market uplink + Thera-Pissed: + - rscadd: New wasteplanet ruin, the abandoned Miskilamo shipbreaking yard! From c8515f48a5f21290e2e416bf7595f760d20d7ac5 Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Mon, 30 Sep 2024 12:07:33 -0400 Subject: [PATCH 054/167] Anti-Radiation Foam (#3366) ## About The Pull Request Buyable foam that destroys radiation emitters, and decontaminates objects very efficiently. ## Why It's Good For The Game Makes wasteplanet survival less of a hassle when prepared ## Changelog :cl: Erika Fox add: Anti-Radiation Foam is now available at the outpost /:cl: --- code/game/objects/effects/decals/cleanable.dm | 5 +-- .../effects/effect_system/effects_foam.dm | 29 +++++++++++++-- code/game/objects/items/tanks/watertank.dm | 33 +++++++++++++++++ code/modules/cargo/packs/tools.dm | 11 ++++++ .../chemistry/reagents/other_reagents.dm | 35 +++++++++++++++++++ code/modules/reagents/reagent_dispenser.dm | 6 ++++ 6 files changed, 115 insertions(+), 4 deletions(-) diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm index 4161403fefd9..3ec6f58aa7b1 100644 --- a/code/game/objects/effects/decals/cleanable.dm +++ b/code/game/objects/effects/decals/cleanable.dm @@ -89,8 +89,9 @@ /obj/effect/decal/cleanable/wash(clean_types) ..() if(!(flags_1 & INITIALIZED_1)) - return FALSE - qdel(src) + return + if(clean_types in list(CLEAN_WASH, CLEAN_SCRUB)) + qdel(src) return TRUE /obj/effect/decal/cleanable/proc/can_bloodcrawl_in() diff --git a/code/game/objects/effects/effect_system/effects_foam.dm b/code/game/objects/effects/effect_system/effects_foam.dm index 51020d8f60dc..5fedeb47e455 100644 --- a/code/game/objects/effects/effect_system/effects_foam.dm +++ b/code/game/objects/effects/effect_system/effects_foam.dm @@ -48,13 +48,11 @@ /obj/effect/particle_effect/foam/firefighting/kill_foam() STOP_PROCESSING(SSfastprocess, src) - if(absorbed_plasma) var/obj/effect/decal/cleanable/plasma/P = (locate(/obj/effect/decal/cleanable/plasma) in get_turf(src)) if(!P) P = new(loc) P.reagents.add_reagent(/datum/reagent/stable_plasma, absorbed_plasma) - flick("[icon_state]-disolve", src) QDEL_IN(src, 5) @@ -67,6 +65,33 @@ /obj/effect/particle_effect/foam/firefighting/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) return + +/obj/effect/particle_effect/foam/antirad + name = "antiradiation foam" + lifetime = 80 + amount = 0 //no spread + slippery_foam = FALSE + color = "#A6FAFF55" + + +/obj/effect/particle_effect/foam/antirad/process() + ..() + + var/turf/open/T = get_turf(src) + var/obj/effect/radiation/rads = (locate(/obj/effect/radiation) in T) + if(rads && istype(T)) + rads.rad_power = rads.rad_power * rand(0.8, 0.95) + if (rads.rad_power <= RAD_BACKGROUND_RADIATION) + new /obj/effect/decal/cleanable/greenglow/filled(loc) + qdel(rads) + for(var/obj/things in get_turf(src)) + things.wash(CLEAN_TYPE_RADIATION) + +/obj/effect/particle_effect/foam/antirad/kill_foam() + STOP_PROCESSING(SSfastprocess, src) + flick("[icon_state]-disolve", src) + QDEL_IN(src, 5) + /obj/effect/particle_effect/foam/metal name = "aluminium foam" metal = ALUMINIUM_FOAM diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm index 50f709dcd65f..23fe0852c353 100644 --- a/code/game/objects/items/tanks/watertank.dm +++ b/code/game/objects/items/tanks/watertank.dm @@ -175,6 +175,39 @@ amount_per_transfer_from_this = (amount_per_transfer_from_this == 10 ? 5 : 10) to_chat(user, "You [amount_per_transfer_from_this == 10 ? "remove" : "fix"] the nozzle. You'll now use [amount_per_transfer_from_this] units per spray.") +//radiation cleanup pack + +/obj/item/watertank/anti_rad + name = "radiation foam pack" + desc = "A pressurized backpack tank with sprayer nozzle, intended to clean up radioactive hazards." + item_state = "waterbackpackatmos" + icon_state = "waterbackpackatmos" + volume = 200 + slowdown = 0.3 + +/obj/item/watertank/anti_rad/Initialize() + . = ..() + reagents.add_reagent(/datum/reagent/anti_radiation_foam, 200) + + +/obj/item/reagent_containers/spray/mister/anti_rad + name = "spray nozzle" + desc = "A heavy duty nozzle attached to a radiation foam tank." + icon_state = "atmos_nozzle" + item_state = "nozzleatmos" + amount_per_transfer_from_this = 5 + possible_transfer_amounts = list() + current_range = 6 + spray_range = 6 + + +/obj/item/watertank/anti_rad/make_noz() + return new /obj/item/reagent_containers/spray/mister/anti_rad(src) + +/obj/item/reagent_containers/spray/mister/anti_rad/attack_self(mob/user) + amount_per_transfer_from_this = (amount_per_transfer_from_this == 10 ? 5 : 10) + to_chat(user, "You [amount_per_transfer_from_this == 10 ? "tigten" : "loosen"] the nozzle. You'll now use [amount_per_transfer_from_this] units per spray.") + //ATMOS FIRE FIGHTING BACKPACK #define EXTINGUISHER 0 diff --git a/code/modules/cargo/packs/tools.dm b/code/modules/cargo/packs/tools.dm index 25ed4aaab554..e4081a448e0b 100644 --- a/code/modules/cargo/packs/tools.dm +++ b/code/modules/cargo/packs/tools.dm @@ -146,3 +146,14 @@ contains = list(/obj/structure/reagent_dispensers/foamtank) crate_name = "foam tank crate" crate_type = /obj/structure/closet/crate/large + +/datum/supply_pack/tools/radfoamtank + name = "Radiation Foam Tank Crate" + desc = "Contains a tank of anti-radiation foam. Pressurized sprayer included!" + cost = 1500 + contains = list( + /obj/item/watertank/anti_rad, + /obj/structure/reagent_dispensers/foamtank/antirad + ) + crate_name = "foam tank crate" + crate_type = /obj/structure/closet/crate/large diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 11306b441f1e..e0d4e2a86606 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -2526,3 +2526,38 @@ description = "Bacteria native to the Saint-Roumain Militia home planet." color = "#5a4f42" taste_description = "sour" + +//anti rad foam +/datum/reagent/anti_radiation_foam + name = "Anti-Radiation Foam" + description = "A tried and tested foam, used for decontaminating nuclear disasters." + reagent_state = LIQUID + color = "#A6FAFF55" + taste_description = "bitter, foamy awfulness." + +/datum/reagent/anti_radiation_foam/expose_turf(turf/open/T, reac_volume) + if (!istype(T)) + return + + if(reac_volume >= 1) + var/obj/effect/particle_effect/foam/antirad/F = (locate(/obj/effect/particle_effect/foam/antirad) in T) + if(!F) + F = new(T) + else if(istype(F)) + F.lifetime = initial(F.lifetime) //the foam is what does the cleaning here + +/datum/reagent/anti_radiation_foam/expose_obj(obj/O, reac_volume) + O.wash(CLEAN_RAD) + +/datum/reagent/anti_radiation_foam/expose_mob(mob/living/M, method=TOUCH, reac_volume) + if(method in list(TOUCH, VAPOR)) + M.radiation = M.radiation - rand(max(M.radiation * 0.95, M.radiation)) //get the hose + M.ExtinguishMob() + ..() + + +/datum/reagent/anti_radiation_foam/on_mob_life(mob/living/carbon/M) + M.adjustToxLoss(0.5, 200) + M.adjust_disgust(4) + ..() + . = 1 diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index fafd67305c9c..54d2fc182398 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -58,6 +58,12 @@ reagent_id = /datum/reagent/firefighting_foam tank_volume = 500 +/obj/structure/reagent_dispensers/foamtank/antirad + name = "anti-radiation foam tank" + desc = "A tank full of decontamination foam" + reagent_id = /datum/reagent/anti_radiation_foam + tank_volume = 1000 + /obj/structure/reagent_dispensers/fueltank name = "fuel tank" desc = "A tank full of industrial welding fuel. Do not consume." From fc810c5bd284afbb0b79485d042e337742a7d476 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 30 Sep 2024 11:29:02 -0500 Subject: [PATCH 055/167] Automatic changelog generation for PR #3366 [ci skip] --- html/changelogs/AutoChangeLog-pr-3366.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3366.yml diff --git a/html/changelogs/AutoChangeLog-pr-3366.yml b/html/changelogs/AutoChangeLog-pr-3366.yml new file mode 100644 index 000000000000..f1b353bf3387 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3366.yml @@ -0,0 +1,4 @@ +author: Erika Fox +changes: + - {rscadd: Anti-Radiation Foam is now available at the outpost} +delete-after: true From 92df9a186805a6d0cb48053b0a95cedd60d4b0b8 Mon Sep 17 00:00:00 2001 From: Sadhorizon <108196626+Sadhorizon@users.noreply.github.com> Date: Mon, 30 Sep 2024 18:11:36 +0200 Subject: [PATCH 056/167] Secbelts can now hold knives. (#3455) ## About The Pull Request Title. ## Why It's Good For The Game A knife is a pretty common piece of sec gear in the frontier actually. ## Changelog :cl: tweak: You can now put knives in secbelts and the subtypes of secbelts. fix: You can now fit all knives in mining webbings. /:cl: --- code/game/objects/items/storage/belt.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index c2679adf8ae9..52a6fdf8738e 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -275,6 +275,7 @@ STR.set_holdable(list( /obj/item/melee/baton, /obj/item/melee/classic_baton, + /obj/item/melee/knife, /obj/item/grenade, /obj/item/reagent_containers/spray/pepper, /obj/item/restraints/handcuffs, @@ -367,7 +368,7 @@ /obj/item/storage/fancy/cigarettes, /obj/item/reagent_containers/food/drinks/bottle, /obj/item/stack/medical, - /obj/item/melee/knife/kitchen, + /obj/item/melee/knife, /obj/item/reagent_containers/hypospray, /obj/item/gps, /obj/item/storage/bag/ore, From f616ac19e71faa430564f217f571619eaabe08a5 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 30 Sep 2024 11:42:47 -0500 Subject: [PATCH 057/167] Automatic changelog generation for PR #3455 [ci skip] --- html/changelogs/AutoChangeLog-pr-3455.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3455.yml diff --git a/html/changelogs/AutoChangeLog-pr-3455.yml b/html/changelogs/AutoChangeLog-pr-3455.yml new file mode 100644 index 000000000000..0351ddf280b1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3455.yml @@ -0,0 +1,5 @@ +author: Sadhorizon +changes: + - {tweak: You can now put knives in secbelts and the subtypes of secbelts.} + - {bugfix: You can now fit all knives in mining webbings.} +delete-after: true From c1706207847e8ff94ac2aaafe225f083aeb5c814 Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Mon, 30 Sep 2024 12:15:01 -0400 Subject: [PATCH 058/167] Cabinet Refactor (#3378) ## About The Pull Request Mildly refactors fireaxe cabinets to allow them to be subtyped with different items. Also adds an is_wielded proc to most weapons that can be wielded to prevent potential weirdness with this down the line. ## Why It's Good For The Game Cabinets are soulful ## Changelog :cl: Erika Fox code: Fireaxe cabinets have been repathed, and now function as a more general cabinet object. please report any inconsistencies with behavior /:cl: --------- Signed-off-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Co-authored-by: FalloutFalcon Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> --- .../JungleRuins/jungle_paradise.dmm | 2 +- .../SpaceRuins/singularity_lab.dmm | 6 +- .../independent/independent_lagoon.dmm | 2 +- _maps/shuttles/inteq/inteq_talos.dmm | 2 +- .../shuttles/nanotrasen/nanotrasen_heron.dmm | 2 +- .../shuttles/nanotrasen/nanotrasen_osprey.dmm | 2 +- .../nanotrasen/nanotrasen_skipper.dmm | 2 +- _maps/shuttles/pirate/pirate_libertatia.dmm | 2 +- .../syndicate/syndicate_gorlex_komodo.dmm | 2 +- .../syndicate/syndicate_twinkleshine.dmm | 2 +- code/__DEFINES/dcs/signals/signals.dm | 1 + code/__DEFINES/traits.dm | 1 + code/__HELPERS/unsorted.dm | 2 +- code/datums/components/twohanded.dm | 5 +- code/game/machinery/doors/airlock.dm | 2 +- code/game/objects/items/defib.dm | 13 -- code/game/objects/items/melee/chainsaw.dm | 20 +- code/game/objects/items/melee/dualsaber.dm | 22 +- .../game/objects/items/melee/energyhalberd.dm | 23 +- code/game/objects/items/melee/fireaxe.dm | 22 +- code/game/objects/items/melee/spear.dm | 17 +- code/game/objects/items/melee/sword.dm | 22 +- code/game/objects/items/storage/secure.dm | 2 +- code/game/objects/structures/cabinet.dm | 214 ++++++++++++++++++ code/game/objects/structures/cabinet_types.dm | 10 + code/game/objects/structures/fireaxe.dm | 179 --------------- .../mining/equipment/kinetic_crusher.dm | 53 ++--- code/modules/projectiles/gun.dm | 6 +- shiptest.dme | 3 +- 29 files changed, 296 insertions(+), 345 deletions(-) create mode 100644 code/game/objects/structures/cabinet.dm create mode 100644 code/game/objects/structures/cabinet_types.dm delete mode 100644 code/game/objects/structures/fireaxe.dm diff --git a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm index 0e19890e63c7..47455933ec16 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_paradise.dmm @@ -5181,7 +5181,7 @@ pixel_x = 7; pixel_y = 6 }, -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ pixel_y = 28 }, /turf/open/floor/mineral/titanium, diff --git a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm index 99ccda138d00..7dd57c637f35 100644 --- a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm +++ b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm @@ -8625,13 +8625,13 @@ /turf/open/floor/plasteel/grimy, /area/ruin/space/has_grav/singularitylab/lab) "HU" = ( -/obj/structure/fireaxecabinet{ - pixel_y = 32 - }, /obj/structure/sign/warning/incident{ pixel_x = -32 }, /obj/effect/decal/cleanable/cobweb, +/obj/structure/cabinet/fireaxe{ + pixel_y = 28 + }, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/singularitylab/engineering) "HW" = ( diff --git a/_maps/shuttles/independent/independent_lagoon.dmm b/_maps/shuttles/independent/independent_lagoon.dmm index 3615828fa9d2..1c8c2307a7e8 100644 --- a/_maps/shuttles/independent/independent_lagoon.dmm +++ b/_maps/shuttles/independent/independent_lagoon.dmm @@ -2347,7 +2347,7 @@ }, /obj/item/clothing/suit/hooded/wintercoat/engineering/atmos, /obj/item/clothing/gloves/color/black, -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ dir = 8; pixel_x = 28 }, diff --git a/_maps/shuttles/inteq/inteq_talos.dmm b/_maps/shuttles/inteq/inteq_talos.dmm index 195852c9fd5c..6b05aa78caaa 100644 --- a/_maps/shuttles/inteq/inteq_talos.dmm +++ b/_maps/shuttles/inteq/inteq_talos.dmm @@ -2090,7 +2090,7 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ dir = 1; pixel_y = -32 }, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm index 3dda0b36dd63..7d8db3ebb68b 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm @@ -13621,7 +13621,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 6 }, -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ pixel_y = 27 }, /obj/structure/closet/secure_closet/engineering_electrical, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm b/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm index fb1d6e3c1f12..e99a4cd360a8 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm @@ -5632,7 +5632,7 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 1 }, -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ pixel_y = 32 }, /obj/structure/cable{ diff --git a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm index d875a024d07f..a8f5bc22c7f4 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm @@ -472,7 +472,7 @@ /turf/open/floor/plasteel/white, /area/ship/medical) "dZ" = ( -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ pixel_y = -29 }, /obj/structure/catwalk/over/plated_catwalk/dark, diff --git a/_maps/shuttles/pirate/pirate_libertatia.dmm b/_maps/shuttles/pirate/pirate_libertatia.dmm index b1bf098571c0..46d00806edd7 100644 --- a/_maps/shuttles/pirate/pirate_libertatia.dmm +++ b/_maps/shuttles/pirate/pirate_libertatia.dmm @@ -299,7 +299,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ pixel_y = 32 }, /turf/open/floor/pod/light, diff --git a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm index 2b4cfd484e98..c466f5351f9c 100644 --- a/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm +++ b/_maps/shuttles/syndicate/syndicate_gorlex_komodo.dmm @@ -2048,7 +2048,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ dir = 8; pixel_x = 27 }, diff --git a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm index 6c690286b2ac..29f4bc28922b 100644 --- a/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm +++ b/_maps/shuttles/syndicate/syndicate_twinkleshine.dmm @@ -3500,7 +3500,7 @@ pixel_y = 4 }, /obj/item/storage/toolbox/electrical, -/obj/structure/fireaxecabinet{ +/obj/structure/cabinet/fireaxe{ pixel_y = -32; dir = 1 }, diff --git a/code/__DEFINES/dcs/signals/signals.dm b/code/__DEFINES/dcs/signals/signals.dm index f3295b737904..fd56e61f003b 100644 --- a/code/__DEFINES/dcs/signals/signals.dm +++ b/code/__DEFINES/dcs/signals/signals.dm @@ -671,6 +671,7 @@ #define COMPONENT_TWOHANDED_BLOCK_WIELD 1 #define COMSIG_TWOHANDED_UNWIELD "twohanded_unwield" //from base of datum/component/two_handed/proc/unwield(mob/living/carbon/user): (/mob/user) + // /datum/action signals #define COMSIG_ACTION_TRIGGER "action_trigger" //from base of datum/action/proc/Trigger(): (datum/action) #define COMPONENT_ACTION_BLOCK_TRIGGER 1 diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index c97fa62ffc5d..4925981b2a91 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -301,6 +301,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_NO_STORAGE_INSERT "no_storage_insert" //cannot be inserted in a storage. #define TRAIT_T_RAY_VISIBLE "t-ray-visible" // Visible on t-ray scanners if the atom/var/level == 1 #define TRAIT_NO_TELEPORT "no-teleport" //you just can't +#define TRAIT_WIELDED "wielded" //The item is currently being wielded //quirk traits #define TRAIT_ALCOHOL_TOLERANCE "alcohol_tolerance" diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index d831296dbb62..7bd6f72771cc 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -680,7 +680,7 @@ GLOBAL_LIST_INIT(WALLITEMS, typecacheof(list( /obj/machinery/newscaster, /obj/machinery/firealarm, /obj/structure/noticeboard, /obj/machinery/button, /obj/machinery/computer/security/telescreen, /obj/machinery/embedded_controller/radio/simple_vent_controller, /obj/item/storage/secure/safe, /obj/machinery/door_timer, /obj/machinery/flasher, /obj/machinery/keycard_auth, - /obj/structure/mirror, /obj/structure/fireaxecabinet, /obj/machinery/computer/security/telescreen/entertainment, + /obj/structure/mirror, /obj/structure/cabinet, /obj/machinery/computer/security/telescreen/entertainment, /obj/structure/sign/picture_frame, /obj/machinery/bounty_board ))) diff --git a/code/datums/components/twohanded.dm b/code/datums/components/twohanded.dm index 51c9268d13ab..5ba0a368c637 100644 --- a/code/datums/components/twohanded.dm +++ b/code/datums/components/twohanded.dm @@ -4,6 +4,7 @@ * When applied to an item it will make it two handed * */ + /datum/component/two_handed dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS // Only one of the component can exist on an item var/wielded = FALSE /// Are we holding the two handed item properly @@ -145,6 +146,7 @@ if(SEND_SIGNAL(parent, COMSIG_TWOHANDED_WIELD, user) & COMPONENT_TWOHANDED_BLOCK_WIELD) return // blocked wield from item wielded = TRUE + ADD_TRAIT(parent, TRAIT_WIELDED, REF(src)) RegisterSignal(user, COMSIG_MOB_SWAP_HANDS, PROC_REF(on_swap_hands)) // update item stats and name @@ -188,6 +190,7 @@ // wield update status wielded = FALSE + REMOVE_TRAIT(parent, TRAIT_WIELDED, REF(src)) UnregisterSignal(user, COMSIG_MOB_SWAP_HANDS) SEND_SIGNAL(parent, COMSIG_TWOHANDED_UNWIELD, user) @@ -303,7 +306,7 @@ sharpened_increase = min(amount, (max_amount - wielded_val)) return COMPONENT_BLOCK_SHARPEN_APPLIED -/** +/* * The offhand dummy item for two handed items * */ diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index e70edb721788..4c27a08e64a7 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1238,7 +1238,7 @@ if(!operating) if(istype(I, /obj/item/melee/axe/fire)) //being fireaxe'd var/obj/item/melee/axe/fire/axe = I - if(axe && !axe.wielded) + if(axe && !HAS_TRAIT(axe, TRAIT_WIELDED)) to_chat(user, "You need to be wielding \the [axe] to do that!") return INVOKE_ASYNC(src, (density ? PROC_REF(open) : PROC_REF(close)), 2) diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 32a62880d69c..517bc9922786 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -309,17 +309,6 @@ AddElement(/datum/element/update_icon_updates_onmob) AddComponent(/datum/component/two_handed, force_unwielded=8, force_wielded=12) -/// triggered on wield of two handed item -/obj/item/shockpaddles/proc/on_wield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = TRUE - -/// triggered on unwield of two handed item -/obj/item/shockpaddles/proc/on_unwield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = FALSE /obj/item/shockpaddles/Destroy() defib = null @@ -369,8 +358,6 @@ /obj/item/shockpaddles/Initialize() . = ..() ADD_TRAIT(src, TRAIT_NO_STORAGE_INSERT, GENERIC_ITEM_TRAIT) //stops shockpaddles from being inserted in BoH - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) if(!req_defib) return //If it doesn't need a defib, just say it exists if (!loc || !istype(loc, /obj/item/defibrillator)) //To avoid weird issues from admin spawns diff --git a/code/game/objects/items/melee/chainsaw.dm b/code/game/objects/items/melee/chainsaw.dm index 494ec65cdb5a..d179237f8559 100644 --- a/code/game/objects/items/melee/chainsaw.dm +++ b/code/game/objects/items/melee/chainsaw.dm @@ -22,30 +22,12 @@ tool_behaviour = TOOL_SAW toolspeed = 0.5 var/on = FALSE - var/wielded = FALSE // track wielded status on item - -/obj/item/chainsaw/Initialize() - . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) /obj/item/chainsaw/ComponentInitialize() . = ..() AddComponent(/datum/component/butchering, 30, 100, 0, 'sound/weapons/chainsawhit.ogg', TRUE) AddComponent(/datum/component/two_handed, require_twohands=TRUE) -/// triggered on wield of two handed item -/obj/item/chainsaw/proc/on_wield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = TRUE - -/// triggered on unwield of two handed item -/obj/item/chainsaw/proc/on_unwield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = FALSE - /obj/item/chainsaw/attack_self(mob/user) on = !on to_chat(user, "As you pull the starting cord dangling from [src], [on ? "it begins to whirr." : "the chain stops moving."]") @@ -67,7 +49,7 @@ A.UpdateButtonIcon() /obj/item/chainsaw/get_dismemberment_chance() - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) . = ..() /obj/item/chainsaw/doomslayer diff --git a/code/game/objects/items/melee/dualsaber.dm b/code/game/objects/items/melee/dualsaber.dm index 965979db215a..28242c1006a1 100644 --- a/code/game/objects/items/melee/dualsaber.dm +++ b/code/game/objects/items/melee/dualsaber.dm @@ -28,7 +28,6 @@ var/two_hand_force = 34 var/hacked = FALSE var/list/possible_colors = list("red", "blue", "green", "purple", "yellow") - var/wielded = FALSE // track wielded status on item /obj/item/dualsaber/ComponentInitialize() . = ..() @@ -43,7 +42,6 @@ if(user.dna.check_mutation(HULK)) to_chat(user, "You lack the grace to wield this!") return COMPONENT_TWOHANDED_BLOCK_WIELD - wielded = TRUE sharpness = IS_SHARP w_class = w_class_on hitsound = 'sound/weapons/blade1.ogg' @@ -56,16 +54,14 @@ /obj/item/dualsaber/proc/on_unwield(obj/item/source, mob/living/carbon/user) SIGNAL_HANDLER - wielded = FALSE sharpness = initial(sharpness) w_class = initial(w_class) hitsound = "swing_hit" STOP_PROCESSING(SSobj, src) set_light_on(FALSE) - /obj/item/dualsaber/update_icon_state() - icon_state = wielded ? "dualsaber[saber_color]" : "dualsaber" + icon_state = HAS_TRAIT(src, TRAIT_WIELDED) ? "dualsaber[saber_color]" : "dualsaber" return ..() /obj/item/dualsaber/Initialize() @@ -94,14 +90,14 @@ if(user.has_dna()) if(user.dna.check_mutation(HULK)) to_chat(user, "You grip the blade too hard and accidentally drop it!") - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) user.dropItemToGround(src, force=TRUE) return ..() - if(wielded && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(40)) + if(HAS_TRAIT(src, TRAIT_WIELDED) && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(40)) impale(user) return - if(wielded && prob(50)) + if(HAS_TRAIT(src, TRAIT_WIELDED) && prob(50)) INVOKE_ASYNC(src, PROC_REF(jedi_spin), user) /obj/item/dualsaber/proc/jedi_spin(mob/living/user) @@ -109,18 +105,18 @@ /obj/item/dualsaber/proc/impale(mob/living/user) to_chat(user, "You twirl around a bit before losing your balance and impaling yourself on [src].") - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) user.take_bodypart_damage(20,25,check_armor = TRUE) else user.adjustStaminaLoss(25) /obj/item/dualsaber/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) return ..() return 0 /obj/item/dualsaber/process() - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) if(hacked) set_light_color(pick(COLOR_SOFT_RED, LIGHT_COLOR_GREEN, LIGHT_COLOR_LIGHT_CYAN, LIGHT_COLOR_LAVENDER)) open_flame() @@ -128,12 +124,12 @@ STOP_PROCESSING(SSobj, src) /obj/item/dualsaber/IsReflect() - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) return 1 /obj/item/dualsaber/ignition_effect(atom/A, mob/user) // same as /obj/item/melee/transforming/energy, mostly - if(!wielded) + if(!HAS_TRAIT(src, TRAIT_WIELDED)) return "" var/in_mouth = "" if(iscarbon(user)) diff --git a/code/game/objects/items/melee/energyhalberd.dm b/code/game/objects/items/melee/energyhalberd.dm index 62c6f5de6020..8ae5cdd96f36 100644 --- a/code/game/objects/items/melee/energyhalberd.dm +++ b/code/game/objects/items/melee/energyhalberd.dm @@ -31,13 +31,12 @@ var/two_hand_force = 34 var/hacked = FALSE var/list/possible_colors = list("red", "blue", "green", "purple", "yellow") - var/wielded = FALSE // track wielded status on item /obj/item/energyhalberd/ComponentInitialize() . = ..() AddComponent(/datum/component/two_handed, force_unwielded=force, force_wielded=two_hand_force, wieldsound='sound/weapons/saberon.ogg', unwieldsound='sound/weapons/saberoff.ogg') -/// Triggered on wield of two handed item + /// Specific hulk checks due to reflection chance for balance issues and switches hitsounds. /obj/item/energyhalberd/proc/on_halberdwield(obj/item/source, mob/living/carbon/user) SIGNAL_HANDLER @@ -46,7 +45,6 @@ if(user.dna.check_mutation(HULK)) to_chat(user, "You lack the grace to wield this!") return COMPONENT_TWOHANDED_BLOCK_WIELD - wielded = TRUE sharpness = IS_SHARP w_class = w_class_on hitsound = 'sound/weapons/blade1.ogg' @@ -54,12 +52,9 @@ set_light_on(TRUE) -/// Triggered on unwield of two handed item /// switch hitsounds /obj/item/energyhalberd/proc/on_halberdunwield(obj/item/source, mob/living/carbon/user) SIGNAL_HANDLER - - wielded = FALSE sharpness = initial(sharpness) w_class = initial(w_class) hitsound = "swing_hit" @@ -68,7 +63,7 @@ /obj/item/energyhalberd/update_icon_state() - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) icon_state = "halberd[halberd_color]" return ..() else @@ -101,28 +96,28 @@ if(user.has_dna()) if(user.dna.check_mutation(HULK)) to_chat(user, "You grip the blade too hard and accidentally drop it!") - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) user.dropItemToGround(src, force=TRUE) return ..() - if(wielded && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(40)) + if(HAS_TRAIT(src, TRAIT_WIELDED) && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(40)) impale(user) return /obj/item/energyhalberd/proc/impale(mob/living/user) to_chat(user, "You swing around a bit before losing your balance and impaling yourself on [src].") - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) user.take_bodypart_damage(20,25,check_armor = TRUE) else user.adjustStaminaLoss(25) /obj/item/energyhalberd/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) return ..() return 0 /obj/item/energyhalberd/process() - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) if(hacked) set_light_color(pick(COLOR_SOFT_RED, LIGHT_COLOR_GREEN, LIGHT_COLOR_LIGHT_CYAN, LIGHT_COLOR_LAVENDER)) open_flame() @@ -130,12 +125,12 @@ STOP_PROCESSING(SSobj, src) /obj/item/energyhalberd/IsReflect() - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) return 1 /obj/item/energyhalberd/ignition_effect(atom/A, mob/user) // same as /obj/item/melee/transforming/energy, mostly - if(!wielded) + if(!HAS_TRAIT(src, TRAIT_WIELDED)) return "" var/in_mouth = "" if(iscarbon(user)) diff --git a/code/game/objects/items/melee/fireaxe.dm b/code/game/objects/items/melee/fireaxe.dm index bfbed0fe361b..b3e04ac1bc3c 100644 --- a/code/game/objects/items/melee/fireaxe.dm +++ b/code/game/objects/items/melee/fireaxe.dm @@ -13,31 +13,13 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30) resistance_flags = FIRE_PROOF species_exception = list(/datum/species/kepori) - var/wielded = FALSE // track wielded status on item - -/obj/item/melee/axe/Initialize() - . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) /obj/item/melee/axe/ComponentInitialize() . = ..() AddComponent(/datum/component/butchering, 100, 80, 0 , hitsound) //axes are not known for being precision butchering tools AddComponent(/datum/component/two_handed, force_unwielded=5, force_wielded=24, icon_wielded="[base_icon_state]1") -/// triggered on wield of two handed item -/obj/item/melee/axe/proc/on_wield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = TRUE - -/// triggered on unwield of two handed item -/obj/item/melee/axe/proc/on_unwield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = FALSE - -/obj/item/melee/axe/update_icon_state() +/obj/item/fireaxe/update_icon_state() icon_state = "[base_icon_state]0" return ..() @@ -45,7 +27,7 @@ . = ..() if(!proximity) return - if(wielded) //destroys windows and grilles in one hit + if(HAS_TRAIT(src, TRAIT_WIELDED)) //destroys windows and grilles in one hit if(istype(A, /obj/structure/window) || istype(A, /obj/structure/grille)) var/obj/structure/W = A W.obj_destruction("axe") diff --git a/code/game/objects/items/melee/spear.dm b/code/game/objects/items/melee/spear.dm index 42717117fd8e..218638882bfb 100644 --- a/code/game/objects/items/melee/spear.dm +++ b/code/game/objects/items/melee/spear.dm @@ -66,30 +66,15 @@ icon_prefix = "spearbomb" var/obj/item/grenade/explosive = null var/war_cry = "AAAAARGH!!!" - var/wielded = FALSE // track wielded status on item /obj/item/melee/spear/explosive/Initialize(mapload) . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) set_explosive(new /obj/item/grenade/iedcasing/spawned()) //For admin-spawned explosive lances /obj/item/melee/spear/explosive/ComponentInitialize() . = ..() AddComponent(/datum/component/two_handed, force_unwielded=10, force_wielded=18, icon_wielded="[icon_prefix]1") -/// triggered on wield of two handed item -/obj/item/melee/spear/explosive/proc/on_wield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = TRUE - -/// triggered on unwield of two handed item -/obj/item/melee/spear/explosive/proc/on_unwield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = FALSE - /obj/item/melee/spear/explosive/proc/set_explosive(obj/item/grenade/G) if(explosive) QDEL_NULL(explosive) @@ -130,7 +115,7 @@ . = ..() if(!proximity) return - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) user.say("[war_cry]", forced="spear warcry") explosive.forceMove(AM) explosive.prime() diff --git a/code/game/objects/items/melee/sword.dm b/code/game/objects/items/melee/sword.dm index 21bde05c0dd3..ff384770a318 100644 --- a/code/game/objects/items/melee/sword.dm +++ b/code/game/objects/items/melee/sword.dm @@ -332,38 +332,20 @@ attack_verb = list("cut", "sliced", "diced") slot_flags = ITEM_SLOT_BACK hitsound = 'sound/weapons/bladeslice.ogg' - var/wielded = FALSE // track wielded status on item - -/obj/item/melee/sword/vibro/Initialize() - . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) /obj/item/melee/sword/vibro/ComponentInitialize() . = ..() AddComponent(/datum/component/butchering, 20, 105) AddComponent(/datum/component/two_handed, force_multiplier=2, icon_wielded="[base_icon_state]1") -/// triggered on wield of two handed item -/obj/item/melee/sword/vibro/proc/on_wield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = TRUE - -/// triggered on unwield of two handed item -/obj/item/melee/sword/vibro/proc/on_unwield(obj/item/source, mob/user) - SIGNAL_HANDLER - - wielded = FALSE - /obj/item/melee/sword/vibro/update_icon_state() icon_state = "[base_icon_state]0" return ..() /obj/item/melee/sword/vibro/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) final_block_chance *= 2 - if(wielded || attack_type != PROJECTILE_ATTACK) + if(HAS_TRAIT(src, TRAIT_WIELDED) || attack_type != PROJECTILE_ATTACK) if(prob(final_block_chance)) if(attack_type == PROJECTILE_ATTACK) owner.visible_message("[owner] deflects [attack_text] with [src]!") diff --git a/code/game/objects/items/storage/secure.dm b/code/game/objects/items/storage/secure.dm index 422ff52b15b0..f918a3b883fb 100644 --- a/code/game/objects/items/storage/secure.dm +++ b/code/game/objects/items/storage/secure.dm @@ -173,7 +173,7 @@ . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) STR.set_holdable(null, list(/obj/item/storage/secure/briefcase)) - STR.max_w_class = 8 //?? + STR.max_w_class = 8 /obj/item/storage/secure/safe/PopulateContents() new /obj/item/paper(src) diff --git a/code/game/objects/structures/cabinet.dm b/code/game/objects/structures/cabinet.dm new file mode 100644 index 000000000000..bc89cf1d0bbe --- /dev/null +++ b/code/game/objects/structures/cabinet.dm @@ -0,0 +1,214 @@ +/obj/structure/cabinet + name = "\improper cabinet" + desc = "There is a small label that reads \"For Emergency use only\". Yeah right." + icon = 'icons/obj/wallmounts.dmi' + icon_state = "fireaxe" + anchored = TRUE + density = FALSE + armor = list("melee" = 50, "bullet" = 20, "laser" = 0, "energy" = 100, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 50) + max_integrity = 150 + integrity_failure = 0.33 + req_one_access_txt = "0" + var/locked = TRUE + var/open = FALSE + var/start_empty = FALSE + var/obj/item/stored + var/allowed_type + var/stored_sprite = "axe" + +/obj/structure/cabinet/Initialize() + . = ..() + if(allowed_type && !start_empty) + stored = new allowed_type(src) + update_appearance() + +/obj/structure/cabinet/Destroy() + if(istype(stored)) + qdel(stored) + stored = null + return ..() + +/obj/structure/cabinet/examine(mob/user) + . = ..() + if(!open) + . += span_notice("Alt-click to [locked ? "unlock" : "lock"] [src]") + if(stored) + . += span_notice("[stored] is sitting inside, ripe for the taking.") + +/obj/structure/cabinet/attackby(obj/item/I, mob/user, params) + if(iscyborg(user) || I.tool_behaviour == TOOL_MULTITOOL) + hack_lock(user) + else if(I.tool_behaviour == TOOL_WELDER && user.a_intent == INTENT_HELP && !broken) + if(obj_integrity < max_integrity) + if(!I.tool_start_check(user, amount=2)) + return + to_chat(user, span_notice("You begin repairing [src]")) + if(I.use_tool(src, user, 40, volume=50, amount=2)) + obj_integrity = max_integrity + update_appearance() + to_chat(user, span_notice("You repair [src]")) + else + to_chat(user, span_warning("[src] is already in good condition!")) + return + else if(istype(I, /obj/item/stack/sheet/glass) && broken) + var/obj/item/stack/sheet/glass/G = I + if(G.get_amount() < 2) + to_chat(user, span_warning("You need two [G.singular_name] to fix [src]!")) + return + to_chat(user, span_notice("You start fixing [src]...")) + if(do_after(user, 20, target = src) && G.use(2)) + broken = 0 + obj_integrity = max_integrity + update_appearance() + else if(open || broken) + if(istype(I, allowed_type) && !stored) + var/obj/item/storee = I + SIGNAL_HANDLER + if(storee && HAS_TRAIT(storee, TRAIT_WIELDED)) + to_chat(user, span_warning("Unwield the [storee.name] first.")) + return + if(!user.transferItemToLoc(I, src)) + return + stored = storee + to_chat(user, span_notice("You place the [storee.name] back in the [name].")) + update_appearance() + return + else if(!broken) + toggle_open() + else + return ..() + +/obj/structure/cabinet/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) + switch(damage_type) + if(BRUTE) + if(broken) + playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 90, TRUE) + else + playsound(loc, 'sound/effects/glasshit.ogg', 90, TRUE) + if(BURN) + playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) + +/obj/structure/cabinet/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) + if(open) + return + . = ..() + if(.) + update_appearance() + +/obj/structure/cabinet/obj_break(damage_flag) + if(!broken && !(flags_1 & NODECONSTRUCT_1)) + update_appearance() + broken = TRUE + playsound(src, 'sound/effects/glassbr3.ogg', 100, TRUE) + new /obj/item/shard(loc) + new /obj/item/shard(loc) + +/obj/structure/cabinet/deconstruct(disassembled = TRUE) + if(!(flags_1 & NODECONSTRUCT_1)) + if(stored && loc) + stored.forceMove(loc) + stored = null + new /obj/item/stack/sheet/metal(loc, 2) + qdel(src) + +/obj/structure/cabinet/attack_hand(mob/user) + . = ..() + if(.) + return + if(open || broken) + if(stored) + to_chat(user, span_notice("You take [stored] from [name].")) + user.put_in_hands(stored) + stored = null + src.add_fingerprint(user) + update_appearance() + return + if(locked) + to_chat(user, span_warning("[name] won't budge!")) + return + else + open = !open + update_appearance() + return + +/obj/structure/cabinet/attack_paw(mob/living/user) + return attack_hand(user) + +/obj/structure/cabinet/attack_ai(mob/user) + toggle_lock(user) + return + +/obj/structure/cabinet/attack_tk(mob/user) + if(locked) + to_chat(user, span_warning("[name] won't budge!")) + return + else + open = !open + update_appearance() + return + +/obj/structure/cabinet/update_overlays() + . = ..() + if(stored) + . += "[stored_sprite]" + if(open) + . += "glass_raised" + return + var/hp_percent = obj_integrity/max_integrity * 100 + if(broken) + . += "glass4" + else + switch(hp_percent) + if(-INFINITY to 40) + . += "glass3" + if(40 to 60) + . += "glass2" + if(60 to 80) + . += "glass1" + if(80 to INFINITY) + . += "glass" + + . += locked ? "locked" : "unlocked" + +/obj/structure/cabinet/proc/toggle_lock(mob/user) + if(!broken) + if(allowed(user)) + if(iscarbon(user)) + add_fingerprint(user) + locked = !locked + user.visible_message( + span_notice("[user] [locked ? "locks" : "unlocks"][src]."), + span_notice("You [locked ? "lock" : "unlock"] [src].")) + update_appearance() + else + to_chat(user, span_warning("Access denied!")) + else if(broken) + to_chat(user, span_warning("\The [src] is broken!")) + +/obj/structure/cabinet/AltClick(mob/user) + ..() + if(!user.canUseTopic(src, BE_CLOSE) || !isturf(loc) || open) + return + else + toggle_lock(user) + +/obj/structure/cabinet/proc/hack_lock(mob/user) + to_chat(user, span_notice("Resetting circuitry...")) + playsound(src, 'sound/machines/locktoggle.ogg', 50, TRUE) + if(do_after(user, 20, target = src)) + to_chat(user, span_notice("You [locked ? "disable" : "re-enable"] the locking modules.")) + locked = !locked + update_appearance() + +/obj/structure/cabinet/verb/toggle_open() + set name = "Open/Close" + set category = "Object" + set src in oview(1) + + if(locked) + visible_message(span_warning("[name] won't budge!")) + return + else + open = !open + update_appearance() + return diff --git a/code/game/objects/structures/cabinet_types.dm b/code/game/objects/structures/cabinet_types.dm new file mode 100644 index 000000000000..347e1954ded4 --- /dev/null +++ b/code/game/objects/structures/cabinet_types.dm @@ -0,0 +1,10 @@ +/obj/structure/cabinet/fireaxe + name = "\improper fire axe cabinet" + desc = "There is a small label that reads \"For Emergency use only\" along with details for safe use of the axe. As if." + icon = 'icons/obj/wallmounts.dmi' + icon_state = "fireaxe" + anchored = TRUE + density = FALSE + stored_sprite = "axe" + allowed_type = /obj/item/melee/axe/fire + req_one_access_txt = "24" diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm deleted file mode 100644 index a164248a2bdd..000000000000 --- a/code/game/objects/structures/fireaxe.dm +++ /dev/null @@ -1,179 +0,0 @@ -/obj/structure/fireaxecabinet - name = "fire axe cabinet" - desc = "There is a small label that reads \"For Emergency use only\" along with details for safe use of the axe. As if." - icon = 'icons/obj/wallmounts.dmi' - icon_state = "fireaxe" - anchored = TRUE - density = FALSE - armor = list("melee" = 50, "bullet" = 20, "laser" = 0, "energy" = 100, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 90, "acid" = 50) - max_integrity = 150 - integrity_failure = 0.33 - var/locked = TRUE - var/open = FALSE - var/obj/item/melee/axe/fire/fireaxe - -/obj/structure/fireaxecabinet/Initialize() - . = ..() - fireaxe = new - update_appearance() - -/obj/structure/fireaxecabinet/Destroy() - if(fireaxe) - QDEL_NULL(fireaxe) - return ..() - -/obj/structure/fireaxecabinet/attackby(obj/item/I, mob/user, params) - if(iscyborg(user) || I.tool_behaviour == TOOL_MULTITOOL) - toggle_lock(user) - else if(I.tool_behaviour == TOOL_WELDER && user.a_intent == INTENT_HELP && !broken) - if(obj_integrity < max_integrity) - if(!I.tool_start_check(user, amount=2)) - return - - to_chat(user, "You begin repairing [src].") - if(I.use_tool(src, user, 40, volume=50, amount=2)) - obj_integrity = max_integrity - update_appearance() - to_chat(user, "You repair [src].") - else - to_chat(user, "[src] is already in good condition!") - return - else if(istype(I, /obj/item/stack/sheet/glass) && broken) - var/obj/item/stack/sheet/glass/G = I - if(G.get_amount() < 2) - to_chat(user, "You need two glass sheets to fix [src]!") - return - to_chat(user, "You start fixing [src]...") - if(do_after(user, 20, target = src) && G.use(2)) - broken = 0 - obj_integrity = max_integrity - update_appearance() - else if(open || broken) - if(istype(I, /obj/item/melee/axe/fire) && !fireaxe) - var/obj/item/melee/axe/fire/F = I - if(F && F.wielded) - to_chat(user, "Unwield the [F.name] first.") - return - if(!user.transferItemToLoc(F, src)) - return - fireaxe = F - to_chat(user, "You place the [F.name] back in the [name].") - update_appearance() - return - else if(!broken) - toggle_open() - else - return ..() - -/obj/structure/fireaxecabinet/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) - switch(damage_type) - if(BRUTE) - if(broken) - playsound(loc, 'sound/effects/hit_on_shattered_glass.ogg', 90, TRUE) - else - playsound(loc, 'sound/effects/glasshit.ogg', 90, TRUE) - if(BURN) - playsound(src.loc, 'sound/items/welder.ogg', 100, TRUE) - -/obj/structure/fireaxecabinet/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) - if(open) - return - . = ..() - if(.) - update_appearance() - -/obj/structure/fireaxecabinet/obj_break(damage_flag) - if(!broken && !(flags_1 & NODECONSTRUCT_1)) - update_appearance() - broken = TRUE - playsound(src, 'sound/effects/glassbr3.ogg', 100, TRUE) - new /obj/item/shard(loc) - new /obj/item/shard(loc) - -/obj/structure/fireaxecabinet/deconstruct(disassembled = TRUE) - if(!(flags_1 & NODECONSTRUCT_1)) - if(fireaxe && loc) - fireaxe.forceMove(loc) - fireaxe = null - new /obj/item/stack/sheet/metal(loc, 2) - qdel(src) - -/obj/structure/fireaxecabinet/attack_hand(mob/user) - . = ..() - if(.) - return - if(open || broken) - if(fireaxe) - user.put_in_hands(fireaxe) - fireaxe = null - to_chat(user, "You take the fire axe from the [name].") - src.add_fingerprint(user) - update_appearance() - return - if(locked) - to_chat(user, "The [name] won't budge!") - return - else - open = !open - update_appearance() - return - -/obj/structure/fireaxecabinet/attack_paw(mob/living/user) - return attack_hand(user) - -/obj/structure/fireaxecabinet/attack_ai(mob/user) - toggle_lock(user) - return - -/obj/structure/fireaxecabinet/attack_tk(mob/user) - if(locked) - to_chat(user, "The [name] won't budge!") - return - else - open = !open - update_appearance() - return - -/obj/structure/fireaxecabinet/update_overlays() - . = ..() - if(fireaxe) - . += "axe" - if(open) - . += "glass_raised" - return - var/hp_percent = obj_integrity/max_integrity * 100 - if(broken) - . += "glass4" - else - switch(hp_percent) - if(-INFINITY to 40) - . += "glass3" - if(40 to 60) - . += "glass2" - if(60 to 80) - . += "glass1" - if(80 to INFINITY) - . += "glass" - - . += locked ? "locked" : "unlocked" - -/obj/structure/fireaxecabinet/proc/toggle_lock(mob/user) - to_chat(user, "Resetting circuitry...") - playsound(src, 'sound/machines/locktoggle.ogg', 50, TRUE) - if(do_after(user, 20, target = src)) - to_chat(user, "You [locked ? "disable" : "re-enable"] the locking modules.") - locked = !locked - update_appearance() - -/obj/structure/fireaxecabinet/verb/toggle_open() - set name = "Open/Close" - set category = "Object" - set src in oview(1) - - if(locked) - to_chat(usr, "The [name] won't budge!") - return - else - open = !open - update_appearance() - return diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index 3e0bed238bec..05e81421ac4f 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -8,7 +8,7 @@ name = "proto-magnetic crusher" desc = "A multipurpose disembarkation and self-defense tool designed by EXOCOM using an incomplete Nanotrasen prototype. \ Found in the grime-stained hands of wannabee explorers across the frontier, it cuts rock and hews flora using magnetic osscilation and a heavy cleaving edge." - force = 0 //You can't hit stuff unless wielded + force = 0 //You can't hit stuff unless it's wielded w_class = WEIGHT_CLASS_BULKY slot_flags = ITEM_SLOT_BACK throwforce = 5 @@ -28,33 +28,19 @@ var/charge_time = 15 var/detonation_damage = 20 var/backstab_bonus = 10 - var/wielded = FALSE // track wielded status on item - -/obj/item/kinetic_crusher/Initialize() - . = ..() - RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) - RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) /obj/item/kinetic_crusher/ComponentInitialize() . = ..() AddComponent(/datum/component/butchering, 60, 110) //technically it's huge and bulky, but this provides an incentive to use it AddComponent(/datum/component/two_handed, force_unwielded=0, force_wielded=15) -/// triggered on wield of two handed item -/obj/item/kinetic_crusher/proc/on_wield(obj/item/source, mob/user) - wielded = TRUE - -/// triggered on unwield of two handed item -/obj/item/kinetic_crusher/proc/on_unwield(obj/item/source, mob/user) - wielded = FALSE - /obj/item/kinetic_crusher/examine(mob/living/user) . = ..() . += "Induce magnetism in an enemy by striking them with a magnetospheric wave, then hit them in melee to force a waveform collapse for [force + detonation_damage] damage." . += "Does [force + detonation_damage + backstab_bonus] damage if the target is backstabbed, instead of [force + detonation_damage]." /obj/item/kinetic_crusher/attack(mob/living/target, mob/living/carbon/user) - if(!wielded) + if(!HAS_TRAIT(src, TRAIT_WIELDED)) to_chat(user, "[src] is too heavy to use with one hand! You fumble and drop everything.") user.drop_all_held_items() return @@ -66,7 +52,7 @@ /obj/item/kinetic_crusher/afterattack(atom/target, mob/living/user, proximity_flag, clickparams) . = ..() - if(!wielded) + if(!HAS_TRAIT(src, TRAIT_WIELDED)) return if(!proximity_flag && charged)//Mark a target, or mine a tile. var/turf/proj_turf = user.loc @@ -118,7 +104,7 @@ /obj/item/kinetic_crusher/update_icon_state() - item_state = "crusher[wielded]" // this is not icon_state and not supported by 2hcomponent + item_state = "crusher[HAS_TRAIT(src, TRAIT_WIELDED)]" // this is not icon_state and not supported by 2hcomponent return ..() /obj/item/kinetic_crusher/update_overlays() @@ -182,7 +168,7 @@ user.changeNext_move(CLICK_CD_MELEE * 2.0)//...slow swinga. /obj/item/kinetic_crusher/old/update_icon_state() - item_state = "crusherold[wielded]" // still not supported by 2hcomponent + item_state = "crusherold[HAS_TRAIT(src, TRAIT_WIELDED)]" // still not supported by 2hcomponent return ..() //100% original syndicate oc, plz do not steal. More effective against human targets then the typical crusher, with a bit of block chance. @@ -195,7 +181,7 @@ name = "magnetic cleaver" desc = "Designed by Syndicate Research and Development for their resource-gathering operations on hostile worlds. Syndicate Legal Ops would like to stress that you've never seen anything like this before. Ever." armour_penetration = 69//nice cut - force = 0 //You can't hit stuff unless wielded + force = 0 //You can't hit stuff unless HAS_TRAIT(src, TRAIT_WIELDED) w_class = WEIGHT_CLASS_BULKY slot_flags = ITEM_SLOT_BACK throwforce = 5 @@ -216,35 +202,40 @@ charge_time = 15 detonation_damage = 35 backstab_bonus = 15 - wielded = FALSE // track wielded status on item actions_types = list() + +/obj/item/kinetic_crusher/syndie_crusher/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) + /obj/item/kinetic_crusher/syndie_crusher/ComponentInitialize() . = ..() AddComponent(/datum/component/butchering, 60, 150) AddComponent(/datum/component/two_handed, force_unwielded=0, force_wielded=10) /// triggered on wield of two handed item -/obj/item/kinetic_crusher/syndie_crusher/on_wield(obj/item/source, mob/user) - . = ..() - wielded = TRUE +/obj/item/kinetic_crusher/syndie_crusher/proc/on_wield(obj/item/source, mob/user) + SIGNAL_HANDLER + icon_state = "crushersyndie1" playsound(user, 'sound/weapons/saberon.ogg', 35, TRUE) - set_light_on(wielded) + set_light_on(HAS_TRAIT(src, TRAIT_WIELDED)) /// triggered on unwield of two handed item -/obj/item/kinetic_crusher/syndie_crusher/on_unwield(obj/item/source, mob/user) - . = ..() - wielded = FALSE +/obj/item/kinetic_crusher/syndie_crusher/proc/on_unwield(obj/item/source, mob/user) + SIGNAL_HANDLER + icon_state = "crushersyndie" playsound(user, 'sound/weapons/saberoff.ogg', 35, TRUE) - set_light_on(wielded) + set_light_on(HAS_TRAIT(src, TRAIT_WIELDED)) /obj/item/kinetic_crusher/syndie_crusher/update_icon_state() - item_state = "crushersyndie[wielded]" // this is not icon_state and not supported by 2hcomponent + item_state = "crushersyndie[HAS_TRAIT(src, TRAIT_WIELDED)]" // this is not icon_state and not supported by 2hcomponent return ..() /obj/item/kinetic_crusher/syndie_crusher/update_overlays() . = ..() - if(wielded) + if(HAS_TRAIT(src, TRAIT_WIELDED)) . += "[icon_state]_lit" diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 94cc4f6f1e38..7fe0a5b07c3a 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -364,9 +364,6 @@ wielded_fully = TRUE return TRUE -/obj/item/gun/proc/is_wielded() - return wielded - /// triggered on unwield of two handed item /obj/item/gun/proc/on_unwield(obj/item/source, mob/user) wielded = FALSE @@ -374,6 +371,9 @@ zoom(user, forced_zoom = FALSE) user.remove_movespeed_modifier(/datum/movespeed_modifier/gun) +/obj/item/gun/proc/is_wielded() + return wielded + /obj/item/gun/Destroy() if(chambered) //Not all guns are chambered (EMP'ed energy guns etc) QDEL_NULL(chambered) diff --git a/shiptest.dme b/shiptest.dme index 0bff452a9161..53b8c061b5fa 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -1387,6 +1387,8 @@ #include "code\game\objects\structures\artstuff.dm" #include "code\game\objects\structures\barsigns.dm" #include "code\game\objects\structures\bedsheet_bin.dm" +#include "code\game\objects\structures\cabinet.dm" +#include "code\game\objects\structures\cabinet_types.dm" #include "code\game\objects\structures\catwalk.dm" #include "code\game\objects\structures\crateshelf.dm" #include "code\game\objects\structures\curtains.dm" @@ -1400,7 +1402,6 @@ #include "code\game\objects\structures\extinguisher.dm" #include "code\game\objects\structures\false_walls.dm" #include "code\game\objects\structures\fence.dm" -#include "code\game\objects\structures\fireaxe.dm" #include "code\game\objects\structures\fireplace.dm" #include "code\game\objects\structures\flora.dm" #include "code\game\objects\structures\fluff.dm" From d71acf3f8e02f93b260c2f47b0435215378d5ac2 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 30 Sep 2024 11:55:56 -0500 Subject: [PATCH 059/167] Automatic changelog generation for PR #3378 [ci skip] --- html/changelogs/AutoChangeLog-pr-3378.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3378.yml diff --git a/html/changelogs/AutoChangeLog-pr-3378.yml b/html/changelogs/AutoChangeLog-pr-3378.yml new file mode 100644 index 000000000000..7ed5af71b205 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3378.yml @@ -0,0 +1,5 @@ +author: Erika Fox +changes: + - {code_imp: 'Fireaxe cabinets have been repathed, and now function as a more general + cabinet object. please report any inconsistencies with behavior'} +delete-after: true From 53714787d3eebbd41f903bcc37c5817cee334dc6 Mon Sep 17 00:00:00 2001 From: Theos Date: Mon, 30 Sep 2024 12:19:01 -0400 Subject: [PATCH 060/167] Should fix hallucinations being permanent (#3445) ## About The Pull Request Fixes #3435 Caps hallucination natural decay at 0 so it can't reach negative numbers off dumb stuff and never actually stop doing stuff ## Changelog :cl: fix: hallucinations can no longer be permanent unless treated /:cl: Signed-off-by: Theos --- code/modules/flufftext/Hallucination.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 69c15b1e3494..8f8e532577c0 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -29,7 +29,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( if(!hallucination) return - hallucination-- + hallucination = max(hallucination - 1, 0) if(world.time < next_hallucination) return From 7530971650a1339771c5cafb0da773bc1e427ecb Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 30 Sep 2024 12:09:16 -0500 Subject: [PATCH 061/167] Automatic changelog generation for PR #3445 [ci skip] --- html/changelogs/AutoChangeLog-pr-3445.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3445.yml diff --git a/html/changelogs/AutoChangeLog-pr-3445.yml b/html/changelogs/AutoChangeLog-pr-3445.yml new file mode 100644 index 000000000000..3199030bea7f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3445.yml @@ -0,0 +1,4 @@ +author: SomeguyManperson +changes: + - {bugfix: hallucinations can no longer be permanent unless treated} +delete-after: true From 96b8045defa3771caa4bb6efe3cc5bec75b295a9 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 1 Oct 2024 01:08:21 +0000 Subject: [PATCH 062/167] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3366.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3378.yml | 5 ----- html/changelogs/AutoChangeLog-pr-3445.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3455.yml | 5 ----- html/changelogs/archive/2024-10.yml | 10 ++++++++++ 5 files changed, 10 insertions(+), 18 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3366.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3378.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3445.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3455.yml create mode 100644 html/changelogs/archive/2024-10.yml diff --git a/html/changelogs/AutoChangeLog-pr-3366.yml b/html/changelogs/AutoChangeLog-pr-3366.yml deleted file mode 100644 index f1b353bf3387..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3366.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Erika Fox -changes: - - {rscadd: Anti-Radiation Foam is now available at the outpost} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3378.yml b/html/changelogs/AutoChangeLog-pr-3378.yml deleted file mode 100644 index 7ed5af71b205..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3378.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Erika Fox -changes: - - {code_imp: 'Fireaxe cabinets have been repathed, and now function as a more general - cabinet object. please report any inconsistencies with behavior'} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3445.yml b/html/changelogs/AutoChangeLog-pr-3445.yml deleted file mode 100644 index 3199030bea7f..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3445.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: SomeguyManperson -changes: - - {bugfix: hallucinations can no longer be permanent unless treated} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3455.yml b/html/changelogs/AutoChangeLog-pr-3455.yml deleted file mode 100644 index 0351ddf280b1..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3455.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Sadhorizon -changes: - - {tweak: You can now put knives in secbelts and the subtypes of secbelts.} - - {bugfix: You can now fit all knives in mining webbings.} -delete-after: true diff --git a/html/changelogs/archive/2024-10.yml b/html/changelogs/archive/2024-10.yml new file mode 100644 index 000000000000..546d4d7ab402 --- /dev/null +++ b/html/changelogs/archive/2024-10.yml @@ -0,0 +1,10 @@ +2024-10-01: + Erika Fox: + - rscadd: Anti-Radiation Foam is now available at the outpost + - code_imp: Fireaxe cabinets have been repathed, and now function as a more general + cabinet object. please report any inconsistencies with behavior + Sadhorizon: + - tweak: You can now put knives in secbelts and the subtypes of secbelts. + - bugfix: You can now fit all knives in mining webbings. + SomeguyManperson: + - bugfix: hallucinations can no longer be permanent unless treated From 180c9b216ab142495afd77f7e9b17390602fd33b Mon Sep 17 00:00:00 2001 From: tmtmtl30 <53132901+tmtmtl30@users.noreply.github.com> Date: Tue, 1 Oct 2024 01:10:36 -0700 Subject: [PATCH 063/167] a bedtime update for beddy-bye boys (Bunk beds!) (#3345) ## About The Pull Request Adds bunk beds, in the form of two objects, a "bottom bunk" structure and a "top bunk" structure, each with appropriate layering and sprite-shifting, including for bedsheets. Sprites are courtesy of @thgvr . They can be crafted with metal or placed by mappers as a single object using a spawner effect. Additionally, beds, double beds, and bunk beds have had their alternate-direction behavior fixed. These beds have a flipped set of sprites on the NORTH and EAST directions, but neither bedsheets nor buckled players correctly respected the alternate sprites. This has been fixed. oh also i fixed a random rendering error with tank storage units that imaginos notified me of. they weren't showing the final 5-tank overlay state correctly. they do now ![image](https://github.com/user-attachments/assets/bbebeb5e-27db-4703-a7db-c639b8ec1502) ## Why It's Good For The Game 1. bunkbeds give mappers another tool to make ships and ruins feel appropriately-decorated 2. mappers being effectively locked to a single bed rotation is dumb currently, there's one bug: when crafting a bunk bed, you need to make the bottom one first. if you make the top one first, you won't be able to place the bottom bunk there without just deconstructing the top bunk. i know exactly what causes this, it's mostly just annoying and i've got a few ideas for (slightly hacky) fixes. but i'm also lazy ## Changelog :cl: tmtmtl30, Thgvr add: Added bunkbeds, which can now be crafted with metal or placed by mappers. fix: Beds facing alternate directions now correctly support people buckling to them and bedsheets being placed on top of them. /:cl: --- code/datums/elements/bed_tucking.dm | 23 +++- code/game/objects/items/plushes.dm | 2 +- .../stacks/sheets/recipes/recipes_metal.dm | 8 +- code/game/objects/items/stacks/stack.dm | 2 +- .../structures/beds_chairs/alien_nest.dm | 1 + .../objects/structures/beds_chairs/bed.dm | 130 +++++++++++++++++- code/game/objects/structures/bedsheet_bin.dm | 2 +- .../game/objects/structures/tank_dispenser.dm | 6 +- .../abductor/equipment/abduction_gear.dm | 1 + .../nukeop/equipment/nuclearbomb.dm | 2 +- code/modules/mob/living/carbon/carbon.dm | 2 +- icons/effects/effects.dmi | Bin 901728 -> 903017 bytes icons/obj/objects.dmi | Bin 102051 -> 103649 bytes 13 files changed, 163 insertions(+), 16 deletions(-) diff --git a/code/datums/elements/bed_tucking.dm b/code/datums/elements/bed_tucking.dm index c094e5a5b108..e505e6efdb5a 100644 --- a/code/datums/elements/bed_tucking.dm +++ b/code/datums/elements/bed_tucking.dm @@ -8,8 +8,13 @@ var/y_offset = 0 /// our rotation degree - how much the item turns when in bed (+degrees turns it more parallel) var/rotation_degree = 0 + /// Whether the item changes its dir to match the desired lying direction of the bed that it's tucked into. + var/change_dir = FALSE + /// Whether the item changes its layer to the layer suggested by the bed for tucked-in item. + /// When the item is untucked, it is returned to its initial() layer. + var/change_layer = FALSE -/datum/element/bed_tuckable/Attach(obj/target, x = 0, y = 0, rotation = 0) +/datum/element/bed_tuckable/Attach(obj/target, x = 0, y = 0, rotation = 0, _change_dir = FALSE, _change_layer = FALSE) . = ..() if(!isitem(target)) return ELEMENT_INCOMPATIBLE @@ -17,6 +22,8 @@ x_offset = x y_offset = y rotation_degree = rotation + change_dir = _change_dir + change_layer = _change_layer RegisterSignal(target, COMSIG_ITEM_ATTACK_OBJ, PROC_REF(tuck_into_bed)) /datum/element/bed_tuckable/Detach(obj/target) @@ -40,11 +47,20 @@ return to_chat(tucker, "You lay [tucked] out on [target_bed].") - tucked.pixel_x = x_offset - tucked.pixel_y = y_offset + tucked.pixel_x = x_offset + target_bed.tucked_x_shift + tucked.pixel_y = y_offset + target_bed.tucked_y_shift if(rotation_degree) tucked.transform = turn(tucked.transform, rotation_degree) RegisterSignal(tucked, COMSIG_ITEM_PICKUP, PROC_REF(untuck)) + // the buckle_lying value on the bed controls the direction that mobs lay down in when they're buckled into bed. + // some items (bedsheets) have different states to reflect those directions. + if(change_dir) + if(target_bed.buckle_lying == 270) + tucked.setDir(NORTH) + else + tucked.setDir(SOUTH) + if(target_bed.suggested_tuck_layer != null) + tucked.layer = target_bed.suggested_tuck_layer return COMPONENT_NO_AFTERATTACK @@ -57,4 +73,5 @@ SIGNAL_HANDLER tucked.transform = turn(tucked.transform, -rotation_degree) + tucked.layer = initial(tucked.layer) UnregisterSignal(tucked, COMSIG_ITEM_PICKUP) diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index 63e4ffc5e6c3..4b16ee60942d 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -38,7 +38,7 @@ . = ..() if(should_squeak) AddComponent(/datum/component/squeak, squeak_override) - AddElement(/datum/element/bed_tuckable, 6, -5, 90) + AddElement(/datum/element/bed_tuckable, 6, -5, 90, FALSE, FALSE) //have we decided if Pinocchio goes in the blue or pink aisle yet? if(gender == NEUTER) diff --git a/code/game/objects/items/stacks/sheets/recipes/recipes_metal.dm b/code/game/objects/items/stacks/sheets/recipes/recipes_metal.dm index 6860f34be5c7..9819a941e5f8 100644 --- a/code/game/objects/items/stacks/sheets/recipes/recipes_metal.dm +++ b/code/game/objects/items/stacks/sheets/recipes/recipes_metal.dm @@ -1,9 +1,13 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ new/datum/stack_recipe("stool", /obj/structure/chair/stool, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("bar stool", /obj/structure/chair/stool/bar, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("bed", /obj/structure/bed, 2, one_per_turf = TRUE, on_floor = TRUE), \ - new/datum/stack_recipe("double bed", /obj/structure/bed/double, 4, one_per_turf = TRUE, on_floor = TRUE), \ null, \ + new/datum/stack_recipe_list("beds", list( \ + new/datum/stack_recipe("bed", /obj/structure/bed, 2, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("double bed", /obj/structure/bed/double, 4, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("bottom bunk", /obj/structure/bed/bunk, 2, one_per_turf = TRUE, on_floor = TRUE), \ + new/datum/stack_recipe("top bunk", /obj/structure/bed/bunk/top, 2, one_per_turf = TRUE, on_floor = TRUE), \ + )), \ new/datum/stack_recipe_list("office chairs", list( \ new/datum/stack_recipe("gray office chair", /obj/structure/chair/office, 5, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("light office chair", /obj/structure/chair/office/light, 5, one_per_turf = TRUE, on_floor = TRUE), \ diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 5653b641c99d..f34836de156f 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -305,7 +305,7 @@ if(!window_structure.fulltile) continue if(object.density) - to_chat(usr, "There is \a [object.name] here. You cant make \a [recipe.title] here!") + to_chat(usr, "There is \a [object.name] here. You can't make \a [recipe.title] here!") return FALSE if(recipe.placement_checks) switch(recipe.placement_checks) diff --git a/code/game/objects/structures/beds_chairs/alien_nest.dm b/code/game/objects/structures/beds_chairs/alien_nest.dm index 4f132b11af99..ecc050aa8f77 100644 --- a/code/game/objects/structures/beds_chairs/alien_nest.dm +++ b/code/game/objects/structures/beds_chairs/alien_nest.dm @@ -14,6 +14,7 @@ buildstacktype = null flags_1 = NODECONSTRUCT_1 bolts = FALSE + swap_lying_with_dir = FALSE var/static/mutable_appearance/nest_overlay = mutable_appearance('icons/mob/alien.dmi', "nestoverlay", LYING_MOB_LAYER) /obj/structure/bed/nest/user_unbuckle_mob(mob/living/buckled_mob, mob/living/user) diff --git a/code/game/objects/structures/beds_chairs/bed.dm b/code/game/objects/structures/beds_chairs/bed.dm index 6c5f46e94a3b..ec7132a67cdd 100644 --- a/code/game/objects/structures/beds_chairs/bed.dm +++ b/code/game/objects/structures/beds_chairs/bed.dm @@ -18,10 +18,44 @@ resistance_flags = FLAMMABLE max_integrity = 100 integrity_failure = 0.35 + var/buildstacktype = /obj/item/stack/sheet/metal var/buildstackamount = 2 var/bolts = TRUE + /// Whether the bed changes its buckle_lying direction + /// (and accordingly the direction in which mobs lie down) based on its current direction. + var/swap_lying_with_dir = TRUE + /// If non-null, some items (bedsheets) which can be tucked into beds + /// will set their layer to this value when they are tucked in, until they are picked up again. + var/suggested_tuck_layer = null + /// The amount added to the pixel_x value of a tucked-in item. + var/tucked_x_shift = 0 + /// The amount added to the pixel_y value of a tucked-in item. + var/tucked_y_shift = 0 + +/obj/structure/bed/Initialize(...) + . = ..() + if(swap_lying_with_dir) + buckle_lying = get_buckle_angle_from_dir(dir) + +/obj/structure/bed/setDir(newdir) + . = ..() + if(swap_lying_with_dir) + buckle_lying = get_buckle_angle_from_dir(newdir) + // shuttle rotation etc... ugh. + if(has_buckled_mobs()) + for(var/mob/living/M as anything in buckled_mobs) + // this proc already checks to see if the new angle is different from the old one, + // so this shouldn't cause any duplicate work or unnecessary animations. + M.set_lying_angle(buckle_lying) + +/obj/structure/bed/proc/get_buckle_angle_from_dir(some_dir) + if(some_dir & (SOUTH|WEST)) + return 90 + else + return 270 + /obj/structure/bed/examine(mob/user) . = ..() if(bolts) @@ -52,6 +86,9 @@ icon_state = "down" anchored = FALSE resistance_flags = NONE + + // no dir states + swap_lying_with_dir = FALSE var/foldabletype = /obj/item/roller /obj/structure/bed/roller/attackby(obj/item/W, mob/user, params) @@ -161,8 +198,9 @@ else to_chat(user, "The dock is empty!") -//Dog bed - +/* + * "Dog" beds + */ /obj/structure/bed/dogbed name = "dog bed" icon_state = "dogbed" @@ -170,6 +208,9 @@ anchored = TRUE buildstacktype = /obj/item/stack/sheet/mineral/wood buildstackamount = 10 + + // no dir states + swap_lying_with_dir = FALSE var/mob/living/owner = null /obj/structure/bed/dogbed/ian @@ -206,7 +247,9 @@ . = ..() update_owner(M) -//Double Beds, for luxurious sleeping, i.e. the captain and maybe heads - no quirky refrence here. Move along +/* + * Double beds, for luxurious sleeping, i.e. the captain and maybe heads - no quirky refrence here. Move along + */ /obj/structure/bed/double name = "double bed" desc = "A luxurious double bed, for those too important for small dreams." @@ -232,3 +275,84 @@ name = "double dirty mattress" desc = "An old grubby king sized mattress. You really try to not think about what could be the cause of those stains." icon_state = "dirty_mattress_double" + +/* + * Bunk beds. Comes with an /obj/effect spawner that lets mappers place them down easily. + * The base type is the bottom bunk, with the top bunk as a derived type. + * Like other beds, the pillow may be on the left or right depending on the direction. + */ +/obj/structure/bed/bunk + name = "bottom bunk" + desc = "The oft-maligned bottom bunk of a compact bunk bed. Heavy sleepers only." + icon_state = "bottom_bunk" + // just below the top bunk's main layer + suggested_tuck_layer = LYING_MOB_LAYER + 0.005 + /// The amount added to the pixel_y value of mobs lying down, relative to the default shift for that position. + var/mob_y_shift = -1 + // i think it looks best without shifting the bedsheet down, even though the mob gets shifted down some + +// alter their pixel offset when they lie down... +/obj/structure/bed/bunk/post_buckle_mob(mob/living/M) + // we shift the lying mob a little so that they line up better with the pillow, but the shift direction changes + // depending on the direction they lie down in, controlled by buckle_lying + // (which is in turn based on our direction, but we don't need to worry about that directly) + var/horz_offset + if(buckle_lying == 90) + horz_offset = 2 + else + horz_offset = -2 + + M.pixel_x = M.get_standard_pixel_x_offset(M.body_position == LYING_DOWN) + horz_offset + M.pixel_y = M.get_standard_pixel_y_offset(M.body_position == LYING_DOWN) + mob_y_shift + +// ...and reset it when they get off +/obj/structure/bed/bunk/post_unbuckle_mob(mob/living/M) + M.pixel_x = M.get_standard_pixel_x_offset(M.body_position == LYING_DOWN) + M.pixel_y = M.get_standard_pixel_y_offset(M.body_position == LYING_DOWN) + + +/obj/structure/bed/bunk/top + name = "top bunk" + desc = "The top bunk of a compact bunk bed. Few other sleeping accommodations can match its luxury." + icon_state = "top_bunk" + + // higher layer, so that it renders on top of people on the bottom bunk + layer = LYING_MOB_LAYER + 0.01 + mob_y_shift = 13 + + // above the lying mob, but below the ladder + suggested_tuck_layer = LYING_MOB_LAYER + 0.025 + tucked_y_shift = 14 + +/obj/structure/bed/bunk/top/Initialize(...) + . = ..() + // the ladder needs to render above the mob + overlays += image(icon = 'icons/obj/objects.dmi', icon_state = "top_bunk_ladder", layer = LYING_MOB_LAYER + 0.03) + // and the posts need to render below the bottom bunk + overlays += image(icon = 'icons/obj/objects.dmi', icon_state = "top_bunk_posts", layer = TABLE_LAYER) + +/obj/structure/bed/bunk/top/post_buckle_mob(mob/living/M) + . = ..() + M.layer = LYING_MOB_LAYER + 0.02 + +/obj/structure/bed/bunk/top/post_unbuckle_mob(mob/living/M) + . = ..() + // honestly not really confident in this, but since standing up takes a do_after + // (and thus happens afterwards, resetting the layer), it should be fine... + // i'm more worried about altering layers via + and -, since if you figured out ways + // of stacking those you could layer yourself under, like, the floor. + M.layer = LYING_MOB_LAYER + + +// the spawner +/obj/effect/spawner/bunk_bed + name = "bunk bed spawner" + icon_state = "bunk_bed_spawner" + +/obj/effect/spawner/bunk_bed/Initialize(...) + . = ..() + var/obj/structure/bed/bunk/bottom_bunk = new(loc) + var/obj/structure/bed/bunk/top/top_bunk = new(loc) + + bottom_bunk.setDir(dir) + top_bunk.setDir(dir) diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 1a89195c646a..31e9d9a0b8fc 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -28,7 +28,7 @@ LINEN BINS /obj/item/bedsheet/Initialize(mapload) . = ..() - AddElement(/datum/element/bed_tuckable, 0, 0, 0) + AddElement(/datum/element/bed_tuckable, 0, 0, 0, TRUE, TRUE) /obj/item/bedsheet/attack_self(mob/user) if(!user.CanReach(src)) //No telekenetic grabbing. diff --git a/code/game/objects/structures/tank_dispenser.dm b/code/game/objects/structures/tank_dispenser.dm index 1be5f857e155..c0604dd5e09b 100644 --- a/code/game/objects/structures/tank_dispenser.dm +++ b/code/game/objects/structures/tank_dispenser.dm @@ -28,10 +28,10 @@ /obj/structure/tank_dispenser/update_overlays() . = ..() switch(oxygentanks) - if(1 to 3) + if(1 to 4) . += "oxygen-[oxygentanks]" - if(4 to TANK_DISPENSER_CAPACITY) - . += "oxygen-4" + if(5 to TANK_DISPENSER_CAPACITY) + . += "oxygen-5" switch(plasmatanks) if(1 to 4) . += "plasma-[plasmatanks]" diff --git a/code/modules/antagonists/abductor/equipment/abduction_gear.dm b/code/modules/antagonists/abductor/equipment/abduction_gear.dm index 5bce8014babe..abc69300c9c6 100644 --- a/code/modules/antagonists/abductor/equipment/abduction_gear.dm +++ b/code/modules/antagonists/abductor/equipment/abduction_gear.dm @@ -761,6 +761,7 @@ Congratulations! You are now trained for invasive xenobiology research!"} icon = 'icons/obj/abductor.dmi' buildstacktype = /obj/item/stack/sheet/mineral/abductor icon_state = "bed" + swap_lying_with_dir = FALSE /obj/structure/table_frame/abductor name = "alien table frame" diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index 9c65e50130cf..c073a7c3521c 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -608,7 +608,7 @@ This is here to make the tiles around the station mininuke change when it's arme /obj/item/disk/nuclear/Initialize() . = ..() - AddElement(/datum/element/bed_tuckable, 6, -6, 0) + AddElement(/datum/element/bed_tuckable, 6, -6, 0, FALSE, FALSE) if(!fake) SSpoints_of_interest.make_point_of_interest(src) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 3ed2b86816ac..9a19e198a555 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -386,7 +386,7 @@ /mob/living/carbon/get_standard_pixel_y_offset(lying = 0) if(lying) - return -6 + return PIXEL_Y_OFFSET_LYING else return initial(pixel_y) diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 0aa256c631e428148e97de7cb47668ff901b7abc..bb63eb2b7f0ed5f486bf924e7fc009cfb034276b 100644 GIT binary patch delta 15274 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 F{a^HXrM>_F delta 13975 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 A*8l(j diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index 1b156b9294f9f7f3339ceff03486df17204f65c5..8479c100f1b0a25f9ca2e2cb61b391e86f03899e 100644 GIT binary patch delta 11309 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 PzzD0 From ea15b40ba8a113123dacb8f8e582aa928c43d587 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 1 Oct 2024 03:20:54 -0500 Subject: [PATCH 064/167] Automatic changelog generation for PR #3345 [ci skip] --- html/changelogs/AutoChangeLog-pr-3345.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3345.yml diff --git a/html/changelogs/AutoChangeLog-pr-3345.yml b/html/changelogs/AutoChangeLog-pr-3345.yml new file mode 100644 index 000000000000..3da650007188 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3345.yml @@ -0,0 +1,6 @@ +author: tmtmtl30, Thgvr +changes: + - {rscadd: 'Added bunkbeds, which can now be crafted with metal or placed by mappers.'} + - {bugfix: Beds facing alternate directions now correctly support people buckling + to them and bedsheets being placed on top of them.} +delete-after: true From bb2ab5591e5b045e637fb991137c52566e7a6d54 Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Tue, 1 Oct 2024 17:29:27 -0400 Subject: [PATCH 065/167] One Shot RPG (#3433) ## About The Pull Request Adds a one-shot rocket launcher to the code. Adjusts the code in some places to support it being truly one shot. Also adds being able to draw on rocket launchers for mild entertainment. Rye did the sprite. ## Why It's Good For The Game A disposable anti-armor tool is good for people who are poor and or frontiersmen. ## Changelog Rye, Erika :cl: add: One-Shot Rocket Launcher. A quick solution to an armored problem. add: You can now scribble profane things onto the tube of your rocket launcher. Use this power wisely. imageadd: Rye: A sprite for a one-shot rocket launcher /:cl: --- code/modules/projectiles/gun.dm | 3 ++ code/modules/projectiles/guns/ballistic.dm | 3 ++ .../projectiles/guns/ballistic/launchers.dm | 50 ++++++++++++++++-- .../frontier_import/ballistics.dm | 42 +++++++++++++++ .../manufacturer/frontier_import/48x32.dmi | Bin 4302 -> 9192 bytes .../manufacturer/frontier_import/lefthand.dmi | Bin 2747 -> 3015 bytes .../manufacturer/frontier_import/onmob.dmi | Bin 2399 -> 2721 bytes .../frontier_import/righthand.dmi | Bin 2685 -> 2934 bytes 8 files changed, 94 insertions(+), 4 deletions(-) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 7fe0a5b07c3a..f848018a6115 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -70,6 +70,9 @@ var/casing_ejector = TRUE ///Whether the gun has an internal magazine or a detatchable one. Overridden by BOLT_TYPE_NO_BOLT. var/internal_magazine = FALSE + ///Whether the gun *can* be reloaded + var/sealed_magazine = FALSE + ///Phrasing of the magazine in examine and notification messages; ex: magazine, box, etx var/magazine_wording = "magazine" diff --git a/code/modules/projectiles/guns/ballistic.dm b/code/modules/projectiles/guns/ballistic.dm index ccc399906365..f64586871ccf 100644 --- a/code/modules/projectiles/guns/ballistic.dm +++ b/code/modules/projectiles/guns/ballistic.dm @@ -205,6 +205,9 @@ . = ..() if (.) return + if(sealed_magazine) + to_chat(user, span_warning("The magazine on [src] is sealed and cannot be reloaded!")) + return if (!internal_magazine && istype(A, /obj/item/ammo_box/magazine)) var/obj/item/ammo_box/magazine/AM = A if (!magazine) diff --git a/code/modules/projectiles/guns/ballistic/launchers.dm b/code/modules/projectiles/guns/ballistic/launchers.dm index e3e821c72db1..2044fae60ee2 100644 --- a/code/modules/projectiles/guns/ballistic/launchers.dm +++ b/code/modules/projectiles/guns/ballistic/launchers.dm @@ -40,30 +40,69 @@ actions_types = list() casing_ejector = FALSE +GLOBAL_LIST_INIT(rpg_scrawlings, list( + "\"FRONT TOWARDS ENEMY\"", + "\"MY WIFE LEFT ME\"", + "A Kepori inset in a stylized crimson heart", + "\"Eat lead psychohazard!\"", + "\"Portable Demotion\"", + "A drawing of the Rilena character 'T4L1' smoking a boof", + "\"Eat it corpo!\"", + "A Sarathi woman in a suggestive pose", + "\"Arm this!\"" +)) + + /obj/item/gun/ballistic/rocketlauncher name = "\improper PML-9" - desc = "A reusable rocket-propelled grenade launcher. The words \"NT this way\" and an arrow have been written near the barrel." + desc = "A reusable rocket-propelled grenade launcher." icon_state = "rocketlauncher" item_state = "rocketlauncher" mag_type = /obj/item/ammo_box/magazine/internal/rocketlauncher fire_sound = 'sound/weapons/gun/general/rocket_launch.ogg' load_sound = 'sound/weapons/gun/general/rocket_load.ogg' - w_class = WEIGHT_CLASS_BULKY + gun_firemodes = list(FIREMODE_SEMIAUTO) burst_size = 1 fire_delay = 0.4 SECONDS - casing_ejector = FALSE + weapon_weight = WEAPON_HEAVY + w_class = WEIGHT_CLASS_BULKY + + //Bolt bolt_type = BOLT_TYPE_NO_BOLT - internal_magazine = TRUE + + ///Magazine stuff cartridge_wording = "rocket" + internal_magazine = TRUE empty_indicator = TRUE tac_reloads = FALSE + casing_ejector = FALSE + manufacturer = MANUFACTURER_SCARBOROUGH + attack_verb = list("bludgeoned", "hit", "slammed", "whacked") + valid_attachments = list() slot_available = list() + var/rpg_scribble = null + +/obj/item/gun/ballistic/rocketlauncher/Initialize() + . = ..() + rpg_scribble = pick(GLOB.rpg_scrawlings) + desc += " [rpg_scribble] is scrawled on the tube" + +/obj/item/gun/ballistic/rocketlauncher/attackby(obj/item/A, mob/user, params) + . = ..() + if(istype(A, /obj/item/pen)) + rpg_scribble = stripped_input(user, "What are you putting on [src]?", "Rocket Launcher Doodle") + if(!rpg_scribble || !length(rpg_scribble)) + desc = "[src::desc]" + return + desc = "[src::desc] [rpg_scribble] is scribbled on the body." + + /obj/item/gun/ballistic/rocketlauncher/afterattack() . = ..() magazine.get_round(FALSE) //Hack to clear the mag after it's fired @@ -80,6 +119,9 @@ righthand_file = 'icons/obj/guns/manufacturer/solararmories/righthand.dmi' mob_overlay_icon = 'icons/obj/guns/manufacturer/solararmories/onmob.dmi' + //recoiless rifles use shells + cartridge_wording = "shell" + icon_state = "panzerfaust" item_state = "panzerfaust" manufacturer = MANUFACTURER_SOLARARMORIES diff --git a/code/modules/projectiles/guns/manufacturer/frontier_import/ballistics.dm b/code/modules/projectiles/guns/manufacturer/frontier_import/ballistics.dm index 90355db145dd..224712438b90 100644 --- a/code/modules/projectiles/guns/manufacturer/frontier_import/ballistics.dm +++ b/code/modules/projectiles/guns/manufacturer/frontier_import/ballistics.dm @@ -227,3 +227,45 @@ caliber = "12ga" max_ammo = 40 w_class = WEIGHT_CLASS_NORMAL + + +/obj/item/gun/ballistic/rocketlauncher/oneshot + name = "\improper Hammer" + desc = "A disposable rocket-propelled grenade launcher loaded with a HEDP shell." + + icon = 'icons/obj/guns/manufacturer/frontier_import/48x32.dmi' + lefthand_file = 'icons/obj/guns/manufacturer/frontier_import/lefthand.dmi' + righthand_file = 'icons/obj/guns/manufacturer/frontier_import/righthand.dmi' + mob_overlay_icon = 'icons/obj/guns/manufacturer/frontier_import/onmob.dmi' + base_icon_state = "rpg" + icon_state = "rpg" + item_state = "rpg" + + mag_type = /obj/item/ammo_box/magazine/internal/rocketlauncher/oneshot + fire_sound = 'sound/weapons/gun/general/rocket_launch.ogg' + load_sound = 'sound/weapons/gun/general/rocket_load.ogg' + weapon_weight = WEAPON_HEAVY + bolt_type = BOLT_TYPE_NO_BOLT + + cartridge_wording = "rocket" + empty_indicator = FALSE + sealed_magazine = TRUE + manufacturer = MANUFACTURER_IMPORT + slot_flags = ITEM_SLOT_BACK + + +/obj/item/gun/ballistic/rocketlauncher/oneshot/Initialize() + . = ..() + if(prob(1)) + name = "\improper Mallet" + +/obj/item/gun/ballistic/rocketlauncher/oneshot/examine(mob/user) + . = ..() + if(!chambered) + . += span_warning("It has been spent, and is now useless.") + +/obj/item/ammo_box/magazine/internal/rocketlauncher/oneshot + name = "oneshot rocket launcher magazine" + ammo_type = /obj/item/ammo_casing/caseless/rocket/hedp + caliber = "84mm" + max_ammo = 1 diff --git a/icons/obj/guns/manufacturer/frontier_import/48x32.dmi b/icons/obj/guns/manufacturer/frontier_import/48x32.dmi index 2f2db3d07ad53178648564e1ffabf81691ebf57d..be95cfa90c14fe5b1763ae8e11da0c600ce28dab 100644 GIT binary patch literal 9192 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 literal 4302 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 diff --git a/icons/obj/guns/manufacturer/frontier_import/lefthand.dmi b/icons/obj/guns/manufacturer/frontier_import/lefthand.dmi index eb6c552627eeca7d582ad8b7e4509b3c19fa27da..e34bf3995dfd7516faed4e759cccd31eac540391 100644 GIT binary patch delta 2871 zcmY+`dpOez0|)S#&25zX<)D#kCOJgNWl0VxGS}QM$tfv9Ib-`RDv~?7?Z94DseBkD~Ll>l%Fo@>!0zY*{QzA z&4}MmHWvEJRFoSf2#1t^goR?H51S4?yC1rBj*+i8(m+}stc}pA`!*3>(3tRT?k9z_W_0a#P@V_>tBFmP&R9i+ z(0H##-ZKOJ{}}^sDUod<3CUfFy-tsxB=jyxFsj1-KG7J~Bp09|;vHBfZ=Np|_g=yw z@P5(jyQZD2wZtskxR7{4AObOdL;Xp6at?EL=CD=v5P+Q+ej3XPl@dj2y?P@_gGOe^ zf{@@{!eSwQBl^zClx$+`8q2O7ir=^aBir-{FfCONP}d`FLC08QgNpw9M?Bvv<5`qX z&|pXKd>&f#sE5q}Pmua8%uUbY=0EZ&O7FeB8AGEaspW}ajCv=dTQFMt?yrTM{UepE zp4uzGA)(8*0f^_axOeEEJ$OuWT8cvPsTK91OlFL=8ef2I_&QuPXBR^Gad@7;KZ(oa z`_cO+L$j;XB=;pUL}^++H=-8!;W-V)Vx<#TX6hcX8m3bI-%n9ru1OTnb_@0i{{029 zm_t<>;?Y%tiBaw?a)8>YU2m7xr_{*VB+no+Tv@EwBD_3p*A~V!{)`&H=LKJwVa7ck zQdB{|4A&%kFf@HY8Qgr%-AhngExPLJWO{uFRe7&L(}BRc-(EAXS8dS7*mT!_u)v>n zu(X81@xo=*3M%Lr_o7PKmlD=nx_VhbmuZ!%+Uqu%-r?VYq&k-B?Op69m%FX4Atcn` zmV1uCiko*7_x;t4oMFQLaQjueSWSCU7;VAGOWtqkqDS`^vB>6PIFf;$C%_6HY+)Wt zGZhu5r0J-Oi&EIzS2kUcKx)Ka7M`YsA8jFWkB;%x&j$NiF?sbXldik}15YqLb@Sr!-owXUc= z%w_q%uk=~qo0QD#Y@4)*%q^Iu7BTqYKMn#VxvUx4;^$nAOU#oMl?^ue`sdGy%DQfOr;rClG=|N z@Ir)3U!=oH-@JMXwrXVe&gIW@BJY_k1d80E$pe(;eKR4K_WIMdp?|@%8Gv#ggP7kc zqz>s;)@bD@s~XNUcz@0Tv8s)6r23eSh8_q3UD6q&kg-CH?-*zo>E0e~%aMD^&Z?hR zMt=@Y<#9ik0E*IOGOC8mU?sbheV{fMB_tQMvCx`{fvXzM1}gwDEn6~=&f}>Jn>_&f zFF%dFm-wUYju-%WEUsk`^DKe%bed21W=f$X|;V14-H;Yd%q+jovQ2Iz;}Eg0B3nEF>!BS+BoiB5 z&0V*YC-EiIBe|=G26#O&{cF}Z>qpSw0L0+0~JzYuuU-nGdWiJa1Kb(>1qi-lJwbRZ5ngUTI!s#@_+(bGn zqBT9fQ>zR|B}bQd@4Pr=|5K=6HXo%QPV37AXPShgtVl}A%kOl=56kXK01px%M&`szswG&r(b5=GzTn=E#Hfi2xi;jhxx|}P1*4K> z3RY0v;#z;Jez5h??}1no$k>G`i2cXvQ>x~R%$()*aitgluUQ3L+fY1|JLJ|J!;BOIJWNceV}5g$$)0K^}GhnPa-w!K!qC+kY-?-(Fa zc}-_3h`RYa5^aWxADVW$`=-%jdK+rwRPeXW_a_t4E=@2Ig>2LLN)CdgJ$E4huX7)@eEG?%( zrl-F(JJx^$BvPmR-<~5QsOwj3FP27_?g6edDmyj?m4llNV)A?J=r=u`ECuJ;u^8R$ zv2bCZyVC}uc=OIqma(XgZE?!__l`i`sEF$doq`=`@p^}z$c269yI_(76iIjTpT(-k zJPGkgKNwX-Cnh&+NAF?Q#k6TjS<~X|gBG!7D~j=}5N#UK#0|K6$5Lo|kr&i*(`|%5 z336tW_Ep_M>rs;g)1ACpG@#lqYu&YB0k)Q9I8%7*m}k>;5fLy(gX%A^Eo3!}f3ZH7 z(gYTWomoYaDN+Q;warx--_7G*tZTwYj}+;|6qq`N`w{TPESNXb&V0SDN@dQ(`PUBy NIiGTMsJ9PE`46b}n{xmF delta 2601 zcmV+^3fA?<7rPaZBmr!ZC2cLhz`$N^7{dSn00DGTPE!Ct=GbNc005kNR9JLGWpiV4 zX>fFDZ*Bkpc$|&Uk-{T?BkpFTH_g=Q++Mm~HP=o)kdh5voz!u&mEviEO)iJM6b7v} z{4I$`#vCg>`$`J1l$MDUHyRx-dG|Bv?n=xME#+23C#Or@02rt6LRcR}%Z#+@VwgP? zxMT?753E(&H=ozv@*!>;+6|CL000S9NklK@M(x`_A)gWMYKtg@r8DYA4_7s6*?WF}MFF6Z*jkBDTFHSD06+rvr0s_|=R1Kzf{u%E_WO@{#mBncO7BRs z-`6j6#uzntUVj7JY~EomME) zcUBrk1->GG-=p#x{lGvgsiagY)%Rr@M@m_W{*wGMix^)aowcaYgPlz2g8~n^0#Kwk zQnk`5@D=&qY2QwC1p_JJe*+;BeP2I4pPuC)1_{R}Jq(4uPfnCmu!!*$uvuDNp$C`2 z(^CRofydrdq|qBI*ei!ZzK79jy?k%=eTP)v7thasPtO_>&~SW)gc5yU1vg5-Tg3RP ziWpx9dV*KrF*6HgjOo$=&*Xc^*#!CCGr)PK@9PtEk$?mQ98cQSMnvaek;M0uReBl$ zNAIVQldutw9;ah9 z1CsCQ%&nn_WB@RNH>mdY;VG-_O~oROZ&HhlUWli2@I=q=!|^d(fzzZ-#5t& zug5p}J#dNMGFSd!C){L3YCcU_6!vIX@i+dq?(^K+`DUTeChs_{6&+1ekyzUjlGA%m$$NT=NFg=oc4i2~2MB zB)p~}!ix=LvLSxrig&dt+FwfWb4gz1-zDB)3>hQ_=lH{Y2q$afr#{55$$L6~g8#H2 z!DltogbrF(43Ob?%njD?i;eL!z^5q;Ag(J+^|hG-e|D&tL;U_1XmxyVSh+GUGVr1}phD#h;b8z9Mwd zCoy;pKZC(wFc=I5gTY|@!`P^Q@82F*>iaXg3+0XO=Pq2S@7FP0H)6}~axTzasqfbt z&=ljjEuWctDS_(Z3 z^fHiuPl92fdthw>nR|fakqaG>>-&iSzfQj|T0kMxU{lw2!y~x6R%Vd92VCGO_5B$x z>H8}hwl0HvJby9f!nZHy&P9FM8>E8fWK^in}BLmT7HH?Zr3G`tbB-}Zv&k~@= z5R|h!iW}$Km< z_WsPqz){B{4n73$ml6mT5q;YggBuL%93-DqlK%FXP4Jd|v3TedU-C??At(LNiQbU&Xmd|tV*w0E9h;i{5a zHv|5o@3}@PIpA_w_BAtTTrmqpN%oD_^)30{7r6ZzHV3}qa0*fH!;e`4jcsgLqyZm! z?(ev~D{TLND;xnh!hL`n0~QHL`#Y9heUdZ=H)(4XFlp>}+^^q&U-8@2BUb$OMfq00 z7+!@JOyEVp^e&z#2sOWN(X91&`2%>tjr@u=*--Q6Chb~{kU;t3VW_zG1PEs>-m57L z27|$1Fc=I5gYlkNzjpFA%PdzT?i5~;-?Qp-y8aD+fr1}uEnQ817bKBm!=+YBuMON7 zcB>qG+oUGH3o#gcF9qexg{SUs4V>6NfBc|*t7_M2LoSr>)m`2LxP{Wt;4&gg!LAZT z)FM@%PCykOUt!`XIpTq!6yid(gEDkOYs)JpCCK83g#C-$(hrRPXNtB*Ei4 zh!yH=g8(1(`yk(!>ivDdO7JMp;|QosfG7Pv%J-#ue;=3$^oaoP_4`!5zhztNKndOp z^b2rTXX^cZ03~>@Z!f^B-=%tgAE0@$E`ht8K^Er)`pfb?V>A8(r`mj({$KwC00000 LNkvXXu0mjfz^M*C diff --git a/icons/obj/guns/manufacturer/frontier_import/onmob.dmi b/icons/obj/guns/manufacturer/frontier_import/onmob.dmi index 274aa3a15036a258a2983f672199b1bd6e9a063c..e0b05e0ec63f8b1da3fcab2b5443aebd71ef58b2 100644 GIT binary patch delta 2524 zcmV<22_yF35}_547Y?8Z0{{R3yb+fl00015ktJ0gz`($=EFgjk7D5cNT>t<80d!JM zQvg8b*k%9#0E>~2dw&q4u&4m1rOFDfelFm^0RX;4Q!Xs$FKhq+30_G=K~#90?OSVi z<0uR@4`U~#og|$$>73dB|2J2{O&XgENO3yb-K{=!&Ipih#7kUo*Zq6MShJ#@v~{_1 z(}HnUWZgPs2x~R2n*NOwn#WLd0B`YctQXk!&V#PN+L|kuIe#<05y8HfSr4!x))rlb zdD|{@y=lc~5LzD%s)@BFS7yBaZy3W!1{#feF+e|nU}0^^m0tiHhR_5UhOtrO3}qaG zR9kd42guUw;;@K&8K8jxp;qI{uC?-4+#ExGatV7b9&v#plTr4NDXZZ{jC zm5B-SXf*wAwto-XO{IJ;*7%sWu+3HCO1zmZc`g5&2MxaN@reME&4MN7%IuMeQc#fbUh`Xg$Zi6Ct-J!c~-+utOQ{{3r2CX%_-BK&J;oU5I z-0cnxfW}hDg;BKD$7mSgQY!}-y}j<^oq0ag{c|*eG~Mb`-ZBs1St}FDX673|8;h-B z8HCwZN4XM!g0&@AV-^iC?-tTa0aEIR5+AHBxXOLC11QZ`*JrHDd^JhjHzo@DRRtMg zu&}n^Du4I&e5eD2zp5Yu4AuY!R=Itq-0z>Ojd~@(JXq@h?i&%LQ?2}1+mC&p=l84? zw(s-75L?T95U&xbE~w60VSCWLy~=#cN_wwZ;ST)YDtfP3;U4^-uyxbZUHL!b+ zKD7ABlc$#GWI(wj;{TAg4A5Vvhm?wW&;2fJ&41&ATG<4xl0Lar4`ZM z73$2y*kxKNKCcXuPPh!kN~PF z=6~%&VHBD)JeT-Qbz&h4@3Pr$5;G*uM$Xyh!=^yl+?oGlfZIyl9NLhA&LL{xqsi^k^j>P?!hbL%>Nzshdc6rI>8L?RXOv2 z`@{1+`M-3k6hg)f?hH$`G3Wm#tq`A`b5%QLNTnxV!vV?|+-spw0b^K;@x=vE!1#=m zAhk?|W(@8OitRwKuoeTPs`CNM(Gc^GL!!yb0qp$qVGjU8Ee1#cA{&^4XEwC20r>dDU$mzYlMR#+oau4ewILHBx46r(*Xg+{N zkF_!nemO@NpoRjcoVp4yvOulO1FEUuADJE1(3M|B*3)aBEbHmD&z9BC>poj9XKl#J zu^4y8r8%G6O>|=r=v;J?z&fgzyMMyknJiyoR0N*zIE$88urN8t+J#pcx&#JAP(E+4 zt15uiPdr2DZfcz@%0k}QU? zZ!P{~;|I(HKJk=_H;6g#Edm$L{E`ImgV$VW#{lUtYwPVEb^PCByHcqw1nB<&z$am2 z7oR{EleXUMNe2*ElLpns$C!^N($<@;dO;~)LX#^K!A{beBx^Ei@QS12$Wv;S?If&i z0lb+(4T@JwUAm}_`A*UTxPOL0ecu(NTb(6TG?FhV)t5>6o>+H-+`65XQhm9UvtAvmZClBq#@MW7@xgYv1c-0s zZVD!CA@1^G6_seLRDUbn4$u_uqm1~XDqU4oBUq&R+MQI7p!BY<6~S?Ew?3_}M^JIs z*BFDo`2kNs93)=OB~mNiw8m?btSbq{sQ}PuI;9ms+G^AQ`w)%cS4|oDcPUW-^p2Xu zatcQ=)(*nJIXrCu`2(O!iQJg=ysn4xA<3(#q$G)JvCi4-r+-~a6aZ803gz=urwO2| z-g+Mqz)Oh=VD#RWlk`V4i(lGyBi{+WzP`LH>!uPpK(1Z=J(}F@3WZAmkH_Qb1(oOk zRwM3IL;5WKjSQOz08S-xOSBHgx7sWa?@IGlZ-!Q54**Uja!WKx&09S)1_3-a0sbPp z4gyRia)4CX{C}#{NBQ*iz{jzmwTlz`m`{>(i4*u40K4rx)18Q;F0L*VWwX$i<&Zvv?|z zSvhgtTa$%)KgA-zs0Day02>3T2(Z%v)B-!pH^6Qsz~-l8wNsrY<<|l`OXFl#KNo9K mejzQeOXF7gKgle7N%c`#wFk)39paGXy$;Yo zfKaOmWy*E4w~~&~>_-F;YHOi90$4X#mQ%BRFJlPQ_p~fPD-#p;+33b!P7kN0(Y_aJ ze|#)0YtCXt=xxqyXx_LzIFf_ODPv-(OMs)VT8F> z4lsJV9pkfkzP96YHiER=8dKe}PvD1ECREMr4}NwQd($!qtF3`*B>)9$YoX>M8(`gK zGD-nb>4yp*tgVD9WAzg#tyhm%ta-hfBwjiT1^udu%rIG4TM1RhdcL*+!e3R9e+edQ z0u!rlUnnn^=cdu91Xw2P7{E&>gLJEvUu(yC9LxHiwL<%`oD8wI%?I%wk@|w}tQFb= z^ZqXLzZ|6Zx*hJo{~e8Ry;$G4Z9vuaP`iqMHHLl8FC9+B!hL zEf1*_^Pb0DXwCD3ENrd6@h0(gf1%V0Wi;~U^E0JOj8EX=m6fF6SnsyEd%&TCVyJyU1%^9V^?UU0BMN9a2}(Ww@~1E z#oCJOhIn}=Ar$;$`ftvkeR_xM6>Dn%H=T`nNC4Fo^XZ{73r(7yIeybze^|)FyDX(79#yRtUf7i?Pj{KiaFoU~kXa4VUeZD9Emu{6p$e6+1VTm@D{NJh- z;dXwO^yX_gK?Q@m6-pIwhP4=9%!mTUXQTwFWh%5_aCcDb0Fs5Z7$9}sPgu@| zn17rSO;%6f;GeG-01#?1K$^kDiV7-%v|ajKuU9~YVJ(v9D`2V=e+22&qe3sw7x3Kz zYoR@LEtEk{?~OgWn{!o0IF`Xl4sd3G%@sxK0c?7#l|}IR8exDM3Y=={Ccwx7wXz7P zr-FZEc2q-G{!`>Qz4py=oL>8GIsCltyXAJ*hO8WmaUZxe_mjJcZVm#Si%ybQNBzoB zSi6(_B}PNw4Uem6e~AYRi*u~aqRP-EFeroab%R4S0UUnf8Nw)EIBrB6v1_w#N1k{N z(>Tp4fb&$6T^)c&o_LOYzEAR%?YSl`zSsHoaed&4XBgA@F3n(!ZeoM|C?stY;Mbpc z2CgvW4+3oT;~es;l(kK>L$7#8O|{~U=S7lDW8d5S=gtqF?H+af-($a1%@zXme*oZ<(AdQ%FvO&7n?30O0&mi!+V~jD`9#{b z*`XJd@+~xlG7+34y+v}Qq6V)x8i72OR>eue+8)3!GpIrFYH3Ixs$+SQ^Z*`VP~T4l z=}~71U?@+Le-6OJ%1QCXxG&E5B$=bQn&Autkt)cNct!dR|#yvsukLfLT4r09A94#yF4Gf0-q-JVYwkcL3?erJRE!DDT=X zMr48|faj393K55r|54Qc@*kG<6;@UF#g(?@3t`&QstKH{J^!hQvXh@ z`-0s2IxVI8N~u@9I#%2EibIXFon`gGcD)6N@6>JzCM^?pd$EdIG+vq=z7Eh-zegGI zhpP0cf2x_mD%IB?q;>|S-}-tPoG16yr}ga&D!%n~=AiHX0Z&C7BwjvRq+Yz~&DSnj zR};!p1)$LkN-u+S)TjZDAsWN4nhNso)}jFD9ht;>2}e2BPQt)7JRJb#1E5=r+?n;f zuZQ|2$*ZWOB#CRW&e`Ip-C7g?Q||`l^VFsZe_*K5dLI$MTZ;-{^xoEs^hdOcU;2I{ ze-r%m>*Xcyn_A=mxp(vTXll0&3YP%BzP|qTf?9L{n;CbiDg7b-jU1Z@0In@^PqYul zx7I2UpGteHH$%Iz2LRU=xhGnr=B-^Bg9N^I0sbbx4gyRqa)8v?{BHC|_4Ib)<6O|* zf5nA;EEmZ~ixgkvlD|<@&#|*e@cgv=yCdR3>n#``b>)m#mjUKLR`}|wPOf&g^?}SO^XJg4FQBn(xUp>F--O5QEve;_)hZYpVxg+ Z{ssVfKOIZR;M)KI002ovPDHLkV1mLDMt1-J diff --git a/icons/obj/guns/manufacturer/frontier_import/righthand.dmi b/icons/obj/guns/manufacturer/frontier_import/righthand.dmi index 406c40e66ac6295fe5c07e5efd37189a6df90c4b..30eeaa12d4e94922dc83c649db731c19ecdb65b5 100644 GIT binary patch delta 2790 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 delta 2539 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 Date: Tue, 1 Oct 2024 16:40:38 -0500 Subject: [PATCH 066/167] Automatic changelog generation for PR #3433 [ci skip] --- html/changelogs/AutoChangeLog-pr-3433.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3433.yml diff --git a/html/changelogs/AutoChangeLog-pr-3433.yml b/html/changelogs/AutoChangeLog-pr-3433.yml new file mode 100644 index 000000000000..147aa4c2b29c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3433.yml @@ -0,0 +1,7 @@ +author: Bjarl +changes: + - {rscadd: One-Shot Rocket Launcher. A quick solution to an armored problem.} + - {rscadd: You can now scribble profane things onto the tube of your rocket launcher. + Use this power wisely.} + - {imageadd: 'Rye: A sprite for a one-shot rocket launcher'} +delete-after: true From 5cbc595c982b142a4da0902f38ec96d2b2744f0a Mon Sep 17 00:00:00 2001 From: generalthrax <139387950+generalthrax@users.noreply.github.com> Date: Tue, 1 Oct 2024 16:42:55 -0500 Subject: [PATCH 067/167] The Frontier Ablaze: Ramzi's Molotov Cookbook (#3432) ## About The Pull Request **The World Aflame** ![theworldaflame](https://github.com/user-attachments/assets/75b4f565-ab87-48c2-9526-3ef9f7163204) Molotovs now create turf fires on its own turf and adjacent ones. As Hearthwine does something similar with a trickier conditional (contact), it creates turf fires beyond adjacent turfs now. ## Why It's Good For The Game Molotov's are exceedingly Nothing, and this should ignite An Inferno within every spacer's heart. Burns much less fiercely and causes less firestacks than hearthwine in absence of combustible material, but should be enough to deny people access to chokepoints or to cause a panic. ## Changelog :cl: balance: Molotov cocktails now create turf fires balance: Hearthwine now create turf fires in a 3x3 area /:cl: --- code/modules/food_and_drinks/drinks/drinks/bottle.dm | 8 +++++++- .../reagents/chemistry/reagents/trickwine_reagents.dm | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index 49de009448f2..0aa4ac7fad38 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -479,7 +479,13 @@ break if(firestarter && active) hit_atom.fire_act() - new /obj/effect/hotspot(get_turf(hit_atom)) + var/turf/T = get_turf(hit_atom) + T.IgniteTurf(30) + var/turf/otherT + for(var/direction in GLOB.cardinals) + otherT = get_step(T, direction) + otherT.IgniteTurf(30) + new /obj/effect/hotspot(otherT) ..() /obj/item/reagent_containers/food/drinks/bottle/molotov/attackby(obj/item/I, mob/user, params) diff --git a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm index 9f907a33b022..ff82cd185fb2 100644 --- a/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/trickwine_reagents.dm @@ -126,7 +126,7 @@ T.IgniteTurf(reac_volume) new /obj/effect/hotspot(T, reac_volume * 1, FIRE_MINIMUM_TEMPERATURE_TO_EXIST + reac_volume * 10) var/turf/otherT - for(var/direction in GLOB.cardinals) + for(var/direction in GLOB.alldirs) otherT = get_step(T, direction) otherT.IgniteTurf(reac_volume) new /obj/effect/hotspot(otherT, reac_volume * 1, FIRE_MINIMUM_TEMPERATURE_TO_EXIST + reac_volume * 10) From 89b8f3084cfd1684e116b4b33927b62bddeeab07 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 1 Oct 2024 16:53:41 -0500 Subject: [PATCH 068/167] Automatic changelog generation for PR #3432 [ci skip] --- html/changelogs/AutoChangeLog-pr-3432.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3432.yml diff --git a/html/changelogs/AutoChangeLog-pr-3432.yml b/html/changelogs/AutoChangeLog-pr-3432.yml new file mode 100644 index 000000000000..dc99f431c6d9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3432.yml @@ -0,0 +1,5 @@ +author: generalthrax +changes: + - {balance: Molotov cocktails now create turf fires} + - {balance: Hearthwine now create turf fires in a 3x3 area} +delete-after: true From 67894b957967fdaa11ad5d845bcbda5bc30655b1 Mon Sep 17 00:00:00 2001 From: Zephyr <12817816+ZephyrTFA@users.noreply.github.com> Date: Tue, 1 Oct 2024 16:13:16 -0700 Subject: [PATCH 069/167] fixes lints (#3463) --- .github/workflows/ci_suite.yml | 9 +++++---- code/modules/power/apc.dm | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci_suite.yml b/.github/workflows/ci_suite.yml index 47f8b1df9941..915b6021e98c 100644 --- a/.github/workflows/ci_suite.yml +++ b/.github/workflows/ci_suite.yml @@ -11,7 +11,7 @@ on: - master jobs: run_linters: - if: "!contains(github.event.head_commit.message, '[ci skip]')" + if: ${{ ! contains(github.event.head_commit.message, '[ci skip]') }} name: Run Linters runs-on: ubuntu-22.04 steps: @@ -70,6 +70,7 @@ jobs: ~/dreamchecker > ${GITHUB_WORKSPACE}/output-annotations.txt 2>&1 - name: Annotate Lints + if: always() uses: yogstation13/DreamAnnotate@v2 with: outputFile: output-annotations.txt @@ -83,7 +84,7 @@ jobs: cat check_regex_output.txt compile_all_maps: - if: "!contains(github.event.head_commit.message, '[ci skip]')" + if: ${{ ! contains(github.event.head_commit.message, '[ci skip]') }} name: Compile Maps runs-on: ubuntu-latest steps: @@ -105,7 +106,7 @@ jobs: tools/build/build --ci dm -DCIBUILDING -DCITESTING -DALL_MAPS -DFULL_INIT run_all_tests: - if: "!contains(github.event.head_commit.message, '[ci skip]')" + if: ${{ ! contains(github.event.head_commit.message, '[ci skip]') }} name: Integration Tests strategy: fail-fast: false @@ -135,7 +136,7 @@ jobs: # minor: ${{ matrix.minor }} test_windows: - if: "!contains(github.event.head_commit.message, '[ci skip]')" + if: ${{ ! contains(github.event.head_commit.message, '[ci skip]') }} name: Windows Build runs-on: windows-latest steps: diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 75cf85513236..4f2d70b680ad 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -217,7 +217,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/power/apc/auto_name, 25) // this allows the APC to be embedded in a wall, yet still inside an area if (building) setDir(ndir) - tdir = dir// to fix Vars bug + tdir = dir switch(tdir) if(NORTH) From e78e0072f1f26510d70c36c76a4a3140a98f6bd0 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 2 Oct 2024 01:02:17 +0000 Subject: [PATCH 070/167] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3345.yml | 6 ------ html/changelogs/AutoChangeLog-pr-3432.yml | 5 ----- html/changelogs/AutoChangeLog-pr-3433.yml | 7 ------- html/changelogs/archive/2024-10.yml | 13 +++++++++++++ 4 files changed, 13 insertions(+), 18 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3345.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3432.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3433.yml diff --git a/html/changelogs/AutoChangeLog-pr-3345.yml b/html/changelogs/AutoChangeLog-pr-3345.yml deleted file mode 100644 index 3da650007188..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3345.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: tmtmtl30, Thgvr -changes: - - {rscadd: 'Added bunkbeds, which can now be crafted with metal or placed by mappers.'} - - {bugfix: Beds facing alternate directions now correctly support people buckling - to them and bedsheets being placed on top of them.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3432.yml b/html/changelogs/AutoChangeLog-pr-3432.yml deleted file mode 100644 index dc99f431c6d9..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3432.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: generalthrax -changes: - - {balance: Molotov cocktails now create turf fires} - - {balance: Hearthwine now create turf fires in a 3x3 area} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3433.yml b/html/changelogs/AutoChangeLog-pr-3433.yml deleted file mode 100644 index 147aa4c2b29c..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3433.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: Bjarl -changes: - - {rscadd: One-Shot Rocket Launcher. A quick solution to an armored problem.} - - {rscadd: You can now scribble profane things onto the tube of your rocket launcher. - Use this power wisely.} - - {imageadd: 'Rye: A sprite for a one-shot rocket launcher'} -delete-after: true diff --git a/html/changelogs/archive/2024-10.yml b/html/changelogs/archive/2024-10.yml index 546d4d7ab402..93a916504a34 100644 --- a/html/changelogs/archive/2024-10.yml +++ b/html/changelogs/archive/2024-10.yml @@ -8,3 +8,16 @@ - bugfix: You can now fit all knives in mining webbings. SomeguyManperson: - bugfix: hallucinations can no longer be permanent unless treated +2024-10-02: + Bjarl: + - rscadd: One-Shot Rocket Launcher. A quick solution to an armored problem. + - rscadd: You can now scribble profane things onto the tube of your rocket launcher. + Use this power wisely. + - imageadd: 'Rye: A sprite for a one-shot rocket launcher' + generalthrax: + - balance: Molotov cocktails now create turf fires + - balance: Hearthwine now create turf fires in a 3x3 area + tmtmtl30, Thgvr: + - rscadd: Added bunkbeds, which can now be crafted with metal or placed by mappers. + - bugfix: Beds facing alternate directions now correctly support people buckling + to them and bedsheets being placed on top of them. From 814fca50818234bc1f1dc14f3933462b83f070be Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Wed, 2 Oct 2024 19:02:24 -0400 Subject: [PATCH 071/167] actually fix defibs (#3471) ## About The Pull Request as title resolves #3469 ## Why It's Good For The Game functional!! ## Changelog :cl: fix: defibs now work again. /:cl: --- code/game/objects/items/defib.dm | 7 +++---- code/modules/surgery/revival.dm | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 517bc9922786..640b4e4a6a0a 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -302,7 +302,6 @@ var/obj/item/defibrillator/defib var/req_defib = TRUE var/combat = FALSE //If it penetrates armor and gives additional functionality - var/wielded = FALSE // track wielded status on item /obj/item/shockpaddles/ComponentInitialize() . = ..() @@ -367,10 +366,10 @@ update_appearance() /obj/item/shockpaddles/update_icon_state() - icon_state = "[base_icon_state][wielded]" + icon_state = "[base_icon_state][HAS_TRAIT(src, TRAIT_WIELDED)]" item_state = icon_state if(cooldown) - icon_state = "[base_icon_state][wielded]_cooldown" + icon_state = "[base_icon_state][HAS_TRAIT(src, TRAIT_WIELDED)]_cooldown" return ..() /obj/item/shockpaddles/dropped(mob/user) @@ -397,7 +396,7 @@ user.visible_message("[defib] beeps: Unit is unpowered.") playsound(src, 'sound/machines/defib_failed.ogg', 50, FALSE) return - if(!wielded) + if(!HAS_TRAIT(src, TRAIT_WIELDED)) if(iscyborg(user)) to_chat(user, "You must activate the paddles in your active module before you can use them on someone!") else diff --git a/code/modules/surgery/revival.dm b/code/modules/surgery/revival.dm index 13e4e3b784c6..7aef39fb5451 100644 --- a/code/modules/surgery/revival.dm +++ b/code/modules/surgery/revival.dm @@ -42,7 +42,7 @@ . = TRUE if(istype(tool, /obj/item/shockpaddles)) var/obj/item/shockpaddles/S = tool - if((S.req_defib && !S.defib.powered) || !S.wielded || S.cooldown || S.busy) + if((S.req_defib && !S.defib.powered) || !HAS_TRAIT(S, TRAIT_WIELDED) || S.cooldown || S.busy) to_chat(user, "You need to wield both paddles, and [S.defib] must be powered!") return FALSE if(istype(tool, /obj/item/melee/baton)) From e0ff860674a34d9261619c672fc4d25ac6490f6e Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 2 Oct 2024 18:13:01 -0500 Subject: [PATCH 072/167] Automatic changelog generation for PR #3471 [ci skip] --- html/changelogs/AutoChangeLog-pr-3471.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3471.yml diff --git a/html/changelogs/AutoChangeLog-pr-3471.yml b/html/changelogs/AutoChangeLog-pr-3471.yml new file mode 100644 index 000000000000..0c09f7cf8c41 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3471.yml @@ -0,0 +1,4 @@ +author: Bjarl +changes: + - {bugfix: defibs now work again.} +delete-after: true From f4b29c12a16834339ebd4d8823901c1f102ce59b Mon Sep 17 00:00:00 2001 From: Changelogs Date: Thu, 3 Oct 2024 01:02:26 +0000 Subject: [PATCH 073/167] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3471.yml | 4 ---- html/changelogs/archive/2024-10.yml | 3 +++ 2 files changed, 3 insertions(+), 4 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3471.yml diff --git a/html/changelogs/AutoChangeLog-pr-3471.yml b/html/changelogs/AutoChangeLog-pr-3471.yml deleted file mode 100644 index 0c09f7cf8c41..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3471.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Bjarl -changes: - - {bugfix: defibs now work again.} -delete-after: true diff --git a/html/changelogs/archive/2024-10.yml b/html/changelogs/archive/2024-10.yml index 93a916504a34..7dff4c0f36d5 100644 --- a/html/changelogs/archive/2024-10.yml +++ b/html/changelogs/archive/2024-10.yml @@ -21,3 +21,6 @@ - rscadd: Added bunkbeds, which can now be crafted with metal or placed by mappers. - bugfix: Beds facing alternate directions now correctly support people buckling to them and bedsheets being placed on top of them. +2024-10-03: + Bjarl: + - bugfix: defibs now work again. From 16321ff255c72a3f59daaec99987ffeecff32c80 Mon Sep 17 00:00:00 2001 From: Imaginos16 <77556824+Imaginos16@users.noreply.github.com> Date: Thu, 3 Oct 2024 23:03:42 -0700 Subject: [PATCH 074/167] Waste Planet Turf Resprite! (#3473) ## About The Pull Request Does what it says on the tin, redoing all the turf tiles related to the waste planet! ![image](https://github.com/user-attachments/assets/a44e988d-9fbc-4326-aaba-50d0310293a0) ![image](https://github.com/user-attachments/assets/bdb122c8-ac3b-40a5-a98b-b3caa1caa5d5) ## Why It's Good For The Game The previous one was so noisy and grody, it was high time they had a visual update! ## Changelog :cl: PositiveEntropy imageadd: Waste Planet Turfs Now Look Much More Refined! /:cl: --- icons/turf/floors.dmi | Bin 439804 -> 437940 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index 398d5550f810b56640ef64bf6d559d7bdc3afec8..1dbb3a101faeacb1ea8dcae9c3ff16558e6ee26c 100644 GIT binary patch delta 56116 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
bT(Qf*h@E@Z%5%K3KDJH3O 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 Z{C}*rz|Z@ibx;5R002ovPDHLkV1mR}cH;m5 From 418538230e1da67112487f7519b6cbdd16b9594e Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 4 Oct 2024 01:14:28 -0500 Subject: [PATCH 075/167] Automatic changelog generation for PR #3473 [ci skip] --- html/changelogs/AutoChangeLog-pr-3473.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3473.yml diff --git a/html/changelogs/AutoChangeLog-pr-3473.yml b/html/changelogs/AutoChangeLog-pr-3473.yml new file mode 100644 index 000000000000..6ef0f09fd71e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3473.yml @@ -0,0 +1,4 @@ +author: PositiveEntropy +changes: + - {imageadd: Waste Planet Turfs Now Look Much More Refined!} +delete-after: true From 65904292f3d62f2a40601174ee42403976263ee0 Mon Sep 17 00:00:00 2001 From: thgvr <81882910+thgvr@users.noreply.github.com> Date: Thu, 3 Oct 2024 23:03:46 -0700 Subject: [PATCH 076/167] Big sprite cleanup (#3474) ## About The Pull Request Removing a bunch of unused stuff and cleaning up/moving/organizing files. ## Changelog :cl: add: Added new things add: Added more things del: Removed old things balance: rebalanced something fix: fixed a few things soundadd: added a new sound thingy sounddel: removed an old sound thingy imageadd: added some icons and images imagedel: deleted some icons and images spellcheck: fixed a few typos code: changed some code refactor: refactored some code config: changed some config setting admin: messed with admin stuff server: something server ops should know /:cl: --- .../JungleRuins/jungle_cavecrew.dmm | 4 - .../lavaland_surface_lava_canyon.dmm | 4 - .../ReebeRuins/reebe_floating_island.dmm | 2 - .../RockRuins/rockplanet_shippingdock.dmm | 1 - .../whitesands_surface_camp_combination.dmm | 1 - _maps/RandomRuins/SpaceRuins/astraeus.dmm | 4 - .../SpaceRuins/singularity_lab.dmm | 1 - _maps/RandomRuins/SpaceRuins/spacemall.dmm | 14 - _maps/map_files/generic/CentCom.dmm | 16 +- _maps/outpost/nanotrasen_asteroid.dmm | 1 - .../independent/independent_beluga.dmm | 6 +- .../independent/independent_lagoon.dmm | 7 - .../independent/independent_tranquility.dmm | 2 - .../shuttles/nanotrasen/nanotrasen_heron.dmm | 1 - .../shuttles/nanotrasen/nanotrasen_mimir.dmm | 1 - .../shuttles/nanotrasen/nanotrasen_osprey.dmm | 6 +- .../shuttles/nanotrasen/nanotrasen_ranger.dmm | 1 - .../nanotrasen/nanotrasen_skipper.dmm | 2 +- code/__DEFINES/species_clothing_defines.dm | 2 +- code/__DEFINES/traits.dm | 2 - code/controllers/subsystem/traumas.dm | 7 +- .../components/crafting/recipes/clothing.dm | 10 - code/datums/components/slippery.dm | 11 - code/datums/looping_sounds/item_sounds.dm | 11 - .../game/gamemodes/clown_ops/bananium_bomb.dm | 5 - code/game/gamemodes/clown_ops/clown_ops.dm | 1 - .../game/gamemodes/clown_ops/clown_weapons.dm | 42 --- code/game/machinery/computer/arcade.dm | 2 - code/game/machinery/washing_machine.dm | 4 - code/game/mecha/mecha_construction_paths.dm | 4 - code/game/objects/effects/spawners/bundle.dm | 36 --- .../game/objects/effects/spawners/lootdrop.dm | 7 +- .../objects/items/devices/PDA/PDA_types.dm | 1 - .../items/devices/reverse_bear_trap.dm | 130 --------- code/game/objects/items/food/cake.dm | 8 - code/game/objects/items/gift.dm | 4 - .../objects/items/grenades/discogrenade.dm | 4 - code/game/objects/items/miscellaneous.dm | 1 - code/game/objects/items/religion.dm | 34 --- .../objects/items/stacks/sheets/leather.dm | 19 -- .../items/stacks/sheets/sheet_types.dm | 2 - code/game/objects/items/storage/backpack.dm | 1 - code/game/objects/items/storage/toolbox.dm | 2 - code/game/objects/items/toys.dm | 1 - .../crates_lockers/closets/job_closets.dm | 4 - .../crates_lockers/closets/secure/security.dm | 5 - .../crates_lockers/closets/wardrobe.dm | 2 - code/modules/antagonists/cult/cult_items.dm | 21 -- .../antagonists/cult/cult_structures.dm | 2 +- code/modules/antagonists/gang/gang.dm | 11 +- code/modules/antagonists/gang/outfits.dm | 1 - .../antagonists/wizard/equipment/artefact.dm | 1 - code/modules/antagonists/wizard/wizard.dm | 2 - .../awaymissions/mission_code/Academy.dm | 18 -- .../blackmarket/blackmarket_items/clothing.dm | 10 - code/modules/cargo/exports/lavaland.dm | 2 - code/modules/cargo/packs/costumes_toys.dm | 20 +- .../modules/client/loadout/loadout_eyewear.dm | 4 - code/modules/client/loadout/loadout_hat.dm | 4 - code/modules/client/loadout/loadout_suit.dm | 8 - code/modules/clothing/factions/nanotrasen.dm | 2 +- code/modules/clothing/glasses/_glasses.dm | 135 +-------- code/modules/clothing/glasses/hud.dm | 20 -- code/modules/clothing/head/beanie.dm | 16 - code/modules/clothing/head/berets.dm | 12 - code/modules/clothing/head/collectable.dm | 40 --- code/modules/clothing/head/jobs.dm | 48 --- code/modules/clothing/head/misc.dm | 226 --------------- code/modules/clothing/head/misc_special.dm | 150 ---------- .../clothing/outfits/factions/independent.dm | 2 - code/modules/clothing/outfits/standard.dm | 19 -- code/modules/clothing/shoes/bananashoes.dm | 68 ----- code/modules/clothing/shoes/miscellaneous.dm | 166 ----------- code/modules/clothing/suits/chaplainsuits.dm | 66 ----- code/modules/clothing/suits/cloaks.dm | 16 - code/modules/clothing/suits/hoodies.dm | 4 + code/modules/clothing/suits/jobs.dm | 18 -- code/modules/clothing/suits/miscellaneous.dm | 274 ------------------ code/modules/clothing/suits/wiz_robe.dm | 107 ------- .../recipes/tablecraft/recipes_soup.dm | 1 - code/modules/holiday/easter.dm | 25 +- code/modules/holiday/holidays.dm | 1 - code/modules/hydroponics/grown/banana.dm | 9 - code/modules/jobs/job_types/clown.dm | 3 +- .../jobs/job_types/head_of_personnel.dm | 1 - code/modules/mining/abandoned_crates.dm | 1 - .../mining/lavaland/necropolis_chests.dm | 5 +- code/modules/mining/machine_vending.dm | 1 - .../simple_animal/friendly/farm_animals.dm | 2 +- .../living/simple_animal/friendly/penguin.dm | 8 - .../simple_animal/hostile/human/skeleton.dm | 1 - .../hostile/mining_mobs/hivelord_outfits.dm | 2 - code/modules/mod/modules/modules_general.dm | 4 - .../chemistry/reagents/other_reagents.dm | 6 - .../xenobiology/crossbreeding/_clothing.dm | 64 ---- .../xenobiology/crossbreeding/chilling.dm | 3 +- code/modules/spells/spell.dm | 4 +- code/modules/spells/spell_types/lichdom.dm | 4 - code/modules/unit_tests/icons/worn_icons.dm | 2 +- code/modules/uplink/uplink_items.dm | 19 -- code/modules/vehicles/cars/clowncar.dm | 3 +- code/modules/vending/autodrobe.dm | 39 +-- code/modules/vending/clothesmate.dm | 9 - code/modules/vending/wardrobes.dm | 22 +- icons/mob/actions/actions_flightsuit.dmi | Bin 1739 -> 0 bytes icons/mob/clothing/eyes.dmi | Bin 15900 -> 0 bytes icons/mob/clothing/eyes/eyes.dmi | Bin 0 -> 10080 bytes icons/mob/clothing/feet.dmi | Bin 18382 -> 4534 bytes icons/mob/clothing/head.dmi | Bin 129203 -> 85634 bytes icons/mob/clothing/head/winterhood.dmi | Bin 14500 -> 17841 bytes icons/mob/clothing/suit.dmi | Bin 89666 -> 38892 bytes icons/mob/clothing/suits/hooded.dmi | Bin 65925 -> 42502 bytes icons/mob/clothing/suits/spacesuits.dmi | Bin 140523 -> 140497 bytes icons/obj/clothing/eyes/eyes.dmi | Bin 0 -> 9368 bytes icons/obj/clothing/flightsuit.dmi | Bin 9513 -> 0 bytes icons/obj/clothing/glasses.dmi | Bin 17750 -> 0 bytes icons/obj/clothing/hats.dmi | Bin 70350 -> 44391 bytes icons/obj/clothing/head/winterhood.dmi | Bin 5642 -> 6780 bytes icons/obj/clothing/shoes.dmi | Bin 14306 -> 8724 bytes icons/obj/clothing/suits.dmi | Bin 38220 -> 17578 bytes icons/obj/clothing/suits/hooded.dmi | Bin 22808 -> 12561 bytes shiptest.dme | 4 +- 122 files changed, 40 insertions(+), 2132 deletions(-) delete mode 100644 code/game/objects/items/devices/reverse_bear_trap.dm delete mode 100644 code/modules/clothing/shoes/bananashoes.dm delete mode 100644 icons/mob/actions/actions_flightsuit.dmi delete mode 100644 icons/mob/clothing/eyes.dmi create mode 100644 icons/mob/clothing/eyes/eyes.dmi create mode 100644 icons/obj/clothing/eyes/eyes.dmi delete mode 100644 icons/obj/clothing/flightsuit.dmi delete mode 100644 icons/obj/clothing/glasses.dmi diff --git a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm index 063922d0d88e..d40ca2c82b27 100644 --- a/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm +++ b/_maps/RandomRuins/JungleRuins/jungle_cavecrew.dmm @@ -1509,10 +1509,6 @@ }, /area/ruin/jungle/cavecrew/dormitories) "sJ" = ( -/obj/item/clothing/head/crown/fancy{ - pixel_y = 9; - pixel_x = 6 - }, /obj/structure/table/reinforced{ color = "#c1b6a5" }, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm index a5547c39e8fd..92fa7dfb9203 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_lava_canyon.dmm @@ -150,10 +150,6 @@ pixel_x = -5; pixel_y = 12 }, -/obj/item/clothing/head/witchunter{ - pixel_y = 13; - pixel_x = -5 - }, /obj/effect/decal/cleanable/blood/old, /turf/open/floor/plating/asteroid/basalt/lava_land_surface/lit, /area/overmap_encounter/planetoid/lava/explored) diff --git a/_maps/RandomRuins/ReebeRuins/reebe_floating_island.dmm b/_maps/RandomRuins/ReebeRuins/reebe_floating_island.dmm index 2313a8e91d96..d1d0cc588c9a 100644 --- a/_maps/RandomRuins/ReebeRuins/reebe_floating_island.dmm +++ b/_maps/RandomRuins/ReebeRuins/reebe_floating_island.dmm @@ -28,9 +28,7 @@ /obj/item/ammo_casing/caseless/arrow/bronze, /obj/item/ammo_casing/caseless/arrow/bronze, /obj/item/ammo_casing/caseless/arrow/bronze, -/obj/item/clothing/suit/bronze, /obj/item/clothing/head/bronze, -/obj/item/clothing/shoes/bronze, /mob/living/simple_animal/hostile/asteroid/goliath/beast/ancient/crystal, /turf/open/floor/bronze, /area/ruin/reebe) diff --git a/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm b/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm index 342b1422b80f..3394913e2d2d 100644 --- a/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm +++ b/_maps/RandomRuins/RockRuins/rockplanet_shippingdock.dmm @@ -4356,7 +4356,6 @@ /obj/structure/window/reinforced{ dir = 1 }, -/obj/effect/spawner/bundle/costume/marisawizard, /turf/open/floor/plasteel/mono/white, /area/ruin/rockplanet/shippingdockwarehouse) "Kt" = ( diff --git a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm index d6238dcf237b..b903fd3cce78 100644 --- a/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm +++ b/_maps/RandomRuins/SandRuins/whitesands_surface_camp_combination.dmm @@ -400,7 +400,6 @@ /area/ruin) "nZ" = ( /obj/structure/table, -/obj/item/clothing/glasses/meson/gar, /turf/open/floor/concrete, /area/ruin) "ox" = ( diff --git a/_maps/RandomRuins/SpaceRuins/astraeus.dmm b/_maps/RandomRuins/SpaceRuins/astraeus.dmm index 655aff67aa1c..2c62420cef30 100644 --- a/_maps/RandomRuins/SpaceRuins/astraeus.dmm +++ b/_maps/RandomRuins/SpaceRuins/astraeus.dmm @@ -1710,10 +1710,6 @@ /turf/closed/wall/r_wall, /area/ruin/space/has_grav/astraeus/munitions) "TS" = ( -/obj/item/clothing/shoes/clown_shoes{ - pixel_x = -3; - pixel_y = 12 - }, /obj/machinery/airalarm/directional/south, /obj/item/storage/crayons{ pixel_y = -6 diff --git a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm index 7dd57c637f35..afec0282e917 100644 --- a/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm +++ b/_maps/RandomRuins/SpaceRuins/singularity_lab.dmm @@ -7373,7 +7373,6 @@ name = "Prototype Storage" }, /obj/item/gun/energy/laser/captain, -/obj/item/clothing/shoes/wheelys, /obj/structure/sign/poster/retro/lasergun_new{ pixel_y = 32 }, diff --git a/_maps/RandomRuins/SpaceRuins/spacemall.dmm b/_maps/RandomRuins/SpaceRuins/spacemall.dmm index 3be5be2fdce0..db3f30c15f76 100644 --- a/_maps/RandomRuins/SpaceRuins/spacemall.dmm +++ b/_maps/RandomRuins/SpaceRuins/spacemall.dmm @@ -1268,9 +1268,6 @@ /area/ruin/space/has_grav/spacemall/dorms) "eO" = ( /obj/effect/turf_decal/corner/opaque/blue/half, -/obj/item/clothing/suit/whitedress, -/obj/item/clothing/suit/whitedress, -/obj/item/clothing/suit/whitedress, /obj/item/clothing/under/dress/blacktango{ pixel_y = 3 }, @@ -2804,12 +2801,7 @@ /area/ruin/space/has_grav/spacemall) "kC" = ( /obj/structure/rack, -/obj/item/clothing/head/goatpelt, -/obj/item/clothing/head/hardhat/reindeer, /obj/item/clothing/head/collectable/chef, -/obj/item/clothing/head/collectable/HoP, -/obj/item/clothing/head/collectable/rabbitears, -/obj/item/clothing/head/witchunter, /obj/item/clothing/neck/cloak/trans, /obj/item/clothing/neck/cloak/cap, /obj/item/clothing/neck/beads, @@ -4310,8 +4302,6 @@ /obj/item/clothing/glasses/heat{ pixel_y = -6 }, -/obj/item/clothing/glasses/sunglasses/gar/supergar, -/obj/item/clothing/glasses/monocle, /obj/item/clothing/glasses/sunglasses, /obj/item/clothing/glasses/sunglasses, /obj/item/clothing/glasses/sunglasses, @@ -9805,10 +9795,6 @@ pixel_y = 5; pixel_x = 2 }, -/obj/item/clothing/head/spacepolice{ - pixel_y = -3; - pixel_x = 4 - }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/spacemall/dorms) "Li" = ( diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 2f651ffb4025..d7715e22b561 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -2107,12 +2107,6 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plasteel, /area/centcom/control) -"awU" = ( -/obj/item/clothing/suit/wizrobe/black, -/obj/item/clothing/head/wizard/black, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel, -/area/wizard_station) "awV" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -2330,8 +2324,6 @@ /area/wizard_station) "ayF" = ( /obj/structure/table/wood, -/obj/item/clothing/suit/wizrobe/magusblue, -/obj/item/clothing/head/wizard/magus, /obj/item/staff, /obj/structure/mirror/magic{ pixel_y = 28 @@ -2341,8 +2333,6 @@ /area/wizard_station) "ayG" = ( /obj/structure/table/wood, -/obj/item/clothing/suit/wizrobe/magusred, -/obj/item/clothing/head/wizard/magus, /obj/item/staff, /turf/open/floor/plasteel, /area/wizard_station) @@ -2415,8 +2405,6 @@ /obj/structure/closet/crate{ icon_state = "crateopen" }, -/obj/item/clothing/suit/wizrobe/red, -/obj/item/clothing/head/wizard/red, /obj/item/staff, /obj/item/clothing/shoes/sandal/magic, /turf/open/floor/plasteel, @@ -2472,8 +2460,6 @@ /area/wizard_station) "azP" = ( /obj/item/clothing/shoes/sandal/marisa, -/obj/item/clothing/suit/wizrobe/marisa, -/obj/item/clothing/head/wizard/marisa, /obj/item/staff/broom, /turf/open/floor/plasteel, /area/wizard_station) @@ -22454,7 +22440,7 @@ aqZ aqZ aqZ aqE -awU +aXi ayg aHq aqE diff --git a/_maps/outpost/nanotrasen_asteroid.dmm b/_maps/outpost/nanotrasen_asteroid.dmm index f537143c31e9..d5af45bfef2d 100644 --- a/_maps/outpost/nanotrasen_asteroid.dmm +++ b/_maps/outpost/nanotrasen_asteroid.dmm @@ -14514,7 +14514,6 @@ "Zb" = ( /obj/structure/closet/secure_closet/freezer/wall/directional/east, /obj/item/clothing/under/shorts/cookjorts, -/obj/item/clothing/shoes/cookflops, /obj/item/clothing/suit/toggle/chef, /obj/item/clothing/under/rank/civilian/chef, /obj/item/clothing/under/rank/civilian/chef/skirt, diff --git a/_maps/shuttles/independent/independent_beluga.dmm b/_maps/shuttles/independent/independent_beluga.dmm index ca90adbeabe5..c283c0d21584 100644 --- a/_maps/shuttles/independent/independent_beluga.dmm +++ b/_maps/shuttles/independent/independent_beluga.dmm @@ -666,7 +666,7 @@ /obj/item/clothing/glasses/sunglasses/big, /obj/item/clothing/suit/toggle/lawyer/burgundy, /obj/item/clothing/suit/toggle/lawyer/navy, -/obj/item/clothing/head/hopcap, +/obj/item/clothing/head/nanotrasen/officer, /obj/item/gun/energy/e_gun/mini, /obj/item/clothing/head/HoS/cowboy, /obj/item/clothing/suit/jacket/leather/duster/command, @@ -3910,7 +3910,6 @@ }, /obj/machinery/light/small/directional/west, /obj/item/clothing/under/suit/charcoal, -/obj/item/clothing/glasses/monocle, /obj/item/clothing/shoes/laceup{ pixel_y = -11 }, @@ -4985,9 +4984,6 @@ /obj/item/clothing/shoes/sneakers/black, /obj/item/clothing/shoes/sneakers/black, /obj/item/clothing/accessory/waistcoat, -/obj/item/clothing/shoes/cookflops{ - pixel_y = -11 - }, /turf/open/floor/carpet/nanoweave/beige, /area/ship/crew/dorm) "Xn" = ( diff --git a/_maps/shuttles/independent/independent_lagoon.dmm b/_maps/shuttles/independent/independent_lagoon.dmm index 1c8c2307a7e8..5130aed76be3 100644 --- a/_maps/shuttles/independent/independent_lagoon.dmm +++ b/_maps/shuttles/independent/independent_lagoon.dmm @@ -1171,9 +1171,6 @@ "hT" = ( /obj/structure/table/wood, /obj/item/clothing/mask/gas/clown_hat, -/obj/item/bikehorn, -/obj/item/clothing/shoes/clown_shoes, -/obj/item/megaphone/clown, /obj/item/reagent_containers/food/drinks/soda_cans/canned_laughter, /obj/item/radio/intercom/directional/south, /turf/open/floor/carpet/nanoweave/purple, @@ -6719,10 +6716,6 @@ /area/ship/hallway/aft) "TX" = ( /obj/structure/table, -/obj/item/clothing/shoes/wheelys{ - pixel_x = 4; - pixel_y = 9 - }, /obj/item/skateboard/hoverboard{ pixel_x = -4 }, diff --git a/_maps/shuttles/independent/independent_tranquility.dmm b/_maps/shuttles/independent/independent_tranquility.dmm index fe5a2993e2fc..020de62890e7 100644 --- a/_maps/shuttles/independent/independent_tranquility.dmm +++ b/_maps/shuttles/independent/independent_tranquility.dmm @@ -1329,9 +1329,7 @@ /obj/item/clothing/under/dress/skirt/red, /obj/item/clothing/suit/longcoat, /obj/item/clothing/suit/jacket/letterman_red, -/obj/item/clothing/head/wizard/marisa, /obj/item/clothing/head/soft/mime, -/obj/item/clothing/shoes/wheelys, /obj/item/clothing/shoes/sandal, /obj/item/clothing/shoes/sneakers/black, /turf/open/floor/carpet/green, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm index 7d8db3ebb68b..a5673c22d7bc 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_heron.dmm @@ -4136,7 +4136,6 @@ "pk" = ( /obj/structure/closet/secure_closet/freezer/wall/directional/east, /obj/item/clothing/under/shorts/cookjorts, -/obj/item/clothing/shoes/cookflops, /obj/item/clothing/suit/toggle/chef, /obj/item/clothing/under/rank/civilian/chef, /obj/item/clothing/under/rank/civilian/chef/skirt, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm index aa2a0aad5b1f..716d68f653a9 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm @@ -4102,7 +4102,6 @@ /area/ship/crew/dorm) "yu" = ( /obj/item/clothing/mask/gas/monkeymask, -/obj/item/clothing/suit/monkeysuit, /turf/open/floor/plating, /area/ship/maintenance/fore) "yw" = ( diff --git a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm b/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm index e99a4cd360a8..4079e386726f 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm @@ -1032,7 +1032,8 @@ /obj/item/clothing/suit/armor/nanotrasen/captain, /obj/item/clothing/suit/armor/nanotrasen/captain/parade, /obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/head/caphat/nt, +/obj/item/clothing/head/nanotrasen/captain/peaked, +/obj/item/clothing/head/nanotrasen/captain, /obj/item/storage/belt/sabre, /obj/item/assembly/flash/handheld, /obj/item/disk/nuclear/fake{ @@ -2596,7 +2597,6 @@ /obj/item/clothing/suit/toggle/chef, /obj/item/clothing/accessory/waistcoat, /obj/item/clothing/head/chefhat, -/obj/item/clothing/head/bowler, /obj/item/storage/box/drinkingglasses, /obj/item/storage/fancy/candle_box, /obj/item/radio/intercom/directional/east, @@ -5261,7 +5261,7 @@ /obj/item/clothing/suit/armor/vest/hop, /obj/item/clothing/gloves/color/white, /obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/head/hopcap/nt, +/obj/item/clothing/head/nanotrasen/officer, /obj/item/assembly/flash/handheld, /obj/item/storage/box/ids, /obj/item/storage/box/PDAs, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm index 4e194b4bdb98..07b8722e5e7b 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_ranger.dmm @@ -231,7 +231,6 @@ /area/ship/hallway/central) "bw" = ( /obj/structure/closet/secure_closet/lp/security, -/obj/item/clothing/glasses/sunglasses/gar, /obj/item/melee/classic_baton/telescopic, /obj/item/flashlight/seclite, /obj/item/melee/knife/survival, diff --git a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm index a8f5bc22c7f4..b4ae5230cc7b 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm @@ -1513,7 +1513,7 @@ /obj/item/storage/backpack/satchel/leather, /obj/item/clothing/shoes/laceup, /obj/item/clothing/suit/armor/vest/hop, -/obj/item/clothing/head/hopcap/nt, +/obj/item/clothing/head/nanotrasen/officer/fedora, /obj/item/storage/box/ids, /obj/item/storage/box/PDAs, /obj/item/assembly/flash/handheld, diff --git a/code/__DEFINES/species_clothing_defines.dm b/code/__DEFINES/species_clothing_defines.dm index 937adf6b7cdd..6f07a76c8293 100644 --- a/code/__DEFINES/species_clothing_defines.dm +++ b/code/__DEFINES/species_clothing_defines.dm @@ -12,7 +12,7 @@ #define DEFAULT_HEAD_PATH 'icons/mob/clothing/head.dmi' #define DEFAULT_NECK_PATH 'icons/mob/clothing/neck.dmi' #define DEFAULT_GLOVES_PATH 'icons/mob/clothing/hands.dmi' -#define DEFAULT_GLASSES_PATH 'icons/mob/clothing/eyes.dmi' +#define DEFAULT_GLASSES_PATH 'icons/mob/clothing/eyes/eyes.dmi' #define DEFAULT_BELT_PATH 'icons/mob/clothing/belt.dmi' ///VOX PATHS diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 4925981b2a91..b70318482a39 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -403,14 +403,12 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define STICKY_MOUSTACHE_TRAIT "sticky-moustache" #define CHAINSAW_FRENZY_TRAIT "chainsaw-frenzy" #define CHRONO_GUN_TRAIT "chrono-gun" -#define REVERSE_BEAR_TRAP_TRAIT "reverse-bear-trap" #define CURSED_MASK_TRAIT "cursed-mask" #define HAND_REPLACEMENT_TRAIT "magic-hand" #define HOT_POTATO_TRAIT "hot-potato" #define ABDUCTOR_VEST_TRAIT "abductor-vest" #define CAPTURE_THE_FLAG_TRAIT "capture-the-flag" #define EYE_OF_GOD_TRAIT "eye-of-god" -#define SHAMEBRERO_TRAIT "shamebrero" #define CHRONOSUIT_TRAIT "chronosuit" #define LOCKED_HELMET_TRAIT "locked-helmet" #define NINJA_SUIT_TRAIT "ninja-suit" diff --git a/code/controllers/subsystem/traumas.dm b/code/controllers/subsystem/traumas.dm index 333dee323e87..e98956775698 100644 --- a/code/controllers/subsystem/traumas.dm +++ b/code/controllers/subsystem/traumas.dm @@ -68,7 +68,7 @@ SUBSYSTEM_DEF(traumas) /obj/machinery/door/airlock/security, /obj/effect/hallucination/simple/securitron)), "clowns" = typecacheof(list( - /obj/item/clothing/under/rank/civilian/clown, /obj/item/clothing/shoes/clown_shoes, + /obj/item/clothing/under/rank/civilian/clown, /obj/item/clothing/mask/gas/clown_hat, /obj/item/instrument/bikehorn, /obj/item/pda/clown, /obj/item/grown/bananapeel, /obj/item/reagent_containers/food/snacks/cheesiehonkers, /obj/item/trash/cheesie)), @@ -113,7 +113,7 @@ SUBSYSTEM_DEF(traumas) /obj/structure/sign/departments/medbay, /obj/machinery/door/airlock/medical, /obj/machinery/sleeper, /obj/machinery/stasis, /obj/machinery/dna_scannernew, /obj/machinery/atmospherics/components/unary/cryo_cell, /obj/item/retractor, /obj/item/hemostat, /obj/item/cautery, /obj/item/surgicaldrill, /obj/item/scalpel, /obj/item/circular_saw, - /obj/item/clothing/suit/bio_suit/plaguedoctorsuit, /obj/item/clothing/head/plaguedoctorhat, /obj/item/clothing/mask/gas/plaguedoctor)), + /obj/item/clothing/suit/bio_suit/plaguedoctorsuit, /obj/item/clothing/mask/gas/plaguedoctor)), "authority" = typecacheof(list( /obj/item/clothing/under/rank/command/captain, /obj/item/clothing/under/rank/command/head_of_personnel, @@ -126,7 +126,7 @@ SUBSYSTEM_DEF(traumas) "the supernatural" = typecacheof(list( /obj/structure/destructible/cult, /obj/item/tome, /obj/item/restraints/legcuffs/bola/cult, /obj/item/clothing/suit/space/hardsuit/cult, - /obj/item/clothing/suit/hooded/cultrobes, /obj/item/clothing/head/hooded/cult_hoodie, /obj/effect/rune, + /obj/effect/rune, /obj/machinery/door/airlock/cult, /obj/singularity/narsie, /obj/item/soulstone, /obj/item/clothing/suit/wizrobe, /obj/item/clothing/head/wizard, /obj/item/spellbook, /obj/item/staff, @@ -146,7 +146,6 @@ SUBSYSTEM_DEF(traumas) "birds" = typecacheof(list( /obj/item/clothing/mask/gas/plaguedoctor, /obj/item/reagent_containers/food/snacks/cracker, - /obj/item/clothing/suit/chickensuit, /obj/item/clothing/head/chicken, /obj/item/clothing/suit/toggle/owlwings, /obj/item/clothing/under/costume/owl, /obj/item/clothing/mask/gas/owl_mask)), "anime" = typecacheof(list( diff --git a/code/datums/components/crafting/recipes/clothing.dm b/code/datums/components/crafting/recipes/clothing.dm index e574337f9861..1aa1570df419 100644 --- a/code/datums/components/crafting/recipes/clothing.dm +++ b/code/datums/components/crafting/recipes/clothing.dm @@ -213,13 +213,3 @@ reqs = list(/obj/item/stack/sheet/sinew = 2, /obj/item/stack/sheet/animalhide/goliath_hide = 2) category = CAT_CLOTHING - -/datum/crafting_recipe/polarbearcloak - name = "Polar Cloak" - result = /obj/item/clothing/suit/hooded/cloak/goliath/polar - time = 50 - reqs = list(/obj/item/stack/sheet/leather = 2, - /obj/item/stack/sheet/sinew = 2, - /obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 2) - blacklist = list(/obj/item/stack/sheet/animalhide/goliath_hide) - category = CAT_CLOTHING diff --git a/code/datums/components/slippery.dm b/code/datums/components/slippery.dm index 5c2c88ccfee7..c31ba2bd50e5 100644 --- a/code/datums/components/slippery.dm +++ b/code/datums/components/slippery.dm @@ -93,14 +93,3 @@ /datum/component/slippery/proc/Slip_on_wearer(datum/source, atom/movable/arrived) SIGNAL_HANDLER - -/// Used for making the clown PDA only slip if the clown is wearing his shoes and the elusive banana-skin belt -/datum/component/slippery/clowning - -/datum/component/slippery/clowning/Slip_on_wearer(datum/source, atom/movable/AM) - var/obj/item/I = holder.get_item_by_slot(ITEM_SLOT_FEET) - if(holder.body_position == LYING_DOWN && !holder.buckled) - if(istype(I, /obj/item/clothing/shoes/clown_shoes)) - Slip(source, AM) - else - to_chat(AM,"[parent] failed to slip anyone. Perhaps I shouldn't have abandoned my legacy...") diff --git a/code/datums/looping_sounds/item_sounds.dm b/code/datums/looping_sounds/item_sounds.dm index 96c2ec7533c3..7eeabf513b8e 100644 --- a/code/datums/looping_sounds/item_sounds.dm +++ b/code/datums/looping_sounds/item_sounds.dm @@ -36,17 +36,6 @@ #undef RAD_GEIGER_MEDIUM #undef RAD_GEIGER_HIGH -/datum/looping_sound/reverse_bear_trap - mid_sounds = list('sound/effects/clock_tick.ogg') - mid_length = 3.5 - volume = 25 - - -/datum/looping_sound/reverse_bear_trap_beep - mid_sounds = list('sound/machines/beep.ogg') - mid_length = 60 - volume = 10 - /datum/looping_sound/siren mid_sounds = list('sound/items/weeoo1.ogg' = 1) mid_length = 15 diff --git a/code/game/gamemodes/clown_ops/bananium_bomb.dm b/code/game/gamemodes/clown_ops/bananium_bomb.dm index 01c270895360..74178f248436 100644 --- a/code/game/gamemodes/clown_ops/bananium_bomb.dm +++ b/code/game/gamemodes/clown_ops/bananium_bomb.dm @@ -43,11 +43,6 @@ ADD_TRAIT(C, TRAIT_NODROP, CLOWN_NUKE_TRAIT) H.equip_to_slot_or_del(C, ITEM_SLOT_ICLOTHING) - if(!H.shoes || H.dropItemToGround(H.shoes)) - C = new /obj/item/clothing/shoes/clown_shoes(H) - ADD_TRAIT(C, TRAIT_NODROP, CLOWN_NUKE_TRAIT) - H.equip_to_slot_or_del(C, ITEM_SLOT_FEET) - if(!H.wear_mask || H.dropItemToGround(H.wear_mask)) C = new /obj/item/clothing/mask/gas/clown_hat(H) ADD_TRAIT(C, TRAIT_NODROP, CLOWN_NUKE_TRAIT) diff --git a/code/game/gamemodes/clown_ops/clown_ops.dm b/code/game/gamemodes/clown_ops/clown_ops.dm index 1db631f18aa7..87dc3b65d438 100644 --- a/code/game/gamemodes/clown_ops/clown_ops.dm +++ b/code/game/gamemodes/clown_ops/clown_ops.dm @@ -29,7 +29,6 @@ /datum/outfit/syndicate/clownop name = "Clown Operative - Basic" uniform = /obj/item/clothing/under/syndicate - shoes = /obj/item/clothing/shoes/clown_shoes/combat mask = /obj/item/clothing/mask/gas/clown_hat gloves = /obj/item/clothing/gloves/combat back = /obj/item/storage/backpack/clown diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm index 3064a52a48ad..a3226e864aa7 100644 --- a/code/game/gamemodes/clown_ops/clown_weapons.dm +++ b/code/game/gamemodes/clown_ops/clown_weapons.dm @@ -10,48 +10,6 @@ volume = 30 list_reagents = list(/datum/reagent/lube = 30) -//COMBAT CLOWN SHOES -//Clown shoes with combat stats and noslip. Of course they still squeak. -/obj/item/clothing/shoes/clown_shoes/combat - name = "combat clown shoes" - desc = "advanced clown shoes that protect the wearer and render them nearly immune to slipping on their own peels. They also squeak at 100% capacity." - clothing_flags = NOSLIP - slowdown = SHOES_SLOWDOWN - armor = list("melee" = 25, "bullet" = 25, "laser" = 25, "energy" = 25, "bomb" = 50, "bio" = 10, "rad" = 0, "fire" = 70, "acid" = 50) - strip_delay = 70 - resistance_flags = NONE - permeability_coefficient = 0.05 - pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes - -//The super annoying version -/obj/item/clothing/shoes/clown_shoes/banana_shoes/combat - name = "mk-honk combat shoes" - desc = "The culmination of years of clown combat research, these shoes leave a trail of chaos in their wake. They will slowly recharge themselves over time, or can be manually charged with bananium." - slowdown = SHOES_SLOWDOWN - armor = list("melee" = 25, "bullet" = 25, "laser" = 25, "energy" = 25, "bomb" = 50, "bio" = 10, "rad" = 0, "fire" = 70, "acid" = 50) - strip_delay = 70 - resistance_flags = NONE - permeability_coefficient = 0.05 - pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes - always_noslip = TRUE - var/max_recharge = 3000 //30 peels worth - var/recharge_rate = 34 //about 1/3 of a peel per tick - -/obj/item/clothing/shoes/clown_shoes/banana_shoes/combat/Initialize() - . = ..() - var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) - bananium.insert_amount_mat(max_recharge, /datum/material/hellstone) - START_PROCESSING(SSobj, src) - -/obj/item/clothing/shoes/clown_shoes/banana_shoes/combat/process() - var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) - var/bananium_amount = bananium.get_material_amount(/datum/material/hellstone) - if(bananium_amount < max_recharge) - bananium.insert_amount_mat(min(recharge_rate, max_recharge - bananium_amount), /datum/material/hellstone) - -/obj/item/clothing/shoes/clown_shoes/banana_shoes/combat/attack_self(mob/user) - ui_action_click(user) - //BANANIUM SWORD /obj/item/melee/transforming/energy/sword/bananium diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 24f66242d58e..2389b699e7b9 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -44,7 +44,6 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list( /obj/item/extendohand/acme = 1, /obj/item/hot_potato/harmless/toy = 1, /obj/item/card/emagfake = 1, - /obj/item/clothing/shoes/wheelys = 2, /obj/item/clothing/shoes/kindleKicks = 2, /obj/item/toy/plush/goatplushie/angry/realgoat = 2, /obj/item/toy/plush/moth = 2, @@ -295,7 +294,6 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list( if(obj_flags & EMAGGED) new /obj/effect/spawner/newbomb/timer/syndicate(loc) - new /obj/item/clothing/head/collectable/petehat(loc) message_admins("[ADMIN_LOOKUPFLW(usr)] has outbombed Cuban Pete and been awarded a bomb.") log_game("[key_name(usr)] has outbombed Cuban Pete and been awarded a bomb.") Reset() diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index 1d6a9e3845b8..4f32fe1d2d3d 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -233,10 +233,6 @@ GLOBAL_LIST_INIT(dye_registry, list( new /obj/item/stack/sheet/wethide(drop_location(), amount) qdel(src) -/obj/item/clothing/suit/hooded/ian_costume/machine_wash(obj/machinery/washing_machine/WM) - new /obj/item/reagent_containers/food/snacks/meat/slab/corgi(loc) - qdel(src) - /mob/living/simple_animal/pet/machine_wash(obj/machinery/washing_machine/WM) WM.bloody_mess = TRUE gib() diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index 5172619ba022..7a3c67140b5e 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -760,10 +760,6 @@ list( "key" = /obj/item/bikehorn ), - list( - "key" = /obj/item/clothing/shoes/clown_shoes, - "action" = ITEM_DELETE - ), list( "key" = /obj/item/bikehorn ), diff --git a/code/game/objects/effects/spawners/bundle.dm b/code/game/objects/effects/spawners/bundle.dm index edab392613f3..e4f36e8b827d 100644 --- a/code/game/objects/effects/spawners/bundle.dm +++ b/code/game/objects/effects/spawners/bundle.dm @@ -12,13 +12,6 @@ for(var/path in items) new path(loc) -/obj/effect/spawner/bundle/costume/chicken - name = "chicken costume spawner" - items = list( - /obj/item/clothing/suit/chickensuit, - /obj/item/clothing/head/chicken, - /obj/item/reagent_containers/food/snacks/egg) - /obj/effect/spawner/bundle/costume/gladiator name = "gladiator costume spawner" items = list( @@ -72,7 +65,6 @@ name = "prig costume spawner" items = list( /obj/item/clothing/accessory/waistcoat, - /obj/item/clothing/glasses/monocle, /obj/effect/spawner/lootdrop/minor/bowler_or_that, /obj/item/clothing/shoes/sneakers/black, /obj/item/cane, @@ -83,7 +75,6 @@ name = "plague doctor costume spawner" items = list( /obj/item/clothing/suit/bio_suit/plaguedoctorsuit, - /obj/item/clothing/head/plaguedoctorhat, /obj/item/clothing/mask/gas/plaguedoctor) /obj/effect/spawner/bundle/costume/nightowl @@ -108,39 +99,12 @@ /obj/effect/spawner/lootdrop/minor/pirate_or_bandana, /obj/item/clothing/glasses/eyepatch) -/obj/effect/spawner/bundle/costume/imperium_monk - name = "imperium monk costume spawner" - items = list( - /obj/item/clothing/suit/imperium_monk, - /obj/effect/spawner/lootdrop/minor/twentyfive_percent_cyborg_mask) - -/obj/effect/spawner/bundle/costume/holiday_priest - name = "holiday priest costume spawner" - items = list( - /obj/item/clothing/suit/chaplainsuit/holidaypriest) - -/obj/effect/spawner/bundle/costume/marisawizard - name = "marisa wizard costume spawner" - items = list( - /obj/item/clothing/shoes/sandal/marisa, - /obj/item/clothing/head/wizard/marisa/fake, - /obj/item/clothing/suit/wizrobe/marisa/fake) - /obj/effect/spawner/bundle/costume/cutewitch name = "cute witch costume spawner" items = list( /obj/item/clothing/under/dress/sundress, - /obj/item/clothing/head/witchwig, /obj/item/staff/broom) -/obj/effect/spawner/bundle/costume/wizard - name = "wizard costume spawner" - items = list( - /obj/item/clothing/shoes/sandal, - /obj/item/clothing/suit/wizrobe/fake, - /obj/item/clothing/head/wizard/fake, - /obj/item/staff) - /obj/effect/spawner/bundle/costume/mafia name = "black mafia outfit spawner" items = list( diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 2caecd950a9f..364ddeb72298 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -279,20 +279,17 @@ /obj/effect/spawner/lootdrop/minor/beret_or_rabbitears name = "beret or rabbit ears spawner" loot = list( - /obj/item/clothing/head/beret = 1, - /obj/item/clothing/head/rabbitears = 1) + /obj/item/clothing/head/beret = 1) /obj/effect/spawner/lootdrop/minor/bowler_or_that name = "bowler or top hat spawner" loot = list( - /obj/item/clothing/head/bowler = 1, /obj/item/clothing/head/that = 1) /obj/effect/spawner/lootdrop/minor/kittyears_or_rabbitears name = "kitty ears or rabbit ears spawner" loot = list( - /obj/item/clothing/head/kitty = 1, - /obj/item/clothing/head/rabbitears = 1) + /obj/item/clothing/head/kitty = 1) /obj/effect/spawner/lootdrop/minor/pirate_or_bandana name = "pirate hat or bandana spawner" diff --git a/code/game/objects/items/devices/PDA/PDA_types.dm b/code/game/objects/items/devices/PDA/PDA_types.dm index c8a918732a9d..4a7817c5eb60 100644 --- a/code/game/objects/items/devices/PDA/PDA_types.dm +++ b/code/game/objects/items/devices/PDA/PDA_types.dm @@ -10,7 +10,6 @@ /obj/item/pda/clown/ComponentInitialize() . = ..() - AddComponent(/datum/component/slippery/clowning, 120, NO_SLIP_WHEN_WALKING, CALLBACK(src, PROC_REF(AfterSlip))) AddComponent(/datum/component/wearertargeting/sitcomlaughter, CALLBACK(src, PROC_REF(after_sitcom_laugh))) /obj/item/pda/clown/proc/AfterSlip(mob/living/carbon/human/M) diff --git a/code/game/objects/items/devices/reverse_bear_trap.dm b/code/game/objects/items/devices/reverse_bear_trap.dm deleted file mode 100644 index 5d90c839bebf..000000000000 --- a/code/game/objects/items/devices/reverse_bear_trap.dm +++ /dev/null @@ -1,130 +0,0 @@ -/obj/item/reverse_bear_trap - name = "reverse bear trap" - desc = "A horrifying set of shut metal jaws, rigged to a kitchen timer and secured by padlock to a head-mounted clamp. To apply, hit someone with it." - icon = 'icons/obj/device.dmi' - icon_state = "reverse_bear_trap" - slot_flags = ITEM_SLOT_HEAD - flags_1 = CONDUCT_1 - resistance_flags = FIRE_PROOF | UNACIDABLE - w_class = WEIGHT_CLASS_NORMAL - obj_integrity = 300 - max_integrity = 300 - item_state = "rack_parts" - lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' - righthand_file = 'icons/mob/inhands/items_righthand.dmi' - - var/ticking = FALSE - var/time_left = 60 //seconds remaining until pop - var/escape_chance = 0 //chance per "fiddle" to get the trap off your head - var/struggling = FALSE - - var/time_since_last_beep = 0 - var/datum/looping_sound/reverse_bear_trap/soundloop - var/datum/looping_sound/reverse_bear_trap_beep/soundloop2 - -/obj/item/reverse_bear_trap/Initialize() - . = ..() - soundloop = new(list(src)) - soundloop2 = new(list(src)) - -/obj/item/reverse_bear_trap/Destroy() - QDEL_NULL(soundloop) - QDEL_NULL(soundloop2) - STOP_PROCESSING(SSprocessing, src) - return ..() - -/obj/item/reverse_bear_trap/process() - if(!ticking) - return - time_left-- - soundloop2.mid_length = max(0.5, time_left - 5) //beepbeepbeepbeepbeep - if(!time_left || !isliving(loc)) - playsound(src, 'sound/machines/microwave/microwave-end.ogg', 100, FALSE) - soundloop.stop() - soundloop2.stop() - to_chat(loc, "*ding*") - addtimer(CALLBACK(src, PROC_REF(snap)), 2) - -/obj/item/reverse_bear_trap/attack_hand(mob/user) - if(iscarbon(user)) - var/mob/living/carbon/C = user - if(C.get_item_by_slot(ITEM_SLOT_HEAD) == src) - if(HAS_TRAIT_FROM(src, TRAIT_NODROP, REVERSE_BEAR_TRAP_TRAIT) && !struggling) - struggling = TRUE - var/fear_string - switch(time_left) - if(0 to 5) - fear_string = "agonizingly" - if(5 to 20) - fear_string = "desperately" - if(20 to 40) - fear_string = "panickedly" - if(40 to 50) - fear_string = "shakily" - if(50 to 60) - fear_string = "" - C.visible_message("[C] fiddles with and pulls at [src]...", \ - "You [fear_string] try to pull at [src]...", "You hear clicking and ticking.") - if(!do_after(user, 20, target = src)) - struggling = FALSE - return - if(!prob(escape_chance)) - to_chat(user, "It doesn't budge!") - escape_chance++ - else - user.visible_message("The lock on [user]'s [name] pops open!", \ - "You force open the padlock!", "You hear a single, pronounced click!") - REMOVE_TRAIT(src, TRAIT_NODROP, REVERSE_BEAR_TRAP_TRAIT) - struggling = FALSE - return - ..() - -/obj/item/reverse_bear_trap/attack(mob/living/target, mob/living/user) - if(target.get_item_by_slot(ITEM_SLOT_HEAD)) - to_chat(user, "Remove [target.p_their()] headgear first!") - return - target.visible_message("[user] starts forcing [src] onto [target]'s head!", \ - "[target] starts forcing [src] onto your head!", "You hear clanking.") - to_chat(user, "You start forcing [src] onto [target]'s head...") - if(!do_after(user, 30, target = target) || target.get_item_by_slot(ITEM_SLOT_HEAD)) - return - target.visible_message("[user] forces and locks [src] onto [target]'s head!", \ - "[target] locks [src] onto your head!", "You hear a click, and then a timer ticking down.") - to_chat(user, "You force [src] onto [target]'s head and click the padlock shut.") - user.dropItemToGround(src) - target.equip_to_slot_if_possible(src, ITEM_SLOT_HEAD) - arm() - notify_ghosts("[user] put a reverse bear trap on [target]!", source = src, action = NOTIFY_ORBIT, flashwindow = FALSE, ghost_sound = 'sound/machines/beep.ogg', notify_volume = 75, header = "Reverse bear trap armed") - -/obj/item/reverse_bear_trap/proc/snap() - reset() - var/mob/living/carbon/human/H = loc - if(!istype(H) || H.get_item_by_slot(ITEM_SLOT_HEAD) != src) - visible_message("[src]'s jaws snap open with an ear-piercing crack!") - playsound(src, 'sound/effects/snap.ogg', 75, TRUE) - else - var/mob/living/carbon/human/jill = loc - jill.visible_message("[src] goes off in [jill]'s mouth, ripping [jill.p_their()] head apart!", "[src] goes off!") - jill.emote("scream") - playsound(src, 'sound/effects/snap.ogg', 75, TRUE, frequency = 0.5) - playsound(src, 'sound/effects/splat.ogg', 50, TRUE, frequency = 0.5) - jill.apply_damage(9999, BRUTE, BODY_ZONE_HEAD) - jill.death() //just in case, for some reason, they're still alive - flash_color(jill, flash_color = "#FF0000", flash_time = 100) - -/obj/item/reverse_bear_trap/proc/reset() - ticking = FALSE - REMOVE_TRAIT(src, TRAIT_NODROP, REVERSE_BEAR_TRAP_TRAIT) - soundloop.stop() - soundloop2.stop() - STOP_PROCESSING(SSprocessing, src) - -/obj/item/reverse_bear_trap/proc/arm() //hulen - ticking = TRUE - escape_chance = initial(escape_chance) //we keep these vars until re-arm, for tracking purposes - time_left = initial(time_left) - ADD_TRAIT(src, TRAIT_NODROP, REVERSE_BEAR_TRAP_TRAIT) - soundloop.start() - soundloop2.mid_length = initial(soundloop2.mid_length) - soundloop2.start() - START_PROCESSING(SSprocessing, src) diff --git a/code/game/objects/items/food/cake.dm b/code/game/objects/items/food/cake.dm index d6299a24d524..12445d50d8f2 100644 --- a/code/game/objects/items/food/cake.dm +++ b/code/game/objects/items/food/cake.dm @@ -212,10 +212,6 @@ foodtypes = GRAIN | DAIRY | JUNKFOOD | SUGAR slice_type = /obj/item/food/cakeslice/birthday -/obj/item/food/cake/birthday/microwave_act(obj/machinery/microwave/M) //super sekrit club - new /obj/item/clothing/head/hardhat/cakehat(get_turf(src)) - qdel(src) - /obj/item/food/cakeslice/birthday name = "birthday cake slice" desc = "A slice of your birthday." @@ -244,10 +240,6 @@ tastes = list("cake" = 3, "a Vlad's Salad" = 1) slice_type = /obj/item/food/cakeslice/birthday/energy -/obj/item/food/cake/birthday/energy/microwave_act(obj/machinery/microwave/M) //super sekriter club - new /obj/item/clothing/head/hardhat/cakehat/energycake(get_turf(src)) - qdel(src) - /obj/item/food/cake/birthday/energy/proc/energy_bite(mob/living/user) to_chat(user, "As you eat the cake, you accidentally hurt yourself on the embedded energy sword!") user.apply_damage(30, BURN, BODY_ZONE_HEAD) // ITs an ENERGY sword, so it burns, duh diff --git a/code/game/objects/items/gift.dm b/code/game/objects/items/gift.dm index 31ac7d44ecff..592a4f6364fb 100644 --- a/code/game/objects/items/gift.dm +++ b/code/game/objects/items/gift.dm @@ -74,10 +74,6 @@ GLOBAL_LIST_EMPTY(possible_gifts) /obj/item/storage/belt/utility/full, /obj/item/clothing/neck/tie/horrible, /obj/item/clothing/suit/jacket/leather, - /obj/item/clothing/suit/jacket/leather/overcoat, - /obj/item/clothing/suit/poncho, - /obj/item/clothing/suit/poncho/green, - /obj/item/clothing/suit/poncho/red, /obj/item/clothing/suit/snowman, /obj/item/clothing/head/snowman, /obj/item/stack/sheet/mineral/coal) diff --git a/code/game/objects/items/grenades/discogrenade.dm b/code/game/objects/items/grenades/discogrenade.dm index c582a35e3ff3..b8f988f363fe 100644 --- a/code/game/objects/items/grenades/discogrenade.dm +++ b/code/game/objects/items/grenades/discogrenade.dm @@ -107,10 +107,6 @@ target.show_message(span_warning("You resist your inner urges to break out your best moves."), 2) target.set_drugginess(5) return - if(istype(target.get_item_by_slot(ITEM_SLOT_HEAD), /obj/item/clothing/head/foilhat)) - to_chat(target, span_userdanger("BIG DISCO WON'T CORRUPT ME WITH THEIR POST ICW PSY-OP MUSIC!")) - target.emote("scream") - return target.set_drugginess(10) target.show_message(span_warning("You feel a strong rythme and your muscles spasm uncontrollably, you begin dancing and cannot move!"), 2) diff --git a/code/game/objects/items/miscellaneous.dm b/code/game/objects/items/miscellaneous.dm index f32230a732ba..3c8f3ead8709 100644 --- a/code/game/objects/items/miscellaneous.dm +++ b/code/game/objects/items/miscellaneous.dm @@ -116,7 +116,6 @@ /obj/item/storage/box/hero/ghostbuster/PopulateContents() new /obj/item/choice_beacon/ouija(src) - new /obj/item/clothing/glasses/welding/ghostbuster(src) new /obj/item/storage/belt/fannypack/bustin(src) new /obj/item/clothing/gloves/color/black(src) new /obj/item/clothing/shoes/jackboots(src) diff --git a/code/game/objects/items/religion.dm b/code/game/objects/items/religion.dm index f54aa4f6447b..97cc74a51589 100644 --- a/code/game/objects/items/religion.dm +++ b/code/game/objects/items/religion.dm @@ -244,40 +244,6 @@ /obj/item/clothing/gloves/plate/blue icon_state = "crusader-blue" -/obj/item/clothing/shoes/plate - name = "Plate Boots" - desc = "Metal boots, they look heavy." - icon_state = "crusader" - w_class = WEIGHT_CLASS_NORMAL - armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 60, "bio" = 0, "rad" = 0, "fire" = 60, "acid" = 60) //does this even do anything on boots? - clothing_flags = NOSLIP - cold_protection = FEET - min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT - heat_protection = FEET - max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT - - -/obj/item/clothing/shoes/plate/red - icon_state = "crusader-red" - -/obj/item/clothing/shoes/plate/blue - icon_state = "crusader-blue" - - /obj/item/storage/box/itemset/crusader name = "Crusader's Armour Set" //i can't into ck2 references desc = "This armour is said to be based on the armor of kings on another world thousands of years ago, who tended to assassinate, conspire, and plot against everyone who tried to do the same to them. Some things never change." - - -/obj/item/storage/box/itemset/crusader/blue/PopulateContents() - new /obj/item/clothing/suit/armor/plate/crusader/blue(src) - new /obj/item/clothing/head/helmet/plate/crusader/blue(src) - new /obj/item/clothing/gloves/plate/blue(src) - new /obj/item/clothing/shoes/plate/blue(src) - - -/obj/item/storage/box/itemset/crusader/red/PopulateContents() - new /obj/item/clothing/suit/armor/plate/crusader/red(src) - new /obj/item/clothing/head/helmet/plate/crusader/red(src) - new /obj/item/clothing/gloves/plate/red(src) - new /obj/item/clothing/shoes/plate/red(src) diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm index 26cff752c364..75c863bee5b6 100644 --- a/code/game/objects/items/stacks/sheets/leather.dm +++ b/code/game/objects/items/stacks/sheets/leather.dm @@ -57,14 +57,6 @@ GLOBAL_LIST_INIT(gondola_recipes, list ( \ . = ..() . += GLOB.gondola_recipes -GLOBAL_LIST_INIT(corgi_recipes, list ( \ - new/datum/stack_recipe("corgi costume", /obj/item/clothing/suit/hooded/ian_costume, 3), \ - )) - -/obj/item/stack/sheet/animalhide/corgi/get_main_recipes() - . = ..() - . += GLOB.corgi_recipes - /obj/item/stack/sheet/animalhide/cat name = "cat hide" desc = "The by-product of cat farming." @@ -81,7 +73,6 @@ GLOBAL_LIST_INIT(corgi_recipes, list ( \ GLOBAL_LIST_INIT(monkey_recipes, list ( \ new/datum/stack_recipe("monkey mask", /obj/item/clothing/mask/gas/monkeymask, 1), \ - new/datum/stack_recipe("monkey suit", /obj/item/clothing/suit/monkeysuit, 2), \ )) /obj/item/stack/sheet/animalhide/monkey/get_main_recipes() @@ -102,15 +93,6 @@ GLOBAL_LIST_INIT(monkey_recipes, list ( \ icon_state = "sheet-xeno" item_state = "sheet-xeno" -GLOBAL_LIST_INIT(xeno_recipes, list ( \ - new/datum/stack_recipe("alien helmet", /obj/item/clothing/head/xenos, 1), \ - new/datum/stack_recipe("alien suit", /obj/item/clothing/suit/xenos, 2), \ - )) - -/obj/item/stack/sheet/animalhide/xeno/get_main_recipes() - . = ..() - . += GLOB.xeno_recipes - //don't see anywhere else to put these, maybe together they could be used to make the xenos suit? /obj/item/stack/sheet/xenochitin name = "alien chitin" @@ -167,7 +149,6 @@ GLOBAL_LIST_INIT(leather_recipes, list ( \ new/datum/stack_recipe("bandolier", /obj/item/storage/belt/bandolier, 5), \ new/datum/stack_recipe("leather jacket", /obj/item/clothing/suit/jacket/leather, 7), \ new/datum/stack_recipe("leather shoes", /obj/item/clothing/shoes/laceup, 2), \ - new/datum/stack_recipe("leather overcoat", /obj/item/clothing/suit/jacket/leather/overcoat, 10), \ new/datum/stack_recipe("saddle", /obj/item/saddle, 5), \ )) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 5dde37c0b90d..c00ba77b21b8 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -451,8 +451,6 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \ 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), \ null, new/datum/stack_recipe("bronze chair", /obj/structure/chair/comfy/shuttle/bronze, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("Marx Bust", /obj/structure/statue/bronze/marx, 15, one_per_turf = 1, on_floor = 1), \ diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 0076de0b8155..eb72fe31c5ec 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -689,7 +689,6 @@ /obj/item/storage/backpack/duffelbag/clown/syndie/PopulateContents() new /obj/item/pda/clown(src) new /obj/item/clothing/under/rank/civilian/clown(src) - new /obj/item/clothing/shoes/clown_shoes(src) new /obj/item/clothing/mask/gas/clown_hat(src) new /obj/item/bikehorn(src) new /obj/item/implanter/sad_trombone(src) diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index f2d0becadb54..2208eddff91c 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -298,7 +298,6 @@ /obj/item/clothing/under/syndicate/bloodred, /obj/item/clothing/gloves/color/latex/nitrile/infiltrator, /obj/item/clothing/mask/infiltrator, - /obj/item/clothing/shoes/combat/sneakboots, /obj/item/gun/ballistic/automatic/pistol/ringneck, /obj/item/gun/ballistic/revolver, /obj/item/ammo_box @@ -310,7 +309,6 @@ new /obj/item/clothing/under/syndicate/bloodred(src) new /obj/item/clothing/gloves/color/latex/nitrile/infiltrator(src) new /obj/item/clothing/mask/infiltrator(src) - new /obj/item/clothing/shoes/combat/sneakboots(src) /obj/item/storage/toolbox/bounty name = "defused explosives case" diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index f1ce47a8f8fd..7d2828c41660 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -1285,7 +1285,6 @@ /obj/item/toy/figure/curator name = "Curator action figure" icon_state = "curator" - toysay = "One day while..." /obj/item/toy/figure/md name = "Medical Doctor action figure" diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index 39f65ca53a5b..8285380c3c48 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -101,10 +101,6 @@ new /obj/item/clothing/accessory/pocketprotector/cosmetology(src) new /obj/item/clothing/under/rank/civilian/chaplain(src) new /obj/item/clothing/shoes/sneakers/black(src) - new /obj/item/clothing/suit/chaplainsuit/nun(src) - new /obj/item/clothing/head/nun_hood(src) - new /obj/item/clothing/suit/hooded/chaplainsuit/monkhabit(src) - new /obj/item/clothing/suit/chaplainsuit/holidaypriest(src) new /obj/item/storage/backpack/cultpack(src) new /obj/item/storage/fancy/candle_box(src) new /obj/item/storage/fancy/candle_box(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 8ccc632dbac5..23aa2df0ab5a 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -25,12 +25,10 @@ new /obj/item/clothing/head/caphat(src) new /obj/item/clothing/head/caphat/parade(src) new /obj/item/clothing/suit/armor/vest/capcarapace/captunic(src) - new /obj/item/clothing/head/crown/fancy(src) new /obj/item/cartridge/captain(src) new /obj/item/storage/box/silver_ids(src) new /obj/item/radio/headset/heads/captain/alt(src) new /obj/item/radio/headset/heads/captain(src) - new /obj/item/clothing/glasses/sunglasses/gar/supergar(src) new /obj/item/clothing/gloves/color/captain(src) new /obj/item/storage/belt/sabre(src) new /obj/item/gun/energy/e_gun(src) @@ -50,7 +48,6 @@ new /obj/item/clothing/head/beret/hop(src) //WS edit - More Berets new /obj/item/clothing/under/rank/command/head_of_personnel(src) //WS Edit - Better Command Uniforms new /obj/item/clothing/under/rank/command/head_of_personnel/skirt(src) //WS Edit - Better Command Uniforms - new /obj/item/clothing/head/hopcap(src) new /obj/item/cartridge/head_of_personnel(src) new /obj/item/radio/headset/heads/head_of_personnel(src) new /obj/item/clothing/shoes/sneakers/brown(src) @@ -92,7 +89,6 @@ new /obj/item/clothing/under/rank/security/head_of_security/alt/skirt(src) new /obj/item/clothing/head/HoS(src) new /obj/item/clothing/glasses/hud/security/sunglasses/eyepatch(src) - new /obj/item/clothing/glasses/hud/security/sunglasses/gars/supergars(src) new /obj/item/clothing/suit/armor/vest/security/hos(src) //WS Edit - Better security jumpsuit sprites new /obj/item/storage/lockbox/medal/sec(src) new /obj/item/megaphone/sec(src) @@ -259,7 +255,6 @@ new /obj/item/paper/fluff/jobs/security/court_judgement (src) new /obj/item/pen (src) new /obj/item/clothing/suit/judgerobe (src) - new /obj/item/clothing/head/powdered_wig (src) new /obj/item/storage/briefcase(src) /obj/structure/closet/secure_closet/contraband/armory diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index bca315340a4d..e3a8339dce46 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -37,8 +37,6 @@ new /obj/item/clothing/under/color/jumpskirt/black(src) if(prob(25)) new /obj/item/clothing/suit/jacket/leather(src) - if(prob(20)) - new /obj/item/clothing/suit/jacket/leather/overcoat(src) for(var/i in 1 to 3) new /obj/item/clothing/shoes/sneakers/black(src) for(var/i in 1 to 3) diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index d13e3885a0df..5dce420df1cf 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -42,7 +42,6 @@ return . = ..() - /obj/item/clothing/head/hooded/cult_hoodie name = "ancient cultist hood" icon_state = "culthood" @@ -91,26 +90,6 @@ . = ..() ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT) - -/obj/item/clothing/head/magus - name = "magus helm" - icon_state = "magus" - item_state = "magus" - desc = "A helm worn by the followers of Nar'Sie." - flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDEEARS|HIDEEYES - armor = list("melee" = 50, "bullet" = 30, "laser" = 50,"energy" = 50, "bomb" = 25, "bio" = 10, "rad" = 0, "fire" = 10, "acid" = 10) - flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH - -/obj/item/clothing/suit/magusred - name = "magus robes" - desc = "A set of armored robes worn by the followers of Nar'Sie." - icon_state = "magusred" - item_state = "magusred" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - allowed = list(/obj/item/tome) - armor = list("melee" = 50, "bullet" = 30, "laser" = 50,"energy" = 50, "bomb" = 25, "bio" = 10, "rad" = 0, "fire" = 10, "acid" = 10) - flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - /obj/item/clothing/head/helmet/space/hardsuit/cult name = "\improper Nar'Sien hardened helmet" desc = "A heavily-armored helmet worn by warriors of the Nar'Sien cult. It can withstand hard vacuum." diff --git a/code/modules/antagonists/cult/cult_structures.dm b/code/modules/antagonists/cult/cult_structures.dm index 27ba86d24bfa..73b8b89c9cba 100644 --- a/code/modules/antagonists/cult/cult_structures.dm +++ b/code/modules/antagonists/cult/cult_structures.dm @@ -254,7 +254,7 @@ to_chat(user, "The magic in [src] is weak, it will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].") return var/list/items = list( - "Zealot's Blindfold" = image(icon = 'icons/obj/clothing/glasses.dmi', icon_state = "blindfold"), + "Zealot's Blindfold" = image(icon = 'icons/obj/clothing/eyes/eyes.dmi', icon_state = "blindfold"), "Veil Walker Set" = image(icon = 'icons/obj/cult.dmi', icon_state = "shifter") ) var/choice = show_radial_menu(user, src, items, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) diff --git a/code/modules/antagonists/gang/gang.dm b/code/modules/antagonists/gang/gang.dm index df962f83e814..a1b493b87b75 100644 --- a/code/modules/antagonists/gang/gang.dm +++ b/code/modules/antagonists/gang/gang.dm @@ -112,7 +112,6 @@ /obj/item/clothing/under/color/darkgreen, /obj/item/clothing/neck/scarf/green, /obj/item/clothing/head/beanie/green, - /obj/item/clothing/suit/poncho/green, /obj/item/clothing/mask/bandana/green) free_clothes = list(/obj/item/clothing/mask/bandana/green, /obj/item/clothing/under/color/darkgreen, @@ -286,15 +285,11 @@ gang_id = "YAK" acceptable_clothes = list(/obj/item/clothing/head/soft/yellow, /obj/item/clothing/under/costume/yakuza, - /obj/item/clothing/shoes/yakuza, /obj/item/clothing/neck/scarf/yellow, /obj/item/clothing/head/beanie/yellow, /obj/item/clothing/mask/bandana/gold, - /obj/item/clothing/head/hardhat, - /obj/item/clothing/suit/yakuza) + /obj/item/clothing/head/hardhat) free_clothes = list(/obj/item/clothing/under/costume/yakuza, - /obj/item/clothing/shoes/yakuza, - /obj/item/clothing/suit/yakuza, /obj/item/clothing/head/hardhat, /obj/item/toy/crayon/spraycan) gang_objective = "The boss is thrilled about this new construction opportunity we've all been given, yadda yadda, look, he knows we're here to expand our business ventures for the clan, but Majima wanted it made VERY clear that we do NOT fuck this station's infrastructure up. If more than 15% of this station is busted when we get the hell out of here, it's your ass on the line." @@ -310,12 +305,8 @@ gang_id = "JB" acceptable_clothes = list(/obj/item/clothing/head/soft/blue, /obj/item/clothing/under/costume/jackbros, - /obj/item/clothing/shoes/jackbros, - /obj/item/clothing/head/jackbros, /obj/item/clothing/mask/bandana/blue) free_clothes = list(/obj/item/clothing/under/costume/jackbros, - /obj/item/clothing/shoes/jackbros, - /obj/item/clothing/head/jackbros, /obj/item/toy/crayon/spraycan) gang_objective = "Hee-hello friends! We need to expand our influence, ho! Get a King Frost in as the Captain of this joint! Either get the original Captain on board with the program, or Hee-ho a fellow Jack Frost into the position yourselves!" antag_hud_name = "JackFrost" diff --git a/code/modules/antagonists/gang/outfits.dm b/code/modules/antagonists/gang/outfits.dm index ae16ec956470..77c091d2126a 100644 --- a/code/modules/antagonists/gang/outfits.dm +++ b/code/modules/antagonists/gang/outfits.dm @@ -23,7 +23,6 @@ glasses = /obj/item/clothing/glasses/hud/spacecop ears = /obj/item/radio/headset/headset_sec mask = null - head = /obj/item/clothing/head/spacepolice belt = /obj/item/gun/ballistic/automatic/pistol/candor r_pocket = /obj/item/lighter l_pocket = /obj/item/restraints/handcuffs diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm index ae651cf055e6..b50c6dc1ea8b 100644 --- a/code/modules/antagonists/wizard/equipment/artefact.dm +++ b/code/modules/antagonists/wizard/equipment/artefact.dm @@ -257,7 +257,6 @@ var/hat = pick(/obj/item/clothing/head/helmet/roman, /obj/item/clothing/head/helmet/roman/legionnaire) H.equip_to_slot_or_del(new hat(H), ITEM_SLOT_HEAD) H.equip_to_slot_or_del(new /obj/item/clothing/under/costume/roman(H), ITEM_SLOT_ICLOTHING) - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(H), ITEM_SLOT_FEET) H.put_in_hands(new /obj/item/shield/riot/roman(H), TRUE) H.put_in_hands(new /obj/item/melee/sword/claymore(H), TRUE) H.equip_to_slot_or_del(new /obj/item/melee/spear(H), ITEM_SLOT_BACK) diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm index 96a41b2ac07b..27a3a343a907 100644 --- a/code/modules/antagonists/wizard/wizard.dm +++ b/code/modules/antagonists/wizard/wizard.dm @@ -172,7 +172,6 @@ antag_hud_name = "apprentice" var/datum/mind/master var/school = APPRENTICE_DESTRUCTION - outfit_type = /datum/outfit/wizard/apprentice wiz_age = APPRENTICE_AGE_MIN /datum/antagonist/wizard/apprentice/greet() @@ -252,7 +251,6 @@ /datum/antagonist/wizard/academy name = "Academy Teacher" - outfit_type = /datum/outfit/wizard/academy move_to_lair = FALSE /datum/antagonist/wizard/academy/equip_wizard() diff --git a/code/modules/awaymissions/mission_code/Academy.dm b/code/modules/awaymissions/mission_code/Academy.dm index 6f28cc724b55..850d0e91ba09 100644 --- a/code/modules/awaymissions/mission_code/Academy.dm +++ b/code/modules/awaymissions/mission_code/Academy.dm @@ -74,12 +74,6 @@ if(prob(1)) mezzer() - -/obj/item/clothing/glasses/meson/truesight - name = "The Lens of Truesight" - desc = "I can see forever!" - icon_state = "monocle" - /obj/structure/academy_wizard_spawner name = "Academy Defensive System" desc = "Made by Abjuration, Inc." @@ -152,14 +146,6 @@ icon_state = "forge_off" STOP_PROCESSING(SSobj, src) -/datum/outfit/wizard/academy - name = "Academy Wizard" - r_pocket = null - r_hand = null - suit = /obj/item/clothing/suit/wizrobe/red - head = /obj/item/clothing/head/wizard/red - backpack_contents = list(/obj/item/storage/box/survival = 1) - /obj/item/dice/d20/fate name = "\improper Die of Fate" desc = "A die with twenty sides. You can feel unearthly energies radiating from it. Using this might be VERY risky." @@ -348,8 +334,6 @@ new /obj/item/clothing/suit/wizrobe(drop_location()) new /obj/item/clothing/head/wizard(drop_location()) new /obj/item/clothing/gloves/combat/wizard(drop_location()) - new /obj/item/clothing/suit/wizrobe/magusblue(drop_location()) - new /obj/item/clothing/head/wizard/magus(drop_location()) new /obj/item/staff(drop_location()) new /obj/structure/mirror/magic(drop_location()) @@ -357,8 +341,6 @@ name = "Butler" uniform = /obj/item/clothing/under/suit/black_really shoes = /obj/item/clothing/shoes/laceup - head = /obj/item/clothing/head/bowler - glasses = /obj/item/clothing/glasses/monocle gloves = /obj/item/clothing/gloves/color/white /obj/effect/proc_holder/spell/targeted/summonmob diff --git a/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm b/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm index 7a9803085ab8..677b82624bae 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/clothing.dm @@ -32,16 +32,6 @@ stock_max = 10 availability_prob = 80 -/datum/blackmarket_item/clothing/crown - name = "Crown" - desc = "A beautiful golden crown, rich with history and pedigree. Better worn than left to collect dust in a museum, right?" - item = /obj/item/clothing/head/crown/fancy - - price_min = 1000 - price_max = 2000 - stock = 1 - availability_prob = 20 - /datum/blackmarket_item/clothing/galaxy_blue name = "Blue Galaxy Suit" desc = "A handsome silk suit, treated with a finish of bluespace dust for an out of this world sheen." diff --git a/code/modules/cargo/exports/lavaland.dm b/code/modules/cargo/exports/lavaland.dm index 3ca8ec9ece05..dd931f378a59 100644 --- a/code/modules/cargo/exports/lavaland.dm +++ b/code/modules/cargo/exports/lavaland.dm @@ -9,7 +9,6 @@ /obj/item/book_of_babel, /obj/item/wisp_lantern, /obj/item/reagent_containers/glass/bottle/potion/flight, - /obj/item/clothing/glasses/godeye, /obj/item/clothing/suit/space/hardsuit/cult, /obj/item/voodoo, /obj/item/grenade/clusterbuster/inferno, @@ -19,7 +18,6 @@ /obj/item/dragons_blood, /obj/item/lava_staff, /obj/item/ship_in_a_bottle, - /obj/item/clothing/shoes/clown_shoes/banana_shoes, /obj/item/veilrender/vealrender, /obj/item/clothing/suit/armor/ascetic) diff --git a/code/modules/cargo/packs/costumes_toys.dm b/code/modules/cargo/packs/costumes_toys.dm index fd3ba6c74863..cab2ac8563af 100644 --- a/code/modules/cargo/packs/costumes_toys.dm +++ b/code/modules/cargo/packs/costumes_toys.dm @@ -88,17 +88,10 @@ cost = 1000 contains = list(/obj/item/clothing/head/snowman, /obj/item/clothing/suit/snowman, - /obj/item/clothing/head/chicken, - /obj/item/clothing/suit/chickensuit, /obj/item/clothing/mask/gas/monkeymask, - /obj/item/clothing/suit/monkeysuit, /obj/item/clothing/head/cardborg, /obj/item/clothing/suit/cardborg, - /obj/item/clothing/head/xenos, - /obj/item/clothing/suit/xenos, - /obj/item/clothing/suit/hooded/ian_costume, - /obj/item/clothing/suit/hooded/carp_costume, - /obj/item/clothing/suit/hooded/bee_costume) + /obj/item/clothing/suit/hooded/carp_costume) crate_name = "original costume crate" crate_type = /obj/structure/closet/crate/wooden @@ -143,7 +136,6 @@ /obj/item/clothing/neck/tie/blue, /obj/item/clothing/neck/tie/red, /obj/item/clothing/neck/tie/black, - /obj/item/clothing/head/bowler, /obj/item/clothing/head/fedora, /obj/item/clothing/head/flatcap, /obj/item/clothing/head/beret, @@ -175,7 +167,6 @@ desc = "Flaunt your status with three unique, highly-collectable hats!" cost = 20000 contains = list(/obj/item/clothing/head/collectable/chef, - /obj/item/clothing/head/collectable/paper, /obj/item/clothing/head/collectable/tophat, /obj/item/clothing/head/collectable/captain, /obj/item/clothing/head/collectable/beret, @@ -183,18 +174,11 @@ /obj/item/clothing/head/collectable/flatcap, /obj/item/clothing/head/collectable/pirate, /obj/item/clothing/head/collectable/kitty, - /obj/item/clothing/head/collectable/rabbitears, /obj/item/clothing/head/collectable/wizard, /obj/item/clothing/head/collectable/hardhat, - /obj/item/clothing/head/collectable/HoS, - /obj/item/clothing/head/collectable/HoP, /obj/item/clothing/head/collectable/thunderdome, /obj/item/clothing/head/collectable/swat, - /obj/item/clothing/head/collectable/slime, - /obj/item/clothing/head/collectable/police, - /obj/item/clothing/head/collectable/slime, - /obj/item/clothing/head/collectable/xenom, - /obj/item/clothing/head/collectable/petehat) + /obj/item/clothing/head/collectable/police) crate_name = "collectable hats crate" crate_type = /obj/structure/closet/crate/wooden diff --git a/code/modules/client/loadout/loadout_eyewear.dm b/code/modules/client/loadout/loadout_eyewear.dm index 3ea37d68fed8..b6962a8dc34d 100644 --- a/code/modules/client/loadout/loadout_eyewear.dm +++ b/code/modules/client/loadout/loadout_eyewear.dm @@ -29,10 +29,6 @@ display_name = "eyepatch" path = /obj/item/clothing/glasses/eyepatch -/datum/gear/eyewear/monocle - display_name = "monocle" - path = /obj/item/clothing/glasses/monocle - /datum/gear/eyewear/cheapsuns display_name = "cheap sunglasses" path = /obj/item/clothing/glasses/cheapsuns diff --git a/code/modules/client/loadout/loadout_hat.dm b/code/modules/client/loadout/loadout_hat.dm index 32384a0d59fa..2f7e59c288b7 100644 --- a/code/modules/client/loadout/loadout_hat.dm +++ b/code/modules/client/loadout/loadout_hat.dm @@ -131,10 +131,6 @@ path = /obj/item/clothing/head/beanie/orange //Misc -/datum/gear/hat/bowler - display_name = "bowler hat" - path = /obj/item/clothing/head/bowler - /datum/gear/hat/that display_name = "top hat" path = /obj/item/clothing/head/that diff --git a/code/modules/client/loadout/loadout_suit.dm b/code/modules/client/loadout/loadout_suit.dm index 217998802d48..1d11857663ad 100644 --- a/code/modules/client/loadout/loadout_suit.dm +++ b/code/modules/client/loadout/loadout_suit.dm @@ -23,10 +23,6 @@ display_name = "leather jacket" path = /obj/item/clothing/suit/jacket/leather -/datum/gear/suit/jacket/leather/overcoat - display_name = "leather overcoat" - path = /obj/item/clothing/suit/jacket/leather/overcoat - /datum/gear/suit/jacket/leather/duster display_name = "leather duster" path = /obj/item/clothing/suit/jacket/leather/duster @@ -105,10 +101,6 @@ path = /obj/item/clothing/suit/toggle/suspenders/gray //Misc -/datum/gear/suit/grponcho - display_name = "poncho, green" - path = /obj/item/clothing/suit/poncho/green - /datum/gear/suit/overalls display_name = "overalls" path = /obj/item/clothing/suit/apron/overalls diff --git a/code/modules/clothing/factions/nanotrasen.dm b/code/modules/clothing/factions/nanotrasen.dm index 7aa871ad7f3e..6e605d5471b2 100644 --- a/code/modules/clothing/factions/nanotrasen.dm +++ b/code/modules/clothing/factions/nanotrasen.dm @@ -337,7 +337,7 @@ icon_state = "officer_peaked" item_state = "bluecloth" -/obj/item/clothing/head/nanotrasen/officer +/obj/item/clothing/head/nanotrasen/officer/fedora name = "officer's fedora" desc = "A fedora in a violent shade of Nanotrasen Blue, with a red silk band." icon_state = "officer_fedora" diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index e011028246b6..c2dd59ecc1fb 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -1,7 +1,8 @@ //Glasses /obj/item/clothing/glasses name = "glasses" - icon = 'icons/obj/clothing/glasses.dmi' + icon = 'icons/obj/clothing/eyes/eyes.dmi' + mob_overlay_icon = 'icons/mob/clothing/eyes/eyes.dmi' lefthand_file = 'icons/mob/inhands/clothing/glasses_lefthand.dmi' righthand_file = 'icons/mob/inhands/clothing/glasses_righthand.dmi' w_class = WEIGHT_CLASS_SMALL @@ -43,8 +44,6 @@ user.update_sight() if(icon_state == "welding-g") change_glass_color(user, /datum/client_colour/glass_colour/gray) - else if(icon_state == "bustin-g") - change_glass_color(user, /datum/client_colour/glass_colour/green) else change_glass_color(user, null) @@ -82,19 +81,6 @@ lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE glass_colour_type = /datum/client_colour/glass_colour/green -/obj/item/clothing/glasses/meson/gar - name = "gar mesons" - icon_state = "garm" - item_state = "garm" - desc = "Do the impossible, see the invisible!" - force = 10 - throwforce = 10 - throw_speed = 4 - attack_verb = list("sliced") - hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP - custom_price = 500 - /obj/item/clothing/glasses/science name = "science goggles" desc = "A pair of snazzy goggles used to protect against chemical spills. Fitted with an analyzer for scanning items and reagents." @@ -163,12 +149,6 @@ qdel(src) user.put_in_hands(double_patch) -/obj/item/clothing/glasses/monocle - name = "monocle" - desc = "Such a dapper eyepiece!" - icon_state = "monocle" - supports_variations = VOX_VARIATION - /obj/item/clothing/glasses/material name = "optical material scanner" desc = "Very confusing glasses." @@ -182,19 +162,6 @@ desc = "Used by miners to detect ores deep within the rock." darkness_view = 0 -/obj/item/clothing/glasses/material/mining/gar - name = "gar material scanner" - icon_state = "garm" - item_state = "garm" - desc = "Do the impossible, see the invisible!" - force = 10 - throwforce = 20 - throw_speed = 4 - attack_verb = list("sliced") - hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP - glass_colour_type = /datum/client_colour/glass_colour/lightgreen - /obj/item/clothing/glasses/regular name = "prescription glasses" desc = "Made by Nerd. Co." @@ -263,48 +230,6 @@ clothing_flags = SCAN_REAGENTS glass_colour_type = /datum/client_colour/glass_colour/darkpurple -/obj/item/clothing/glasses/sunglasses/garb - name = "black gar glasses" - desc = "Go beyond impossible and kick reason to the curb!" - icon_state = "garb" - item_state = "garb" - force = 10 - throwforce = 10 - throw_speed = 4 - attack_verb = list("sliced") - hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP - -/obj/item/clothing/glasses/sunglasses/garb/supergarb - name = "black giga gar glasses" - desc = "Believe in us humans." - icon_state = "supergarb" - item_state = "garb" - force = 12 - throwforce = 12 - -/obj/item/clothing/glasses/sunglasses/gar - name = "gar glasses" - desc = "Just who the hell do you think I am?!" - icon_state = "gar" - item_state = "gar" - force = 10 - throwforce = 10 - throw_speed = 4 - attack_verb = list("sliced") - hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP - glass_colour_type = /datum/client_colour/glass_colour/orange - -/obj/item/clothing/glasses/sunglasses/gar/supergar - name = "giga gar glasses" - desc = "We evolve past the person we were a minute before. Little by little we advance with each turn. That's how a drill works!" - icon_state = "supergar" - item_state = "gar" - force = 12 - throwforce = 12 - glass_colour_type = /datum/client_colour/glass_colour/red - /obj/item/clothing/glasses/sunglasses/ballistic name = "ballistic goggles" desc = "A pair of flash-proof ballistic goggles." @@ -330,17 +255,6 @@ /obj/item/clothing/glasses/welding/attack_self(mob/user) weldingvisortoggle(user) -/obj/item/clothing/glasses/welding/ghostbuster - name = "optical ecto-scanner" - desc = "A bulky pair of unwieldy glasses that lets you see things best left unseen. Obscures vision, but also gives a bit of eye protection" - icon_state = "bustin-g" - item_state = "bustin-g" - invis_view = SEE_INVISIBLE_OBSERVER - invis_override = null - flash_protect = 1 - visor_vars_to_toggle = VISOR_FLASHPROTECT | VISOR_TINT | VISOR_INVISVIEW - glass_colour_type = /datum/client_colour/glass_colour/green - /obj/item/clothing/glasses/blindfold name = "blindfold" desc = "Covers the eyes, preventing sight." @@ -389,7 +303,7 @@ . = ..() if(!isinhands && ishuman(loc) && !colored_before) var/mob/living/carbon/human/H = loc - var/mutable_appearance/M = mutable_appearance('icons/mob/clothing/eyes.dmi', "blindfoldwhite") + var/mutable_appearance/M = mutable_appearance('icons/mob/clothing/eyes/eyes.dmi', "blindfoldwhite") M.appearance_flags |= RESET_COLOR M.color = "#[H.eye_color]" . += M @@ -455,20 +369,6 @@ return chameleon_action.emp_randomise() -/obj/item/clothing/glasses/thermal/monocle - name = "thermoncle" - desc = "Never before has seeing through walls felt so gentlepersonly." - icon_state = "thermoncle" - flags_1 = null //doesn't protect eyes because it's a monocle, duh - -/obj/item/clothing/glasses/thermal/monocle/examine(mob/user) //Different examiners see a different description! - if(user.gender == MALE) - desc = replacetext(desc, "person", "man") - else if(user.gender == FEMALE) - desc = replacetext(desc, "person", "woman") - . = ..() - desc = initial(desc) - /obj/item/clothing/glasses/thermal/eyepatch name = "optical thermal eyepatch" desc = "An eyepatch with built-in thermal optics." @@ -516,35 +416,6 @@ item_state = "redglasses" glass_colour_type = /datum/client_colour/glass_colour/red -/obj/item/clothing/glasses/godeye - name = "eye of god" - desc = "A strange eye, said to have been torn from an omniscient creature that used to roam the wastes." - icon_state = "godeye" - item_state = "godeye" - vision_flags = SEE_TURFS|SEE_MOBS|SEE_OBJS - darkness_view = 8 - lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE - resistance_flags = LAVA_PROOF | FIRE_PROOF - clothing_flags = SCAN_REAGENTS - -/obj/item/clothing/glasses/godeye/Initialize() - . = ..() - ADD_TRAIT(src, TRAIT_NODROP, EYE_OF_GOD_TRAIT) - -/obj/item/clothing/glasses/godeye/attackby(obj/item/W as obj, mob/user as mob, params) - if(istype(W, src) && W != src && W.loc == user) - if(W.icon_state == "godeye") - W.icon_state = "doublegodeye" - W.item_state = "doublegodeye" - W.desc = "A pair of strange eyes, said to have been torn from an omniscient creature that used to roam the wastes. There's no real reason to have two, but that isn't stopping you." - if(iscarbon(user)) - var/mob/living/carbon/C = user - C.update_inv_wear_mask() - else - to_chat(user, "The eye winks at you and vanishes into the abyss, you feel really unlucky.") - qdel(src) - ..() - /obj/item/clothing/glasses/AltClick(mob/user) if(glass_colour_type && ishuman(user)) var/mob/living/carbon/human/H = user diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index 559816007b13..6891ac7de31a 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -162,26 +162,6 @@ lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE glass_colour_type = /datum/client_colour/glass_colour/green -/obj/item/clothing/glasses/hud/security/sunglasses/gars - name = "\improper HUD gar glasses" - desc = "GAR glasses with a HUD." - icon_state = "gars" - item_state = "garb" - force = 10 - throwforce = 10 - throw_speed = 4 - attack_verb = list("sliced") - hitsound = 'sound/weapons/bladeslice.ogg' - sharpness = IS_SHARP - -/obj/item/clothing/glasses/hud/security/sunglasses/gars/supergars - name = "giga HUD gar glasses" - desc = "GIGA GAR glasses with a HUD." - icon_state = "supergars" - item_state = "garb" - force = 12 - throwforce = 12 - /obj/item/clothing/glasses/hud/toggle name = "Toggle HUD" desc = "A hud with multiple functions." diff --git a/code/modules/clothing/head/beanie.dm b/code/modules/clothing/head/beanie.dm index 5aa39eb0ba57..3a930d728ad7 100644 --- a/code/modules/clothing/head/beanie.dm +++ b/code/modules/clothing/head/beanie.dm @@ -53,10 +53,6 @@ //Striped Beanies have unique sprites -/obj/item/clothing/head/beanie/christmas - name = "christmas beanie" - icon_state = "beaniechristmas" - /obj/item/clothing/head/beanie/striped name = "striped beanie" icon_state = "beaniestriped" @@ -78,15 +74,3 @@ desc = "A beanie made from durathread, its resilient fibres provide some protection to the wearer." icon_state = "beaniedurathread" armor = list("melee" = 15, "bullet" = 5, "laser" = 15, "energy" = 25, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 5) - -/obj/item/clothing/head/beanie/waldo - name = "red striped bobble hat" - desc = "If you're going on a worldwide hike, you'll need some cold protection." - icon_state = "waldo_hat" - -/obj/item/clothing/head/beanie/rasta - name = "rastacap" - desc = "Perfect for tucking in those dreadlocks." - icon_state = "beanierasta" - -//No dog fashion sprites yet :( poor Ian can't be dope like the rest of us yet diff --git a/code/modules/clothing/head/berets.dm b/code/modules/clothing/head/berets.dm index 9d3ca21ed4f0..78d77908cd30 100644 --- a/code/modules/clothing/head/berets.dm +++ b/code/modules/clothing/head/berets.dm @@ -5,18 +5,6 @@ icon_state = "beret" dog_fashion = /datum/dog_fashion/head/beret -/obj/item/clothing/head/beret/vintage - name = "vintage beret" - desc = "A well-worn beret." - icon_state = "vintageberet" - dog_fashion = null - -/obj/item/clothing/head/beret/archaic - name = "archaic beret" - desc = "An absolutely ancient beret." - icon_state = "archaicberet" - dog_fashion = null - /obj/item/clothing/head/beret/black name = "black beret" desc = "A black beret." diff --git a/code/modules/clothing/head/collectable.dm b/code/modules/clothing/head/collectable.dm index 036d6ffbd417..9aa05ea897ce 100644 --- a/code/modules/clothing/head/collectable.dm +++ b/code/modules/clothing/head/collectable.dm @@ -5,17 +5,6 @@ name = "collectable hat" desc = "A rare collectable hat." -/obj/item/clothing/head/collectable/petehat - name = "ultra rare Pete's hat!" - desc = "It smells faintly of plasma." - icon_state = "petehat" - -/obj/item/clothing/head/collectable/xenom - name = "collectable xenomorph helmet!" - desc = "Hiss hiss hiss!" - clothing_flags = SNUG_FIT - icon_state = "xenom" - /obj/item/clothing/head/collectable/chef name = "collectable chef's hat" desc = "A rare chef's hat meant for hat collectors!" @@ -24,12 +13,6 @@ dog_fashion = /datum/dog_fashion/head/chef -/obj/item/clothing/head/collectable/paper - name = "collectable paper hat" - desc = "What looks like an ordinary paper hat is actually a rare and valuable collector's edition paper hat. Keep away from water, fire, and Curators." - icon_state = "paper" - dog_fashion = /datum/dog_fashion/head - /obj/item/clothing/head/collectable/tophat name = "collectable top hat" desc = "A top hat worn by only the most prestigious hat collectors." @@ -64,12 +47,6 @@ item_state = "welding" clothing_flags = SNUG_FIT -/obj/item/clothing/head/collectable/slime - name = "collectable slime hat" - desc = "Just like a real brain slug!" - icon_state = "headslime" - clothing_flags = SNUG_FIT - /obj/item/clothing/head/collectable/flatcap name = "collectable flat cap" desc = "A collectible laborer's flat cap! Smells like No. 9 coal..." @@ -91,13 +68,6 @@ dog_fashion = /datum/dog_fashion/head/kitty -/obj/item/clothing/head/collectable/rabbitears - name = "collectable rabbit ears" - desc = "Not as lucky as the feet!" - icon_state = "bunny" - - dog_fashion = /datum/dog_fashion/head/rabbit - /obj/item/clothing/head/collectable/wizard name = "collectable wizard's hat" desc = "NOTE: Any magical powers gained from wearing this hat are purely coincidental." @@ -111,16 +81,6 @@ icon_state = "hardhat_standard" dog_fashion = /datum/dog_fashion/head -/obj/item/clothing/head/collectable/HoS - name = "collectable HoS hat" - desc = "Now you too can beat prisoners, set silly sentences, and arrest for no reason!" - icon_state = "hoscap" - -/obj/item/clothing/head/collectable/HoP - name = "collectable HoP hat" - desc = "It's your turn to demand excessive paperwork, signatures, stamps, and hire more clowns! Papers, please!" - icon_state = "hopcap_nt" - dog_fashion = /datum/dog_fashion/head/head_of_personnel /obj/item/clothing/head/collectable/thunderdome name = "collectable Thunderdome helmet" diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 3e04245e1a14..416fa20df39c 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -33,10 +33,6 @@ desc = "A commanding white stetson adorned with a general's badge. Why this belongs to a captain is anybody's guess." icon_state = "cowboycap" -/obj/item/clothing/head/caphat/nt - name = "captain's hat" - icon_state = "captain_nt" - /obj/item/clothing/head/frontier/peaked name = "\improper Frontiersmen commander's cap" desc = "An imposing peaked cap, meant for a commander of the Frontiersmen." @@ -47,41 +43,6 @@ desc = "An imposing peaked cap meant for only the highest of officers of the Frontiersmen pirate fleet." icon_state = "frontier_admiral_cap" -//Head of Personnel -/obj/item/clothing/head/hopcap - name = "head of personnel's cap" - icon_state = "hopcap" - desc = "The symbol of true bureaucratic micromanagement." - dog_fashion = /datum/dog_fashion/head/head_of_personnel - -/obj/item/clothing/head/hopcap/nt - icon_state = "hopcap_nt" - dog_fashion = /datum/dog_fashion/head/head_of_personnel - -//Cargo -/obj/item/clothing/head/supply_chief - name = "supply chief's cap" - desc = "The one thing between you and 40 boxes of orderable pizza is the person wearing this hat." - icon_state = "supply_chief_cap" - -/obj/item/clothing/head/deliveries_officer - name = "deliveries officer's cap" - desc = "Whether through fires, the vacuum of space, or hordes of souless husks of grey suited criminals, your crate will always be delivered!" - icon_state = "deliveries_officer_cap" - -//Chaplain -/obj/item/clothing/head/nun_hood - name = "nun hood" - desc = "Maximum piety in this star system." - icon_state = "nun_hood" - flags_inv = HIDEHAIR - flags_cover = HEADCOVERSEYES - -/obj/item/clothing/head/bishopmitre - name = "bishop mitre" - desc = "An opulent hat that functions as a radio to God. Or as a lightning rod, depending on who you ask." - icon_state = "bishopmitre" - //Detective /obj/item/clothing/head/fedora/det_hat name = "detective's fedora" @@ -252,12 +213,3 @@ #undef DRILL_SHOUTING #undef DRILL_YELLING #undef DRILL_CANADIAN - -/obj/item/clothing/head/witchunter - name = "witchunter hat" - desc = "This hat saw much use back in the day." - icon_state = "witchhunterhat" - item_state = "witchhunterhat" - flags_cover = HEADCOVERSEYES - flags_inv = HIDEEYES|HIDEHAIR - armor = list("melee" = 30, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 80) diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 61f032b5ef61..b2636b02871b 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -17,18 +17,6 @@ armor = list("melee" = 30, "bullet" = 15, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) strip_delay = (8 SECONDS) -/obj/item/clothing/head/spacepolice - name = "space police cap" - desc = "A blue cap for patrolling the daily beat." - icon_state = "policecap_families" - item_state = "policecap_families" - -/obj/item/clothing/head/powdered_wig - name = "powdered wig" - desc = "A powdered wig." - icon_state = "pwig" - item_state = "pwig" - /obj/item/clothing/head/that name = "top-hat" desc = "It's an amish looking hat." @@ -37,30 +25,6 @@ dog_fashion = /datum/dog_fashion/head throwforce = 1 -/obj/item/clothing/head/canada - name = "striped red tophat" - desc = "It smells like fresh donut holes. / Il sent comme des trous de beignets frais." - icon_state = "canada" - item_state = "canada" - -/obj/item/clothing/head/redcoat - name = "redcoat's hat" - icon_state = "redcoat" - desc = "'I guess it's a redhead.'" - -/obj/item/clothing/head/plaguedoctorhat - name = "plague doctor's hat" - desc = "These were once used by plague doctors. They're pretty much useless." - icon_state = "plaguedoctor" - permeability_coefficient = 0.01 - -/obj/item/clothing/head/hasturhood - name = "hastur's hood" - desc = "It's unspeakably stylish." - icon_state = "hasturhood" - flags_inv = HIDEHAIR - flags_cover = HEADCOVERSEYES - /obj/item/clothing/head/nursehat name = "nurse's hat" desc = "It allows quick identification of trained medical personnel." @@ -78,15 +42,6 @@ clothing_flags = SNUG_FIT flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR -/obj/item/clothing/head/cueball - name = "cueball helmet" - desc = "A large, featureless white orb meant to be worn on your head. How do you even see out of this thing?" - icon_state = "cueball" - item_state="cueball" - clothing_flags = SNUG_FIT - flags_cover = HEADCOVERSEYES|HEADCOVERSMOUTH - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - /obj/item/clothing/head/snowman name = "Snowman Head" desc = "A ball of white styrofoam. So festive." @@ -96,38 +51,6 @@ flags_cover = HEADCOVERSEYES flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR -/obj/item/clothing/head/justice - name = "justice hat" - desc = "Fight for what's righteous!" - icon_state = "justicered" - item_state = "justicered" - clothing_flags = SNUG_FIT - flags_inv = HIDEHAIR|HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR - flags_cover = HEADCOVERSEYES - -/obj/item/clothing/head/justice/blue - icon_state = "justiceblue" - item_state = "justiceblue" - -/obj/item/clothing/head/justice/yellow - icon_state = "justiceyellow" - item_state = "justiceyellow" - -/obj/item/clothing/head/justice/green - icon_state = "justicegreen" - item_state = "justicegreen" - -/obj/item/clothing/head/justice/pink - icon_state = "justicepink" - item_state = "justicepink" - -/obj/item/clothing/head/rabbitears - name = "rabbit ears" - desc = "A headband with a pair of faux rabbit ears." - icon_state = "bunny" - - dog_fashion = /datum/dog_fashion/head/rabbit - /obj/item/clothing/head/pirate name = "pirate hat" desc = "Yarr." @@ -170,42 +93,12 @@ icon_state = "bandana" item_state = "bandana" -/obj/item/clothing/head/bowler - name = "bowler-hat" - desc = "Gentleman, elite aboard!" - icon_state = "bowler" - item_state = "bowler" - -/obj/item/clothing/head/witchwig - name = "witch costume wig" - desc = "Eeeee~heheheheheheh!" - icon_state = "witch" - item_state = "witch" - flags_inv = HIDEHAIR - -/obj/item/clothing/head/chicken - name = "chicken suit head" - desc = "Bkaw!" - icon_state = "chickenhead" - item_state = "chickensuit" - clothing_flags = SNUG_FIT - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - /obj/item/clothing/head/bearpelt name = "bear pelt hat" desc = "Fuzzy." icon_state = "bearpelt" item_state = "bearpelt" -/obj/item/clothing/head/xenos - name = "xenos helmet" - icon_state = "xenos" - item_state = "xenos_helm" - desc = "A helmet made out of chitinous alien hide." - clothing_flags = SNUG_FIT - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH - /obj/item/clothing/head/fedora name = "fedora" icon_state = "fedora" @@ -229,34 +122,6 @@ item_state = "hat_solgov" desc = "A slick blue hat used by both solarian civilians and physicists." -/obj/item/clothing/head/sombrero - name = "sombrero" - icon_state = "sombrero" - item_state = "sombrero" - desc = "You can practically taste the fiesta." - flags_inv = HIDEHAIR - - dog_fashion = /datum/dog_fashion/head/sombrero - -/obj/item/clothing/head/sombrero/green - name = "green sombrero" - icon_state = "greensombrero" - item_state = "greensombrero" - desc = "As elegant as a dancing cactus." - flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS - dog_fashion = null - -/obj/item/clothing/head/sombrero/shamebrero - name = "shamebrero" - icon_state = "shamebrero" - item_state = "shamebrero" - desc = "Once it's on, it never comes off." - dog_fashion = null - -/obj/item/clothing/head/sombrero/shamebrero/Initialize() - . = ..() - ADD_TRAIT(src, TRAIT_NODROP, SHAMEBRERO_TRAIT) - /obj/item/clothing/head/flatcap name = "flat cap" desc = "A working man's hat." @@ -297,14 +162,6 @@ min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT dog_fashion = /datum/dog_fashion/head/santa -/obj/item/clothing/head/jester - name = "jester hat" - desc = "A hat with bells, to add some merriness to the suit." - icon_state = "jester_hat" - -/obj/item/clothing/head/jester/alt - icon_state = "jester2" - /obj/item/clothing/head/rice_hat name = "rice hat" desc = "Welcome to the rice fields, motherfucker." @@ -328,45 +185,6 @@ icon_state = "crown" resistance_flags = FIRE_PROOF -/obj/item/clothing/head/crown/fancy - name = "magnificent crown" - desc = "A crown worn by only the highest emperors of the land space." - icon_state = "fancycrown" - -/obj/item/clothing/head/scarecrow_hat - name = "scarecrow hat" - desc = "A simple straw hat." - icon_state = "scarecrow_hat" - -/obj/item/clothing/head/lobsterhat - name = "foam lobster head" - desc = "When everything's going to crab, protecting your head is the best choice." - icon_state = "lobster_hat" - clothing_flags = SNUG_FIT - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - -/obj/item/clothing/head/drfreezehat - name = "doctor freeze's wig" - desc = "A cool wig for cool people." - icon_state = "drfreeze_hat" - flags_inv = HIDEHAIR - -/obj/item/clothing/head/pharaoh - name = "pharaoh hat" - desc = "Walk like an Egyptian." - icon_state = "pharoah_hat" - item_state = "pharoah_hat" - -/obj/item/clothing/head/nemes - name = "headdress of Nemes" - desc = "Lavish space tomb not included." - icon_state = "nemes_headdress" - -/obj/item/clothing/head/delinquent - name = "delinquent hat" - desc = "Good grief." - icon_state = "delinquent" - /obj/item/clothing/head/frenchberet name = "french beret" desc = "A quality beret, infused with the aroma of chain-smoking, wine-swilling Parisians. You feel less inclined to engage in military conflict, for some reason." @@ -402,56 +220,12 @@ message += pick(" Honh honh honh!"," Honh!"," Zut Alors!") speech_args[SPEECH_MESSAGE] = trim(message) -/obj/item/clothing/head/clownmitre - name = "Hat of the Honkmother" - desc = "It's hard for parishoners to see a banana peel on the floor when they're looking up at your glorious chapeau." - icon_state = "clownmitre" - -/obj/item/clothing/head/kippah - name = "kippah" - desc = "Signals that you follow the Jewish Halakha. Keeps the head covered and the soul extra-Orthodox." - icon_state = "kippah" - -/obj/item/clothing/head/taqiyahwhite - name = "white taqiyah" - desc = "An extra-mustahabb way of showing your devotion to Allah." - icon_state = "taqiyahwhite" - pocket_storage_component_path = /datum/component/storage/concrete/pockets/small - -/obj/item/clothing/head/taqiyahred - name = "red taqiyah" - desc = "An extra-mustahabb way of showing your devotion to Allah." - icon_state = "taqiyahred" - pocket_storage_component_path = /datum/component/storage/concrete/pockets/small - -/obj/item/clothing/head/shrine_wig - name = "shrine maiden's wig" - desc = "Purify in style!" - flags_inv = HIDEHAIR //bald - mob_overlay_icon = 'icons/mob/large-worn-icons/64x64/head.dmi' - icon_state = "shrine_wig" - item_state = "shrine_wig" - worn_x_dimension = 64 - worn_y_dimension = 64 - /obj/item/clothing/head/intern name = "\improper CentCom Head Intern beancap" desc = "A horrifying mix of beanie and softcap in CentCom green. You'd have to be pretty desperate for power over your peers to agree to wear this." icon_state = "intern_hat" item_state = "intern_hat" -/obj/item/clothing/head/goatpelt - name = "goat pelt hat" - desc = "Fuzzy and Warm!" - icon_state = "goatpelt" - item_state = "goatpelt" - -/obj/item/clothing/head/jackbros - name = "frosty hat" - desc = "Hee-ho!" - icon_state = "JackFrostHat" - item_state = "JackFrostHat" - /obj/item/clothing/head/maidheadband/syndicate name = "tactical maid headband" desc = "Tacticute." diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 5b8e228b49ee..3cd7c022887c 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -33,82 +33,6 @@ /obj/item/clothing/head/welding/attack_self(mob/user) weldingvisortoggle(user) -/* - * Cakehat - */ -/obj/item/clothing/head/hardhat/cakehat - name = "cakehat" - desc = "You put the cake on your head. Brilliant." - icon_state = "hardhat_cakehat" - item_state = "hardhat_cakehat" - lefthand_file = 'icons/mob/inhands/clothing_lefthand.dmi' - righthand_file = 'icons/mob/inhands/clothing_righthand.dmi' - hitsound = 'sound/weapons/tap.ogg' - var/hitsound_on = 'sound/weapons/sear.ogg' //so we can differentiate between cakehat and energyhat - var/hitsound_off = 'sound/weapons/tap.ogg' - var/force_on = 15 - var/throwforce_on = 15 - var/damtype_on = BURN - flags_inv = HIDEEARS|HIDEHAIR - armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - light_range = 2 //luminosity when on - flags_cover = HEADCOVERSEYES - heat = 999 - - dog_fashion = /datum/dog_fashion/head - -/obj/item/clothing/head/hardhat/cakehat/process() - var/turf/location = src.loc - if(ishuman(location)) - var/mob/living/carbon/human/M = location - if(M.is_holding(src) || M.head == src) - location = M.loc - - if(isturf(location)) - location.hotspot_expose(700, 1) - -/obj/item/clothing/head/hardhat/cakehat/turn_on(mob/living/user) - ..() - force = force_on - throwforce = throwforce_on - damtype = damtype_on - hitsound = hitsound_on - START_PROCESSING(SSobj, src) - -/obj/item/clothing/head/hardhat/cakehat/turn_off(mob/living/user) - ..() - force = 0 - throwforce = 0 - damtype = BRUTE - hitsound = hitsound_off - STOP_PROCESSING(SSobj, src) - -/obj/item/clothing/head/hardhat/cakehat/get_temperature() - return on * heat - -/obj/item/clothing/head/hardhat/cakehat/energycake - name = "energy cake" - desc = "You put the energy sword on your cake. Brilliant." - icon_state = "hardhat_energycake" - item_state = "hardhat_energycake" - hitsound = 'sound/weapons/tap.ogg' - hitsound_on = 'sound/weapons/blade1.ogg' - hitsound_off = 'sound/weapons/tap.ogg' - damtype_on = BRUTE - force_on = 18 //same as epen (but much more obvious) - light_range = 3 //ditto - heat = 0 - -/obj/item/clothing/head/hardhat/cakehat/energycake/turn_on(mob/living/user) - playsound(user, 'sound/weapons/saberon.ogg', 5, TRUE) - to_chat(user, "You turn on \the [src].") - ..() - -/obj/item/clothing/head/hardhat/cakehat/energycake/turn_off(mob/living/user) - playsound(user, 'sound/weapons/saberoff.ogg', 5, TRUE) - to_chat(user, "You turn off \the [src].") - ..() - /* * Trapper Hat */ @@ -181,17 +105,6 @@ if(ishuman(user)) add_atom_colour("#[user.hair_color]", FIXED_COLOUR_PRIORITY) -/obj/item/clothing/head/hardhat/reindeer - name = "novelty reindeer hat" - desc = "Some fake antlers and a very fake red nose." - icon_state = "hardhat_reindeer" - item_state = "hardhat_reindeer" - flags_inv = 0 - armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - light_range = 1 //luminosity when on - - dog_fashion = /datum/dog_fashion/head/reindeer - /obj/item/clothing/head/cardborg name = "cardborg helmet" desc = "A helmet made out of a box." @@ -304,69 +217,6 @@ flags_inv = HIDEEARS|HIDEHAIR armor = list("melee" = 5, "bullet" = 0, "laser" = -5, "energy" = -15, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 20) -/obj/item/clothing/head/foilhat - name = "tinfoil hat" - desc = "Thought control rays, psychotronic scanning. Don't mind that, I'm protected cause I made this hat." - icon_state = "foilhat" - item_state = "foilhat" - armor = list("melee" = 0, "bullet" = 0, "laser" = -5,"energy" = -15, "bomb" = 0, "bio" = 0, "rad" = -5, "fire" = 0, "acid" = 0) - equip_delay_other = 140 - clothing_flags = ANTI_TINFOIL_MANEUVER - var/datum/brain_trauma/mild/phobia/conspiracies/paranoia - var/warped = FALSE - -/obj/item/clothing/head/foilhat/equipped(mob/living/carbon/human/user, slot) - . = ..() - if(slot != ITEM_SLOT_HEAD || warped) - return - if(paranoia) - QDEL_NULL(paranoia) - paranoia = new() - - user.gain_trauma(paranoia, TRAUMA_RESILIENCE_MAGIC) - to_chat(user, "As you don the foiled hat, an entire world of conspiracy theories and seemingly insane ideas suddenly rush into your mind. What you once thought unbelievable suddenly seems.. undeniable. Everything is connected and nothing happens just by accident. You know too much and now they're out to get you. ") - -/obj/item/clothing/head/foilhat/MouseDrop(atom/over_object) - //God Im sorry - if(!warped && iscarbon(usr)) - var/mob/living/carbon/C = usr - if(src == C.head) - to_chat(C, "Why would you want to take this off? Do you want them to get into your mind?!") - return - return ..() - -/obj/item/clothing/head/foilhat/dropped(mob/user) - . = ..() - if(paranoia) - QDEL_NULL(paranoia) - -/obj/item/clothing/head/foilhat/proc/warp_up() - name = "scorched tinfoil hat" - desc = "A badly warped up hat. Quite unprobable this will still work against any of fictional and contemporary dangers it used to." - warped = TRUE - clothing_flags &= ~ANTI_TINFOIL_MANEUVER - if(!isliving(loc) || !paranoia) - return - var/mob/living/target = loc - if(target.get_item_by_slot(ITEM_SLOT_HEAD) != src) - return - QDEL_NULL(paranoia) - if(target.stat < UNCONSCIOUS) - to_chat(target, "Your zealous conspirationism rapidly dissipates as the donned hat warps up into a ruined mess. All those theories starting to sound like nothing but a ridicolous fanfare.") - -/obj/item/clothing/head/foilhat/attack_hand(mob/user) - if(!warped && iscarbon(user)) - var/mob/living/carbon/C = user - if(src == C.head) - to_chat(user, "Why would you want to take this off? Do you want them to get into your mind?!") - return - return ..() - -/obj/item/clothing/head/foilhat/microwave_act(obj/machinery/microwave/M) - . = ..() - if(!warped) - warp_up() - /obj/item/clothing/head/plastic_flower name = "plastic flower" desc = "A realistic imitation of a flower. Not edible though." diff --git a/code/modules/clothing/outfits/factions/independent.dm b/code/modules/clothing/outfits/factions/independent.dm index 2b93739fb0f9..ba883d59f4dd 100644 --- a/code/modules/clothing/outfits/factions/independent.dm +++ b/code/modules/clothing/outfits/factions/independent.dm @@ -173,7 +173,6 @@ uniform = /obj/item/clothing/under/rank/command/head_of_personnel dcoat = /obj/item/clothing/suit/hooded/wintercoat/captain shoes = /obj/item/clothing/shoes/sneakers/brown - head = /obj/item/clothing/head/hopcap backpack_contents = list(/obj/item/storage/box/ids=1,\ /obj/item/melee/classic_baton/telescopic=1, /obj/item/modular_computer/tablet/preset/advanced = 1) @@ -536,7 +535,6 @@ ears = /obj/item/radio/headset/headset_cargo uniform = /obj/item/clothing/under/rank/cargo/qm - head = /obj/item/clothing/head/supply_chief dcoat = /obj/item/clothing/suit/hooded/wintercoat/cargo shoes = /obj/item/clothing/shoes/sneakers/brown glasses = /obj/item/clothing/glasses/sunglasses diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index 1754e84c7e8e..8502f28185cb 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -125,25 +125,6 @@ if(S) S.owner = H -/datum/outfit/wizard/apprentice - name = "Wizard Apprentice" - r_hand = null - l_hand = null - r_pocket = /obj/item/teleportation_scroll/apprentice - -/datum/outfit/wizard/red - name = "Red Wizard" - - suit = /obj/item/clothing/suit/wizrobe/red - head = /obj/item/clothing/head/wizard/red - -/datum/outfit/wizard/weeb - name = "Marisa Wizard" - - suit = /obj/item/clothing/suit/wizrobe/marisa - shoes = /obj/item/clothing/shoes/sandal/marisa - head = /obj/item/clothing/head/wizard/marisa - /datum/outfit/plasmaman name = "Plasmaman" diff --git a/code/modules/clothing/shoes/bananashoes.dm b/code/modules/clothing/shoes/bananashoes.dm deleted file mode 100644 index 4ed246a587be..000000000000 --- a/code/modules/clothing/shoes/bananashoes.dm +++ /dev/null @@ -1,68 +0,0 @@ -//banana flavored chaos and horror ahead - -/obj/item/clothing/shoes/clown_shoes/banana_shoes - name = "mk-honk prototype shoes" - desc = "Lost prototype of advanced clown tech. Powered by bananium, these shoes leave a trail of chaos in their wake." - icon_state = "clown_prototype_off" - actions_types = list(/datum/action/item_action/toggle) - var/on = FALSE - var/always_noslip = FALSE - -/obj/item/clothing/shoes/clown_shoes/banana_shoes/Initialize() - . = ..() - if(always_noslip) - clothing_flags |= NOSLIP - -/obj/item/clothing/shoes/clown_shoes/banana_shoes/ComponentInitialize() - . = ..() - AddElement(/datum/element/update_icon_updates_onmob) - AddComponent(/datum/component/material_container, list(/datum/material/hellstone), 200000, TRUE, /obj/item/stack) - AddComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 75, falloff_exponent = 20) - -/obj/item/clothing/shoes/clown_shoes/banana_shoes/step_action() - . = ..() - var/mob/wearer = loc - var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) - if(on && istype(wearer)) - if(bananium.get_material_amount(/datum/material/hellstone) < 100) - on = !on - if(!always_noslip) - clothing_flags &= ~NOSLIP - update_appearance() - to_chat(loc, "You ran out of bananium!") - else - new /obj/item/grown/bananapeel/specialpeel(get_step(src,turn(wearer.dir, 180))) //honk - bananium.use_amount_mat(100, /datum/material/hellstone) - -/obj/item/clothing/shoes/clown_shoes/banana_shoes/attack_self(mob/user) - var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) - var/sheet_amount = bananium.retrieve_all() - if(sheet_amount) - to_chat(user, "You retrieve [sheet_amount] sheets of bananium from the prototype shoes.") - else - to_chat(user, "You cannot retrieve any bananium from the prototype shoes!") - -/obj/item/clothing/shoes/clown_shoes/banana_shoes/examine(mob/user) - . = ..() - . += "The shoes are [on ? "enabled" : "disabled"]." - -/obj/item/clothing/shoes/clown_shoes/banana_shoes/ui_action_click(mob/user) - var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container) - if(bananium.get_material_amount(/datum/material/hellstone)) - on = !on - update_appearance() - to_chat(user, "You [on ? "activate" : "deactivate"] the prototype shoes.") - if(!always_noslip) - if(on) - clothing_flags |= NOSLIP - else - clothing_flags &= ~NOSLIP - else - to_chat(user, "You need bananium to turn the prototype shoes on!") - -/obj/item/clothing/shoes/clown_shoes/banana_shoes/update_icon_state() - if(on) - icon_state = "clown_prototype_on" - else - icon_state = "clown_prototype_off" - return ..() diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 4c078a7e0ad1..ad130ea45fac 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -16,23 +16,6 @@ lace_time = 12 SECONDS greyscale_icon_state = "boots" -/obj/item/clothing/shoes/combat/sneakboots - name = "sneakboots" - desc = "These boots have special noise cancelling soles. Perfect for stealth, if it wasn't for the color scheme." - icon_state = "sneakboots" - item_state = "sneakboots" - w_class = WEIGHT_CLASS_SMALL - resistance_flags = FIRE_PROOF | ACID_PROOF - -/obj/item/clothing/shoes/combat/sneakboots/equipped(mob/living/carbon/human/user, slot) - . = ..() - if(slot == ITEM_SLOT_FEET) - ADD_TRAIT(user, TRAIT_SILENT_FOOTSTEPS, SHOES_TRAIT) - -/obj/item/clothing/shoes/combat/sneakboots/dropped(mob/living/carbon/human/user) - REMOVE_TRAIT(user, TRAIT_SILENT_FOOTSTEPS, SHOES_TRAIT) - return ..() - /obj/item/clothing/shoes/combat/swat //overpowered boots for death squads name = "\improper SWAT boots" desc = "High speed, no drag combat boots." @@ -84,61 +67,6 @@ can_be_tied = FALSE greyscale_icon_state = "boots" -/obj/item/clothing/shoes/galoshes/dry - name = "absorbent galoshes" - desc = "A pair of orange rubber boots, designed to prevent slipping on wet surfaces while also drying them." - icon_state = "galoshes_dry" - -/obj/item/clothing/shoes/galoshes/dry/step_action() - var/turf/open/t_loc = get_turf(src) - SEND_SIGNAL(t_loc, COMSIG_TURF_MAKE_DRY, TURF_WET_WATER, TRUE, INFINITY) - -/obj/item/clothing/shoes/clown_shoes - desc = "The prankster's standard-issue clowning shoes. Damn, they're huge! Ctrl-click to toggle waddle dampeners." - name = "clown shoes" - icon_state = "clown" - item_state = "clown_shoes" - slowdown = SHOES_SLOWDOWN+1 - pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes/clown - var/enabled_waddle = TRUE - lace_time = 20 SECONDS // how the hell do these laces even work?? - -/obj/item/clothing/shoes/clown_shoes/Initialize() - . = ..() - AddComponent(/datum/component/squeak, list('sound/effects/clownstep1.ogg'=1,'sound/effects/clownstep2.ogg'=1), 50, falloff_exponent = 20) //die off quick please) - -/obj/item/clothing/shoes/clown_shoes/equipped(mob/user, slot) - . = ..() - if(slot == ITEM_SLOT_FEET) - if(enabled_waddle) - user.AddElement(/datum/element/waddling) - if(user.mind && user.mind.assigned_role == "Clown") - SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "clownshoes", /datum/mood_event/clownshoes) - -/obj/item/clothing/shoes/clown_shoes/dropped(mob/user) - . = ..() - user.RemoveElement(/datum/element/waddling) - if(user.mind && user.mind.assigned_role == "Clown") - SEND_SIGNAL(user, COMSIG_CLEAR_MOOD_EVENT, "clownshoes") - -/obj/item/clothing/shoes/clown_shoes/CtrlClick(mob/living/user) - if(!isliving(user)) - return - if(user.get_active_held_item() != src) - to_chat(user, "You must hold the [src] in your hand to do this!") - return - if (!enabled_waddle) - to_chat(user, "You switch off the waddle dampeners!") - enabled_waddle = TRUE - else - to_chat(user, "You switch on the waddle dampeners!") - enabled_waddle = FALSE - -/obj/item/clothing/shoes/clown_shoes/jester - name = "jester shoes" - desc = "A court jester's shoes, updated with modern squeaking technology." - icon_state = "jester_shoes" - /obj/item/clothing/shoes/jackboots name = "jackboots" desc = "Ankle-high combat boots for combat scenarios or combat situations. All combat, all the time." @@ -221,36 +149,12 @@ . = ..() ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT) -/obj/item/clothing/shoes/cyborg - name = "cyborg boots" - desc = "Shoes for a cyborg costume." - icon_state = "boots" - /obj/item/clothing/shoes/laceup name = "laceup shoes" desc = "The height of fashion, and they're pre-polished!" icon_state = "laceups" equip_delay_other = 50 -/obj/item/clothing/shoes/roman - name = "roman sandals" - desc = "Sandals with buckled leather straps on it." - icon_state = "roman" - item_state = "roman" - strip_delay = 100 - equip_delay_other = 100 - permeability_coefficient = 0.9 - can_be_tied = FALSE - -/obj/item/clothing/shoes/griffin - name = "griffon boots" - desc = "A pair of costume boots fashioned after bird talons." - icon_state = "griffinboots" - item_state = "griffinboots" - pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes - lace_time = 8 SECONDS - greyscale_icon_state = "boots" - /obj/item/clothing/shoes/bhop name = "jump boots" desc = "The EXOCOM's Cortez launch boot line represents a specialized pair of mining boots with a built-in propulsion system, designed for rapid foward movement." @@ -287,57 +191,6 @@ else to_chat(user, "Something prevents you from dashing forward!") -/obj/item/clothing/shoes/bronze - name = "bronze boots" - desc = "A giant, clunky pair of shoes crudely made out of bronze. Why would anyone wear these?" - icon = 'icons/obj/clothing/clockwork_garb.dmi' - icon_state = "clockwork_treads" - lace_time = 8 SECONDS - greyscale_icon_state = "boots" - -/obj/item/clothing/shoes/bronze/Initialize() - . = ..() - AddComponent(/datum/component/squeak, list('sound/machines/clockcult/integration_cog_install.ogg' = 1, 'sound/magic/clockwork/fellowship_armory.ogg' = 1), 50, extrarange = SHORT_RANGE_SOUND_EXTRARANGE) - -/obj/item/clothing/shoes/wheelys - name = "Wheely-Heels" - desc = "Uses patented retractable wheel technology. Never sacrifice speed for style - not that this provides much of either." //Thanks Fel - icon_state = "wheelys" - item_state = "wheelys" - actions_types = list(/datum/action/item_action/wheelys) - var/wheelToggle = FALSE //False means wheels are not popped out - var/obj/vehicle/ridden/scooter/wheelys/W - -/obj/item/clothing/shoes/wheelys/Initialize() - . = ..() - W = new /obj/vehicle/ridden/scooter/wheelys(null) - -/obj/item/clothing/shoes/wheelys/ui_action_click(mob/user, action) - if(!isliving(user)) - return - if(!istype(user.get_item_by_slot(ITEM_SLOT_FEET), /obj/item/clothing/shoes/wheelys)) - to_chat(user, "You must be wearing the wheely-heels to use them!") - return - if(!(W.is_occupant(user))) - wheelToggle = FALSE - if(wheelToggle) - W.unbuckle_mob(user) - wheelToggle = FALSE - return - W.forceMove(get_turf(user)) - W.buckle_mob(user) - wheelToggle = TRUE - -/obj/item/clothing/shoes/wheelys/dropped(mob/user) - if(wheelToggle) - W.unbuckle_mob(user) - wheelToggle = FALSE - ..() - -/obj/item/clothing/shoes/wheelys/Destroy() - QDEL_NULL(W) - . = ..() - /obj/item/clothing/shoes/kindleKicks name = "Kindle Kicks" desc = "They'll sure kindle something in you, and it's not childhood nostalgia..." @@ -351,7 +204,6 @@ var/lightCycle = 0 var/active = FALSE - /obj/item/clothing/shoes/kindleKicks/ui_action_click(mob/user, action) if(active) return @@ -433,21 +285,3 @@ desc = "A pair of authentic haute couture boots. You doubt they have ever been close to cattle." icon_state = "cowboy_fancy" permeability_coefficient = 0.08 - -/obj/item/clothing/shoes/cookflops - desc = "All this talk of antags, greytiding, and griefing... I just wanna grill for god's sake!" - name = "grilling sandals" - icon_state = "cookflops" - can_be_tied = FALSE - -/obj/item/clothing/shoes/yakuza - name = "tojo clan shoes" - desc = "Steel-toed and intimidating." - icon_state = "MajimaShoes" - item_state = "MajimaShoes_worn" - -/obj/item/clothing/shoes/jackbros - name = "frosty boots" - desc = "For when you're stepping on up to the plate." - icon_state = "JackFrostShoes" - item_state = "JackFrostShoes_worn" diff --git a/code/modules/clothing/suits/chaplainsuits.dm b/code/modules/clothing/suits/chaplainsuits.dm index 073966a5fc15..30436045da2f 100644 --- a/code/modules/clothing/suits/chaplainsuits.dm +++ b/code/modules/clothing/suits/chaplainsuits.dm @@ -5,69 +5,3 @@ /obj/item/clothing/suit/hooded/chaplainsuit allowed = list(/obj/item/storage/book/bible, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) - -//Suits -/obj/item/clothing/suit/chaplainsuit/holidaypriest - name = "holiday priest" - desc = "This is a nice holiday, my son." - icon_state = "holidaypriest" - item_state = "w_suit" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - flags_inv = HIDEJUMPSUIT - -/obj/item/clothing/suit/chaplainsuit/nun - name = "nun robe" - desc = "Maximum piety in this star system." - icon_state = "nun" - item_state = "nun" - body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS - flags_inv = HIDESHOES|HIDEJUMPSUIT - -/obj/item/clothing/suit/chaplainsuit/bishoprobe - name = "bishop's robes" - desc = "Glad to see the tithes you collected were well spent." - icon_state = "bishoprobe" - item_state = "bishoprobe" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - flags_inv = HIDEJUMPSUIT - -/obj/item/clothing/suit/hooded/chaplainsuit/monkhabit - name = "monk's habit" - desc = "A few steps above rended sackcloth." - icon_state = "monkfrock" - item_state = "monkfrock" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - hoodtype = /obj/item/clothing/head/hooded/monkhabit - -/obj/item/clothing/head/hooded/monkhabit - name = "monk's hood" - desc = "For when a man wants to cover up his tonsure." - icon_state = "monkhood" - item_state = "monkhood" - body_parts_covered = HEAD - flags_inv = HIDEHAIR|HIDEEARS - -/obj/item/clothing/suit/chaplainsuit/monkrobeeast - name = "eastern monk's robes" - desc = "Best combined with a shaved head." - icon_state = "monkrobeeast" - item_state = "monkrobeeast" - body_parts_covered = GROIN|LEGS - flags_inv = HIDEJUMPSUIT - -/obj/item/clothing/suit/chaplainsuit/whiterobe - name = "white robe" - desc = "Good for clerics and sleepy crewmembers." - icon_state = "whiterobe" - item_state = "whiterobe" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - flags_inv = HIDEJUMPSUIT - -/obj/item/clothing/suit/chaplainsuit/clownpriest - name = "Robes of the Honkmother" - desc = "Meant for a clown of the cloth." - icon_state = "clownpriest" - item_state = "clownpriest" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - flags_inv = HIDEJUMPSUIT - allowed = list(/obj/item/megaphone/clown, /obj/item/soap, /obj/item/reagent_containers/food/snacks/pie/cream, /obj/item/bikehorn, /obj/item/bikehorn/golden, /obj/item/bikehorn/airhorn, /obj/item/instrument/bikehorn, /obj/item/reagent_containers/food/drinks/soda_cans/canned_laughter, /obj/item/toy/crayon, /obj/item/toy/crayon/spraycan, /obj/item/toy/crayon/spraycan/lubecan, /obj/item/grown/bananapeel, /obj/item/reagent_containers/food/snacks/grown/banana) diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index 763be0e2f468..982b3804f586 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -180,19 +180,3 @@ resistance_flags = NONE flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE flags_cover = HEADCOVERSEYES - -/obj/item/clothing/suit/hooded/cloak/goliath/polar - name = "polar cloak" - icon_state = "polarcloak" - hoodtype = /obj/item/clothing/head/hooded/cloakhood/goliath/polar - desc = "A tribal hood made from a polar bears pelt. Keeps it's wearer warm and looks badass while doing it." - min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT - cold_protection = CHEST|GROIN|LEGS|FEET|ARMS - -/obj/item/clothing/head/hooded/cloakhood/goliath/polar - name = "polar cloak" - icon_state = "hoodie_gray" - mob_overlay_state = "polhood" - desc = "Wear bear on head show little man you big man, kill bear for cloak." - min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT - cold_protection = HEAD diff --git a/code/modules/clothing/suits/hoodies.dm b/code/modules/clothing/suits/hoodies.dm index b69061cffbd1..e1507af5c229 100644 --- a/code/modules/clothing/suits/hoodies.dm +++ b/code/modules/clothing/suits/hoodies.dm @@ -1,6 +1,7 @@ /obj/item/clothing/suit/hooded/hoodie name = "hoodie" desc = "HOW" + icon_state = null hoodtype = /obj/item/clothing/head/hooded/hood body_parts_covered = CHEST|ARMS pocket_storage_component_path = /datum/component/storage/concrete/pockets/exo/large @@ -19,6 +20,9 @@ /obj/item/clothing/head/hooded/hood name = "hood" desc = "HOW" + icon_state = null + icon = 'icons/obj/clothing/head/winterhood.dmi' + mob_overlay_icon = 'icons/mob/clothing/head/winterhood.dmi' body_parts_covered = HEAD flags_inv = HIDEHAIR|HIDEEARS armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) //it's just a hoodie. diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 3b1735208dda..2b06e695851c 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -270,24 +270,6 @@ icon_state = "coat_terragov" item_state = "coat_terragov" -/obj/item/clothing/suit/hooded/enginseer - name = "enginseer regalia" - desc = "You hold the secrets of the Machine." - icon_state = "enginseer" - item_state = "enginseer" - hoodtype = /obj/item/clothing/head/hooded/enginseer - body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS - flags_inv = HIDESHOES|HIDEJUMPSUIT|HIDEGLOVES - allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/gun, /obj/item/melee, /obj/item/radio, /obj/item/storage/book) - -/obj/item/clothing/head/hooded/enginseer - name = "enginseer's hood" - desc = "You are honored that they require your skills." - icon_state = "enginseerhood" - item_state = "enginseerhood" - body_parts_covered = HEAD - flags_inv = HIDEHAIR|HIDEEARS|HIDEFACE|HIDEFACIALHAIR - /obj/item/clothing/suit/armor/witchhunter name = "witchunter garb" desc = "This worn outfit saw much use back in the day." diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 6e8b87b06285..c8e54edb2e01 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -31,20 +31,6 @@ /* * Costume */ -/obj/item/clothing/suit/hooded/flashsuit - name = "flashy costume" - desc = "What did you expect?" - icon_state = "flashsuit" - item_state = "armor" - body_parts_covered = CHEST|GROIN - hoodtype = /obj/item/clothing/head/hooded/flashsuit - -/obj/item/clothing/head/hooded/flashsuit - name = "flash button" - desc = "You will learn to fear the flash." - icon_state = "flashsuit" - body_parts_covered = HEAD - flags_inv = HIDEHAIR|HIDEEARS|HIDEFACIALHAIR|HIDEFACE|HIDEMASK /obj/item/clothing/suit/pirate name = "pirate coat" @@ -59,27 +45,6 @@ icon_state = "hgpirate" item_state = "hgpirate" - -/obj/item/clothing/suit/cyborg_suit - name = "cyborg suit" - desc = "Suit for a cyborg costume." - icon_state = "death" - item_state = "death" - mob_overlay_state = "cardborg" - flags_1 = CONDUCT_1 - fire_resist = T0C+5200 - flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - - -/obj/item/clothing/suit/justice - name = "justice suit" - desc = "this pretty much looks ridiculous" //Needs no fixing - icon_state = "justice" - item_state = "justice" - flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - armor = list("melee" = 35, "bullet" = 30, "laser" = 30, "energy" = 40, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) - - /obj/item/clothing/suit/judgerobe name = "judge's robe" desc = "This robe commands authority." @@ -116,42 +81,6 @@ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT resistance_flags = NONE -/obj/item/clothing/suit/hastur - name = "\improper Hastur's robe" - desc = "Robes not meant to be worn by man." - icon_state = "hastur" - item_state = "hastur" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - - -/obj/item/clothing/suit/imperium_monk - name = "\improper Imperium monk suit" - desc = "Have YOU killed a xeno today?" - icon_state = "imperium_monk" - item_state = "imperium_monk" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - flags_inv = HIDESHOES|HIDEJUMPSUIT - allowed = list(/obj/item/storage/book/bible, /obj/item/melee/sword, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen) - - -/obj/item/clothing/suit/chickensuit - name = "chicken suit" - desc = "A suit made long ago by the ancient empire KFC." - icon_state = "chickensuit" - item_state = "chickensuit" - body_parts_covered = CHEST|ARMS|GROIN|LEGS|FEET - flags_inv = HIDESHOES|HIDEJUMPSUIT - - -/obj/item/clothing/suit/monkeysuit - name = "monkey suit" - desc = "A suit that looks like a primate." - icon_state = "monkeysuit" - item_state = "monkeysuit" - body_parts_covered = CHEST|ARMS|GROIN|LEGS|FEET|HANDS - flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - /obj/item/clothing/suit/toggle/owlwings name = "owl cloak" desc = "A soft brown cloak made of synthetic feathers. Soft to the touch, stylish, and a 2 meter wing span that will drive the ladies mad." @@ -208,42 +137,6 @@ body_parts_covered = CHEST|GROIN flags_inv = HIDEJUMPSUIT -/obj/item/clothing/suit/poncho - name = "poncho" - desc = "Your classic, non-racist poncho." - icon_state = "classicponcho" - item_state = "classicponcho" - -/obj/item/clothing/suit/poncho/green - name = "green poncho" - desc = "Your classic, non-racist poncho. This one is green." - icon_state = "greenponcho" - item_state = "greenponcho" - -/obj/item/clothing/suit/poncho/red - name = "red poncho" - desc = "Your classic, non-racist poncho. This one is red." - icon_state = "redponcho" - item_state = "redponcho" - -/obj/item/clothing/suit/poncho/ponchoshame - name = "poncho of shame" - desc = "Forced to live on your shameful acting as a fake Mexican, you and your poncho have grown inseparable. Literally." - icon_state = "ponchoshame" - item_state = "ponchoshame" - -/obj/item/clothing/suit/poncho/ponchoshame/Initialize() - . = ..() - ADD_TRAIT(src, TRAIT_NODROP, SHAMEBRERO_TRAIT) - -/obj/item/clothing/suit/whitedress - name = "white dress" - desc = "A fancy white dress." - icon_state = "white_dress" - item_state = "w_suit" - body_parts_covered = CHEST|GROIN|LEGS|FEET - flags_inv = HIDEJUMPSUIT|HIDESHOES - /obj/item/clothing/suit/hooded/carp_costume name = "carp costume" desc = "A costume made from 'synthetic' carp scales, it smells." @@ -274,44 +167,6 @@ if (user.head == src) user.faction -= "carp" -/obj/item/clothing/suit/hooded/ian_costume //It's Ian, rub his bell- oh god what happened to his inside parts? - name = "corgi costume" - desc = "A costume that looks like someone made a human-like corgi, it won't guarantee belly rubs." - icon_state = "ian" - item_state = "labcoat" - body_parts_covered = CHEST|GROIN|ARMS - //cold_protection = CHEST|GROIN|ARMS - //min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT - allowed = list() - hoodtype = /obj/item/clothing/head/hooded/ian_hood - dog_fashion = /datum/dog_fashion/back - -/obj/item/clothing/head/hooded/ian_hood - name = "corgi hood" - desc = "A hood that looks just like a corgi's head, it won't guarantee dog biscuits." - icon_state = "ian" - body_parts_covered = HEAD - //cold_protection = HEAD - //min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT - flags_inv = HIDEHAIR|HIDEEARS - -/obj/item/clothing/suit/hooded/bee_costume // It's Hip! - name = "bee costume" - desc = "Bee the true Queen!" - icon_state = "bee" - item_state = "labcoat" - body_parts_covered = CHEST|GROIN|ARMS - clothing_flags = THICKMATERIAL - hoodtype = /obj/item/clothing/head/hooded/bee_hood - -/obj/item/clothing/head/hooded/bee_hood - name = "bee hood" - desc = "A hood attached to a bee costume." - icon_state = "bee" - body_parts_covered = HEAD - clothing_flags = THICKMATERIAL - flags_inv = HIDEHAIR|HIDEEARS - /obj/item/clothing/suit/hooded/bloated_human //OH MY GOD WHAT HAVE YOU DONE!?!?!? name = "bloated human suit" desc = "A horribly bloated suit made from human skins." @@ -333,14 +188,6 @@ flags_cover = HEADCOVERSEYES flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR -/obj/item/clothing/suit/shrine_maiden - name = "shrine maiden's outfit" - desc = "Makes you want to exterminate some troublesome youkai." - icon_state = "shrine_maiden" - item_state = "shrine_maiden" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - flags_inv = HIDEJUMPSUIT - /* * Misc */ @@ -378,18 +225,6 @@ icon_state = "nerdshirt" item_state = "nerdshirt" -/obj/item/clothing/suit/vapeshirt //wearing this is asking to get beat. - name = "Vape Naysh shirt" - desc = "A cheap white T-shirt with a big tacky \"VN\" on the front, Why would you wear this unironically?" - icon_state = "vapeshirt" - item_state = "vapeshirt" - -/obj/item/clothing/suit/striped_sweater - name = "striped sweater" - desc = "Reminds you of someone, but you just can't put your finger on it..." - icon_state = "waldo_shirt" - item_state = "waldo_shirt" - /obj/item/clothing/suit/jacket name = "bomber jacket" desc = "Aviators not included." @@ -409,13 +244,6 @@ max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/revolver, /obj/item/gun/ballistic/revolver/detective, /obj/item/radio) -/obj/item/clothing/suit/jacket/leather/overcoat - name = "leather overcoat" - desc = "That's a damn fine coat." - icon_state = "leathercoat" - body_parts_covered = CHEST|GROIN|ARMS|LEGS - cold_protection = CHEST|GROIN|ARMS|LEGS - /obj/item/clothing/suit/jacket/leather/duster name = "leather duster" desc = "A long, utilitarian leather coat. Ideal for protecting its wearer from rain, sun, and dust." @@ -478,40 +306,12 @@ icon_state = "letterman_n" item_state = "letterman_n" -/obj/item/clothing/suit/dracula - name = "dracula coat" - desc = "Looks like this belongs in a very old movie set." - icon_state = "draculacoat" - item_state = "draculacoat" - -/obj/item/clothing/suit/drfreeze_coat - name = "doctor freeze's labcoat" - desc = "A labcoat imbued with the power of features and freezes." - icon_state = "drfreeze_coat" - item_state = "drfreeze_coat" - /obj/item/clothing/suit/gothcoat name = "gothic coat" desc = "Perfect for those who want to stalk around a corner of a bar." icon_state = "gothcoat" item_state = "gothcoat" -/obj/item/clothing/suit/xenos - name = "xenos suit" - desc = "A suit made out of chitinous alien hide." - icon_state = "xenos" - item_state = "xenos_helm" - body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS - flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - allowed = list(/mob/living/simple_animal/hostile/facehugger/toy) - -/obj/item/clothing/suit/nemes - name = "pharoah tunic" - desc = "Lavish space tomb not included." - icon_state = "pharoah" - item_state = "pharoah" - body_parts_covered = CHEST|GROIN - /obj/item/clothing/suit/caution name = "wet floor sign" desc = "No running." @@ -528,34 +328,6 @@ attack_verb = list("warned", "cautioned", "smashed") armor = list("melee" = 5, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) -/obj/item/clothing/suit/changshan_red - name = "red changshan" - desc = "A gorgeously embroidered silk shirt." - icon_state = "changshan_red" - item_state = "changshan_red" - body_parts_covered = CHEST|GROIN|ARMS|LEGS - -/obj/item/clothing/suit/changshan_blue - name = "blue changshan" - desc = "A gorgeously embroidered silk shirt." - icon_state = "changshan_blue" - item_state = "changshan_blue" - body_parts_covered = CHEST|GROIN|ARMS|LEGS - -/obj/item/clothing/suit/cheongsam_red - name = "red cheongsam" - desc = "A gorgeously embroidered silk dress." - icon_state = "cheongsam_red" - item_state = "cheongsam_red" - body_parts_covered = CHEST|GROIN|ARMS|LEGS - -/obj/item/clothing/suit/cheongsam_blue - name = "blue cheongsam" - desc = "A gorgeously embroidered silk dress." - icon_state = "cheongsam_blue" - item_state = "cheongsam_blue" - body_parts_covered = CHEST|GROIN|ARMS|LEGS - /obj/item/clothing/head/hooded/ablative name = "ablative hood" desc = "Hood hopefully belonging to an ablative trenchcoat. Includes a visor for cool-o-vision." @@ -606,20 +378,6 @@ if (prob(hit_reflect_chance)) return TRUE -/obj/item/clothing/suit/spookyghost - name = "spooky ghost" - desc = "This is obviously just a bedsheet, but maybe try it on?" - icon_state = "bedsheet" - user_vars_to_edit = list("name" = "Spooky Ghost", "real_name" = "Spooky Ghost" , "incorporeal_move" = INCORPOREAL_MOVE_BASIC, "appearance_flags" = KEEP_TOGETHER|TILE_BOUND, "alpha" = 150) - alternate_worn_layer = ABOVE_BODY_FRONT_LAYER //so the bedsheet goes over everything but fire - -/obj/item/clothing/suit/bronze - name = "bronze suit" - desc = "A big and clanky suit made of bronze that offers no protection and looks very unfashionable. Nice." - icon = 'icons/obj/clothing/clockwork_garb.dmi' - icon_state = "clockwork_cuirass_old" - armor = list("melee" = 5, "bullet" = 0, "laser" = -5, "energy" = -15, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 20) - /obj/item/clothing/suit/ghost_sheet name = "ghost sheet" desc = "The hands float by themselves, so it's extra spooky." @@ -644,40 +402,8 @@ icon = 'icons/obj/clothing/belts.dmi' icon_state = "suspenders_gray" -/obj/item/clothing/suit/hooded/mysticrobe - name = "mystic's robe" - desc = "Wearing this makes you feel more attuned with the nature of the universe... as well as a bit more irresponsible. " - icon_state = "mysticrobe" - item_state = "mysticrobe" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - allowed = list(/obj/item/spellbook, /obj/item/storage/book/bible) - flags_inv = HIDEJUMPSUIT - hoodtype = /obj/item/clothing/head/hooded/mysticrobe - -/obj/item/clothing/head/hooded/mysticrobe - name = "mystic's hood" - desc = "The balance of reality tips towards order." - icon_state = "mystichood" - item_state = "mystichood" - body_parts_covered = HEAD - flags_inv = HIDEHAIR|HIDEEARS|HIDEFACIALHAIR|HIDEFACE|HIDEMASK - /obj/item/clothing/suit/hawaiian name = "floral shirt" desc = "From grills to guns, this shirt's seen it all." icon_state = "hawaiian_blue" item_state = "hawaiian_blue" - -/obj/item/clothing/suit/yakuza - name = "tojo clan jacket" - desc = "The jacket of a mad dog." - icon_state = "MajimaJacket" - item_state = "MajimaJacket" - body_parts_covered = ARMS - -/obj/item/clothing/suit/dutch - name = "dutch's jacket" - desc = "For those long nights on the beach in Tahiti." - icon_state = "DutchJacket" - item_state = "DutchJacket" - body_parts_covered = ARMS diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm index 451d428760f3..e0d7f1c7e124 100644 --- a/code/modules/clothing/suits/wiz_robe.dm +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -11,47 +11,6 @@ resistance_flags = FIRE_PROOF | ACID_PROOF dog_fashion = /datum/dog_fashion/head/blue_wizard -/obj/item/clothing/head/wizard/red - name = "red wizard hat" - desc = "Strange-looking red hat-wear that most certainly belongs to a real magic user." - icon_state = "redwizard" - dog_fashion = /datum/dog_fashion/head/red_wizard - -/obj/item/clothing/head/wizard/yellow - name = "yellow wizard hat" - desc = "Strange-looking yellow hat-wear that most certainly belongs to a powerful magic user." - icon_state = "yellowwizard" - dog_fashion = null - -/obj/item/clothing/head/wizard/black - name = "black wizard hat" - desc = "Strange-looking black hat-wear that most certainly belongs to a real skeleton. Spooky." - icon_state = "blackwizard" - dog_fashion = null - -/obj/item/clothing/head/wizard/fake - name = "wizard hat" - desc = "It has WIZZARD written across it in sequins. Comes with a cool beard." - icon_state = "wizard-fake" - gas_transfer_coefficient = 1 - permeability_coefficient = 1 - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - resistance_flags = FLAMMABLE - dog_fashion = /datum/dog_fashion/head/blue_wizard - -/obj/item/clothing/head/wizard/marisa - name = "witch hat" - desc = "Strange-looking hat-wear. Makes you want to cast fireballs." - icon_state = "marisa" - dog_fashion = null - -/obj/item/clothing/head/wizard/magus - name = "\improper Magus helm" - desc = "A mysterious helmet that hums with an unearthly power." - icon_state = "magus" - item_state = "magus" - dog_fashion = null - /obj/item/clothing/head/wizard/santa name = "Santa's hat" desc = "Ho ho ho. Merrry X-mas!" @@ -76,78 +35,12 @@ equip_delay_other = 50 resistance_flags = FIRE_PROOF | ACID_PROOF -/obj/item/clothing/suit/wizrobe/red - name = "red wizard robe" - desc = "A magnificent red gem-lined robe that seems to radiate power." - icon_state = "redwizard" - item_state = "redwizrobe" - -/obj/item/clothing/suit/wizrobe/yellow - name = "yellow wizard robe" - desc = "A magnificent yellow gem-lined robe that seems to radiate power." - icon_state = "yellowwizard" - item_state = "yellowwizrobe" - -/obj/item/clothing/suit/wizrobe/black - name = "black wizard robe" - desc = "An unnerving black gem-lined robe that reeks of death and decay." - icon_state = "blackwizard" - item_state = "blackwizrobe" - -/obj/item/clothing/suit/wizrobe/marisa - name = "witch robe" - desc = "Magic is all about the spell power, ZE!" - icon_state = "marisa" - item_state = "marisarobe" - -/obj/item/clothing/suit/wizrobe/magusblue - name = "\improper Magus robe" - desc = "A set of armored robes that seem to radiate a dark power." - icon_state = "magusblue" - item_state = "magusblue" - -/obj/item/clothing/suit/wizrobe/magusred - name = "\improper Magus robe" - desc = "A set of armored robes that seem to radiate a dark power." - icon_state = "magusred" - item_state = "magusred" - - /obj/item/clothing/suit/wizrobe/santa name = "Santa's suit" desc = "Festive!" icon_state = "santa" item_state = "santa" -/obj/item/clothing/suit/wizrobe/fake - name = "wizard robe" - desc = "A rather dull blue robe meant to mimic real wizard robes." - icon_state = "wizard-fake" - item_state = "wizrobe" - gas_transfer_coefficient = 1 - permeability_coefficient = 1 - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - resistance_flags = FLAMMABLE - -/obj/item/clothing/head/wizard/marisa/fake - name = "witch hat" - desc = "Strange-looking hat-wear, makes you want to cast fireballs." - icon_state = "marisa" - gas_transfer_coefficient = 1 - permeability_coefficient = 1 - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - resistance_flags = FLAMMABLE - -/obj/item/clothing/suit/wizrobe/marisa/fake - name = "witch robe" - desc = "Magic is all about the spell power, ZE!" - icon_state = "marisa" - item_state = "marisarobe" - gas_transfer_coefficient = 1 - permeability_coefficient = 1 - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - resistance_flags = FLAMMABLE - /obj/item/clothing/suit/space/hardsuit/shielded/wizard name = "battlemage armour" desc = "Not all wizards are afraid of getting up close and personal." diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm index 3443b32e931e..9352e1b371aa 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm @@ -88,7 +88,6 @@ /obj/item/reagent_containers/food/snacks/meat/cutlet = 2, /obj/item/reagent_containers/food/snacks/grown/chili = 1, /obj/item/reagent_containers/food/snacks/grown/tomato = 1, - /obj/item/clothing/shoes/clown_shoes = 1 ) result = /obj/item/reagent_containers/food/snacks/soup/clownchili subcategory = CAT_SOUP diff --git a/code/modules/holiday/easter.dm b/code/modules/holiday/easter.dm index 5baed7a45309..a5cf4d78499e 100644 --- a/code/modules/holiday/easter.dm +++ b/code/modules/holiday/easter.dm @@ -84,24 +84,6 @@ . = ..() countEggs() -//Bunny Suit -/obj/item/clothing/head/bunnyhead - name = "Easter Bunny Head" - icon_state = "bunnyhead" - item_state = "bunnyhead" - desc = "Considerably more cute than 'Frank'." - slowdown = -1 - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR - -/obj/item/clothing/suit/bunnysuit - name = "Easter Bunny Suit" - desc = "Hop Hop Hop!" - icon_state = "bunnysuit" - item_state = "bunnysuit" - slowdown = -1 - body_parts_covered = CHEST|GROIN|LEGS|ARMS - flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - //Bunny bag! /obj/item/storage/backpack/satchel/bunnysatchel name = "Easter Bunny Satchel" @@ -122,9 +104,7 @@ icon_state = "egg-[eggcolor]" /obj/item/reagent_containers/food/snacks/egg/proc/dispensePrize(turf/where) - var/won = pick(/obj/item/clothing/head/bunnyhead, - /obj/item/clothing/suit/bunnysuit, - /obj/item/storage/backpack/satchel/bunnysatchel, + var/won = pick(/obj/item/storage/backpack/satchel/bunnysatchel, /obj/item/reagent_containers/food/snacks/grown/carrot, /obj/item/toy/balloon, /obj/item/toy/gun, @@ -151,8 +131,7 @@ /obj/item/toy/plush/carpplushie, /obj/item/toy/plush/spider, /obj/item/toy/redbutton, - /obj/item/toy/windupToolbox, - /obj/item/clothing/head/collectable/rabbitears) + /obj/item/toy/windupToolbox) new won(where) new/obj/item/reagent_containers/food/snacks/chocolateegg(where) diff --git a/code/modules/holiday/holidays.dm b/code/modules/holiday/holidays.dm index ae19b1dea376..ac946eee3847 100644 --- a/code/modules/holiday/holidays.dm +++ b/code/modules/holiday/holidays.dm @@ -571,7 +571,6 @@ /datum/holiday/easter name = EASTER - drone_hat = /obj/item/clothing/head/rabbitears var/const/days_early = 1 //to make editing the holiday easier var/const/days_extra = 1 diff --git a/code/modules/hydroponics/grown/banana.dm b/code/modules/hydroponics/grown/banana.dm index 64a529f8ea97..b567f0919304 100644 --- a/code/modules/hydroponics/grown/banana.dm +++ b/code/modules/hydroponics/grown/banana.dm @@ -110,12 +110,3 @@ name = "bluespace banana peel" desc = "A peel from a bluespace banana." icon_state = "bluenana_peel" - -// Other -/obj/item/grown/bananapeel/specialpeel //used by /obj/item/clothing/shoes/clown_shoes/banana_shoes - name = "synthesized banana peel" - desc = "A synthetic banana peel." - -/obj/item/grown/bananapeel/specialpeel/ComponentInitialize() - . = ..() - AddComponent(/datum/component/slippery, 40) diff --git a/code/modules/jobs/job_types/clown.dm b/code/modules/jobs/job_types/clown.dm index d131d8ad4cd4..d9ca3002a74b 100644 --- a/code/modules/jobs/job_types/clown.dm +++ b/code/modules/jobs/job_types/clown.dm @@ -22,8 +22,7 @@ belt = /obj/item/pda/clown ears = /obj/item/radio/headset/headset_srv uniform = /obj/item/clothing/under/rank/civilian/clown - alt_uniform = /obj/item/clothing/under/rank/civilian/clown/green //WS Edit - Alt Uniforms - shoes = /obj/item/clothing/shoes/clown_shoes + alt_uniform = /obj/item/clothing/under/rank/civilian/clown/green mask = /obj/item/clothing/mask/gas/clown_hat l_pocket = /obj/item/bikehorn backpack_contents = list( diff --git a/code/modules/jobs/job_types/head_of_personnel.dm b/code/modules/jobs/job_types/head_of_personnel.dm index a1071d7d3ce4..d535e1fb705e 100644 --- a/code/modules/jobs/job_types/head_of_personnel.dm +++ b/code/modules/jobs/job_types/head_of_personnel.dm @@ -39,7 +39,6 @@ alt_suit = /obj/item/clothing/suit/ianshirt dcoat = /obj/item/clothing/suit/hooded/wintercoat/captain //WS Edit - Alt Uniforms shoes = /obj/item/clothing/shoes/sneakers/brown - head = /obj/item/clothing/head/hopcap backpack_contents = list(/obj/item/storage/box/ids=1,\ /obj/item/melee/classic_baton/telescopic=1, /obj/item/modular_computer/tablet/preset/advanced = 1) diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm index ea43fe78f176..caf01866a019 100644 --- a/code/modules/mining/abandoned_crates.dm +++ b/code/modules/mining/abandoned_crates.dm @@ -178,7 +178,6 @@ new /obj/item/clothing/shoes/kindleKicks(src) if(65 to 66) new /obj/item/clothing/suit/ianshirt(src) - new /obj/item/clothing/suit/hooded/ian_costume(src) if(67 to 68) new /obj/item/toy/plush/awakenedplushie(src) if(69 to 70) diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index e3e9f6aac8f0..0cdc1f2dfc71 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -22,7 +22,7 @@ if(3) new /obj/item/necromantic_stone/lava(src) if(5) - new /obj/item/clothing/glasses/godeye(src) + new /obj/item/pickaxe/diamond(src) if(6) new /obj/item/reagent_containers/glass/bottle/potion/flight(src) if(7) @@ -93,7 +93,7 @@ if(3) new /obj/item/necromantic_stone/lava(src) if(5) - new /obj/item/clothing/glasses/godeye(src) + new /obj/item/pickaxe/diamond(src) if(6) new /obj/item/reagent_containers/glass/bottle/potion/flight(src) if(7) @@ -700,7 +700,6 @@ var/hat = pick(/obj/item/clothing/head/helmet/roman, /obj/item/clothing/head/helmet/roman/legionnaire) H.equip_to_slot_or_del(new hat(H), ITEM_SLOT_HEAD) H.equip_to_slot_or_del(new /obj/item/clothing/under/costume/roman(H), ITEM_SLOT_ICLOTHING) - H.equip_to_slot_or_del(new /obj/item/clothing/shoes/roman(H), ITEM_SLOT_FEET) H.put_in_hands(new /obj/item/shield/riot/roman(H), TRUE) H.put_in_hands(new /obj/item/melee/sword/claymore(H), TRUE) H.equip_to_slot_or_del(new /obj/item/melee/spear(H), ITEM_SLOT_BACK) diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index 4b2774c3894a..d8a9ecf90cad 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -22,7 +22,6 @@ /obj/item/mining_scanner = 2, /obj/item/t_scanner/adv_mining_scanner = 2, /obj/item/hivelordstabilizer = 3, - /obj/item/clothing/glasses/meson/gar = 2, /obj/item/kinetic_crusher = 1, /obj/item/gun/energy/kinetic_accelerator = 2, /obj/item/pickaxe/silver = 1, diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index a1884b76298e..65baddfee360 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -12,7 +12,7 @@ speak_chance = 1 turns_per_move = 5 see_in_dark = 6 - butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 4, /obj/item/clothing/head/goatpelt = 1) + butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 4) response_help_continuous = "pets" response_help_simple = "pet" response_disarm_continuous = "gently pushes aside" diff --git a/code/modules/mob/living/simple_animal/friendly/penguin.dm b/code/modules/mob/living/simple_animal/friendly/penguin.dm index 8376f6741eb7..5e39c3c8a51d 100644 --- a/code/modules/mob/living/simple_animal/friendly/penguin.dm +++ b/code/modules/mob/living/simple_animal/friendly/penguin.dm @@ -35,14 +35,6 @@ gold_core_spawnable = FRIENDLY_SPAWN butcher_results = list(/obj/item/organ/ears/penguin = 1, /obj/item/reagent_containers/food/snacks/meat/slab/penguin = 3) -/mob/living/simple_animal/pet/penguin/emperor/shamebrero - name = "Shamebrero penguin" - desc = "Shameful of all he surveys." - icon_state = "penguin_shamebrero" - icon_living = "penguin_shamebrero" - gold_core_spawnable = NO_SPAWN - unique_pet = TRUE - /mob/living/simple_animal/pet/penguin/baby speak = list("gah", "noot noot", "noot!", "noot", "squeee!", "noo!") name = "Penguin chick" diff --git a/code/modules/mob/living/simple_animal/hostile/human/skeleton.dm b/code/modules/mob/living/simple_animal/hostile/human/skeleton.dm index 147c2081f622..12a3c2b2604c 100644 --- a/code/modules/mob/living/simple_animal/hostile/human/skeleton.dm +++ b/code/modules/mob/living/simple_animal/hostile/human/skeleton.dm @@ -48,7 +48,6 @@ deathmessage = "collapses into a pile of bones, its gear clanging as it hits the ground!" loot = list(/obj/effect/decal/remains/human, /obj/item/clothing/suit/armor/witchhunter, - /obj/item/clothing/head/witchunter, /obj/item/melee/sword/claymore{name = "holy sword"}) /mob/living/simple_animal/hostile/human/skeleton/ice diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm index 1a347db1646b..4869d4a95c1c 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord_outfits.dm @@ -25,7 +25,6 @@ /obj/item/clothing/suit/hooded/wintercoat = 1, /obj/item/clothing/suit/jacket = 1, /obj/item/clothing/suit/jacket/leather = 1, - /obj/item/clothing/suit/jacket/leather/overcoat = 1, /obj/item/clothing/suit/jacket/leather/duster = 1, /obj/item/clothing/suit/jacket/miljacket = 1, /obj/item/clothing/suit/jacket/puffer = 1, @@ -81,7 +80,6 @@ /obj/item/clothing/head/hardhat/orange = 2, /obj/item/clothing/head/hardhat/dblue = 2, /obj/item/clothing/head/pirate = 1, - /obj/item/clothing/head/foilhat = 1 ) ) if(prob(50)) diff --git a/code/modules/mod/modules/modules_general.dm b/code/modules/mod/modules/modules_general.dm index 8c5f9e27cf55..17f72271b312 100644 --- a/code/modules/mod/modules/modules_general.dm +++ b/code/modules/mod/modules/modules_general.dm @@ -375,12 +375,8 @@ /obj/item/clothing/head/centhat, /obj/item/clothing/head/pirate, /obj/item/clothing/head/santa, - /obj/item/clothing/head/hardhat/reindeer, - /obj/item/clothing/head/sombrero, /obj/item/clothing/head/kitty, - /obj/item/clothing/head/rabbitears, /obj/item/clothing/head/festive, - /obj/item/clothing/head/powdered_wig, /obj/item/clothing/head/that, /obj/item/clothing/head/nursehat, /obj/item/clothing/head/chefhat, diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index e0d4e2a86606..11e3f0179a8a 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -1792,12 +1792,6 @@ if(istype(T)) T.MakeDry(ALL, TRUE, reac_volume * 5 SECONDS) //50 deciseconds per unit -/datum/reagent/drying_agent/expose_obj(obj/O, reac_volume) - if(O.type == /obj/item/clothing/shoes/galoshes) - var/t_loc = get_turf(O) - qdel(O) - new /obj/item/clothing/shoes/galoshes/dry(t_loc) - // Virology virus food chems. /datum/reagent/toxin/mutagen/mutagenvirusfood diff --git a/code/modules/research/xenobiology/crossbreeding/_clothing.dm b/code/modules/research/xenobiology/crossbreeding/_clothing.dm index cab30f0219ef..3d466983f430 100644 --- a/code/modules/research/xenobiology/crossbreeding/_clothing.dm +++ b/code/modules/research/xenobiology/crossbreeding/_clothing.dm @@ -30,70 +30,6 @@ Slimecrossing Armor REMOVE_TRAIT(user, TRAIT_NOBREATH, "breathmask_[REF(src)]") user.remove_status_effect(/datum/status_effect/rebreathing) -/obj/item/clothing/glasses/prism_glasses - name = "prism glasses" - desc = "The lenses seem to glow slightly, and reflect light into dazzling colors." - icon = 'icons/obj/slimecrossing.dmi' - icon_state = "prismglasses" - actions_types = list(/datum/action/item_action/change_prism_colour, /datum/action/item_action/place_light_prism) - var/glasses_color = "#FFFFFF" - -/obj/item/clothing/glasses/prism_glasses/item_action_slot_check(slot) - if(slot == ITEM_SLOT_EYES) - return TRUE - -/obj/structure/light_prism - name = "light prism" - desc = "A shining crystal of semi-solid light. Looks fragile." - icon = 'icons/obj/slimecrossing.dmi' - icon_state = "lightprism" - density = FALSE - anchored = TRUE - max_integrity = 10 - -/obj/structure/light_prism/Initialize(mapload, newcolor) - . = ..() - color = newcolor - set_light_color(newcolor) - set_light(5) - -/obj/structure/light_prism/attack_hand(mob/user) - to_chat(user, "You dispel [src].") - qdel(src) - -/datum/action/item_action/change_prism_colour - name = "Adjust Prismatic Lens" - icon_icon = 'icons/obj/slimecrossing.dmi' - button_icon_state = "prismcolor" - -/datum/action/item_action/change_prism_colour/Trigger() - if(!IsAvailable()) - return - var/obj/item/clothing/glasses/prism_glasses/glasses = target - var/new_color = input(owner, "Choose the lens color:", "Color change",glasses.glasses_color) as color|null - if(!new_color) - return - glasses.glasses_color = new_color - -/datum/action/item_action/place_light_prism - name = "Fabricate Light Prism" - icon_icon = 'icons/obj/slimecrossing.dmi' - button_icon_state = "lightprism" - -/datum/action/item_action/place_light_prism/Trigger() - if(!IsAvailable()) - return - var/obj/item/clothing/glasses/prism_glasses/glasses = target - if(locate(/obj/structure/light_prism) in get_turf(owner)) - to_chat(owner, "There isn't enough ambient energy to fabricate another light prism here.") - return - if(istype(glasses)) - if(!glasses.glasses_color) - to_chat(owner, "The lens is oddly opaque...") - return - to_chat(owner, "You channel nearby light into a glowing, ethereal prism.") - new /obj/structure/light_prism(get_turf(owner), glasses.glasses_color) - /obj/item/clothing/head/peaceflower name = "heroine bud" desc = "An extremely addictive flower, full of peace magic." diff --git a/code/modules/research/xenobiology/crossbreeding/chilling.dm b/code/modules/research/xenobiology/crossbreeding/chilling.dm index 9fe7857c073b..8b2aa42f0487 100644 --- a/code/modules/research/xenobiology/crossbreeding/chilling.dm +++ b/code/modules/research/xenobiology/crossbreeding/chilling.dm @@ -216,8 +216,7 @@ Chilling extracts: effect_desc = "Creates a pair of Prism Glasses, which allow the wearer to place colored light crystals." /obj/item/slimecross/chilling/pyrite/do_effect(mob/user) - user.visible_message("[src] crystallizes into a pair of spectacles!") - new /obj/item/clothing/glasses/prism_glasses(get_turf(user)) + user.visible_message("[src] does nothing sorry lol!") ..() /obj/item/slimecross/chilling/red diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm index 45d7f96b7df4..da19730739e5 100644 --- a/code/modules/spells/spell.dm +++ b/code/modules/spells/spell.dm @@ -210,10 +210,10 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th to_chat(H, "You don't feel strong enough without your hat!") return FALSE if(cult_req) //CULT_REQ CLOTHES CHECK - if(!istype(H.wear_suit, /obj/item/clothing/suit/magusred) && !istype(H.wear_suit, /obj/item/clothing/suit/space/hardsuit/cult)) + if(!istype(H.wear_suit, /obj/item/clothing/suit/space/hardsuit/cult)) to_chat(H, "You don't feel strong enough without your armor.") return FALSE - if(!istype(H.head, /obj/item/clothing/head/magus) && !istype(H.head, /obj/item/clothing/head/helmet/space/hardsuit/cult)) + if(!istype(H.head, /obj/item/clothing/head/helmet/space/hardsuit/cult)) to_chat(H, "You don't feel strong enough without your helmet.") return FALSE else diff --git a/code/modules/spells/spell_types/lichdom.dm b/code/modules/spells/spell_types/lichdom.dm index 38e2f0df145e..e7d4a1e39884 100644 --- a/code/modules/spells/spell_types/lichdom.dm +++ b/code/modules/spells/spell_types/lichdom.dm @@ -67,8 +67,6 @@ H.dropItemToGround(H.w_uniform) H.dropItemToGround(H.wear_suit) H.dropItemToGround(H.head) - H.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/black(H), ITEM_SLOT_OCLOTHING) - H.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/black(H), ITEM_SLOT_HEAD) H.equip_to_slot_or_del(new /obj/item/clothing/under/color/black(H), ITEM_SLOT_ICLOTHING) // you only get one phylactery. @@ -133,8 +131,6 @@ lich.equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal/magic(lich), ITEM_SLOT_FEET) lich.equip_to_slot_or_del(new /obj/item/clothing/under/color/black(lich), ITEM_SLOT_ICLOTHING) - lich.equip_to_slot_or_del(new /obj/item/clothing/suit/wizrobe/black(lich), ITEM_SLOT_OCLOTHING) - lich.equip_to_slot_or_del(new /obj/item/clothing/head/wizard/black(lich), ITEM_SLOT_HEAD) lich.real_name = mind.name mind.transfer_to(lich) diff --git a/code/modules/unit_tests/icons/worn_icons.dm b/code/modules/unit_tests/icons/worn_icons.dm index eb2d84b73f68..3dba4d7c8e03 100644 --- a/code/modules/unit_tests/icons/worn_icons.dm +++ b/code/modules/unit_tests/icons/worn_icons.dm @@ -78,7 +78,7 @@ spacer = "\n\t" if(cached_slot_flags & ITEM_SLOT_EYES) - icon_file = 'icons/mob/clothing/eyes.dmi' + icon_file = 'icons/mob/clothing/eyes/eyes.dmi' if(!(icon_state in icon_states(icon_file, 1))) already_warned_icons += icon_state fail_reasons += "[spacer][item_path] using invalid [mob_overlay_state ? "mob_overlay_state" : "icon_state"], \"[icon_state]\" in '[icon_file]'[match_message]" diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index ef4630109543..877f1f11d854 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -1200,16 +1200,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/codespeak_manual/unlimited cost = 3 -/datum/uplink_item/stealthy_tools/combatbananashoes - name = "Combat Banana Shoes" - desc = "While making the wearer immune to most slipping attacks like regular combat clown shoes, these shoes \ - can generate a large number of synthetic banana peels as the wearer walks, slipping up would-be pursuers. They also \ - squeak significantly louder." - item = /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat - cost = 6 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - /datum/uplink_item/stealthy_tools/emplight name = "EMP Flashlight" desc = "A small, self-recharging, short-ranged EMP device disguised as a working flashlight. \ @@ -1873,15 +1863,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 12 restricted_roles = list("Chemist", "Chief Medical Officer") -/datum/uplink_item/role_restricted/reverse_bear_trap - name = "Reverse Bear Trap" - desc = "An ingenious execution device worn on (or forced onto) the head. Arming it starts a 1-minute kitchen timer mounted on the bear trap. When it goes off, the trap's jaws will \ - violently open, instantly killing anyone wearing it by tearing their jaws in half. To arm, attack someone with it while they're not wearing headgear, and you will force it onto their \ - head after three seconds uninterrupted." - cost = 5 - item = /obj/item/reverse_bear_trap - restricted_roles = list("Clown") - /datum/uplink_item/role_restricted/laser_arm name = "Laser Arm Implant" desc = "An implant that grants you a recharging laser gun inside your arm. Weak to EMPs. Comes with a syndicate autosurgeon for immediate self-application." diff --git a/code/modules/vehicles/cars/clowncar.dm b/code/modules/vehicles/cars/clowncar.dm index e9addbd2d5bf..1df30ff3be9b 100644 --- a/code/modules/vehicles/cars/clowncar.dm +++ b/code/modules/vehicles/cars/clowncar.dm @@ -111,8 +111,7 @@ var/randomnum = rand(1,6) switch(randomnum) if(1) - visible_message("[user] presses one of the colorful buttons on [src], and a special banana peel drops out of it.") - new /obj/item/grown/bananapeel/specialpeel(loc) + visible_message("[user] presses one of the colorful buttons on [src], and doesn't do anything. Oops.") if(2) visible_message("[user] presses one of the colorful buttons on [src], and unknown chemicals flood out of it.") var/datum/reagents/R = new/datum/reagents(300) diff --git a/code/modules/vending/autodrobe.dm b/code/modules/vending/autodrobe.dm index 367c309d59a1..413b0238ce5d 100644 --- a/code/modules/vending/autodrobe.dm +++ b/code/modules/vending/autodrobe.dm @@ -7,8 +7,6 @@ product_slogans = "Dress for success!;Suited and booted!;It's show time!;Why leave style up to fate? Use AutoDrobe!" vend_reply = "Thank you for using AutoDrobe!" products = list( - /obj/item/clothing/suit/chickensuit = 1, - /obj/item/clothing/head/chicken = 1, /obj/item/clothing/under/costume/gladiator = 1, /obj/item/clothing/head/helmet/gladiator = 1, /obj/item/clothing/under/rank/command/captain/suit = 1, @@ -29,16 +27,11 @@ /obj/item/clothing/head/that = 1, /obj/item/clothing/under/costume/kilt = 1, /obj/item/clothing/head/beret = 1, - /obj/item/clothing/head/beret/vintage = 1, - /obj/item/clothing/head/beret/archaic = 1, /obj/item/clothing/accessory/waistcoat = 1, - /obj/item/clothing/glasses/monocle =1, - /obj/item/clothing/head/bowler = 1, /obj/item/cane = 1, /obj/item/clothing/under/suit/sl = 1, /obj/item/clothing/mask/fakemoustache = 1, /obj/item/clothing/suit/bio_suit/plaguedoctorsuit = 1, - /obj/item/clothing/head/plaguedoctorhat = 1, /obj/item/clothing/mask/gas/plaguedoctor = 1, /obj/item/clothing/suit/toggle/owlwings = 1, /obj/item/clothing/under/costume/owl = 1, @@ -53,17 +46,9 @@ /obj/item/clothing/head/bandana = 1, /obj/item/clothing/head/bandana = 1, /obj/item/clothing/head/trapper = 1, - /obj/item/clothing/suit/imperium_monk = 1, /obj/item/clothing/mask/gas/cyborg = 1, - /obj/item/clothing/suit/chaplainsuit/holidaypriest = 1, - /obj/item/clothing/suit/chaplainsuit/whiterobe = 1, - /obj/item/clothing/head/wizard/marisa/fake = 1, - /obj/item/clothing/suit/wizrobe/marisa/fake = 1, /obj/item/clothing/under/dress/sundress = 1, - /obj/item/clothing/head/witchwig = 1, /obj/item/staff/broom = 1, - /obj/item/clothing/suit/wizrobe/fake = 1, - /obj/item/clothing/head/wizard/fake = 1, /obj/item/staff = 3, /obj/item/clothing/under/rank/civilian/mime/sexy = 1, /obj/item/clothing/under/rank/civilian/mime/skirt = 1, @@ -77,12 +62,6 @@ /obj/item/clothing/mask/rat/tribal = 1, /obj/item/clothing/mask/rat = 1, /obj/item/clothing/suit/apron/overalls = 1, - /obj/item/clothing/head/rabbitears =1, - /obj/item/clothing/head/sombrero = 1, - /obj/item/clothing/head/sombrero/green = 1, - /obj/item/clothing/suit/poncho = 1, - /obj/item/clothing/suit/poncho/green = 1, - /obj/item/clothing/suit/poncho/red = 1, /obj/item/clothing/head/maidheadband = 1, /obj/item/clothing/under/costume/maid = 1, /obj/item/clothing/gloves/maid = 1, @@ -90,29 +69,15 @@ /obj/item/clothing/under/rank/civilian/janitor/maid = 1, /obj/item/clothing/glasses/cold=1, /obj/item/clothing/glasses/heat=1, - /obj/item/clothing/suit/whitedress = 1, - /obj/item/clothing/head/jester = 1, /obj/item/clothing/suit/hooded/carp_costume = 1, - /obj/item/clothing/suit/hooded/ian_costume = 1, - /obj/item/clothing/suit/hooded/bee_costume = 1, /obj/item/clothing/suit/snowman = 1, /obj/item/clothing/head/snowman = 1, /obj/item/clothing/mask/joy = 1, - /obj/item/clothing/head/cueball = 1, /obj/item/clothing/under/suit/white_on_white = 1, /obj/item/clothing/under/costume/sailor = 1, - /obj/item/clothing/head/delinquent = 1, /obj/item/clothing/head/wig/random = 3, - /obj/item/clothing/head/shrine_wig = 1, - /obj/item/clothing/suit/shrine_maiden = 1, - /obj/item/clothing/suit/changshan_red = 1, - /obj/item/clothing/suit/changshan_blue = 1, - /obj/item/clothing/suit/cheongsam_red = 1, - /obj/item/clothing/suit/cheongsam_blue = 1, /obj/item/gohei = 1, /obj/item/clothing/suit/judgerobe = 1, - /obj/item/clothing/head/powdered_wig = 1, - /obj/item/clothing/glasses/sunglasses/garb = 2, /obj/item/clothing/glasses/blindfold = 1, /obj/item/clothing/mask/muzzle = 2) premium = list( @@ -121,10 +86,8 @@ /obj/item/clothing/head/helmet/roman/fake = 1, /obj/item/clothing/head/helmet/roman/legionnaire/fake = 1, /obj/item/clothing/under/costume/roman = 1, - /obj/item/clothing/shoes/roman = 1, /obj/item/shield/riot/roman/fake = 1, - /obj/item/skub = 1, - /obj/item/clothing/suit/hooded/mysticrobe = 1) + /obj/item/skub = 1) refill_canister = /obj/item/vending_refill/autodrobe default_price = 180 extra_price = 360 diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm index e9eef49a0e3a..0c16b36902e2 100644 --- a/code/modules/vending/clothesmate.dm +++ b/code/modules/vending/clothesmate.dm @@ -16,14 +16,10 @@ /obj/item/clothing/head/beanie/yellow = 3, /obj/item/clothing/head/beanie/orange = 3, /obj/item/clothing/head/beanie/cyan = 3, - /obj/item/clothing/head/beanie/christmas = 3, /obj/item/clothing/head/beanie/striped = 3, /obj/item/clothing/head/beanie/stripedred = 3, /obj/item/clothing/head/beanie/stripedblue = 3, /obj/item/clothing/head/beanie/stripedgreen = 3, - /obj/item/clothing/head/beanie/rasta = 3, - /obj/item/clothing/head/kippah = 3, - /obj/item/clothing/head/taqiyahred = 3, /obj/item/clothing/gloves/fingerless = 2, /obj/item/clothing/neck/scarf/pink = 3, /obj/item/clothing/neck/scarf/red = 3, @@ -85,9 +81,6 @@ /obj/item/clothing/accessory/waistcoat = 1, /obj/item/clothing/head/that = 1, /obj/item/clothing/head/fedora = 1, - /obj/item/clothing/glasses/monocle = 1, - /obj/item/clothing/head/sombrero = 1, - /obj/item/clothing/suit/poncho = 1, /obj/item/clothing/under/costume/kilt = 1, /obj/item/clothing/under/dress/sundress = 1, /obj/item/clothing/under/dress/striped = 1, @@ -112,12 +105,10 @@ /obj/item/storage/belt/fannypack/black = 2, /obj/item/clothing/suit/jacket/letterman_syndie = 1, /obj/item/clothing/under/costume/jabroni = 1, - /obj/item/clothing/suit/vapeshirt = 1, /obj/item/clothing/under/costume/geisha = 1) premium = list( /obj/item/clothing/under/suit/checkered = 1, /obj/item/clothing/suit/jacket/leather = 1, - /obj/item/clothing/suit/jacket/leather/overcoat = 1, /obj/item/clothing/neck/necklace/dope = 3, /obj/item/clothing/suit/jacket/letterman_nanotrasen = 1, /obj/item/instrument/piano_synth/headphones/spacepods = 1) diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index 4686c12da1ad..5155a9a225b9 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -163,8 +163,7 @@ /obj/item/clothing/head/soft/black = 2, /obj/item/clothing/mask/bandana/skull = 2 ) - contraband = list(/obj/item/clothing/suit/hooded/enginseer = 2, // WS edit: enginsineer robes - /obj/item/organ/tongue/robot = 2) + contraband = list(/obj/item/organ/tongue/robot = 2) refill_canister = /obj/item/vending_refill/wardrobe/robo_wardrobe extra_price = 300 /obj/item/vending_refill/wardrobe/robo_wardrobe @@ -282,7 +281,7 @@ vend_reply = "Thank you for using the ChefDrobe!" products = list(/obj/item/clothing/under/suit/waiter = 2, /obj/item/radio/headset/headset_srv = 2, - /obj/item/clothing/head/beret/service = 2, //WS edit - berets + /obj/item/clothing/head/beret/service = 2, /obj/item/clothing/accessory/waistcoat = 2, /obj/item/clothing/suit/apron/chef = 3, /obj/item/clothing/head/soft/mime = 2, @@ -291,10 +290,8 @@ /obj/item/clothing/suit/toggle/chef = 1, /obj/item/clothing/under/rank/civilian/chef = 1, /obj/item/clothing/under/rank/civilian/chef/skirt = 2, - ///obj/item/clothing/under/rank/chef = 3,//WS edit - Better security jumpsuit sprites /obj/item/clothing/head/chefhat = 1, /obj/item/clothing/under/shorts/cookjorts = 2, - /obj/item/clothing/shoes/cookflops = 2, /obj/item/reagent_containers/glass/rag = 1, /obj/item/clothing/accessory/armband/med = 4, /obj/item/clothing/suit/hooded/wintercoat = 2) @@ -381,22 +378,10 @@ /obj/item/clothing/under/rank/civilian/chaplain = 1, /obj/item/clothing/under/rank/civilian/chaplain/skirt = 2, /obj/item/clothing/shoes/sneakers/black = 1, - /obj/item/clothing/suit/chaplainsuit/nun = 1, - /obj/item/clothing/head/nun_hood = 1, - /obj/item/clothing/suit/chaplainsuit/holidaypriest = 1, - /obj/item/clothing/suit/hooded/chaplainsuit/monkhabit = 1, /obj/item/storage/fancy/candle_box = 2, - /obj/item/clothing/head/kippah = 3, - /obj/item/clothing/suit/chaplainsuit/whiterobe = 1, - /obj/item/clothing/head/taqiyahwhite = 1, - /obj/item/clothing/head/taqiyahred = 3, - /obj/item/clothing/suit/chaplainsuit/monkrobeeast = 1, - /obj/item/clothing/accessory/armband/med = 4, - /obj/item/clothing/head/beanie/rasta = 1) + /obj/item/clothing/accessory/armband/med = 4) contraband = list(/obj/item/toy/plush/plushvar = 1, /obj/item/toy/plush/narplush = 1) - premium = list(/obj/item/clothing/suit/chaplainsuit/bishoprobe = 1, - /obj/item/clothing/head/bishopmitre = 1) refill_canister = /obj/item/vending_refill/wardrobe/chap_wardrobe /obj/item/vending_refill/wardrobe/chap_wardrobe machine_name = "ChapDrobe" @@ -454,7 +439,6 @@ /obj/item/clothing/accessory/armband/hydro = 4, /obj/item/storage/backpack/satchel/vir = 2) contraband = list(/obj/item/clothing/suit/bio_suit/plaguedoctorsuit = 1, - /obj/item/clothing/head/plaguedoctorhat = 1, /obj/item/clothing/mask/gas/plaguedoctor = 1) refill_canister = /obj/item/vending_refill/wardrobe/viro_wardrobe /obj/item/vending_refill/wardrobe/viro_wardrobe diff --git a/icons/mob/actions/actions_flightsuit.dmi b/icons/mob/actions/actions_flightsuit.dmi deleted file mode 100644 index 3121c243555fc0bd902dfc0d654bdb8ab2e34d5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1739 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 iavJd8!SfDKZgGD=G{IsM>s{}9*V^aq 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 literal 0 HcmV?d00001 diff --git a/icons/mob/clothing/feet.dmi b/icons/mob/clothing/feet.dmi index 3246bbb24de28f28eac999b5beed201cbca4d80b..ec9850144f7b922d4fe575311fb81f1c8cbc2215 100644 GIT binary patch literal 4534 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 Z5?Q37iQay!%dOubJW$h7EmM9H{(m3>ptJx0 literal 18382 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 NMBC_o#l62?{a<8Ba#8>Q diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi index f207b2bfd826fd57a9c5124465e00a56ef5b1770..d2970f6b9eada22b7b77a8702b399f89e5eab177 100644 GIT binary patch literal 85634 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

8PK%Wu){qW*nb+<_^g6ML4X># z=5{R(vE>#+`C3ptEbyU9($>ZcUG@av8xO_c*{btyRy!DF>+i1UuP4RR3?SXA0z)&9mUYyfSOB)JJW}_GE~8qaAg>=zS%Rcx;BKhVHN`gyG#NH z8zqi)&Z=u_BVV@6Z}YeqOZvw7IHW_^GELuckB{#i@l4ML7(mn~hV||Cwm8SfPoJ;& zWV=Y9__YpS8s1D#hqIRaA>EOIe9{KVCiifFp!1aZgMGxy7JIXJjc3mn2E=O z+%yWF+4>S=(nHc0(E9@q{;P|1duwS6P{k#c|LWq?MmG5_sHaC#CH}yni7MG-yx|m4 z?1~^k`>yDPuk>*7WSaxVf9$JJMKkl8_6+Aey%N#?DCN@`JXWsvu2V_?A zndT+XX__7Y_Nhg_W4Ojg#Ls_78U_dKV{|1{_e?n19zUL|dP=-??llOpy0;Kdbo`%K zn!jdn;5JJ}JDjYACS_d-r306lv91OAa-mv73ftXyiw4qt5IQ#D;_f@F6c_40_>WoJ zk2f(_{LVUg_m$tASYOuh7H$1MHTzh1stLNyUGt zrj3&dLxnF~xBy1SdURD>QnDR%xJ+DB zEkn7V9PRz=D0e?mk$&8pBGhxRg)VbA-{46!`-^AbJ^|Q=(b7%H0?NlS_T$s7pDm%s znQw)fPm9C8N-xi$r!4nP_N3Q$`dm%I(!u3r`1SfQm)%J-Eg_TH3bFjaeh}DZ21}uX zRnXw~>?E&!sqJ!*9ivuxY{%6s{~~8+uMZ1OqxXA3IfAV#50xS)EmPSd60B@llX ziB913(@0`vVc}CzxkO1xdCS`u?3LdrIOOfyw|A|rOVrTdFR(huY@kt4mn>P>=^XeM zu}@&IIrGa-(3g$TR*6fiZ>yw!IC*Z(r)6+rO(rW8;JnqG07xUJQ%|LuYSkt1ynSUn zOXET@91YG)ZiiNZRrV&?{{cKj@9{TT@98VBkW!JIQtge7r^M5%F|mYjr84K#?R1(L zS@*A7HUwm3IpJzWLaO=tU)T1gk|N*pjQ*=$@ci(qI<4lgbl$FW9klbGus1D3GT(qd zo~VMigttoSF;%J`3*QHkGbXyNiCMFdgM-&wd?b!vA@A4Xk^8{DuG@{zo2)ccfTFo!)En!xqhzkUPb`7yrZ825bwgZhkr`UIH#O;qDQ~dKR4TI2?>>?E01g$jng{9jD&RRQ}v` zj2L4p6hFq}+CviU%Vof*nk-D;i3UmR$N21$k~@A4V@njxk4%`vObW|2lY7j1pH=t6 zt#DKBr)_(~F&``nB8KacofOTu?(b8iBq_^Pb?ty)@(j!jyl_w)uLbf!dnK|6A=>o| zmx+On)~%h+c&x|hq_XNLxvS2jsQR54adi!Fa_q{+OeUWx2bEugf&q@p4{H?p$>G5( zM$5_vSF&?xR=|J8;ei2j17$Ob+5WT95j4HUqsK1{MUiqg zI|pd=Uy_sdKDz3&I?`pCghZCf!CNBEE?*k{Jj4NrT>Q}}TNqu43@R9^BoIO}I#ngr zPdj=_@F8#L`E$_wZS~GRR{)MsEsyF;2G$KG|18(`JijA=2^sz0 zu~~W%AIw~RI$8BBeP6|cD;PoBo(-lNnI9VXpjmI2_L-wA!ejvWak1^gx`56AqI6&s zm+LfeeJ_(iO!T?7%FC!=64x_}8IcAbB8+&Ek`}`sJ1M8E`fgzJh=B z=#hwcZwDgS|N0?b@yQu5SccAn(y$Tyb6QDFFd7UP!|hUI*mp{H4w9Z8QxSX%>{L0? z236nH2=EM$<(Gi+zNp1xf5j+rHcEP*@5OCp1b003SLlt-6VkkU_imMblP^fAA3wP? zX+9>_s!|n?LCu>c=)=LO+7hvqb`^@osqPlXldT#J?C-v@Jo&N(UO7Z%#Xfs5W^Xmy zHTc*EyOjVE>JTM8um9+h=nX$`!v6<^e_wM=cV{sAC$iI`EAzT4-&#SFS@msN;CuH> z(ReB+Y#?Ptc(NNGq6aenz2(9TyZj zr;j@a>W$+m#;GIXOlJG=LD`(Vyf8Hc0%4H^H8nj0?&z>%P9lgWChtq&A$Dp2pZt}J zs{UXYmV#L6q|VM88Oq*z55S}gRY?vfujSPjbKVz_@MCL#+OS8iHx7K%9vdRRI$+=G z4wH2-Z3#I6Da6dUkcVR_?f_RCY59$PT5sF(n*>A_&kwMUw9JEQ^9JRUgo#bLcA?m? z_wqAG!T?~#+XveX^wuv>&qV(kb6iZvXny+;?suc6qe7g^Mr8`zb*XxWb3Lw~0s;;@ z^B%)%yRQ;=pO@y-v9^(7UR24kDoZS)7*V%UVrRf%l5l4?S|tB9aJoQ~R9k~eZYl9* z$&4=gf_!c3Nzu}Y3YBbu1htssd(M&KS9nRB+2}+>85Ls?=7pZL7b+)Ygk9s5ra4qO zZnvMO0&lu`ZYR^A&RtF$CC*!>Qhn4<-Cp$m5Cws zx=_4HYobS}VdWH_{)u1`)D!7K#Ky`d1ax$C%;zFBw83z2I|L9D!00-59h)be848TR zpl5&m&z-$E?)n2k0hynjAV;((aI0RkYo(blp}Y7%jA(_cE38qWn9-T`WF0#5!F8-u z5+WR|g!~2}ooiO^tfl!@$^VGm!p1ZI+u~OVfsN@Uh6=|91@_7^RCOI$Hiq-yQfH+Q zFHqX5;uhE^eV!FR%DnY`%J_xxHxHj&!3vOtXE#-QW+7OfPL-pxO74Ds{v)=zG?`ck zgWVD7cKo>mzUP;uOW}P)q`zLjG=qGcmOm3iCZ3TyElfO_yz}2!tN-2 zk_fzaBZ0zoZs$m>F_5A>>}kZ6+E(b@6vn2hrA6l6gntZfdWiQaI_c`^3CM(U$`sP; z;A5+`+sT%9*kP1FUIEPYi#2aY6q6vxwljEJsdtHqqYFpJ1Oh=Q`EsY1z*fMpE2%M} zNGJ;5Syh}n=$AX!iAo*y4%2uF=Pjnz^eL?YCy1|0n=;V1Uk%^gCqM(+5+Ag?dRq|` zD>)gR>VGt?t8QCmmU(N;xwJ72Ua_a1A3d5wj_f3DY>|YjQDW>uHXk?se5C~?W69Vd zaM%_W7H-rtHz`A|UM(4NO-xMe-sy`(;ZA^C?m;{h!?ItW4&PJ%6E~$GVMcdnU<52} zY9lkJ?e0p5y4nB~r}Tz@GFn`Z#xh6Y8-< zu=Z;b#?k>f-VtGJ-d0ryx=K>H zI4j-2$o*>twm-(ua>_0H+ascv3W_dL*t~j!dNM_IXI1IJ(bQOGqz@fa{}{ZO=f#sr zB7MnkqM&}`}jrJ4@hxp$K~6Oj#sp= zU&sE)X1=k!bjX~7&o7Ke-Gm#51XdrV{V4fCYR7DZ`v%EowOXn6(sC|lmmvDX?$vMGtAD}A0l0vj2MJe zn-JG~uD8|LXxQy9W|ITI8d5~s_jZgGUV1i$w5G8$M;2EwG8wNqJ1>^?_394C!!NS1 zEbO37&CSVydrlHVVJCxWyr-*xglFq3wUh%<+1IJ;mq!KTPoB6O&D8}L^vR_;BTGql zL(*%x5d)z==Z~ksm-@u1;!wWyUTQN{VK~4BDaC_4&g-}oT$YbI>S-K)`~|jwf^K&> z={o4>B&tG(|9G;nvQzhlt}}ejvhwdRTu4xTsnxJ|E*MuLyz?BG!n+N_tmJk z#+Q2JGFpO0nUb|8I7sTMl^3Ju5dZJMh6_;c;x`(l*;6O28OO}!Ze3b}q|KGa?YW*; zi3@A?KzMq)UrT{Opvb5F@8AvB!VJH?CCEz&#jry);yg$yaU4u9;9(gIK=&_R;NF&z z!Zd?ZQ-cMb=xi3Yvyi2?IqiQwux*P+ynXjOO5>W0FyZm@oxpN2_|TlL-eyT^RfFBJ zm2^Sa$??V1dcVzk8Vp(82jHG6$UjU>>svcte-w~g7Z^TzCYk)t)kqgdyZ)1QDoc|* zqCtw{VlmGvv+@3H?(5o@oSt~Snh`)@$r&)HyG-Ita1~g zY?;F>Hmf4L#@;ejL~6G!P5o=y`rJrHnG`3w1M8}#+mxz7y%^a90JxCOOFy`O@b!9^ zVpefdg2SmcAyOKquPPguEkiz@moBD-;)RYa;``g$r{fh- zA9j1mb3O^5YH9z+DHtu-HNt|)I&@7P&JeMiR$%HGy8EhCtJ7uo<1L_2AxFAXj>Gt)8co!i zW*=qa4`=4yH|Y^K)q{=i-HlL;Nt*u*FWvb)M2ayfyrh20ag+d;Y5>O;7eRH}5XCu6 zs%1^4yLblpO&Dia@|w~2p=0>5JtUY$(w!~XE-(Mk$ElFrkjH{$w+SEVk&HwXJnB$H z&rP$>dmevrtntT9V7X=P>iZ|}VQ9NU#((%k&+7O1U?Jb2S! z5`{S1PETPZIzSz+UQ3P(o2U)r2Sudj5>D;bhq>Ific%l1wF`m^qc%*`TD{$Hb;n?p zl|EOu#E;gs`keW4d+o<$ZvAkt_w)LM)D5TY1)zfz$o*>cR-Ymww_$Kh`YVM@uL;WfSX?#k|dOAnukJetg}aC7_bHiS5rAMP|gaBbjEeOC7sh;zMYsdK1>~b z^4z2H<4+DF@QHAhPk1RE-I&E(?Fz1N_zhK4iwrWxaQ2)Jc{Ff-v3qU-mFyZK<k+ zxr>;!Hju>nV9dK;yrPqV$CqStnJ|M4tU>jl-#fw5T9 zBV{53W&Ch&pmy8Z6ICeCoJNmG}uiF?vMdK%Y$SP()!^P z3BNOtC`Wcm#v%HX3S#62s1P2=7>g#_%Iw5V-X123a76y{yx z$^g1*!g|89S?(#WPnS=y?#0*wpx-32&tR3_uN>n z;Ng6g1-)k((H%*Yi1ci3!(pX@6T)I%@6J%YwbDt?T_;%>7oXx`rl_{VRSa*0 zEzzUh^1XXHX$^>l4?J$7g4&QwV0rZCR7kJGMF&+36 zZ#cP%J{5nk#TC6>TJk!~?WfPL^0LMVYZU90AbA0OrYtLy7x-LlGM26w`H~vxa|pF$ z3P7Z^_<95)_u^q8XKvmS0t$Vu|9HQ7JwLF$5t$^)5JO zYf1OfzPECUp8;bypk@r=1-3iYr8!WCBKxRIcRh( zEiH2eEOkqXo(G##zZ-)UkM=jj8@GR@ax!r$xH?kQLFrWVM_ z85C9FLQE=7*yC>#L5oR@M0FI>2&wn9FI5G~3;nz^A}X=vEV&u9pial(rTh(!lc*Ek z)hw6#mfOH$BAk$pKU)17yZ3yGIc^ROH>0R6JQMBK7S8{|V@z;scK6dQ z!qcG(XDF#-|I|I0T^s8!yl%@k9kQj4*rdfue_#G3N+T%cNtpA^p!|S(Fx&O<@rpjN zZ@}ytGSGG(oDteXKJIiSyp#sXemqK=9Z3;tG{5px`$w}Ec2*(Vpnm>K=X-0Q+LTZv z*4&pW(f6ukoxv&vx2?(ll}rW{XisG~nql89khmXVu(#$P?7rQ^3rwOwZ{_Q}f2NGq zb*{Ky;(TF{&ZV0Y#sC2AU$;SV;)XhX*l>Z`{K#=lD<2&vm}~ZpR=~lHD;_y0e3nk{sfR54TjRqQ1qTLPQR8@(-7uB`2DQ2>!}vCW*EZ zT%W%NMUhq^K-O$A`YrC?g~DI_b4g0+)us z)8h`|)>wA7rtk?Eid%DDmeD3)ma^9{Wy7y&;sD@#rG|Q`*ibPi=OsUOa7783LJP+k z2Q(hS3qM+V`-V0NH=3B17$n3oE(vM!oiV&F8(;P-H}zCD33mT3Yxk#W&DiEa%n6zl zUShBOCw1Gvwfa3lMlwG*!x^)M7$+UDO7aZyB6>qxa#3e?3D=LShCT%=h8&eKyz#xN zf6Rp@^A3N%>6vqI2<^--zy&X#RZxqdI#bX7A znM#|yWo0(?zfH#bZJ>>Q*pcY@myJz98*qb6B}rNQa~>rxzToC?{^ZBGJsmM^jFkD1wba%=rWXriy(We#42Z-Vk}OO`d+ zjA<@tgT5A+fY3x*>c7|EeMb<;%c8ut_L5P01xM3xaPutqEXA88&+MV!Y6emop+?7i z8=qyyZY9|Dy`1LeZHO@{!Ix&sjDI(m=;}!>w%Lw;%@CJj?!s~` zwu4eJ&y8PO6x6%3dIkul{U*k-$~xKwB)GsU3<*Z(1GApv{{>| zhUH>pQqqB?7U<$0Y3XWce_uS1YJb1RgC7i(IaAbWc>4x3=rpZ!DNTV|%@Mz|7_eT^ z5jRZgOD4N&Sq}6hOLdIa{Q11K@`frrMv!E_q}+p})jO1;ce=Fj&BB6UF&dFOxgruA z_*v7;K*@nObfC;D!`IgROiC#* z|$Mfr%KYWh~S!K0$W%Ysx1ZU za(aiJ+OLxP59h^a>f11~&cMFIrl$4*hx&TQksyh5<;rAU(;@Qgj6T5bbDnm(N!Yt1 zJmt6hHV*s!73qP*6Zw$@UdYgVU*BPhZOF;VO>0kmr}?M@37QUJRm0h}Eu&w&iOK$K z%~{sZG%C`tL!(~f`wQpdxR-0l#ycj&JO+MqfL6}8|Bx9BbmKnGU?%vz^i}D!z(2;M zu#7QhH5r53`#;uF`$!3?N$al|JoO%g#Vx&{71(u3cuoR|uDx;!ud(fe8@>b6rYnWe zZ@A(3C)QGZQ<7FWdS+-K1S>lVhmG$lPxlx3TS8(Qaq^f`be)BF=RFLYAr$Uc`pY-1 zRQ86Pl<}^Yl1FuZKH>AGU%Q4ec$#)(S6>~CfZXaU832}G(icWHQ=*X=QfM_ zB74pTNa4E3|D3%0wUqj}&JH)`;eC_KdAzfvuMYBj;BNU>Gg#w`nZX3W!^5mgYJL?O z_I`0Jot18VM}M7GoOxPXX=GqDH~R^$0~)jAu9zJ|jhC*>ZDYXBL#dKP=ao=)u( zM`!gZXIrrt(qnrHUqoXY(;(caz5YCd(Lfn8S@)+Gd#GjhUfi=N#HZF_26KU~4&LLn zA|}N@#vJe(gU!9IS34i#8~H8QyFOow3H2T-o8tjA=Wm}+z^G1#VB7!@;K=m4`@&#` z(bAaGc5e;wk7p`l!&`5Ru%Co2FV-+ARK{|Z^|0kCUn+&L{TPWW|AlBvKqORjxrQsT zkM-*ol+0OSLY|ot-AtdKXcjN>pADehx3IFX|!^v{1((j%Loeb5KQP z8Ew-Xog-xKFzq&t$yz}TvAtdlM$R!ytr?}KPclmfN1Qw)mdwCJg?ePB-B?i9+RcK1 zhrumWwit*9FkQpVvkfTY{;jm7NpOsB zB7cDD6ANp$wHM8P2~?Wixa{W|7zi6h;Q(Oe{h1TYrZ-fZH|hkO>f#ds?M$WWN-ieAOxVzQ3u9d_(|_I0~W zd-!(Zo3As7fnPR*RfXm$2k*XpC2%gbL1vWbAHc|$O<75rq0cx4BfKfJM~C3vh65Z? zFJ+m;-p6S{Xme|&yY}Zqct0>i)DCiit!z;0rar!mKBJ~_=Q`5a)<}!{LJMaa@ap#J zH8ql#v!d{N+u0S%&GPKR)5)btt+QlNSMC9wMss1clgNt+h0H}C1vPPmhEQbNOy(K8im@ZTZcR_9^%7x7TkTzHe^h9F((YYq zGhuP&lRk-TrhY!bSwDNC2B!il#45S9rM?{7Y}v0E)|7REke#OsCXPT`} z_0ayH9y*?N{KyfI|4Oe&#NvFpqATW&olmYt@I?rUe7Mual_J&lu>>`nFtwB!RU+Gj zfW4Ci)rFqV~@&Gg~Pc~i`3s5U01Oorcp zGevPJ>L0Nk1fGch+s@>}3Yz&JmNEi4xby!rEEj8C?szqndpD(aR|NC~Aw?g$tSFWA zR|nBemlJh#Fk%pY6rV=+EChWD`B~hC6PD5iikruoZvw}};bs~P=8IA(V1Qc9wxa=T zh-b8g8%bZVMR#igM*hKFvY<*YAz89^3?BrnLz8GnknH%Sb7p677 zYx*${*grJ~T4qWYc}`AowP(yAMM=wN?H4^LS#(erL+%oBm`?p2#=&%dHLUA_u)Wu_-9q7 zHH_0$lc5NJi=NTj4^*f$T~eSqiwupogg`zSgf}rGnHnj)z&Kp!n92)4b5oJ!y3I-6 zTY(T1DUpNmwd2(Zn?!-e?a^3LW?`_vrjvfvmBJr3J*W-V37eV3gpdk2;DkhxR=EytUF#(yyjU$GPzKz0f=?o33*`G=d? zXdvDxAh+W$*75?GL)v)y8w&8+X05M5HSx?&uf3g| z7tz93n@hNKuh#D0JC-lhxEma$y3MRa`VPCp|FGa+`~W}mBJ0QToj-0~w{g{b-HLjn zi!Ngf*=cZduFzFVd@^>6JLvtwL(F_o$m=<*|K&<5<3%HRB>{lKo`X5GLx@OhFwPx$m3G-;j?a5noC)T{z(k+zet>Ma z3BVPuX_6^N|`tJPUtlEMY^e@XKyK1re{MOZr#@i zdH|WSJW5%$JUZu==yytmF_@m6rn$U}CJy6*DMA;{k_H$XdLzsf8${AVDa?>8W{9sn zY;4e4B$X$;k@Z1@S=OoCyQnSge$muaq3lK(?{MOK-8bD!!hT1}rcH!M;rSe^?Rk>f z*BP=Qs58GFzIKLixlg%Xt37eotOKqzd?TU}@%vhv-rbdlC<$Y9;oQjv82-4QHm26( zyv7&jUIN|T>!IC3h;KBz^(Gcm^7&pvlu^wB=~cP>@CV9;TSoJj=^+_TUl!=IamOOe zZg0YpMUK8e1Kd+H=&QEvOuYNB_d+;DzY+7(bjER9a1YdwX|X4jJJGT9zV1jTQ0ASn zeZ2uZmJ|LnmjbebzDi9vB@5s6ZFri(V#oMc*qW!m;>Bu8f z$wedppA3KY^5xrm*G)`J($j)BES0LNMsc`X-rdUU@*fF#c^PRZ6)h$#=^#X4j0y5_ zgZRL~h!Zl^J`Xa|<>&6y_S))=$ek^*lMawilaSAjJ7-M~G=KFxuvb_APHdkzwjZ^y zQI{E>7X7)eKk@_4J#QApyl+MF_4NhQp3p&NpB^0}OLHC*m!|(hMa{RO$#bUFaENk5 z{n#iCy`5%~;`1eP;W|JMs+!zsk)%-ZEcAWC#9udy)LTBZ z@!PDIx!qZ4iIwLbmA`~IMmDajC}w|~-i*lyQ=6HpG|B#$?*wkt(|tksZbx5;P`*!f z2d6=!i?6PGcm0V)%8L!pl)Fgk8--K6p4JiD)ShMUytdccu1+ecMo|vDcBp%WGy=e*p*@WX(LU*B!4K2KKzSd{PQdv3Bp?Pu{edNmmGxXiX51=Yr z^}&E-TUx&%5%k`i0wGQYO)sgQA3A#K^;;jhLNRUzMwA1&Jk3Obz9F{}W-&J+c|>^_ zmUQ)nQ_DIZchO*%N|xE;ekb#NEOUGCm2jpvXH<+3Lh|o7>dqWzOos)&PN9pkFq$qJ z*iwlIuw=f+=bu#NN(+|`U9P}q0AJ1;{aOX`>FeeS z|Hi|1pW=sy`fvKxlK*|qr&>+8ZUwN#Re$RB`X|l#|6jt2{C7U;pf`C#wRL0jiEjp# z_ENqSDTP%HZHDX19(qt%}<0pDjvypc{KwHXTw zUZ_f2`kXOUme!^aa-|H8z2ZHqMXfj>RPl9Wp|Tj@A3J98OEIeg@Q5b}V*D`3KYuVY z`33vAXBs&Yo z9TY54$TfnE=hDP)SQxvk#^Jv})mQYWv~}3_k->Ekf+lqWzGgL>H~pSd9;sir-%yG} zlf598IgRd8(B)L#-PN&y)dY!sF1w+Js8V^a-K#lnS_6oMX-Ya4`mK7P;E?#kZ%;2c zD)^O^6$+tM@+yI%K|@rjc_qSNDN$q0z89!YLR_+^QYtqs_C_p;3%G6ySkg>OD8qc%EkA4k(D_%9iSj@;1b&qwB$ZKne@BYFN6}mtGFelUrRMOkex{N zwh**KxNRA*1$6+3f)3L5t|Tf8OkQSTaX==$^fdqg`GidaS*9@pFgeDYUI*}5GpxA{ za41GDY4n=S+jai+yI;NnCW(Pqt~0(H-FS2T?%lKR-@m^s;r%L<-f9Jb5}cQ{v64&c z;+F9Kyf{(q6bc)tc3Mz2l}gx3zQZvwMngZjbBdLJ_FSTV>-g#Jy^j^$h~x$AGUZYg zb&G&cme!1DTccb$*(=el2-%X@-uGT8av+x5Q|mn50dS4bS>hB8H%ulC_WDIrbnY3C zmr)Hc-j1b2r(t4Q26+e^Um9SejmoM7N2A=F-5osPdl%h}M)YP-bRr(@gQwwl>GcSJ zK|i9&)6TwC!){H*ro5cHU@KB=$o(wvSRdYQ>M^-cRDWj+7lM4lKWn9ivO+pxN#mk`eW?tZWrFMx zQvy_rapi%@lF4FUc+mmWUhP)Bw!seE^!i+_I2SmAmxKEMHG*#YX=&|lUUFO=@GSz) zi67VPpy~w>T79q1QvtnI4tZtoIb;xg#S;QKM&{UYZk9Hk*qLpN^A;`nY)t&)3s8OR6&SQ8{+icmodu_Z zS`k2%rJ&k(%x24=YFFczcdf(ZH(h&R>n^T<9A6B8&#E~myXM~k98a1BG+tpne7D#iq9D>S4(Mf?I&4>HP3te+m3` z!}g6z$;XdZtF#ZkXMfb!w_&V(ofRt6W0|#oFVE>nl#G>%9v#1okh2$dOXE z*DBw(hWdz#@B{kV^QlEjZOlKEdgX~81bV4A6ZByG2JmPfWa{*v3&;^aFnaIdiw;cg zdHC{!e4+buaUb&g&pYViVfpvPS;)P=FOEal{=PU0IrI0$|6(%@tmoyyhTeIzBBi^^ zcE>wyPCaa9TxCy{9J8HF;oej@Cg_WwGUS2Edu_+^R&zBi*8NhBUS=Lri|z<<+k|sl zW_{A9x`b3rkbc9ii@9}HqE;zEz2dlfzViSPH-Q)M{Weq4vh$fjG;CcHAZB&z*&bu& z?l-B;6KTc(Gm)pt@jHyNEeGe2uwa4v!U|5GmoVQWwfIu+Ks$PRbO0Ll1~lgeVTrZ3 z-qz*xgGgr8=^3$VUCp84q0WQF9}o>^O4rZo);p9KuK>jw4*yEP*pPqX_&YHFithrQ z*xm&DBdm(9gX{}$z-h!()tM49`S_;KGmZ9xMNwCk)`io4G4F7X5F(FM!a_aQf1G&N z?M4vM6{ySfXmT?%WI>fU)N2|^(o-IP>8!58*OETR4%#ncvNYcsxTuF0lGo*X96xRB z4Sb)i<#<#_O-Kie*;Xx?&OU9sbKeEu+3HG{B(r45IaZ<(UFOs#GqlUZecS@EfXrAh zuDFu4r?7>R={?PMPZcyG4{t8S%L0ipi+d071u|YOl_a@aL@I@$>Q3+kjNj0EmrLr_ z^7qaoWn#?<=~#Nk$97KQ$KYsrM$)P)8`{Jz3d(-(u)@vzDy@oU>=67<#;2Ag2R$P` z%+!`utkIXr+Eas-n%vqWgGv>(mPgzl@8Nggk1LEyHrV(A2rQ?H`U*MO=fxFoYIF?z zJ~!(OpeHk|oG!8J-YFiy3rMuw9_$7@gIw1}FOQ*Y+LZI0&KY>?j0`R+BK9Nqr+a}& zEv;HTVZZu4V_WDUjRxFTS*O4|?aTKP8uKX3S09{A76_ z)8^qEiI+UqS+1=pPOMrVkD5W(+%!B&PNtLaXsIAMkYDtwc^dl%G50k?J^DHHgi)E` zEXNC08G`lm4}dixXn!4pVB2Wl;e2WB^a5v28bZdqnBe0)U0-Q{CvWBn#m|W!nOlA8 z_sT1eNjA7N>zk6-?I$VCM@(Ao+#j*!AG}w6=e{Pl$YZVTE5~npMD8(l9W2*n&lp6< z)2yv5vAPRaSnm*nBXGk~hMTNZp1?n#6CKx z=PY18nKP~Db3rt4co&%Mw>G+VKx74)n7iOFxZ&0H%Z&J+IBLQUnXtH*Wlw(T@0N53tasLg}w^3WX!|;b$Rod^t#MOSX3hd zB&e(&b;q4puY7;iiCy|t=?pX@-S<)S_Rr;l+Y_6)TmDFQ5yj6jcDzgZOW$tM@yZ2?=|%GmIY*RBNuI$DXVkbfvTQVo>PIYB-qHq%G_2;NbwzU7|`D$D4R~ zB+OC>Veett+4bfrdTVQAjJP}3 z5}m%CUwXu8t6r=(?Ts=Xzg*8FKj_xe+`b!#o3k-7{$4?t$SEfjoNPASYw77c!0p$> zNq^q|&8@z(vf{G46m(u2=sb z=s9OLD#mw~kWE=ucy!-fuwV1ad+1`yl!TS{%G-CzA*2N7`ufy+B8WUbpAgSvD{NQG z2+YZK9?!7?d_;wI;OZNv)Wsup`_I%VvXe;ij~L{8V@i7>lg)(-uxR69=K@+$ro*cU z7z{ySk4$YJNy#P7w!Aw>aF@ZjL#77bxTjc0TCoa9lrWDFFUT`yHGX#YR^aAQjudMu z+JAq=cZm5ZwwaK8?t2>%yVV_9fJW?TE2@qf78%!%8_Jn|u6FMzt|Hct=oA^-*?D6x z>xaU{Dik9m@$32c4+8mpqwjAF0@>~R8&>=ufFA#A2*yu1 zWmQsVRY;V!u;lOf5a}b8rQr>MoE5+&JH$t&!;1E=&HPoz^@Uq<%>VrSgR;eh+rB^A2j@*qIR9yoq{@-Z^7%xi`1QPl(fr2BnzR zkk;~Y6e&4apck3V?@p92oXtv)5X*8S@IyBvO%G~VQ^MZN#dcmNj0Y}T zL;IrwJ=Y4x7w-Wy5#H-SuqSZClXihhJJ@VuPF&*QQ%NhrrWK(lHUurUKxVb{LM4gL zLL*oXR<+SqBTJ3 z{pr0S$KS8xAp> zV93gkD(qeth9)UE{%94h?)gPInDsJj)kMnlKh^gx73J$0Yz$Bw2LB`Kbaaf(eNNLZ z8&kT1#l)?M-A}+;Ry6tG4g{D7JU9(dLIdgV`es?K(Rz)b&fffn?^p&o`#RJgN7*sB zsN}cpw7sg%xg{5vInx_=_yizhW zm0=3pxVcfu>xk!*@9BGV-cT7nWqqv~A3JGVx0kj`4&7N+gqgdXW~H^A%6vQKFIZ8V zEjd+9NoiqI0+QpU0sy^7>@9H1W!$TJ}|Q~ z98c=wnPk>S0zGWF;mhYa0W93m99(BRgCW{q!A1C4tWr{Wrq|uJLdU4~`gyOl_Vo4< z^`5801&F;>3*HJAoNym8W5e6fXLgr~^N}rukNfhK#I08n_^T4M!tWOb;m!A;{X7fu z`71cogJ|d1ZER=O_M>*lq&AZ5*xs5oq*-=HF}_=k&P0Gw~2LE|lav+}h?#WhSa9L-hFoL5rv z+^eIbK+^BL^x@idi6?6g9`w!@I5J5&h0xaO08LQ6H&q8${d( z+AF9ByDOGYSow&hPLApT9d)O&G_cHF&}rr=^oLfMXFw5&)VANq7%+~8qo0Jh>Zkr0 zU@RiljAn!eOhVTybPVbTqNpu<3xcQ>k(4ePpNs+-pv>X!WY)bX!06lUXsD11)d?S8 zG|C!ykC;j&Qb7dsf*;^>VfOo?wkNlg77vy}Mq@ zbG0`uZrW_dMn$KOsjZ)K8EqdgHdzu>j@}%x)AiM}dwcNWj*fIN@|L2JDDEjTIe(~V zXn8>`At0iXx^)RC4J#?7rXpMZ%7fbwi*~>B5ga56doJVV|E!XO_3&n4e*P$4s^?Ns zYBxZN_wH5Ia&>imiz%p_SQbDb0IFd)7=1lD`n-koRbURst$Q610#O46=P{BhI0MW@ zAU^?qbBLy>9giFjdwdbn*=y=I-<|rmGUM9g}T`8JSnp z?X0?WpU==IIZ=A{e0YkewDkcX6~W42<5ir&ro5Qf zu5CECqH*-Sx9y)cPLY09NkO)D6@?hVekewtVmzb;lENqnxM5wgs%Il)_3?nv6;^e~ zCUTSlcYkF*k-ntmQ?-6YQm)QtEHx-R^oa9Vs_2D4J}cGzl8wN$7fG$<<5jmBcn-Kp z;s>T5+0nkKt!La~{3Ci0wd{~I#sqZHuf$&+uu3Cc?*$p?G>ZoY9P!9|oN3fGWFyAg zg3jBR>io-lR@j>Qcu|A%rNd9(wF#GJhtpv6mNKH|Es8i(b_s{Euf4om)UJt4<`_e5 z%#7W1vxL|0TE9J{_E(`sDCOfp&48 zs%a)g|8N+FZbHbKwqOzL&Evi0wQIVPmS9Y+q`TfV@sneg<&d2a1hkttkbJTaI#9qm z)wv#f#m%_#9T8LNF+FxCuzu)W^2yuj4oxGE?Y8hHjT^jq(jOCmT5 z2UTbMywDDbzl8IKz*QG;sVnV`D`)B#U!F{8w9Y-B?vS9y@+lrx4jtct+mu6$GuQQY zazBVwVc>0ZD|&susRqTLR%6Ug8{ICQYKRcmziYtBh8Ej6XMi9H*i3O5?Ie>q0paG zpW<~muI)B=Dd7ErCcX9VK3_7H!;F3uEEk~Z7J5RXuX7t&31Zv%V^Z(YRTOo?9d_SW zPR8lssz>w$G*^EDpl8Gl=r8?Tz36zE%S{z_m@+#|MYf$-rsw~ zSp)gwPSXi!idm>faX~pH2uQh6Zw_$Yr!~pEpfy!GBxOW$QjT5)-UPQJY>8;I&iG7S zq4=IpOv-7PN3^E%QNZX7fjGk6BwV*%SU09GU?*rFHtyP;^6t@V)qR<8cC0!(mx68i ziD$3+Zg}rL@S$9v2w1=>8rLM3q=C_ZLU+BjtiRaOi+u~$$#}#Qnzl&o5R7hC;p1K^~<@OZtc%7VXBL& znm!)U62j75WPsn)w^7{Gr2Rs?+Y;uF1_TW%r0VgwN3;tGz=xALDkSC`E`2K8lFNL| zwY7Nc1xfswaP#fg(36r!YzrHEf#8Ro>$dld1$x0c%Epzf^&Y1yOq)&b0DR6D?gQ#T zgj=`|D4&&X$oN{6fGop&J)mj(H#c@*T9aud?VzVmak5U|f;aUm+-G)`NpVNsm@@Ho zx=}Y;G>}8vDf^J-F!oVU9Oo_c{IR8hVT9oBP483(1=|gKRBXHd z@8K#AO#WEuw@u_nlUwK75tqq)0BzyHFSOehTInLt_K3E&Wsge8zFsCM)aJTyrcc}E zdeXJv*QODg%LuyrChiPX>8j_1_#mpYg7~o7J2XkIM;lk3Mrb!XPO%V182pPZ*uf z-`mx2BNYZGtfuXA3H#Q$WBK<9-c`RkUiGBj8!mGVe&5Xw0XOE5`zl}PexF1<=hj+b z@EI6Mz2ae?{!G;dv!B*`D#ZBDPr3YteB`OfPMBfcMiqrp&_~tJ_(d8Va2*yx&QF7x zVP5}kzO$TMQR#8hFWn|dA#D}$>-b@zpZLVl;xk^iZ3?Anx_{u-Z?eO&`|QUucdUA? z74H0@iJwO3vHM}4GV3hMgj}5_R>%hAaUJxZ*8P;GZ~7HT^#Kf5cWsO)l75GcLdsbG zZDL6N(+9|ZGDFxO*}GD{VEi}E<2`u>g515dr4B=65SP~ z)Y)3(4!@fkR08X_*~xQ%9$r|JYC$C9c=)lT!y?EO#~D9!8;mEmLmr}m_xkhQJ0aef z#cR%7d|R-6BJS^}*I@X^h~g&{{5Mr0#gYFtDoq(g&{wVYY!uK3Wk|x=5&jQ3#nNXn z8}BFvtTk+p>h>5|`YFh&V4zVqc^3VQjkY%>15Rc4CsH&sy>5(PtpC%sGagL|oPC-=yX;ZMG?H`N0B#1RjYUIdz4+I;(l@I9*s(J5)X7IuGrMdbkdQTU1@C* z$sEBjU6?TRHvjmNEe+gIg!Aq!kBR-T8))_ZkDnPC8jarxeHyj z{Qd=?9AHi&fmOtn5omOp*Fo{l&4yF3IP&IctA)(PHT39ICd5eYvAKqhZurUt+B{NL zqK+z@H*s+aOKY1o0sHS&{VvL11>P(A0u`J7qd@#QM%RuDpAM<^>612BGEdZsiBydi zRUt+3797}ok2%tX0o)D4u7M#AScM$#)BIBbn@f|gZ$=P`qBj@s-Uwg>6&wjZ^O#JF z&F4F7lJ}!yQ_m^*y+Xf1|Bvo1nZ21D8+(sa<|S*nkLC~;AA_ZX;yS}jaszl z_HowtUL+kE{)T#LWLwMSnHG}c^mWE9ry}vvV}^wx`;FOaHq7}BT7Es8&WX^K_`;$PU=E%fVafLBK|uH78wQqcVqK6VD~L%S_e2!`gi+x6OS$3VMsWwl&zqu|#rg7V-kM=A z740P?%@QUqa`h%yl%Yg%QADSMGFxAF(~X|M;-!FoygRlj`4mQagB77&o|Tuo>)c)M z5_zo4Lyt$a^ZK3A3ilQe`cXjo-^S>F=Z8J9b}_5qna#S%ZS|buX}Y1)WHMs=qtgjm6+Ppk=Z}5T@laufEuM@3TLIpar3-7jN%8RbbOgEN{6(<9$4n5F7MT zi>tqxNCkVi*1qR+aK=)PA`$-6;7nx>s=|ghjkJMpbY+^E$7$OJQ`CaH(da$6t?e^Y zQ-5FAY@O2F+k<%)z3m-!f*{rS&jY`|%7CMl6&qWoql=dn_0`fMUFv3rpT>@zl^7Zt zQJL{zh6~v)G{7ivk{4Cv`)e{(bntdW5LQN2vFrroW(yDI( zLz}m_3LQaI>t?n7{;;myha6K?OqrVE-y5bPp|>lIrnY&?{ZgD?-`s;HREC+F6oQ z+a9?gWmnh;&j)>u&ti^_z8cW(@2kQM^!b)tlVj~(Z3`Eq)tM|rJjRaQ+70D~I)vnB z4m4B_-x8OW(@4%M*4B+Kas0;@pgil2@wr#pUNr@u1oOw`x|auS(!l36a)#yo5aaHzA&%IKTw!A-iuV6; zJ7OMGzV(mP30qp)?s&;QdDL`G{2oWhc)UchhqxSnPHk&MvMmT$Bqbzn8DIEPQu0%$ z{nGBsH7gP3ik3?V@({OFxG5WLX;b3gE zDu;kl@<`R#^d7Y|sj?o7jq`8OOG=RG{5j4nsWd|n7!`!p?B=SabOWZE=(oK5Zlhn? zE5!K1-7ewKfNx>zSz%hwhshpLO#MPD7AnyW?a}1kdgf z@_;4mC1Mr;RLUd+f9rl&&@=1T@T;tm%k?U?74B=Rk5#lCmd?ibdcCP_{k?vyVd6nT zVwwF?$D+ck=vb_i>Ry216;_5(P|A0MJgyDV_w%r)*&rZ+vhkYM9^anP9b^rZbhh#Q z`2b|Ld@?|iOMTy*UO#qbW2-BZ%*{8O4&ju<+_EVf6uv=`GkZ5s^)}^?toG?XYzt?= z(c|yWkxzZ+e+9I-d#wA=MhApJeax3gd1~}8P6<_-i2JOg1B9yASxaPEKvXd+v^4W4VCG|7d)Oy1+pF z&4X`FE>$%ZEv~E#8_S5Ak!`N{jDdsQcwU#4AqhTN{XFE9W6adok&ofhM3h$@_+S2Fj2m@u^K6U31xv zL;8apEh!Xt6MMN1R81_iFJJ#7udOEgdGcl@_CgWD_yW!K;UTwr8~F+)T1GQoF?Ua~ zSaLr~yvE}n!M!fXq)s z{du%CNj5ZA*7n(3vz|+YDI7OW>>gj~P+WCH7(p0CC1&7er z8;3g42}JRzIM2183+IyV(xcVSjLe4r)TY(DV|k+fvpmnc9g&?o^N}{6;!-2EY6q#23A6Bj3o=;Xhe~!CprBTL^K! zSuaY=w1DS*;#E&|ttWC}Mb-_C-;9VDmt*%In^xau>ooB3d0Q#h-CIAreB0LJ zQHf{`v;Fg<@&6Y&ViF2amYI2>3n{ap=!5yrDGHn;!=HnCzX3aMXzthr-@R~BL7)ZG ziO2!`ZOZ%lLph!dVcgX}HP*NvC%EwQ$LI`@qe!h@ii^!u8Q98O4Sz%RS}CK|yFABS zG9O4EAP`AL4+~>vxOE zZfF0kQUMT1W&m}7TX-R>@aoQTp2ASl!goZkMs3~F)BCA~r|=p2FovRBsc(bZ0|pXw zwoJX)`|^(!MhM;h^=ktg;-qFW8?VOn)od1T*LvzETFY8HhFE zxQc*eh1-+24OU5`!%?gXJdmiVc$9^3lq5jn0QuHsUvB7FAD&2I$Cv3fu!lKA`)Vp!ia=;<1hp|E1J2e@+B~WH9HZ1#%Nw5bF1Y`av-bQ8_+sX_$NSn5 zFSU&?denQ{K<8GlBRqT*Qs4}S2J&LjU8m<)=XVk>i!Uo(Yzm%ojKG9aWT#S%)4p6U zQx|HBm%h25r330QPE2u9YU-v(g2A9K$%t+EbF!wANbK=B#W0Y?f#$+FoNNnj{tTcI zdx#Q_cyx?tecR-&6d_8_v0#F4Kg7&9+LmOExwVoPE$gGTy0cFtWarkY#w_%_BoCjT zoUjN#Tqa?CV;u;)3@tIovbFCCFGpUvG;a01`PV-Fw}|JBj3h8s9yA)Pa2-=GMwd&1 z+vpO7|1tWX9p6F!EpYu_T=@6y|G(ZM|DW?y{GY=UhZc*^A6k^7A2xBFE-&xCDV)}( zJ<%f*!OhHJ!@I=lC7~CI=xLb7+qyWNUs0mCPrY)YT|tZ_gjUF~_re^NlPeXZ3kJGC zHOC%>Jw<#V-F!|dO*f7;r^-2_)HF(|jSv@Wy}!$S1G?Ed?Rc6-ExIin&8tnoW!ALb z<|Af3?G=Ais>Rdm7N=u1xt!XASL`FcVB|~g3VY`b=MZX}!U0AZ+R^DhHg9XQjHEg4 z+y~bkiyO0u?!}CiG0biKI@cEYrQG%_CjD^XGMN*ZuS=x8`ktGG^~CeW!3CeUWbDqi z=2m%qls;%#boi{o%08kFDT2iFp5d^uy_8{0B($hI)2*%@7$8&dwsOWq1lYYw1zbU* z%-X){?5_icxqV2(L7gWc0d?H%>Oz9<>#5^NlE>y8$Bn)IHy=e<_78WG)-2_+5i-t{A#T&y~w}mqpV() zE?tQ97jZ{>)s0^HUaE~MSIW5p1~c1^E}?q8>)1BjiaXUCF&-~@TO~VO+m5m1_7L@y-?BFy6 zn(MuMW@-2Hg1)mTLc7-e%*U|4Zj7k1#T~n!47pVYXDrnHLTZCPCx=`rzud+`YKLBE zmW3dJB|7Ly)&@y&Rc4m~VS!e8gURjLWVY>4m`mivhECL|W;EuA(#hVRKZKuj(u6XY zP5`DUGIk*)Mn@+SCA2$*eGIr22D{Ba>zwIHvJ%Bh05hGJQwuB*+ZB#K%x^A2UT1E? z4ES&S+80KT?vaZMVi5w`O!x*{d7Pn$j3+JQ9euHkRr1cE>0-0s#tAvdX&o9B?R|qp zMvBUh%o&Y(PsM;FaO)BtNCZnMTX_Vi|NPuk8#mBfgyI8UxvCfaP+&A)A>#|5Cq^w` z-%sJ~9^Ym+H1h#>(ul2!Z+~5aJm>&E*z}0g8k<~b)bL(Vs{UpnrK?o1+GKS9j*^-; zQ2Q1FFM_z9gPoK#GHr_zkuf01k85A+G`;01CMmk0<&LWtsh)y+PnHxXuY1nCdwU?W z=6wFJ_3RnU9X}(`>p{J8)L|~Xqb~-Kcmm$|>L4gFN;;ttG+F)%AmjEEql(s_8oYZi z8qyy}EI=ljF;nv=6}>d7=r+1Cc)IG6tfIb+piic=gXWAaV>!*<{3Yu`Z-<~b?hk~* zrQFS=MQ#OjhsVo)h9_VvY1P|yHYM^P8fct|t+=~x19oBC-b^=n`n$}h7Il#X*nS1L zbWSHSgoc+5>92C*2ES}$PCa5_GXdvJ8aOR%90x8NvRu{b6ta!A8Zodr;?4+2vIzE< z7U`-w>8K=KEv&)iTyVUOb_Od;)&r&5+fUj(FI=tI+iHzUikeNQUyp==6S~Ay&&f2W ze->dA{C~Ex`k;You8u199D7U^cqhW_Uuw?Q9gfAryt%#4w*h<;kgDkd ze>U;yW>in$;d1j3AK>NB-AVw_1_-MI?QiR+ZzfrR>oL2W#T|b7ij^R2i|GiVQtDU{ zWMc+oa5^9t>GmSZE$u$6m$CpO$&;qy&@$>Z@)L`}@_Xvt?G8VV;Je?W_ees}9B|3= zt9X+7&v9apAF@NJS6Nh;qe*D=yZdEhk1#EDz*8@loc>`SC+*vPSb`m;ajd z<sK4SeSrjkQTUq8t@ zZ(a_F9z?5XYU}7&&wb{K@+g*P1UXxn%qdmrzP9^oEYZ?5R%qXdyyuk4(Lna_S5D|E4O~M^o1-CT|YKh%jR9m{D$uo0{Q6DTNW8tmb-OFI2B|cMaNNho7WNJAKtYQLcIFFV-XVe$7k0n zM{GZa^9P)wPtHSQg%y(>#`AQwa-+V5KEvcS5bYays_U61#W%Sx4N|-$71)wkgydv8 z&je{P^0D*R951gw$w4^wG#az=+lU8v^Pn3I+yCOs1Et^3vc}OiP`ayy$D2`==9Il) z<>=kDq8}2hOaA@ceza*4Ht@{K1qs|7I^!yc>W+o!Vorl1K?6U!@)tV7n->1J}YH$8>y#OjTy#hAILK|DELccX5NF(lbLiyp+ALXfgpoSoKGe`1U z(!+{{hC3B9re9|rZL!RpXbanoz~nYY~$N(6jV8D zudl=GwvY_d@S~&FN16-$yaLdJ-cNqKCB2?N233r*`Rls7pScWGA4%iyKfd@huk;XW zPK^{E^FxL|JaBigZCgGr0Y+A4D9K#P3XLibEw#CI zx2y#udc8j-^|pR$RR1I{8Luov|0z91Pqs<&L#aFSak#H(uhJ`!9mjND{qq}dQ=RD{ z>pM@Lh=W9xb!=?`r=s}UdjaTlsW1pnlq5-dJUOPJ&j@028`36QG7~-CREKZP zwY=}ihX%6WdjH^SNDVJ|)a&ropz!}Wh1*`^FYkdttC8gS1XO{Ca2o5_E-gvrA*V!c z%;m^Vk*WwrNE&E6VJB?W?0Z7BpnVz^ilIOL?`%(WhZf+f^JF*aW1v;sw6eMjPz=1t z0+>RDuSh2YY7a%5Oe?6|K}1s$Zs+pM8oF~Y`rfc4W3s}d37yOzE-$i-;Gj@G1j^1J zOpaOug@4MW=0jNoebU|j9F!myrrC$$07MGBONY8LZDU^OZ6Twjx40q&;m+-qA@ykI zH8kZxB=ta&7s|NIwDPM`tswFz_n~7U)tCAqmAe^ND^S^u5EQ~s?LN*ah?rhi$;
Ry{lVu_3a^Lp^ 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

iEKfVHB}uuIaO04lH>aWw35>Ax=UiW=V$Nv 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 diff --git a/icons/mob/clothing/head/winterhood.dmi b/icons/mob/clothing/head/winterhood.dmi index 3218966413903235d6a51478432d5a21bf11267e..cc3fd8a4e5d49fd18705fc25fe7bdd6a3772180a 100644 GIT binary patch literal 17841 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 K^OPPw`+oqI%8%** literal 14500 zcmch;c|4SF|295IR0>Hb43!kwD%r_Win3&1C*dZ$?2H-7mMoP}$kt*v$iB?jCz36U z?6MpCzRg_EIrX`h=l*Ll2;_i-H8b1emO1V)WF$9 zm*I6r1`O4wi~SN=m0#$(XCO6?>yjAs?rEDXviD1�zC?sVzAPMgku$9uk}_FHGfd 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 DcaGD} literal 89666 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 diff --git a/icons/mob/clothing/suits/hooded.dmi b/icons/mob/clothing/suits/hooded.dmi index e1f98d991357eb80dcc992af4d3ba9f77aa9c636..7d2f53a13b068c981c0829090661bde722cff385 100644 GIT binary patch literal 42502 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

_ZYKp#4Jk1^G)-r}T6rJ7Kg!X6JB_w^g zDaokX4|q7r+Qic%%o2jP)zd^MlKX!)Y-Hlen2a8nht=a1jcDtyI; z_3=z9w8v#=vav_%pqaw5KYePKI{QNbw2A*RtR653#q0M>nYBpNH_&CKj=?|%?qT^h zd5pQSvDmr|=4^(Wob6`n2RmN(8{h8e`u~Kx@6DO+TovN=;nUsg)z$mJ6jf$MX6Cd>WD*qFE}ZIfZum5l5A(rgdLGd9H!QNKhqJy zV7$zH6d|Jo`ZaEJq=AU2^JTX*N3DZ4eZ{S}!7$r?Q4iEriaU>)q4ua5)@rGn0rK%N zJ`h}hAbI6qtZD9BjQZ?*ei#)Y`>myyjM8x`7*fHQ)eHWVwAzM@x~LuWReT_nW}VKy zg|6I6Gcbe=-dfXiGsmtc#O>l;rWD-DBR|L??rNvOFU*5K~Ff(Cgv1(I> zmvkT`aAnWR3@wQ@4F^4zh~T&> zn3zxjZPqox6Tu#5!w3K;s&-jIThh6n^9(wm5BsadjnRw`B@O<#ezuUJ+;l#m9sQB) zcXJs__VQN>ji*mZgZ>J)inf5^03Lu-tC*~Jt42fE}e~gm%Ecq*|6%?b0 zh@(htv$FeX0`ApDx~Mi$;U0nrc{HUJXiyKX&QNgRZp_lOKNe)0bUU|xE$Ui}NfyaC zyS5C#v0qDj4FrROCYz?sogxJ+e9A&?ejrQ^uhpeN0h$bt$sfM(BLX?oX1}R+-ssoe zG*j>Sqz5Y>pt%{l)a2&oj?-ie5q*8KK0pP+a!yVV3Vlf7=l=2IhpdGK-61~TYP^
  • Z5TJkBKCXTZDmw!n6R-&=T*?;Ge*-p_yUW~uW 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 diff --git a/icons/mob/clothing/suits/spacesuits.dmi b/icons/mob/clothing/suits/spacesuits.dmi index da50751959925f57392908059ff559c97978e13e..1a0f5001b34aafeb0dc98ccee85a1abffc9de624 100644 GIT binary patch delta 324 zcmV-K0lWU|$q3QO2!MnEv;v(Ye;-LiK~&emN%C8vFT74p#AQ%Q7g*iK;q7+K~&emN%C8vFT74p#ARqSR4QhFv6i?ja=`4L z%}%pFgTdH-Y$yU)SKG*ug$~!Q^{zPwP_P(+lX5t+uC|f0l$NbI*Nz_Zf<(n6)z5{n z&Q`05%*o^A9ttKy-s{;zYFZq2j^sQ0agP^EbA0mIB>1GbOLJiql3Z*Re+~G@&OuJf zxmZM>Xp32zV2H9WS(ySb$Mt31M?j8 z1x5@&o+uQve>OYK{tO0Vd$Qpn;9xMb*nmX8rl+Ur-?4a@ULzMm?OcmMV(~D_A^%EX zCF{HvYuQ6Cgo$pQT1{5!PzkaMQO;zz{r)I?iDXu~58{9bk13ImSExr4@hVNfKZ^KV wF$Tg>G@5v4U_i#IGy7-QiS}nO7~7Bk9|9y_R<3;1mjD0&07*qoM6N<$fPx# diff --git a/icons/obj/clothing/eyes/eyes.dmi b/icons/obj/clothing/eyes/eyes.dmi new file mode 100644 index 0000000000000000000000000000000000000000..63b92986ca50683e13c57cfdb0d9610e59060a28 GIT binary patch literal 9368 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 z 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 diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi deleted file mode 100644 index a021b79db58c5f1df90fc55cfa9b3d0c04541ca6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17750 zcmb`vbyQqI_bqrE2$J9g2ohX_I|M@GBq2Zo32wn9L4teZ4oM(r@L(ahYvb{DTHRTS|aQa%I#0PodHIW+))NP!KZ{m_TKT! zY#o3do=5B~<)HdJRBZE~0rnIr zPq}0jK`TC=y0%fFNHi6#12Y4L#j9bx#I0_~|HcDqmtn ztB<@wibd{QD{T+aIAiMt;i01J;-2N~R>^DdtA5DeA9ad;%*k5gBs$CD6=l@KH_xmE zvm;B*;+RWk2*536T^t_X;b$NmTOlERc_6cv{4yAu1nvSDF;~|``RP?VA-l)isLA5} zB@3c-7NJWw$0=r^R(}p9(}sKWoW2A`t1;=~JYRh{dlxQ=`Z4*5YWphp7$L0phVIGT zOkS|`7pC2so|)hFXc_|#FoXx*=O?$t+N)gUn9-d7cr+k^-;grEn5)6E@>g8kTKh8U zH{Kgri9Ca2yUEi%jr&Qni`waWAJ8Y$2>^7!D>>=+Za@E}dg_sy-F8C*vbyB4Wm`E( zE%mwN<%+5oMQ?jJ7pt;P;&ZEBK5VdccbfLGmDk|l`VMy{=c*jzKQ33&T>PWw;Mx!t zYHl?Fp%;3KL7*w$g1F(^N)iyT81f!kwL87p5`to5Rx?PmENBe!okUjAx#)a zgR{MlPKWKk&DjIs_>XXz!Z4(_$@r!G>6{)>&`A^42jPCD!(NoZd`T!5)BePGMW0>q zKi6x2Q!5bF6Z7^bL$fN%U%|UVY1;pB2p_jY`?j)5p8BuSZaCJI%={g}=mlHe=KCbp zNC3Qb-mLsIPjmm2GwiI}7h$xw?DHV=7m;}R2)oj{*o@!S*L_Y}(yfYtGa@92Ir zaZPt6R>@k@3rJr|1c0lH6k_dWaq^DceLPf1RQf|IZQVZ<9Gmlttj!gm()~`u>|XL<2Bc@ATi?IV_{QT-JF`RweJIKX=Ck?E3@D zjFIH>iu(uS4a1YRd*VVZW(wH@@23C$wZAxtL+E_{{+(f*jg4((e}nz>g&8;sKHC*6 za?H^fEAj(sLLje0lz_ocga5^S(MDDI* zGyr?YmlT-BD=k=MXe*)Ek8f_51bfA3=(J53j{mgn#ccX&+WxTIxO#u=rj7LL*AES~ zv_d;0$k&I&4?DI;v*pKQHw!jgNp}Z@%F~%+O3wC<|1;O#-U&#+@Wll8e0=gkVaOcO zQ%czHE)F&kM_~l6Dr5UoahHrge{es1_`sVo2>kiB9Q{-rkQ%VKdd7eDn9QSOXsLyx z{mU4u_t>F?cOK@|_Wb8ioUPH3Joz`ev9ax30+jCY-L>XM6^ZF7Dg73vraj61X^BSK z+7v23Md_6|z*$gJQ*$#jaC8K3`SGK(M5|0@N^hzSWBHXR4p3`0&RiC@kIR+raf~Mm z0ZKmjT7PD^e&_q9Z5RR=enyte$X(?5pj=jcQ8MYOMarhoU8sk%5U}#?_qZ|1Y&x>y z84VU7L7MnX_}fi^@8xeB2oMv=MViucJ8`(UWeva(s2K1@s{3(Zz1biET5gvY=_CG* zjgKQz(xD8L%LkS7r9L+ve1?xm-n@FX%E-V#NKGB7o~JT<22qfc3pLx@-8DrlCDQF- zVZhA7QUHK}38g^2^YBqj2UiMr??r(ZiwZTKi8oK9d)b6JX?cCnf!W2uq)l9kNn78N?s1TgIQ;xE~g)cPH0))`582%e_WY6%O z-M6{4d!qsXiQ82R|64`@Q)JBh)cAj=t5>>$ld3OV$pNFk5p7VTp|MW>n>;jiv+GZk zSDDpYwCsAWF?SoXfRxwR;omK2_514K5TRah@rZg50``h0MF31zk;4qRc?#{jprC+` ze)djK@EZq*Bcrfb?Q>UdUS7n(Ga)F~M`azM)9=ErRkoYY(y99hG>Wo6^cMiXRFS_9 zb-j}@WeEdqGwu8dF*0@kr_dK@OOMWkEmQLqLj3>rc1eMj6>$sKU1VbyA^Hvp#wua@ zla*d^i&HoaX+UhMsXy!C&%v6UB?V+EijX0+I9e6g{vzv&ION}a{W^eetrt6T1%+%kiwZW>mM^jJ@MzG=9^O(uz{3Y&pcWE62 zARwc|wrxTHAlNrFfhr;I04e#&wfU{(|=n z6>NI!(?vn^V#WGMLvx;~xw*^l)rnAzo9F(7e37Q#?GpnR@5K`SYPv z@r1)=ICQGS@bH)qA-jCgwhcCZ^guiU0HkjuiN)J&qG}U23oA@BW(LWL9 zaxYhnFhdafVssktfTNec&hKtLqHdnOHeV<%xLryJ{IO+-=tbkZDLWLNU$ht)AXYx7 zy&Z-^0LLW{r8mnLBeE`+?tJEz=E$_~NlCrkot+Ti4NL5%NDj?;Qf60YXJ&J=LA<8H zyWo+P+t7%JfL_z@2kYN#Jv^Sn!6g@cgNY%KB~R3FR|rQysq4uZk@GK6QUW^^8Hp-B~*t-PN<2GuEf# zp*PvA9z}=j`#UUq3Ip`q7p-FVN1nhi&;YC5-V1#)IN`oauzNQ+g^(EZ#O!?!-+pjyLNVU@lo;CY*1NXco?cC#I!dEdF^rmz7yvrdE;Q6V7Izt80H0vn9ww}ZwYlmv__Az-AoXZrmOd~ew*(cm zn_zV1PMKQ~b+-<3hiwr(-u4K#t`7xaFtdwT2ZWj=>os#p_HB`F%@@b5p^Z^Ee33ux zV%j;kc^=bk@AD`SxM`~}XO?g=%D>B&%sS8lGvZTbbn2lY+gUrF{*ag znRtKifgE{C&(d~b5^Xd!gzhkoC(Vaejf3M|lc$IbAeD{%W)Q`B+584t6e{~}SM=Zc zhXGaPyC3iIdC09wppteHU+EHQjD+BR+L-k4FA~Tcty6Ak-d4X>%+ZW0L20|aZENIj z%&WgAoj-Ze*w4_p4HxiYkss3mZJ)^E5{!p zfKfE_i`xRuvSQHu(7N&aF0L<%AFo7Sro-b3@2(A3!HEi5R*VJ|qceELCF!{d)D`qq9IN@l4rDBA2;JkXQDo~*NGA5!OVx~tO< zvh~PM*k!vZ!d$w+Xa8vE$V@XhT7 zqWrYyQVdl)57>B(sKh2xY&xQycb5D3)fy?>nQn$Au{Z~f*yFcjzUgR(Da(emm8vG% zKP4v**xZs+t^DG~s})kt_hs^gsCWj2p$dSz#8eKUL?2g4zG{WblN z%6p1H%O~WhR+a6wRPSiJQEohlC5j3P;fT!mb)!KCerUI-pp^ethSX^K)Gr@<*MFJ) zvif!Sw67I6rvP#C)ARX%k!}y#|101A|H0|_Xp;oeg&uSUu5P*CetGend)g1K7sK({ zT+gbgbNXq_dHyBdcL?!|U{VgUW8mwL^Di;=uWklw{g}NFqs9{-_7y*T76&qX?Ex8C zq;bc{A!2Mr=*8wKGdhz8?lGLwPrxEs{F=93Xq|!Jc$pSK2#;AB@gE%qfZG144Yu?b z?uH|(n0cqm=dR5IX09;YuiJb-#l|Bq>Q7U>pDe~Z1Vo?Y^)Ku(8o}E2!N-~CD#27}BEJ9g+VWt+6%C*N?)UqDKd!JCj{jT% z7jMVKQ~n6S!YbZhaY^9BB!sM>TKzZ>VOs{+Y`6u}pYRN1j6j^C@y-=@Jvh6r`dD21 z*RGdFR`JwoVp1q$*Q0eVZqpTMOf^S20Qf$@8`LCRdevRP%uQjWqeFQKa@$am*8SNE zKBw)sfRu&?S&6y-0F(E}ulJ8kbUO&LfRuJ>VyQ}8wh4e=HI9v)c$S>Ui8Rhd?f+(X zvq4+huKhw&Y&ka{^TRRzu(&zz?di1mbDcjnuYH|I9cJr;@zW_*vby7I&s&71`!&&* zo4q6Yr;~IG+g>q3*$4jqLU0-n3=dCFV8njMm8fZ8LT{1!u`htC+&aOh)>{Nfu>1Mc+;KO}- zhpI zuRLP;*Oio%*0Jy?|Gs-M_Oj;#`j;F|MhOY(F_Zi6+uPgC6e>agHZ*Seog)1NrCpya z3B;WLBcc_Jv4h(FbKiZj`!Kq?sTa}`_EhymofTi!X3y8bxH}frlT_&W6X)497Cznq zPyeNh^2%<#OQiuBlaD1)a-((J?MQI@GMaNyOId8oE;lpS zJ7#8PVLOrsRDS}h5QT51aXm#OfwO<}pGySbGzbzuY@UVv?#XPN+$#bun8Vj6ijoWgLYN(>VDFm zad32gHY5nA7Jb{JjVY1lhbr`X3YznR(+W)38#WLaCsL!MZFk;Spgwo@oZZ63$QeLsnmg{tY~YlLzDtmmL_0Q9B2sPRA=DLzO2KWHe!t z(%%5s<{Zh@=3g@}_4(+(ic9g6o-4ZlvZdIg2UPny-Zc{9wN34-q>6nW*Tk;1f}vwQ zbl7aVT;fQx)X<3kv&_T8qw4%tj>F&ob^yHvM3wYZaJ|3RQuH$%HwFTQCV$=Nm{(B1 z>Srw%^EPa~$9%*v#SMbRZ|tmjITi=ib9JvI?n@L({J?ah?klYO6s>1wpOg`;-bu(v`An0q~cW$OT3KZ@l))hMGcus3BrIp>RDW0UUa%%%Z8stK5^)j- z&5v^r=W9w9sTw#kB!tNjWlpXG-La?BYKE__kAaNY6Fh=21f<0Q2!Nn&j*JE<&-vzJ zuvWHvA0=xUH6dO^Htz7VyxGQ*swLvl_t31y+n0Yg%KRp=w7WdjKPyY=Dyy7;TQ5{z zUYmlrD@L`XuyB5*mk*raOs-4bB_1>%p^u!qx1XXejDtI~ykbW%Y(Lo&GRm>1C9iZO z-PzluH?W}1bu4N$@3f9be>VJwfLbs94v^b{&ot(Awg#5_dFl& zPZ>2(WMj;&tQ2gns`~H=zdS`ZqM6ICx4)l6G4J0~+6c?VRLu2VgiTS&ugiRnmb<5A zd{97?pcRNoYlKzvkPuznXanRD-$tpY_KONni*25lG7){o>2!l{hbq%V5NfN}GG#+> zj@OO&lRA8)RFy|QJUhkndd2b8h!yS6fXERDrg~Nk0_!IoD6P|k)jp>u33$9*Tu~-O zOM4}7d?{Wi;C42u2*F0Dx4sF~dH3E4M@P^xHS-fDf9yvQVWrb^huUzC?yXlC+txQa zdxZ|S$1HjkZ__U9fNWv>2lnz)7+q8J*r;iARIOs(dVhGxiz&QE>Cx(WZT81mRl|o9 z1vaMhwF zZfjf~h@qILT9%=H{EokTpauSsf-hRsaz#IhKU)xvr|OH*QlBzMha&+0uzU)9x<>A= zPDw}wmltq6#UAxoqLrORoeNzc2OGmoy`tvI+@IeK{l}1Ss2)hxysaG?lI4XjWf!mX zZut{IQPu;=o|ON((Z8Nrzc}dg2x)Mip=uPt#0ILWsu~*t=+f}r^6CF!nPxXJD-r}G z>6n|d(1I^|aa~rx7d40n0ES7+J^bi*f2mrwSEbs}oYf1#v3D+-LW!jD9Tn2L(BKS# zm|oIH{^l(&v~{K$1o;kxkgHh1{vxv2w8GDo zObi)odn_rnvCSjR_VL@Yz`VNsvi_qhPZs&he7gWAQoW>uHOu$497(hz%4G7-?Tv6m zKFUBHhy^pDD*JBV3GVIY9>OQb$Wb4e=5DtRsewOk?gG;!$lH2``CG;(KbuhB%rI|T zYV?P<_eZ&K31MdCR`4N7+^pDqPBD5)Y5|#?V>2$D7CWDJdpos(ae)tl7X0iUWXDp{ z&o5ojZrudvhuMx|^^{JNCxRoJciWn#JeBo8f-dqP`e&Wa{`&o7qr6>jl-?ZfuTMN; zPQgRn`|OY)P2)0=b|=iIX@w#vhiR zQ|$i(_EGnyxZq9v6%bNn7Im-{Ro^OT0Wsw~_D%U1)JX3Q=w2^l5f&X^uMe z0YwHnjUiIE#GnP~%X3qutA~NHid)dj=V)SOZN9};!Xb@m8Pc6_8&4}}nW1={_QDfC z?O>i%>uiR&CNiDNe9+$2jJwTq0{3-)eU5Xzv8`I{ejm$A%>1@>CEtE37G?;bLJjr1 zYHg>EhaycLC`40+#c#4uOK3%2l^y37|2}E|W7_*-P#D4ZO~ty3K9TKy z=%cQE7%6A&1kv9=!|V1$fedFmBHlNmhdtr#AX^|&wx9Zg@N(070zNJ@ijO$@m8z;{ zRO7Gwq|taT-P*G=C!ZVSxqe>~Sujo?3ev`JiO!$+pdruO*ZHNjN6KD}x_F~Kx5)p|o^A8Bf)acSB!Tj?G&e{

    lDtNri%<`M{4<0=D*(71sOeX4a!gdOV>mBy@OlGcXSRue8 z-wH~=be@Fu&4dmy47s)UQ0I<-Iw?J_S)B!Yl!yuy@dfk-3JZ%|8XB^q`78 z9_Npka4Qq;t!Ve(WdoLfb-4{HU%9&66#O{FRAuDhs?pymbkdb&DFM| zU$Nwpv?eM@preyX!}t6 z787Nl+=d#!#grwblhf$in>Us;_EA<=u5|LXJA44{w~n3&2?=G5@^hIbZEl*EWN8#2 zNXZ*Hn1)hV1)c*f-x$kpKz`hD<5+I^CI7Gyhm#NL5*wy!5QN~XjKqBq;7KaQ2P=VS zrMt;2K>(IXFZLw^>;cr${4LW^8hLe2@b)8cK>W)2SJQh32w;}}V4w`PSKOc?C~c*m z=5@Q2m@dND-f(-Hc6B+O1I^m~`BoF`t+rSWf{%eQ8v>-%?EBOAR*M}zJI28gMNJZ& z9V}Aa6z_&qR||tdJCUW(*o_TKYik)3n@2!KQ_)jAyz?glAE}!q+z9(46=t{KEUeu{ z!|Cz{eLc_k`OCw>;5Xt!xYxwQMCi2*L_pds*~t@JU@HA?GN8SLr~7E|)|HvOvlI*; zH2}%+N>dFHxH|xSpm88uXA(}mDa-`^3CpOdcZOspne|U+9}?r?!-uth{&4zqhLe_W zhO>&Sdd}{|!<)&*XGprOBdZawy^9#yE4KWkr`>cTY)bP9zNS#iaz*hutjW2ZAX4`B zh=AdN7$IK@&OYDDvfDfOV<(2@IS#>$2ttevW=8bA1#2f){F-&(<>4Wetx{A_2O92m({rNy|wd)!YD6DF;o5S-rx zE+Ks(>4KzuA&wl;zUgx2zu`%UKQUv*K7B6;@M7W@J@! z^}c@)Uno1}JZQWfFJ+RueRg+uJ5Zz?8ur@S+KrXmuGf`de0n&F^4yNskxJ;d3Ykj` zW!2PoiA5Wt@AyXA5zW&4;iso2cN}(-zB!1`uNVD6a9WF@YQ4Mx_58j_3(Uu?d7sU=nNjpxh<}|}|3u?~i+xCQ}XUf^fZMzosi|4WqpkI)a zSIn;e{ZRFGl|3eg6@(Y~LH*vRvDttw0~%m9poheKFnM^GXAT$SsZzYv|K@A#30?@M z!=1*NW_x%T!9h8;d@+n#%`+5W@MVt06OL3fx4L7VCwi3V4sU!~W3C&6eMvERL}e&U{##L{P` zmJF4T^jvS=h9Fp@9|cHp4Jrc}NeDG=4@BW31BN=bmy^ zEzSR%7GQ+yOu_QMlYReRVjcfyvi^T?`>66OFh{tkZ&k*+!%Bhc^}TiFhva|wO^#AA z4nLR_NGd#Bs2krTJ?-PacsoCxV&b6K{o|DGuc(gyB-Qut-`xOF`xRKbhq(H(=3Ft2 zti@i1<$=`4OuMrhoIQTpL=*j`%Kj$e^dwAyN7deoBlP88@}8-R3q3Z|U!sY~{$kzD zx;Q;=GD;Gy(RTVPZEj8n7#b|$*lzg!nZ0JdTx{@_SVBze)0?^a`bG4>9BrX-O<}8l zNtro6-ELL-AXZ^A-j085#2ZK<&!)FbBM1c+^kc_q)M97q99i?KMa#v{Uo!G(Dv$pt zkK7B!mzF_^Cca@26c(W~*Wv^a$Q&?|_g629g~B?*7QOnBU4zaLNt(wldrJLb-4@O4 zMZ;mUO~ta~@QbZ7Vcp9o@sAc3d*r^599A#5jq3?P3w%E7FWLf6RusKehnlLZ$*}OL zNB%yM5Od`^CwNTug=~BdsC`1JGoT#a@lr(Vgq&lLz@87y^brA=T>4KoiB*U>wwGzK zdp%#tT4Dgj@A|JTj$S6N>hjF$kFxTQBErL0i)r!SjP;u1R6}V)ScN}-e`>fHK#&D) z;$6Ior*8HhJaPlJsU8Qm2E;-DFo|aDqptq#j|2xJ*Yw2uz^QmLprtTHq~Qjx1^0Pj z_~AoPG~<+oscZ-Zm@hHLRx`ds2iVxIgBJNgpZ!u*^>PL~N8zomuK4E`7{os}*0SAS zaWn5v3k_+62Td1F{!Q_n8Eb}=_a&x;FN!|;S-sh!2ZuOBr ziO^BUQX`&#!e4q69io+zT)d`&vHkGRj%W4m&;2Wq*^JCA&{1ZHD;t@^+Sh#^NZI-% z@T54DAw)eMV4?xf=jQAeM;hMu3nj<&?K*d3PjCJ`ayGB9v>lkynb##sA`Ew54?M0A zAuxnQW6j2e)w=@>ZSC(Y$i^h1u+`Pnu0RWzPqK&4VsSBPtiq@|FbW~u z!ILOC@4uvWUs*&2pe?URw5)wXh(&>@#Iw|1VPZ~9qf*;=&A71Z29iw3RBl$~VM$qC zYp$N9y)S5|mP>h?w%!97!)re|Q=e9_Dq9Cni~y|@PyV=H&$I1pgw7W?hu5|~Oc{AB*>ag zn32@l7uhq9xWT^Uruy#s>h?WHd6+6v$xXbJ{l%YV1De;xDiN> z?6)7X*5BQBDS%5UFer!~TuNQ4D}23#;b2COPd~hTd4x1hfk=Rp%u_X80r8cdjg}t+ zymYCf9ii>$?3|^h-NQ1iHSsC2T^cyYdnlu>PQ+~}9083q@bkMm_kVyYA?IB2e1O^4 zSNbJ^$2X=~TH4L|)I9p8v}cSojh9kPidXQ0k@=%EeL`u*$j2nsNQHyCtuzwf2_%XB zDj2m{fI-l6%RcwwRZ~5592rBIB3T*bypK1@-;CxV`y3N2L-V(7TyTZA@TEFYUU^W~ z5Lts`W9_WT6)*?rW9_a2F4Hj#^UcoWI$SeH&AG=kv@H?nXn%0_ZJF|?a5aS67ysRz zGXJ4{`y87AymG>rnU^Mz&5%-R&wtmQRVKH-N2dkhAJ8 zz>78`jPvmy`RQ+XFPFDf?8qF?rlWVS3PUEC)qgt*lL@%Kr~mO#AG8=S!$p%qEBl#OE_wOGK+Nj))xuLP`hAlm zrD`hT>~AVnM?Vm~XWfns4xyI~&3_jlof)AWPrNUHm)~6;uwlxhvUmhTTxCO1WE>38 z!sdugEH_bXhNx!HeY%_b!$vN=%@=D!S4X)75h?!>ad2bO*kIT_UjAxn z7WoPj{qW#2Ahw#qy+qLu+{t_JpFQXN|L#&tQ$V0>Rq}0~uZS2FHcUViMsI(G+ zn;=he2)u#jt_pQge*JJAyJ_79+A{kjYF;<|%PYL41CkeMl?`B%ptm7mCy zE9vmcir(Ht_%IY1teWhm_mo*lX~{6k`#W1c>mIb;g5EbL9rdlk{*d9*S*(w0NOH?! zpyOvxUNEtsJ%@VXNo{}vUn|jsyt!sDE1ckRCAT#-55Cpqh}~1CU4z{7z0gFJ7G#Z| zc|J3R>0?wqa{4z>U_8e|d-H?St{=R_p!-LF219-)245>Qb#08w@9b52sj&&{)qJFc zu9lqA_vYFdRpgpv-Z?i8|6?BTBhInK?TEOJ*gCniF(`?DX@}-=Y$%@fl|u-EwY=Zb zDkA>Y8ZB$>0#YjMJ&|?a_C(^~)!$YucNa#ttYK2JFBTB58xySN+cIouwsJ(6qU7v;ajJ;FmTrpoM)a@8HMOD^2( z)*?1#yPXUy17MdC(V&74JLwqDn!H-I5`Uxv71^KAM}zx`$W6iAJXe$4|12yQmG?SN z2C#QK*2KbO_+2!Z>ti7T0nODAPw|u>>42c*5M$*I5u>v`{}25=r(h!$--b#`ceq!~ zAOYb(G{tfWOJrw;%hsSt{BR%oT%sWukw^zK=CYB`@^0=D#Z1j7-_mIS)RP;28|vxx=`9+j^F1+be$Gn>L!oIHEELl%#w=>R`}`T72Y+n3 zMpE|kEj<NoAE~G)}SyIOA>qdO@-q@_kIf^s)_JI*@G=1;$t7@1Yunp`rmC@3A0%lhj z>_}ozsJ9?z3EfePy9pi&#U)UDuS=CRH`fty5%$9K6GK3idftgmp2`Ls#Lhe0VeVP% zB%LPJ{n_@iTq1Cc3Y{)cvWCOH&h9iBGpv?ib}=#dB++Uu9&^yZvs4nKA+V8-AC&9y zZR$WJ?LRIJR6H@rGC;F=skBjQ?!x#wnnnSn_<@+0iYgaMdf?}0153{nhjHb#prNrD z7w~m*Z#IcKR9;Dg@I3pI*M%fs9uFKTZo@bbrM)vww`h?%%SB-$;eOw&ux#B^Vt*+I z#0bCCk)t1X42&Q!wsmbNxw|H} zy6(?)$_Iy_6W(TWQW_CKuEmeT1j`O(AMUYfL}2LE9lbJKMn(>$`EHjWN^E^eI*jf4 zv&DHqCi14P{}k2uk>fH(&Wt1hFBp89*es932B}$jF1G;u=YB%%z`&d0++2l$;rWgT zbrW#0o*X38%6gChGM2RQU+GjnzcoOO5tW0GzX}I2AH)TM1*jA|G*Z^7&F0X`D5P zNoxplSTYZXHIdwS{@YK@NHnah$EK_fSzr%jJAHQx#z{3Z(Qi%g>Ux4IG9jlU{vPf51{w1Up&7 z(u+Y`n6%gw0sYULpVN=-Zk00(&yx@fg0+2M(uN1MK%!q}@b#mpHsL z95-o^>gfzE+~FtesZe)*Z~$SV?HH5Tz*njjtdgdfvtb_&1;5*o1j_&X>F1~3$u>fZ zR6|FuR9*7z7Z(^m&c*UBfcPBET|cp(mg9Tqq-hvdDaMuJi(OauEN`habRdOoBmoJ! zxF=S5LR4#-dv_3{ag>>xH7spgDFu$JiZ?>yZFL&ES^#lY1TPXYe?aO3L{15Aid1>z z{*QHa2KeLR7Z7)^&;(7tBo`3y*iKx57>|FzGW)-~sCj=wm+%+TOI zbUjti63i;jRrQ7~0y|#0YgO*XBvMi7cNJ!W_BT}WQ0$Tl}#{pZKFCC8b`Gj_E7uD_~j1BHW+PNzFnk;p06;QNl{ zsDgC^fw}ojqYBAeHt0@@>Hk$(klpe>tT^~j5JQl$x3p-SrJgvD6_np5^YtF-ThO9O z*FN}fX_*m>opJz_|Inc`HL`%bGbSQJR!@(bf_}6pqo$RRrhR~$n;V}c7Kc73rzMog zxS3u!o`;iTkJxa46@j_apV-!BIv?zQ`h4eQ=)u5g zp~mrkp3lf|>XOMpe8QR<2AlrZz$VwoCjV|)JJ*p09}8mRq`C5eqoQZ%N?TS3ezd8ta9 z{&A`4H43YqTE09)rYbYQjC-pWP{eOR5h9TBe+cs)!kpg*-u&C~=mqOY{uXLdjH0xP z6Uk7oF|*8v{(_2}KDQpxqc z+v#L~+BPd%k1QXk@RRZH#fYVU%$w8!i27A&vYXGaE+{;|Jr7=a*4pPj6>fiQvn{uzn5zUZA|_|P`Rb3TQQn=W`< z`}}o$d?TFlnyIkkS`FUG`?W^f1RRfhY7cIC6)oZ+ck>u1c8s8gWC#GK62#n_Dq5F( zq2;yrnS=ytVRlD+L<+PV8I{(mqP{buqD2fh)X49+jmCrFGoHZ({Jlp{!RQRHt1W)Q zP6o)|SYn76K?Q^9PHri$-0W;OMF1w=cdDk7&EUzS&otQK<<2rMz2&vJ z&VFnjyfoC-cyzO($#1&330_Z;dXu$6WFB9FMsU2akYYAU3;Y2i+3^%njfERAO-4e> zUCBSGkJFr_C!$yXU56Z6Sp(&ecPuc+S;DAt<|UjqS$z`a0t3%58~| zisQD_rx|p+(L#<@lutemau9`O%D+fOpTYp|dn#f%LI>JFwvI*>x9S;lFq!!F_b8wJ z45i;@RbvU1$rY!XlsRNbHQ9*p@bbx+a5b*Ia7mjXG^r2kqzkb(6lp1*0tzK4Jwg61 z{_J-yP%#du$HvwZ8j=7ZF)?ZZNvo$SSkgX-?Gn@Zv28^$wzr0A{-uE!UMDL7sHY7s z4myJ9=lM{p6G5M|9<2|jBzU%p5-fKoe)$vb1Zif2ra1`qy@k7D+nSheQ~uR|HOrWQ z-r|Jmpy(G2z(}w8ePd#H-f{>i#GRBTQhldD(pq8)sBZPx{=Q$(_ly1CkMrQo?k}CW z)bm|*`MdKRd!&6m z!!yRKz3pK!)xP=mOo$8UHb7dncCqJu{aZnDECtF*4}lTlLHvo_tkJ;OfES2LYZvXa zm)H6r$$OsDv%Y!+idIP@Uyc; z={A&m9qfsFT1fC`>uZBjK9k_I7p@0yY=_dHFNm7?k38V^CM^aD#{w8kaFg0b@yzQ2 zz|2j}v|o!m^TVdYX_5(S4s(ilf$;PtC-0X%1)kO?1|lRbAZUOwDj}5Fg$7WXtn(~{SJjC zvS1$oXToW-7!i@Kr-+D`Y!i83W8CwVzV`Z{;dt2hmLw01(ca}ZyCHI>z0CvF+Rb>^ zKWrk#zv8q}v7zl}acY?g{V-?>3fe)xKI>BL>RcO1TfhHjB1+0|Fg-#=C1TqFer-HD zrsxJ(HY`L(yX+Cur5H|ief9VECnO^aMj|~bD=TOILP}q;h89QuhDgG#f4H6A9Pi|% zE=e53vr<%6Ypkf9kM@B0mXMagn*P%Y-!x~k7y2K zZ=EDM=`$u%%$~@7lYV6Jq4&JsmcYSZP(bWhBe6=cr8+(L>pW(c&=yP|UXWwiRo4 zyX<=@M^XjZv@ z^Z!+c1HiKU)hYuQW2%*^up3LUUOAH3+Yf8ju2&a`y3}Js<3Fr_L2uc0?ZnV#dVb-n z;Qr+~0Asv+j^EN?egt}`3kszYRz!!JZ z?DssS&-wN1sC|z{ieU^Umm$~@dM`i8$bhMD3N4gkf_0k4%^c?qS$8c*t1sVR5YwZ; zk^qiV+#LGkT>)<4s_@Or8kF5JRRoT~C+i1vk&V^oMV&vY6)+w=2;1paA$R}Pjrq}s zvye=AKpnGN!F>T`U@mwf9|D#S*N*1}ReBz7+}F`syN`L5;OofKE|>r?9EI#C$@{v~ zA~;5DP~~wol2bLgr0Q0DLEJc5Eq&wFY1N1-m=(3rBv9mo83XgxK|Ke)R!g@xB5qE1 zmzV&^J`?GL1PZ>ra>zr0o#hr0Nf_?wSpinjzii2VPfnlxglXjL1L`>{BL{wAid^)& z)HS!EDyN{j+5w|AF#uiSg05W?b8@;ts)!^?fWxff-P^YKAfM!tT80^L$sT#=>pQ(akU zboN(^53K4l2yNohiFYZho6P0bOo3aYv^2P`XHh4@(Kl?Tm4VkQ=&Lb|im<^Hh*k+b zU(83o7LW!l93?)vXMZy>{nIJ_#u2Tg=sgu$)Z;uFPfW^~3^{J@q)RPr{adxqwU-|B zKpnZxrycg>9L2-4`Mu*c11N!(2YMrVzVp?De+-w4J?<(b><)a7Q|Lga=mYvmv!swA ztxGFIC>fRTr>|9ai|mJB8iCzQP7VVUgE{O@u%}4ELPN33KI!YHazZ&cA`HungZ?x& zd`pC%YcEsT_(#`@O{KQ~c!xAg(jr*#F#K7GGhm;G!|}A&{M>DhpcbSK1ZL)FiqS?W z@xvaP-#a@ysAF=&$5D3geI!9K36JM?c|2BO|Kdy2q|qL@-p^3u$0q&duhhZQA`b7* z1uy}l?8~CJj-yw%{JUAIXR-vT03aAmYn2V%PI*|iKT8#Ykn=S-Zm)$sx}rPwrn>2l zhO$sD54{r?n!Y^0VZDAv?YILnGV;Mc-ZxsnTOk40e$R)Fc0#9LpEpc-+ok64q+jL@hG}<}efA|oFSfZKX&;G{q+zGpc###|1{Xk1Yzc0&Xg#?gq-RS>C zAjE`c;kV8-h$ao)vL)>d*f(nvz@El**d|zsb8mcn=^K2Ykj$hzx?pM}jNP{2nu3;O zC_7X25n!Zq{Z1vR+j4uHVRLJ9^8{4=7|(*7+HUy%s0A6gs7MReF5#V7W1`D_Lul_e zL5X8_aWOvlj(T7f65P1+p|+!T|7Mwho{%&+9V0yWc!Y$J91IL-t*xzD2=>z_1E?7n ziG<6sSgIhV=~HvU4V*B@Na^8+I{XAw%6GqLw&(Kj-upoZoD@#u*E$#nGJ bp;vb5zS}5$DF~jI0=$w}kt>!l^8eoefpu+N diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 402ce131a9889ca6e6f1845599aaa74c0b8ee3f1..52d9036e02118c84accc929e932c58cbb92fd35c 100644 GIT binary patch literal 44391 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 K3T5)90sjYZ?Ix1| literal 70350 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%0Am2)&`05q5SN5Wm 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 Q8Uqk`y85}Sb4q9e0G@XLNdN!< diff --git a/icons/obj/clothing/head/winterhood.dmi b/icons/obj/clothing/head/winterhood.dmi index aa212eb48da26216e5919c4df78ce95347cb81f9..c89538ccb0b35bde60834e3aa1822baad6fb14af 100644 GIT binary patch literal 6780 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 literal 5642 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 B8TD7A_YNW@ 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 literal 14306 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 literal 38220 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 z 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 Q4FRv42t&OOI(DJ|1B5v_#Q*>R diff --git a/icons/obj/clothing/suits/hooded.dmi b/icons/obj/clothing/suits/hooded.dmi index 6d449550ad434c41536cc26db719b624f2e0cd38..7c3a70a0624c2850d0ebdd53d4abf379c03e4973 100644 GIT binary patch literal 12561 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

    yKW%y?uC?NCdeA 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 literal 22808 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 diff --git a/shiptest.dme b/shiptest.dme index 53b8c061b5fa..7fdfccc47234 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -674,8 +674,8 @@ #include "code\datums\elements\lazy_fishing_spot.dm" #include "code\datums\elements\light_blocking.dm" #include "code\datums\elements\mobappearance.dm" -#include "code\datums\elements\point_of_interest.dm" #include "code\datums\elements\plant_backfire.dm" +#include "code\datums\elements\point_of_interest.dm" #include "code\datums\elements\renamemob.dm" #include "code\datums\elements\selfknockback.dm" #include "code\datums\elements\snail_crawl.dm" @@ -1259,7 +1259,6 @@ #include "code\game\objects\items\devices\powersink.dm" #include "code\game\objects\items\devices\pressureplates.dm" #include "code\game\objects\items\devices\quantum_keycard.dm" -#include "code\game\objects\items\devices\reverse_bear_trap.dm" #include "code\game\objects\items\devices\scanners.dm" #include "code\game\objects\items\devices\sensor_device.dm" #include "code\game\objects\items\devices\spyglasses.dm" @@ -2039,7 +2038,6 @@ #include "code\modules\clothing\outfits\factions\solgov.dm" #include "code\modules\clothing\outfits\factions\syndicate.dm" #include "code\modules\clothing\shoes\_shoes.dm" -#include "code\modules\clothing\shoes\bananashoes.dm" #include "code\modules\clothing\shoes\colour.dm" #include "code\modules\clothing\shoes\magboots.dm" #include "code\modules\clothing\shoes\miscellaneous.dm" From bb47657e2684f8cf30da8cba57f15d7cde3e7fc7 Mon Sep 17 00:00:00 2001 From: generalthrax <139387950+generalthrax@users.noreply.github.com> Date: Fri, 4 Oct 2024 01:04:15 -0500 Subject: [PATCH 077/167] Replaces the red insulated gloves in syndicate toolboxes with normal insulated gloves (#3466) ## About The Pull Request Says in the title ## Why It's Good For The Game Red insuls look like Shit ## Changelog :cl: balance: Replace red insuls with yellow insuls in syndicate toolboxes /:cl: --- code/game/objects/items/storage/toolbox.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 2208eddff91c..e0768391dae5 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -177,7 +177,7 @@ new /obj/item/crowbar/syndie(src) //WS Begin - Cool Syndie Tools new /obj/item/wirecutters/syndie(src) new /obj/item/multitool/syndie(src) //WS End - new /obj/item/clothing/gloves/color/red/insulated(src) + new /obj/item/clothing/gloves/color/yellow(src) /obj/item/storage/toolbox/syndicate/empty From 4bd26f3db8de9a28b469cbdce244dad27aec3dfb Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 4 Oct 2024 01:38:55 -0500 Subject: [PATCH 078/167] Automatic changelog generation for PR #3466 [ci skip] --- html/changelogs/AutoChangeLog-pr-3466.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3466.yml diff --git a/html/changelogs/AutoChangeLog-pr-3466.yml b/html/changelogs/AutoChangeLog-pr-3466.yml new file mode 100644 index 000000000000..d35081929039 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3466.yml @@ -0,0 +1,4 @@ +author: generalthrax +changes: + - {balance: Replace red insuls with yellow insuls in syndicate toolboxes} +delete-after: true From 17df4c448d3e06360f6516eff228ba9475c1747f Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Fri, 4 Oct 2024 02:04:21 -0400 Subject: [PATCH 079/167] Adds One Shot RPG to Black Market (#3468) ## About The Pull Request as title ## Why It's Good For The Game Purchasable Anti-Armor for crews that might not otherwise have access to it. ## Changelog :cl: add: A cargo ship happened to lose an entire crate of Hammer Rocket Launchers while travelling through the system. We have reason to believe they're probably on sale now. del: you can no longer purchase PML-9s on the black market. /:cl: --- .../blackmarket/blackmarket_items/explosives.dm | 12 ------------ .../cargo/blackmarket/blackmarket_items/weapons.dm | 11 +++++++++++ 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/code/modules/cargo/blackmarket/blackmarket_items/explosives.dm b/code/modules/cargo/blackmarket/blackmarket_items/explosives.dm index ab7f62830324..26402e3dfac0 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/explosives.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/explosives.dm @@ -97,18 +97,6 @@ stock_max = 7 availability_prob = 50 -/datum/blackmarket_item/explosive/rpg - name = "PML-9 RPG" - desc = "Offically, it's an anti-armor RPG launcher. Technically, it's anti-everything. Most things don't enjoy being hit in the face with high explosives." - item = /obj/item/gun/ballistic/rocketlauncher - - price_min = 3500 - price_max = 6500 - stock_min = 2 - stock_max = 5 - availability_prob = 10 - spawn_weighting = FALSE - /datum/blackmarket_item/explosive/live_bomb name = "Active ICW Era Ordinance" desc = "Look, I won't mince words. This thing is counting down and I don't want to be the next causualty of ICW after it's already ended. I'll sell it to you real cheap." diff --git a/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm b/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm index 7da2610a9049..740ee2c5341b 100644 --- a/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm +++ b/code/modules/cargo/blackmarket/blackmarket_items/weapons.dm @@ -359,3 +359,14 @@ price_max = 3500 stock = 2 availability_prob = 40 + +/datum/blackmarket_item/weapon/oneshot + name = "Hammer Launcher" + desc = "A one-shot solution to a myriad amount of problems, ranging from Exosuits to obnoxious neighbors. Contains one ready-to-fire 84mm HEDP rocket. " + item = /obj/item/gun/ballistic/rocketlauncher/oneshot + + price_min = 3000 + price_max = 4500 + stock_min = 1 + stock_max = 5 + availability_prob = 25 From 3c51f3f605033c24d6748a6e01655bb8011f3374 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 4 Oct 2024 01:52:30 -0500 Subject: [PATCH 080/167] Automatic changelog generation for PR #3468 [ci skip] --- html/changelogs/AutoChangeLog-pr-3468.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3468.yml diff --git a/html/changelogs/AutoChangeLog-pr-3468.yml b/html/changelogs/AutoChangeLog-pr-3468.yml new file mode 100644 index 000000000000..a0130e2f3b75 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3468.yml @@ -0,0 +1,7 @@ +author: Bjarl +changes: + - {rscadd: A cargo ship happened to lose an entire crate of Hammer Rocket Launchers + while travelling through the system. We have reason to believe they're probably + on sale now.} + - {rscdel: you can no longer purchase PML-9s on the black market.} +delete-after: true From 44d34bb82a11493cbd88b0d6d79bb4b5d09c0e1e Mon Sep 17 00:00:00 2001 From: Gristlebee <56049844+Gristlebee@users.noreply.github.com> Date: Thu, 3 Oct 2024 23:09:21 -0700 Subject: [PATCH 081/167] Inteq Gygax and Durand Paladin shield backlash. Fixes Durand shield blocking bullets from any direction. (#3382) ## About The Pull Request Adds a new mech variant, the IRMG Basenji Gygax. Featuring a much more powerful overclock, capable of charging through walls and obstacles in short bursts of intense speed. ![image](https://github.com/user-attachments/assets/5daae4b1-2d9f-4f6f-8237-e861f0e44254) Implements the backlash function for the Paladin Durand's shield. Coming into contact with it will apply a nasty shock to any attackers. The modification however prevents it from blocking bullets or projectiles. Fixes the Durand shield being able to block bullets from any direction. The proc didnt have the right arguments, and was using the Durand itself as the projectile it was supposed to defend itself against. Inteq Gygax sprite done by Rye-Rice, modified from sprites by INFRARED_BARON ## Why It's Good For The Game New mechs are neat, and implements an intended feature that was wanted for the Paladin. Bug fixes are good too I think ## Changelog :cl: Gristlebee, Rye-Rice, INFRARED_BARON add: Inteq Gygax and mech charges add: Paladin shield backlash fix: Durand shield blocking all projectiles imageadd: Inteq Gygax sprites /:cl: --------- Signed-off-by: Gristlebee <56049844+Gristlebee@users.noreply.github.com> Co-authored-by: Theos --- code/game/mecha/combat/durand.dm | 87 ++++++++++++++---- code/game/mecha/combat/gygax.dm | 16 ++++ code/game/mecha/equipment/tools/work_tools.dm | 7 ++ code/game/mecha/mecha.dm | 60 ++++++++++++ code/game/mecha/mecha_actions.dm | 14 +++ code/modules/power/power.dm | 3 +- icons/mecha/inteq_gygax.dmi | Bin 0 -> 6336 bytes icons/mecha/mecha.dmi | Bin 138925 -> 143568 bytes 8 files changed, 168 insertions(+), 19 deletions(-) create mode 100644 icons/mecha/inteq_gygax.dmi diff --git a/code/game/mecha/combat/durand.dm b/code/game/mecha/combat/durand.dm index 4ccf400e6ab1..a42e1e29f7ee 100644 --- a/code/game/mecha/combat/durand.dm +++ b/code/game/mecha/combat/durand.dm @@ -12,23 +12,24 @@ force = 40 wreckage = /obj/structure/mecha_wreckage/durand var/obj/durand_shield/shield + var/shield_type = /obj/durand_shield var/shield_passive_drain = 300 + /obj/mecha/combat/durand/clip - desc = "An aging combat exosuit appropriated from abandoned Nanotrasen facilities, now supplied to the CMM-BARD anti-xenofauna division." + desc = "An aging combat exosuit appropriated from abandoned Nanotrasen facilities, now supplied to the CMM-BARD anti-xenofauna division. The defence grid has been modified to disperse controlled electric shocks on contact, at the cost of its ability to block ranged projectiles." name = "\improper Paladin" icon_state = "clipdurand" wreckage = /obj/structure/mecha_wreckage/durand/clip armor = list("melee" = 40, "bullet" = 35, "laser" = 15, "energy" = 10, "bomb" = 20, "bio" = 0, "rad" = 50, "fire" = 100, "acid" = 100) - - //TODO: Custom melee backlash shield with no projectile protection + shield_passive_drain = 0 + shield_type = /obj/durand_shield/clip /obj/mecha/combat/durand/Initialize() . = ..() - shield = new /obj/durand_shield(loc, src, layer, dir) + shield = new shield_type(loc, src, layer, dir) RegisterSignal(src, COMSIG_MECHA_ACTION_ACTIVATE, PROC_REF(relay)) - RegisterSignal(src, COMSIG_PROJECTILE_PREHIT, PROC_REF(prehit)) /obj/mecha/combat/durand/Destroy() @@ -71,22 +72,21 @@ if(!shield) //if the shield somehow got deleted stack_trace("Durand triggered relay without a shield") - shield = new /obj/durand_shield(loc, src, layer) + shield = new shield_type(loc, src, layer) shield.setDir(dir) SEND_SIGNAL(shield, COMSIG_MECHA_ACTION_ACTIVATE, source, signal_args) //Redirects projectiles to the shield if defense_check decides they should be blocked and returns true. -/obj/mecha/combat/durand/proc/prehit(obj/projectile/source, list/signal_args) - SIGNAL_HANDLER - - if(defense_check(source.loc) && shield) - signal_args[2] = shield - +/obj/mecha/combat/durand/bullet_act(obj/projectile/source) + if(defense_check(source.loc, shield.ranged_pass)) + shield.bullet_act(source) + else + . = ..() /**Checks if defense mode is enabled, and if the attacker is standing in an area covered by the shield. -Expects a turf. Returns true if the attack should be blocked, false if not.*/ -/obj/mecha/combat/durand/proc/defense_check(turf/aloc) - if (!defense_mode || !shield || shield.switching) +Expects a turf. Returns true if the attack should be blocked, false if not. Skip defence will make the proc return false and the attack will go through*/ +/obj/mecha/combat/durand/proc/defense_check(turf/aloc, skip_defence = FALSE) + if (!defense_mode || !shield || shield.switching || skip_defence) return FALSE . = FALSE switch(dir) @@ -105,26 +105,38 @@ Expects a turf. Returns true if the attack should be blocked, false if not.*/ return /obj/mecha/combat/durand/attack_generic(mob/user, damage_amount = 0, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, armor_penetration = 0) - if(defense_check(user.loc)) + if(defense_check(user.loc, shield.melee_pass)) log_message("Attack absorbed by defense field. Attacker - [user].", LOG_MECHA, color="orange") shield.attack_generic(user, damage_amount, damage_type, damage_flag, sound_effect, armor_penetration) else . = ..() /obj/mecha/combat/durand/attackby(obj/item/W as obj, mob/user as mob, params) - if(defense_check(user.loc)) + if(defense_check(user.loc, shield.melee_pass)) log_message("Attack absorbed by defense field. Attacker - [user], with [W]", LOG_MECHA, color="orange") shield.attackby(W, user, params) else . = ..() /obj/mecha/combat/durand/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) - if(defense_check(AM.loc)) + if(defense_check(AM.loc, shield.ranged_pass)) log_message("Impact with [AM] absorbed by defense field.", LOG_MECHA, color="orange") shield.hitby(AM, skipcatch, hitpush, blocked, throwingdatum) else . = ..() +// Walking into the Paladin's shield shocks you. + +/obj/mecha/combat/durand/clip/Bump(atom/obstacle) + . = ..() + if(defense_check(obstacle.loc) && isliving(obstacle)) + shield.contact(obstacle) + +/obj/mecha/combat/durand/clip/Bumped(atom/movable/AM) + . = ..() + if(defense_check(AM.loc) && isliving(AM)) + shield.contact(AM) + //////////////////////////// ///// Shield processing //// //////////////////////////// @@ -151,7 +163,14 @@ own integrity back to max. Shield is automatically dropped if we run out of powe light_on = FALSE var/obj/mecha/combat/durand/chassis ///Our link back to the durand var/switching = FALSE ///To keep track of things during the animation + /// if this shield lets melee attacks pass and hit the mech directly + var/melee_pass = FALSE + /// if this shield lets projectiles pass and hit the mech directly + var/ranged_pass = FALSE +/obj/durand_shield/clip + name = "electric repulsion grid" + ranged_pass = TRUE /obj/durand_shield/Initialize(mapload, _chassis, _layer, _dir) . = ..() @@ -230,3 +249,35 @@ the shield is disabled by means other than the action button (like running out o /obj/durand_shield/bullet_act() play_attack_sound() . = ..() + +/// a mob has bumped into the shield +/obj/durand_shield/proc/contact(mob/living/contactor) + return + +/// Clippy shield +/obj/durand_shield/clip/attack_generic(mob/user, damage_amount, damage_type, damage_flag, sound_effect, armor_penetration) + . = ..() + apply_shock(user) + +/obj/durand_shield/clip/attackby(obj/item/I, mob/living/user, params) + . = ..() + apply_shock(user) + +/obj/durand_shield/clip/contact(mob/living/contactor) + . = ..() + apply_shock(contactor) + +/obj/durand_shield/clip/proc/apply_shock(mob/attacker) + var/did_shock = FALSE + if(iscarbon(attacker)) + var/mob/living/carbon/victim = attacker + if(electrocute_mob(victim, chassis.cell, src, 1, FALSE, FALSE)) + did_shock = TRUE + else if(isliving(attacker)) + var/mob/living/victim = attacker + if(victim.apply_damage_type(20,BURN)) + to_chat(victim,span_userdanger("You're shocked by \the [src]!")) + did_shock = TRUE + if(did_shock) + visible_message(span_bolddanger("\The [src] repels \the [attacker] on contact, shocking [attacker.p_them()].")) + do_sparks(5,TRUE,src) diff --git a/code/game/mecha/combat/gygax.dm b/code/game/mecha/combat/gygax.dm index 5fe5d9350c14..02f66b54236a 100644 --- a/code/game/mecha/combat/gygax.dm +++ b/code/game/mecha/combat/gygax.dm @@ -58,6 +58,13 @@ return cell = new /obj/item/stock_parts/cell/bluespace(src) +/obj/mecha/combat/gygax/inteq + name = "\improper Basenji" + desc = "A lightweight security exosuit, modified to IRMG standards. The leg actuators have been maxed out, allowing for powerful short ranged charges." + icon_state = "inteqgygax" + charge_break_walls = TRUE + charge_toss_structures = TRUE + charge_toss_mobs = TRUE /obj/mecha/combat/gygax/GrantActions(mob/living/user, human_occupant = 0) ..() @@ -67,3 +74,12 @@ /obj/mecha/combat/gygax/RemoveActions(mob/living/user, human_occupant = 0) ..() overload_action.Remove(user) + +/obj/mecha/combat/gygax/inteq/GrantActions(mob/living/user, human_occupant = 0) + ..() + overload_action.Remove(user) + charge_action.Grant(user,src) + +/obj/mecha/combat/gygax/inteq/RemoveActions(mob/living/user, human_occupant) + . = ..() + charge_action.Remove(user) diff --git a/code/game/mecha/equipment/tools/work_tools.dm b/code/game/mecha/equipment/tools/work_tools.dm index ee8481255f2d..44c8c6626dae 100644 --- a/code/game/mecha/equipment/tools/work_tools.dm +++ b/code/game/mecha/equipment/tools/work_tools.dm @@ -575,3 +575,10 @@ icon_state = "clipupgrade" source_mech = list(/obj/mecha/combat/durand) result_mech = /obj/mecha/combat/durand/clip + +/obj/item/mecha_parts/mecha_equipment/conversion_kit/inteq_gygax + name = "IRMG Basenji Conversion Kit" + desc = "An IRMG-custom conversion kit for a Gygax combat exosuit, to convert it to the specialized Pyrnese breaching exosuit." + source_mech = list(/obj/mecha/combat/gygax,/obj/mecha/combat/gygax/dark) + result_mech = /obj/mecha/combat/gygax/inteq + diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index a1b46fd2fbfa..db59620b39fd 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -41,6 +41,16 @@ var/last_user_hud = 1 // used to show/hide the mecha hud while preserving previous preference var/completely_disabled = FALSE //stops the mech from doing anything + ///Vars for mech charges + var/charging = FALSE + var/charge_ready = TRUE + var/charge_cooldown = 50 + var/charge_power_consume = 200 + var/charge_distance = 5 + var/charge_break_walls = FALSE + var/charge_toss_structures = FALSE + var/charge_toss_mobs = FALSE + var/bumpsmash = 0 //Whether or not the mech destroys walls by running into it. //inner atmos var/use_internal_tank = 0 @@ -90,6 +100,7 @@ var/datum/action/innate/mecha/mech_view_stats/stats_action = new var/datum/action/innate/mecha/mech_defense_mode/defense_action = new var/datum/action/innate/mecha/mech_overload_mode/overload_action = new + var/datum/action/innate/mecha/mech_charge_mode/charge_action = new var/datum/effect_system/smoke_spread/smoke_system = new //not an action, but trigged by one var/datum/action/innate/mecha/mech_smoke/smoke_action = new var/datum/action/innate/mecha/mech_zoom/zoom_action = new @@ -643,6 +654,7 @@ step_silent = FALSE /obj/mecha/Bump(atom/obstacle) + var/atom/throw_target = get_edge_target_turf(obstacle, dir) if(phasing && get_charge() >= phasing_energy_drain && !throwing) if(!can_move) return @@ -654,6 +666,27 @@ forceMove(get_step(src,dir)) use_power(phasing_energy_drain) addtimer(VARSET_CALLBACK(src, can_move, TRUE), step_in*3) + else if(charging) + if(charge_break_walls && iswallturf(obstacle)) + var/turf/closed/wall/crushed = obstacle + playsound(src, 'sound/effects/meteorimpact.ogg', 100, TRUE) + visible_message(span_danger("[src] smashes through [obstacle]")) + crushed.dismantle_wall(TRUE) + if(isobj(obstacle)) + var/obj/object = obstacle + obstacle.mech_melee_attack(src) + if(!(object.resistance_flags & INDESTRUCTIBLE) && charge_toss_structures) + object.throw_at(throw_target, 4, 3) + visible_message(span_danger("[src] crashes into [obstacle]!")) + playsound(src, 'sound/effects/bang.ogg', 50, TRUE) + if(ishuman(obstacle)) + var/mob/living/carbon/human/H = obstacle + H.throw_at(throw_target,4,3) + visible_message(span_danger("[src] slams into \the [obstacle], sending [obstacle.p_them()] flying!")) + playsound(H, 'sound/effects/bang.ogg', 100, FALSE, -1) + H.Paralyze(20) + H.adjustStaminaLoss(30) + H.apply_damage(rand(20,35), BRUTE) else if(..()) //mech was thrown return @@ -1212,3 +1245,30 @@ GLOBAL_VAR_INIT(year_integer, text2num(year)) // = 2013??? else to_chat(user, "None of the equipment on this exosuit can use this ammo!") return FALSE + + +/////////////////////// +////// Charging ///// +/////////////////////// + +/obj/mecha/proc/start_charge() + Shake(15, 15, 1 SECONDS) + var/obj/effect/temp_visual/decoy/new_decoy = new /obj/effect/temp_visual/decoy(loc,src) + animate(new_decoy, alpha = 0, color = "#5a5858", transform = matrix()*2, time = 2) + addtimer(CALLBACK(src,PROC_REF(handle_charge)),0.5 SECONDS, TIMER_STOPPABLE) + +/obj/mecha/proc/handle_charge() + var/turf/mecha_loc = get_turf(src) + charging = TRUE + var/turf/charge_target = get_ranged_target_turf(mecha_loc,dir,charge_distance) + if(!charge_target) + charging = FALSE + return + cell.use(charge_power_consume) + walk_towards(src, charge_target, 0.7) + sleep(get_dist(src, charge_target) * 0.7) + charge_end() + +/obj/mecha/proc/charge_end() + walk(src,0) + charging = FALSE diff --git a/code/game/mecha/mecha_actions.dm b/code/game/mecha/mecha_actions.dm index 6d860558a652..f10fb49c29bc 100644 --- a/code/game/mecha/mecha_actions.dm +++ b/code/game/mecha/mecha_actions.dm @@ -183,6 +183,20 @@ chassis.occupant_message("You disable leg actuators overload.") UpdateButtonIcon() +/datum/action/innate/mecha/mech_charge_mode + name = "Charge" + button_icon_state = "mech_overload_off" + +/datum/action/innate/mecha/mech_charge_mode/Activate() + if(!owner || !chassis || chassis.occupant != owner) + return + if(chassis.charge_ready && !chassis.charging) + chassis.start_charge() + chassis.charge_ready = FALSE + addtimer(VARSET_CALLBACK(chassis, charge_ready, TRUE), chassis.charge_cooldown) + else + chassis.occupant_message(span_warning("The leg actuators are still recharging!")) + /datum/action/innate/mecha/mech_smoke name = "Smoke" button_icon_state = "mech_smoke" diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index a386a739622d..7c7dc8692cb5 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -377,8 +377,9 @@ //source is an object caused electrocuting (airlock, grille, etc) //siemens_coeff - layman's terms, conductivity //dist_check - set to only shock mobs within 1 of source (vendors, airlocks, etc.) +//drain_energy - whether the shock will drain power from the mech. Enabled by default. //No animations will be performed by this proc. -/proc/electrocute_mob(mob/living/carbon/victim, power_source, obj/source, siemens_coeff = 1, dist_check = FALSE) +/proc/electrocute_mob(mob/living/carbon/victim, power_source, obj/source, siemens_coeff = 1, dist_check = FALSE, drain_energy = TRUE) if(!istype(victim) || ismecha(victim.loc)) return FALSE //feckin mechs are dumb diff --git a/icons/mecha/inteq_gygax.dmi b/icons/mecha/inteq_gygax.dmi new file mode 100644 index 0000000000000000000000000000000000000000..08105d783ab99cfe823a59b186252d94f34851cd GIT binary patch literal 6336 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%0A@t?zmACl(B)?vAzDt(RK$q>g&a}U^f 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

    ppkB185t zeH|c{f!wZe#Q8T;b=LM03e1^QC!uDOu(;xDtPQJzPC6mWow%f=@WR3?XEog1DF}FZ zu=p!(yI&st$0A4*JpdlyRX})t)^(D)`ad6z4j%b{lWvt)ifA zhSQw-+&Hl1)XV@-YS7;&YjwlXG_?v7(LPBmu1rs#pgZ+g-rJ_`EZue%@TMh&IB=OzUh_eh^n^s8# zvJD_Upa37fC@f5cmPrL^XLI7;z*nzcJrzrUc2~B$JFJY1Zm+R4S7xB9qEB?+p#Hm& zS>R5g6)uql`X77&4l4jOb{?tL{&FQxZ9{p4q=l)lPLaI+roTr|y5*BC6DUON23k(u2~wS8v!W^1qo^C?oztDyBogY{axQ5 zdtJL{&dlu0Q}=y8=Zq|)6*r>A5CYI8G!zH~GCDTC4uL>BJk>OvrOcd696#ARf3mZM zK-|;wlHS<{aN@!y?VqtsOT19|=h~hxuVxlI*NW9ueMLN-k0s(mglo^_=MbYIYu7d0 zepT`IFeG}FWM5h4GF-M(+K+}n^t0|}T6bzTnuwiV$aAHywxS7Lsaa^nbO6U|l~P@X z4V7%Ppptmmbo?M10!*&VwLFye96IS?l=!^@0;ZH9)geDTkG?;VvKfxpiDBpyn3`e% zLE9-%SZ3h6IQu@H*a}e;j8iT|xG1Iu2`sM_UOe7LwVs4LqtC660GLO&NntJ&4*NVq zL8Tcbi@%XeG;`&#$)j%<1B@5Gx8B7WNp~%exERMRlS*6eBI_^RM_1$eC+T%mspP6u zVAT3?hDD)Rjij#Z{z5EfYEnYm8^EhJA;uEfE>kd4A-^uu%!D#)$mw>hn%mv0`CVFI zt}=KV+|Xt7o6pge30NdCU%nxhXsf9VRKp1q2{0N`-Lq7p^yy2CTiBcsi9%hN z;I?06b<4FXP|}V(c?FI67jQpghwl$a#V)YSPNdkcBB%Y9U1G`K%#IEYX|PG(^QQZI zC-J5Ko0nAtQWL+B_l#*I_NK^8X4C=4x|dh`vw1i}#RK%mCUEql(COaIF|F5(+bB*U z4vL3Ig2|5_`A?nsqh}? zd;eLROF%j@I4#zjq*EJ_v(bKsoYYz^RU+bA^sDv?etZT$A zcJ3thN-it>E_1(Vy-jaT!}i5XHlXr-iDI$jie)h6*oKNDHvchaA#RJL+k>prFr{cx z*S2G97QgsEk{C!?(^8|umUAs`!RwZ9uSo;}Vc?3_M{W;!V%{I=^1a7q8;~tmasl4Myx$Wn)PP{daATqzT2OUufX=3MpS)y*5yP2~% zftIF>BiHTdgz8nr-LEHT0)&{Shw-*L@Y*jIo^ma(L$A235@^w@CQ|j;P&}(bg-m1~ zNm@2`C4gihW2UUo5MP%n^G-_9IK0Y}cY-5R@Tk`knp8)?hpTW3Kh2TdDq6V|7IwDq z5JJ#3y@vzDlN++d{cG?8*zG#35b3?g50|r6Y0fMvC53$PRvO8HEsCR-O}Uok+Bd{8 z+|vVny5Y&~7OqyrmL)htmLAe35Fsm|<8=|K>yAI5HeAi4 z{;@BZhobkHcG~04UYBTop#DGsXSD1{5%ODk9QzC?&rvZFGR~s2TqhDXTOzBTP(m=1 z4bTgb7^b1TXGN7o@aCiS0dOpZgR=R z8*KpUO2AveG?p^_uda7=m?;t9dwaSBq7tDsIkBaTr6|uk^O<=DL7(h9XRQVsXxngHcNUGfiz3Qe>UnpljBe`qzEex?y`(gI>bL3pTUxP8BKN^+jd!LvDD}Q!=N;i=@lb%~( z^1Be7o~`I5O$Wvs%&@m2vk7Pe?O#H#ve`v zt7nkgdXgXXi zWhsKZ58y^oCiI}|Xnc4EdScQk0ihnL`unj*w-;i*8}rHz;OB$DLMT!5EmeutBO+wN zAqJKycNM-W`?u$+?aS*!-!Jnlgr|?BFZ!Ukr1h_|Uwfn?n_&>X1qMVH>w0#2k6f zUM6S^1qt5<4_eS2UJ1`HjV22mPVV5xghK9-Tw}`_h_X27@!gs~$5UK2X`R!|-&ZU4 z-7i$h?i~aUcN^ybwq^VJxAi(pr&=+4E^W(#0f9|)0$zVuD$0fJj(EAl9&tbe2H_qd}`nW z(nOKLYj*4~(Ld5uj>2ahJ`FE8$7{peSoHf>iUZg=R$AtOs{jiAn;`*eCcJr`Mr}HO zbiHkb5$^mq5LhJb&hA-J5pT`oh6g%)=K(G3?Gd|=mXE7G7jEX7j5mx4EX=>W3$$k3 zJKe``D^9+dGqvjCsxbx*z9_%h6Noomnn&sUoC<~L3td`v|WpN%s;|rAd2$rc58hEB43q6#mJO+Ta$@6Ose+vtEhOEnRKG(u^0XiGSf`W&83UDrssuGi3(Q zld)^8=hr#Gwf>kct8@wB^9;POtD|BA;MN7(*XqF0;((&rWW5&Cy;p;2f<`p$h?p2>QJ zt|aevW_LQ63NlxWC95>KJiB2?UaprMc2M~;DeF73uU?^s-r8Z&d|dmmpjV#zjNu6~ z?{)LE?v}%K)-W69^4_7Xc=ylvP_zKE0DWW1 za_-UCxS>FplO4A()2p-Hilxy!qjvgLwLg>I?r;BH3(MNOQ5DY)IWgAh**ZJdx#QCu z*Nq&KI^Rkh$g$S$E;q~5WmO0dZjEjlXJw(y_`@7i>M`z7v9pTTLw6QQMeyHvsK#=7 z@eNmB^7BzO{iX;zPMo18nTib}WP9;|vtMX>s7=o}n0$ z#}y}Y%SSR5qFe(IxIuWaj=l)XdI$ugbL3E`*^^vM$(m&7Fnk7)YNb<=jJH|m9-hEC zgmiYE{e}rYfMFVil28xl3xGdr{{bP3i_>UqV$`o@mt0n<7YQj`4Xan5VP!XZ<=-6N znrZn4Wn2Z~&oCIdaM?Fgy(YYFMM>Lq99ab^AQ>?_a%ma01^GlT`XEMOMw~!7RHj}Z zM|ny4!{%uVM$4h2_~a@EN$Ku(;9?%4BjWFCf(rzN!G9)k)u@VCtiXrEY@Md>bwdmj ztfO=1;Z-VLy3a7RR%@vW=Im7zvXKA93EKDH7`oLLP+SFVY-8cPqbR08OSh0o7bY3D z4ygcL3$^~wrco_bQa zh0nwVf~7;7Pq3^BP~u=8<89>`2?+ZXAi#?of>KHu=HqbWj1=V0_ZvqR3GddscHM8Q z?mj4hF^1C9s{V{)RJE*s0lgLrzJL}&Df`bta&!zWUVbM~4nx+5X=~h~eHE4a3^Jz& z=J<}gZKkU%!RO7l!+)OFFC{+O1R+6EF<;N_@TuZdzJ?|PMdXIqv9+RfDTCCjr-SBa z-PaHtFLNcgispbT1ra*V4 z$!4amOKAoqgijpYjPI8D+^R2-N3)vjOfh5#z0A(-QXcf{5U3|@c0aJc{topZds{Kb zK{#TUryHuN_ZVoz1c4llGTB1Le^~X3OK@|(396zWq)3iza7Tr(Z7BWyJ}(p++&t?r z6OT0C`xeug#P8qFLMK;Bu}BIHB0*t`k$p#_K2v<4Ty^#6uLXH6Re$uJ!?dMX`>(du zI7AZPtbr+%t&as{gcLX9~idWF#6xH11f=7n8=Y(am|~PHy!>$_AW4 zbPU-5h})OZzWK!C&TW5Y`q~pQFASVV;W}a+zx)Q@$D0SQDR!uhGV@~Xct0wS4zb+D zH#e`q$asdz@partv0_kTWM{*-AthN~^cJb}#l=pmn<_sxeeTy-J&G3yTgX|`)k6WU z1~iAEQ>aU6y=*X>g*|F6uIZ4qAwdQC$|Wa2%>A>kl^40ZYE(`M1CQ6juU&D6z7Jzn z1=(&ZNCJXWDHwP@vImvM#*TL}4cN(KZ@!XjA-nr$v)7~D&$C%pdmT}#lK03_z)NX) zvJX=CUTu}5j7;E1KMKY{>B@ie;6N<#SN~3sgyRbeH}fNntL`KyR_c{Q|3<>ksGO-1x%f=gYJ+x zh~{8rNbGEH(6?;cJ1WH$cnbm}(yWwP!S7l1Sf6_3xOc@wd!uvJ@K5mDY@o!n84E|8 z%@aWmY`RxOsg>U3B-?^lDASo5X$Gjk(j{ZXh4hHq1D)8+-GIgtS%l=f z<))3a@q|03XNYY}X8cz_jDPeBsqb-5z708H%A|R{Pnih_F9=D3>I;kD1pO2dn3+TT zwyD{38UKo4$=@0M%~#3w-#C$_x2KdPV;qkk$TGYZJMoXDo){V+eA$F?9bKrQF2zi# zmb1lRhW8nbE+^a9&9FeiW$vPesCHa=9L=G$*?*kAHR{XQYe-9s5t=`DfWG2XV7Ov5 zN&>yz-=m_$jYw(&E)U2S^}9>{l|d9LkwK*7VQeo0K2f0=w0NZue}DH%I-D%d7w*N? zWG+43Egf>iSt|5EVuYClNaK1exSISN-ZsqH<8@lL)s(}NCfEf$SN={-LF&z5&Rxha!A9T??<7#+(SD>(XJmyV@KsP^ zE)-^9$3Jr?X|Q9#FY?2~{`~DHW4qVdA28)Cq=f4@(Xs&1bKwXa0;&yjI`M79okPBLV0U`Y%U|~rQ9qwc@ zf#!-L#SynNP+@xt;@XW#{v&aax9bp%+YN8$9lbwyQz80$dZq z%FzGW1J+~DT2@)qWhWJ4vlPcxDhSQLtrrNw$LPw~-o%aICr89d5U$?lwuaRRF&G-I zj^Kq~uOELbDP!$hH)lv{)yPdzC zi&78k5T)$$__ptWB_)B*dkDh zALi49n@3G}cQMJ5N0RTJQYoIzLQfL&9X)}>N;M`aBX~dou@3rDEFL}zEQqIb6Sh3Z zeen5vfMSXCl5@q<7z*Ot^sw;uHHZ5i0^>smXxPjvlB{hr>#MhdstUfhyNN1ew~!x( z+afie^nJF(f4Y0)Ym2ZpjjWqpE*_kUCnw=^zfDd;s4pcSDaZ6S`A4N9{FyPzy6x`< z1#6>)wA${cPJt9**H?_E0LJsoj4(fM*k+HEj0Hy&51+X8Da|I$b?tWpp0>qJ8PpRk z1f#ctWV<^^siaFMQ${k?f}aQkG%^6@?QpOA7wjz_s4bHQtvIc7kGmVa-5)ezibqe- zq~#szrc_mw(1Ewo4X8ibVlxhy{%wxE&xF5Q2(zCbz0DoJkaP!5X89q9qRhM3z{eZk zyJ?r~ff-iXm`~5(>*L2~PARjcuX!mAoGr3>Ex2dARyDuJ<)dUQzeERXCQKEP zax(Qb$cIQT8LXNK&Dg2U_Fi`WIz9a@U46_mD-T7WSsoigE|kba z0je+HpmTkL!1VfCV*|^7h62BSX#R9KyC~ypYGSwS`pwrc4@r%Cl{23lTIXs;WS3Rq zgS+1(#Y3-XT93XH@yjEo6vGvG`La<&^TTh)u}2tyTE(Obdd<%!=k%R--K|Zm>3_f0 z9u+JgN{a7=Eo~tVZ7B#$C3kKj!z<5thPnqNg|urtevNN(`PLZiawgvE@XA?d|Q=)n-?M+y9*Whc_d&iwyeqnhWo7j3gn>!jjTg zQt{Uu#xl3q5LRc{=?g-=!akqbMg1i`B#dzO#A0fd9xClnbaTRf%#Y$VAh3+w3Z}GG z(H8LiUGw<DsGFsF^N(7E(Lor$@hPg!3MBWsq}=H2erzId`&rJYx@82Z*eH1Pf-Q0e#ilU?+O zqY~}rw~~rZ36Vaj^A46>0^aYqHV#W*=8Yrss)8n)^VjOd2Cs9h%Xcn8E@j{l?JTHQ zMswdHM_F;@=&9LQ&8Hu*v0&-lo(DX;!HP>Jpqb!-!mEtJpj=Qg`mFea@X-_;?u@;tqj-3Fc#|~Ej7!S z(BH**|LzH#<~oqz7R|N7ER9E{?!j<0tN3H}_^jllI1q09;n_N79|5ki^Jk1kLt$9OJGmrMaX zr3;4ac7a4d^qU%7G7S00g=zL5p%;3s>1=_`4blZ&Ia6!onDDTd2AVLyjZW!1DZz#(#d}W zWIVd%a6D(Y!TUS55P7cx6}3fCs=jPl-G-O$0~lAz-(X&=e^Y7@ZS91gJ^sW$s`7zG z7a%gsdL22uE;C?;se18mzL;FGcU_vqiPF8opII5ak`TjDV#=@>eYct)B$C-gCOhb_ z`lXxb#=|lkhiy6>C3?PIHy|GcEax6d;xaSt&cp?UL(_zIZ$liI4|!X z0nYvxV&!YLMv;xzeOR3IMi^?nGUDINveg&UuU6siz&dIiPoxr6T->S; z(75;gzA;gs8MF7(0iMY_L2`CGQjE@qbU0xdyW}QuaubWB9wN4NA>GW-_>A$@&_k!- z;wR54Zs~xL;4oO0q#<5QfArgTSNJv#9-$i3l38ySFw@bi*gtA2E)c_~?)u=-GKN$M?P6eJNo~u;bz0 z-4yGb=e0FN`N`Mg(FuZ{~NBg_qEnI_ue^<91$p>BSJx_+NB_eiRnxDKh2rW9tarSCLmzhBZSag=s zPzBw}?UCstq)~&81+c{R1ov}#jn4W>zYje+il`=_>t7D{_ZvEOUApJ zYY05Jd9SVY3Ulqge1-CaY*Ev#pi=Ena=|$%ZNzaZip`e1MEmkc?2I%yIl2Dh02MnicR^ck!#lEaDNE+jwL)9B(9}_o*iNL-Ok;XM8!J zem;0{LF`7Z%ZjntB$3DH-!=EcC_{A4N$lc-Wa<4%Cx739BuDezome2i# z7xU%2>hJH*6A|OdUgzvb?M<_dn+J}s8YcI@mn1|SXU^VPkgdD@ieni!3fwOA;+H23 z_ssu3u1%?qPHgpHd7apn$(ewMyMGr;1q}WDWHK)h&e}O*f$HQqluskk{B6m$CVN2} z71F~Kz1eND9IXX~OdY(BuIaJ&wLt2w5mP>^mupudLmRcg3cQ}25qf6a>{4s$RuO3m8 zW8e3L1RS&SKFVkSlCBx02e=!J6bdshBV7`bli%I?lAm2LCUQvh8woXcIr%nQkCn6% zKmKXuV4ixEwOiQlPnM&10-C!Y726U5U$*=jC@;6B3lNVUW@BQUS`79u!+=1%3SD!K z+g|D#?gx)XsTinCE4Ekj34+e!%g? zJ!u^8)9%`>7dt=B_O?`2o)B7@(wI}aVEr9{PH?^t&jM;aD?6K+^ zdO>3Il|;#Uw*K>b?Ger8Vn4QDM=<`GLlR0YtJ`5_W!0gHbu9alG57-GBtNYT4>rCl zx_3?OHLXB+Ww+Z4gf!;K@pUC6Y+dW8ld%~S(J#v(+r>RDH#N)lvMrpN%Zt$pO3W_m#wE2tEq`vaMQmyoF$*i0E5d%ziL199eY~ znyuabc{(hqHO-61gj(h0CSIxiUEDSp`wxA^QFZZG487Rq^P_G{r#>&EHR4L{hux&I zE(N>hb3%Zfm1M!S^E{(ERRU9^7u)^rGqWKr33sdw)?i_6H^zK&jM_O- zxc~iUh^w)@FQHVP9J;pKHF;64EQMd_M@SCdQQ8+5qZ$t+|Jk=qSDVRK)v@2%?x26% zjCgKDEJSqK+1~ZHq%We{aiZ&~Mq|U?k30a|`Hh_G>#KcO_(vP0OPncrOcb}Hie6@? zX(uPK{NK=-V@)FI5w&n$7hQ~FC~DT5anxMB0rW-TSuwN^OKy%SCnq1TKVh$M^iM30 z+vR;#7onuvz(d3KW7`9K{C z7@M_wj`&G=f4~&#*S0dk`@8C^`AXP=r{AMIC3>-+?}9qvcj0b%>NoOYD#7Ne%j14C>N1Fm>l5g=W;t-jQXx>&x@L z===2+udW!yqiT3ZUC0qr8@QvHhBM&)x_Ta6Y@2w=*2`u2XPwQFKx5#*n}N$3w^30)kMTprMujPehVCi&M2{OPPl)(~u}ET8Ms|)I{(DsXhhl6> z6~&+wge5&yVf>N&5&f6n{Y(_eEgLvdlV?$5teB;W+C%0r^?FhP%i>&FX%z&u7m&Yw z`Gn!%!lfXv3D(qI?s$q^bdGzVQy+WStw55tqWirVQJ<{otn?!ty2lNaw`f6RQXFga zewaYTbg0JYhS6l2(9yD6N?HBdclLqi6RR<;%N9ZbGTuKwx)7$Fx@&nfajP0R<{<}DRwcEM3raN_x?`THI`VW`NdR%2;x{U z+==Yv){1)+T*=n-fwY*j1+2&NZ&294jKE&zYBJGz>VZb}FEzpGM=^sGbgFXw#ixBA z7A}{KYXQe2M*W!!<|x2uJ&jc%!~DZM5aSp1*8^mV;IG#6@RD^WEE!EzUjM0QDszV( zxgwcFC*h>2LoVQ$p!RJ;F&aF0*Hr+v7b$A|4CUzJ?zu^Y2S9IOFsAwk3onE&|-Gx|DYr zOvK_3Y}n*AU(g8{O4YPp4^|v!G=~Iom}3i!I1;Cz=i{y^@-G|eaXjU43&Fwpz`wzb zd0}2}A@)iJ^VHL+QvIQLv`)Y!)*S&Z;ER?c7e`mxzjz7!671$@PsgAdqlqwo;CgUM z%iMU}SFYpQ^wTTUm#z2;G@8_DE4SJ385bMrFI`bMS7oeiPT92jytCoUe+hxj`-xER z(oDL><`Jhsb9W-A4BCZ@@biZgzp*@fZ-%FT;Cvp!;&!7en%Sz>^9D2-jLNTAoy#rX zLpWXE4GoYkLGR%;aw#JJLn0`87(`!T$hkFr30G+C`6fzKpiBV-sbo3Xb#T~XYB_;( ziTB!Rd8??GF+em12C?#8|KLdLJVjYGVg|ik%yCVjt`%+; z_YlApb@XHTY&5YTPbL;qB5YPUVo7^GVzJXD)gAp(_{-1N!`;DOi+-CcN{`96e0lNW z-^{K02|#HLlo{XexRf6ueh!3S4!0XtxGd*uE$dAr#GrDDW56x$n8gXNXV?a?D48w{ zl8W0mwDUW;e9xW2nh9DmZH+k)HppY1!kG-=;1Pso6Slu)21`3K13l34{KWXo5XOXD z8vU5zOAdWW3wZ9^Sp3-UI0ipUXE%U|*1doo5zruD2=dlQ%|=97%f^S)mYsNhq%gay zTIQ%PGn@bRZ+k-(R(*3|g5RaQhS0k3FZbpjY6@r84zd>BMldR!7Ty-|s|r@zEf#9k+J~v#%x9r19W)eP7_!>MGmsySafN%S zDvL%GF!XM0@BB5=TDsjqBK(fsg+1+^*A_XWYrQ(iLyen$jQ?w#>q`&_JsCt!Y9^E!FQ=L&Jn*3kdz1a<6`tHa^< zD?hMi3f-B)Ll1+2f4)LsD(DL9+qV~vnf(Hv1*37{U*LI(fUwI0(l0%ynqZZ!!b1Jg zghV~s!6weyM!L=wq0fV03T=-m44GVL(HqeBLah85#+{*VM>&@-0fG6~ApXpk(E3UW zAx3J|19GuHek}b2Nm@!?!m`C*Adx-7zdoNf|B67vObwXc`-;UpSN1_qxTBHrQAOR< zSXocboP5fhxCPQVWM3CV61_!Q*rj2YLP;+**)o~?E0UG)=6%^ zBNbS9HBF4VGZkzRzC;KUAs9{qjLVcv=meA*E58lke|$TqO7Z01#fXmbq9r2b!x_s!;zGSp!4Bbolgh~G#=oF<3aA?31&$tv9ZDhfJR&J z<;6IPx24FRw}HG{51{K=^t>_|Lm@yk+ZSoETCu(?zjngZ&P{#xM$ChF2H{I&oB>uY zl4)vpzpvOw{z{4mV$j-2Ix(L&-k`PK1sH}J(osow&)Wt}E>QLR{ivD9?oq)kZG`^u zvqvvRG@NW6op|}1Ach5EtRoG4a93igT{3Wgoy-`4HSqtY*i=2Xw9JP_YLn$N|wW$trtw2lxme}`kMCbSixlKU( zr6E4*>$$vu7@A9OA&NS+w3=MLFtb}CG{Qc#{uy z7Mg%$)z{x$vw7IQ=sJkr4;((SuPjH{-(5Z&(#$=U&bFPPzG?EjGq^Z^EWeUQG>oJ- z854=g7tYG9MCzK8ySl^?MZgUKTMO~r2JYOs`uYTb>)I=Z);*gWOx2T$S{G%Bsd-z; z!k;l1i~-^}0=rq593T`%l=#D*n?~M()r02Z4e61^TP2Mx15$3+xz?r;z79 z>;Sh2)Yj)EKDM%Kf?+kkCNKXE?h6RG;WkCB01Ch;Po47rdy_{3RC9^qrV zGQU9tNWS^$HiV4sr0$$gJ8Llj91_XiRHJxU7+}CP;{mX9x`{Ozam<4aR#5w= z;`}9*o!TU>gcUaYgV%yt=cSMes$?O>`9$4wUL+d&te!T4Y!IMRn?)h*M7H=ky|%@= zyT}$MFEoRzbw8~)jDEcLyvsKx7oFAUH@WSjfY7{BuCT}O22mCSK78@J46Z$=AE*NL z0GA?qhvWgt)s0_viFycP%p9s zV|Xe_S}qI<^%AMTY+(>TSS{K0p;#7WWmgMv?nGR1E$lmzUIEC|bpIG3z|pzsVY&fK z9F%-IL|-h1C68^+e_2#r)6)BGC|aOLg6Pe3!k~rR2}~Gq-(;*)K`jhvuES$g5oih7 z={3rh%aS~O1f>8?+#VBF1M2A318=65XB6 zu8@M{9;|HD`c94O^~Q(x%QVdmL1%bcUJoKX;0fj>Z9ZcZw|xX%p-%@@ zm3ztJ)+$5|f|d(c+n=LQIp7DWoBMSY+tsv?9`!1F>g(|C+imX?fxy|v)R~Qch`AkY zFjP@Pgog`)dR_Aht|e^@b7;I*gZqWB_w9r)U$ue{OP|>%b{kwP$0zv}%5L*sD|2w- zMVzTA0OoUg%5eykr3OL4?>$*jFgS6kUiyOzb`j_-!q?rO=P*Em9#GJ%6ZqAS)$5t^ zl#SjGMy~)b7TIhPCQDIxqvheZW%jtc*E?r30_KC0u_H z|F|IS!Zl2}cY#(aG&iN(+exLjId3qfII|K|*P$pWRwb3o-* z*<>74L^^C#jnvYJ8t+a{Q)LbqH}&D5V3OjqEG>K|u8#-0iq1FNgJP;6^W3a!$g8XW zJ#uKhUNqvZSbPvu&atS}9ugW-Jyd;vZivmk4;`1f>rT$W9o$hyx=xt*7p4a5KxzV| z6@_oTzDE@r#J|mPVyZR)66b+i4=PG{5J`^?uJxnelbz5sBXf>$k(K2>p}Qe|x!T?c zKi)`<|M9b=wS@mUO(^3=iF%uirb#dCeA|bb19hV=x#sZ&@^?_ly!dvaJ0r7{uVt=F z<|pd&4t^Zl;<4Dzxpy>}RyIanx%W6`N`Kn^4&uR?z|BunKf&g`h@PIHtN&FivMM<4DUmsOi@$qM)@K;N4mg*!Zy zBV#x$&O}lXHEO3*!eq;{xE3U_KIMewa%7pvGLZ7RcU*dC&h*`B6tXVu8L-H$l zTMb~VApLkHICI||qJU79cLFS)h>JuKRS>02QA)5*rrzn2Hy{3wF?rpcrKb$OE%Ch! zxcUFZ1eK3mY#7b0RFDg7LvE*!$Qn|=goM+DH5e~oaeW^XGB z$kIG5Tgx@dN4MMG`PjY-qG^CkJ`&_)?_SHl1&;-*qgMDMN(@F574P%N1>PGb-^*> z-%gpS2sy$Rt3We_^@N(?romziFN=0XzJDo}p%L2iF@WleH68+93zF4sJ?miS+;-b< zdy|~bSIUB5p^^%hLPCfAZ7UcSUnUL|NY)OeRZmDrG7Q%ViOj4$0_DVopSy{TYYCG^ zJk&!zqX6sc&Bd!Q44pZ_an7FiRJ##fwkNqJ@eJP@e;^a>ElUbM34aQ{B~c76VN>A5 z_{^equ-JBiM|>aoCucxjcI+Wt!kZKUkUk(!*1R2TUb>kmC4Zc*dkB02T%H;)A5xM! z9~Bqp?_j9D_P1Pno=&Ks=(G~;7E%Y)Kf1dSg1?NP#KwTxXg^^T9t}`+`XN*n(p+i` zMK?sKx>w|VLBkt^E8E=`8Ab@QT~O-lD2F|#gGgg!iV`t;;zMEv^9WZ$Uw|Om{$}k1 zs2B%(HbD_mGpaLQiIU&Y^+~VWKjop>81v02drQ?RY(~{nR-qRMS84cJA?FAp`ShwxM^)7qw5ewQdI?L9 zZ_%gl3(;Dx%Hl!-`j+_D*H2H!Jnv-?iVO1VQ1U7UST96ds@IFHE}{Eg5)&dboFH>L z-@pc)f6UK=2h;>PRdH+_cHgTGURZ{jVg07_n=r!JF!12zYyN}yu9@x;F7toZFwRHLdO zjSsOD+d(YPE*vK7Q}PxwQ-heU6>#}IZ)>SCOqAN6)K*hop~lt|0s5X@SeQ-D5z!`H zXm%h?{G7G830gvHrpd_3Db4wf24eB1rYh=}d~@{QZe)U=2e**^dm7?1_e3Ky@GDYqO&%7bBfAYZ(-n}JQ6@~h?eiyPpeA@>)gu4p+wBToeU+kFFOt`F$Ycf z$Ue;2Z3QwmD}c$4rQL^&PwS0Kn7K)xLvBzo%g;2vCZymM-O844UfygmZF9z?%> z6d`!@-_<$ZzrJnayR$gGDT-sxI(zl7bYbF6q0LW@!T$>HLTz7ae?bpqa2UaAB48Al z8@R`^hD8N(DofzcZJ$kVJ3H}<_>n?MFg=M?&eLUVG$qL&zp!?0DG#p52NSOnO+Lq7 zapMWz;37VI8WRS__U#4USL0^59D9RsEtJ~-sSC+SLkDNaxf9W1Zk zXSt0Y@6U?dRB+MX|MsjwUb#OlSP1L&``z&<2hC3E0Cn^^8L<3Ge|RMlRCpkzV`O3zS9HOe&7_hnm@?y>vd?vQ zZP6w{j`?WPC&VPA#5?Lt`BvNG$c(|y_v5u&Qv%u2;&XaH1>U^->qwOY;WI-fkadz5y+Y-YRU@^ z+dD}tKQ#5-?3ft%RHyQ^8Y5nUJc0)~$f>eyS|x;IlKTT2p7r1xg3Jp<&EGe8(;~~` zQu911iI~BfO?`0rw3|^X`4**!Rw|8uLuo}`ysDjHcgBrVRPw@~GYyEGd!d*W@^u4` z%|ik_QWQWWf|~PxT)hQYR8iY5JT!<%cZ(9zN`nkYi;^nR0)i;gU9$=4R-_vdky1oT zU}z9TQjqQv=^9{|Icxmh_nhzluL~|Z=?h^83`tqJQW4yK8y|kK5{> zsHwTcLb1726%W#1VJG&LST679oY3-S4}|r8ejiVD;*V>mLqjVT&gJAOv)5bgx@|zLGJ@dNF@p`M2TM zH~+md_;t8oN9dhA&ySua4^$#ao&W*K(;|O5>0%DFwF(z?HTnGOqVat<%aSE@}Za~~9ftK;Ajxs6hlYK{Qr+pK@d=rc>-(_JcQ=Yko3vku`$eV^pJ&NF%07iN}tLz}8ZIiWR=5_e?~ z?$RDSZ0f4~l9r%6rg*^%=DlED^$S_j3r^Tx=l#!UP_v8N8?Us8z?ssz{KrCJ0No5P z30Jw>(Brr3D<#Vl4l_;0iLpe66qv0y^O-CrbwyGQFovDzwM9+_r`WB#^pPAXl;}+V zp(P!o9`U5vOzUK5S)843r|*JBXLkA}i+%Z&i=>s%Glk~(q=c23K9;aoWubBcUSD%A zdr+v>nWwZb_T9y2U*cTi`}D4rt1`pLF;tT2<2A~6s96bM)!Z_klFy}o5*PEe@yn@UNBA3ResGbYWV=N8Xjtyz*s ztc=SzdSqA0Ah%ONT1t&!{~)C?Tdn6&AB%K6_ZRCw7gSXl82eTM4{SLHw}zaE== zz7?V-Bemc=lfKSX4plTnf8*}-4G)d3l72d7zW3MnQ>{e)`v&!6PDvgX#|2T`DO40* zpclXDSIE;e|GhSdYvWmx0R{_{O}%aqtY<%H?Azk*7Hv~Nt+pRu)Y==yFCS+jv=#p> zVkw>_T&WT%UVc_$^5+4cXb!8O1>)5AesMXoj;OX*;VC4Nn-Nj`6HZBA&znwf_V6e} zo$fDSnLhMLE&xTvlB>IG&cggyA>Y##Z*Um&-(1T|RQ`Ky|5^o93E&|u$K=f`5!~{4 z`1z~^C2vOr5;|#45{L@$t-o@Ftb4+^93Bx8s?dH`3dn=GXq)x_c^HzhpZJTT6e8mI z8^8zGVc!jp{;c6|QLSg9469cS6=kVXRW~rEA_wG{QjKv}adq0NrK|ui*HBukCRUi7vvVZ}}6 zdokEoe12K5QHP5NcQ91S9en5>*>65{=G{vgxWR7rFC{%sIf!x)(!8(QI@DVfl>Fp=YSAu%CGGUCh z{4K2m4L{f1eVvI=yvW;R9i2vxKn0_WLzuk_xAe+ z9C|+Xi`)B>U9F#Qx61AR&v31MqVP)J6HW5j+ruI1&beh*t>R_xKe{iL)f@6Sf0^7V zXL(^0Dm;qswSW=26$<*}QQ4;|eZK4>q0}Fhyh+7I1C)q{8jlwTve_*XpQf(J0L360tAFfY8M~Mh_HywK5px$zyF*2<5AXi0Dtm67748W4B=6G_{~|hp5iXQWzQkL$W|>uF?3QA zF5TADv3cdMGSH-jO~?TProiBC7iz!}lb;t5-~RS;{OY-eDmbs4=q=Ak+QKZsj87^O zo3f^9I01vH`;TlQjc6UygGe`4QgJ>!1hbwUdZfJ?=+5ugi7C~QTw{r3K6<#Nh}qS! z(HfDJh?n{kStMxT>sznNjD~u1ut{bSy#_KLNkN$}{;QKx61!@`%EJ3&fem)v)N#<& zAg}SGsDl;AsMZ?>FSxeD$=pBHk4Y^bMKM?&UvPq$h`o8*8GEKiv|b9XEE?x-ezSf&mCcXn&N_U_zzj{ubsWVldn4X%W0|l_kOX?@r#KxJcNhOXbua4X^=(&5r8L>_ zXl=pM&goFigUjA#)sGud>QTp>px5>NE`{2rN0L_(BC#2Wb_0D~(psSi^sG9Z*Hd@gICM9u21{SD=LF$bFE z6D-M}r8CQ8;Gb+K?@Nkn-{Qh{-0x-0mkA0c{&*kAuxC8?dPd}uXVdNL+gD+UyF_=EcB&^R zji;)O6T$P@JChnK-tP!I{*Xn6!GAN0MJ|NHG}DqwjRST^Ux$%`;t-fy<11(o5af2I zV$}R8{V!B4hKh9Av2C4G5%MA?kts;h&ty^S1)Rc>#$!pnH*6eT%fdy^F$sGKdz2BD zQ49NT#CVLp@IUtHR(h+~0vMIqh03zOEKx_RlwRvGwqID1j660ByOAz?#|!Z>3@mi|9Seql=y&ys&Lrzf z(VPcU|LpB&D(Djzns~7aCXX+@G>?GjbjvomVrQW6&*zYrc*Y6*1a5&vEswqPL2uR0vK+;0+Mw5@u&KfHf;X-iwmzK@_g``ifHteNcP{{Dmd6}#C+vPd z=e)CpUT98JLxBGxz#~4&Y|;j;c>xPi4%`(51qyTw%P`oiKhkd0GMw_E)0<{*=F&5J z`JilS}1z?B!B)?-UPWSmD=i=T|{S#Vs{+$@Qn-|4k zO;$>}0*#G>O=jAiZ;V;p%_lN^R>l4^9_Up-&4tM(oy<2NTTx+-xBUA;%g6sj<3nYt zv!uy`WX6317*&n0QMKrGzrE=4uW#e(ajn_8hQBl-Fcy|6+-<~Xs5Mxtg}swP?$7d% zGsSSRe8c`>`i8aKIfp;x4BD4}qy>on1n5x&CD2O()8i<{laOXh$(C+*k%Q%pjl~)> z4s@5rtQDf;9}a6;E`!-4#^OY?KzNrED?R=D;fYi7;e=hq%WAm*m)fb_sdJ+%o3)A$ z>hBx)4+7ns{+OLf$1Us;9EHOEwi9&6uDnR}yc%Mm`NACzUR023cn#qP{f01{*aW1@ zI(ETjd0t=Pz!Do;P|)}R6%n%jB4FoYu;TUmkngDF3(7sM`MJUwf>&pOk=K#n7`KD( z&IL>2rwjvoee+V5u5IXP>F005$)q# zi{LHz=OjsX@f@7qGYRLpzAW1(e30!nG+ws0SD8w`gga-ZAYxC~AIp=1H~bU2r&F1U zTrO!PXhP%hl6HhsDA9=N!8qfYgu4WfU9ji(B+x1g zk3-*@Doezd3HdEV9hBEqu<+G9weF0*Bw*I|K*HyPTV^#dcMofA-bZFe{Rxy`iCvq9 zp2(ccU0|d?A7)N0V{q1tdK-8%b+=6ZaBK$qxJk#{Z46 zq~5Y*?8^|xM@N`aumIm~;JUX;KOAuW2P5b{62s4!^4b>nE3eM1Z@4}`JZ^n5sN(O& z3D;?A>%859_ee^`H1wn6wL6d6l0r4=!-W+!<*~grbnoj5J8u$z35ZuJ6J0;XZIL0A z!VJ|pZ>bwA(2;g6GrD zlb1npf1;w)X9=Y!c%ARt4lfNj4*z>{px~j!Q-Q7+nA>6_x^a5L zJt;H4-BX(ZxBmF0qITzDZoo9#M)nZ*&f5!F zf|@?`ggvsHYvZI-+BPBQB{Ua|p#VCQp4ZTNKGEZWXlF7?JAHkQSzyLVe~GB0Ebko) z2=y#Psf)h!3wIxWb_N9ol5;XrVD-4jL#;n8SX2XQX+l!JK_!Af9K*K7(stbz zLhR@BfnCo=td%}$l2#B82;9wR5Ae^ECZCv#&sV90F*jWh&AOR3n|fIBSCWe@VIM9 ze>Z|;tLyoVw96o)C>$@ZCSHE(YGFd#RM)=siyETn_`De7^FeaZr11M4&TrTxaW5=# z_5`jRi=^qfxFkj%zt|LaEM@%Hh^*+kW^U)OSTmKjI8OLX2m>Km1nxPM0lIV_-D~6m zWCHj3Ve@UTjnQc=k;@yu@LU zd&zM7Jd`n9E!_b7~g7^35aE>XcI?E#z1E zaU`0O@m^~-Hn-`7GNDTDpbPHm$y21&P{2$w%56iuOHO~+fHe>0M723-{%AOww=Up& zjYWPL6PedY`GdH})oMgUW+`SzSY~-OGBa3Ng`k)~dYg zaj;xF@4j`CelB}}&Pw04k;&cMzp3D!b09l#ssP`1&pn^!3+PCmi(Cp=fRA556{zo| zc@)Au{w|9s@y{9aqe`M7tyD1FPqzrm_oYjrhPhUsK9Ry)HcAr28b4{4S?tm+TmSGh zYLiCaoIdYXm_83v$U;LuksbRGhSrL3m!!~rZTs40*6VCo6v-PTVcoBO4ZZ-fHxr}< z_0PY|7wS`9Wd2$1%UM_Ju$1Y)KRH*q6<~U@zl6>%n|+{e*E)}v{8pDyyV=Kl+R;~P zu-;u-N^{)cks>?z&$uY0w6Q~Y7yEYvJAC0kg=f!Gm5axe;|+x|DKlH0{tA11)~Ym| zwX;%h*|uLwj(3g3L_d%yOf7_mPJ!@Kku9c01}z=5P}WHO(JdnX^v81*%*Sb~@HH32 zq73KhfG0MW7GokDlH%qW5fb6?%|uO?;?H{$(r4;(@8B*jx(4a%0>TzSfBboTNS)_t zsa1AS-k9rllFuMbe>OsV+Se90=>8Hgnf^J{I|!tC%JI>gYno^EAR|+%aL}ksKJ`F8 zuzpB8_K(pI#G>)_QhdCeQ_CUpZ(b zv?`aGSq<$>e7Q1Q4CG=tIioK${+$L^0 zDT&|p$cOn?mIX9e1<|gF9@4XpX&{;R3}-spWwV1UtVdI>=JI_n`mT}eWZCwp zk)Hmc_{U8301pbnoZV|Pbk%pUPr=$6Vzu!u*o0u&&)J!L@EDmJ(l)Hdhrc7WNKPbLYiAOOek_99&6yp+bST$g}unUGN1IO)zPiUexM>sg`A7IEnhPaEQ)Wg1p$})dgTwoG zbe0$!e=oE1VD2M@S}C1Wgk57sCBK!_z$F}&Zv^;H2ILL7#ln>UGVZl-qE#duFujCUGb z^%EHJJiV|OndvuB4!m$ns?3&&JkWI3OXUfi`~gi=)V;<0%sU*=xe)a&-MpV9cLe;d z6(k8%xMetPcf!IiBPjjgPbu;T8MqZ`V(cs2)tfr+{t2li&G){tFvi;GvxMTS6G!pA z(hcPO33o-OeK;}rPUN4zE1fI5m4-b1u~D|f`4N-an!1V?bq|5Fb1?0lbir9rBm{< zRcOGL^-k`6!z;S8HC@lze?RkczH7FN{QD|&uW%&JqJ9t7T>*!O>fOCflIHJ1YkFtT zQZcE`XMaT9Zvc1Vk2dMrf@&eb8n3@cEn<0FG>#NL%E}zaJC2N^vlspe8)l!p129Cc z71`trgRAxf&oDdm4EXi!yW5dSmk#J63QHc4aT~2NgZ1Ka#$Ny{Y%K}P^A+X@fMu*CmgI+m0Z=x>0@*kW|ete=m)cB}Xh0O$}b2aUI^jyy`t-dIz47H)ahjvoZPNosj z6Q**Q7$*KK{8z7>teC6x$*z*YpI;BgA%eS*^uMcbc+k>L9loUqQpWfTYZ(W=B!77yRQD$+XlVgGkZ+J6J>IQl} zI)gr-$d)0Z$Mwt2zj3j3w`5?R6_Ng%u*Wbl22P1INX8!Q3W~4F2{Q!s;%89n8Oy@e z9TRd`RA(QqHYRuexLlo*!f~Uj;Jaimbn6a3o%pmgI$*(@fWbdn z`C`h0)h}@_73Wy9gKxpZaQQA=m7HiPxv@mr^UUE;JfS` zbV~YCWvL;yT$$u>vo$J)Dya`_mXqYFbVw*S9B(>P|KX^5ijka%dP`qHJ8NXDxIcK!rh~WWXv(Jkz9=I zH?J+4%r;odd0>QEqLH$4&bAtd;t}&%;j>rdDe6|>;_41ZH5R2YRfr`B#n%@27ipE{ z6q>?0_HzI)4<+h`U=EmRj@{Z(ef7+$L({Qz5rl#KqLr|$DQE1XSOuyFW09%Hq+&73 z^L@_Cz6OX`(|M=fsRgrxsjtFRX^G2=E81^CweXzJCQ08CsnC@w^L<>)v3FDw|1R{U zM&RO$238w3?_F7Ag@tCl{?1Lshb;Jloy^*e?jmnkOe^uo07}ULPfo~!c<^#sNQgp~4B|4< z|LcA9v!gw}!N?HId;J6j{JUQp*?j^>?0$~*A584Y3*?GG>nz3nS;BQBZMUDVq}CFw zU+v0L0d!0)aW&V9(uD=I95w%$s41VT!_Y>-c%CnQ?Msi zoSetgRG^2R%dO1p9x%qxBKTHD@N~6%Zzb>D?uo#!Zj8S9c}V2hqYYidu;Dp2kf(>R zG)k-jdyRj_V>wDQO;(50A5*Zx1FiJ}JK>x`R@<((ATaDLyk2#wN;__lY3Rl$LAdOiK?X_b z_NK~Hi*7NbYVlue8maf5+|?MmF;QjbuSw^4XW8bk6X%(^tF-0cI??S zEQ=En`N}btEh6hq<6LlcK^!Q*(8h8)=cHM&3Fzl5u&rk;MtragqZT2~VA{*jEB_Ai zE~oVSH&(J+Zd{e2UCC|}nM9d|R^{04+Y}$_DsAKjp2Y~jPQ!#OTG}f+z76hBJ@dM< z07iWRN){&ZDp+dH8L7tXd5;&}dz7dXLcWIw`f@$=fm6q>$L}(3q=WDlbDxuTlb*CwzIR9&-tYIOCokWh`ThmM)l4FFTSW@wO0s&j`tZe zzo^oRB77}=kq)5(gt1TP=$7kQ!UPbVkjSY(s*IY%LEyL3EWY5YiO+S0D;n89C>EpX zxU&TirC!v_52|kN=mm{CcMM>2uOwqux32z!0M`ies@xE=d(89e#4+S!+%?z{aH2G<_{!ul{30mZ_xc$5Y6+ zhl}r!r|W%?VInz4k?=s1dSR$Fp_KJ9|I8d(fjQc8ueeQ==OIGL{q0^v92}jmr`pI= zSDJ*$0rcQ7w64}TxnqEA9X!& z+w=(Ll6`{jPPhCL%T^h`6Oq6OUcOR#EXj^~R9DjDMkrdk)9W&X{p{zVpb4g&G!XB7$)=>05!xo2Y8b?Qpn#0%X( z=wkmd0B{Wy;s*D3(#iNQ07wI05e#>+`75{=g?&Ks5GXZ2@l_07h4`_%4)Sw9eV!>? zpx-mC+}Wl$Vg2dQQ}Nnk>dEr))zm>p=)!Ym&+(guw8!|nj9in|wec67y7OyA=hk{> ze0hgPz_#9ECJK<{cuMTLW5juoF&i7m1{0XU45jpYq{`Y#%V(t@cShg7nOa{}m&lZU zEt?|j*uvAtD)yc~h_$)wdadsoWrXWHX@0~~UQ?!RPoPZ~cHIVkPp-ysd{fKe_65Ru z_&%OetyMTZk~tZ37b=24*e!yjHk|7&>k)fPGHn^%!z0PwgP!>b^Fo%3EwU>$jWq|3 zgZ*;v`JdF+-s~P3aE@m7JhVwrj1pH1e#goI8@oW;iW^BduD)y!%qf|R{ew6=y)WJ% zTaMED8#b5D<0Ny2WS%{3w<1VtCPZKTUlEqG33(+X5KKT3`H zg~a1$KQRK(XaxcLtvlQ~Y4Prq`Sy{0$vMTJ8iS&$_+7aoDdnsJ$KAZBRCC&>*Dc(f zry1YSaw~M{qZxFnPT*?}V&%ne7VKJB2)q6PSvvKp%=qx*+zx$(q#)*ME=j%~;gnZX z#gvy}Gs4&M;_-9t4%oeuI=kB_Z?VXb{ICyno( zb7D|LMeq^q*&kXTp9Q$pJhJSCSNv^GczpNxg&?ta4*aarr-U$}^4$3qT=7+c>%t!> zYN3)Q{*X9~Ue$@Xs%kx?{(K?&;$Y8dgmiRVG$Ebno=hulVt;`@nx-W1jsE6}#!o?C zgKNjhoX$5Zm%>F8=&{tte}7y1WL4}9AT!>ZKSM78cAe*55$Gc3?kQtGz?+;o!{pVxEnu9i0)sUZ+mGIC^;zf z*Y4VQIl2&3(aeFxwX)iae|i2(5Jq#L0}8t#5w3+}-8sw#nZ%1xZMS}LK-kqyQT5vlh9$aeTzfXZ=EnVZQpwSiChQ|o*|n>;L46?C z7c2L%{`sxwcaeIxc1eHftP9I2&b=W`5no$l&JWT8hM2ISO#FiMrxu;T3-D8@b#-~ z#IawB^NmZ#5G+<$lIHE7Je!-+^`-WT#bEs33&2M&G27wrD9 z^{YXuA@~zTt-^O}uRh*;^x#3~2d63&EHFboXP0Y+E?NB%!$A4HbD_TZ`aIjSP51HzH{n{_C z`n2`;XWf7&emeXiBvxx`{UT5bP&r?gq$jP11>oMrMO9bQa0vupL9o&r1AVfc^<#6M zR9uNK`vL0j3<#gwQOmECDg37V6|g6Iz3Nr*v2udhtO-tB|BG;OYf3z-f7Z?58doJx zG8h8E?VTw_?G_;4^{(idgz^eiD}SFa8V=& zq&r4!GEKTF*af0;V_Ur>uNhI_Gk%Y)!}p!^hrT2QkT#5_Jw^u4v@iJAe$=275 zQ3M@;-GKfty%Ae^@Xq&I2Ib;y{MbTlGV!c<^eFk-s1YDeyf7x(#z zj0rT(tkh7GncOaIlV$#KGBnFA;x8>I5YF=td8j1pYClt z|I2}{Ko^Er@UNA&3$57j5-6{S^8hm1BZ}1^ec&d(?dO{WdC6s&Qk9yLqhaIFDT-nYPr5S!2$>5im6|gzO4nqBHn+!n)qMrxZhIV)XfoS!1yZZ zJ0Tq#&SlI{xTT(A!;e~_E-Aw^|7`tS$9=>OOz)WIyXg{%+N+j4&Y23>s{qC}W_zI} z22{o}>9HWRc^usNPuTxYG%SRER+xWd^M>dWBXyF^6#`1`aEWnmJ-vMM58$p)G$g*5 z=*i@$%mh(nqAyB((ajVSuvY7k`5#B>QwSQy-Wh?fFu|(upId|oQS?&YrknRXQ0P^` ztK#2qR{GM|gD-WrWBz?3D*`bhzu;}4XwDC6ub^T0uYD)fTa4yM(~VqaF#k7UJ|=f^ z@*{VY73lI-=#!%am=w622)Pb|`9_lzU}41t_lm(uPT$uqfs?S~PSR0$s9O$>6(Na> zpw%PqY?2_QiAZ3|9gP`bcV7L>{&s5{gIDcK(>xvQ^St)My^wEreI8uLn&yPM8qQL{ zVeQi+c4(d6XZX;+U<&^VF6rNba^AQwX9m&1y*cFB?OwXFkUKZ^XUXp5N7_EHZ&>-4 zIE~Jp)il!bUt}w9>@+tzPzFsjlCuj6=H?7ZBoa>QB)NY_KjWdLPYfuO^%a|*PIEJs z{gONs_w#gR-|4jczcuL1WDMhbOa){OlZnc@dy{H#CqjX4{)lz&09#DZ5G+ve_F!LD z^k@ItyT83t!GGL)b*Zb;7i(WI;u2{pWC$!Ug61yv$7b#$DlST5fkS%oQqVwh!qqyq zFGL~flYMJBX#Qife!?3$-8K0E>am(G6U zM~dd-8#?EO1qC;{2uy!;NH4DOgNxBl#P=E=`fvWtR@#6T)^~adlo(ZC-E;+Tq33_# z0%S&Nmtrgz@PO0v-LIRpvpINU@xd+$n=1m#vsV%IbN#3dY$K=r_j|m!iR&|C16PRE zQ`&%goPGOAX#c7>ckbO6AzVUYwj_3w@|~^;b*Y&&1gyuShk?aTDzOhn{O#}=GclJg zU0S>H)w7gh4q0mSE9dQrvggX;Z=m1)$}h5q2lH!aw|6#s^*-gkPD6Be{X2jQm8wLx{=Ksk6Vtj&(&;ts(AM+ z$$UkR-h?9`2_o>}qUP=M*1zU1BLj}S#bxJ9$^zt?J7lAPRv7yoO za#nLz(RE^2IOGHZRWA{&@gSm|f8X~Lw+~mz{r>y6!#(=|tU>O|yT6WioH~-j!H*en zki|4O&#eq5Kv){4Mly>qT+DFMMdz)g-fyt^>IwfT5w~cBUSr2b`JQyco^*su%A%VL z)&+I?<|``9UZOC9*9O4<~CNg;J6$n#~BnPg?O zN~^s$p7N)+Q=E@2-Wpa{I$@8rz9h3AijXN9S)(anAt}xt#|d0|yj}id z?+`l3w6^0Mz`-m^4j2wSSy$KtOcZ{uV2EV?)eqNsga*}ZJgA*cAo2Tk+6xycXw1TWwZciR^OZb{O6S7<%XmVB^$Bpt(2ztV);Ee=h(8 zxVPH|-MKKI!4+?6tY@EJJ|{qY-s^lu!h`Au*(;xmh# zb%AfA&XL-E1SY1na$OpgY|H9vg_cV0uGsB8g~mg2x04eaM|3-X>f2&M()LE%wy#c| z@Me!24K-c`j)Au(e>*Qb@v;4#%=EyZAYgm!8~5aXo^Hj$wzr+lZ;{x%AHD8Mi%p7u zSm$*Jwkt!avQ6&iqDDV1%CHF&C=9dGNz?b=9^sF1x~s@%4jD<$ISrv!WGqV>(|W$YNlv|O@DdwMPu-t%+CA0+%rn&rZ=1}8h;ri3YA zTT4fvS2lBBlhd|TstzyiACMJqTjexx`*IY14&km9aMcCoN^No${}0RZ3+7g^<|_hJ z3!{k=T36}R_+W=_T0l@As&C511aJiPNA-2z$tSJhUJ!O^+o79ykEE|IiIv}*{8_tj z;@|0UIS=9fI1Pi zAX8OrfjS`XO}rv%C+(9pd(*kgN?7g-R~u27KdCFvivaEg&VSy>l|(`%r+P@;>al~X;PZCLEnJPduNf(Q%4Oyl|C)5 zWy%4t3e*vJ2|~^-pfV46gL#iV=;s2MoO|ks!W}sK#w$Kden)eh-1u2+hH4OJ0tHC48<+9V>OzmIQKv(gBmDn z=;7WA38LB2ATg-6aQ{+E-E)PhbG36lb~Ka2RPIUHFvo1cwI~>aA`!;cttxIxw8n;f-!jhE2SG_Q!;~5ExU+~!CfVh=pW=J2YkHHZ@$M0OvnG_V&Gq=NS_)j*l@P z*0^c|bZced?1l4+XX`IGmrE9FAE3&)NN(;+VuKW6`s5~NQ7Pd%BlGH4jKpEp6L`X> z1)1?N0X6@$P+|yJ+v0s&8&ZtbXtD07;)i`ZMl>75CHqVwSk&s)0T<2@j;?2GjH{w0 z#x=r8rDXtTg0!4Et=T^F{HBVhrQnoUes;ihPl=U`eS_k~5#qk!(uu#?4Fh@9g#~Cb zw`|#H{Z~uiGBREP!#9G7#p`o1exS!{e+?8kKt7n_JL7$bI2(J{hP3H>O1PK+X?{d| zBow#7skZCqE3q%vMMM3$Z7KOzIPIM#U)D7;X?7BPwEQ!Mbha5@PkTKBi=w>c?Ruau z&B?7XaL6ust3@*~2=Bf^l>}hC{}*#aE;hr(G|3d~)B&(U+NP7!Fy{Ug z?|b}G*`=|uRkq1ZW6X!dQgShlk`ayU|1d}2L*C265h82eXRbUv;XtRgAa7BxRU*H zVnzvyy8M}Wg{>J$zDJ3hS}a7;B5BtZ{nUAmj=R*ros2g@wj3W%o?g3VO$uJi4XmbG z)Kz3n+Vl~BsN&#*2gqgdL>-xNLx@1zQUo)iGcN1j++mGmdv1|bl66CTog6V&Rwwtoq5BwabK5M%& zLPWXd5%TiaoCs;MHOv4nJ5z^>zaOs{Urw4GkwKtK9g!C1qtT~*d%E3dHk_5@Ya(im8@6%%ChY!(1EDHdKmMXwry&Rk4Crw5wtfXdA zi_XEb8dW7Etyb{=W$uH_;KiijqoDZTpLo|g8qaMGp;I#!3d)0&PI$rBMd(6}XR0ue z9Y`by)~8Q{7|@Jcn~W=`=R5Y6Bwapz9tv!r2U7S<9>M$w4Rm*(#b1`>WGcW2&%kF8 zMueLCt0}YtD7w#+9q&!xQOz!vsL9((t3UW!vRP6PX%%5DE#pUpVyGS^evz3eIgeBB zDdq~Bex1IqE8^u##scNd6{K+BBj+-gh3Ba^C7wBU>N+`Hssells~@@jDZ41ax)Br8 zp1kMCvr>#*iNSM1l~#QvH%pda2b_{a@R1O`>t!b#n4Xwl8;H`+qPab_FW>Ql;Cn*f z4ucackt7c=6H<0}*{wMpb>(skroR6hnwbrjRG#n+T8QxNd)-Jh`ZG(=xiiVcX9)@Knw#-79Oe}OGGErp#zW#uJ2x1@nVQVD zLX>89=f3($c-?j{;l^6RQP2MRtqyaq{Z%5^lRJiiIi&>f39otyBx zP{~JLo?yMS-joPDJS<6B9Y4_r&f*JkQA8~Q^nGLFqC0fjzFLP<*2H_Db!}^9=ps$P z6a44y2}ZsRpL7dVqEkqyrtZ?WL!5j`)@6e03fk+N50<4o*#&=`7*_v^M*58xkC5pk zS4|lEN6Cd{>r2Fx*RJPi+FnQp*Bp3e+_U4F4qbhpbL}MS;VxGMLy%FKe;xD#P_r}p zRUAABxdAdH>(fHa&1FBI8R@{SOPBLBmd)quHXMwChCRNK;d{30y0@vLMSt=BWWRxM z)R{(|dB5T-bcw8lCtV$vk>Z-Fg!qq&*D}u1y7hKP7jL3Q*?i}Lj;-DD3l(Ta;>;J9 zz*vs@#Qd@8frEf>fdK21Tzz@)hEHPq#<}#|rgSWMo+S1W+5;4x(s|dT)pzCs?5FU* zeJ4wFqvA4tZ6{!Pi9V>sL7d`Bb>`E({kd4GOKPu$P7b2x zD5~@!!CkIUo zJ{?=s@YVN8lh`9^+5V^@$;tjb=3kOj+th2h4hX)UM;Byka-sK7l|#qxyk&? z_5^b~6R5XN2w|~v$fuEYQNm)gk9r7!ANDV7Na8u(=C}P+5dL(3MHi>4S`fwHDC^97 zu&5Q+l18)<&{3%vSD+NWH4;W~u$;0$zEjI2+7$^tKJr^Afa^eU+U8fih%5?t&A*d8 zCjh3fx#KwyjWymltjg&2GFlq%Z@PkZwy?A4zXQ1Xju;=%V3?6}Zce_7yT4Y^_MZC# z<2whBV}auV*>tvuRA{`RiwLLwK&f#gkR78+PF|Q_em!xnYr(7G4sE)HWd1XXz21YJ z#w)cumU5|M(}quS>7k9X>kX1;fHyAy6?xX1q(qU8L^Q@TGpJ|p1`K~DZNI<0d{pVl zovy1bWJgDRHq#An&CN&O-wObr*eZOmYcq}SVfc?VHYc+`?An@*I! zmqeZ2P9VPlr6rLYfeZiAKak5PE0>$|6-P5E-VAscltfZBXcUY4vx@cgi7V(1h2)xT z*?n(A?aTX`--h!du~{j#?e(j*4yMW#eBV0~b7U}kUss4FrfjDo6ryA)}50-V`C%3qNRtm zB_Rn?^=kcwL+^1ky|hr)E)a=bsd|WYXMa@!Mn9z@yvJkWS99v#xkSE9Emn_}jct5A z`lysz+|esk^XeqW-UFoi#PM`WEdlr_bOx|^$+{#8!r}vZn&Vr%?N543Ve7U+&M?qZ z5o1$$XbXXk-SZM-IoWpGT_HVm@FLX5@F^2?1A>=V5Rd+~2!LAT63C^D^6=mREbGcR zDKRDKPUa9DF{cmH+i?ZPD0b5R$-cQ~3LkT@j>i~xgV`(l=cD%H%B3fj=BM|b0AeyV zDG{F{n-_Mq?k3FOyS=BBGM;Gq-@kz9hMdS^XZ%cRf%_`l}emrLzL>fJJyLl{G0t${733} zQA{!o-gjx<#5&`?-r_=_zIe$W(oz>Q@mGCdSt5venKJGTWnm`eo5l;MGAn9uU8Vbf zniDvDbBt@V@|S-~(!Rx{kocN>^rJ40J4r>eIZ<5PLt_8xfnvM?@y++xV;1>;*!t_Z zD8Hy{93Hwukx)`ZK)RG}0YwxL1SLd4kPwjWxhM%~1tmnfq?GOf0V!z^$)Qs^2Zov7 z8U5b(^FGh#{loacFkIKU_St8zwb$C?%&j5|uWc}f^ADUE5?@yM+~tC+T9-#CX1igt zoIR389O+0ZTi)gk&=$aIle~!1yDhttK<7Mw^nEY^8E}4h)4CL&V0|4 z#%>IO*ebcMse@-Nysj0EzZMd^l46O`3e@PL4yL}L_ytM<> z6)D-z`^HZuJN|l42GG9T*H{6E&pakiy_(HxdvuDq4Vb&I@@OQ zVknGT17+;X0GFX=6*H%I{MYIA!NS$VKB(z+_jGC1n3Xi+y>vm6yE=bu+eZ9lL=0Vj z!Tn9=A$Hs`1oBXoWZDHq4G@2iKmI5$^7S?Xf~o$`7~C7%tVbm$s7I8)O(x)-4}|7tB0C*5E-VyoWd_)nfSo{g{|NUw5mi*&xq{+Hkdl%tKG?&6o`~S8wAi3Qj6NN|5rT(WaGR>^Y@H-zF3VHS1#;gIpS{x&S>+ESl zRG`BHRjqD!!f=g|eXY;@q}1-4YM>dCs9SDe7%jl5RQ`5KBD>D{TgD?Emx_|4ARJfZ zgd@_7NL2xGx4K3hft0e|wz^!#YlXhKQO(V2XN>$*@yjK#T3{^~<`399mfe&9Ho00y zNZQ)*)sr->C)t{i{C^6Bv;~z>q%Nh>ftF$>YvDVAPvG+0mg=f(>#x#(Ji!t2hR(># znc(Js=4UZ8{#3zH_knonIdgb&^x8q5AoH2$aYxTzWS@90U~WH6@SjktJ7lGe%5dD1 z#@|P)G%x4O1#~tbj$c6&yORO+$zb4TadP@qoFo1|WS;>`zN%h<{0em>ORV3n}6_wvMuOKSmlWXugfz@o=uAM^KDT#GB*XN8e`~gPV4nCpEE{nc0^sD@Iws= zd>6u%SPwJEF{{Vzi6-+ye{|@?qd}E-u*7`1J9gi~fpXM%1t`Sgp)0hbCYk6Rg&J zUbT&%r@}fkrg+J2JNHD=U~PK~RV@Lt-7x5=Aii`B;iJQX01P&0(%p3k2mP_Rg6Kyf z3@P+mk9DpW@hg?5!vrq`4?4l}*D%Bnn#$Of$~w`X@_wsRqNN!0GjcM9KOinCfsV;v zO1G!-Pm&xX;N*gR-kLxn2h8&;fZKLsR!#)Z;W*C}xpAhR(yHkuB$S~TyL}$AaO)G* z`54>L?2BwBPfMV@8B!dSOd3Kkp=NI9mhWp|7d`0G4;cN*`QP_L^Ot4Q4j}U}_;fv) z&S||DMv%%Mz$^2nH#_==_wxm62?Ym?jU;&Xiehc_7Lcd^ zIc+MNlXm*F-0p8Q23qrJp17U#w>$2><|s?lyuuC(Ym9RHMX9P>(jfs76zZ6f!MEC$$tWeb@AHn+y`!vom*F&n0NKOzF7Q>m)V8Z|H`<0#Ovoi4vy@- zq88MUzDzcLBwrccRz1npN)B#N5!VdI$xt*PV;Y#*o{o%Ncnwq2RxBOeltb$sw-}r+jfuLUksKBCNa57v7lRj}PQl?}`#$Xs-kKm8(~Y$MIK|_f zM@Tzme*VFsfr9$+hi`_=X#Pi?!EmlOK}k9w6X?#x$=@pOC6xK{G>+!jM`S;G4OuPP zC6oDrq^-9f@4$euI@X%(9$4^^z*nHR{7Z`6lw$Y&dE3Xvfv8SLDVblDZaL5ckv=3K z_b$dTgEn1jQ1ByWOE9obi)?k>=K|Z~w76(>B1#cYOfOX!cMA=j7x4C*ug$zzG|-KVyA|k#Tqf zf30uKT|?sQMXnBVWg#J6J@cuLDV%*`EnO-~RSAPUVW~j$RWtxf7hdhZCOZg6DKI%E zMTZ8N(LB+1M~fAm@bi5!xA^^#N^(PqYy?qu==IgEG_n86vY;wFTRf{i;Ktu`5-b?- z)k*g8a%6y`5Xij@h->eH49OXEG2QLMc%PWQ^m7uIE5|yZ5_CN>tal_Zqm?`dpb_op1bHa7jPYg zB)OnWh^+UV_$3*U!<9{BBmUEPS(AWg3b!4B+IS-aS1TaC9(cTfy&hlzK}yX6+BpOW zKT7cCdGutOsZW6?8K?&F{U4k>hi1f5+pQ!tT4TDF3QD|gQs@FbNyl1n+WKO;G*ebB zQ*99|g89;-ZGngdyM0FhQX%9TYhmzY*XG2eK5z&9kDP|F4pXuR(}`6Bhc?@j8II`V zkh2SvYak6tyd+4PoPVozTH0zl+)BYFs z^8u0s=sjUIbg-|W`@J_eW`8Hn=5OtTi=DK;l4@{=1Kv77H-%^M79Zw+t+B;ZbqEMx zgT~yG9nJ6A-6+uOddoRRitQx@>_c_Dwu~cc+W+*EE5K#5I7t6ej261H2DzV1D}fCL zv}FE6>~~CYT40>oYswPb04)S=#O=fTVU~f0t$^3sLr&#>@!>)EH+h>|`7(#{O8|zD z0{yv^&s-U}zER)RW7)CAI~`wuqlzdVquS-@{f_XT0v*JQ`02`@iOL=uW~B|~m?O7m zPkSL1*R3hRWeNDMvmGlU7DAW+ra{%~zPwMAT@%U)bF{EkB**yZ55!@y^x z3yh{Zw)d}idWPJ%25-9c;oW_yIS+Dj(3D3Z@nIP)pwGx*FNWH2`B%{40@dfh;}uNb zP$*jWRGGu8(E_9?i}9F~Jqjo(l>M4e^-{kFyuM1;tVd4CywRbqOA7dT``HktlmAl& zE#pmXZ1a)E7I7-2X?XD}kuk11Dy57`T_$VECzt{dwqJIP3bNRplgUX&k(V!*+$_-hxGnGP~peXhm;cDjAl!=YBZ z?QL++nQ%Z?UmnLFq5LmL0oU%ZU>dbp0j>bXEqT)vAme2slO9TPNwRt*>@Y`QdwXgG zaSorFjGx^#f@x#}t#@PwDv!1&6P=FP|AlOCH*R$tAfQ1@8bZ2pa`5BW4BtDs&C{13 zm@qr^$hNHA$@`}|%lxaYy4xqod#=a7ed+IoD3&j!a-+jU@6h6)Yh{Ghi zBqC35HI55R&xs@@b4?8T1S~uL8gAZzX3ibUF6CrT?*3luD?0xU7|7#CDX8pu&&Bf) z3mnbgH%e6gWNpqnN+(=>!kzS0$NDa@VCrl`%QKCO+91%uD1qB&r>qIp1fw1$C&d$L zBI{6J3fLHb>kY;8Vx00B$jP}#i&2zsDx%W5=9x*4Ure2*07~J+2k4pnYag6I^Ofu5ba*5IRQ4ADJHr73+M8H(QtD40BkaD-WjF8I8XXb|n9uM24puae}9^d$56A zBAXE?mr08I#gS|?15Y7t*Qem)}x#g*6D zZFEN}e)<>QK||O-tBxV;MV{AwoLw1^K-rw%f7#B_#SI5p$(M|D?gdx&ElAZO79X1KgJPR<;{&^(pw6PT0kX`0g1A}mY9a7R^hvK0&F86V7Vv7Ep>j z0$PsgFIM|AcSC6R`t%NLU}y*S`E6cigZn`|l+8$#J{`O1KNs}G_}IS&IBF(;NiKk2 zl0elT&iKG`K_0dx+V~li>4QT%{+_&>C!5WtQO;=u$qeUbx5)j(QoSGkR~?0FLb4;j zildzz3B0brr+!nwPIT{IfHhwDxPAEYCqY~<8uS|ff6&nDic$gyS3*_Y;lhbUfc{~p z|Gp#a^@s2R9Jmxn;46y#Knh^j8;gWLmVsEicHT(zYg53th< zUQ!im^};|3JBHot;F%xzfNje&ps#N(M6$Kjj3a;a($MgoF94sbIs}AfBo3sNu8>f7 zg)2n8b^U6PC>>katCeaK;>Q4q8i1!~fYKEG#rEKZOeRXW>>w;L`q(v;s@Pq8>RUQF z(7l9VAyR;5DPstlCtBIG>O2$|tMCR=TdQ9#0wL08AVl&Yct<}qQ*#H%p=#e~tw_yP z6KreOH<9=!Z#h02YCQW-g0w`Kjm`Es&dNPwo)flaX$$RscW)$-YC%sR)(%; zh1S^nm2U-9&aVhH0KA6-0i;ryGOOEQBjbv|)rsWal;6n^toe$m2lCr=K(*lhdnFvJm$qY}PlA+c zr9wmkxvtBdW>D1GBlS{NTPpuASoq>0q@>v23vPm1?)^$8gjAo_Cr>{fqUDM0jMEM= ztgv`AWD5~Rx#S3u9+)pxAHrT&s{+nHFtJpY=v~mWpMj1)mHt7zM6CXu#aU=`S481zb3*yxjdJ707YWKAu zrQVZjWEGp_R?od~=*)g&?%sQBJ<8q_zrYmhu|K&J^un7Ju`ms@1Phj5ehap#9`kuk zLt#oDJ;JNxBLd=5t1SA)IFZx73#@Upw^+~U`@`4`QC4NJ%qo!GrwGZTydM%i=Jk zI3S*%Aqt{Ny8v?cYq5*p!H$fm(v1vk4&P>q&UND2*{YN$9#`|Sqt zSz>tHQ_C9R_XzwQq#QPvfOw@OVwnek!|Xq{nbKMAK}aLx6c;|e ze`>BVpGCIr5)Jl+R2Tm1A$wpJTPuYC9;K z>T>4)kyHqa+V%jV@2=2&h0NDyv_`vp|J7=-Ugw~b4Ba5+pdYARBMf**sl=D=GCY^Z zZ- z&fa?wX+UQ(hi$2f-8=+bC+>0c8od{g&kDT`>{CT^&u7X`RP_Oljyv?i;b;OcfTL;t zFC0B^`3%p>q8WzazbifdP7PInz=dP+xP_0UwY%I7LBMB(fkS z`WHU5f19>pyX$mChN|7+84g3^-~l*Y%k?WSA#eqd`jt*U8^V$&K;b1(DaSw0G&O5J z=g~+RoB0F;BFv9}=Jq!o}nK4L1n)!|UbW|v_ z(wUf2NmOV&Hsf3Cx1+BevC!aec#-@cr}ph`SUN|_Y7zto&N5||ZK~sIpxd-ZB?apC zsfP+=jn7{O$buaQa+IcX%wr-NC;dmr@G*A=++>+5w0en<(Y{@~_KGx^cVd*O4;TeC z1sZ=@JXp_%TO920Im~79|AW?JOa6)q9Pr+fiD*j7t-mHc*npVZaMATEOB=cPu$w)HK2d_B>w+}do zL9j)1_D*F2^HJyrBmfrP)H#s*sO7jcRp( zsP#b1rMQS)9O|u<2V!iTmVb9!i<@Ka-!|8TRB{jUWP}l~Xg`|W;%(r2@p^#xUYqi) zC=;$n4{$LcvfDy;?sV|As7^7;BC;OA{27YxuJHuCFeJ#i`V(sF?GR)KB)|egP0HSi zEP(ur@iA=#T)#G~`0#<_QPBtOZjW<2m8(JPvgF?h(<#0$?o!GPzSpH?Nk`HJ_5tjk zaw)j0k%>_pQOKcWG>^BsZ%sqgnVF5i>ovbh@!OiZ?Y@^J8l4N2*V(>x>2_RHQpY+r znK&vC!sV(o@T68a241ar$PvM;w{CJqeO_ZU;1Ja9Lf6dsU+ifWfP^)12!*uCBs$4S56oab;j%JI+&{m!*j1_^*ll zNpu(B4cg5O?R5zDT~O#_UIBSw0wV}kK%VT>72bv>IsoUO$;sIxLC5f=O2{w;Ne)Kg zc?PvabA48Nh7Yv)VMm9ue2yevwoP`8D`l0_52CVS(&Ap~6Fybnp zIhc!pa$t+9X(S4%`WDGlCHj|_z;KLbfEk1iiTX;ugqWRBl?zU~Q<)hE+_)QuKEQF* zg_aB$LVv8`U;d*ej^_S(=WsSYm_Kk6KS3Q-ENkF$!<6;xf%oSBlAZ4{jC8=x4l6dC z0^Q&zlg`(~mM~WpzQnL`@k^3B_QUKtlxjLE&n$s9hE>rmn^o~V?KntxC{+JywQ7lE zLa*AV{}@N$e*}C2w!LjziY{HneWB?(P5T2D#Sk#Q>eY0}v7i^Pfs75O!pTA&%)b!f zDqS}-6SHEd@Z872atZxAEH3L^ciobt%vNw(pWDMF}e_ zSi*S+_IN9j_&NA@D!YD}26J+QSWzxosX4|T0imeWBU!G)?;TDEah=m6=KHy@wLirB zo0tgvNf?n9lO-=d`-$GN=##Ir*c3*ro|yD4@X>M1k?_xi?KYO-*@Mv9a0E7M?{E7w z^bTjslDc3_menEcO!Z>M@0(d2`2Jg29=)sIY8<;%MGHv^!GxDTRgQ2vQ^#$OUb82V zv?4L=ntJqi@KSES*NWgq=da^8@2IH=N82M%QBUZooRIHA&52s~mB!BD$mczKlkk1! zS7*JB0%wC%s}qjkR|@v%p0RnKbUi*8N#FQ5g(^Y-Lx5_RFb!oS@#O;tQB|3KAKnw8 z59gEpJ3qy>+ZJi0{VEEkiuVyD5UgfPh8;HBc>KKvzFu6j-DD{W&3Ze1)|DTnQ3%#( zIyQ9@xK8l@upT)NQ|CPb==Qh96oQ$5EdpYdK~lYGEM~OOb{I2zLa@+ALUPCVHQqDq zjJwt+83Nc2n6NkPC5eQSlw6i)zzw_6Up{YYtqX;IursYBr?L0f+h#A-g26@+cIq+h zv!NaD*JsD(h+jy+Xs<1iq2pamSC2Zh z&7|am0UrHrR(CI#xI!g>j9#fS-GR!g3jg^9B0e=eJBf#o2adHEycGDk?J@w73=SFj6S` z{l?o|cyQQNz^V;DV)R@t!$J|jGWZPu16`BMCjs^wDN#MLzcV&6Lenm>*MbODY8F;- zSI?TRS0UM%ycuIYK{0X1yC3a1zhVakd_;G-_#Y^}wrg}9x-ECG^ZpwT8}@lLtD?Lo z81e;+X0DqofICNMXj7SkQAtu@E}sa?i8NZddi`T}H%b&UlwJp+?x5F&O`{7Diy9*N z)9m*Yu#}2sXB0&Zi(+z)k81z^=h>$4SHk8YPubOL!V_Q;=_Shk)={$|I6u?pm$I4o z4~MZO-^LbRdKtoCO|mDVv@#-GxV2UsL9;C0z4L_^H{J`D&KwDTj$nS9`8#ggewHs^ z>v;JY@)LF6R*k{M-%b=?uw$Qm4dyotd`@EHq#JsBYdSh`68RnLz#9I9{yiSd*!XzP zky(3w+VId4kJK^1QU5Be*Z4K=4U%4(MatKld}cBJCkt_B%Z$0N?ZG5CofaVm{>lQq z#OdvcT7HW)c(5=rF!w1kVQbQ$L=WiC7&f1Xv#VaA6115~GL~c&e^)Xpez~CnkR_9u z3_W12p8qJStlPs8gCS%Ak%6IXa4~gBaX%$|Jj6-5b0m{AIT$uZg&^>+L@2EiY;vEY zCSty=?$kHWdCVcMj(6vV3Nuk&^|qzWdC$$c{Uy$Gb&khEY5utwG|w*Te2F|{C0s0s zosE%Q>aql1U%loTvr|OsKEcGjT<~P?UGs;~1?-u5#Fe2Y$iSljcOGF=91#Q=jhit4kGXx#+fVJ8 zFXD0?yCw$0MNFUHJ+`;^Kgp=>#PP&2vmdbGr#p%I<{T7$C!I}{atrZ1`kBj)^2G#5 z*1=$O4t#IGx_@`N=08hg5;KO~pr1wfL(RMm^z2|LtpzpwT(|?q(mICiKwdXh^h0}{ zi!V^@z zB;q{gjk!+;V2DI`NpS@bwT`%Er68xJYCxYoiB37(Zpg9Hji$|@^h+-p5lsut?76~b z3#@|VI_*xxprpLgc1ORd?2-4+?lVHgo?*7CC!RD+K8;p{u)4joPsdaO=xRWIO%pxO0+RK@-D=FrIRZ$oJ&DT~xZ6^z18PkZIA zdOVtr!ks@e+p?b)y&JuUptkq}L-boHALXTm=dlstvS4x+!`@0}O?+t7b+#kUQ6SgI z&+{NPV?jja4d zBgZ9(RbsiCZ1w5@3wx>}rvmV0KD{DM3HM|HXN5+Cd>63_U-}wxpECBtq|z{(#G^Th z<(49B>1BBX#%(3xvEw)v+IGXM1EhegdN^u^6SB5wySb<;u{{H)(2l`aiYJ(9iY_`R z%nx%utiqu>UZDU-s#Czbudd%f zIp4t4u2I46d_e#)7v=4`IhshiYgU+NYFR-$NRbD}v_l%9kpChgpl!-;HC2_D_l}(J zLHfEni~$YCUw#3;&E`e|kVrbfd|;zJ=Gq^YV_c>b?BP4L%`G%BJWtIBG&W>SKffSk z^CwkWQON!c5sxn@+b<^TUe1!%PF@G?G|c?Xw+*-O)9RP-^a&;ZJ2Nd6#L^4o_v*E& zl?Y*2s)ctat8!oH?lkCuK#m0USey&eugBa{91$My_13f!yA_8hr0DraUex=iVJyto-zdXe`aN)1|xMq0DM6#nw0(XS;?g)Eh)dw)5^^9#!`g0T0ks%+WhKX05YW^O-0~{fI{s&c z-E{%oC!#(IrI*D`NRP+Ib4MgU);M3|ZHBO+MOyk-mX5)cR~k2ENcpn}*GX7>{kP&1 zByQ&Mm#jSE_RePO%N)JqOYM3Y?=3-XsT3f?6U|QWn}Xb*^k7anceS8ZhFXkr5!IvL zvT{CaZ(Ti>3)8`XHfaaFkqr4vyUqqBQE~+6@v3bWzkYw&K&06$Y}8 zaM>5wfe%ceE@5U*_K6cx0VOJb&JdPw!xGR0(yzo_RXH5eCzhl= z>BxTO`8`U}X`OOc_mJer9H{zgWE41W8oxUR)$BCn%$&?9%=9_0yvWV(<#$CefG{#_ z7$g7_Nex~S{BFdG>CK0Pgl}e~Uvvq#@{-=Ec;rns*vjI)68o5~O`da`XLOdj?B!DO zpal_Qdd$0MbrLlQFMKfC6oX%m$vdI)zD)N$hwY^9v_0b171m1~t4KmIm4}1KNXTAp zCU_qzwG`!5?Zq~JS3yrU`$wlmr&3`=$4tY)oZ0M!JPXFw!E2@2k4N!w5g+2NwA(9a$VBt(k-c*7%`i z#BNtZJdPsjzkrAYorWD4uCa-8t0Hb-l>jL>ypN*{R|XL{!hFIkxr1kiB&NRiqc0}O z(;CF#^GQdzg;d=+cHHMUpSQ%-9&MwxtD<^|-dZ0&EDXAO;pHcR`#%W@2E%AotzBBdAUP`EAzrGu_pJG^Xm^Xd2YWVqm`(bzuv8O zNq6H|4ZS&dJAd{qlpeaHQMYEoqkhPO@!8~JJ&;WtzJc3na5{&$Z2uU#|7b1f z<=KIDK28kEPVj>ic-2ri2@GwLl!j;7Ce5M!R>Emu@dvh7o6mK#>1O|Pc9WF! z?H3rgZG@%wX~9aihE-D#8lly^J?0nUh%w!i=-M{kXE`d4o2EL8{-cx4$u{29Z48o=e>P}Yok5$>R0x)iIVz&+3gH^>e9J;+F)`_8>qD#6 z>s;bqmg8i9rfS;>VMb_9PqU^g713j(H)|FdTNu$9XUjK9$jSA4ZodW}jdgR@4|5>7 zyLVn#KhzvNsAf#nS4T?hdK2T1*2-87S0_OddDq@iJ+ zyV?(;+G}n3seMgg5!b128DEBZ?ah3w4!0!L(MMc4u{hhih3B7{+N$;@>}|MuTG(Tj zlNuNbm9iuQ`?CB}>a3PbV%O$e5c-}|Doy%!38_S2}ugtMx|6yuV8j= zGGF$9I}oiZA&u8T*rA;%>){|8#d?+vrofUWl2rxEqPkblp53eA{JJb{M`X8fIG~_p z&5lxI*s~1BW)_DO&!iRFJrlP6dYz@7f+C51t8>s|uY1DbDu}%WQWj-NNS_(^y50Tb z%&OV~FA^dRk{jNs`7QC9Hg2q5OH4QFH(I=xd z*tE#*x9gLxZTM$!mIvzfaM>TdHFsR^jCWNTQK^4)zBe>A!`_u$~}LwzlYqa}M4OE036emUM6;g>et zXRpc=fKK4-GkO~Nxj@GV)+SMTDxN@o|6xx|DT%9~V%%P?YbA6^Iu3MS8t_afufX5p z?GU>bKgC>|H2fB?vQ9vB9R7sR&MK$YB>xWx?Db^3aT@=o$&OUIMfSkF&&k|GL`gUO zW)ARoF$eiI%5R4n4i<7PTt9yZkr#MQ%AZQsDSZAl`0DRs^Gt54n|uzjoV1`EEuv*e zu;fWRQW_^QLPPOSvkf>xG4S;Qn}?>RLCg1gK9bxzc8}(xUU#s1qtQT=BTVEbDVrmR zS2la)!#mCt8CAfi&tKmNHMq*5{UeS0=vhQL1q|jfb+~WH49TOpeg{3`riHy-uy4_( zGycj~Z!vGj4^RFbRA0DXzMwdG<`}Wd(E|kMWgCpvU)iUN3xbBarH5-dD?3O#{*}3E#>y$tmw>anO?^;b5o`GIno$iO}ngYa`?;C zM#&PT;2!nMi*V3U<4T=pV=@#ok&~{Zz}k=3;bH4Xd(FiQeshN+AU{#r!IUFmiRaQ% zs4wa@`TuAM!h0q!Db42<1%nr8y?zBbl73CgdHO0$fIeYqLM1lz^KPktY(PdUJU}?c zw=XcOZRNgAifsg2yI@fZA;0uWQHuqoqy{Hdv_pyv|XFsO3i{>dbW>Prt zv>k!l_A2lrb^#vDVus|+-Zf%`UFXDs^8L z94PQrUD2T5FI)x<7F^k43>_-JHZ#r7d*Ov9#RQV5?Fe(){4m#vsaKNJmL&AXo*(9R z@6n}0TePppLTjtvJh^N{0rBygZ`nWZ7wVk~lW@seNBNq`3#t~qM2AwJy&1-j48D=0 z5njm-8~c0vo9)^ZFO2ddw!s}~o5T|mC4I{^W^!&N7E>rb7CQ~lpnosj0^;YrB5H5V zw~UZQi0{Q#Q1>4B8-6_4#Sluh@39$gWdOaxxX3>L;tF@H0d(5=)8jFDa$&c-{z1sz z%yF?7^~Ma;lS5{-c_tf$WCh7Dz994ky^hU2LA62p_4O;X^cGfYV&*%nPe@NbM#HBX z9JNfyNQ~oCp6k4Q0FuRro_-hIB}JK-6?WUwhW3ZH`da>I(Tl`#iV^tBw#@qLKlyWy zEJtR0uBBy_L1@Adxt*{qeO`}}Llk9`t zI~6-$$Gb)3q~GLh=nk+2RGlo{JOc~zsj#Z-jgr0=RH3qw=OQj9mQz%u#trlID>5M6sI|w& zd+eU4OzI`fncdnQa&v~Vq2@ewAyh9vguy*xU@!ywSjW)5yzU@$Ei93Lc0PV3XEq8F z9mM)W3nX3IY`(8q)5=r=yv-d73oXE&VG;J8;-I|86nIS|MtbS!3o9Lpzeih&oU&l& zJ^Ry!kQI{jFzR0xoGa)4u7XJ?kFlHF-WW{d;CHp1l#7Gn%hP!Nssmvb`NuObzXk12 z==|^_I2)U;QjauA_Evd?^CWDictC89<<_DNZ56oZf#NanoCu^iHBgK zk1?%p4xXD^_s7(q3uyAEyd$_eB4)-cQ8e^X?Y@{#~S)t74IKC_jD$wX6*VELVaaSW)6JJ%%x?^J)a1S zluFqB)H>52+1W9`D>k+wuVgdd}aKd-I5Z2gI%6bCou!h%lymPujhfe z8~gi`DGwkYQi9F;#S1hsvZ?I;4dtL`z-`reS)P%aRq^v zmK^5wvOv`z^v4RP`?tgc)T9j)UeFf9_PWQvP0|EfI@t`Ku+s2{?<>M$I*_~Q)Q&Vr;d3;i z#c`*a5pl&@xrKz6;K+4hkB;ek<@N*A+(OLb53$pyv1y3$__(;WvWNNBL>y6{@nQTu z{9tq6V1QLzh=syJlJ)*P2It*-_N3H$*LSkFuULb~>qpRJhIF;8IqP1JJv z6|9;47z*6GIbM`{j5O;HdYdyt~pO>)tM&n9m<3OjH@%_Sc?1;7ktzHDP|M${0Dw1=*`VQo* zFd_7NI|{xk-DLcZ%oza(La2M49P4G@f) z!5)0X=KE1S?fdUfOt(k0Uip5b%=7sg%nwy{WFKLxt{S>jGJ6{`HvCvZ60BpyMg1NB z{N}mtO(r}M@8d^e{N0q{`z~S8yL3O%tLoGHL@K^XL@=paybu4F{~+RgnAV`?6Z1C` zco6&!%_zTL^9IJgIP9XY==b^dIlisP?$5i6&dQ;einTjCJL9coXWwcce@Whkyimey z5pTn-7y=tNkd~W{=YKxUn<&COMNnj1QJPARDw~=?+3HOD$vV(L)@)PO3BPU_WtxG} z$}!*LVI(qJ3jd-;gbMxouoZnc658D@e&<2vxU)PfSoPD^HA>9Q;UgN|uB2`9r zw~-cE<6{pQW{5%#$i1(v;-lErW4hQ_*R_<}bH{pnFTE)bvHtqF zWz{a^J!9Qrv6%q=gv)L*UeZrT;h0kkITbwS3 zfx>O737xQxa+_W&#U_6#b$xMG>vPWZ#=p;XG9s-8MM)^XUH5A~sKQTMAjlT743H6)#pBSt&_@oYD5nG6?MNI+c_RLG~XweD?P z4=5D9aHh=t0}vD5m6vsKTLzqeAbaLbRhZTpL?a$k#p6?&`8-dyGUL4lz+D4bS`(e6 zw3)7s+{Y%mUaY_RbtTx5YbEiPxX#n3Z-r8?(9+Sx?ClL1q;6Ath$*I;9orWV3qiIR zU-^~&wNUTovng1IL1GJo{eD%AJvY?IVfOK#Bs= zn8!iQhHy_?{={~cPGrH7f?jfZbpo?j#mWgYni%rgi;xYio6kLXM*e`?jsW35YpDz% zTTxjJGdB{Cg{xZ{F#p3bX5VttAud20Espx+)nF{4T#epO6=eb#@RE_B-F{#uoEFMdfuhSkJhZV=d zk&iwYzWxS#mO>CdCM^iVu_b<-#9t9$TeWgmfE4vgZ0@GfDf-zST|QJ4f2_x*uzvMZ zAtoesn8)1Twkfk^o3i+5Wd4$Gmo^wZnPLY3if*a-4O4~0H%Z7p!j$*>K#ltQSB>&? zuLIBX8KhA1(8*mUovkZBAcp>h$vvwJJD9VL`!Dtu&eZMqC@yGkkFlCWk@WW-hn}uJ z81U@&ko~(K93>SYVW0fv5LpMor;b~!u{_wht{ba#7a~?k*xpDtDDtnX=J?vEtXN9> zG2A0#7vc*BU!1h^^mKkZ%&9a=q=Z__e#AC|C4<#SSbY5Wv20;Q%Kq5oP?9YLx$O!! z+^oC~nVJ$b$?erPBsZE{BJrrp>!oThw!QUqWu+g2O=&n{89Fh@}oN`otI!K9KtMk_J$Q%({&bkA<<{-M*_?;g5wIh>7Fk zxiNyz)$29%J%$3ek0#{Wr5|+^e`&FTnv~Slb1z9hzI<8H=alegYB?eLxVW~Oz31fY zZQ2tUUk`sQYRl(wt#d*4k@LGXe@#mDV15tB{1WL<+`V<0WgK05jQYjBwr03uF<9PT zvynIK_JRQ~zVOOT06*L2GF7?^6>ryh!12zQK~}Fzy-ktu{Z~it?OWy8e#$ zj#~LzBxSA9QgbKMk?BxAVc!02R5>TVq4!zun>)0C&#sGdYLQKut%enKd0}e zW9-LK!Ubh}ks1^M?0YBG*Aee2IB;N_P8xuKx69P3=*mGFxwoK_e2_Y4N9Tk8bP}u& zN%Pg<)8iPW1A>^$`QgU=s$=_eW?}QGve#(8TteSJqN#jMLQrw5V3|G~^}vlCA#Qt~4wvg;C^iFQ#M?YD!r6amG?mU<)rVlCn@ zP`U%4{&QSR!K5m)R{llDP6P$*#EkwT@nTmR13RHd1Wh9-PSO+a;5|dVeFO8ab@?Cy z&7EN}+stqMXYXobuZW9rXL@3Fe|}a7I1Hai51(X)!|rI_chxErDtXhGUCRp{?nQ9e z)4_(N3ZsohuUT-;ZzW6$%s}ynf;{|;XFi|tFm_e0XhgYR87ULmtUTvjK0x-=yJBCKCqgZ@1qTPXkE+@&1UWQ`pk2S6X7^(|5oFPgW-~P`mbmFanDZ zSJD+1$VobKi;QVLDp4e<79Td-Q%$hTJVH=hngxTM^j@KB@|C4kqS}B69Py(_x3gYr zG{Z{)OmZs@F_nh~CvCF3x?cxZ>YLwwfvJP;u~kCa4yz{4fbqP7V7u} zzOZ`O{uU1Hs(h@dEGvC6EUhSQvupThEVCw^5JYWK74zi_^V#QmXRh}xmoDF?j#e9W z;y0G6nIBUDJ2pN(xf7FHWuwCRR7}~BwL0^_vX)p4oiZ7_^u>urWc^GezDbTP2R4uV zskS)#_*R!LdnfA!dioz*H~ILqKB5n;(4gZ`6b7wQz#flsLMt1)2v#(_A;c77L$h6Wc^&EMH2Qy*==>bsp1xu(!XdDE7RpM-8TkdcUk~NtL$69srsc(d)@B zpSi&Kj+S!N+xg-{(4>irUE3* zMG_z3T72)mpVD`IDD7e+lL&Jn0GwhJ=wAkTVk%4I&U<>KMSn({mqvSvMLbg0V(Kk}AKr z9cFGJZiqIDfWi0jR&<_t5rf1TRximgsleCV^~ISoGE#Y}k@`Nr{V`egNA?!})cCUm z&j^5lhu(%YJwEG0#<4HFZuv3I98p$U^!q5Tfr$m{$#=(2;qn|)bv86|`{UkN%5I+4 zSLrD$XI#2kTlo7Z{N-8qBd-FQ&J)wf`W<#DI zWUsmR<~Ls&u9;-)rmt6smv~O*B6I(2=Cli)4ALkF9tAz^aAf|niJr0lBf&1Gaa;H` z;Q?(?gesTX>y7oEi7XEtT6(TJAKV30Gujwi#MH!yY#G*g+ROQ+3WFS)yZgalum#v4 zXvM|7o8ZI4E8P`BpJyH*JK~M+0{}qh9x((xOWt~BF}_W2wuAf1!g9HFoEW)Y=}Gan zfD4szM(+kETyc6sIuNLV9};gTxy2GIHFygZ0v1v)`j^m6kMey?=c1+2;iq}oGMRz^ zN68lb5i`fF8b&jkYX^6Kt8Pw%E=ZWuJhP`gGJmHS#CGD#Pm-jQ^|U?s+Q7)}sRVr~ z+r3!Ew>MVKd!e2KKhddS#6$NUmQh!q@H#$zUC3o>y9RZ82q-cuTeVh z7Db;EdXwx6Tm$oOU5~KG8GH)c4}JU=gd$2P=RjHW%9(sK?Z2P}3~(fPi7*g`!8&U( z%QYPx3b<*tp1=~ST}3v-e9>!?8u(flEp`KWa`WLzQwXA4K9!ll-CMk=9_ch#59!*M(nALC~!lf{2d zPrukytb&wJ2mQI!etlc0vF0%ydh7BYvxriO!{W1Iq5!zdj;yPN)6)9;oWii1O{T(b zKx_evO>XGI>VOvxSzq#{mr?}tunh!uwTzF@;t`T59dWJh_C)}7HGuoqqOutbyigC8 zw)IGTRs{|`0VrpHiG7x_rjJnzY}bPtV62AA;5w}0Cw^S_Y8kcg zfv5;CR=Yb&-zBd2qS5Snc|iU4E?x29E~GjvbIpKt2_&-`>QZXx1xJ2ODEKuRk!RoX zu&$E0_S2}cUdrhoU*CgJp!PMJB%~Uihh;H(Oi)7s!*dP3RRK1gvM%=~k>>nw1iMRK zKbWH7E>4ao&kO#wza?KtSRkS0AnVd7s7FUhJ+O*~tOPuilmm8~I!VHs9^{SRqh#c5 z=Amf(!8vC#iWI zz`}NA2wi*EHQY5}``_#%PuiP!c*50kgyiuTjlGO7s|r&xLW0`RPt=;6mp;dN<}2DNZh(OK zl76u{vyfu+!C($deD8i>Nzfy0ZI;Z;mJ}`pT?a^a-lQJS1L_2M+!=Mn@@n;K?8Ij@ zb+ie?=iVy^?rUo@hQ=o@_=$zce!zwr_g z2eWVj2?;47QbF~dM9x);kT6hVc92L3DPy#6o~#%7`NR3k2y@(xzCI4CjCRWwym~l| z?*FP!jsasNRCcRmznqhT5>np<05FC7HAnv}l_1$8bC8oIk_Hx>Y08%F(QcX3sm@tE zm!?$Ex;xoWDy8?lXkgHqE-Z{ftIx>2y?<-=>2sqVCU(cOMfq$Jq=(#{8-Ye}iBrkc(mkwfzG8z*O+llXFGIYz%qqb4ewqb5=3i#_|S;a{pIRk%p+fD(LIj z{B2913I!krQaerZmyhe_O-e)=Dc!#RSj^t@=|ec^Np%QNy7y=-9|O5+ zYwm|uM#TS=5_rHKX#4zNW=!9FUawV80{4N6VNFNyl@baJ*t|J_xN>Fz@H3!wxc6&N z4J08z6j}wT#3%+ZBU|i#C8v_!?+}g<+nj#Uj%fNTq&}+8@2tkQ>^Zp;J0mm=Gn~)F z^3kQ%{;jL;MM61a8YHMe7U14giFbVYx^Bwi}o|dmntZCkCgn zH@Q3H>2-Ye{}Lv=0(&y!g^Pdx2+tdpaVY;Ja$WKD32;WMO^tqL?DdyTwwD+fa^gd0 zieA7^ZLfWo+%3K2gZIF{0{nSTuFg9Q*1EZk*^}kiiI;bNv7JcoGKkmhV*{n$bBiJ& zUKq<9{$kCFw>3G@wLF;R;$XaE|G#;B@|4UYYqQ2V{I0z()L1Kua&#H;U>f;+reCv#&5GS6f4z;-P^o zAJnbZjNDF*1VkTbS{V=-=z=vb7ooGXU_T@ z*fc95DHEegkDHW!%n*zEj2*f|l)n@E=h5>S__c+ag^K$fX8!w20qr?54l3Z|ZYd{v zu9JDm>7XZ&Yq@&U24wYB0C!GuW74@TVu{ewkmo3+g^Jv}&F zjbXnE1k@M!j__WDWocXKeE_2&4;<^ebf!VH7?@~AaymMZhR>?9P-Q{}u`*Tne2spqVAihKv{vM&Syg@z`75_&}z{UDhqRhxSN64y2G$65rRb8>{&1*He_f)v5z zfoC%ochc{?m7v6a&6K#2gZ5f1PTL`E>OBRk>evP=Kbt_Q?b(4Q(ENNH1+$;hsYdy( zxX^y9jwy~ZesrSxUHOqey@;H&in!tv%Kf`H`%Kh{W|fvy<}%4K07%NeR4;4sO5jez z$)E*&W$T`;JSXACiW(D*J9h5v)4EYmLYRRn$ZNmi_OHd_jo(A>0j3sKc%9r;Hn?on z+9t*8IG5)mD}K$Kay$iwJL_51ao{+t@s#xRiz+xG4*dQWN&x6uN)O~Kv@SmU9zEhX z_4C_{>NmG35SVB^;v98-pMkjmCW3uxO^3J}7b16_ZpnGrhl`mE-W&Nf8x!|Ahc)AS zLi*rD*C?B`l+I3+T6-MfGC7L%0q)~c@qrqdc11{y6=7Pe$Zy+YSeDy7Gj#kquB*AU zmm(u5Yxv%4@&QixKn^cGf}Z{Kgep<%EOpMXT`-V$dE3{f57QZM>;^JRTfFg~J~V+7 z2Aye^86#}L1LO^^Hjw7`rQbIC7gwE`|1GV&SJcxBS38_KOWA!tLIZlm0z$8Fs#?P5 zhoZqpmV_N6qI2-+>IyXiIQVm-3Xk%EicwraPB4TN_|1>UJdZ27!m7xNHhU#PwztU+FRe+c+kqfd@ zBzEH|c_i6h0G(U^Ip~J-@Kcr7z>s6xo-`Z6W||5A)rb594#+FWLvZ#s_}mt}GkHQ@ zPhBT}R`|MyGeI+_tGQTLaa^EEv5*cxtFJK99J{ESM8XEUr`_Mn7?_;BO$+W|ZUW@$ zTrm^|v5Rkaf&{<4Fs#cco@l+OewDuRw)+gpFHoI3*F2bp?%A8);C%_N@)jRwF>+|WHa&?Tf zzE7$DQYfBnkDSAHxvEjZp_c}9((9wrB}qXpuvmg!E4A74Hg6fWCErh0_OhBPd(@C$BT+Tb%)I~bPujgtQdcia6qhv)6!{}z zPQsMUPe_j>7g-sxQRHvP^p%12`j&rX;)Qu`3FI~M%j-uj{rjghG~Tf?2TPfzD6 z8D2d(hvoFMJiZ2n&q&_Nv{W-B4)df*|B}6{+rLM;K;i3e`zBG^PvxG;aDPfOm$OD1 z;!6YOEaZW>q)xlW7H@#b2Ftg(?P!==b9p3^eS0Iu>6&I3-ON~^YQI~w{y9fFEH$@f z5{Nks7THKAjGAm0xAIRzVX$4PN-a^u2JPA2rTm(u-X; zI;x`kfJ4t!lPob$-puD=Bh!p0`fgqkLSqzcmO@9aFESR<`*-sVJXNXq+I9!GNUnB_ zt;DF*gw5#6eh)^|Z*M$RQ6&79Q+dm->dw9UYT8a(OaaxCK)k`P1o|kmLpC5C-8kU* z*;sZ1&Ay%^+;?gU+60prz=tFccvz8Oc1CT~0~UJTK9^Dz0&6j0lgQoRofna={qFCc zLIRRYKWxJX1!08rzO;h$e(mZKKhU`5fn|=TIhNPU(UO3a;$(e#e{C-?sL+&sXB%Rd zT3W?DB+~^Ro4mO_j$-18Y_flOl^Lr~;76?MJJ4Fp42m4p&39E7tnr0G=OKSku-aD} zY0tq}QlX~1-Hxdyfl2SghNw7*$y!UgJN_;C2&;^r|2NWkMC^4G#-tSk9l!sB+PM)< z!E`#U`IZ9oZxg)q+B$!33{4+w*(f9ckoi1S19iYCminLfh0F|kqO>l78#X5TzTeH` zY+n7ROet^A&_cxiC7|t|u1CV!52jAk&oY??ikVKndHVBVs(Wq|i z=~mc+@fgPT-Pn*U>ek7+wi?8J=TXWwzzAzE_{%e+4fsMOXQV}$`Q1LEyZ{lnJg>o8 zIgSY*uV&voT$2107bmPGdEDojp86-!y~rnIPP|?tW~Q&L_tX|Js!YE9r;z-jCJ~8p zOvV?Zo;&HuSu+Rsa&nyE0n2Hzw!8bk!)E4hdW3v89`Q0^N}BLfX9{%7P};aeA6kbt6;Ii zI-On6UQFt>D5S^ha~t+t3ubaO=s{1&j@ID7}u=qAx0Sop5J}M}E)NGQZI5ZrlCVa*7l#8%P!gH9^I98_)7FVyUq!BmK z-PK(;eGWmY$NjUdSK`s${FS+wpMJJ|O9L14ge`(IdYPXqSd|cdwqOz=B zIYDtC9JG%QT^>R|Pl)PITSnh0T5I@p5ZB(zp|1Gy$o39(g_Q3BR(>Vnzp|Y!SbZzy z^ZR1=9Rewv%aCRbG^}_q|8U4P!Mtd!@u-F|sW64c!+((6jTl;+cGH@7 zUuDcGCT4%1D`wQNu(l|&AMbv!xnks#lk~VUWAU9ksj6$^z4+@hRBeXd8cOu4wv{do zySh(az1_$@yrAt4IW@?OP@8n2IaO4zO#fG%5r9liiN&? zj*@MDn(`P>fEjPR6R6q<$6Y?RenfiFd^!0(zoHcyj^@s8%zMEQU9}Y|u@oLx`=_dT zb#0>OQr%;sg&z9T781oEkG7xw`lsV)hmbR=7Zr@d=s!QvhwS)?W=G!Jx1Y*4A>{I~ zDoc*MYkU{3Yj&H0rTz5s#cjb=21uu|@?j=Pkp9oBN@DWIyo8?=`&&~(!vWJul$g^| zTU=8C-!N(?GpbxWP@o5@4o4wBjoKl=7yAg8)XdQ2`#(d@(jOf;C;JZ=_or_WU1Og7 z;!+K2G@U=s<51dn#$NNaW{xtK|8z=wv-cwA6W{LuWr4-W?YkdQ+VrS%CaF8os>_5K znd+=ZJHs8gK_;w8)EM zv+2~3;8?-BTE*S^1-8})4KP1^XH$RO?xgebvZKUPhWhq79*H(egfSCvy4Ud;$|K)E<9q zD@Z@QA=8-ia3BrfamT5K5O#sOE5LN?#63wbd37TkQ3Fs2rdN-X!=s^$4VMOyZqSGF zRP8K0W(seA;PKW+Tg@e3T@m?aS9e0ga54(gWMbbD=eTB|e=h{>c`El`xbi<_zB!K8 z8ek&l%{|C$@b^VI>4WFzkE-bF4(=1JyRlSB2`aPFKsuJa*0zuI`_&UfbtY3;i@1=SuiBFFEi9j3_1;)Rq9LOxC-Kk=Zj7VRhUby*e2YT*E;C z{V{R$*+K;Fpi;3E%uoZ8xUvNy_IGb&)2bY1uiS&a>HV6Z^1`UgW2)}uY_R|N+yMRa zj23z(5b-rxm-YCLiRalJcB2O*;&7-N48u6+XX%bOdV>`|(O&FCa6YGHO4fgv)E(l&d6n1dW2m#sg6`Sg*aNZoH3Y1m@@$QBCJ5S{?)@L-ZoZBFi$ySivu?way4k(g zMN~NEDe1q>yrkcDPQR%2_;Gkk%AZ^_~v_ih{;q_7$L zk`OATZf|e@H&rL;hucf9{yP?yg7n#fwzq5f$sv8w3murcr3)W+@TCzbK4D5lP$pMx zO@}ZW8{Y_R(c8Zot@qN@;^L{`d4KDfnQN}1Q?!4WOc^8bI!sITB2G3L@76Rm2b+%; z89jUR=FYD)`S5`OO)%ugb3sj^luhrxd3s2(Kbs$`BqJk(ATbGv8>Y)HS+OF0&H!JJoVxTC55_H39hT*;Wd_ zhNCQIZb4}5Q?OD4GC0^jVlOEMe$&x2;fRWuZt(UVFHp6zwvPE28~bWnwCp{D+l&fi z8emcnYnXmONqpErHOv=Zh(X&)-2HenQH|>XK4pdxrNyKOsQ-elpPw*I?-u!(2qA#K zw*=zPp_Zl4%a?cA`~Fidx_Ex;(jfD(H`5iyY}xqRHD9_OwIMD6sac{n0gcaCDA_g(DrVR z(EPzDy6LZxXN^c@TZO~El=Y)g2rJRW0hMGGU0%B%6}wO2FMoUfTh~pvI>E!zGs(db|9q{cpJ?0c6>q_UdS%`(_FF zUh;pD*+=WbsbkSRzwgmZl8_N?k2C*1cMoM{WlaNv@c4M9(34rdii(N{($dm3%W2+_ za5Ht>((IhLaIQ8q(|D|Fu4)z%`DN?() zi6n@|{%DQkBmFn997@mKBCRkgdk=ehEf2{@ZNo~p1$}X|&XTKujLIw$&wUK>b zmuH1&u3n{DT|1wr#h!$DOT_7A`T?=a|47JV=i+TW1Ux_N-+vmqg2v;j_wfW$Fivip zoNTVS-%h8&gXG3G_`pl5scr`UX^%M;uJ0%f< zSFNn?N8BPt)oPMDjh7p<%x|%GV9;qh+&8(n9-+2a$zt#aqb8kYuX>z*td72@@`6}* z@w1Gm+paBkp@G~8T0jzqo;!z80;ES4`==eA2ee6Eo-Jc8pUV^=;$I{~iCn6L6Emo{ z$Hyel4!w}c1xBZ=GHso-=Gs+9O=CgIw8TUYHLsJ=^($$r_Re=Z+fMVTWq-- zNubGsoVJ=WbDoXy%YXm=Wl`{vYN=+LJBg2S@@uV=^1%qd?oW%ry{1UVd!F603(O z*7@Q<5!{9-4!HVGc29L79v==dVup z-OPF$X^Sg)2Mt4BbM|2hbGL+9p%*?V*2uOb)RKnceN_854;Ju*;JRTKq~c=LdGGDc{+nR2T@h~Z|9r`qSZ z@o#Lnc^!Ioo5s+VHFcKR2Pr7W|HoBs8>;95Gf@xX}N1n~TP}9oi;qq+f zfA>Y7$+)+2NKWm5(^bvPGF?Eh z$jR~hb#8e^(jbps4(ycVgOy43(XFUg1j2<~MXoW_ZlIhAJK|7zqElo;Kq0QV{YTNe zNb1XvY&DMkG6Ia#fCne&v@GruXZ zErtgqFCYk@xeU_=oWqb;tIO!}wAoUb5c|974X*Um;^?+>JEg%w3x=*tc9zA4Dpp5D z9`;SwUYl`(7!&BS;+@j)=J`QVz2#<5!oY{%&yI5ic=aqdaDP_w!JE)EKe_>OKP9q> zxL}(v5ubQ{-vpZ+ySEl&Uo~UYT1m28;%h_Dsa&w~I0ux{;2P@-@873H-j|zd|1hv= zL;(4N^yN(9$|sb0o}1G+=vtH}Z>q!2B5coq58@O!W?>+=MVuZi=qgg(z8!=kg!R8)d)`?Q^RFX_w6#YRBvZ~?HdqPWNX zh<6ET@cnO+Z}M)aX*#N zlfTP+McG|xJBk!tPP)J|UC#92)WBo$&TAL(`SP{CC(8q(1gtSGYZvHxUvniA%#{8z zDs3f=Z2~^{ILdW1&x$R&vH;WqQeIz4z+mRnM^m#mzM6ug7=A<74CtvF;$f(FTsFwrc-LE_KxB5V zEBM6)H`*7rcUrG-1q8{LPKzE9LJNlW(Ur-3y3+on34|<=_wn62cM{es8x6$YuE`5@ zvxaw3=cxKqhi&!*{$Opqv=*Uc^rOk9vg{!e#R1dV-9YjAxHVjEzPgBeK4te3EmZ&J z^5Y-q_OypPN8|L5Y@bfPQLpr+!%-F+cKBYEEyo49{R^3iyy~>GB)~AwdV@;?GB%lW zk>8$Y#gC1>@Y#5cHILXiI>w~iTPX&ZaG%E!wxh$QlCt|FRgrBZOsO~FBSBF%<0mZr+xl%-gxiq4wszvs zYo<+%?#hD6tLuKteIgfe931Bj!V4-Sd`{*~sFLtAy*&R{A!D77PxgMItYv6XJ84u? zlcJ9Yj&A7lv;MUEN>&I7^5{R;ZJuW(-Ev)R2}GbyG*%|5{2RQXWg+V~M2a3BQg+Ki zUs)dcTh?8-Wj6ZZqNHMh06k0^j+-QwsV&O_jK87Fe>7aWWH{9XFj ztz>WPicQ0i`|Z?Mu@XYqVAn&-PL++SlVxf%&`%h7&URqf<~8OKE&V3W1t1u|COK+} zsexS9G7X6(jBJ%GoKy>{>YO|V_JDdTzwkDT!Y++MMfzQ5BJ7PgKN!67g7ui-HGIYs zf8P&TG5TkA8i5M=rVhJ8alpzxW0Qexy7;hUJ{a7Ai3y?$t6x%)bx;AS)0LiiTKtkk zd%OOGKs?ZtTGweb0ruN|+ukMr@){^#is?V1)&S4Q0QdAOc)1QVVw zl{K201*<=|K8MyMffA)8zf-rlB4F4xx17VHl$5A94VDgukVL( ze3Y4T8YEO{j=EraUsv?CqTg!{iTq?9quH$n3#Hv;O4s!|+tH#~_PPr!Q?+cGuAk5F zt}h&2Rt8BxH+$F4jz2U1i6}>jB(`77u!$coA3DmieyaT@vX=SR^fQH65L%oxRI`=8 zvd_auMnpRY>aQmD3oOM96~P?$B22>bk_Dc;b_tLqa5*=7F%zk#>kiis*OkEN&1wep zXeNE0V3ky=hW&~suH1~$e_EbllwcKwTK7KWE%F72YAZg|x_TaULDprAMa+g%Q3?|` z!Q+LLAeA-?0gkQ=h-fHtp~#0YWWGcIHR6ZlvNjZEUD&UFRSDp`o-D>o0N|X0XUT$o zb(AfvF!T5PvYyWSzEKjh8r8{7y7%@~8ZY3_1*Rir+ovCaUhOW>SMmTM_Q-{qHF}yZ zRuT7Kbcab%Do&M{Ygwo6ts(QIB$F{%>Ga~11-7LH{g<`8{ z+RJaYsr<1|5Q|C(gl7-9RETS2{U8so{!2r)-R3tHnG~}KBL58sS?h4hxGFWP*BbfJ zC9ZQcVKW}4{xBVNJwWnkG?R)3xkYm`(&30p;Y_BQ?VqozJ;%d*JDmO?Kz<7lPM07IgRowOng#)uyt{vx&8N3 z_q#t}N$n}S7$XQ`_-+{Xk*WIX`tj+jk`8oG8p@=DxB0j0%@4ot(()WHzU6hiw0T>M0130=zb*@L zPI8^@*aTyY$Xi4X^X*tPm-r@O#Ndz`73HHuAu768OFuGKK>k;-WVtcQ1>rWOT27*)d zkn&rJjFh@zw`yv4!45eJHudw(7G&0nwWw`?{&I5jjXtyj8uXt*FCAFhjLR7}fDqPST zX!=QFdW-+1U-h-1I{#6e{AC#D<<*h(dk=+zfAKdRN?uu}8#aV&uzuh)nvc)u^?t-B z4t@eOT#RCbfI#bwE`@1nWd;mbv^l{AL0U)_Ydz!@_%D?d*L#4dGd(OyKrL@2y!^cu zUW!`2+{SdfzZ`hB`r+I0u=GvT{^HIPo%dUKF=|I6$BEN)ErGqdALkm0N@-O7jw7F+ zpP3L42R*aN%)IC1tVC{muEVk>m~+^nJvVg6eY^3B(88Z+`ri8eBTJw-w^NL;v(IUFsQ6jk2 zZ5J#-$-}*DVH^W#w5i1W#E;|`t}uN~otEl|M5g03u}lEtI>8kj{!b)=qpu&2^Q&GG z@7+a5pbHD`U>Ru~VyQtw~R)fHxFBdb6mQr(EOX5++ucfBEQd(4Y19l!9?0?5bf&jrOIg{mL5O3r?dmK}0J)`Lg#b(74`V=EQ8-<@-qlc{RrJTB>$I?S~u&3`>vx7fn9lz z@nwj2_I>IFS-D;LBdYR8mLE`S%Wt!z5YI{WiG2>_O(OC9u&9otq^Y+i+2HzZc;cOM z$&x!9_-bTN5Qc5e_KB_p=v<5ryKmgUJtlbQZeMbM(aAx4p?*o=-*-`}8k1ET=xb11ABVqU!b0?1-HEzNKZ=(rLN}9`7 zA-aF7q%a)Z6I+HTSih*0*X-|-aiYA8ioQKeu9f#>-rT#ih}KUrE1g5OdZ$GNilnfP z@$+MG9^&AD9TVhjZ>P%2G+@2gg~ZaeHX_r-ex&46v23BKn%%BTjXUUPNeGQk%=iWY zKP&+=5(hd}yluKR=8^5quCx>$4dQf+`#n?BYbT?|O;t-=AC9)(hgUl^Nxz>IHLM{0 zWM7^f7j>}de{$j_cUw2~f{2n+7S3$(tyV5Bj>x$f`$N4UW*+%v_-*oQj-7N6Y zfILoeVMhaiJ3LZ_f7!1Yyfl{bsP6B;?-SI@%zR<%lXCfbd9RM-dYL)5&p785YQr~0 z4|s4mI(qtVA3xHKl>VC$#W^nVr)ubhp9{}kwb z6v5ex;^xolYO$mkH!Sn0q&cSRZb(E#I~fAzUz;Y1xhgx0U=y4H0~}*#2*8URDWkfm zOA5TH_fO7jxczK2B09kyZ$gNln@#icYtIk`ecJk{1UOjVJCjD@+!olZgIMx(GlGA0 zw-0Rse404y?e0-hDG0}qCdqQjy0uU|7S7z@J2G$ZHU$=8B0b>*kfA(ZH_}^>-VTQAKyBg&7w$t$N@HGhu9cI*s&8tx? zOufw3=jcG_>;dix!twBUS$j8LllHF$t)AMaRl_89c>;AmY$7o+aS4jt2S1slpu#d= zOl6K8=}b4IvUHr<|BI=cL-?2y<1~8Rj8Lf0pIKFKcpF;^w<+C##0?G}k0eS(^=o?* z&3Q>4$Ipu9N&$lzwqZJDZ3ILf#ldiT?-@v!fSS9aZOwP*#=TOKQa*OVBtpbGa~Q~4 z*s@spu~qD?0uWBytHNJg%;0vXIyO8`h%v@7#+zQumFXLo{xjBPY$rbZ7;Do4a8zVv zVK7JZ*Ra;s)}8dpo6(zSs^dO&c3YKv-C~Kp&*F~>xt)&9#3=j4&ALCqkJpXi<0)xu ze!DxXshGT~gBp_r0g3XW^yfr5MjTQER|LqX6U?5Uhq7%ani0Pp6FiV!*Rif!u z!oYzWu-aQFaUbN}$2X$M1v#3I&>*?~b~lIHtMf+vfM+&Vci(;q7H#Q^F>I^RWt|o? z@24<59Zp<4QZZeyv{djozcAAB?zp+RIp?_#KWsA46f5sDi4?5*yH(jj7iN;G&_lc{ z;w``ThXS@S2fu7k1ev5okCmBi_51PxZB`0NB!72XB>%88`d$RLi)l5+`*XR6X;^Jw zI_>aH6*6;It#$0aJofX$st)0UCe%3KU!QMD?~HaGDH~i2cdCUl`n1T3R&(|;Cjo7$aT2|?5(OJe{k5s>PWu2wYBv# zQ`3yhn)|-K@>OrY4`P?NE=r@@0xS-WCygNu!$@ z4`;Of(ikN${d~=LIf6V9&@WttyIb#Fpy%2BgcT91E9IESodz#Pp87d7(qQEM?s2s&qif5Ok|Ni6DOhkSS#KXia~qaX8rQjHeM;`#BPAvlZIhPcFW*@6QEZpS z_m_@e`zKD1t0hsgEc38;Cv2^CwdeRKK7Bj`uY$Xz9|890wu2oaGtCR!FE%B8vq>u7 zuE=Vf=YOwbYcsGp5kS}H(*06^4)XH#XMl}~;V{RH7S)KNXa5a3@#J5ip`1GlA$D)6 zZaAL0{$o`va@tA>Kxpw#?%Pib&Qc?HXc1@*5%Jz3w}}6^_{qdhJEnh&iCD1;=h35K zpQDaLhLIrA*dVnM?f%q2N3gFd?aJw6mAeLRxW_m4*3Y+c$n5Snq}|{L@pp>~hQVfl zwgmdaENb${I%Pr4zk`a)ewqgUVW6j-psn>I!+OO4Z`9*w;<9M>tNd>7?ldAX#ZB_v zbCt+pYZ*O_^?LaMWw~vE-QpdO?CG|yPBkfou3e{);;jw6t?eViq(Ei+v-dA_Wl4u{ z@lEW*c!`%!*GhnodAFiJD@?*iSi?hQu|FwF$9-!MGMC_uN3U2Nb=08!zFCyKfTb_B zbg=i`uZE=p-_0$F1M@p|La=R9tbVKSnDBVqtJ)$r$H;UZb*gRiiNXsPF7S@u)SS4g ztn4E}ev@DC_Eg@d&Z5!|TA~&NU#ZDe*Z42u9cUK#WHN0Yy_eq)LG7^8_3BS1w8U2B zpI*+h>J80N7D17dYZ11?wryGzOt9cJ(pR(b>FP0g($Y_^e2+b}!9 z*ihE5txGm7F!)P`2{?-RZRK2gVGK6`-B=?eghe;#Y`OT1-!k=$QXC!~{o2^bu0=#t z`VxEZ;nq!%ifsQwRpDK!kN4yg7W%8h(cL5^wxfcF^PcOaoeY6HL7~sKOUN-b8t-$z zeN)-tTpP}fU73BWH`vbU$)o-h?U7Nr9giN7_xwo(fs?7ag$a;j!EfyX zL@x)|8^YZNqNdj6vYU`q9}8%OKeGvU;5#L77cR1B2DcENU+}iH^ktw=P_eS&aoZTb zwWB=KMl#bpC?|J?I@ft!UnTS>GIi({kRJrr%ijDG!OpF>!S=k(ZM${I+s(tSWehel z){9()CrQ3iRwsp^7QZA70+k3OHkg`2XM3%IyFtpCps7gi;wp)p+(k7^%H?BAsOkSh zDstujUn(;29a~#lOP8)ejhq6|qlEL^y>vn4arj-jluFKlf8*YPZ~no|&s$ntM_&pYG=Z1PVCk>_HNWBUhj zkg2B7wHit!hTLN#-0FN5uV23o^bPI4M^l~uR}ZqDG(m#U{2UxU+C1*T=4lOGwO>cCru2Wfv9wTB*Ame2Kv7EO5*i zdvSpn;!d;0o!N!%Si6thH*cD*JS*kNG%hARIA{x{Z;8Ar zTVmQwSf$9P{#rGoePI~hzGiIrk-z@%X=PqxqcH{r$;ikcg__1MQB!vU+N;EU%h+yG z>N)3iv#sd{%>0*myIulCjJW1oJsTRAvXoi?PWbAT}XU5$X3kB=Tao<4ha!&<`+FOzy{`By3tWMK)U%Z56{ zHz^=%wR(~Pcx)^rOjVcch%m>)B`ErtVPJ#z(G6}PYF|%JsL7Z^-iv`Ts)*)u$9*Ro z51N(KOv)n$=uKxW#kY3+-lB$Z;XbU72O4ROxs#pPIdNpku-67w9`y>f@$a8$xQn^@ zR|DVK=FSJ!vkBD+A3xriJ>0ks+zwAM6E?C+i1dXy;1Ad`AE+seT8GT?y}-FC_kXb~ zzE-Lu1iF{jR{Yj`d|+1A&DjJ${jL?%$!h*sqpz&KP*KOByvRSi8sl`J}$=B{eWXIFo?#)2Fnr`#!hJ5kQ)ThP`lF z3>BM%+9Q@-d+SR5!{ZoERj0+Dj0Jk-9l6Si6xud6tAVFaO-zIe3~N6|pnh9f=(xMN zN$h*cf4I*HsXbbm|MJ^vd#97bd}pp*`SD}Q`R?&b+n2&DH%AAtr~kf2K_OvHA8$QQ zd9RpASYr404r48Wzq9U2xQPkjM=BO^7)R8DKfEiI7#n?m<@`p*bm9UE^Q+qH6b3*!BTG1M~$$}_rp z=SVGxi&Jj+-9PA+FG?vM>*VV|#-yrBdLPybM62`#{qL^-<{UEIcjI@_L701 zfj>KLqNNpY&F9N{0eT^#B8jns0a}f5`O>CC|^-s z{k5VZ&Xb6YgoNbM)V`L=DO{&$W0RMck)i06MI8O6^mQLAWEutm*;7U6?O5=!*j;2j zcDD!W=sfF95>?yY^L5T5ei4KZJZTCx#aPM-Yx0+f0(l7Wg$tSG<*~k1z{c_U!XvXZ zbo)iUD3x%gS+MXgO_)Y>N5kH|b z5M>48R#@(5 zGrQdBGWC~l^S}8K} z=uY1e!QdRX$hbI$b9twj7{lE^&Plu<5(NohnfItkX*OtJbToK(_YGtkj*tD+=@d2U z;t~-?s>R>k-wONsvM0J1KNge2R#Q{sQNFmImv(;(2rp4Qd}#Ko{Wyb+{46k#SPqAo z_m~Z0j*gB-g7r~D-JS8sa2xzQxU5egsrQ z4>UAX0TFv(#KO+*7T%~|$n>xAA%@88naP_sWmLWahO~(v25(X~*YEw3%_)M5?ps*g zv^{DGq8wOpA)}^NwYBB@`0-NPgJokNH*L9Caf|WHYyk2gTWvzvw0cs@xlTVOd z{(0l;jEc@gP};1_=*&ARmp9g$yIZIKb&#DGoGqSOA$*D9r~vhTF{b?UTYYBlVQitr z0->Ck4Dnl=6#j9^fe5^58+Z(VHnuw_Adx6sZH+&u>as?qV>e~Td+6_8Q$VP3q;2<*h$D(dxoDHpI2Y&Xci@mT@gHn^q(IB_4T3Tl?DlE@ zEj~WA7jq9YaZbA^N z9j#Z)%P=0`m4vUMz^;ubGZ-qgJd`eysu67Q%YMg!qra=m+Hei{fK=**7E@3{$hA#kF~_uPzdTx~C9Po@I=j#E>}PxIJpt%vi^ajFs6+Vy!Cwi|F8Ub3#=zs0b! zRQGGrqXF*FeAU@}TM8;A`n||Y3{mLD^os_`?9)l```zzxjI1RwxzqO7;?B^EAxqbA zpvZdb8pNFlG|lSG$kg*oD%0mqn=CpOjyJ87;t;4Tuy0KH(G`*P_a6uTL_jatZXg`g z1%|BKwf*s^1Jc+axbeLHeEj5>OpRj79S$9^ck^GD_EP#gSF@roeoF@WGn86A`qCYJ zBs}$Us}_y+#Q08Vvmm$T8zQh(AF=y;RK&z3tmZyCYc;nBDf|~@yi^dUQzq$D?;5{1 zipWg4Q2$j-HxX_3gQRU%K@e6FK3isu3N5 z`9pVi_&$hZ48j&M$qZ-Rw>fX!!c)onz-L7l#(%I=uR-x|hGBI!T{7boT3Av6W5O0kt->4Dy`}|Bf*i(dTm(O|j zwzef@*`-CzTRiP^g1OE3wiRY(y2hA@4i#!f>P7}T$XI-uie8T${|>7;hd|mkkHZb> zqMv##AupJ&w*wcz!c-yahfAHXK6BasX_t-CrU@&6;lbIC#3m_Sq(~ddJZ=Qo0s&(Y zkF;nMYxAugmUTyBzY@+XCg3RK?BECu6?8lJv9WH`@OQ|9Z6tZ%lI__VJRwJhi`z~g zoS6Bl^YA*{e+yx$@pGyHZqO`aW9Lq?wY4oh!MtJxesELzS}pdEr8T}dwU;u zP$(2V+yS$)vBl-)atauiKzs1sp7WqEz-p&AiE5X%N1%|95Uz%ctgIwb+>2oCTgehr(A7DFDoFE)KfpIhJI$_a4(9<;H31bR zqZPC{Pu1{;YAwV(I@f?&kU`R4UXlzWbaB&B*Qog{HK)2~j8RilQ-ip3M>VScR{G5{ z_SVOnY;f)3;|DHtNt1RZcO^%hEVDHj3c`u#CkxuJU(+631+LMCT?Y%|z0cvrgLl)L z+3gB0@V$><`Zgps^%UW?{WRUH8T*^{Qd<%`d5)%DEo$!zl8b2tmzOl8=7jdc*+D12 zHyi`1Td)lUKN%pa8Ce5wGWT75OCH)<|CB(Z&$xRdF%WcPNljTnAAZxiK0VfvL_>QC z4S1-MD+)zVA_Lg6TZBc5I|tWa#L7ntx0QpW1zhrSg?;Y8`F~|p5Pptn(7VZQFvmHRi{JU|qG4{CL$hC=|)JoM=6bor|VGfev?2(tRzb#5pzJXhQ z1_HdIK^#A#D|x$8qVt}w@m3E5Y;kT$=OZIoeKh7v74DjC56>%{=NbQya8^!X3i`{WKt}-%2n0_Syrt z@Sdj#wfmg4Ve8lBHhq74OqPkzY+yu%Y(srdcjgg$@JH~0s3mLk8%g-nDsmmn6dxE>^ zUof^oLq`{~vSOE*oLoasw6ZP?%qlQtO+|6wIxnAdQ!oKt?hf&7%vlQT>4|(F{kx(< zANpc;G8Ja{!*=@(7$`wUON;-O4QME~W6}$hg@uLjDJhYbSoGLt)#hde&a18=FQsOa0zpVvBX{5L+%oBB**Sc2=IUj>Ife)O`!66&dy z1+Zi{ZN}SJ*5(;OH)FtIR6}LK1uFPSMs@taD7X9@cw@$?5;_{b2#PM+!~*l$JvwTe zn`2+;%OJaGGgKoVH~(T$7h2ANqC<+06<@`CB&+=bc$>rmr2(OEdpYc&X$DK ze0K51k|#Do)#g=)*i)99$k%yv+#lsvuOgLt^|%-*Y$?|4d?Udxfa2xT%_qoj<~Omu zzu_eL7u1mME>=!HVwPy_+Ul&d7tDLMCHyWREaKev%63>^xg-(8&5S!(p6xL2dMT0O zM}L)ojet@*1K{UyxjY69e}sqc;pHtb5S!*oUdjM=dPAE2eGfZDxl1IbKf+L6i%vvAeQgAcd(>cvb~owRUu%TH!9zqtG}+eMP-iollg1{eH0oWJSdZvpfHq->W#vQOr8c z#trNrTcqmBnVY;$;XAj^pY#2Dmo+()k+dY4BfL=ASM1+GjRc9cWC;356!bM&zXb7G3UQ$CdSZ{v!lb)y!j-G2YIyZlf|1-Ur+ z+$3>%zEFB>C@%B`|4Z#D>#GA2HdqD>+KvIp|(mSy@pVBvM{}oHsb` z&B7pP+PW71DG2SlJtdhg?WL9S2w5ln?b|nM2qZ5V8ok|YoSXz#{-kvjFP>{1kxYew z&zqHX1y(@+la9?zXb`U?;KHXjQ#NhcMS~mv`MuQ8)>h?BfacR4xU_@61WlH5*cupx zx+@~Wo(jvz+GC6ijEtUjJP85LU!~#`vsW^kJ~&_`C!S9`?rgNw+;b&_<{tG^K)KRe z=oHZaX3;-A^GBB9gx0h5{)JajVQoHdQ7~x@F$BsktyyQ~8-YPFUBBK`=Q$M#o@<(% zyy0cJW##`mtX_80_$4*)rEthK0{)WPjXMH{O=|}pc&xg{0vUqU#liTraey$Wtxay+ zI_lB21SAU~gq=QX@XDs@Xt`Bdj>4Nn`w=usd*`MxC%=NVcBN&pRhPD@K& zehC&Al*+EXk#d}=y*@oXO?kh}{HyRRR%@qgSy~q@b4u!mUu4L?CwH5N=az^_{77yb z$ejOnU*(1?miy?zweZBsx5UMh2a5{}%O+KWQS>ByBqD%u0N5hJ{C;5L=n9RRnwpCE z9y>-618 z{E3IOkG5-AJ#8k!gG(@(oH6*b9>vZU*v$JBu}$D@yhV13=W^rRb#_)?XP*KCzpe=^ zx(xd0isy2HYJnSly0cY6l7jAEIX=I7=RlRbAV4tEV4?s|mgQejV+kFNHb+b;f9$&Y zs8kQPOw1`LD0+wT1P)>;@8XY)a&xn(C@W_d6cGLS^M`hRcwiu~x>_PRTlMd}I*E1P zTABuT(Ao)LUx4pIt>^;}*uw*ezB6CedU8fynk?M-Jx;|U!A?_hJ7xdipw#cojoxIH zo}ONBnQ#FZ-)=QNTo0{-Q$95GrC!a~+7pDSX zYs~Kn(a}Y;WQ{ZzUCr11RUfIT(Xf_`+eIhD&licvUsHUZfw?O}&PY{<_)f&(GvYIE zS(N%mVYrrMC}~lTO*rwB^e=A^bNn%0tBAKy;Ol_C`9kzw_47KH1;h?c3OTk54~qPY z!C<6M4rZ-J;k5pRZuf?^?rBL+Stxc*x~#_glLLsmU#4IWor^?))8J&k8+ zRg9K$+WH5iMFuXx=ItSEEiDzGY)wo|xNc2|d5(kFJQ4~>x(xK?1r%RB-i79wADW*2 zgH}(jL7D6vTir{=pDB<3@PQ-#DC5&7`$Ym+=U@2`R*19-G|)XE4u5OOi;v%!kHl%9 zkE?3-_3^>a(CQ#%{7s8XN=a$=mH;S9KosWW=a2q_u)>J2+ha~V;b z{}|1t31H94XRAVcTUj5ob>p?b@k8zu-dhE{ROBr??053*%1!QJDPJGrh!BL#_5R~j zR#72Ed2T&PN=hODjgbN?6H_t)qNRpE+CbB%KG3B%mm~vl9su=0qw&5=g!JKhc~B5e zXjm8yHREyAKow8?DKn;}W$`yHphmsj|E<5#z$vL>yqLrt99e(kxB=&ZQY*(Jy&ogJ z1~U^AFNecf)T6u-r&2zDE?iKOPYl{oCytz0nk*lSxGH8!zR+wQoxRZ7|6O<1G4{FI zbsqN;4etM}sWEM<>X^++$Nr?IHlXq4k&k!})-*FAsj#|ge|aX`g`+}<@Rwe!Se5F1yb@9nSDK#9qC(3;3@$=KkoeW zR_n_kfl9l*Cu!!-@~&8~dk1UTAxe3cl~??1B=VtK*8Fhoc<}k6{_77HKx6{am+qL< z>;H!0I{Yz%V&b^VPi__G^)M45UV8As*O^0SW-MULxK#glHp}x# zzalEjzp3!?b_OkqSA|r*)W!lxGylD;1Xo0aOiY+|%{aQ9wYRp)7a5Wr|LadM&>rPC zv4!crYO@9!{4msfS1-*zZ)srAc5hOxbFX=8>bHCELphTH-74h}3q3*nvP&L4_c_Ce zz(kQMA0AZu42EAoK-tf)_I7WM;Sc(L3!R0AlLH=pgD+94zVC%Sq3nk7cfv{`@dkMc zpc-Sh{+r2g@~xTX-x5;fMe1)zco-~Nn!{i+Yf7=jndrsOjFm-+_)C%Xy0?Z3yuaK> ze>W12I{YICDp&~H3SW;R#h+|~ZOAfB#SXl&4AnSLY#c08Lp9>YCVy9aVn{}%dC~^- z?nB^Pae8?3ddPT8_04IVLt%!?oxkO(1h4L;-$$eOL$1z46KMN)O~pR=x7P{BQ0q3b zc{ytOd*{7UKb!Sw5A0kEv3b})Lxw~XaZWsb-yh7mo40|aCrQAbXo5uGr$KFXbz1Kq zk0=YD8W|Zygpn~$)b+g(y~m$%{PX|}b`VYE3gi=P27J8`lspDKEzwiRvd|8%r`_bE zxqbNR)hjNJ7@)M-MID?$dN6@pLEsA-e-NE_iEw|rvB@lPq-<_FF0HIgRBsADt!`8# zRp(%rdw>TS{xr^6FyDQX;epw@gCjlGXCQV#DZW_H3KudkfjtIV?}~$K7*CB5I(b1KW|YWXn={sLhAX zTB~Fa&=mwE2adK{P1cLez2RSW5oqGDb%W z;u`0Vj|@ht#N^~a8zFk4r)QwQ8E(^(n6ynSLtzm(qmDjqL|txdY?!D>vpf6#{PBa1 zceHmIm-uQkzH8v>zq`<*Zv@NRHB|^Y&^0v3VFsb6o#00DfGB?2JYB3Z@e{S5f1k&(m|m6d-5aF5}& z2V!ESv)9~92V0T@s42V{+Q9);=ohTs4@;&^IrSx&8#r2{ym$XT0Ysar!%0U~5BELI za`QfQVFQlhAWM;A>sg*&JFI%R(RbVGPsXy)p9UmSyz3Gxt4Ww%U2uh>E3VU(K|t(a zA$?eBDhTOR{MS{6%aT>A%5wqpapBC|LC4CgxomB1Iqt|>zIGYReR#!iyQe*Qa3$Y^ z(uAOH?EZ38e};624K`Nh&VSrab^7YHc*#$5fgD`+WJKg19D}lP-*&QK1t3oC;L zsFXMo6^&pQT54Z=BpMULNELNpSl)o}dzL)4(O`brZudHq{E*RX&*f9YhutNr*%U6& zlZ#&6UZC=ZPj`r~*0I6gQJ*%Nh`S#w1)bY7ZE1v8#khX zBz2D~sQcR3=xA9{69D#C(jNFlPkV%_npzad?~;@6m)y>93FdS)*?s;E$X{_1fL1G(*ojc_tqCI+NTh`nab0^m{(i-x$IupV%Cxv(wSjWq z#xNQF!J4J&(M}TjWBZmvChs?jx04-39gRb?1#%YImzu5nhr6?P0fAaZU>}%V;&Hl6 zWx#v%5eDFB!uouJJR8`sv@u;TZXDoz-W^IyNl`O1zYD@y?tTwAh4;y{*XyNDnu5hg zW4g^rEO>Z$U@n7g)N`2&A~wGP2UPJ;Rm9b+@cLWezN)A6VBJ8t19;A+FI|!sOlUGN zG*k~|ak_C^;m9d)VkP?8b#g*|L&MxJUzEjQ`#u)%Xf6`TPzov_>2EIx+WK-Zbqimm zq6`fgnwy*Bub>F_>P1pgTOy^eBuR0&Rd4!{a26cfOt{^LNP9Nksh*2)Yr@G5A1=xY z8CD9Bc)8vIqEXj|^94&j$MTWsuI-EXFM{^A#v~P1!wa*cqv60v0ab=2zRnH}H5c=6 zG*(Go2eQBF!{nPJ!P@?{uDtise<$Bi3D>3lVx82%{n-7A<${2!1HRwtc>Ciucwms{ zQ~9OM#+T_nkc*9oz;a?qYU2q-94==~0(2@1y5>ePw*-o03ZLX^N5;s#_*7i0&)+aY z8E+a0R`#9qGKjy7g>LTdTc&~g;%`4EYH9&BrZnmm-9>mfA?ol3Gc%L_+v}F~f55j9 z%MNGNK7eJEI8RG0EiGArjJL)q$W45Efx2O`0FBSf&Jvy?qwGLJ_ubAg$aGw#4m~zT z?|wpIG85%F@VEwykst+JR76prorV0pa=1PW)5_KOxF+ytpQ);Q=nXNX`R1IRwBK-< zYYf7B$4boF3Mb=1kBUT0Mb6%tJU9RH;bsPt5HaS`tB=`pw_%r&6&h-%Ne zm^YF|Icwp)+o!zt&lH)7iMN%Nl^?BDRaWNI)J%N7a5|TEqmatoA?M@cYfhu?c$n#M z0h|50TT8+Q9C-foc_T$r)6el^ubSLT=Kkt_-&Tow-QTqEWRH={`*eqi^-`5{+?#|- z(@4%ZGO;9TKWq0SaU@v!ATGl1@~sn};$VO5eS$z?(pDt^u~hPCDl03+ZOyvCRq_i? zPEN+9HepMjpLN8N09%^7zq!o7+7R~?&dl-O9KXvUBt!|CrhcCG>JI~%nMUqxiSDOq zWp{Wz3z(uIkgvf7YM4JF{r1v>gM;~`-|EDIA`uQyA0j3u<{ABOm&@-gFXU|DksFxH z6GY12)sZv-!~%H`B!QB>g-puG5WLFpii+yLX2n_bBc-75kTeQD)h2;sK`L>4A~(U2 zPR4UHMdajMS5fMl~r+ zcok&y)0iX27k%h(B?!*JEjuBAt$2nZ*qyISdv3x^?|(Fs<$llBc0zGta0V5>NS#)6 zOl4YOg+dX7!o0lHVBE`Q`@nZAZFl$kKtMC^_R6LvZ|Dh91@gZr^LrZ`wm498^_|zc zq^#`8lf=kI)SP)yLL*!K?O*bbQqEU+#>G)|<#%t?EES1kRwow_ReKO`Mg_yxSI-_d zPWZ8+L(ZGTP>&z$(n@xA`6Y#w<{ybwoN(!8-Ij%T!}$udi|3IJ=2lzkk zc-lszwFIT@i=48CK;xiarKL3beT*e+Fe)x4=Gr%r#32Q({g=VTyf%ksXPAT?+862* zoVDjIcT2_P69`Xy#dv3gVV6J+94L`7C`v|@&S}+f*lU#Abpzn*TtpSPl0wYi-U*lW z5>DIVy>K>zyq(YgK3NPFP^)k=Ck=&R^TFA~+)3w)6e=5W6n!6le(8kZ}U<%rR}6 z#C+fIjiHl!6!xkrptY{dT}EN)tDtzBHn*OJ@=RA6yCSE-}vIzfJN0Cxtr$eMMS$n#Y&H`#@Gkb8MKx5PbD!)I1^xeC6 zP_^Aif@}V5jmFo=8tJ)&vv1V#{OW{!JZa)i%{fXD&^Y5vV>PY(x5C2aU;?t;HbzSb z0uh7dl9jq+XF_amR|qZmi@cg2Gd&LjFW0nlk%el54ZJqt3rE*KPDXntgB(z!&-)bC zc{q1mbbG`;KSP?y@a;-b=lLp6<2*dq=x4(_Uk2CGFPIhMryic)P z`&Wr-7+n3;ShAB?f9q1al3-29naf{}kA}K@+x)NLC*UgSEb;dG zx`L8Yh+fl$e<%v$0(L@F_9WX3W8~2>BmA_^(M%gPZEBZf8ENiMd=?SMTD$9jG>EXD z;o$b@S{FWIWb=F5Cgx=mh&h*V5mOHqm4NxAbNyFt(g=}20M{{U$z<-0lo7NW%rB5v zJW87^UYJ%`#uEll($V6c$eh Date: Fri, 4 Oct 2024 02:06:52 -0500 Subject: [PATCH 082/167] Automatic changelog generation for PR #3382 [ci skip] --- html/changelogs/AutoChangeLog-pr-3382.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3382.yml diff --git a/html/changelogs/AutoChangeLog-pr-3382.yml b/html/changelogs/AutoChangeLog-pr-3382.yml new file mode 100644 index 000000000000..eedebb40d990 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3382.yml @@ -0,0 +1,7 @@ +author: Gristlebee, Rye-Rice, INFRARED_BARON +changes: + - {rscadd: Inteq Gygax and mech charges} + - {rscadd: Paladin shield backlash} + - {bugfix: Durand shield blocking all projectiles} + - {imageadd: Inteq Gygax sprites} +delete-after: true From 8251d7e32a4250dd21b6680071a0d7dd135afbc4 Mon Sep 17 00:00:00 2001 From: MemeSnorfer <116136632+MemeSnorfer@users.noreply.github.com> Date: Thu, 3 Oct 2024 23:09:35 -0700 Subject: [PATCH 083/167] Three More Elzu Horns (#3476) ## About The Pull Request Adds three more options for Elzuose horns. Cervid, Prong, and Brow. Images: ![image](https://github.com/user-attachments/assets/24f98d74-f64b-4b8d-8cab-9eb878c30646) ![image](https://github.com/user-attachments/assets/8e52c0ae-e7ee-4d34-82cd-35401a9dcae7) ![image](https://github.com/user-attachments/assets/5f1dfeab-7683-4055-8e1c-895b12dce505) ![image](https://github.com/user-attachments/assets/3008c58f-6022-4c4f-b840-7a3088dd8b6d) ## Why It's Good For The Game More customization options for the limited list of existing Elzuose horns. Must be good :P ## Changelog :cl: add: Three new Elzuose horn types. Cervid, Prong, and Brow /:cl: --- .../new_player/sprite_accessories/elzuose.dm | 12 ++++++++++++ icons/mob/ethereal_parts.dmi | Bin 8513 -> 9892 bytes 2 files changed, 12 insertions(+) diff --git a/code/modules/mob/dead/new_player/sprite_accessories/elzuose.dm b/code/modules/mob/dead/new_player/sprite_accessories/elzuose.dm index 58317b5ab91a..9a15f0270fdf 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/elzuose.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/elzuose.dm @@ -37,6 +37,18 @@ name = "Sharp" icon_state = "sharp" +/datum/sprite_accessory/elzu_horns/cervid + name = "Cervid" + icon_state = "cervid" + +/datum/sprite_accessory/elzu_horns/prong + name = "Prong" + icon_state = "prong" + +/datum/sprite_accessory/elzu_horns/brow + name = "Brow" + icon_state = "brow" + //Start tails /datum/sprite_accessory/tails/elzu diff --git a/icons/mob/ethereal_parts.dmi b/icons/mob/ethereal_parts.dmi index 14e0c51037fb5161bc50b07c6c399b4cb5606c2f..c5d0c9b45f781cd50ef77083047ead224030ef2b 100644 GIT binary patch literal 9892 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 From 63a4c7333a1bcf22e925df6dc207dfb0151a6bbd Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 4 Oct 2024 02:20:03 -0500 Subject: [PATCH 084/167] Automatic changelog generation for PR #3476 [ci skip] --- html/changelogs/AutoChangeLog-pr-3476.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3476.yml diff --git a/html/changelogs/AutoChangeLog-pr-3476.yml b/html/changelogs/AutoChangeLog-pr-3476.yml new file mode 100644 index 000000000000..51594996de27 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3476.yml @@ -0,0 +1,4 @@ +author: MemeSnorfer +changes: + - {rscadd: 'Three new Elzuose horn types. Cervid, Prong, and Brow'} +delete-after: true From 66f8417e54311817bd11577424e349fdf920594f Mon Sep 17 00:00:00 2001 From: Jedi-Toothpaste <53096233+Jedi-Toothpaste@users.noreply.github.com> Date: Fri, 4 Oct 2024 08:49:02 +0100 Subject: [PATCH 085/167] air alarms and more minor valor tweaks (#3452) ## About The Pull Request Fixes a few outlasting issues with the Valor that I forgot from the previous pass. - Namely, adding air alarms and scrubbers to each room where applicable. ![image](https://github.com/user-attachments/assets/ebaba7a1-7f11-45b2-b195-13b367bd632d) - Adding intercoms to High-Traffic Areas - Adding Firelocks under the Cargo Blast Doors. - Adds a Medical Webbing to the HC's Locker, since they don't spawn with one. Also, finally, FINALLY FIXES the WORST part of the Valor. This being the security laptop in the way of the windoor in the armoury. THIS GAME BREAKING FEATURE has FINALLY been fixed. ![image](https://github.com/user-attachments/assets/23f9ddbf-6c72-45f4-9024-dc74ce366c7d) ## Why It's Good For The Game Having intercoms around the high traffic areas, hangar, surgery, mess should be helpful. Crew on the Valor naturally congregate in the Cargo Bay while patients generally gather outside of Surgery. Having a full scrubber and vent network with Air Alarms is a no brainer, again. The firelock change was a request for better RP, as Valor crews tend to like opening the blast doors as if they're opening the way for the Subshuttle to land, I find this to be great fun, and I believe the Ship Designers in-universe would put in a secondary saefty measure incase the holofield fails. - Also people can get crushed in the doors if you trip the fire alarm, this is funny. ## Changelog :cl: add: Added extra intercoms in high traffic areas on the Valor Class add: Added Firelocks underneath the Cargo-Bay Doors on the Valor Class add: Air Alarms, Scrubbers and Vents to every applicable room /:cl: --- _maps/shuttles/inteq/inteq_valor.dmm | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/_maps/shuttles/inteq/inteq_valor.dmm b/_maps/shuttles/inteq/inteq_valor.dmm index dac3ac7a0ebb..3f709a261b15 100644 --- a/_maps/shuttles/inteq/inteq_valor.dmm +++ b/_maps/shuttles/inteq/inteq_valor.dmm @@ -149,6 +149,9 @@ }, /obj/structure/cable, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plasteel/tech/grid, /area/ship/cargo) "bR" = ( @@ -1707,6 +1710,9 @@ /obj/structure/cable{ icon_state = "2-4" }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) "pt" = ( @@ -1971,6 +1977,9 @@ /obj/structure/cable{ icon_state = "1-8" }, +/obj/structure/cable{ + icon_state = "1-4" + }, /turf/open/floor/plasteel/dark, /area/ship/medical/surgery) "rX" = ( @@ -2272,10 +2281,6 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, -/obj/machinery/light_switch{ - dir = 1; - pixel_y = -20 - }, /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/port) "tZ" = ( @@ -4281,6 +4286,12 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 8 }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plasteel/patterned, /area/ship/cargo) "Nh" = ( From e5ffcaa49f4a46af520487d7e63f13d6fc594c57 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 4 Oct 2024 03:00:05 -0500 Subject: [PATCH 086/167] Automatic changelog generation for PR #3452 [ci skip] --- html/changelogs/AutoChangeLog-pr-3452.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3452.yml diff --git a/html/changelogs/AutoChangeLog-pr-3452.yml b/html/changelogs/AutoChangeLog-pr-3452.yml new file mode 100644 index 000000000000..227901e38429 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3452.yml @@ -0,0 +1,6 @@ +author: Jedi-Toothpaste +changes: + - {rscadd: Added extra intercoms in high traffic areas on the Valor Class} + - {rscadd: Added Firelocks underneath the Cargo-Bay Doors on the Valor Class} + - {rscadd: 'Air Alarms, Scrubbers and Vents to every applicable room'} +delete-after: true From 03064786929daed1cad9412745a82a44b0a0106e Mon Sep 17 00:00:00 2001 From: zimon9 <122945887+zimon9@users.noreply.github.com> Date: Fri, 4 Oct 2024 05:31:54 -0400 Subject: [PATCH 087/167] Minor Colossus Filter Fix (#3442) ## About The Pull Request Swaps the positions of the filters on the Colossus so that oxygen is filtered to the oxygen tank, and nitrogen is filtered into the nitrogen tank. ![image](https://github.com/user-attachments/assets/253af707-0d9d-4b29-9369-bae5d3ac2c64) ## Why It's Good For The Game I know that a rework for the Colossus is in progress, but I felt that a minor fix wouldn't hurt, in the meantime. This prevents pure tanks from being contaminated with gasses that are not supposed to be there, messing up the overall gas mix composition of the air. ## Changelog :cl: fix: fixed the waste and scrubber gas reclamation filters on the colossus /:cl: --- _maps/shuttles/inteq/inteq_colossus.dmm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/_maps/shuttles/inteq/inteq_colossus.dmm b/_maps/shuttles/inteq/inteq_colossus.dmm index f19c734f9d83..482d6999b28c 100644 --- a/_maps/shuttles/inteq/inteq_colossus.dmm +++ b/_maps/shuttles/inteq/inteq_colossus.dmm @@ -3032,9 +3032,6 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2{ - dir = 1 - }, /obj/machinery/power/terminal{ dir = 4 }, @@ -3045,6 +3042,9 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/dark/visible/layer5, /obj/machinery/atmospherics/pipe/simple/orange/hidden/layer1, +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/o2{ + dir = 1 + }, /turf/open/floor/plasteel/tech, /area/ship/engineering) "HD" = ( @@ -3975,13 +3975,13 @@ /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/components/trinary/filter/atmos/o2, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/dark/visible/layer5, /obj/machinery/atmospherics/pipe/simple/orange/hidden/layer1, +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2, /turf/open/floor/plasteel/tech, /area/ship/engineering) "Sg" = ( From 49ecdce8fa42c638be71262da93a113ac8ec0f55 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 4 Oct 2024 04:42:45 -0500 Subject: [PATCH 088/167] Automatic changelog generation for PR #3442 [ci skip] --- html/changelogs/AutoChangeLog-pr-3442.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3442.yml diff --git a/html/changelogs/AutoChangeLog-pr-3442.yml b/html/changelogs/AutoChangeLog-pr-3442.yml new file mode 100644 index 000000000000..93368cdd5e5a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3442.yml @@ -0,0 +1,4 @@ +author: zimon9 +changes: + - {bugfix: fixed the waste and scrubber gas reclamation filters on the colossus} +delete-after: true From f3fd10a0a4cc6a7a46e9d24236226747da4912ce Mon Sep 17 00:00:00 2001 From: HelmCrab <90987989+Thera-Pissed@users.noreply.github.com> Date: Fri, 4 Oct 2024 15:49:09 -0500 Subject: [PATCH 089/167] TGUI pipe dispenser (#3464) ## About The Pull Request Implements a tweaked UI from rapid pipe dispensers for normal (obj/machinery/pipedispenser) dispensers Pipe dispensers now have a 5ms delay on prints and can make disposals and transport tubes. Removes dispenser/disposals and dispenser/transport because they're redundant now. ![image](https://github.com/user-attachments/assets/73a9bd7a-7d5d-49d2-a8f2-3313350ee4c8) updates text2path regex to 115 from 117 updates non-bitwise << uses to 262 from 266 ## Why It's Good For The Game The old UI sucks and is laggy and bad. ## Changelog :cl: add: pipe dispenser UI is now similar to rapid pipe dispenser UI. /:cl: --------- Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> --- .../independent/independent_junker.dmm | 2 +- check_regex.yaml | 4 +- code/game/machinery/pipe/pipe_dispenser.dm | 338 +++++++++--------- .../packages/tgui/interfaces/PipeDispenser.js | 193 ++++++++++ 4 files changed, 362 insertions(+), 175 deletions(-) create mode 100644 tgui/packages/tgui/interfaces/PipeDispenser.js diff --git a/_maps/shuttles/independent/independent_junker.dmm b/_maps/shuttles/independent/independent_junker.dmm index 7819d04ec1c2..0ae98ef37fe2 100644 --- a/_maps/shuttles/independent/independent_junker.dmm +++ b/_maps/shuttles/independent/independent_junker.dmm @@ -2284,7 +2284,6 @@ /turf/closed/wall/r_wall, /area/ship/maintenance/port) "Ro" = ( -/obj/machinery/pipedispenser/disposal, /obj/item/reagent_containers/food/drinks/mug/tea{ pixel_y = 8; pixel_x = -7 @@ -2305,6 +2304,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 }, +/obj/machinery/pipedispenser, /turf/open/floor/plating, /area/ship/maintenance/central) "RQ" = ( diff --git a/check_regex.yaml b/check_regex.yaml index eadd642f0676..41174bd9aa22 100644 --- a/check_regex.yaml +++ b/check_regex.yaml @@ -31,14 +31,14 @@ standards: - exactly: [4, "/mob text paths", '"/mob'] - exactly: [42, "/obj text paths", '"/obj'] - exactly: [0, "/turf text paths", '"/turf'] - - exactly: [117, "text2path uses", "text2path"] + - exactly: [115, "text2path uses", "text2path"] - exactly: [18, "world<< uses", 'world[ \t]*<<'] - exactly: [0, "world.log<< uses", 'world.log[ \t]*<<'] - exactly: [ - 266, + 262, "non-bitwise << uses", '(?--[piping_layer]++
    " - - var/recipes = GLOB.atmos_pipe_recipes - - for(var/category in recipes) - var/list/cat_recipes = recipes[category] - dat += "[category]:
      " - - for(var/i in cat_recipes) - var/datum/pipe_info/I = i - dat += I.Render(src) - - dat += "
    " - - user << browse("[src][dat]", "window=pipedispenser") - onclose(user, "pipedispenser") - return - -/obj/machinery/pipedispenser/Topic(href, href_list) - if(..()) - return 1 - var/mob/living/L = usr - if(!anchored || (istype(L) && !(L.mobility_flags & MOBILITY_UI)) || usr.stat != CONSCIOUS || HAS_TRAIT(usr, TRAIT_HANDS_BLOCKED) || !in_range(loc, usr)) - usr << browse(null, "window=pipedispenser") - return 1 - usr.set_machine(src) - add_fingerprint(usr) - if(href_list["makepipe"]) - if(wait < world.time) - var/p_type = text2path(href_list["makepipe"]) - if (!verify_recipe(GLOB.atmos_pipe_recipes, p_type)) - return - var/p_dir = text2num(href_list["dir"]) - var/obj/item/pipe/P = new (loc, p_type, p_dir) - P.setPipingLayer(piping_layer) - P.add_fingerprint(usr) - wait = world.time + 10 - if(href_list["makemeter"]) - if(wait < world.time) - new /obj/item/pipe_meter(loc) - wait = world.time + 15 - if(href_list["layer_up"]) - piping_layer = clamp(++piping_layer, PIPING_LAYER_MIN, PIPING_LAYER_MAX) - if(href_list["layer_down"]) - piping_layer = clamp(--piping_layer, PIPING_LAYER_MIN, PIPING_LAYER_MAX) - return + if(.) + return + + if(!usr.canUseTopic(src, BE_CLOSE)) + return + switch(action) + if("color") + paint_color = params["paint_color"] + if("category") + category = text2num(params["category"]) + switch(category) + if(DISPOSALS_CATEGORY) + recipe = first_disposal + if(ATMOS_CATEGORY) + recipe = first_atmos + if(TRANSIT_CATEGORY) + recipe = first_transit + p_dir = NORTH + if("print") + make_pipe() + if("piping_layer") + piping_layer = text2num(params["piping_layer"]) + if("ducting_layer") + ducting_layer = text2num(params["ducting_layer"]) + if("pipe_type") + var/static/list/recipes + if(!recipes) + recipes = GLOB.disposal_pipe_recipes + GLOB.atmos_pipe_recipes + GLOB.transit_tube_recipes + recipe = recipes[params["category"]][text2num(params["pipe_type"])] + p_dir = NORTH + if("setdir") + p_dir = text2dir(params["dir"]) + p_flipped = text2num(params["flipped"]) + return TRUE /obj/machinery/pipedispenser/attackby(obj/item/W, mob/user, params) add_fingerprint(user) @@ -70,15 +125,6 @@ else return ..() -/obj/machinery/pipedispenser/proc/verify_recipe(recipes, path) - for(var/category in recipes) - var/list/cat_recipes = recipes[category] - for(var/i in cat_recipes) - var/datum/pipe_info/info = i - if (path == info.id) - return TRUE - return FALSE - /obj/machinery/pipedispenser/wrench_act(mob/living/user, obj/item/I) ..() if(default_unfasten_wrench(user, I, 40)) @@ -96,129 +142,77 @@ default_deconstruction_crowbar(I) return TRUE -/obj/machinery/pipedispenser/disposal - name = "disposal pipe dispenser" - icon = 'icons/obj/stationobjs.dmi' - icon_state = "pipe_d" - desc = "Dispenses pipes that will ultimately be used to move trash around." - density = TRUE - - //Allow you to drag-drop disposal pipes and transit tubes into it -/obj/machinery/pipedispenser/disposal/MouseDrop_T(obj/structure/pipe, mob/usr) - if(!usr.incapacitated()) +/obj/machinery/pipedispenser/MouseDrop_T(obj/structure/pipe, mob/usr) + if(usr.incapacitated()) return - if (!istype(pipe, /obj/structure/disposalconstruct) && !istype(pipe, /obj/structure/c_transit_tube) && !istype(pipe, /obj/structure/c_transit_tube_pod)) + if(!istype(pipe, /obj/structure/disposalconstruct) && !istype(pipe, /obj/structure/c_transit_tube) && !istype(pipe, /obj/structure/c_transit_tube_pod)) return - if (get_dist(usr, src) > 1 || get_dist(src,pipe) > 1) + if(get_dist(usr, src) > 1 || get_dist(src,pipe) > 1) return - if (pipe.anchored) + if(pipe.anchored) return qdel(pipe) -/obj/machinery/pipedispenser/disposal/interact(mob/user) - - var/dat = "" - var/recipes = GLOB.disposal_pipe_recipes - - for(var/category in recipes) - var/list/cat_recipes = recipes[category] - dat += "[category]:
      " - - for(var/i in cat_recipes) - var/datum/pipe_info/I = i - dat += I.Render(src) - - dat += "
    " - - user << browse("[src][dat]", "window=pipedispenser") - return - - -/obj/machinery/pipedispenser/disposal/Topic(href, href_list) - if(..()) - return 1 - usr.set_machine(src) - add_fingerprint(usr) - if(href_list["dmake"]) - if(wait < world.time) - var/p_type = text2path(href_list["dmake"]) - if (!verify_recipe(GLOB.disposal_pipe_recipes, p_type)) - return - var/obj/structure/disposalconstruct/C = new (loc, p_type) - - if(!C.can_place()) - to_chat(usr, "There's not enough room to build that here!") - qdel(C) - return - if(href_list["dir"]) - C.setDir(text2num(href_list["dir"])) - C.add_fingerprint(usr) - C.update_appearance() - wait = world.time + 15 - return - -//transit tube dispenser -//inherit disposal for the dragging proc -/obj/machinery/pipedispenser/disposal/transit_tube - name = "transit tube dispenser" - icon = 'icons/obj/stationobjs.dmi' - icon_state = "pipe_d" - density = TRUE - desc = "Dispenses pipes that will move beings around." - -/obj/machinery/pipedispenser/disposal/transit_tube/interact(mob/user) - - var/dat = {"Transit Tubes:
    -Straight Tube
    -Straight Tube with Crossing
    -Curved Tube
    -Diagonal Tube
    -Diagonal Tube with Crossing
    -Junction
    -Station Equipment:
    -Through Tube Station
    -Terminus Tube Station
    -Transit Tube Pod
    -"} - - user << browse("[src][dat]", "window=pipedispenser") - return - - -/obj/machinery/pipedispenser/disposal/transit_tube/Topic(href, href_list) - if(..()) - return 1 - usr.set_machine(src) - add_fingerprint(usr) - if(wait < world.time) - if(href_list["tube"]) - var/tube_type = text2num(href_list["tube"]) - var/obj/structure/C - switch(tube_type) - if(TRANSIT_TUBE_STRAIGHT) - C = new /obj/structure/c_transit_tube(loc) - if(TRANSIT_TUBE_STRAIGHT_CROSSING) - C = new /obj/structure/c_transit_tube/crossing(loc) - if(TRANSIT_TUBE_CURVED) - C = new /obj/structure/c_transit_tube/curved(loc) - if(TRANSIT_TUBE_DIAGONAL) - C = new /obj/structure/c_transit_tube/diagonal(loc) - if(TRANSIT_TUBE_DIAGONAL_CROSSING) - C = new /obj/structure/c_transit_tube/diagonal/crossing(loc) - if(TRANSIT_TUBE_JUNCTION) - C = new /obj/structure/c_transit_tube/junction(loc) - if(TRANSIT_TUBE_STATION) - C = new /obj/structure/c_transit_tube/station(loc) - if(TRANSIT_TUBE_TERMINUS) - C = new /obj/structure/c_transit_tube/station/reverse(loc) - if(TRANSIT_TUBE_POD) - C = new /obj/structure/c_transit_tube_pod(loc) - if(C) - C.add_fingerprint(usr) - wait = world.time + 15 - return +/obj/machinery/pipedispenser/proc/make_pipe(mob/user) + if(busy) + src.visible_message(span_warning("[src] is busy.")) + return + var/queued_p_type = recipe.id + var/queued_p_dir = p_dir + var/queued_p_flipped = p_flipped + switch(category) + if(ATMOS_CATEGORY) + if(recipe.type == /datum/pipe_info/meter) + new /obj/item/pipe_meter(loc) + on_make_pipe() + else + if(recipe.all_layers == FALSE && (piping_layer == 1 || piping_layer == 5)) + src.visible_message(span_warning("[src] can't print this object on the layer...")) + return + var/obj/machinery/atmospherics/path = queued_p_type + var/pipe_item_type = initial(path.construction_type) || /obj/item/pipe + var/obj/item/pipe/P = new pipe_item_type(loc, queued_p_type, queued_p_dir) + on_make_pipe() + + if(queued_p_flipped && istype(P, /obj/item/pipe/trinary/flippable)) + var/obj/item/pipe/trinary/flippable/F = P + F.flipped = queued_p_flipped + + P.update() + P.setPipingLayer(piping_layer) + if(ispath(path, /obj/machinery/atmospherics/pipe) && !findtext("[queued_p_type]", "layer_manifold")) + P.add_atom_colour(GLOB.pipe_paint_colors[paint_color], FIXED_COLOUR_PRIORITY) + + if(DISPOSALS_CATEGORY) //Making disposals pipes + new /obj/structure/disposalconstruct(loc, queued_p_type, queued_p_dir, queued_p_flipped) + on_make_pipe() + return + + if(TRANSIT_CATEGORY) //Making transit tubes + if(istype(queued_p_type, /obj/structure/c_transit_tube_pod)) + new /obj/structure/c_transit_tube_pod(loc) + on_make_pipe() + else + var/obj/structure/c_transit_tube/tube = new queued_p_type(loc) + on_make_pipe() + tube.setDir(queued_p_dir) + + if(queued_p_flipped) + tube.setDir(turn(queued_p_dir, 45)) + tube.simple_rotate_flip() + +/obj/machinery/pipedispenser/proc/on_make_pipe() + busy = TRUE + delay = addtimer(CALLBACK(src, PROC_REF(reset_busy)), 5) + +/obj/machinery/pipedispenser/proc/reset_busy() + busy = FALSE + +#undef ATMOS_CATEGORY +#undef DISPOSALS_CATEGORY +#undef TRANSIT_CATEGORY diff --git a/tgui/packages/tgui/interfaces/PipeDispenser.js b/tgui/packages/tgui/interfaces/PipeDispenser.js new file mode 100644 index 000000000000..61798b67306a --- /dev/null +++ b/tgui/packages/tgui/interfaces/PipeDispenser.js @@ -0,0 +1,193 @@ +import { classes } from 'common/react'; +import { useBackend, useLocalState } from '../backend'; +import { + Box, + Button, + ColorBox, + Flex, + LabeledList, + Section, + Tabs, +} from '../components'; +import { Window } from '../layouts'; + +const ROOT_CATEGORIES = ['Atmospherics', 'Disposals', 'Transit Tubes']; + +const ICON_BY_CATEGORY_NAME = { + 'Atmospherics': 'wrench', + 'Disposals': 'trash-alt', + 'Transit Tubes': 'bus', + 'Pipes': 'grip-lines', + 'Disposal Pipes': 'grip-lines', + 'Devices': 'microchip', + 'Heat Exchange': 'thermometer-half', + 'Station Equipment': 'microchip', +}; + +const PAINT_COLORS = { + grey: '#bbbbbb', + amethyst: '#a365ff', + blue: '#4466ff', + brown: '#b26438', + cyan: '#48eae8', + dark: '#808080', + green: '#1edd00', + orange: '#ffa030', + purple: '#b535ea', + red: '#ff3333', + violet: '#6e00f6', + yellow: '#ffce26', +}; + +export const PipeDispenser = (props, context) => { + const { act, data } = useBackend(context); + const { + category: rootCategoryIndex, + categories = [], + selected_color, + piping_layer, + mode, + } = data; + const previews = data.preview_rows.flatMap((row) => row.previews); + const [categoryName, setCategoryName] = useLocalState( + context, + 'categoryName' + ); + const shownCategory = + categories.find((category) => category.cat_name === categoryName) || + categories[0]; + return ( + + +
    + + + {ROOT_CATEGORIES.map((categoryName, i) => ( +
    + + +
    + {rootCategoryIndex === 0 && ( + + {[1, 2, 3, 4, 5].map((layer) => ( + + act('piping_layer', { + piping_layer: layer, + }) + } + /> + ))} + + )} + + {previews.map((preview) => ( + + ))} + +
    +
    + +
    + + {categories.map((category, i) => ( + setCategoryName(category.cat_name)} + > + {category.cat_name} + + ))} + + {shownCategory?.recipes.map((recipe) => ( + + act('pipe_type', { + pipe_type: recipe.pipe_index, + category: shownCategory.cat_name, + }) + } + /> + ))} +
    +
    +
    +
    +
    + ); +}; From 99d997dd367af9432197796edd1f8951c6f7f4a8 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 4 Oct 2024 16:00:11 -0500 Subject: [PATCH 090/167] Automatic changelog generation for PR #3464 [ci skip] --- html/changelogs/AutoChangeLog-pr-3464.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3464.yml diff --git a/html/changelogs/AutoChangeLog-pr-3464.yml b/html/changelogs/AutoChangeLog-pr-3464.yml new file mode 100644 index 000000000000..766a414f4cd5 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3464.yml @@ -0,0 +1,4 @@ +author: Thera-Pissed +changes: + - {rscadd: pipe dispenser UI is now similar to rapid pipe dispenser UI.} +delete-after: true From 34170c1ab1a4e6f27f4e98549997611610cd2c0b Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 5 Oct 2024 01:01:27 +0000 Subject: [PATCH 091/167] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3382.yml | 7 ------- html/changelogs/AutoChangeLog-pr-3442.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3452.yml | 6 ------ html/changelogs/AutoChangeLog-pr-3464.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3466.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3468.yml | 7 ------- html/changelogs/AutoChangeLog-pr-3473.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3476.yml | 4 ---- html/changelogs/archive/2024-10.yml | 25 +++++++++++++++++++++++ 9 files changed, 25 insertions(+), 40 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3382.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3442.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3452.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3464.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3466.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3468.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3473.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3476.yml diff --git a/html/changelogs/AutoChangeLog-pr-3382.yml b/html/changelogs/AutoChangeLog-pr-3382.yml deleted file mode 100644 index eedebb40d990..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3382.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: Gristlebee, Rye-Rice, INFRARED_BARON -changes: - - {rscadd: Inteq Gygax and mech charges} - - {rscadd: Paladin shield backlash} - - {bugfix: Durand shield blocking all projectiles} - - {imageadd: Inteq Gygax sprites} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3442.yml b/html/changelogs/AutoChangeLog-pr-3442.yml deleted file mode 100644 index 93368cdd5e5a..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3442.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: zimon9 -changes: - - {bugfix: fixed the waste and scrubber gas reclamation filters on the colossus} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3452.yml b/html/changelogs/AutoChangeLog-pr-3452.yml deleted file mode 100644 index 227901e38429..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3452.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Jedi-Toothpaste -changes: - - {rscadd: Added extra intercoms in high traffic areas on the Valor Class} - - {rscadd: Added Firelocks underneath the Cargo-Bay Doors on the Valor Class} - - {rscadd: 'Air Alarms, Scrubbers and Vents to every applicable room'} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3464.yml b/html/changelogs/AutoChangeLog-pr-3464.yml deleted file mode 100644 index 766a414f4cd5..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3464.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Thera-Pissed -changes: - - {rscadd: pipe dispenser UI is now similar to rapid pipe dispenser UI.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3466.yml b/html/changelogs/AutoChangeLog-pr-3466.yml deleted file mode 100644 index d35081929039..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3466.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: generalthrax -changes: - - {balance: Replace red insuls with yellow insuls in syndicate toolboxes} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3468.yml b/html/changelogs/AutoChangeLog-pr-3468.yml deleted file mode 100644 index a0130e2f3b75..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3468.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: Bjarl -changes: - - {rscadd: A cargo ship happened to lose an entire crate of Hammer Rocket Launchers - while travelling through the system. We have reason to believe they're probably - on sale now.} - - {rscdel: you can no longer purchase PML-9s on the black market.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3473.yml b/html/changelogs/AutoChangeLog-pr-3473.yml deleted file mode 100644 index 6ef0f09fd71e..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3473.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: PositiveEntropy -changes: - - {imageadd: Waste Planet Turfs Now Look Much More Refined!} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3476.yml b/html/changelogs/AutoChangeLog-pr-3476.yml deleted file mode 100644 index 51594996de27..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3476.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: MemeSnorfer -changes: - - {rscadd: 'Three new Elzuose horn types. Cervid, Prong, and Brow'} -delete-after: true diff --git a/html/changelogs/archive/2024-10.yml b/html/changelogs/archive/2024-10.yml index 7dff4c0f36d5..2055dcb1e4c0 100644 --- a/html/changelogs/archive/2024-10.yml +++ b/html/changelogs/archive/2024-10.yml @@ -24,3 +24,28 @@ 2024-10-03: Bjarl: - bugfix: defibs now work again. +2024-10-05: + Bjarl: + - rscadd: A cargo ship happened to lose an entire crate of Hammer Rocket Launchers + while travelling through the system. We have reason to believe they're probably + on sale now. + - rscdel: you can no longer purchase PML-9s on the black market. + Gristlebee, Rye-Rice, INFRARED_BARON: + - rscadd: Inteq Gygax and mech charges + - rscadd: Paladin shield backlash + - bugfix: Durand shield blocking all projectiles + - imageadd: Inteq Gygax sprites + Jedi-Toothpaste: + - rscadd: Added extra intercoms in high traffic areas on the Valor Class + - rscadd: Added Firelocks underneath the Cargo-Bay Doors on the Valor Class + - rscadd: Air Alarms, Scrubbers and Vents to every applicable room + MemeSnorfer: + - rscadd: Three new Elzuose horn types. Cervid, Prong, and Brow + PositiveEntropy: + - imageadd: Waste Planet Turfs Now Look Much More Refined! + Thera-Pissed: + - rscadd: pipe dispenser UI is now similar to rapid pipe dispenser UI. + generalthrax: + - balance: Replace red insuls with yellow insuls in syndicate toolboxes + zimon9: + - bugfix: fixed the waste and scrubber gas reclamation filters on the colossus From 8ad1a719bfb5df4f3994870399246c994c0a0649 Mon Sep 17 00:00:00 2001 From: Apogee-dev <60533805+Apogee-dev@users.noreply.github.com> Date: Fri, 4 Oct 2024 20:39:43 -0700 Subject: [PATCH 092/167] Shaves the Vaquero (#3438) ## About The Pull Request Snips one recruit slot off of the Vaquero ## Why It's Good For The Game thgvr request, also the vaq's genuinely overpopped. two recruits/deckhands is a handful even on a bigger ship, the vaq doesnt need a third of its crew to not know what they're doing ## Changelog :cl: balance: removed one recruit slot from the vaquero /:cl: --- _maps/configs/inteq_vaquero.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_maps/configs/inteq_vaquero.json b/_maps/configs/inteq_vaquero.json index 232562369a3d..2b0bed8bfe98 100644 --- a/_maps/configs/inteq_vaquero.json +++ b/_maps/configs/inteq_vaquero.json @@ -39,7 +39,7 @@ }, "Recruit": { "outfit": "/datum/outfit/job/inteq/assistant", - "slots": 2 + "slots": 1 } }, "enabled": true From b5370df08612779732c9ccb8722a3daf63cfc048 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 4 Oct 2024 22:50:54 -0500 Subject: [PATCH 093/167] Automatic changelog generation for PR #3438 [ci skip] --- html/changelogs/AutoChangeLog-pr-3438.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3438.yml diff --git a/html/changelogs/AutoChangeLog-pr-3438.yml b/html/changelogs/AutoChangeLog-pr-3438.yml new file mode 100644 index 000000000000..f446f6f0d204 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3438.yml @@ -0,0 +1,4 @@ +author: Apogee-dev +changes: + - {balance: removed one recruit slot from the vaquero} +delete-after: true From dd08ffa6609590363497fca01e67aa0bd3a1b10b Mon Sep 17 00:00:00 2001 From: HelmCrab <90987989+Thera-Pissed@users.noreply.github.com> Date: Fri, 4 Oct 2024 22:42:01 -0500 Subject: [PATCH 094/167] Angle grinder AGAIN! Also, makes plasma cutters used for salvage instead of mining (and base gearpacks) (#3146) ## About The Pull Request re-implements #1716 as a base and adds cutter functionality to plasma cutters also implements and uses gear packs from #2103 that never got in. makes plasma cutters unable to mine, shorter range, and do burn instead of brute. angle grinders are integrated into grinder packs, like water backtanks. Also draws power from a cell. jackhammers can no longer break down walls and girders. ### Cutters can currently deconstruct: - girders - walls - reinforced walls - airlocks - airlock frames - grilles - machine frames - computer frames - catwalks - chairs - beds - tables - lockers & crates - salvage machines (the wasteplanet ones) - railings - lattice - wooden barricades cutters can also cut open safes and locked lockers & crates attempted to revert map changes but using git checkout doesn't completely revert the gecko. Will try again later. adds a mech salvage saw and a prototype energy saw. Doesn't make either available yet. sprites by me ![image](https://github.com/shiptest-ss13/Shiptest/assets/90987989/65bd6b99-d63d-4c75-9227-a9987fddf9d2) https://github.com/shiptest-ss13/Shiptest/assets/90987989/12262338-055f-4c7c-86d1-d31279ab953c ## Why It's Good For The Game Jackhammers as a main salvage tool is dumb, and angle grinders and cutters make more sense and have better functionality. Cutting apart old ruins and ships should be a reasonable source of material and shouldn't take years. ## Changelog :cl: add: angle grinders for salvage add: reworks plasma cutters for salvage /:cl: --------- Signed-off-by: HelmCrab <90987989+Thera-Pissed@users.noreply.github.com> Co-authored-by: ritorizo Co-authored-by: FalloutFalcon Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> --- code/__DEFINES/dcs/signals/signals.dm | 2 + code/__DEFINES/tools.dm | 1 + code/datums/action.dm | 3 + code/datums/components/twohanded.dm | 4 +- code/datums/elements/tool_bang.dm | 40 +++ code/game/atoms.dm | 6 + code/game/machinery/constructable_frame.dm | 12 +- code/game/machinery/deployable.dm | 8 + code/game/machinery/doors/airlock.dm | 15 + code/game/mecha/equipment/tools/work_tools.dm | 80 +++++ code/game/mecha/mecha.dm | 3 + code/game/objects/items.dm | 4 + code/game/objects/items/gear_packs.dm | 285 ++++++++++++++++++ .../objects/structures/beds_chairs/bed.dm | 2 +- .../objects/structures/beds_chairs/chair.dm | 2 +- code/game/objects/structures/catwalk.dm | 2 +- .../structures/crates_lockers/closets.dm | 23 +- .../crates_lockers/closets/cardboardbox.dm | 7 + code/game/objects/structures/door_assembly.dm | 8 + code/game/objects/structures/false_walls.dm | 3 - code/game/objects/structures/girders.dm | 44 +-- code/game/objects/structures/grille.dm | 9 + code/game/objects/structures/lattice.dm | 9 + code/game/objects/structures/railings.dm | 9 + code/game/objects/structures/safe.dm | 7 + code/game/objects/structures/salvaging.dm | 10 + code/game/objects/structures/tables_racks.dm | 11 +- code/game/objects/structures/window.dm | 15 +- code/game/turfs/closed/_closed.dm | 15 + code/modules/cargo/packs/tools.dm | 7 + code/modules/mining/abandoned_crates.dm | 4 + .../modules/mining/equipment/angle_grinder.dm | 144 +++++++++ .../projectiles/ammunition/energy/plasma.dm | 7 +- .../projectiles/guns/energy/special.dm | 31 +- .../projectiles/projectile/special/plasma.dm | 6 +- code/modules/surgery/organic_steps.dm | 4 + icons/effects/cutting_effect.dmi | Bin 0 -> 1628 bytes icons/mecha/mecha_equipment.dmi | Bin 22898 -> 23410 bytes icons/mob/clothing/back.dmi | Bin 132854 -> 134924 bytes .../equipment/gear_handle_lefthand.dmi | Bin 0 -> 2222 bytes .../equipment/gear_handle_righthand.dmi | Bin 0 -> 2130 bytes icons/obj/item/gear_packs.dmi | Bin 0 -> 3311 bytes icons/obj/mining.dmi | Bin 65510 -> 66610 bytes shiptest.dme | 3 + sound/weapons/anglegrinder.ogg | Bin 0 -> 63533 bytes 45 files changed, 778 insertions(+), 67 deletions(-) create mode 100644 code/datums/elements/tool_bang.dm create mode 100644 code/game/objects/items/gear_packs.dm create mode 100644 code/modules/mining/equipment/angle_grinder.dm create mode 100644 icons/effects/cutting_effect.dmi create mode 100644 icons/mob/inhands/equipment/gear_handle_lefthand.dmi create mode 100644 icons/mob/inhands/equipment/gear_handle_righthand.dmi create mode 100644 icons/obj/item/gear_packs.dmi create mode 100644 sound/weapons/anglegrinder.ogg diff --git a/code/__DEFINES/dcs/signals/signals.dm b/code/__DEFINES/dcs/signals/signals.dm index fd56e61f003b..638b5220bc3c 100644 --- a/code/__DEFINES/dcs/signals/signals.dm +++ b/code/__DEFINES/dcs/signals/signals.dm @@ -182,6 +182,8 @@ #define COMSIG_ATOM_CROWBAR_ACT "atom_crowbar_act" ///from base of atom/analyser_act(): (mob/living/user, obj/item/I) #define COMSIG_ATOM_ANALYSER_ACT "atom_analyser_act" +///from base of atom/deconstruct_act(): (mob/living/user, obj/item/I) +#define COMSIG_ATOM_DECONSTRUCT_ACT "atom_deconstruct_act" ///for any tool behaviors: (mob/living/user, obj/item/I, list/recipes) #define COMSIG_ATOM_TOOL_ACT(tooltype) "tool_act_[tooltype]" diff --git a/code/__DEFINES/tools.dm b/code/__DEFINES/tools.dm index 35860ac927f4..eb2696c0afbb 100644 --- a/code/__DEFINES/tools.dm +++ b/code/__DEFINES/tools.dm @@ -15,6 +15,7 @@ #define TOOL_SCALPEL "scalpel" #define TOOL_SAW "saw" #define TOOL_KNIFE "knife" //luv me kuh-nyfe +#define TOOL_DECONSTRUCT "deconstruct" // If delay between the start and the end of tool operation is less than MIN_TOOL_SOUND_DELAY, // tool sound is only played when op is started. If not, it's played twice. diff --git a/code/datums/action.dm b/code/datums/action.dm index fb2d8b5e967f..9bc58c399dd4 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -249,6 +249,9 @@ /datum/action/item_action/toggle_mister name = "Toggle Mister" +/datum/action/item_action/toggle_gear_handle + name = "Toggle Gear Handle" + /datum/action/item_action/activate_injector name = "Activate Injector" diff --git a/code/datums/components/twohanded.dm b/code/datums/components/twohanded.dm index 5ba0a368c637..4ede9a6fc168 100644 --- a/code/datums/components/twohanded.dm +++ b/code/datums/components/twohanded.dm @@ -9,8 +9,8 @@ dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS // Only one of the component can exist on an item var/wielded = FALSE /// Are we holding the two handed item properly var/force_multiplier = 0 /// The multiplier applied to force when wielded, does not work with force_wielded, and force_unwielded - var/force_wielded = 0 /// The force of the item when weilded - var/force_unwielded = 0 /// The force of the item when unweilded + var/force_wielded = 0 /// The force of the item when wielded + var/force_unwielded = 0 /// The force of the item when unwielded var/wieldsound = FALSE /// Play sound when wielded var/unwieldsound = FALSE /// Play sound when unwielded var/attacksound = FALSE /// Play sound on attack when wielded diff --git a/code/datums/elements/tool_bang.dm b/code/datums/elements/tool_bang.dm new file mode 100644 index 000000000000..bc002e936de4 --- /dev/null +++ b/code/datums/elements/tool_bang.dm @@ -0,0 +1,40 @@ +/** + * Tool bang bespoke element + * + * Bang the user when using this tool + */ +/datum/element/tool_bang + element_flags = ELEMENT_BESPOKE + id_arg_index = 2 + /// Strength of the bang + var/bang_strength + +/datum/element/tool_bang/Attach(datum/target, bang_strength) + . = ..() + if(!isitem(target)) + return ELEMENT_INCOMPATIBLE + + src.bang_strength = bang_strength + + RegisterSignal(target, COMSIG_TOOL_IN_USE, PROC_REF(prob_bang)) + RegisterSignal(target, COMSIG_TOOL_START_USE, PROC_REF(bang)) + +/datum/element/tool_bang/Detach(datum/source, force) + . = ..() + UnregisterSignal(source, list(COMSIG_TOOL_IN_USE, COMSIG_TOOL_START_USE)) + +/datum/element/tool_bang/proc/prob_bang(datum/source, mob/living/user) + SIGNAL_HANDLER + + if(prob(90)) + return + bang(source, user) + +/datum/element/tool_bang/proc/bang(datum/source, mob/living/user) + SIGNAL_HANDLER + + if(user && get_dist(get_turf(source), get_turf(user)) <= 1) + if(istype(user, /mob/living/carbon)) + var/mob/living/carbon/carbon = user + carbon.soundbang_act(min(bang_strength,1), 0, 1, 5) + diff --git a/code/game/atoms.dm b/code/game/atoms.dm index b96e8a53c824..a140ec099085 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -1282,6 +1282,8 @@ . = welder_act(user, I) if(TOOL_ANALYZER) . = analyzer_act(user, I) + if(TOOL_DECONSTRUCT) + . |= deconstruct_act(user, I) if(. || signal_result & COMPONENT_BLOCK_TOOL_ATTACK) //Either the proc or the signal handled the tool's events in some way. return TRUE @@ -1362,6 +1364,10 @@ /atom/proc/analyzer_act(mob/living/user, obj/item/I) return SEND_SIGNAL(src, COMSIG_ATOM_ANALYSER_ACT, user, I) +///Deconstruct act +/atom/proc/deconstruct_act(mob/living/user, obj/item/I) + return SEND_SIGNAL(src, COMSIG_ATOM_DECONSTRUCT_ACT, user, I) + ///Generate a tag for this atom /atom/proc/GenerateTag() return diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index f196fc6dc770..a62780aad05a 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -13,14 +13,22 @@ . += "It has \a [circuit] installed." -/obj/structure/frame/deconstruct(disassembled = TRUE) +/obj/structure/frame/deconstruct(disassembled = TRUE, scrapped = FALSE) if(!(flags_1 & NODECONSTRUCT_1)) new /obj/item/stack/sheet/metal(loc, 5) - if(circuit) + if(circuit && !scrapped) circuit.forceMove(loc) circuit = null qdel(src) +/obj/structure/frame/deconstruct_act(mob/living/user, obj/item/I) + . = ..() + if(!I.tool_start_check(user, amount=0)) + return FALSE + if(I.use_tool(src, user, 3 SECONDS, volume=0)) + to_chat(user, "You cut apart \the [src].", "You cut apart \the [src].") + deconstruct() + return TRUE /obj/structure/frame/machine name = "machine frame" diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index 41760633726e..3dedf5887d0c 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -79,6 +79,14 @@ return return ..() +/obj/structure/barricade/wooden/deconstruct_act(mob/living/user, obj/item/I) + . = ..() + if(!I.tool_start_check(user, amount=0)) + return FALSE + if (I.use_tool(src, user, 2 SECONDS, volume=0)) + to_chat(user, "You cut apart [src].") + deconstruct() + return TRUE /obj/structure/barricade/wooden/crude name = "crude plank barricade" diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 4c27a08e64a7..3412321b380b 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1243,6 +1243,21 @@ return INVOKE_ASYNC(src, (density ? PROC_REF(open) : PROC_REF(close)), 2) +/obj/machinery/door/airlock/deconstruct_act(mob/living/user, obj/item/I) + . = ..() + if(!I.tool_start_check(user, amount=0)) + return FALSE + var/decon_time = 5 SECONDS + if(welded) + decon_time += 5 SECONDS + if(locked) + decon_time += 5 SECONDS + if(seal) + decon_time += 15 SECONDS + if (I.use_tool(src, user, decon_time, volume=100)) + to_chat(user, "You cut open the [src].") + deconstruct(FALSE, user) + return TRUE /obj/machinery/door/airlock/open(forced=0) if(operating || welded || locked || seal || !wires) diff --git a/code/game/mecha/equipment/tools/work_tools.dm b/code/game/mecha/equipment/tools/work_tools.dm index 44c8c6626dae..aa5dbf38c27f 100644 --- a/code/game/mecha/equipment/tools/work_tools.dm +++ b/code/game/mecha/equipment/tools/work_tools.dm @@ -491,6 +491,86 @@ return 1 //WS Edit End - Readded from Smartwire Revert +/obj/item/mecha_parts/mecha_equipment/salvage_saw + name = "109-C Salvage Saw" + desc = "Equipment for cutting open walls and airlocks." + icon_state = "mecha_saw" + equip_cooldown = 5 + energy_drain = 10 + force = 15 + var/dam_force = 30 + harmful = TRUE + tool_behaviour = TOOL_DECONSTRUCT + toolspeed = 0.5 + var/datum/effect_system/spark_spread/spark_system + +/obj/item/mecha_parts/mecha_equipment/salvage_saw/can_attach(obj/mecha/M as obj) + if(..()) + if(istype(M, /obj/mecha/working) || istype(M, /obj/mecha/combat)) + return 1 + return 0 + +/obj/item/mecha_parts/mecha_equipment/salvage_saw/attach() + ..() + toolspeed = 0.5 + return + +/obj/item/mecha_parts/mecha_equipment/salvage_saw/detach() + ..() + toolspeed = 10 //yeah sure, use a mech tool without a mech. see how far that gets you + return ..() + +/obj/item/mecha_parts/mecha_equipment/salvage_saw/action(atom/target) + if(!action_checks(target)) + return + if(isliving(target)) + if(chassis.occupant.a_intent == INTENT_HARM) + var/mob/living/M = target + saw_mob(M, chassis.occupant) + return + else + target.add_overlay(GLOB.cutting_effect) + if(target.deconstruct_act(chassis.occupant, src)) + do_sparks(2, TRUE, src) + chassis.stopped-- + target.cut_overlay(GLOB.cutting_effect) + if(!chassis.stopped) + occupant_message("[src] finishes cutting, allowing movement again.") + +/obj/item/mecha_parts/mecha_equipment/salvage_saw/tool_start_check(user, amount) + if(!chassis.stopped) + occupant_message("[src] begins cutting, locking in place!") + chassis.stopped++ + return TRUE + +/obj/item/mecha_parts/mecha_equipment/salvage_saw/proc/saw_mob(mob/living/target, mob/user) + target.visible_message("[chassis] is sawing [target] with [src]!", \ + "[chassis] is sawing you with [src]!") + if(!do_after_cooldown(target)) + return + log_combat(user, target, "sawed", "[name]", "(INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])") + if(target.stat == DEAD && target.getBruteLoss() >= 400) + log_combat(user, target, "gibbed", name) + target.gib() + else + var/obj/item/bodypart/target_part = target.get_bodypart(ran_zone(BODY_ZONE_CHEST)) + target.apply_damage(15, BRUTE, BODY_ZONE_CHEST, target.run_armor_check(target_part, "melee")) + + //blood splatters + var/splatter_dir = get_dir(chassis, target) + if(isalien(target)) + new /obj/effect/temp_visual/dir_setting/bloodsplatter/xenosplatter(target.drop_location(), splatter_dir) + else + var/splatter_color = null + if(iscarbon(target)) + var/mob/living/carbon/carbon_target = target + splatter_color = carbon_target.dna.blood_type.color + new /obj/effect/temp_visual/dir_setting/bloodsplatter(target.drop_location(), splatter_dir, splatter_color) + + //organs go everywhere + if(target_part && prob(10)) + target_part.dismember(BRUTE) + //Dunno where else to put this so shrug /obj/item/mecha_parts/mecha_equipment/conversion_kit name = "Exosuit Conversion Kit" diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index db59620b39fd..eba4801ba56d 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -15,6 +15,7 @@ light_on = FALSE var/ruin_mecha = FALSE //if the mecha starts on a ruin, don't automatically give it a tracking beacon to prevent metagaming. var/can_move = 0 //time of next allowed movement + var/stopped = FALSE var/mob/living/carbon/occupant = null var/step_in = 10 //make a step in step_in/10 sec. var/dir_in = 2//What direction will the mech face when entered/powered on? Defaults to South. @@ -596,6 +597,8 @@ /obj/mecha/proc/domove(direction) if(can_move >= world.time) return 0 + if(stopped) + return 0 if(!Process_Spacemove(direction)) return 0 if(!has_charge(step_energy_drain)) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index a1302008cf89..154f6bde143a 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -2,6 +2,10 @@ GLOBAL_DATUM_INIT(fire_overlay, /mutable_appearance, mutable_appearance('icons/e GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons/effects/welding_effect.dmi', "welding_sparks", GASFIRE_LAYER, ABOVE_LIGHTING_PLANE)) +GLOBAL_DATUM_INIT(cutting_effect, /mutable_appearance, mutable_appearance('icons/effects/cutting_effect.dmi', "cutting_effect", GASFIRE_LAYER, ABOVE_LIGHTING_PLANE)) + +GLOBAL_DATUM_INIT(advanced_cutting_effect, /mutable_appearance, mutable_appearance('icons/effects/cutting_effect.dmi', "advanced_cutting_effect", GASFIRE_LAYER, ABOVE_LIGHTING_PLANE)) + GLOBAL_DATUM_INIT(cleaning_bubbles, /mutable_appearance, mutable_appearance('icons/effects/effects.dmi', "bubbles", ABOVE_MOB_LAYER, GAME_PLANE)) GLOBAL_VAR_INIT(rpg_loot_items, FALSE) diff --git a/code/game/objects/items/gear_packs.dm b/code/game/objects/items/gear_packs.dm new file mode 100644 index 000000000000..65db4ffa28c9 --- /dev/null +++ b/code/game/objects/items/gear_packs.dm @@ -0,0 +1,285 @@ +/obj/item/gear_pack + name = "gear pack" + desc = "A large backpack that usually holds things" + icon = 'icons/obj/hydroponics/equipment.dmi' + icon_state = "waterbackpack" + item_state = "waterbackpack" + lefthand_file = 'icons/mob/inhands/equipment/backpack_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/backpack_righthand.dmi' + w_class = WEIGHT_CLASS_HUGE + slot_flags = ITEM_SLOT_BACK + item_flags = SLOWS_WHILE_IN_HAND + max_integrity = 300 + slowdown = 1 + drag_slowdown = 1 + actions_types = list(/datum/action/item_action/toggle_gear_handle) + max_integrity = 200 + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30) + resistance_flags = FIRE_PROOF + var/on = FALSE + var/obj/item/stock_parts/cell/cell + var/preload_cell_type = /obj/item/stock_parts/cell/high + var/powered = FALSE + var/activate_sound = "sparks" + var/obj/item/gear_handle/gear_handle_type = /obj/item/gear_handle + var/obj/item/gear_handle/gear_handle + +/obj/item/gear_pack/get_cell() + return cell + +/obj/item/gear_pack/Initialize() + . = ..() + drag_slowdown = slowdown + gear_handle = new gear_handle_type(src) + cell = new preload_cell_type(src) + update_power() + return + +/obj/item/gear_pack/examine(mob/user) + . = ..() + . += "It is [ on ? "currently" : "not"] active." + if(cell) + . += "A small readout reports [PERCENT(cell.charge / cell.maxcharge)]% charge." + +/obj/item/gear_pack/fire_act(exposed_temperature, exposed_volume) + . = ..() + if(gear_handle?.loc == src) + gear_handle.fire_act(exposed_temperature, exposed_volume) + +/obj/item/gear_pack/extinguish() + . = ..() + if(gear_handle?.loc == src) + gear_handle.extinguish() + +/obj/item/gear_pack/proc/update_power() + if(!QDELETED(cell)) + if(QDELETED(gear_handle) || cell.charge < gear_handle.usecost) + powered = FALSE + else + powered = TRUE + else + powered = FALSE + update_icon() + +/obj/item/gear_pack/update_overlays() + . = ..() + + if(powered) + . += "[initial(icon_state)]-powered" + if(!QDELETED(cell)) + var/ratio = cell.charge / cell.maxcharge + ratio = CEILING(ratio*4, 1) * 25 + . += "[initial(icon_state)]-charge[ratio]" + if(!cell) + . += "[initial(icon_state)]-nocell" + if(!on) + . += "[initial(icon_state)]-attachment" + +/obj/item/gear_pack/CheckParts(list/parts_list) + ..() + cell = locate(/obj/item/stock_parts/cell) in contents + update_power() + +/obj/item/gear_pack/ui_action_click() + toggle_gear_handle() + +//ATTACK HAND IGNORING PARENT RETURN VALUE +/obj/item/gear_pack/attack_hand(mob/user) + if(loc == user) + if(slot_flags == ITEM_SLOT_BACK) + if(user.get_item_by_slot(ITEM_SLOT_BACK) == src) + ui_action_click() + else + to_chat(user, "Put the [src] on your back first!") + + else if(slot_flags == ITEM_SLOT_BELT) + if(user.get_item_by_slot(ITEM_SLOT_BELT) == src) + ui_action_click() + else + to_chat(user, "Strap the [src]'s belt on first!") + return + return ..() + +/obj/item/gear_pack/MouseDrop(obj/over_object) + . = ..() + if(ismob(loc)) + var/mob/M = loc + if(!M.incapacitated() && istype(over_object, /atom/movable/screen/inventory/hand)) + var/atom/movable/screen/inventory/hand/H = over_object + M.putItemFromInventoryInHandIfPossible(src, H.held_index) + +/obj/item/gear_pack/attackby(obj/item/W, mob/user, params) + if(W == gear_handle) + toggle_gear_handle() + else if(istype(W, /obj/item/stock_parts/cell)) + var/obj/item/stock_parts/cell/C = W + if(cell) + to_chat(user, "[src] already has a cell!") + else + if(C.maxcharge < gear_handle.usecost) + to_chat(user, "[src] requires a higher capacity cell.") + return + if(!user.transferItemToLoc(W, src)) + return + cell = W + to_chat(user, "You install a cell in [src].") + update_power() + + else if(W.tool_behaviour == TOOL_SCREWDRIVER) + if(cell) + cell.update_icon() + cell.forceMove(get_turf(src)) + cell = null + to_chat(user, "You remove the cell from [src].") + update_power() + else + return ..() + +/obj/item/gear_pack/emp_act(severity) + . = ..() + if(cell && !(. & EMP_PROTECT_CONTENTS)) + deductcharge(1000 / severity) + if(. & EMP_PROTECT_SELF) + return + update_power() + +/obj/item/gear_pack/proc/toggle_gear_handle() + set name = "Toggle gear_handle" + set category = "Object" + on = !on + + var/mob/living/carbon/user = usr + if(on) + //Detach the gear_handle into the user's hands + playsound(src, 'sound/items/handling/multitool_pickup.ogg', 100) + if(!usr.put_in_hands(gear_handle)) + on = FALSE + to_chat(user, "You need a free hand to hold the [gear_handle]!") + update_power() + return + else + //Remove from their hands and back onto the gear pack + remove_gear_handle(user) + + update_power() + for(var/X in actions) + var/datum/action/A = X + A.UpdateButtonIcon() + + +/obj/item/gear_pack/equipped(mob/user, slot) + ..() + if((slot_flags == ITEM_SLOT_BACK && slot != ITEM_SLOT_BACK) || (slot_flags == ITEM_SLOT_BELT && slot != ITEM_SLOT_BELT)) + remove_gear_handle(user) + update_power() + +/obj/item/gear_pack/item_action_slot_check(slot, mob/user) + if(slot == user.getBackSlot()) + return 1 + +/obj/item/gear_pack/proc/remove_gear_handle(mob/user) + if(ismob(gear_handle.loc)) + var/mob/M = gear_handle.loc + M.dropItemToGround(gear_handle, TRUE) + return + +/obj/item/gear_pack/Destroy() + if(on) + var/M = get(gear_handle, /mob) + remove_gear_handle(M) + QDEL_NULL(gear_handle) + QDEL_NULL(cell) + return ..() + +/obj/item/gear_pack/proc/deductcharge(chrgdeductamt) + if(cell) + if(cell.charge < (gear_handle.usecost+chrgdeductamt)) + powered = FALSE + update_power() + if(cell.use(chrgdeductamt)) + update_power() + return TRUE + else + return FALSE + +/obj/item/gear_handle + + name = "gear handle" + desc = "handles the gear." + icon = 'icons/obj/hydroponics/equipment.dmi' + icon_state = "mister" + item_state = "mister" + lefthand_file = 'icons/mob/inhands/equipment/mister_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/mister_righthand.dmi' + + force = 0 + throwforce = 6 + w_class = WEIGHT_CLASS_BULKY + resistance_flags = INDESTRUCTIBLE + base_icon_state = "mister" + + var/req_pack = TRUE + var/usecost = 1000 + var/obj/item/gear_pack/pack + +/obj/item/gear_handle/Initialize() + . = ..() + ADD_TRAIT(src, TRAIT_NO_STORAGE_INSERT, GENERIC_ITEM_TRAIT) + if (!loc || !istype(loc, /obj/item/gear_pack)) + return INITIALIZE_HINT_QDEL + if(!req_pack) + return + pack = loc + update_icon() + +/obj/item/gear_handle/Destroy() + pack = null + return ..() + +/obj/item/gear_handle/equipped(mob/user, slot) + . = ..() + if(!req_pack) + return + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(check_range)) + +/obj/item/gear_handle/Moved() + . = ..() + check_range() + + +/obj/item/gear_handle/fire_act(exposed_temperature, exposed_volume) + . = ..() + if((req_pack && pack) && loc != pack) + pack.fire_act(exposed_temperature, exposed_volume) + +/obj/item/gear_handle/proc/check_range() + SIGNAL_HANDLER + + if(!req_pack ||!pack) + return + if(!in_range(src,pack)) + var/mob/living/L = loc + if(istype(L)) + to_chat(L, "[pack]'s [src] overextends and comes out of your hands!") + else + visible_message("[src] snaps back into [pack].") + snap_back() + +/obj/item/gear_handle/dropped(mob/user) + . = ..() + if(!req_pack) + return ..() + if(user) + UnregisterSignal(user, COMSIG_MOVABLE_MOVED) + if(user != loc) + to_chat(user, "[src] snap back into the main unit.") + snap_back() + return + +/obj/item/gear_handle/proc/snap_back() + if(!pack) + return + playsound() + pack.on = FALSE + forceMove(pack) + pack.update_power() diff --git a/code/game/objects/structures/beds_chairs/bed.dm b/code/game/objects/structures/beds_chairs/bed.dm index ec7132a67cdd..533f58bdf2ac 100644 --- a/code/game/objects/structures/beds_chairs/bed.dm +++ b/code/game/objects/structures/beds_chairs/bed.dm @@ -71,7 +71,7 @@ return attack_hand(user) /obj/structure/bed/attackby(obj/item/W, mob/user, params) - if(W.tool_behaviour == TOOL_WRENCH && !(flags_1&NODECONSTRUCT_1)) + if((W.tool_behaviour == TOOL_WRENCH || W.tool_behaviour == TOOL_DECONSTRUCT) && !(flags_1&NODECONSTRUCT_1)) W.play_tool_sound(src) deconstruct(TRUE) else diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index 045bf39ae9b6..40e0d9388515 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -60,7 +60,7 @@ qdel(src) /obj/structure/chair/attackby(obj/item/W, mob/user, params) - if(W.tool_behaviour == TOOL_WRENCH && !(flags_1&NODECONSTRUCT_1)) + if((W.tool_behaviour == TOOL_WRENCH || W.tool_behaviour == TOOL_DECONSTRUCT) && !(flags_1&NODECONSTRUCT_1)) W.play_tool_sound(src) deconstruct() else if(istype(W, /obj/item/assembly/shock_kit)) diff --git a/code/game/objects/structures/catwalk.dm b/code/game/objects/structures/catwalk.dm index 20986f9e6c27..2202e84d70e4 100644 --- a/code/game/objects/structures/catwalk.dm +++ b/code/game/objects/structures/catwalk.dm @@ -57,7 +57,7 @@ . += "The supporting rods look like they could be welded." /obj/structure/catwalk/attackby(obj/item/C, mob/user, params) - if(C.tool_behaviour == TOOL_WELDER && !(resistance_flags & INDESTRUCTIBLE)) + if((C.tool_behaviour == TOOL_WELDER || C.tool_behaviour == TOOL_DECONSTRUCT) && !(resistance_flags & INDESTRUCTIBLE)) to_chat(user, "You slice off [src]") deconstruct() return diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 7731bf48d2ff..cd1c880eae74 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -255,10 +255,24 @@ if(user in src) return if(src.tool_interact(W,user)) - return 1 // No afterattack + return TRUE // No afterattack else return ..() +/obj/structure/closet/proc/try_deconstruct(obj/item/W, mob/user) + if(W.tool_behaviour == cutting_tool || W.tool_behaviour == TOOL_DECONSTRUCT) + if(!W.tool_start_check(user, amount = 0)) + return + to_chat(user, span_notice("You begin cutting \the [src] apart...")) + if(W.use_tool(src, user, 40, volume = 50)) + if(!opened) + return + user.visible_message(span_notice("[user] slices apart \the [src]."), + span_notice("You cut \the [src] apart with \the [W]."), + span_hear("You hear welding.")) + deconstruct(TRUE) + return TRUE + /obj/structure/closet/proc/tool_interact(obj/item/W, mob/user)//returns TRUE if attackBy call shouldnt be continued (because tool was used/closet was of wrong type), FALSE if otherwise . = TRUE if(opened) @@ -300,6 +314,13 @@ user.visible_message("[user] [anchored ? "anchored" : "unanchored"] \the [src] [anchored ? "to" : "from"] the ground.", \ "You [anchored ? "anchored" : "unanchored"] \the [src] [anchored ? "to" : "from"] the ground.", \ "You hear a ratchet.") + + else if(W.tool_behaviour == TOOL_DECONSTRUCT && locked) + user.visible_message("[user] is cutting \the [src] open !", "You begin to cut \the [src] open.") + if (W.use_tool(src, user, 10 SECONDS, volume=0)) + bust_open() + user.visible_message("[user] busted \the [src] open !", "You finish cutting \the [src] open.") + else if(user.a_intent != INTENT_HARM) var/item_is_id = W.GetID() if(!item_is_id) diff --git a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm index 7135b3d199a2..b0674a2d2b60 100644 --- a/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm +++ b/code/game/objects/structures/crates_lockers/closets/cardboardbox.dm @@ -20,6 +20,13 @@ var/move_delay = FALSE var/egged = 0 +/obj/structure/closet/cardboard/try_deconstruct(obj/item/W, mob/user) + if(W.tool_behaviour == cutting_tool) + user.visible_message(span_notice("[user] cut apart \the [src]."), \ + span_notice("You cut \the [src] apart with \the [W].")) + deconstruct(TRUE) + return TRUE + /obj/structure/closet/cardboard/relaymove(mob/living/user, direction) if(opened || move_delay || user.incapacitated() || !isturf(loc) || !has_gravity(loc)) return diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index 4246075e49f6..43052f1f0dbb 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -333,6 +333,14 @@ new mineral_path(T, 2) qdel(src) +/obj/structure/door_assembly/deconstruct_act(mob/living/user, obj/item/I) + . = ..() + if(!I.tool_start_check(user, amount=0)) + return FALSE + if (I.use_tool(src, user, 3 SECONDS, volume=100)) + to_chat(user, "You slice [src] apart.") + deconstruct(FALSE) + return TRUE /obj/structure/door_assembly/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) if(the_rcd.mode == RCD_DECONSTRUCT) diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index d5a8c3e496c1..48bf8817e1e7 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -107,9 +107,6 @@ else if(W.tool_behaviour == TOOL_WELDER) if(W.use_tool(src, user, 0, volume=50)) dismantle(user, TRUE) - else if(istype(W, /obj/item/pickaxe/drill/jackhammer)) - W.play_tool_sound(src) - dismantle(user, TRUE) else return ..() diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index 362de185e9ba..df0d3cf1f43c 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -36,26 +36,7 @@ playsound(src, 'sound/machines/clockcult/integration_cog_install.ogg', 50, TRUE) add_fingerprint(user) - if(istype(W, /obj/item/gun/energy/plasmacutter)) - to_chat(user, "You start slicing apart the girder...") - if(W.use_tool(src, user, 10, volume=100)) - to_chat(user, "You slice apart the girder.") - var/obj/item/stack/sheet/metal/M = new (loc, 2) - M.add_fingerprint(user) - qdel(src) - - return - - else if(istype(W, /obj/item/pickaxe/drill/jackhammer)) - to_chat(user, "You smash through the girder!") - new /obj/item/stack/sheet/metal(get_turf(src)) - W.play_tool_sound(src) - qdel(src) - - return - - - else if(istype(W, /obj/item/stack)) + if(istype(W, /obj/item/stack)) if(iswallturf(loc)) to_chat(user, "There is already a wall present!") return @@ -231,6 +212,15 @@ else return ..() +/obj/structure/girder/deconstruct_act(mob/living/user, obj/item/I) + . = ..() + if(!I.tool_start_check(user, amount=0)) + return FALSE + if(I.use_tool(src, user, 3 SECONDS, volume=0)) + to_chat(user, "You cut apart \the [src].", "You cut apart \the [src].") + deconstruct() + return TRUE + // Screwdriver behavior for girders /obj/structure/girder/screwdriver_act(mob/user, obj/item/tool) if(..()) @@ -373,13 +363,6 @@ transfer_fingerprints_to(R) qdel(src) - else if(istype(W, /obj/item/pickaxe/drill/jackhammer)) - to_chat(user, "Your jackhammer smashes through the girder!") - var/obj/item/stack/sheet/mineral/hidden/hellstone/R = new(drop_location(), 2) - transfer_fingerprints_to(R) - W.play_tool_sound(src) - qdel(src) - else if(istype(W, /obj/item/stack/sheet/mineral/hidden/hellstone)) var/obj/item/stack/sheet/mineral/hidden/hellstone/R = W if(R.get_amount() < 1) @@ -447,13 +430,6 @@ transfer_fingerprints_to(B) qdel(src) - else if(istype(W, /obj/item/pickaxe/drill/jackhammer)) - to_chat(user, "Your jackhammer smashes through the girder!") - var/obj/item/stack/tile/bronze/B = new(drop_location(), 2) - transfer_fingerprints_to(B) - W.play_tool_sound(src) - qdel(src) - else if(istype(W, /obj/item/stack/tile/bronze)) var/obj/item/stack/tile/bronze/B = W if(B.get_amount() < 2) diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 5bca53e84dd6..b1897ee661d4 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -227,6 +227,15 @@ qdel(src) ..() +/obj/structure/grille/deconstruct_act(mob/living/user, obj/item/I) + . = ..() + if(!I.tool_start_check(user, amount=0)) + return FALSE + if (I.use_tool(src, user, 1 SECONDS, volume=100)) + to_chat(user, "You slice [src] apart.") + deconstruct(FALSE) + return TRUE + /obj/structure/grille/obj_break() if(!broken && !(flags_1 & NODECONSTRUCT_1)) new broken_type(src.loc) diff --git a/code/game/objects/structures/lattice.dm b/code/game/objects/structures/lattice.dm index 30999b58a620..9aaefb8c014e 100644 --- a/code/game/objects/structures/lattice.dm +++ b/code/game/objects/structures/lattice.dm @@ -40,6 +40,15 @@ var/turf/T = get_turf(src) return T.attackby(C, user) //hand this off to the turf instead (for building plating, catwalks, etc) +/obj/structure/lattice/deconstruct_act(mob/living/user, obj/item/I) + . = ..() + if(!I.tool_start_check(user, amount=0)) + return FALSE + if(I.use_tool(src, user, 1 SECONDS, volume=0)) + to_chat(user, "You cut apart \the [src].", "You cut apart \the [src].") + deconstruct() + return TRUE + /obj/structure/lattice/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) new build_material(get_turf(src), number_of_mats) diff --git a/code/game/objects/structures/railings.dm b/code/game/objects/structures/railings.dm index 95c24145399f..d8f5c543a168 100644 --- a/code/game/objects/structures/railings.dm +++ b/code/game/objects/structures/railings.dm @@ -65,6 +65,15 @@ deconstruct() return TRUE +/obj/structure/railing/deconstruct_act(mob/living/user, obj/item/I) + . = ..() + if(!I.tool_start_check(user, amount=0)) + return FALSE + if (I.use_tool(src, user, 3 SECONDS, volume=0)) + to_chat(user, "You cut apart the railing.") + deconstruct() + return TRUE + /obj/structure/railing/deconstruct(disassembled) . = ..() if(!loc) //quick check if it's qdeleted already. diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm index 5f3e2914bc47..44a9f7f94717 100644 --- a/code/game/objects/structures/safe.dm +++ b/code/game/objects/structures/safe.dm @@ -75,6 +75,13 @@ FLOOR SAFES if(istype(I, /obj/item/clothing/neck/stethoscope)) attack_hand(user) return + + else if(I.tool_behaviour == TOOL_DECONSTRUCT) + user.visible_message("[user] begin to cut through the lock of \the [src].","You start cutting trough the lock of [src].") + if(I.use_tool(src, user, 60 SECONDS)) + broken = TRUE + user.visible_message("[user] successfully cuts trough the lock of \the [src].","You successfully cut trough the lock of [src].") + else to_chat(user, "You can't put [I] into the safe while it is closed!") return diff --git a/code/game/objects/structures/salvaging.dm b/code/game/objects/structures/salvaging.dm index dbd75dac488f..f4aad715db19 100644 --- a/code/game/objects/structures/salvaging.dm +++ b/code/game/objects/structures/salvaging.dm @@ -34,6 +34,16 @@ qdel(src) return TRUE +/obj/structure/salvageable/deconstruct_act(mob/living/user, obj/item/tool) + . = ..() + user.visible_message("[user] starts slicing [src].", \ + "You start salvaging anything useful from [src]...") + if(tool.use_tool(src, user, 6 SECONDS)) + user.visible_message("[user] dismantles [src].", \ + "You salvage [src].") + dismantle(user) + qdel(src) + return TRUE //Types themself, use them, but not the parent object diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index a7404ef68a6c..d5b1710b6296 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -162,7 +162,7 @@ /obj/structure/table/attackby(obj/item/I, mob/user, params) var/list/modifiers = params2list(params) if(!(flags_1 & NODECONSTRUCT_1) && user.a_intent != INTENT_HELP) - if(I.tool_behaviour == TOOL_SCREWDRIVER && deconstruction_ready) + if((I.tool_behaviour == TOOL_SCREWDRIVER) && deconstruction_ready) to_chat(user, "You start disassembling [src]...") if(I.use_tool(src, user, 20, volume=50)) deconstruct(TRUE) @@ -227,6 +227,15 @@ else return ..() +/obj/structure/table/deconstruct_act(mob/living/user, obj/item/I) + . = ..() + if(!I.tool_start_check(user, amount=0)) + return FALSE + if (I.use_tool(src, user, 1 SECONDS, volume=0)) + to_chat(user, span_warning("You cut [src] into sheets.")) + deconstruct(wrench_disassembly = TRUE) + return TRUE + /obj/structure/table/proc/AfterPutItemOnTable(obj/item/I, mob/living/user) return diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 5420cc06b490..5064883c5de9 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -27,6 +27,7 @@ var/real_explosion_block //ignore this, just use explosion_block var/breaksound = "shatter" var/hitsound = 'sound/effects/Glasshit.ogg' + var/decon_time = 5 SECONDS flags_ricochet = RICOCHET_HARD ricochet_chance_mod = 0.4 @@ -289,6 +290,15 @@ qdel(src) update_nearby_icons() +/obj/structure/window/deconstruct_act(mob/living/user, obj/item/I) + . = ..() + if(!I.tool_start_check(user, amount=0)) + return FALSE + if (I.use_tool(src, user, decon_time, volume=100)) + to_chat(user, span_warning("You shatter [src] with the [I].")) + deconstruct(FALSE) + return TRUE + /obj/structure/window/proc/spawnDebris(location) . = list() . += new /obj/item/shard(location) @@ -399,6 +409,7 @@ glass_type = /obj/item/stack/sheet/rglass rad_insulation = RAD_HEAVY_INSULATION ricochet_chance_mod = 0.8 + decon_time = 20 SECONDS //this is shitcode but all of construction is shitcode and needs a refactor, it works for now //If you find this like 4 years later and construction still hasn't been refactored, I'm so sorry for this @@ -408,7 +419,7 @@ switch(state) if(RWINDOW_SECURE) - if(I.tool_behaviour == TOOL_WELDER && user.a_intent == INTENT_HARM) + if((I.tool_behaviour == TOOL_WELDER) && user.a_intent == INTENT_HARM) user.visible_message("[user] holds \the [I] to the security screws on \the [src]...", "You begin heating the security screws on \the [src]...") if(I.use_tool(src, user, 150, volume = 100)) @@ -531,6 +542,7 @@ damage_deflection = 11 //WS Edit - Weakens R-Windows explosion_block = 2 glass_type = /obj/item/stack/sheet/plasmarglass + decon_time = 25 SECONDS //entirely copypasted code //take this out when construction is made a component or otherwise modularized in some way @@ -746,6 +758,7 @@ glass_type = /obj/item/stack/sheet/plastitaniumglass glass_amount = 2 rad_insulation = RAD_HEAVY_INSULATION + decon_time = 30 SECONDS /obj/structure/window/plasma/reinforced/plastitanium/unanchored anchored = FALSE diff --git a/code/game/turfs/closed/_closed.dm b/code/game/turfs/closed/_closed.dm index 766d7e0e5a24..ea0c0d4ed4b1 100644 --- a/code/game/turfs/closed/_closed.dm +++ b/code/game/turfs/closed/_closed.dm @@ -269,6 +269,21 @@ return FALSE +/turf/closed/deconstruct_act(mob/living/user, obj/item/I) + var/act_duration = breakdown_duration + if(!I.tool_start_check(user, amount=0)) + return FALSE + to_chat(user, "You begin slicing through the outer plating...") + while(I.use_tool(src, user, act_duration, volume=100)) + if(iswallturf(src)) + to_chat(user, "You slice through some of the outer plating...") + if(!alter_integrity(-(I.wall_decon_damage),user,FALSE,TRUE)) + return TRUE + else + break + + return FALSE + /turf/closed/mech_melee_attack(obj/mecha/M) M.do_attack_animation(src) switch(M.damtype) diff --git a/code/modules/cargo/packs/tools.dm b/code/modules/cargo/packs/tools.dm index e4081a448e0b..36bfefc02796 100644 --- a/code/modules/cargo/packs/tools.dm +++ b/code/modules/cargo/packs/tools.dm @@ -111,6 +111,13 @@ crate_name = "tank transfer valve crate" crate_type = /obj/structure/closet/crate/secure/science +/datum/supply_pack/tools/anglegrinder + name = "Angle Grinder" + desc = "Contains one angle grinder pack, a tool used for quick structure deconstruction and salvaging" + cost = 2000 + contains = list(/obj/item/gear_pack/anglegrinder) + crate_name = "Angle Grinder" + /* Liquid tanks */ diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm index caf01866a019..406259246db1 100644 --- a/code/modules/mining/abandoned_crates.dm +++ b/code/modules/mining/abandoned_crates.dm @@ -124,6 +124,10 @@ qdel(src) ..() +// No busting open (used to disallow angle grinder cheesing +/obj/structure/closet/crate/secure/loot/bust_open() + boom() + /obj/structure/closet/crate/secure/loot/proc/spawn_loot() var/loot = rand(1,100) //100 different crates with varying chances of spawning switch(loot) diff --git a/code/modules/mining/equipment/angle_grinder.dm b/code/modules/mining/equipment/angle_grinder.dm new file mode 100644 index 000000000000..290cf0d153d7 --- /dev/null +++ b/code/modules/mining/equipment/angle_grinder.dm @@ -0,0 +1,144 @@ +/obj/item/gear_pack/anglegrinder + name = "grinder pack" + desc = "Supplies the high voltage needed to run the attached grinder." + icon = 'icons/obj/item/gear_packs.dmi' + item_state = "anglegrinderpack" + icon_state = "anglegrinderpack" + lefthand_file = 'icons/mob/inhands/equipment/backpack_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/backpack_righthand.dmi' + gear_handle_type = /obj/item/gear_handle/anglegrinder + +/obj/item/gear_handle/anglegrinder + name = "angle grinder" + desc = "A powerful salvage tool used to cut apart walls and airlocks. A hazard sticker recommends ear and eye protection." + icon = 'icons/obj/item/gear_packs.dmi' + icon_state = "anglegrinder" + item_state = "anglegrinder" + lefthand_file = 'icons/mob/inhands/equipment/gear_handle_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/gear_handle_righthand.dmi' + flags_1 = CONDUCT_1 + force = 13 + armour_penetration = 5 + w_class = WEIGHT_CLASS_BULKY + item_flags = ABSTRACT + attack_verb = list("lacerated", "ripped", "sliced", "sawed", "cut", "chopped", "diced") + hitsound = 'sound/weapons/anglegrinder.ogg' + usesound = 'sound/weapons/anglegrinder.ogg' + tool_behaviour = null // is set to TOOL_DECONSTRUCT once wielded + toolspeed = 1 + wall_decon_damage = 200 + usecost = 5 + pack = /obj/item/gear_pack/anglegrinder + var/startsound = 'sound/weapons/chainsawhit.ogg' + var/adv = FALSE + var/wielded = FALSE // track wielded status on item + var/two_hand_force = 24 + +/obj/item/gear_handle/anglegrinder/tool_start_check(mob/living/user, amount) + if(!pack) + to_chat(user, "how do you not have a pack for this. what.") + return FALSE + if(!pack.cell) + to_chat(user, "You need a cell to start!") + return FALSE + var/obj/item/stock_parts/cell/cell = pack.get_cell() + if(cell.charge < usecost) + to_chat(user, "You need more charge to complete this task!") + return FALSE + return TRUE + +/obj/item/gear_handle/anglegrinder/tool_use_check(mob/living/user, amount) + if(!pack.cell) + return FALSE + if(pack.deductcharge(usecost)) + return TRUE + else + to_chat(user, "You need more charge to complete this task!") + return FALSE + +/obj/item/gear_handle/anglegrinder/use(used) + return TRUE + +/obj/item/gear_handle/anglegrinder/Initialize() + . = ..() + RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(on_wield)) + RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(on_unwield)) + +/obj/item/gear_handle/anglegrinder/ComponentInitialize() + . = ..() + AddComponent(/datum/component/butchering, 30, 100, 0, startsound, TRUE) + AddComponent(/datum/component/two_handed, force_unwielded=force, force_wielded=two_hand_force, wieldsound=startsound) + AddElement(/datum/element/tool_bang, 2) + +/// triggered on wield of two handed item +/obj/item/gear_handle/anglegrinder/proc/on_wield(obj/item/source, mob/user) + SIGNAL_HANDLER + + tool_behaviour = TOOL_DECONSTRUCT + wielded = TRUE + sharpness = IS_SHARP + icon_state = "[initial(item_state)]-wield" + item_state = "[initial(item_state)]-wield" + +/// triggered on unwield of two handed item +/obj/item/gear_handle/anglegrinder/proc/on_unwield(obj/item/source, mob/user) + SIGNAL_HANDLER + + tool_behaviour = null + wielded = FALSE + sharpness = initial(sharpness) + icon_state = initial(icon_state) + item_state = initial(item_state) + +/obj/item/gear_handle/anglegrinder/get_dismemberment_chance() + if(wielded) + . = ..() + +/obj/item/gear_handle/anglegrinder/use_tool(atom/target, mob/living/user, delay, amount=1, volume=0, datum/callback/extra_checks) + if(adv) + target.add_overlay(GLOB.advanced_cutting_effect) + . = ..() + target.cut_overlay(GLOB.advanced_cutting_effect) + else + target.add_overlay(GLOB.cutting_effect) + . = ..() + target.cut_overlay(GLOB.cutting_effect) + +/obj/item/gear_pack/anglegrinder/energy + name = "energy supply pack" + desc = "a highly inefficient GEC-E-014 Supply Pack, used to generate and contain an energy field." + item_state = "energyanglegrinderpack" + icon_state = "energyanglegrinderpack" + gear_handle_type = /obj/item/gear_handle/anglegrinder/energy + +/obj/item/gear_handle/anglegrinder/energy + name = "energy saw" + desc = "An early prototype for handheld energy weapons, designed by a joint GEC-Cybersun lab to create an energy field for combat use." + icon_state = "energyanglegrinder" + item_state = "energyanglegrinder" + force = 5 + two_hand_force = 28 + armour_penetration = 16 + w_class = WEIGHT_CLASS_BULKY + item_flags = ABSTRACT + attack_verb = list("lacerated", "ripped", "burned", "sliced", "cauterized", "seared", "diced") + hitsound = 'sound/weapons/blade1.ogg' + usesound = 'sound/weapons/blade1.ogg' + startsound = 'sound/weapons/saberon.ogg' + toolspeed = 0.7 + usecost = 10 + pack = /obj/item/gear_pack/anglegrinder/energy + light_system = MOVABLE_LIGHT + light_range = 3 + light_color = LIGHT_COLOR_ELECTRIC_GREEN + light_on = FALSE + adv = TRUE + +/obj/item/gear_handle/anglegrinder/energy/on_wield(obj/item/source, mob/user) + . = ..() + set_light_on(TRUE) + +/obj/item/gear_handle/anglegrinder/energy/on_unwield(obj/item/source, mob/user) + . = ..() + set_light_on(FALSE) + diff --git a/code/modules/projectiles/ammunition/energy/plasma.dm b/code/modules/projectiles/ammunition/energy/plasma.dm index 00de4a90ffee..d593086157fd 100644 --- a/code/modules/projectiles/ammunition/energy/plasma.dm +++ b/code/modules/projectiles/ammunition/energy/plasma.dm @@ -2,10 +2,9 @@ projectile_type = /obj/projectile/plasma select_name = "plasma burst" fire_sound = 'sound/weapons/plasma_cutter.ogg' - delay = 15 - e_cost = 25 + delay = 30 + e_cost = 100 /obj/item/ammo_casing/energy/plasma/adv projectile_type = /obj/projectile/plasma/adv - delay = 10 - e_cost = 10 + delay = 20 diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index c63c8358e2de..067a4bbc5d97 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -122,11 +122,12 @@ heat = 3800 usesound = list('sound/items/welder.ogg', 'sound/items/welder2.ogg') - tool_behaviour = TOOL_WELDER + tool_behaviour = TOOL_DECONSTRUCT wall_decon_damage = 200 - toolspeed = 0.7 //plasmacutters can be used as welders, and are faster than standard welders + toolspeed = 0.9 //plasmacutters can be used like angle grinders, and are a bit faster internal_cell = TRUE //so you don't cheese through the need for plasma - WS EDIT - var/charge_weld = 25 //amount of charge used up to start action (multiplied by amount) and per progress_flash_divisor ticks of welding + var/charge_cut = 100 //amount of charge used up to start action (multiplied by amount) and per progress_flash_divisor ticks of cutting + var/adv = FALSE /obj/item/gun/energy/plasmacutter/ComponentInitialize() . = ..() @@ -155,16 +156,16 @@ else ..() -// Can we weld? Plasma cutter does not use charge continuously. +// Can we cut? Plasma cutter does not use charge continuously. // Amount cannot be defaulted to 1: most of the code specifies 0 in the call. /obj/item/gun/energy/plasmacutter/tool_use_check(mob/living/user, amount) if(QDELETED(cell)) to_chat(user, "[src] does not have a cell, and cannot be used!") return FALSE - // Amount cannot be used if drain is made continuous, e.g. amount = 5, charge_weld = 25 + // Amount cannot be used if drain is made continuous, e.g. amount = 5, charge_cut = 25 // Then it'll drain 125 at first and 25 periodically, but fail if charge dips below 125 even though it still can finish action - // Alternately it'll need to drain amount*charge_weld every period, which is either obscene or makes it free for other uses - if(amount ? cell.charge < charge_weld * amount : cell.charge < charge_weld) + // Alternately it'll need to drain amount*charge_cut every period, which is either obscene or makes it free for other uses + if(amount ? cell.charge < charge_cut * amount : cell.charge < charge_cut) to_chat(user, "You need more charge to complete this task!") return FALSE @@ -186,13 +187,19 @@ return TRUE /obj/item/gun/energy/plasmacutter/use(amount) - return (!QDELETED(cell) && cell.use(amount ? amount * charge_weld : charge_weld)) + return (!QDELETED(cell) && cell.use(amount ? amount * charge_cut : charge_cut)) /obj/item/gun/energy/plasmacutter/use_tool(atom/target, mob/living/user, delay, amount=1, volume=0, datum/callback/extra_checks) if(amount) - target.add_overlay(GLOB.welding_sparks) + if(adv) + target.add_overlay(GLOB.advanced_cutting_effect) + else + target.add_overlay(GLOB.cutting_effect) . = ..() - target.cut_overlay(GLOB.welding_sparks) + if(adv) + target.cut_overlay(GLOB.advanced_cutting_effect) + else + target.cut_overlay(GLOB.cutting_effect) else . = ..(amount=1) @@ -201,11 +208,9 @@ icon_state = "adv_plasmacutter" item_state = "adv_plasmacutter" force = 15 + wall_decon_damage = 300 ammo_type = list(/obj/item/ammo_casing/energy/plasma/adv) - wall_decon_damage = 200 - toolspeed = 0.4 - /obj/item/gun/energy/wormhole_projector name = "bluespace wormhole projector" desc = "A projector that emits high density quantum-coupled bluespace beams." //WS Edit - Any anomaly core for phazons diff --git a/code/modules/projectiles/projectile/special/plasma.dm b/code/modules/projectiles/projectile/special/plasma.dm index d957ad924572..68071bd2c557 100644 --- a/code/modules/projectiles/projectile/special/plasma.dm +++ b/code/modules/projectiles/projectile/special/plasma.dm @@ -1,10 +1,10 @@ /obj/projectile/plasma name = "plasma blast" icon_state = "plasmacutter" - damage_type = BRUTE - damage = 5 + damage_type = BURN + damage = 15 range = 4 - dismemberment = 20 + dismemberment = 10 /// chance that the plasmablast ruins the ore var/slag_chance = 33 impact_effect_type = /obj/effect/temp_visual/impact_effect/purple_laser diff --git a/code/modules/surgery/organic_steps.dm b/code/modules/surgery/organic_steps.dm index 8959a7f99715..39fb1d71b258 100644 --- a/code/modules/surgery/organic_steps.dm +++ b/code/modules/surgery/organic_steps.dm @@ -152,13 +152,17 @@ implements = list( TOOL_SAW = 100, /obj/item/melee/axe/fire = 50, + /obj/item/gear_handle/anglegrinder = 50, /obj/item/melee/arm_blade = 40, /obj/item/hatchet = 40, /obj/item/melee/knife/butcher = 33, + /obj/item/gun/energy/plasmacutter = 30, /obj/item = 10) //10% success (sort of) with any sharp item with a force>=10 time = 5.4 SECONDS preop_sound = list( /obj/item/circular_saw = 'sound/surgery/saw.ogg', + /obj/item/gear_handle/anglegrinder = 'sound/surgery/saw.ogg', + /obj/item/gun/energy/plasmacutter = 'sound/weapons/plasma_cutter.ogg', /obj/item/melee/arm_blade = 'sound/surgery/scalpel1.ogg', /obj/item/melee/axe/fire = 'sound/surgery/scalpel1.ogg', /obj/item/hatchet = 'sound/surgery/scalpel1.ogg', diff --git a/icons/effects/cutting_effect.dmi b/icons/effects/cutting_effect.dmi new file mode 100644 index 0000000000000000000000000000000000000000..e8b4abeec5d087d5859cfd4243b70eb771f8a4fe GIT binary patch literal 1628 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
    Ji9tcDNlKLX7 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 nNU4SELd#^oqvihwAuaN(PFy5cX6SIp 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

  • RC_s45)!6_m&0^I8BtbTnykug1{EHHiJ%a# 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 literal 65925 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

    JmH&3vqAyD!9`fB0F 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%0DNU&9N7DkV#tjELh>3a_@k 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

    ;rFl` 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%0D->Y6P%!?TL74~GLaqp$5 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 PKtMTp^o(7V4L2B$628Nmc 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 diff --git a/icons/mob/inhands/equipment/gear_handle_lefthand.dmi b/icons/mob/inhands/equipment/gear_handle_lefthand.dmi new file mode 100644 index 0000000000000000000000000000000000000000..169f91ce6eba90272a60d8bd835fa0bd9ffa7c0d GIT binary patch literal 2222 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 literal 0 HcmV?d00001 diff --git a/icons/obj/item/gear_packs.dmi b/icons/obj/item/gear_packs.dmi new file mode 100644 index 0000000000000000000000000000000000000000..76fb94bd4ff34adcfce99fc84629a461fc7727b9 GIT binary patch literal 3311 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 P3N(P!yr)s5ZWj12i6ZvA delta 2594 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
    Release notes

    Sourced from axios's releases.

    Release v1.7.4

    Release notes:

    Bug Fixes

    Contributors to this release

    Release v1.7.3

    Release notes:

    Bug Fixes

    • adapter: fix progress event emitting; (#6518) (e3c76fc)
    • fetch: fix withCredentials request config (#6505) (85d4d0e)
    • xhr: return original config on errors from XHR adapter (#6515) (8966ee7)

    Contributors to this release

    Release v1.7.2

    Release notes:

    Bug Fixes

    Contributors to this release

    Release v1.7.1

    Release notes:

    Bug Fixes

    • fetch: fixed ReferenceError issue when TextEncoder is not available in the environment; (#6410) (733f15f)

    Contributors to this release

    Release v1.7.0

    Release notes:

    Features

    ... (truncated)

    Changelog

    Sourced from axios's changelog.

    1.7.4 (2024-08-13)

    Bug Fixes

    Contributors to this release

    1.7.3 (2024-08-01)

    Bug Fixes

    • adapter: fix progress event emitting; (#6518) (e3c76fc)
    • fetch: fix withCredentials request config (#6505) (85d4d0e)
    • xhr: return original config on errors from XHR adapter (#6515) (8966ee7)

    Contributors to this release

    1.7.2 (2024-05-21)

    Bug Fixes

    Contributors to this release

    1.7.1 (2024-05-20)

    Bug Fixes

    • fetch: fixed ReferenceError issue when TextEncoder is not available in the environment; (#6410) (733f15f)

    Contributors to this release

    ... (truncated)

    Commits

    [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=axios&package-manager=npm_and_yarn&previous-version=1.6.1&new-version=1.7.4)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
    Dependabot commands and options
    You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/shiptest-ss13/Shiptest/network/alerts).
    Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- tgui/packages/tgui-dev-server/package.json | 2 +- tgui/yarn.lock | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/tgui/packages/tgui-dev-server/package.json b/tgui/packages/tgui-dev-server/package.json index a026558a47a1..1a0f4c972244 100644 --- a/tgui/packages/tgui-dev-server/package.json +++ b/tgui/packages/tgui-dev-server/package.json @@ -4,7 +4,7 @@ "version": "4.3.1", "type": "module", "dependencies": { - "axios": "^1.6.0", + "axios": "^1.7.4", "glob": "^7.1.7", "source-map": "^0.7.3", "stacktrace-parser": "^0.1.10", diff --git a/tgui/yarn.lock b/tgui/yarn.lock index bdf58e167804..6bb17b2fc675 100644 --- a/tgui/yarn.lock +++ b/tgui/yarn.lock @@ -2951,14 +2951,14 @@ __metadata: languageName: node linkType: hard -"axios@npm:^1.6.0": - version: 1.6.1 - resolution: "axios@npm:1.6.1" +"axios@npm:^1.7.4": + version: 1.7.5 + resolution: "axios@npm:1.7.5" dependencies: - follow-redirects: ^1.15.0 + follow-redirects: ^1.15.6 form-data: ^4.0.0 proxy-from-env: ^1.1.0 - checksum: 573f03f59b7487d54551b16f5e155d1d130ad4864ed32d1da93d522b78a57123b34e3bde37f822a65ee297e79f1db840f9ad6514addff50d3cbf5caeed39e8dc + checksum: 2859fe01437cf133eee35571abc1d4b5224bb13e530e66cb3581ca226e170541dd5eef9f46abb41592cee0a2f54930c9e4978354e0cf1064748fc20d9a05e9d5 languageName: node linkType: hard @@ -4814,13 +4814,13 @@ __metadata: languageName: node linkType: hard -"follow-redirects@npm:^1.15.0": - version: 1.15.4 - resolution: "follow-redirects@npm:1.15.4" +"follow-redirects@npm:^1.15.6": + version: 1.15.6 + resolution: "follow-redirects@npm:1.15.6" peerDependenciesMeta: debug: optional: true - checksum: e178d1deff8b23d5d24ec3f7a94cde6e47d74d0dc649c35fc9857041267c12ec5d44650a0c5597ef83056ada9ea6ca0c30e7c4f97dbf07d035086be9e6a5b7b6 + checksum: a62c378dfc8c00f60b9c80cab158ba54e99ba0239a5dd7c81245e5a5b39d10f0c35e249c3379eae719ff0285fff88c365dd446fab19dee771f1d76252df1bbf5 languageName: node linkType: hard @@ -8940,7 +8940,7 @@ resolve@^2.0.0-next.3: version: 0.0.0-use.local resolution: "tgui-dev-server@workspace:packages/tgui-dev-server" dependencies: - axios: ^1.6.0 + axios: ^1.7.4 glob: ^7.1.7 source-map: ^0.7.3 stacktrace-parser: ^0.1.10 From 588a191d891c889253d94c09e2e3ea260700803f Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Fri, 4 Oct 2024 23:56:09 -0400 Subject: [PATCH 103/167] Nanotrasen Turrets (#3451) ## About The Pull Request Adds Nanotrasen ship turrets. Nanotrasen ship turrets are higher rof, higher range, less damage, somewhat slower projectiles (not a major amount, but still slower). The only turret mapped in currently is the /light turret, on the Meta and Delta. A medium turret, heavy turret, and pulse turret are also defined for mapper usage. Note: They will not actually be higher ROF until #3407 is resolved. ## Why It's Good For The Game Continud turretification. ## Changelog :cl: add: Sharplite has produced a line of turrets for Nanotrasen, which is now mounting them on relevant vessels. /:cl: --- .../shuttles/nanotrasen/nanotrasen_delta.dmm | 18 ++++---- _maps/shuttles/nanotrasen/nanotrasen_meta.dmm | 42 +++++++++++-------- .../machinery/porta_turret/portable_turret.dm | 38 +++++++++++++++++ code/modules/projectiles/projectile/beams.dm | 23 ++++++++++ 4 files changed, 94 insertions(+), 27 deletions(-) diff --git a/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm b/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm index 00967afb927e..351e8e2df037 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_delta.dmm @@ -1371,9 +1371,9 @@ /turf/open/floor/plasteel/tech/techmaint, /area/ship/engineering) "jH" = ( -/obj/machinery/porta_turret/ship/weak{ - dir = 9; - id = "delta_grid" +/obj/machinery/porta_turret/ship/nt/light{ + id = "delta_grid"; + dir = 9 }, /turf/closed/wall/mineral/titanium, /area/ship/bridge) @@ -2891,9 +2891,9 @@ /turf/open/floor/plasteel/white, /area/ship/science/robotics) "WG" = ( -/obj/machinery/porta_turret/ship/weak{ - dir = 4; - id = "delta_grid" +/obj/machinery/porta_turret/ship/nt/light{ + id = "delta_grid"; + dir = 4 }, /turf/closed/wall/mineral/titanium, /area/ship/bridge) @@ -3018,9 +3018,9 @@ /turf/open/floor/plasteel/white, /area/ship/science/robotics) "YZ" = ( -/obj/machinery/porta_turret/ship/weak{ - dir = 10; - id = "delta_grid" +/obj/machinery/porta_turret/ship/nt/light{ + id = "delta_grid"; + dir = 10 }, /turf/closed/wall/mineral/titanium, /area/ship/bridge) diff --git a/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm b/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm index eaf4abc2b9b3..95b61c204b54 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_meta.dmm @@ -1680,9 +1680,10 @@ /turf/open/floor/plating, /area/ship/cargo) "jo" = ( -/obj/machinery/porta_turret/ship/weak{ - dir = 4; - id = "meta_grid" +/obj/machinery/porta_turret/ship/nt/light{ + id = "meta_grid"; + pixel_y = 0; + dir = 4 }, /turf/closed/wall/mineral/titanium, /area/ship/crew) @@ -2206,9 +2207,10 @@ /turf/open/floor/plasteel/dark, /area/ship/cargo) "uT" = ( -/obj/machinery/porta_turret/ship/weak{ - dir = 4; - id = "meta_grid" +/obj/machinery/porta_turret/ship/nt/light{ + id = "meta_grid"; + pixel_y = 0; + dir = 4 }, /turf/closed/wall/mineral/titanium, /area/ship/crew/canteen/kitchen) @@ -2399,9 +2401,10 @@ /turf/open/floor/plasteel, /area/ship/crew/canteen/kitchen) "yF" = ( -/obj/machinery/porta_turret/ship/weak{ - dir = 1; - id = "meta_grid" +/obj/machinery/porta_turret/ship/nt/light{ + id = "meta_grid"; + pixel_y = 0; + dir = 5 }, /turf/closed/wall/mineral/titanium, /area/ship/engineering) @@ -3079,9 +3082,10 @@ /turf/open/floor/plating, /area/ship/engineering) "Lo" = ( -/obj/machinery/porta_turret/ship/weak{ - dir = 2; - id = "meta_grid" +/obj/machinery/porta_turret/ship/nt/light{ + id = "meta_grid"; + pixel_y = 0; + dir = 6 }, /turf/closed/wall/mineral/titanium, /area/ship/engineering) @@ -3480,16 +3484,18 @@ /turf/open/floor/plasteel/dark, /area/ship/cargo) "TR" = ( -/obj/machinery/porta_turret/ship/weak{ - dir = 2; - id = "meta_grid" +/obj/machinery/porta_turret/ship/nt/light{ + id = "meta_grid"; + pixel_y = 0; + dir = 10 }, /turf/closed/wall/mineral/titanium, /area/ship/crew/canteen) "TV" = ( -/obj/machinery/porta_turret/ship/weak{ - dir = 1; - id = "meta_grid" +/obj/machinery/porta_turret/ship/nt/light{ + id = "meta_grid"; + pixel_y = 0; + dir = 9 }, /turf/closed/wall/mineral/titanium, /area/ship/crew) diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 663df697f01c..5c592c7409dd 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -842,6 +842,44 @@ DEFINE_BITFIELD(turret_flags, list( stun_projectile_sound = 'sound/weapons/gun/smg/shot.ogg' desc = "A ballistic machine gun auto-turret." +//high rof, range, faster projectile speed +/* 'Nanotrasen' turrets */ + +/obj/machinery/porta_turret/ship/nt + name = "Sharplite Defense Turret" + desc = "A cheap and effective turret designed by Sharplite and purchased and installed on most Nanotrasen Vessels." + faction = list(FACTION_PLAYER_NANOTRASEN, "turret") + icon_state = "standard_lethal" + base_icon_state = "standard" + stun_projectile = /obj/projectile/beam/disabler/sharplite + lethal_projectile = /obj/projectile/beam/laser/sharplite + lethal_projectile_sound = 'sound/weapons/gun/laser/nt-fire.ogg' + stun_projectile_sound = 'sound/weapons/taser2.ogg' + shot_delay = 10 + scan_range = 10 + +/obj/machinery/porta_turret/ship/nt/light + name = "Sharplite LDS" + desc = "A cheap and effective 'defensive system' designed by Sharplite for installation on Nanotrasen vessels." + stun_projectile = /obj/projectile/beam/disabler/weak/sharplite + lethal_projectile = /obj/projectile/beam/laser/light/sharplite + lethal_projectile_sound = 'sound/weapons/gun/laser/nt-fire.ogg' + stun_projectile_sound = 'sound/weapons/taser2.ogg' + + +/obj/machinery/porta_turret/ship/nt/heavy + name = "Sharplite Defense Cannon" + desc = "A heavy laser mounting designed by Sharplite for usage on Nanotrasen vessels." + lethal_projectile = /obj/projectile/beam/laser/heavylaser/sharplite + lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg' + +/obj/machinery/porta_turret/ship/nt/pulse + name = "Sharplite Pulse Cannon" + desc = "A pulse cannon mounting designed by Sharplite. Not sold to any purchasers and exclusively used on Nanotrasen Vessels." + lethal_projectile = /obj/projectile/beam/pulse/sharplite_turret + lethal_projectile_sound = 'sound/weapons/gun/laser/heavy_laser.ogg' + + /* Syndicate Turrets */ diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index c46a4c6cb2f9..b95c3dd37ddb 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -37,6 +37,15 @@ muzzle_type = /obj/effect/projectile/muzzle/laser impact_type = /obj/effect/projectile/impact/laser +/obj/projectile/beam/laser/sharplite + speed = 0.4 + +/obj/projectile/beam/laser/light + damage = 15 + +/obj/projectile/beam/laser/light/sharplite + speed = 0.4 + /obj/projectile/beam/laser/eoehoma damage = 25 armour_penetration = -10 @@ -54,6 +63,9 @@ muzzle_type = /obj/effect/projectile/muzzle/heavy_laser impact_type = /obj/effect/projectile/impact/heavy_laser +/obj/projectile/beam/laser/heavylaser/sharplite + speed = 0.4 + /obj/projectile/beam/laser/on_hit(atom/target, blocked = FALSE) . = ..() if(iscarbon(target)) @@ -119,9 +131,15 @@ muzzle_type = /obj/effect/projectile/muzzle/disabler impact_type = /obj/effect/projectile/impact/disabler +/obj/projectile/beam/disabler/sharplite + speed = 0.4 + /obj/projectile/beam/disabler/weak damage = 15 +/obj/projectile/beam/disabler/weak/sharplite + speed = 0.4 + /obj/projectile/beam/disabler/weak/negative_ap armour_penetration = -30 range = 9 @@ -148,6 +166,11 @@ return targets_turf.IgniteTurf(rand(8,22), "blue") +/obj/projectile/beam/pulse/sharplite_turret + wall_damage_flags = null + wall_damage_override = 0 + speed = 0.4 + /obj/projectile/beam/pulse/shotgun damage = 40 From b0098229bebb1a36b589347cd69c23b86868b5ae Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 5 Oct 2024 00:10:21 -0500 Subject: [PATCH 104/167] Automatic changelog generation for PR #3451 [ci skip] --- html/changelogs/AutoChangeLog-pr-3451.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3451.yml diff --git a/html/changelogs/AutoChangeLog-pr-3451.yml b/html/changelogs/AutoChangeLog-pr-3451.yml new file mode 100644 index 000000000000..a09e9e0324b7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3451.yml @@ -0,0 +1,5 @@ +author: Bjarl +changes: + - {rscadd: 'Sharplite has produced a line of turrets for Nanotrasen, which is now + mounting them on relevant vessels.'} +delete-after: true From 5f9d09f7c5592a510a6f4f906e3cce15044363a5 Mon Sep 17 00:00:00 2001 From: Sadhorizon <108196626+Sadhorizon@users.noreply.github.com> Date: Sat, 5 Oct 2024 21:15:32 +0200 Subject: [PATCH 105/167] Komodo FO is now an officer. (#3449) ## About The Pull Request Title plus puts them at the top of the list. ## Why It's Good For The Game FOs are officers and at the top of the list. ## Changelog :cl: fix: Komodo Bridge Officer is now actually an officer. /:cl: --- _maps/configs/syndicate_gorlex_komodo.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/_maps/configs/syndicate_gorlex_komodo.json b/_maps/configs/syndicate_gorlex_komodo.json index ca72d5b0eef5..b51dee46ffd9 100644 --- a/_maps/configs/syndicate_gorlex_komodo.json +++ b/_maps/configs/syndicate_gorlex_komodo.json @@ -29,6 +29,11 @@ "officer": true, "slots": 1 }, + "Bridge Officer": { + "outfit": "/datum/outfit/job/syndicate/head_of_personnel/cybersun", + "officer": true, + "slots": 1 + }, "Medic": { "outfit": "/datum/outfit/job/syndicate/doctor/gorlex", "slots": 1 @@ -44,10 +49,6 @@ "Deck Assistant": { "outfit": "/datum/outfit/job/syndicate/assistant/gorlex", "slots": 2 - }, - "Bridge Officer": { - "outfit": "/datum/outfit/job/syndicate/head_of_personnel/cybersun", - "slots": 1 } }, "enabled": true From c06cd86246f21eb9bd8247862c830dd69efaaae5 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 5 Oct 2024 14:26:07 -0500 Subject: [PATCH 106/167] Automatic changelog generation for PR #3449 [ci skip] --- html/changelogs/AutoChangeLog-pr-3449.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3449.yml diff --git a/html/changelogs/AutoChangeLog-pr-3449.yml b/html/changelogs/AutoChangeLog-pr-3449.yml new file mode 100644 index 000000000000..b13db714084e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3449.yml @@ -0,0 +1,4 @@ +author: Sadhorizon +changes: + - {bugfix: Komodo Bridge Officer is now actually an officer.} +delete-after: true From 9677097580df8d89d8c2704073e0d0b82668bf59 Mon Sep 17 00:00:00 2001 From: Apogee-dev <60533805+Apogee-dev@users.noreply.github.com> Date: Sat, 5 Oct 2024 13:30:52 -0700 Subject: [PATCH 107/167] Nanotrasen Harrier-class Exploration Cruiser (#3185) ## About The Pull Request ![harrier](https://github.com/user-attachments/assets/34ba8038-b64e-4da9-be85-a448e1d71262) ![harrier_areas](https://github.com/user-attachments/assets/c777f96d-b8b5-484e-910b-53b81a4aaeb5) _Originally an advanced ICW-era command cruiser, the surviving Harriers have been refurbished as exploration and "reclamation" ships in the post-ICW era. Large, well-rounded, and boasting excellent crew accomodations, Harriers are exceedingly popular with Nanotrasen crews in spite of their lack of specialized equipment._ Replaces both the Osprey and the Skipper with the Harrier, filling roughly the same role. Key features: - Internal Affairs office - Security office with working brig - Dedicated AI core - Working mail and disposals system - A fancy atrium - The sector's biggest cafeteria Hopefully this irons out some of the more common issues with the Osprey and makes for a more well-rounded and enjoyable ship that _actually gives Nanotrasen security slots for once._ ## Why It's Good For The Game Osprey is crungled and Skipper competes for niche space. Harrier should do better than either, with more polish and faction flavor. ## Changelog :cl: add: Added Nanotrasen Harrier-class cruiser del: Removed Osprey-class cruiser del: Removed Skipper-class cruiser /:cl: --- _maps/configs/nanotrasen_harrier.json | 76 + _maps/configs/nanotrasen_osprey.json | 75 - _maps/configs/nanotrasen_skipper.json | 64 - ...asen_osprey.dmm => nanotrasen_harrier.dmm} | 17303 +++++++++------- .../nanotrasen/nanotrasen_skipper.dmm | 7391 ------- .../clothing/outfits/factions/nanotrasen.dm | 11 +- 6 files changed, 9657 insertions(+), 15263 deletions(-) create mode 100644 _maps/configs/nanotrasen_harrier.json delete mode 100644 _maps/configs/nanotrasen_osprey.json delete mode 100644 _maps/configs/nanotrasen_skipper.json rename _maps/shuttles/nanotrasen/{nanotrasen_osprey.dmm => nanotrasen_harrier.dmm} (52%) delete mode 100644 _maps/shuttles/nanotrasen/nanotrasen_skipper.dmm diff --git a/_maps/configs/nanotrasen_harrier.json b/_maps/configs/nanotrasen_harrier.json new file mode 100644 index 000000000000..161a699c2783 --- /dev/null +++ b/_maps/configs/nanotrasen_harrier.json @@ -0,0 +1,76 @@ +{ + "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", + "map_name": "Harrier-class Exploration Cruiser", + "prefix": "NTSV", + "faction": "/datum/faction/nt", + "namelists": [ + "NANOTRASEN", + "SPACE", + "MYTHOLOGICAL", + "WEAPONS" + ], + "map_short_name": "Harrier-class", + "map_path": "_maps/shuttles/nanotrasen/nanotrasen_harrier.dmm", + "description": "Originally an advanced ICW-era command cruiser, the surviving Harriers have been refurbished as exploration and \"reclamation\" ships in the post-ICW era. Large, well-rounded, and boasting excellent crew accomodations, Harriers are exceedingly popular with Nanotrasen crews in spite of their lack of specialized equipment.", + "tags": ["Generalist"], + "limit": 1, + "starting_funds": 4000, + "job_slots": { + "Captain": { + "outfit": "/datum/outfit/job/nanotrasen/captain", + "officer": true, + "slots": 1 + }, + "First Officer": { + "outfit": "/datum/outfit/job/nanotrasen/hop", + "officer": true, + "slots": 1 + }, + "Supply Director": { + "outfit": "/datum/outfit/job/nanotrasen/quartermaster", + "officer":true, + "slots": 1 + }, + "Internal Affairs Agent": { + "outfit": "/datum/outfit/job/nanotrasen/lawyer/corporaterepresentative", + "slots": 1 + }, + "Security Officer": { + "outfit": "/datum/outfit/job/nanotrasen/security", + "slots": 1 + }, + "Medical Doctor": { + "outfit": "/datum/outfit/job/nanotrasen/doctor", + "slots": 1 + }, + "Paramedic": { + "outfit": "/datum/outfit/job/nanotrasen/paramedic", + "slots": 1 + }, + "Engineer": { + "outfit": "/datum/outfit/job/nanotrasen/engineer", + "slots": 1 + }, + "Atmospheric Technician": { + "outfit": "/datum/outfit/job/nanotrasen/atmos", + "slots": 1 + }, + "Cargo Technician": { + "outfit": "/datum/outfit/job/nanotrasen/cargo_tech", + "slots": 1 + }, + "Cook": { + "outfit": "/datum/outfit/job/independent/cook", + "slots": 1 + }, + "Janitor": { + "outfit": "/datum/outfit/job/nanotrasen/janitor", + "slots": 1 + }, + "Assistant": { + "outfit": "/datum/outfit/job/nanotrasen/assistant", + "slots": 2 + } + }, + "enabled": true +} diff --git a/_maps/configs/nanotrasen_osprey.json b/_maps/configs/nanotrasen_osprey.json deleted file mode 100644 index 473389fce14f..000000000000 --- a/_maps/configs/nanotrasen_osprey.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", - "map_name": "Osprey-class Exploration Cruiser", - "faction": "/datum/faction/nt", - "prefix": "NTSV", - "namelists": [ - "NANOTRASEN", - "SPACE", - "MYTHOLOGICAL", - "WEAPONS" - ], - "map_short_name": "Osprey-class", - "map_path": "_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm", - "description": "Some of the most modern ships in Nanotrasen’s fleet and a prestigious assignment for their captains, the famed Osprey of the ICW’s most dramatic astronautical engagements lives on as a very well-appointed exploration ship. Extensively refurbished from their origins as Bluespace Artillery platforms, the contemporary Osprey repurposes military-grade sensor equipment and AI systems for exploration and scientific work. Features include respectably-equipped medical, culinary, and scientific facilities and an AI core, as well as a ship-wide disposals and delivery system and a very spacious cargo bay. However, the powerful (if temperamental) supermatter engines that powered the initial batch of Ospreys were stripped out during their rebuilds, and the replacement generator banks have left contemporary Ospreys somewhat power-starved.", - "tags": ["Cargo", "Robotics", "Generalist"], - "limit": 1, - "starting_funds": 4000, - "job_slots": { - "Captain": { - "outfit": "/datum/outfit/job/nanotrasen/captain", - "officer": true, - "slots": 1 - }, - "First Officer": { - "outfit": "/datum/outfit/job/nanotrasen/hop", - "officer": true, - "slots": 1 - }, - "Scientist": { - "outfit": "/datum/outfit/job/nanotrasen/scientist", - "slots": 2 - }, - "Medical Doctor": { - "outfit": "/datum/outfit/job/nanotrasen/doctor", - "slots": 1 - }, - "Paramedic": { - "outfit": "/datum/outfit/job/nanotrasen/paramedic", - "slots": 1 - }, - "Engineer": { - "outfit": "/datum/outfit/job/nanotrasen/engineer", - "slots": 1 - }, - "Atmospheric Technician": { - "outfit": "/datum/outfit/job/nanotrasen/atmos", - "slots": 1 - }, - "Quartermaster": { - "outfit": "/datum/outfit/job/nanotrasen/quartermaster", - "slots": 1 - }, - "Cargo Technician": { - "outfit": "/datum/outfit/job/nanotrasen/cargo_tech", - "slots": 1 - }, - "Shaft Miner": { - "outfit": "/datum/outfit/job/nanotrasen/miner", - "slots": 1 - }, - "Cook": { - "outfit": "/datum/outfit/job/cook", - "slots": 1 - }, - "Janitor": { - "outfit": "/datum/outfit/job/janitor", - "slots": 1 - }, - "Assistant": { - "outfit": "/datum/outfit/job/nanotrasen/assistant", - "slots": 3 - } - }, - "enabled": true -} diff --git a/_maps/configs/nanotrasen_skipper.json b/_maps/configs/nanotrasen_skipper.json deleted file mode 100644 index a64c4c777342..000000000000 --- a/_maps/configs/nanotrasen_skipper.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json", - "map_name": "Skipper-class Heavy Cruiser", - "faction": "/datum/faction/nt", - "map_short_name": "Skipper-class", - "prefix": "NTSV", - "namelists": [ - "NANOTRASEN", - "SPACE", - "MYTHOLOGICAL", - "WEAPONS", - "MERCANTILE" - ], - "map_path": "_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm", - "description": "An example of one of Nanotrasen’s “standard-pattern” cruisers. The Skipper-class is well-equipped by Frontier standards, with ample room for engineering equipment, well-appointed crew accommodations, and a decent supply of defensive weaponry. Notably, the Skipper comes with a larger command section than average, and the officers on Skippers tend to be better-equipped than their peers. Though not as prestigious as a position aboard an Osprey, few Nanotrasen captains would turn down a position commanding a Skipper.", - "tags": [ - "Engineering", - "Mining" - ], - "starting_funds": 4500, - "job_slots": { - "Captain": { - "outfit": "/datum/outfit/job/nanotrasen/captain", - "officer": true, - "slots": 1 - }, - "First Officer": { - "outfit": "/datum/outfit/job/nanotrasen/hop", - "officer": true, - "slots": 1 - }, - "Internal Affairs Agent": { - "outfit": "/datum/outfit/job/nanotrasen/lawyer/corporaterepresentative", - "slots" : 1 - }, - "Medical Doctor": 1, - "Engineer": { - "outfit": "/datum/outfit/job/nanotrasen/engineer", - "slots": 1 - }, - "Atmospheric Technician": { - "outfit": "/datum/outfit/job/nanotrasen/atmos", - "slots": 1 - }, - "Shaft Miner": 2, - "Cargo Technician": { - "outfit": "/datum/outfit/job/nanotrasen/cargo_tech", - "slots": 1 - }, - "Security Officer": { - "outfit": "/datum/outfit/job/nanotrasen/security", - "slots": 1 - }, - "Cook": { - "outfit": "/datum/outfit/job/cook", - "slots": 1 - }, - "Assistant": { - "outfit": "/datum/outfit/job/assistant", - "slots": 3 - } - }, - "enabled": true -} diff --git a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm b/_maps/shuttles/nanotrasen/nanotrasen_harrier.dmm similarity index 52% rename from _maps/shuttles/nanotrasen/nanotrasen_osprey.dmm rename to _maps/shuttles/nanotrasen/nanotrasen_harrier.dmm index 4079e386726f..9e5d93f7af77 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_osprey.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_harrier.dmm @@ -1,966 +1,1022 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"ac" = ( -/obj/structure/chair/comfy/orange/directional/north, -/obj/structure/closet/secure_closet/wall/directional/west{ - icon_door = "sec_wall"; - icon_state = "sec_wall"; - name = "gun locker"; - req_access_txt = "19" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-2" +"ad" = ( +/obj/effect/turf_decal/corner/opaque/white{ + dir = 4 }, -/obj/item/storage/backpack/duffelbag/sec, -/obj/item/storage/backpack/messenger/sec, -/obj/item/storage/backpack/satchel/sec, -/obj/item/storage/backpack/security, -/obj/item/clothing/accessory/armband, -/obj/item/clothing/suit/armor/vest, -/obj/item/storage/box/handcuffs, -/obj/item/storage/box/deputy, -/obj/item/stock_parts/cell/gun, -/obj/item/stock_parts/cell/gun/mini, -/obj/item/stock_parts/cell/gun/mini, -/obj/item/ammo_box/magazine/co9mm, -/obj/item/ammo_box/magazine/co9mm, -/obj/item/gun/energy/e_gun, -/obj/item/gun/ballistic/automatic/pistol/commander/no_mag, -/obj/item/gun/energy/e_gun/mini, -/obj/item/gun/energy/e_gun/mini, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"aj" = ( -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/corner/opaque/white{ dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"ak" = ( -/obj/effect/turf_decal/corner/opaque/ntblue{ +/obj/structure/disposalpipe/segment{ dir = 8 }, /turf/open/floor/plasteel, -/area/ship/hallway/central) -"ao" = ( -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 4; - icon_state = "passive_vent_map-2"; - piping_layer = 1 +/area/ship/crew/canteen) +"ai" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 }, -/turf/open/floor/engine/hull, -/area/ship/external) -"ap" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/wood, +/area/ship/crew) +"aq" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable{ icon_state = "1-2" }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"av" = ( /obj/structure/cable{ - icon_state = "2-8" + icon_state = "5-10" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"ar" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 +/obj/structure/cable{ + icon_state = "1-10" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "2-8" + dir = 4 }, -/obj/structure/cable{ - icon_state = "1-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"aE" = ( -/obj/structure/sign/nanotrasen, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/cargo/office) -"aI" = ( -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"aL" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/machinery/computer/cargo{ +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"aA" = ( +/obj/docking_port/stationary{ + dwidth = 15; + height = 15; + width = 30 + }, +/turf/template_noop, +/area/template_noop) +"aC" = ( +/obj/structure/fluff/hedge, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 1 +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/canteen) +"aE" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrier_disposals"; + name = "Disposals Blast Door" }, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"aW" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 4; + id = "harrier_disposalfield"; + locked = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"aY" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 + icon_state = "0-4" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/turf/open/floor/plating, +/area/ship/engineering) +"aH" = ( +/obj/structure/fluff/hedge, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/end, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/canteen) +"aL" = ( +/obj/structure/sign/warning/docking{ + pixel_y = 9 }, -/obj/structure/cable{ - icon_state = "4-8" +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/port) +"aO" = ( +/obj/structure/railing{ + dir = 8 }, -/obj/structure/sign/poster/official/get_your_legs{ - pixel_y = 32 +/obj/structure/extinguisher_cabinet/directional/north, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 }, -/obj/machinery/camera/autoname{ - dir = 6 +/obj/structure/bed/dogbed, +/mob/living/simple_animal/pet/dog/corgi/puppy{ + name = "Louis Tennant" }, -/obj/structure/railing, -/turf/open/floor/plasteel/stairs{ +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"aR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/area/ship/hallway/central) -"bb" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/sign/poster/retro/we_watch{ - pixel_x = 32 - }, -/obj/machinery/camera/autoname{ +/obj/machinery/light/directional/north, +/obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"bg" = ( -/obj/effect/turf_decal/box/corners, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +"aX" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"ba" = ( +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"bc" = ( +/obj/machinery/door/airlock/mining{ + name = "Cargo Office"; + req_access_txt = "31" + }, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"bh" = ( -/obj/effect/turf_decal/corner/opaque/green{ - dir = 1 - }, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"bl" = ( -/obj/machinery/door/airlock/external/glass, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/borderfloor, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"bs" = ( -/obj/structure/table, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel, -/area/ship/crew/cryo) -"bw" = ( -/obj/effect/turf_decal/industrial/warning/corner{ +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/dark, -/area/ship/science/ai_chamber) -"bA" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/structure/disposalpipe/segment{ - dir = 9 +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/borderfloor{ + dir = 1 }, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"bF" = ( /turf/open/floor/plasteel, /area/ship/cargo) -"bG" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "osprey_packagesort" +"bd" = ( +/obj/structure/window/reinforced{ + dir = 8 }, -/obj/machinery/light/directional/south, -/turf/open/floor/plating, -/area/ship/cargo/office) -"bH" = ( -/obj/machinery/autolathe, -/obj/machinery/airalarm/directional/east, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 4 +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/yellow{ +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/yellow, -/obj/structure/sign/poster/official/safety_eye_protection{ - pixel_y = 32 +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/janitor) +"be" = ( +/obj/structure/sign/directions/security{ + dir = 8 }, -/turf/open/floor/plasteel/patterned/grid, +/obj/structure/sign/directions/engineering{ + dir = 8; + pixel_y = 6 + }, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/central) +"bg" = ( +/obj/item/radio/intercom/directional/east, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/plasteel, /area/ship/engineering) -"bN" = ( -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 1 +"bi" = ( +/obj/structure/cable{ + icon_state = "0-4" }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/machinery/power/terminal{ dir = 8 }, /obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/obj/effect/turf_decal/industrial/stand_clear{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/ship/cargo) -"bT" = ( -/obj/structure/spider/stickyweb, -/obj/effect/spawner/lootdrop/maintenance, -/obj/item/toy/figure/cargotech, /turf/open/floor/plating, -/area/ship/cargo) -"cd" = ( -/obj/machinery/door/airlock/medical{ - name = "Infirmary"; - req_access_txt = "5"; - dir = 4 +/area/ship/engineering/atmospherics) +"bk" = ( +/obj/effect/turf_decal/atmos/air, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + external_pressure_bound = 13000 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/turf/open/floor/engine/air, +/area/ship/engineering/atmospherics) +"bn" = ( +/obj/structure/cable{ + icon_state = "1-8" }, -/obj/effect/turf_decal/borderfloor{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/arrow_ccw{ + dir = 1 }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"bp" = ( +/obj/machinery/firealarm/directional/south, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/effect/turf_decal/trimline/opaque/blue/line, +/obj/structure/chair/handrail{ + dir = 1 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/white, /area/ship/medical) -"ce" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +"bu" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"cg" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = -5; - pixel_y = -24 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"ch" = ( -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"bv" = ( +/obj/machinery/photocopier, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"bH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ dir = 8 }, +/obj/effect/turf_decal/trimline/opaque/vired/filled/corner, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"bJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 + dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4; + sortTypes = list(17,18,19,20,21); + tag = "Kitchen" }, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"bK" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-2" }, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"ci" = ( +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5, +/obj/machinery/power/smes/engineering, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"bL" = ( /obj/structure/reagent_dispensers/fueltank, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/patterned/grid, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plasteel/tech, /area/ship/engineering) -"co" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/ship/science) -"cp" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 10 +"bM" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ + dir = 1 }, -/obj/machinery/atmospherics/components/binary/pump/layer4{ - dir = 1; - icon_state = "pump_map-5"; - piping_layer = 5 +/turf/open/floor/plasteel, +/area/ship/storage/eva) +"bR" = ( +/obj/effect/turf_decal/ntspaceworks_big/one{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/visible/layer2{ - dir = 9 +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20; + pixel_y = 0 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"cq" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/canteen) -"ct" = ( -/obj/structure/closet/secure_closet{ - icon_state = "science"; - name = "scientist's locker"; - req_access_txt = "47" +/obj/structure/chair/handrail{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/mauve{ - dir = 4 +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"bU" = ( +/obj/structure/chair/sofa/blue/corpo/right, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ + dir = 1 }, -/obj/effect/turf_decal/corner/opaque/mauve{ +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"bW" = ( +/obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/obj/item/storage/backpack/duffelbag, -/obj/item/storage/backpack/messenger/tox, -/obj/item/storage/backpack/satchel/tox, -/obj/item/storage/backpack/science, -/obj/item/clothing/shoes/sneakers/white, -/obj/item/clothing/under/rank/rnd/scientist/skirt, -/obj/item/clothing/under/rank/rnd/scientist, -/obj/item/clothing/suit/toggle/labcoat/science, -/obj/item/clothing/glasses/science, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/white, -/area/ship/science) -"cD" = ( -/obj/machinery/door/window/brigdoor/westleft{ - name = "AI Core Access"; - req_one_access_txt = "16" +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/structure/rack, -/obj/item/aicard, -/obj/item/borg/upgrade/ai, -/obj/item/mmi/posibrain, -/turf/open/floor/circuit, -/area/ship/science/ai_chamber) -"cI" = ( -/turf/open/floor/plasteel/dark, -/area/ship/science/ai_chamber) -"cJ" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 8 +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"cK" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/turf/open/floor/wood, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"bX" = ( +/obj/machinery/vending/boozeomat, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/crew/canteen) -"cL" = ( -/obj/machinery/airalarm/directional/west, +"cb" = ( +/obj/machinery/photocopier, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/wood, +/area/ship/crew/law_office) +"cc" = ( +/obj/structure/chair/sofa/blue/corpo/left/directional/west, /obj/effect/turf_decal/siding/wood{ - dir = 9 + dir = 6 }, +/obj/item/radio/intercom/directional/south, /turf/open/floor/wood, -/area/ship/crew/canteen) -"cN" = ( -/obj/machinery/mineral/unloading_machine{ - input_dir = 2; - output_dir = 1 +/area/ship/crew) +"cf" = ( +/obj/structure/sign/departments/engineering, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/port) +"cg" = ( +/obj/machinery/power/smes/shuttle/precharged{ + dir = 4 }, -/turf/open/floor/plating, -/area/ship/cargo) -"cT" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 5 +/obj/structure/cable{ + icon_state = "0-8" }, -/obj/structure/window/plasma/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/visible/layer2{ - dir = 6 +/turf/open/floor/plating, +/area/ship/engineering) +"ch" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"cY" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/effect/turf_decal/corner/transparent/neutral{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"cl" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 + dir = 6 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 + dir = 6 }, -/obj/structure/cable{ - icon_state = "2-8" +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"cm" = ( +/obj/machinery/door/airlock/external, +/obj/machinery/atmospherics/pipe/layer_manifold, +/turf/open/floor/plasteel/tech, +/area/ship/hallway/port) +"co" = ( +/obj/structure/chair/comfy/blue/corpo{ + dir = 1 }, -/obj/machinery/light_switch{ - pixel_x = 20; - dir = 8; - pixel_y = 0 +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable{ + icon_state = "0-4" }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"dm" = ( -/obj/effect/turf_decal/industrial/stand_clear, +/turf/open/floor/wood, +/area/ship/crew/law_office) +"cp" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/cryo) +"ct" = ( /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"do" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "AI Chamber"; - req_access_txt = "24" - }, -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/poddoor/preopen{ - id = "osprey_disposals_preopen" +/turf/open/floor/plasteel/mono, +/area/ship/storage/eva) +"cx" = ( +/obj/structure/chair/sofa/blue/corpo/left, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ + dir = 1 }, -/obj/effect/turf_decal/industrial/warning/fulltile, -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, -/turf/open/floor/plasteel/tech/grid, -/area/ship/science/ai_chamber) -"dr" = ( -/obj/effect/turf_decal/industrial/warning/corner{ +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"cy" = ( +/obj/machinery/atmospherics/pipe/manifold/purple/visible, +/obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/obj/machinery/turretid{ - pixel_y = -28; - req_access = null; - req_access_txt = "16" +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"cz" = ( +/obj/machinery/vending/coffee, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"cB" = ( +/turf/closed/wall/mineral/titanium/interior, +/area/ship/hallway/starboard) +"cE" = ( +/obj/structure/table, +/obj/item/storage/box/cups{ + pixel_y = 6 }, -/obj/machinery/light/directional/south, +/obj/machinery/airalarm/directional/west, /turf/open/floor/plasteel/dark, -/area/ship/science/ai_chamber) -"dw" = ( -/obj/machinery/cryopod{ - dir = 1 +/area/ship/bridge) +"cF" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 8 }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/plasteel/tech/grid, -/area/ship/crew/cryo) -"dx" = ( +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"cH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/obj/machinery/light/directional/south, /obj/structure/disposalpipe/segment{ - dir = 5 + dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"cN" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/effect/turf_decal/borderfloor{ dir = 4 }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/hallway/port) +"cS" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"dE" = ( -/obj/structure/sign/departments/medbay/alt, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/medical) -"dJ" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 6 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"cW" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/bar, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"dK" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 +"cY" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/obj/effect/turf_decal/siding/wideplating/dark, +/turf/open/floor/plasteel/stairs{ + dir = 8 + }, +/area/ship/bridge) +"da" = ( +/obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"dN" = ( -/obj/structure/disposalpipe/segment{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/industrial/caution, +/obj/structure/chair/handrail{ dir = 8 }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/hallway/port) +"dd" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/obj/machinery/light_switch{ + dir = 1; + pixel_x = -7; + pixel_y = -20 + }, +/obj/machinery/firealarm/directional/south{ + pixel_x = 5 + }, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"de" = ( +/obj/machinery/advanced_airlock_controller{ + pixel_x = -24 + }, +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/hallway/port) +"di" = ( +/obj/structure/bed, +/obj/item/bedsheet/medical, +/obj/structure/curtain, /turf/open/floor/plasteel/white, /area/ship/medical) -"dP" = ( -/obj/structure/bed, -/obj/structure/curtain/cloth/fancy, -/obj/item/bedsheet/captain, -/turf/open/floor/carpet/royalblue, -/area/ship/bridge) -"dS" = ( +"dj" = ( +/obj/structure/table/optable, +/turf/open/floor/plasteel/showroomfloor, +/area/ship/medical) +"do" = ( /obj/structure/cable{ - icon_state = "1-8" + icon_state = "4-8" }, -/obj/structure/window/plasma/reinforced{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/camera/autoname{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"ea" = ( -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/light/directional/south, +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/corner, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"dr" = ( +/obj/structure/closet/emcloset/wall/directional/west, +/turf/open/floor/plasteel, +/area/ship/bridge) +"dt" = ( +/obj/structure/sign/departments/restroom, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew) +"dv" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 }, -/obj/structure/cable{ - icon_state = "0-4" +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ + dir = 4 }, -/obj/machinery/power/apc/auto_name/directional/west, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/crew/cryo) -"eh" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor/shutters{ - id = "ospreycargo" +/turf/open/floor/plasteel/dark, +/area/ship/security) +"dz" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = -6 }, -/obj/machinery/door/firedoor/window, -/turf/open/floor/plating, -/area/ship/cargo/office) -"ej" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 +/obj/item/stamp/captain{ + pixel_x = 6 + }, +/obj/item/pen/fountain/captain{ + pixel_x = -6 }, +/turf/open/floor/carpet/royalblue, +/area/ship/bridge) +"dA" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer4, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/hallway/port) +"dB" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/corner/opaque/solgovgold{ - dir = 9 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 }, -/turf/open/floor/plasteel/dark, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono/dark, /area/ship/bridge) -"ep" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +"dF" = ( +/obj/effect/turf_decal/industrial/loading{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"dG" = ( +/turf/closed/wall/mineral/titanium/exterior, +/area/ship/storage/eva) +"dI" = ( +/obj/machinery/door/airlock{ + dir = 4; + name = "Custodial Closet"; + req_access_txt = "26" }, /obj/structure/cable{ - icon_state = "2-8" + icon_state = "4-8" }, -/obj/structure/cable{ - icon_state = "1-8" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"ez" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/mauve, -/obj/effect/turf_decal/corner/opaque/mauve{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/turf/open/floor/plasteel/white, -/area/ship/science) -"eB" = ( -/obj/machinery/vending/cola/random, /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/purple{ +/obj/effect/turf_decal/borderfloor{ dir = 8 }, /turf/open/floor/plasteel, -/area/ship/hallway/central) -"eD" = ( -/obj/structure/bed, -/obj/structure/curtain/cloth/fancy, -/obj/item/bedsheet/head_of_personnel, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/carpet/blue, -/area/ship/bridge) -"eE" = ( -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/industrial/warning{ +/area/ship/crew/janitor) +"dJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 }, -/turf/open/floor/plating, -/area/ship/engineering) -"eG" = ( -/obj/structure/disposalpipe/segment, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = -32 + }, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"dK" = ( +/obj/machinery/suit_storage_unit/standard_unit, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 + dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 +/obj/structure/sign/poster/official/safety_internals{ + pixel_x = -32 }, -/obj/structure/cable{ - icon_state = "1-8" +/obj/effect/turf_decal/borderfloor{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"eP" = ( -/obj/structure/disposalpipe/segment{ +/turf/open/floor/plasteel/tech/grid, +/area/ship/hallway/port) +"dL" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/structure/chair/handrail{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/hallway/port) +"dN" = ( +/obj/structure/railing{ + dir = 10; + layer = 3.1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/corner{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/chair/handrail{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 1 +/turf/open/floor/plasteel, +/area/ship/storage/eva) +"dO" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 +/obj/structure/cable/yellow{ + icon_state = "1-4" }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"eT" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/computer/atmos_control/incinerator{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"dV" = ( +/turf/closed/wall/mineral/titanium/exterior, +/area/ship/hallway/starboard) +"dX" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"ea" = ( +/obj/structure/closet/secure_closet/engineering_welding, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/tech, +/area/ship/engineering) +"ec" = ( +/obj/structure/table/reinforced, +/obj/machinery/computer/secure_data/laptop{ dir = 4; - sortTypes = list(5); - tag = "CE Office" + pixel_y = 6 }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/sign/poster/official/moth/hardhats{ - pixel_y = -32 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"eX" = ( -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"eg" = ( +/obj/machinery/computer/helm/viewscreen/directional/south, +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"ei" = ( +/obj/machinery/computer/security{ dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"eZ" = ( -/obj/structure/sign/warning/vacuum/external, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/science/ai_chamber) -"fa" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/vired/corner{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/camera, +/obj/structure/window/reinforced{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"fb" = ( -/obj/structure/bed, -/obj/item/bedsheet/dorms, -/obj/structure/curtain/bounty, -/obj/structure/sign/poster/official/ue_no{ - pixel_x = -32 - }, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"fc" = ( -/obj/structure/table/wood, -/obj/machinery/light/small/directional/north, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"fg" = ( -/obj/structure/disposalpipe/segment{ +/turf/open/floor/plasteel/dark, +/area/ship/security) +"ej" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/turf/open/floor/plasteel/showroomfloor, +/area/ship/medical) +"er" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-8" }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"fh" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/item/trash/can/food/peaches/maint, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plating, -/area/ship/cargo) -"fj" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/turf_decal/siding/wood, +/obj/machinery/light/small/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 9 }, +/turf/open/floor/wood, +/area/ship/crew) +"es" = ( +/obj/structure/closet/secure_closet/engineering_electrical, /obj/structure/cable{ - icon_state = "1-4" + icon_state = "1-8" }, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"fn" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/item/radio/intercom/directional/north{ - pixel_y = 22 +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/tech, +/area/ship/engineering) +"ew" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plating, -/area/ship/crew/janitor) -"fF" = ( -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/flasher{ + id = "Cell 1"; + pixel_x = -21 + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"ex" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/airalarm/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"ez" = ( /obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high/plus, -/obj/effect/turf_decal/corner/opaque/mauve{ - dir = 4 +/obj/item/lighter{ + pixel_x = 6; + pixel_y = 1 }, -/obj/effect/turf_decal/corner/opaque/mauve{ - dir = 1 +/obj/item/storage/fancy/cigarettes/cigpack_cannabis{ + pixel_x = -3; + pixel_y = 11 }, +/turf/open/floor/plasteel, +/area/ship/engineering) +"eA" = ( +/obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable{ icon_state = "0-2" }, -/obj/item/assembly/flash/handheld{ - pixel_x = 5 +/turf/open/floor/circuit, +/area/ship/science/ai_chamber) +"eG" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/item/assembly/flash/handheld{ - pixel_x = -5 +/obj/machinery/door/airlock/engineering/glass{ + dir = 4; + name = "Engineering"; + req_access_txt = "10" }, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/plasteel/white, -/area/ship/science) -"fJ" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/engine/hull, -/area/ship/external) -"fU" = ( -/obj/machinery/button/door{ - dir = 1; - id = "osprey_atmos"; - pixel_y = -25 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"ga" = ( -/obj/structure/table, /obj/structure/disposalpipe/segment{ dir = 8 }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"eJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/arrow_cw{ + dir = 1 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"eQ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"gc" = ( /obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 + dir = 8 }, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"gg" = ( -/obj/effect/turf_decal/industrial/warning{ +"eX" = ( +/obj/machinery/door/airlock/medical{ + dir = 4; + req_access_txt = "45" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"gi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"go" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/visible{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/structure/sign/poster/contraband/tools{ - pixel_y = 32 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/structure/reagent_dispensers/foamtank, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"gt" = ( -/obj/effect/turf_decal/corner/opaque/white{ +/turf/open/floor/plasteel/white, +/area/ship/medical) +"eY" = ( +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"eZ" = ( +/obj/structure/noticeboard{ + name = "Supply Requests Board"; + pixel_y = 25 + }, +/obj/structure/table/reinforced, +/obj/machinery/door/window/eastright, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "harriercargo" + }, +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/effect/landmark/start/cook, -/obj/machinery/holopad/emergency/bar, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"gw" = ( -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/patterned, +/turf/open/floor/plating, /area/ship/cargo) -"gy" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, +"fb" = ( /obj/structure/cable{ - icon_state = "1-4" + icon_state = "1-2" }, -/obj/structure/cable{ - icon_state = "1-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/closet/emcloset/wall/directional/west, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"fc" = ( +/obj/structure/table/wood/reinforced, +/obj/machinery/fax/nanotrasen, +/obj/machinery/light/small/directional/east, +/obj/machinery/button/door{ + dir = 1; + id = "harrieriaa"; + name = "window shutter"; + pixel_y = -22 + }, +/turf/open/floor/wood, +/area/ship/crew/law_office) +"fd" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/instrument/guitar{ + pixel_y = -2 }, -/obj/effect/turf_decal/industrial/shutoff, /turf/open/floor/plasteel, -/area/ship/hallway/central) -"gB" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ +/area/ship/engineering) +"fh" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/turf/open/floor/plasteel, -/area/ship/crew/cryo) -"gC" = ( -/obj/machinery/door/poddoor/shutters{ - id = "osprey_atmos"; - name = "Atmospherics Storage"; +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"gE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/industrial/warning, +/obj/item/radio/intercom/directional/east, /turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"gH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"gJ" = ( -/obj/effect/turf_decal/borderfloor{ - dir = 8 - }, -/obj/machinery/advanced_airlock_controller{ - pixel_x = -24 +/area/ship/engineering/engine) +"fi" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 }, -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2, /turf/open/floor/plasteel/tech/grid, +/area/ship/storage/eva) +"fl" = ( +/obj/structure/chair/sofa/blue/corpo/left/directional/north, +/turf/open/floor/plasteel, /area/ship/hallway/central) -"gM" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor/shutters{ - id = "ospreywindows" +"fn" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = 12; + pixel_y = 0 }, -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/plating, -/area/ship/crew/canteen) -"gT" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/bridge) -"gV" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/cryo) -"gW" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/industrial/shutoff, -/turf/open/floor/plasteel, -/area/ship/cargo) -"gX" = ( -/obj/machinery/power/terminal, -/obj/structure/cable, -/turf/open/floor/plating, -/area/ship/engineering) -"hc" = ( -/obj/effect/landmark/start/cargo_technician, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"hd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 +/obj/structure/sign/poster/official/cleanliness{ + pixel_x = 32 }, -/turf/open/floor/circuit, -/area/ship/science/ai_chamber) -"hg" = ( +/turf/open/floor/plasteel/white, +/area/ship/medical) +"fr" = ( /obj/effect/turf_decal/industrial/warning{ dir = 1 }, @@ -968,3046 +1024,2821 @@ dir = 9 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/hallway/central) -"hh" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/science) -"hj" = ( -/obj/machinery/mass_driver{ - dir = 8; - id = "osprey_disposals" +/obj/structure/chair/handrail{ + dir = 8 }, -/obj/item/reagent_containers/food/snacks/deadmouse, -/obj/structure/window/reinforced{ - dir = 4 +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/hallway/starboard) +"fu" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ + dir = 8 }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"fv" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/firedoor/window, /turf/open/floor/plating, -/area/ship/crew/janitor) -"hl" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/lightgrey{ - dir = 9 +/area/ship/medical) +"fw" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"hm" = ( -/obj/machinery/holopad/emergency/atmos, -/obj/effect/turf_decal/box, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"hr" = ( -/obj/machinery/power/smes/engineering, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"hs" = ( -/obj/structure/sign/number/eight{ - color = "Black"; - dir = 1 - }, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/science) -"ht" = ( -/obj/structure/closet/secure_closet{ - icon_state = "cap"; - name = "\proper captain's locker"; - req_access_txt = "20" + icon_state = "1-2" }, -/obj/item/storage/backpack/duffelbag/captain, -/obj/item/storage/backpack/messenger/com, -/obj/item/storage/backpack/satchel/cap, -/obj/item/storage/backpack/captain, -/obj/item/clothing/shoes/laceup, -/obj/item/clothing/under/nanotrasen/captain/skirt, -/obj/item/clothing/under/nanotrasen/captain, -/obj/item/clothing/suit/armor/nanotrasen/captain, -/obj/item/clothing/suit/armor/nanotrasen/captain/parade, -/obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/head/nanotrasen/captain/peaked, -/obj/item/clothing/head/nanotrasen/captain, -/obj/item/storage/belt/sabre, -/obj/item/assembly/flash/handheld, -/obj/item/disk/nuclear/fake{ - desc = "An ICW-era self-destruct authorization disk. The codes on this are long past obsolete, but it's still a flagrant violation of company policy."; - name = "outdated nuclear authentication disk" - }, -/obj/item/clothing/head/caphat/parade, -/obj/item/clothing/suit/armor/vest/capcarapace, -/obj/item/clothing/gloves/color/captain/nt, -/turf/open/floor/carpet/royalblue, +/turf/open/floor/plasteel/mono/dark, /area/ship/bridge) -"hv" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 5 +"fz" = ( +/obj/structure/sign/directions/engineering{ + dir = 8; + pixel_y = 6 }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"hw" = ( -/obj/machinery/computer/rdconsole/core, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"hy" = ( -/obj/structure/chair, -/obj/structure/disposalpipe/segment{ +/obj/structure/sign/directions/command{ dir = 8 }, -/turf/open/floor/plasteel, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/hallway/central) -"hD" = ( -/obj/machinery/disposal/deliveryChute{ - dir = 4 +"fH" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 10 }, -/obj/structure/window/reinforced{ - dir = 1 +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"fI" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/starboard) +"fO" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/machinery/door/window/eastright, -/obj/structure/disposalpipe/trunk, -/obj/structure/window/reinforced{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/structure/window/reinforced, -/turf/open/floor/plating, -/area/ship/cargo) -"hG" = ( -/turf/open/floor/plasteel/white, -/area/ship/science) -"hL" = ( /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/stairs{ - dir = 4 - }, -/area/ship/hallway/central) -"hQ" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/docking_port/mobile{ +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"fR" = ( +/obj/structure/filingcabinet/chestdrawer{ + density = 0; dir = 4; - launch_status = 0; - preferred_direction = 4; - port_direction = 2 - }, -/turf/open/floor/engine/hull, -/area/ship/external) -"hU" = ( -/obj/machinery/atmospherics/components/unary/shuttle/heater{ - dir = 4 + pixel_x = -6 }, -/obj/machinery/door/window/eastright{ - name = "Engine Access" +/turf/open/floor/plasteel/white, +/area/ship/medical) +"fT" = ( +/turf/open/floor/plasteel/white, +/area/ship/medical) +"fX" = ( +/obj/structure/bodycontainer/morgue{ + dir = 2 }, -/obj/structure/window/plasma/reinforced/spawner/west, -/obj/structure/window/plasma/reinforced/spawner, -/obj/machinery/door/poddoor{ - id = "osprey_thruster_starboard"; - name = "Thruster Blast Door"; - dir = 4 +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/showroomfloor, +/area/ship/medical) +"fZ" = ( +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20; + pixel_y = 0 }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"ie" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/carpet/blue, +/area/ship/crew/dorm) +"gf" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "1-4" }, -/obj/effect/landmark/observer_start, -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/effect/turf_decal/industrial/warning, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"ik" = ( -/obj/machinery/portable_atmospherics/scrubber/huge/movable, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"il" = ( /obj/structure/disposalpipe/segment{ - dir = 8 + dir = 9 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/engine) +"gg" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"in" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/light_switch{ + pixel_x = -5; + pixel_y = 20 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"ip" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 1; - sortTypes = list(4); - tag = "Engineering" +/turf/open/floor/plasteel, +/area/ship/crew) +"gk" = ( +/turf/closed/wall/mineral/titanium/exterior, +/area/ship/security) +"gm" = ( +/obj/structure/chair/comfy/blue/corpo/directional/west, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/carpet/blue, +/area/ship/crew/dorm) +"gn" = ( +/obj/structure/AIcore, +/obj/item/radio/intercom/wideband/directional/west, +/obj/item/radio/intercom/directional/north{ + freqlock = 1; + frequency = 1351 }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/circuit, +/area/ship/science/ai_chamber) +"go" = ( +/obj/effect/turf_decal/industrial/warning, /obj/structure/cable{ - icon_state = "1-8" + icon_state = "1-2" }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"ir" = ( -/obj/machinery/newscaster/directional/north{ - pixel_y = 32 +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20; + pixel_y = 5 }, -/obj/machinery/camera/autoname, -/obj/machinery/jukebox, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/effect/turf_decal/trimline/opaque/ntblue/arrow_cw{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/corner{ dir = 4 }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"it" = ( -/obj/machinery/sleeper{ +/turf/open/floor/plasteel/patterned, +/area/ship/storage/eva) +"gq" = ( +/obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/lime{ - dir = 1 - }, -/obj/effect/turf_decal/corner/opaque/lime{ +/obj/effect/turf_decal/corner/opaque/white{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"iv" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 +/obj/structure/chair/handrail{ + dir = 1 }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"iw" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/cargo) -"iA" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"gA" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 8 +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 1 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/turf/open/floor/plasteel, +/area/ship/crew) +"gC" = ( +/obj/structure/cable{ + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"iD" = ( -/obj/structure/table/reinforced, -/obj/machinery/reagentgrinder{ - pixel_y = 8 - }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 4 +/obj/machinery/light_switch{ + dir = 1; + pixel_x = -5; + pixel_y = -20 }, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/mono, /area/ship/crew/canteen) -"iI" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/cargo/office) -"iM" = ( -/obj/structure/table, -/obj/item/storage/toolbox/mechanical{ - pixel_x = 4; - pixel_y = 9 - }, -/obj/item/stack/cable_coil/cyan{ - pixel_x = -3 +"gD" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/item/stack/cable_coil/cyan{ - pixel_x = 5 +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"gE" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/firedoor/window, +/obj/machinery/door/poddoor{ + dir = 1; + id = "harrierbridge"; + name = "Window Blast Door" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 +/obj/structure/cable{ + icon_state = "0-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plating, +/area/ship/bridge) +"gF" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/item/storage/box/stockparts/basic, -/turf/open/floor/plasteel/white, -/area/ship/science) -"iO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"gH" = ( /obj/structure/bed, +/obj/item/bedsheet/nanotrasen, /obj/structure/curtain/bounty, -/obj/item/bedsheet/dorms, /turf/open/floor/wood, -/area/ship/crew/dorm) -"iQ" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/brown, -/obj/machinery/light/directional/south, -/obj/structure/railing{ +/area/ship/crew/law_office) +"gM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"gN" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"iZ" = ( -/obj/structure/ore_box, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/apc/auto_name/directional/west, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"ja" = ( -/obj/structure/sign/number/one{ - color = "Black"; - dir = 1 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 }, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/science) -"jc" = ( -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"je" = ( /obj/structure/disposalpipe/segment{ - dir = 8 + dir = 10 }, -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"gO" = ( +/obj/item/storage/backpack/satchel/med, +/obj/item/clothing/shoes/sneakers/white, +/obj/item/clothing/under/nanotrasen/medical, +/obj/item/clothing/suit/toggle/labcoat/nanotrasen, +/obj/item/clothing/glasses/hud/health, +/obj/item/storage/pill_bottle/stimulant{ + pixel_x = 5 }, -/turf/open/floor/plasteel, -/area/ship/crew/janitor) -"jk" = ( -/obj/machinery/medical_kiosk, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 8 +/obj/structure/closet/secure_closet/medical3{ + populate = 0 }, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/structure/sign/poster/official/help_others{ - pixel_y = -32 +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable{ + icon_state = "0-8" }, /turf/open/floor/plasteel/white, /area/ship/medical) -"jn" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "2-4" +"gQ" = ( +/obj/item/table_bell{ + pixel_x = -4; + pixel_y = 13 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"jo" = ( -/obj/effect/turf_decal/industrial/loading{ - dir = 1 +/obj/structure/table/reinforced, +/obj/item/paper_bin, +/obj/item/pen, +/obj/structure/window/reinforced{ + dir = 4 }, -/obj/structure/ore_box, -/obj/machinery/button/door{ - dir = 8; - id = "ospreydoors"; - name = "Blast Door Control"; - pixel_x = 25; - pixel_y = 5 +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "harriercargo" }, -/obj/machinery/button/shieldwallgen{ - dir = 8; - id = "osprey_cargofield"; - pixel_x = 24; - pixel_y = -5 +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/turf/open/floor/plasteel/patterned/cargo_one, +/turf/open/floor/plating, /area/ship/cargo) -"jC" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/effect/turf_decal/borderfloor{ - dir = 8 +"gU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 + dir = 4 }, -/obj/structure/sign/poster/official/safety_internals{ - pixel_x = -32 +/obj/machinery/light_switch{ + pixel_x = -5; + pixel_y = 20 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"jG" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/obj/effect/turf_decal/siding/yellow{ + dir = 1 }, /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/structure/table, -/obj/effect/turf_decal/corner/opaque/brown{ +/turf/open/floor/plasteel, +/area/ship/engineering) +"gV" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 1 - }, -/obj/item/storage/box/shipping, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"jM" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 4; - sortTypes = list(17,18,19,20,21); - tag = "Kitchen" +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"gX" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"jU" = ( -/obj/structure/sink/kitchen{ - dir = 4; - pixel_x = -12 +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"ha" = ( +/obj/machinery/door/airlock/external/glass, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/borderfloor, +/turf/open/floor/plasteel/tech, +/area/ship/hallway/port) +"hj" = ( +/obj/structure/sign/warning/vacuum, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/storage/eva) +"hq" = ( +/obj/structure/crate_shelf, +/obj/structure/closet/crate{ + name = "food crate" }, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/effect/spawner/lootdrop/ration, +/obj/item/storage/cans/sixbeer, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"hx" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"kb" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"ke" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Infirmary"; +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"hy" = ( +/obj/structure/table, +/obj/item/storage/box/lights/mixed{ + pixel_x = 4; + pixel_y = 9 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/item/storage/box/mousetraps{ + pixel_x = -9 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/janitor) +"hA" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ dir = 4 }, -/obj/effect/turf_decal/borderfloor{ +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ dir = 8 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, /obj/machinery/door/firedoor/border_only{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"kf" = ( -/obj/machinery/door/airlock{ - name = "Custodial Closet"; +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 8 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"hB" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/machinery/door/airlock/medical/glass{ + dir = 4; + name = "Infirmary"; + req_ship_access = 0 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/borderfloor{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ +/obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor/plasteel, -/area/ship/crew/janitor) -"ki" = ( -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/borderfloor{ dir = 8 }, -/obj/machinery/light/small/directional/north, /turf/open/floor/plasteel, -/area/ship/crew/janitor) -"ko" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/purple{ +/area/ship/medical) +"hD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 4 - }, -/obj/structure/railing{ - dir = 4 +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/borderfloor, +/obj/machinery/door/airlock/public/glass{ + dir = 1; + name = "Canteen" }, -/obj/machinery/light/directional/north, /turf/open/floor/plasteel, -/area/ship/cargo) -"kB" = ( -/obj/machinery/atmospherics/components/unary/shuttle/heater{ - dir = 4 - }, -/obj/machinery/door/window/eastleft{ - name = "Engine Access" - }, -/obj/structure/window/plasma/reinforced/spawner/west, -/obj/structure/window/plasma/reinforced/spawner/north, -/obj/machinery/door/poddoor{ - id = "osprey_thruster_starboard"; - name = "Thruster Blast Door"; - dir = 4 +/area/ship/crew/canteen) +"hE" = ( +/obj/structure/sign/poster/contraband/syndiemoth{ + pixel_y = 32 }, +/obj/item/toy/plush/moth/firewatch, +/obj/item/toy/sword, /turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"kD" = ( -/obj/structure/window/plasma/reinforced, +/area/ship/engineering/engine) +"hH" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/firedoor/window, +/turf/open/floor/plating, +/area/ship/engineering) +"hI" = ( +/obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-4" }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/effect/turf_decal/atmos/air{ +/turf/open/floor/carpet/blue, +/area/ship/crew/dorm) +"hL" = ( +/obj/effect/landmark/start/janitor, +/obj/structure/chair{ dir = 1 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"kG" = ( -/obj/machinery/power/terminal{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ dir = 8 }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/janitor) +"hP" = ( /obj/structure/cable{ - icon_state = "0-4" + icon_state = "1-8" }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-4" }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"kL" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -6; - pixel_y = 3 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 }, -/obj/item/pen{ - pixel_x = 7 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 }, -/obj/item/folder{ - pixel_x = -6; - pixel_y = 3 +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/storage/eva) +"hQ" = ( +/obj/machinery/computer/monitor{ + dir = 8; + icon_state = "computer-left" }, -/obj/machinery/button/door{ - dir = 4; - id = "ospreysci"; - name = "Shutter Control"; - pixel_x = -25; - pixel_y = -5 +/turf/open/floor/plasteel, +/area/ship/engineering) +"hV" = ( +/obj/machinery/door/airlock/command{ + name = "Restroom" }, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -24; - pixel_y = 5 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/effect/turf_decal/borderfloorblack, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"hY" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/science/ai_chamber) +"if" = ( +/obj/machinery/holopad/emergency/medical, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/mauve, -/obj/effect/turf_decal/corner/opaque/mauve{ +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/opaque/blue/filled/corner, +/obj/effect/turf_decal/trimline/opaque/blue/filled/corner{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/mauve{ +/obj/effect/turf_decal/trimline/opaque/blue/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/blue/filled/corner{ dir = 1 }, /turf/open/floor/plasteel/white, -/area/ship/science) -"kP" = ( -/turf/open/floor/engine/hull, -/area/ship/external) -"kQ" = ( +/area/ship/medical) +"ig" = ( /turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/janitor) -"kS" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 +/area/ship/crew/law_office) +"ih" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/stand_clear, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/storage/eva) +"ir" = ( +/obj/structure/sign/departments/medbay/alt, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/medical) +"iy" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/closet/wall/directional/south, +/obj/item/clothing/shoes/sneakers/black, +/obj/item/clothing/suit/apron/chef, +/obj/item/clothing/under/rank/civilian/chef, +/obj/item/clothing/head/chefhat, +/obj/item/storage/backpack/messenger, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/canteen) +"iz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"iA" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 }, -/obj/structure/disposalpipe/segment{ - dir = 8 +/obj/structure/sign/poster/official/safety_internals{ + pixel_x = -32 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/effect/turf_decal/borderfloor{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 1 +/turf/open/floor/plasteel/tech/grid, +/area/ship/hallway/starboard) +"iD" = ( +/obj/structure/cable{ + icon_state = "1-8" }, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"kU" = ( -/obj/machinery/recharge_station, -/turf/open/floor/circuit, -/area/ship/science/ai_chamber) -"kV" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor/shutters{ - id = "ospreywindows"; +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/plating, -/area/ship/hallway/central) -"kZ" = ( -/obj/machinery/vending/snack/random, -/obj/structure/disposalpipe/segment{ - dir = 5 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/obj/structure/railing{ - layer = 2.91 +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"la" = ( -/obj/item/kirbyplants/random, -/obj/machinery/light/directional/north, -/obj/structure/railing, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"lb" = ( +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"iG" = ( +/obj/structure/chair/office, /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"lh" = ( -/obj/structure/chair{ +/turf/open/floor/carpet/royalblue, +/area/ship/bridge) +"iI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"li" = ( -/turf/template_noop, -/area/template_noop) -"lk" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/machinery/door/poddoor/shutters{ - id = "ospreycargo" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/machinery/door/firedoor/window, -/turf/open/floor/plating, -/area/ship/cargo/office) -"ll" = ( /obj/structure/disposalpipe/segment{ - dir = 2 + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"iM" = ( /obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/poddoor/preopen{ - id = "osprey_disposals_preopen" - }, -/obj/effect/turf_decal/industrial/warning/fulltile, -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, -/obj/structure/sign/warning/securearea{ - pixel_x = 25 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/science/ai_chamber) -"lr" = ( -/obj/machinery/door/window/brigdoor/westleft{ - name = "AI Core Access"; - req_one_access_txt = "16" + icon_state = "1-4" }, -/obj/structure/AIcore, -/obj/item/circuitboard/aicore, -/obj/item/stack/sheet/rglass{ - amount = 5 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/item/radio/intercom/directional/south, -/obj/item/radio/intercom/directional/north{ - frequency = 1351; - freqlock = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/item/radio/intercom/wideband/directional/east, -/turf/open/floor/circuit, -/area/ship/science/ai_chamber) -"lt" = ( /obj/structure/disposalpipe/segment{ - dir = 8 + dir = 5 + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 1 }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"iP" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 }, +/obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/wood, -/area/ship/crew/canteen) -"lv" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/area/ship/crew) +"iQ" = ( +/obj/machinery/door/window/westleft{ + req_access_txt = "2" }, -/turf/open/floor/carpet/blue, -/area/ship/bridge) -"ly" = ( -/obj/structure/chair{ +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/trimline/opaque/vired/filled/warning{ dir = 8 }, -/obj/structure/disposalpipe/segment{ - dir = 8 +/obj/effect/turf_decal/trimline/opaque/vired/corner, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"iS" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"iT" = ( +/obj/structure/disposaloutlet{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/structure/disposalpipe/trunk{ + dir = 1 }, +/obj/machinery/conveyor{ + dir = 1; + id = "harrier_garbage" + }, +/turf/open/floor/plating, +/area/ship/crew/janitor) +"iV" = ( /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"lz" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"lA" = ( -/obj/machinery/portable_atmospherics/pump, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"lF" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 2; + sortTypes = list(9,10,11); + tag = "Medbay" }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 4 }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"je" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/turf/open/floor/plasteel/mono, +/area/ship/storage/eva) +"jf" = ( +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"jl" = ( /obj/structure/cable{ - icon_state = "2-4" + icon_state = "4-8" + }, +/obj/machinery/door/airlock/atmos{ + dir = 8; + name = "Atmospherics"; + req_access_txt = "10" }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"lJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"lL" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/machinery/rnd/server, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"lM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/structure/closet/secure_closet{ - icon_state = "atmos"; - name = "\proper atmospheric technician's locker"; - req_access = list(24) - }, -/obj/item/storage/backpack/industrial, -/obj/item/clothing/shoes/workboots, -/obj/item/clothing/under/rank/engineering/atmospheric_technician, -/obj/item/clothing/under/rank/engineering/atmospheric_technician/skirt, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/head/hardhat/weldhat/dblue, -/obj/item/storage/belt/utility/atmostech, -/obj/item/extinguisher/advanced, -/obj/effect/turf_decal/corner/opaque/bottlegreen{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/yellow, -/obj/item/holosign_creator/atmos, -/obj/item/storage/box/metalfoam, -/obj/item/pipe_dispenser, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"lV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"lY" = ( -/obj/structure/table/reinforced, -/obj/machinery/microwave{ - pixel_y = 5 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, /turf/open/floor/plasteel, -/area/ship/crew/canteen) -"mf" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +/area/ship/engineering/atmospherics) +"jm" = ( +/obj/machinery/door/airlock/engineering{ + dir = 4; + name = "Engineering Office"; + req_access_txt = "10" }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"mg" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"mj" = ( -/obj/machinery/cryopod, -/obj/structure/window/reinforced{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/crew/cryo) -"mo" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 8; - sortType = 6; - tag = "Atmospherics" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/effect/turf_decal/borderfloor{ dir = 4 }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"ju" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "5-10" }, -/obj/machinery/light_switch{ - pixel_y = 24 +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"jx" = ( +/obj/machinery/disposal/bin, +/obj/machinery/door/window/northleft{ + dir = 4; + req_access_txt = "19" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"mq" = ( -/obj/structure/disposalpipe/sorting/mail{ - dir = 2; - sortTypes = list(2,3); - tag = "QM Office" +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"jA" = ( +/obj/machinery/door/airlock/security{ + name = "Security Office" }, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"mu" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "osprey_production" - }, -/turf/open/floor/plating, -/area/ship/cargo) -"my" = ( -/obj/structure/table, -/obj/item/stack/packageWrap{ - pixel_y = 9 - }, -/obj/item/hand_labeler{ - pixel_x = 2; - pixel_y = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/effect/turf_decal/corner/opaque/mauve{ +/obj/machinery/door/firedoor/border_only, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/borderfloor{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/mauve{ - dir = 8 +/turf/open/floor/plasteel/dark, +/area/ship/security) +"jD" = ( +/obj/structure/fluff/hedge, +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/end{ + dir = 1 }, -/obj/item/storage/box/gloves{ - pixel_x = -3; - pixel_y = -8 +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/canteen) +"jH" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/medical) +"jI" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/plasteel/white, -/area/ship/science) -"mB" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/industrial/caution, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/hallway/central) -"mF" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 + dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ +/turf/open/floor/plasteel/dark, +/area/ship/science/ai_chamber) +"jL" = ( +/obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/siding, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_x = 32 + }, /turf/open/floor/plasteel, -/area/ship/cargo/office) -"mH" = ( -/obj/structure/closet/crate, -/obj/item/stack/sheet/metal/five{ - pixel_x = -3 +/area/ship/crew/canteen) +"jM" = ( +/obj/structure/cable/yellow{ + icon_state = "0-4" }, -/obj/item/stack/sheet/glass/five{ - pixel_x = 2; - pixel_y = 5 +/obj/machinery/power/terminal, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 10 }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"mI" = ( -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5{ + dir = 10 }, -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 8 +/obj/structure/sign/warning/electricshock{ + pixel_y = 24 + }, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"jN" = ( +/obj/machinery/door/airlock{ + name = "Internal Affairs Office"; + req_access_txt = "38" }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, -/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/borderfloor, /turf/open/floor/plasteel, +/area/ship/crew/law_office) +"jT" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"mR" = ( -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 4 +"jU" = ( +/obj/machinery/power/ship_gravity, +/obj/structure/cable{ + icon_state = "0-8" }, -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 1 +/turf/open/floor/circuit, +/area/ship/engineering/engine) +"ka" = ( +/obj/structure/cable{ + icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /turf/open/floor/plasteel, /area/ship/cargo) -"mV" = ( -/obj/structure/chair/office{ - dir = 4 +"km" = ( +/obj/structure/closet/secure_closet/armory1{ + populate = 0; + req_access = list(2) }, -/obj/effect/turf_decal/siding/wood{ - dir = 6 +/obj/machinery/airalarm/directional/east, +/obj/item/clothing/suit/armor/nanotrasen, +/obj/item/clothing/suit/armor/nanotrasen/slim, +/obj/item/clothing/head/helmet/sec, +/obj/item/clothing/head/helmet/sec, +/obj/effect/turf_decal/trimline/opaque/vired/filled/warning{ + dir = 8 }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"mW" = ( -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"mY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"mZ" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"kn" = ( /obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/closet/secure_closet/engineering_welding, -/obj/machinery/button/door{ - dir = 1; - id = "osprey_thruster_port"; - name = "Blast Door Control"; - pixel_y = -25 + icon_state = "6-9" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"na" = ( -/obj/structure/window/reinforced{ - dir = 1 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"ko" = ( +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/structure/tank_dispenser/oxygen, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"nf" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 12 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 }, -/obj/structure/mirror{ - pixel_x = 25 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"kq" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ + dir = 8 }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"nl" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 10 +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"nx" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"kr" = ( +/obj/machinery/jukebox, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 6 }, -/obj/machinery/light/directional/south, -/obj/structure/window/reinforced{ +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"ky" = ( +/obj/structure/railing{ dir = 8 }, -/obj/structure/window/reinforced{ - dir = 4 +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable{ + icon_state = "0-1" }, -/obj/machinery/door/window/northleft{ - req_access_txt = "19" +/obj/structure/cable{ + icon_state = "1-4" }, -/obj/effect/turf_decal/corner/opaque/ntblue{ +/obj/effect/turf_decal/siding/wideplating/dark{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/ntblue, /turf/open/floor/plasteel/dark, /area/ship/bridge) -"nE" = ( -/obj/effect/turf_decal/box/corners{ - dir = 1 - }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"nK" = ( -/obj/structure/sign/warning/docking{ - pixel_y = 9 - }, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/hallway/central) -"nL" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/machinery/door/airlock/medical{ - name = "Infirmary"; - req_access_txt = "5" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +"kA" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"kE" = ( +/obj/structure/closet/crate/trashcart/laundry, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/plasteel, +/area/ship/crew) +"kH" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/mapping_helpers/airlock/unres{ +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "4-10" + }, +/obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/obj/effect/turf_decal/borderfloor{ +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 }, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5, +/obj/effect/turf_decal/industrial/warning, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/engine) +"kJ" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plasteel, -/area/ship/medical) -"nT" = ( -/obj/structure/filingcabinet/double/grey, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 8 +/obj/machinery/door/airlock{ + dir = 4; + name = "Cryogenic Storage" }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"nZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 +/obj/effect/turf_decal/borderfloor{ + dir = 8 }, +/turf/open/floor/plasteel, +/area/ship/crew/cryo) +"kM" = ( /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"oi" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ + dir = 9 + }, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20; + pixel_y = 0 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"kO" = ( /obj/structure/cable{ - icon_state = "1-8" + icon_state = "2-4" }, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"kR" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-4" }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 +/obj/machinery/power/terminal{ + dir = 8 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"oo" = ( -/obj/machinery/space_heater, /obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering/atmospherics) -"os" = ( -/obj/machinery/cryopod, -/obj/machinery/light/small/directional/west, -/turf/open/floor/plasteel/tech/grid, -/area/ship/crew/cryo) -"ot" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/turf/open/floor/plating, +/area/ship/engineering) +"kV" = ( +/obj/structure/cable{ + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"ou" = ( -/obj/effect/turf_decal/industrial/warning, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/industrial/caution{ - dir = 1 +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ + dir = 8 }, -/turf/open/floor/plasteel/tech/techmaint, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"ow" = ( -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"oB" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +"la" = ( +/obj/machinery/computer/crew{ + dir = 8; + icon_state = "computer-right" }, -/obj/effect/turf_decal/corner/opaque/mauve, -/obj/effect/turf_decal/corner/opaque/mauve{ - dir = 8 +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/machinery/camera/autoname{ - dir = 10 +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plasteel/white, -/area/ship/science) -"oE" = ( -/obj/structure/closet/wall/directional/south{ - icon_door = "grey_wall" - }, -/obj/item/clothing/under/color/grey, -/obj/item/clothing/under/color/grey, -/obj/item/clothing/under/color/grey, -/obj/item/clothing/under/color/grey, -/obj/item/clothing/under/color/grey, -/obj/item/clothing/shoes/sneakers/black, -/obj/item/clothing/shoes/sneakers/black, -/obj/item/clothing/shoes/sneakers/black, -/obj/item/clothing/shoes/sneakers/black, -/obj/item/clothing/shoes/sneakers/black, -/obj/item/storage/backpack/duffelbag, -/obj/item/storage/backpack/duffelbag, -/obj/item/storage/backpack/messenger, -/obj/item/storage/backpack/messenger, -/obj/item/storage/backpack/satchel, -/obj/item/storage/backpack/satchel, -/obj/item/storage/backpack, -/obj/item/storage/backpack, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"oF" = ( -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"oK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 +/turf/open/floor/plasteel/tech/grid, +/area/ship/bridge) +"lg" = ( +/obj/structure/mirror{ + pixel_y = 32 }, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"oN" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer4{ - dir = 1 +/obj/structure/sink{ + pixel_y = 17 }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/hallway/central) -"oO" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel/freezer, +/area/ship/bridge) +"lj" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/obj/structure/cable{ + icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/mono, +/area/ship/storage/eva) +"ln" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 + dir = 5 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/carpet/blue, +/area/ship/crew/dorm) +"ls" = ( +/obj/structure/disposalpipe/sorting/mail{ + dir = 2; + sortType = 1; + sortTypes = list(1, 22); + tag = "Disposals" + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ dir = 4 }, +/turf/open/floor/plasteel, +/area/ship/hallway/starboard) +"lA" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/closet/firecloset/wall/directional/north, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"oQ" = ( -/obj/machinery/power/smes/engineering, /obj/structure/cable{ - icon_state = "0-8" + icon_state = "2-8" }, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"oU" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"oW" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/southright{ - dir = 1; - name = "Medical Desk"; - req_access_txt = "5" +/obj/effect/turf_decal/siding/yellow{ + dir = 1 }, -/obj/item/table_bell, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 8 +/obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + sortTypes = list(4, 5); + tag = "Engineering" }, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/machinery/door/poddoor/shutters{ - id = "ospreymed" +/turf/open/floor/plasteel, +/area/ship/engineering) +"lD" = ( +/obj/structure/sign/departments/security, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/security) +"lE" = ( +/obj/structure/fluff/hedge, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"oX" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Infirmary"; +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 8 }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/hallway/central) +"lH" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/plasteel, +/area/ship/bridge) +"lP" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/obj/effect/turf_decal/borderfloor{ - dir = 4 +/turf/open/floor/plasteel, +/area/ship/cargo) +"lQ" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/machinery/atmospherics/components/binary/volume_pump/on{ + name = "Recycling to Environment"; + piping_layer = 1 }, -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/atmospherics/pipe/manifold/cyan/visible{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"pe" = ( -/obj/effect/turf_decal/industrial/warning/fulltile, -/obj/machinery/door/poddoor{ - id = "osprey_disposals"; - name = "Disposals Blast Door"; - dir = 4 +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"lX" = ( +/obj/structure/closet/wardrobe/mixed{ + name = "custodial wardrobe"; + populate = 0 }, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1{ - dir = 4 +/obj/structure/cable{ + icon_state = "0-2" }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/item/radio/intercom/directional/north, +/obj/item/clothing/under/nanotrasen/janitor, +/obj/item/clothing/head/nanotrasen/cap/janitor, +/obj/item/clothing/shoes/galoshes, +/obj/item/storage/belt/janitor, +/obj/item/clothing/gloves/color/black, /turf/open/floor/plating, -/area/ship/science/ai_chamber) -"pk" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/area/ship/crew/janitor) +"mc" = ( /obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/ship/crew/cryo) -"pm" = ( -/obj/structure/frame/computer{ - dir = 8 + icon_state = "1-4" }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/bridge) -"pp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 + dir = 5 }, -/turf/open/floor/carpet/royalblue, -/area/ship/bridge) -"pq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/structure/extinguisher_cabinet/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/janitor) +"mk" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" }, -/obj/structure/cable{ - icon_state = "1-4" +/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 }, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"pv" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 9 +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/engine) +"mm" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-8" }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"pz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"ms" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/dark, +/area/ship/crew/cryo) +"my" = ( +/obj/machinery/power/generator{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/cable/yellow{ + icon_state = "0-8" }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ +/turf/open/floor/plating, +/area/ship/engineering/engine) +"mB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"pC" = ( -/obj/structure/disposalpipe/segment{ +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"mC" = ( +/obj/effect/turf_decal/industrial/warning/corner{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 +/obj/effect/turf_decal/industrial/warning/corner, +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"pD" = ( -/obj/machinery/power/shuttle/engine/electric{ - dir = 4 +/obj/machinery/button/ignition{ + dir = 4; + id = "harrier_igniter"; + pixel_x = -20 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/engine) +"mG" = ( +/obj/structure/table/glass, +/obj/item/storage/backpack/duffelbag/med/surgery{ + pixel_x = -3; + pixel_y = 13 }, +/obj/machinery/defibrillator_mount/loaded{ + pixel_y = -25 + }, +/obj/item/clothing/gloves/color/latex/nitrile, +/obj/item/clothing/suit/nanotrasen/medical_smock, +/obj/item/clothing/head/nanotrasen/surgical, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/plasteel/showroomfloor, +/area/ship/medical) +"mH" = ( +/obj/structure/railing, /obj/structure/cable{ - icon_state = "0-4" + icon_state = "1-4" }, -/turf/open/floor/plating, -/area/ship/engineering) -"pH" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"pJ" = ( -/obj/machinery/door/poddoor/shutters{ - id = "osprey_atmos"; - name = "Atmospherics Storage"; - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"pK" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"pL" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/southleft{ +/turf/open/floor/plasteel, +/area/ship/cargo) +"mJ" = ( +/obj/machinery/conveyor{ dir = 1; - name = "Research Desk"; - req_access_txt = "47" - }, -/obj/item/table_bell, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/poddoor/shutters{ - id = "ospreysci" + id = "harrier_garbage" }, -/obj/machinery/door/firedoor, /turf/open/floor/plating, -/area/ship/science) -"pP" = ( -/obj/machinery/atmospherics/components/unary/tank/toxins, -/obj/effect/turf_decal/industrial/outline/yellow, +/area/ship/crew/janitor) +"mK" = ( +/obj/machinery/light/directional/north, +/obj/structure/chair/handrail, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"mN" = ( /obj/structure/cable{ - icon_state = "2-8" + icon_state = "1-8" }, -/obj/machinery/camera/autoname, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, /obj/machinery/light_switch{ - pixel_x = 11; - pixel_y = 23 - }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"pT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" + dir = 1; + pixel_x = -5; + pixel_y = -20 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 4 +/obj/structure/disposalpipe/segment{ + dir = 5 }, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"pU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 8 }, -/turf/open/floor/carpet/blue, -/area/ship/bridge) -"qa" = ( -/obj/machinery/power/port_gen/pacman, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"mO" = ( +/obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable{ - icon_state = "0-2" + icon_state = "0-8" }, /obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/sign/warning/enginesafety{ - pixel_y = 32 - }, -/turf/open/floor/plating, +/obj/structure/closet/toolcloset, +/turf/open/floor/plasteel/patterned, /area/ship/engineering) -"qb" = ( -/obj/structure/closet/secure_closet{ - icon_state = "science"; - name = "scientist's locker"; - req_access_txt = "47" - }, -/obj/effect/turf_decal/corner/opaque/mauve{ - dir = 4 +"mV" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/corner/opaque/mauve{ - dir = 1 +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"mW" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/item/storage/backpack/duffelbag, -/obj/item/storage/backpack/messenger/tox, -/obj/item/storage/backpack/satchel/tox, -/obj/item/storage/backpack/science, -/obj/item/clothing/shoes/sneakers/white, -/obj/item/clothing/under/rank/rnd/scientist/skirt, -/obj/item/clothing/under/rank/rnd/scientist, -/obj/item/clothing/suit/toggle/labcoat/science, -/obj/item/clothing/glasses/science, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/plasteel/white, -/area/ship/science) -"qc" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/portables_connector, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"qp" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/storage/eva) +"mZ" = ( +/obj/structure/table/reinforced, +/obj/item/cutting_board, +/obj/item/melee/knife/butcher, +/obj/item/kitchen/rollingpin, +/obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/corner/opaque/white{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 4 +/obj/machinery/light_switch{ + pixel_x = -7; + pixel_y = 20 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"qs" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/machinery/firealarm/directional/north{ + pixel_x = 5 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"na" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/condiment/ketchup{ + pixel_x = 9; + pixel_y = 16 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/item/reagent_containers/condiment/mayonnaise{ + pixel_y = 16 }, -/obj/structure/disposalpipe/segment{ - dir = 8 +/obj/item/reagent_containers/condiment/hotsauce{ + pixel_x = -9; + pixel_y = 15 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"qv" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -5; + pixel_y = 5 }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/structure/closet/emcloset/wall/directional/south, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"qw" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 5; + pixel_y = 5 }, -/obj/item/trash/can, -/turf/open/floor/wood, +/turf/open/floor/plating, /area/ship/crew/canteen) -"qL" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, +"nf" = ( /obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/industrial/stand_clear{ - dir = 8 + icon_state = "1-2" }, /turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"ng" = ( +/turf/closed/wall/mineral/titanium/exterior, +/area/ship/crew/law_office) +"nj" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, /area/ship/cargo) -"qM" = ( -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 1 - }, -/obj/structure/marker_beacon, -/turf/open/floor/engine/hull, -/area/ship/external) -"qN" = ( +"nv" = ( +/obj/machinery/deepfryer, /obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, /obj/effect/turf_decal/corner/opaque/white{ dir = 8 }, -/obj/structure/closet{ - icon_door = "black"; - name = "wardrobe" - }, -/obj/item/storage/backpack/duffelbag, -/obj/item/storage/backpack/messenger, -/obj/item/storage/backpack, -/obj/item/storage/backpack/satchel/leather, -/obj/item/clothing/shoes/sneakers/white, -/obj/item/clothing/shoes/laceup, -/obj/item/clothing/under/rank/civilian/chef, -/obj/item/clothing/under/rank/civilian/chef/skirt, -/obj/item/clothing/under/rank/civilian/bartender, -/obj/item/clothing/under/rank/civilian/bartender/skirt, -/obj/item/clothing/suit/toggle/chef, -/obj/item/clothing/accessory/waistcoat, -/obj/item/clothing/head/chefhat, -/obj/item/storage/box/drinkingglasses, -/obj/item/storage/fancy/candle_box, -/obj/item/radio/intercom/directional/east, /turf/open/floor/plasteel, /area/ship/crew/canteen) -"qX" = ( -/obj/machinery/atmospherics/components/unary/shuttle/heater{ - dir = 4 +"nx" = ( +/obj/effect/turf_decal/corner/opaque/ntblue/full, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 8 }, -/obj/machinery/door/window/eastleft{ - name = "Engine Access" +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"nz" = ( +/obj/machinery/mass_driver{ + dir = 8; + id = "harrier_disposals" }, -/obj/structure/window/plasma/reinforced/spawner/west, -/obj/structure/window/plasma/reinforced/spawner/north, -/obj/machinery/door/poddoor{ - id = "osprey_thruster_port"; - name = "Thruster Blast Door"; +/turf/open/floor/plating, +/area/ship/crew/janitor) +"nQ" = ( +/obj/structure/chair/comfy/blue/corpo{ + dir = 8 + }, +/obj/effect/landmark/start/lawyer, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plating, -/area/ship/engineering) -"ra" = ( +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"nZ" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 9 +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"oe" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/machinery/firealarm/directional/north, +/obj/effect/turf_decal/siding/thinplating, +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage/eva) +"og" = ( +/obj/structure/cable{ + icon_state = "6-8" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"rd" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/structure/closet/crate/science{ - name = "cyborg parts crate" +/obj/structure/chair/handrail, +/turf/open/floor/plasteel, +/area/ship/hallway/port) +"oi" = ( +/obj/structure/toilet{ + pixel_y = 10 }, -/obj/item/bodypart/leg/right/robot, -/obj/item/bodypart/r_arm/robot, -/obj/item/bodypart/leg/left/robot, -/obj/item/bodypart/l_arm/robot, -/obj/item/bodypart/head/robot, -/obj/item/bodypart/chest/robot, -/obj/item/robot_suit, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/machinery/light/small/directional/west, /turf/open/floor/plasteel/dark, -/area/ship/science) -"rf" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/area/ship/security) +"oj" = ( /obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/structure/sign/warning/securearea{ - pixel_x = 25 + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, -/obj/structure/catwalk/over, -/turf/open/floor/plating, -/area/ship/science/ai_chamber) -"ry" = ( -/obj/item/storage/backpack/explorer, -/obj/item/storage/backpack/satchel/explorer, -/obj/item/storage/backpack/duffelbag, -/obj/structure/closet/secure_closet{ - icon_state = "mining"; - name = "mining wardrobe"; - req_access_txt = "48" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/item/clothing/shoes/workboots/mining, -/obj/item/clothing/under/rank/cargo/miner, -/obj/item/storage/belt/mining/alt, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/head/hardhat/mining, -/obj/structure/sign/poster/contraband/ss13{ - pixel_y = -32 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"rz" = ( -/obj/structure/bed, -/obj/structure/curtain/bounty, -/obj/item/bedsheet/dorms, -/obj/structure/sign/poster/official/soft_cap_pop_art{ - pixel_y = 32 +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"rG" = ( -/obj/machinery/power/shuttle/engine/fueled/plasma{ - dir = 4 +/obj/effect/turf_decal/trimline/opaque/ntblue/line, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"ok" = ( +/turf/closed/wall/mineral/titanium/exterior, +/area/ship/engineering/engine) +"ol" = ( +/obj/structure/closet/secure_closet/captains{ + populate = 0 }, -/turf/open/floor/plating, -/area/ship/engineering) -"rH" = ( +/obj/machinery/firealarm/directional/west, +/obj/item/clothing/shoes/laceup, +/obj/item/clothing/under/nanotrasen/captain, +/obj/item/clothing/suit/armor/nanotrasen/captain/parade, +/obj/item/clothing/neck/cloak/nanotrasen, +/obj/item/storage/backpack/captain, +/obj/item/clothing/head/nanotrasen/captain/peaked, +/obj/item/clothing/glasses/sunglasses, +/obj/item/storage/belt/sabre, +/obj/machinery/light/small/directional/north, +/turf/open/floor/carpet/royalblue, +/area/ship/crew/dorm/dormtwo) +"op" = ( +/obj/structure/table/reinforced, +/obj/machinery/microwave, /obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, /obj/effect/turf_decal/corner/opaque/white{ dir = 8 }, +/obj/item/radio/intercom/directional/north, /turf/open/floor/plasteel, /area/ship/crew/canteen) -"rJ" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/hallway/central) -"rN" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +"ow" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_y = 6 }, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"ox" = ( /obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 + icon_state = "2-4" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 + dir = 6 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"rO" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 +/obj/machinery/light_switch{ + pixel_x = -5; + pixel_y = 20 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 }, +/turf/open/floor/plasteel, +/area/ship/bridge) +"oG" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/cargo) +"oT" = ( /obj/structure/cable{ - icon_state = "1-8" + icon_state = "4-8" }, +/turf/open/floor/wood, +/area/ship/crew/law_office) +"oU" = ( +/obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-4" }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"rP" = ( -/obj/structure/chair/stool/bar{ - dir = 1 +/turf/open/floor/carpet/royalblue, +/area/ship/crew/dorm/dormtwo) +"oV" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"rS" = ( -/obj/effect/turf_decal/corner/transparent/neutral, /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"rX" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ +"oX" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ dir = 8 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"rZ" = ( -/obj/structure/chair/stool/bar{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/light/small/directional/north, +/obj/structure/chair/handrail, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"pd" = ( /obj/effect/turf_decal/corner/opaque/white{ dir = 8 }, /obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"sd" = ( -/obj/structure/sign/nanotrasen, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/science) -"si" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/turf_decal/siding{ + dir = 9 }, /turf/open/floor/plasteel, -/area/ship/hallway/central) -"sl" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/condiment/peppermill{ - pixel_x = -4; - pixel_y = 10 - }, -/obj/item/reagent_containers/condiment/saltshaker{ - pixel_x = 4; - pixel_y = 10 +/area/ship/crew/canteen) +"pp" = ( +/obj/structure/railing{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 4 +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/effect/turf_decal/siding/wideplating/dark{ dir = 8 }, -/obj/item/table_bell, -/obj/machinery/door/poddoor/shutters{ - id = "ospreykitchen" +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"pr" = ( +/obj/machinery/atmospherics/pipe/simple/green/visible/layer1{ + dir = 9 }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"sq" = ( -/obj/machinery/atmospherics/components/binary/valve/digital/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5{ dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/dark/visible/layer5, -/turf/open/floor/plasteel/patterned/grid, +/obj/machinery/atmospherics/pipe/manifold4w/purple/visible, +/turf/open/floor/plasteel/patterned, /area/ship/engineering/atmospherics) -"ss" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +"pF" = ( +/obj/structure/closet/secure_closet/brig, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-2" }, -/turf/open/floor/plasteel/white, -/area/ship/science) -"su" = ( +/obj/effect/turf_decal/trimline/opaque/vired/line{ + dir = 1 + }, +/obj/item/storage/box/evidence{ + req_access_txt = "2" + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"pH" = ( /obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/firedoor/window, /obj/machinery/door/poddoor/shutters{ - id = "ospreywindows"; - dir = 4 + dir = 1; + id = "harrieriaa" }, /turf/open/floor/plating, -/area/ship/hallway/central) -"sw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/visible/layer2, -/obj/machinery/atmospherics/pipe/simple/dark/visible/layer5, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"sy" = ( -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 1 - }, -/obj/structure/rack, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"sC" = ( -/obj/structure/chair/stool/bar{ - dir = 1 +/area/ship/crew/law_office) +"pI" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/wood, +/area/ship/crew/law_office) +"pP" = ( +/turf/closed/wall/mineral/titanium/exterior, +/area/ship/crew/canteen) +"pQ" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light/directional/north, +/obj/structure/disposalpipe/trunk{ + dir = 4 }, -/obj/effect/landmark/start/assistant, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/structure/railing{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 4 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/ship/crew/canteen) -"sE" = ( -/obj/item/reagent_containers/food/snacks/canned/beans{ - pixel_x = -5; - pixel_y = 3 - }, -/obj/item/reagent_containers/food/snacks/canned/beans{ - pixel_x = 2; - pixel_y = 3 - }, -/obj/item/reagent_containers/food/snacks/canned/beans{ - pixel_x = -2 - }, -/obj/item/reagent_containers/food/drinks/waterbottle/large{ - pixel_x = 5 - }, -/obj/item/reagent_containers/food/drinks/waterbottle/large{ - pixel_x = 1; - pixel_y = -3 - }, -/obj/item/reagent_containers/food/drinks/waterbottle/large{ - pixel_x = 8; - pixel_y = -3 - }, -/obj/structure/closet/crate{ - name = "food crate" - }, -/obj/item/storage/cans/sixbeer, -/obj/effect/spawner/lootdrop/ration, -/obj/effect/spawner/lootdrop/ration, -/obj/effect/spawner/lootdrop/ration, -/obj/effect/spawner/lootdrop/ration, -/obj/effect/spawner/lootdrop/ration, -/obj/effect/spawner/lootdrop/ration, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +"pR" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ dir = 4 }, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"pW" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/carpet/cyan, +/area/ship/crew) +"pX" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" + dir = 9 }, /turf/open/floor/plasteel/patterned/cargo_one, /area/ship/cargo) -"sG" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/hallway/central) -"sI" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/structure/closet/emcloset/wall/directional/south, -/turf/open/floor/plasteel, -/area/ship/crew/cryo) -"sJ" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +"pY" = ( /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"sO" = ( -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"sZ" = ( -/obj/effect/turf_decal/corner/opaque/bottlegreen{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/ntspaceworks_big/seven{ dir = 8 }, -/obj/structure/disposalpipe/junction/flip, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"tb" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/frame/computer, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"tc" = ( -/obj/structure/table/reinforced, -/obj/machinery/fax/nanotrasen, -/obj/effect/turf_decal/corner/opaque/ntblue, -/obj/effect/turf_decal/corner/opaque/ntblue{ +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"pZ" = ( +/obj/structure/chair/comfy/blue/corpo/directional/south{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 1 +/obj/structure/sign/poster/official/random{ + pixel_x = -32 + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 10 }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"qf" = ( +/obj/structure/chair/comfy/blue/corpo/directional/north, +/obj/effect/turf_decal/trimline/opaque/ntblue/line, /turf/open/floor/plasteel/dark, /area/ship/bridge) -"ti" = ( -/obj/machinery/door/airlock/external/glass, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/borderfloor{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"tm" = ( -/obj/machinery/disposal/bin{ - name = "biohazard disposal unit" - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 1 - }, -/obj/machinery/light/directional/west, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"to" = ( +"qg" = ( /obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"tp" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 + icon_state = "4-9" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"qh" = ( /obj/structure/cable{ - icon_state = "1-8" + icon_state = "5-10" }, -/turf/open/floor/plasteel, -/area/ship/crew/cryo) -"tr" = ( -/obj/machinery/computer/security{ - dir = 8; - icon_state = "computer-right" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/bridge) -"tx" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "ospreybridge"; +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/door/firedoor/window, -/turf/open/floor/plating, -/area/ship/bridge) -"tF" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 1 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"ql" = ( +/obj/structure/chair, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 9 }, -/turf/open/floor/engine/air, -/area/ship/engineering/atmospherics) -"tG" = ( -/obj/effect/turf_decal/box/corners{ - dir = 1 +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"qo" = ( +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/obj/structure/closet/crate, -/obj/item/vending_refill/coffee, -/obj/effect/spawner/lootdrop/maintenance/three, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel/patterned/cargo_one, +/turf/open/floor/plasteel, /area/ship/cargo) -"tH" = ( +"qp" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, /obj/structure/disposalpipe/segment{ dir = 6 }, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"tL" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"qq" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/atmospherics/pipe/simple/orange/hidden/layer5{ + dir = 8 }, -/obj/structure/closet/emcloset/wall/directional/north, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"tO" = ( -/obj/structure/closet/secure_closet/freezer/kitchen, -/obj/effect/turf_decal/corner/opaque/white{ +/turf/open/floor/plating, +/area/ship/engineering/engine) +"qr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ +/turf/open/floor/carpet/cyan, +/area/ship/crew) +"qw" = ( +/obj/structure/chair/comfy/blue/corpo/directional/south{ dir = 8 }, +/obj/effect/turf_decal/trimline/opaque/ntblue/line, /turf/open/floor/plasteel, /area/ship/crew/canteen) -"tT" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +"qx" = ( +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"qB" = ( +/obj/structure/cable{ + icon_state = "0-1" }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 +/obj/machinery/power/smes/engineering, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"qE" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 }, -/turf/open/floor/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, /area/ship/crew/canteen) -"tY" = ( -/obj/effect/turf_decal/borderfloor{ +"qF" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ dir = 1 }, -/obj/machinery/door/airlock/command{ - name = "Bridge"; - req_access_txt = "19" - }, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, /obj/machinery/door/firedoor/border_only{ dir = 1 }, /obj/machinery/door/firedoor/border_only, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"ud" = ( -/obj/machinery/computer/helm{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/bridge) -"uh" = ( -/obj/structure/cable{ - icon_state = "2-8" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"qI" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/canteen) +"qJ" = ( +/obj/item/bodypart/leg/right/robot, +/obj/item/bodypart/r_arm/robot, +/obj/item/bodypart/leg/left/robot, +/obj/item/bodypart/l_arm/robot, +/obj/item/bodypart/head/robot, +/obj/item/bodypart/chest/robot, +/obj/item/robot_suit, +/obj/machinery/recharge_station, +/turf/open/floor/circuit, +/area/ship/science/ai_chamber) +"qK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/structure/cable{ - icon_state = "2-4" +/obj/effect/turf_decal/borderfloor{ + dir = 1 }, /turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"ui" = ( -/obj/structure/cable{ - icon_state = "0-8" +/area/ship/storage/eva) +"qO" = ( +/obj/effect/turf_decal/corner/opaque/ntblue/full, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 1 }, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/plasteel/dark, -/area/ship/science/ai_chamber) -"uk" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/siding/white{ - dir = 4 +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"qQ" = ( +/turf/closed/wall/mineral/titanium/exterior, +/area/ship/crew) +"qX" = ( +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"rc" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/crew/cryo) -"un" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/holopad/emergency/medical, -/obj/effect/turf_decal/box/white{ - color = "#2CB2E8" +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"uq" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"rf" = ( +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 10 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/patterned/grid, +/turf/open/floor/plating, /area/ship/engineering/atmospherics) -"ut" = ( -/obj/structure/chair, -/obj/effect/landmark/start/janitor, -/obj/structure/disposalpipe/sorting/mail{ - dir = 4; - sortType = 1; - tag = "Disposals" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ +"rh" = ( +/obj/structure/sign/warning/nosmoking, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/engineering/atmospherics) +"ri" = ( +/obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, -/obj/effect/turf_decal/industrial/warning{ +/obj/effect/turf_decal/corner/opaque/white{ dir = 8 }, -/turf/open/floor/plasteel, -/area/ship/crew/janitor) -"ux" = ( -/obj/machinery/computer/operating, -/obj/effect/turf_decal/corner/opaque/pink{ +/obj/structure/sink{ + dir = 8; + pixel_x = 12 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/pink{ - dir = 4 +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"rj" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/central) +"rk" = ( +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20; + pixel_y = 0 }, -/obj/effect/turf_decal/corner/opaque/pink{ +/obj/effect/turf_decal/siding/thinplating{ dir = 1 }, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"uz" = ( -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 4; - icon_state = "passive_vent_map-4"; - piping_layer = 5 - }, -/turf/open/floor/engine/hull, -/area/ship/external) -"uA" = ( -/obj/machinery/holopad/emergency/command, -/obj/effect/turf_decal/box/white, /turf/open/floor/plasteel/dark, -/area/ship/bridge) -"uC" = ( -/obj/machinery/computer/crew{ - dir = 8; - icon_state = "computer-left" +/area/ship/science/ai_chamber) +"rm" = ( +/obj/structure/railing{ + dir = 6; + layer = 3.1 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/bridge) -"uE" = ( -/obj/structure/disposalpipe/segment{ +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel, +/area/ship/storage/eva) +"rr" = ( +/obj/structure/closet/secure_closet/freezer/kitchen/mining, +/obj/structure/window/reinforced{ dir = 8 }, -/obj/effect/turf_decal/trimline/opaque/blue/corner{ +/obj/item/storage/fancy/egg_box, +/obj/item/reagent_containers/condiment/soymilk, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/canteen) +"ru" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"rx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"uI" = ( -/mob/living/simple_animal/mouse{ - desc = "This rat seems particularly old and crotchety."; - name = "Splinter" +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 }, /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"rJ" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/poddoor{ + dir = 1; + id = "harrierdoors"; + name = "Cargo Bay Blast Door" + }, +/turf/open/floor/plating, +/area/ship/storage/eva) +"rK" = ( +/obj/structure/chair/sofa/blue/corpo/left/directional/north, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line, /turf/open/floor/plasteel, -/area/ship/crew/janitor) -"uJ" = ( +/area/ship/hallway/central) +"rL" = ( +/obj/machinery/iv_drip, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"rQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, +/obj/machinery/airalarm/directional/south, /obj/structure/disposalpipe/segment{ dir = 8 }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"rR" = ( /obj/structure/cable{ - icon_state = "2-4" + icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/ship/crew/janitor) -"uM" = ( -/obj/machinery/door/airlock{ - name = "Cryopod Room" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/borderfloor, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 8 }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plasteel, -/area/ship/crew/cryo) -"uN" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/item/kirbyplants/random, /turf/open/floor/plasteel, -/area/ship/hallway/central) -"uQ" = ( -/obj/machinery/door/airlock/external, -/obj/machinery/atmospherics/pipe/layer_manifold, -/turf/open/floor/plasteel/tech, -/area/ship/hallway/central) -"vi" = ( -/obj/structure/table, -/obj/item/storage/bag/trash{ - pixel_x = 5 +/area/ship/hallway/port) +"rS" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 }, -/obj/item/mop, -/obj/item/reagent_containers/glass/bucket{ - pixel_x = -3; - pixel_y = 8 +/obj/machinery/airalarm/directional/east, +/obj/structure/chair/handrail{ + dir = 1 }, -/obj/structure/disposalpipe/segment{ - dir = 9 +/turf/open/floor/plasteel/showroomfloor, +/area/ship/medical) +"rT" = ( +/turf/closed/wall/mineral/titanium/exterior, +/area/ship/hallway/port) +"rZ" = ( +/obj/effect/landmark/start/medical_doctor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/effect/turf_decal/industrial/warning{ +/turf/open/floor/plasteel/showroomfloor, +/area/ship/medical) +"sc" = ( +/obj/effect/turf_decal/ntspaceworks_big/four{ dir = 8 }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plating, -/area/ship/crew/janitor) -"vj" = ( -/obj/structure/disposalpipe/segment{ +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"se" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ dir = 6 }, -/obj/structure/cable{ - icon_state = "2-4" +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"sf" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/machinery/airalarm/directional/south, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 }, -/obj/structure/cable{ - icon_state = "1-4" +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage/eva) +"sh" = ( +/obj/structure/window/reinforced{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 10 +/turf/open/floor/carpet/royalblue, +/area/ship/bridge) +"sl" = ( +/obj/item/gun/energy/e_gun, +/obj/structure/guncloset/ecase{ + req_access_txt = "20" }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/carpet/royalblue, +/area/ship/crew/dorm/dormtwo) +"sn" = ( +/obj/structure/chair/comfy/blue/corpo/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/carpet/cyan, +/area/ship/medical) +"ss" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/arrow_ccw{ dir = 1 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"vl" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"st" = ( +/obj/machinery/door/airlock/command{ + dir = 4; + name = "Bridge"; + req_access = list(19, 41) }, -/obj/effect/turf_decal/trimline/opaque/blue/end, -/obj/effect/turf_decal/trimline/opaque/blue/line{ - dir = 1 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"vp" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/machinery/cell_charger, -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/item/stock_parts/cell/high/plus, -/obj/structure/table, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 1 +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 }, /turf/open/floor/plasteel, -/area/ship/cargo/office) -"vx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/area/ship/bridge) +"sv" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"vD" = ( -/obj/structure/window/reinforced{ - dir = 4 +/turf/open/floor/plasteel/mono, +/area/ship/storage/eva) +"sw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 }, -/obj/machinery/conveyor{ - dir = 1; - id = "osprey_garbage" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 }, -/turf/open/floor/plating, -/area/ship/crew/janitor) -"vY" = ( -/obj/machinery/atmospherics/pipe/manifold/orange/visible, -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/disposalpipe/segment{ + dir = 9 }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"sy" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"wb" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/carpet/royalblue, +/area/ship/crew/dorm/dormtwo) +"sD" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 5 }, -/turf/open/floor/plating, -/area/ship/crew/janitor) -"wc" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "osprey_packagesort" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/plating, -/area/ship/cargo/office) -"wd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"wj" = ( -/obj/machinery/door/airlock/command{ - name = "Bridge"; - req_access_txt = "19" +/turf/open/floor/carpet/royalblue, +/area/ship/crew/dorm/dormtwo) +"sE" = ( +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/borderfloor, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + sortTypes = list(7, 8); + tag = "Security" }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"wn" = ( -/obj/structure/table/reinforced, -/obj/item/paper_bin{ - pixel_x = -6 +/obj/effect/turf_decal/trimline/opaque/vired/line, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"sF" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 }, -/obj/item/stamp/captain{ - pixel_x = 6; - pixel_y = 6 +/obj/machinery/atmospherics/pipe/simple/orange/hidden/layer5{ + dir = 8 }, -/obj/item/stamp/head_of_personnel{ - pixel_x = 6 +/obj/effect/turf_decal/industrial/warning{ + dir = 4 }, -/obj/item/pen/fountain/captain{ - pixel_x = -7 +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/engine) +"sG" = ( +/obj/machinery/conveyor{ + dir = 8; + id = "harrier_packagesort" }, -/obj/item/pen/fourcolor, -/obj/machinery/newscaster/directional/north{ - pixel_y = 32 +/obj/machinery/light/directional/north, +/turf/open/floor/plating, +/area/ship/cargo) +"sN" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/obj/machinery/light_switch{ - pixel_x = -11; - pixel_y = 24 +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/ship/cargo) +"sU" = ( +/turf/open/floor/wood, +/area/ship/crew/law_office) +"ta" = ( +/obj/structure/railing, +/obj/effect/turf_decal/siding/wideplating/dark, +/turf/open/floor/plasteel/stairs{ + dir = 8 }, -/turf/open/floor/plasteel/dark, /area/ship/bridge) -"wo" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/smes/shuttle/precharged{ - dir = 4 +"td" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 }, -/obj/machinery/door/window/eastleft{ - name = "Engine Access" +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/structure/window/plasma/reinforced/spawner/west, -/obj/structure/window/plasma/reinforced/spawner/north, -/obj/machinery/door/poddoor{ - id = "osprey_thruster_starboard"; - name = "Thruster Blast Door"; +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"tk" = ( +/obj/structure/railing, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"wq" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/southleft{ - dir = 1; - name = "Medical Desk"; - req_access_txt = "5" - }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/item/radio/intercom/directional/west, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/machinery/door/poddoor/shutters{ - id = "ospreymed" +/turf/open/floor/plasteel, +/area/ship/cargo) +"tm" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"wr" = ( -/obj/structure/chair{ - dir = 1 +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"tq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxin_output{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/effect/turf_decal/corner/opaque/blue{ +/turf/open/floor/engine/plasma, +/area/ship/engineering/atmospherics) +"ty" = ( +/obj/effect/turf_decal/siding/wood{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"wx" = ( -/obj/machinery/door/poddoor{ - id = "ospreydoors"; - name = "Cargo Bay Blast Door"; - dir = 4 +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20 }, -/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/wood, +/area/ship/crew) +"tC" = ( +/obj/structure/rack, +/obj/item/pickaxe, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"tF" = ( /obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - id = "osprey_cargofield"; - locked = 1 + icon_state = "4-8" }, -/turf/open/floor/plasteel/tech, -/area/ship/cargo) -"wC" = ( -/obj/machinery/vending/snack/random, -/obj/structure/disposalpipe/segment{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"wF" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"tG" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/dark/hidden/layer5{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"tH" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/folder/yellow, +/obj/item/stamp/denied{ + pixel_x = 4 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, -/obj/machinery/turretid{ - pixel_x = 28; - req_access = null; - req_access_txt = "16" +/obj/item/stamp{ + pixel_x = -5; + pixel_y = 9 }, -/obj/structure/catwalk/over, -/turf/open/floor/plating, -/area/ship/science/ai_chamber) -"wP" = ( -/obj/effect/turf_decal/corner/opaque/white{ - dir = 4 +/obj/item/pen/red, +/obj/machinery/button/door{ + dir = 4; + id = "harrierdoors"; + name = "External Blast Door Control"; + pixel_x = -25; + pixel_y = 6 }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 8 +/obj/machinery/button/shieldwallgen{ + dir = 4; + id = "harrier_cargofield"; + pixel_x = -24; + pixel_y = -5 }, -/obj/structure/disposalpipe/segment{ - dir = 10 +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /turf/open/floor/plasteel, -/area/ship/crew/canteen) -"wQ" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/smes/shuttle/precharged{ - dir = 4 - }, -/obj/machinery/door/window/eastright{ - name = "Engine Access" - }, -/obj/structure/window/plasma/reinforced/spawner/west, -/obj/structure/window/plasma/reinforced/spawner, +/area/ship/cargo) +"tI" = ( +/obj/effect/spawner/structure/window/shuttle, /obj/machinery/door/poddoor{ - id = "osprey_thruster_starboard"; - name = "Thruster Blast Door"; - dir = 4 + dir = 1; + id = "harrierwindows"; + name = "Window Blast Door" }, /turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"wR" = ( -/obj/structure/closet/crate/freezer/blood, -/obj/machinery/iv_drip, -/obj/effect/turf_decal/corner/opaque/lime{ +/area/ship/security) +"tJ" = ( +/obj/effect/turf_decal/corner/opaque/ntblue/full, +/obj/effect/turf_decal/corner/opaque/white{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/lime{ +/obj/effect/turf_decal/corner/opaque/white, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/lime, -/obj/structure/sign/poster/official/moth/epi{ - pixel_y = 32 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"tN" = ( +/obj/structure/crate_shelf, +/obj/structure/closet/crate/internals, +/obj/item/clothing/suit/space/orange, +/obj/item/clothing/suit/space/orange, +/obj/item/clothing/suit/space/orange, +/obj/item/clothing/head/helmet/space/orange, +/obj/item/clothing/head/helmet/space/orange, +/obj/item/clothing/head/helmet/space/orange, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"tO" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/canteen) +"tQ" = ( +/obj/machinery/igniter{ + id = "harrier_igniter" + }, +/obj/machinery/air_sensor/atmos/incinerator_tank, +/turf/open/floor/engine/vacuum, +/area/ship/engineering/engine) +"tS" = ( +/obj/machinery/disposal/bin{ + name = "biohazard disposal unit" + }, +/obj/effect/turf_decal/box/white{ + color = "#2CB2E8" }, /obj/machinery/light/directional/east, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, /turf/open/floor/plasteel/white, /area/ship/medical) -"wT" = ( -/obj/machinery/power/shuttle/engine/fueled/plasma{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"wV" = ( -/obj/effect/landmark/start/atmospheric_technician, +"tT" = ( +/obj/effect/turf_decal/trimline/opaque/vired/line, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"tV" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"wW" = ( -/turf/open/floor/plasteel/stairs/right{ - dir = 4 + dir = 1 }, -/area/ship/cargo) -"wY" = ( +/obj/machinery/light/small/directional/south, /obj/structure/disposalpipe/segment{ - dir = 2 + dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/carpet/cyan, +/area/ship/medical) +"tY" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/toilet) +"tZ" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ + dir = 4 }, +/obj/structure/closet/emcloset/wall/directional/north, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"uc" = ( /obj/structure/cable{ - icon_state = "1-4" + icon_state = "1-8" }, -/turf/open/floor/plasteel/dark, -/area/ship/science/ai_chamber) -"xb" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"xj" = ( -/obj/structure/janitorialcart{ +/turf/open/floor/plasteel/dark, +/area/ship/security) +"ud" = ( +/obj/machinery/cryopod{ dir = 8 }, -/obj/structure/disposalpipe/sorting/mail{ +/obj/machinery/light_switch{ dir = 8; - sortType = 22; - tag = "Jantor Closet" + pixel_x = 20; + pixel_y = 5 }, -/turf/open/floor/plating, -/area/ship/crew/janitor) -"xp" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/o2, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"xq" = ( -/obj/machinery/button/door{ - dir = 8; - id = "ospreywindows"; - name = "External Window Shutters"; - pixel_x = 32; - pixel_y = -6 +/turf/open/floor/circuit, +/area/ship/crew/cryo) +"ue" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 }, -/obj/machinery/button/door{ - dir = 8; - id = "ospreybridge"; - name = "Bridge Lockdown"; - pixel_x = 32; - pixel_y = 6 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/freezer, +/area/ship/bridge) +"uf" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/industrial/caution{ + dir = 1 }, -/obj/machinery/modular_computer/console/preset/command{ +/obj/structure/chair/handrail{ dir = 8 }, -/obj/item/radio/intercom/wideband/directional/east, -/turf/open/floor/plasteel/tech/grid, -/area/ship/bridge) -"xB" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Infirmary"; - dir = 4 +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/hallway/starboard) +"uh" = ( +/obj/structure/cable{ + icon_state = "6-9" }, -/obj/structure/disposalpipe/segment{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"uk" = ( +/obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/obj/effect/turf_decal/borderfloor{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 4 }, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/engine) +"ul" = ( +/obj/effect/turf_decal/corner/opaque/white{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/white{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/effect/landmark/start/cook, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"um" = ( +/obj/machinery/smartfridge/bloodbank/preloaded, +/turf/open/floor/plasteel/tech/grid, /area/ship/medical) -"xE" = ( -/obj/machinery/light_switch{ - dir = 1; - pixel_y = -16 +"uo" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 }, -/turf/open/floor/plasteel/dark, -/area/ship/science/ai_chamber) -"xF" = ( -/obj/effect/turf_decal/corner/opaque/green{ +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/trimline/transparent/white/filled/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating, +/obj/structure/chair/handrail{ dir = 4 }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"xG" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "osprey_cargoload" +/turf/open/floor/plasteel/dark, +/area/ship/science/ai_chamber) +"up" = ( +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/machinery/camera/autoname{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 10 }, -/turf/open/floor/plating, -/area/ship/cargo) -"xH" = ( -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 }, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"xJ" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Infirmary"; +/obj/effect/turf_decal/siding/wood{ dir = 4 }, +/obj/machinery/light/small/directional/east, /obj/structure/disposalpipe/segment{ - dir = 8 + dir = 10 }, +/turf/open/floor/wood, +/area/ship/crew) +"ur" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/borderfloor{ +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/trimline/opaque/ntblue/arrow_cw{ dir = 4 }, -/obj/machinery/door/firedoor/border_only{ +/turf/open/floor/plasteel/patterned, +/area/ship/storage/eva) +"uu" = ( +/obj/machinery/disposal/deliveryChute{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"xK" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"xN" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"xP" = ( -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 8; - id = "osprey_atmosfield" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ dir = 1 }, -/obj/machinery/door/poddoor{ - id = "osprey_tank_vent" - }, -/turf/open/floor/engine, -/area/ship/engineering/atmospherics) -"xT" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/window/reinforced{ + dir = 4 }, -/obj/machinery/camera/autoname{ - dir = 10 +/obj/machinery/door/window/westleft, +/obj/structure/disposalpipe/trunk{ + dir = 1 }, -/turf/open/floor/plasteel/stairs{ +/turf/open/floor/plating, +/area/ship/cargo) +"uv" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/visible{ dir = 4 }, -/area/ship/hallway/central) -"xY" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"yc" = ( -/obj/structure/closet/secure_closet{ - icon_state = "med"; - name = "medicine locker" +/obj/machinery/light_switch{ + pixel_x = -5; + pixel_y = 20 }, -/obj/item/storage/firstaid/fire{ - pixel_x = -4; - pixel_y = 5 +/obj/effect/turf_decal/siding/yellow{ + dir = 9 }, -/obj/item/storage/firstaid/regular, /obj/machinery/button/door{ - dir = 1; - id = "ospreymed"; - name = "Shutter Control"; - pixel_x = 5; - pixel_y = -25 + dir = 4; + id = "harrier_enginevent"; + name = "Blast Door Control"; + pixel_x = -25; + pixel_y = 1 }, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = -5; - pixel_y = -24 +/obj/structure/chair/handrail, +/turf/open/floor/plasteel, +/area/ship/engineering/engine) +"uw" = ( +/obj/structure/cable{ + icon_state = "5-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/obj/machinery/camera/autoname{ +/obj/structure/chair/handrail{ dir = 1 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"yd" = ( -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"yg" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"yj" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/engineering/atmospherics) -"yl" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel, -/area/ship/crew/cryo) -"yn" = ( -/obj/structure/disposalpipe/sorting/wrap, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/open/floor/plasteel, -/area/ship/cargo/office) -"yq" = ( +/area/ship/hallway/starboard) +"uy" = ( +/obj/machinery/light/small/directional/north, /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"uz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 }, +/obj/machinery/light/directional/east, /obj/structure/cable{ icon_state = "1-8" }, -/obj/effect/turf_decal/siding/wood{ +/obj/effect/turf_decal/siding/wideplating/dark{ dir = 4 }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"yw" = ( -/obj/effect/turf_decal/corner/opaque/red, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 8 +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"uB" = ( +/obj/docking_port/mobile{ + dir = 4; + launch_status = 0; + port_direction = 2; + preferred_direction = 4 }, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/toilet) +"uC" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 4 }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 4 }, +/obj/structure/disposalpipe/sorting/mail{ + dir = 2; + sortTypes = list(8,15,30); + tag = "Bridge" + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"uD" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-4" + }, /obj/structure/cable{ icon_state = "1-8" }, -/obj/machinery/status_display/shuttle{ - pixel_x = 32 +/turf/open/floor/plasteel/tech, +/area/ship/engineering) +"uG" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + dir = 1; + id = "harrierwindows"; + name = "Window Blast Door" }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"yC" = ( -/obj/machinery/camera/emp_proof/motion{ +/turf/open/floor/plating, +/area/ship/crew/canteen) +"uH" = ( +/obj/structure/table/reinforced, +/obj/item/table_bell{ + pixel_x = -4; + pixel_y = 13 + }, +/obj/machinery/door/window/westright, +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/ship/science/ai_chamber) -"yE" = ( -/obj/machinery/vending/cola/random, -/obj/structure/disposalpipe/segment{ +/turf/open/floor/carpet/cyan, +/area/ship/medical) +"uI" = ( +/obj/machinery/door/window/southright{ + dir = 8; + name = "Freezer"; + req_access_txt = "28" + }, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/turf_decal/siding{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +/turf/open/floor/plasteel/freezer, +/area/ship/crew/canteen) +"uS" = ( +/obj/machinery/door/airlock{ + name = "Dormitory" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ dir = 1 }, -/obj/structure/railing{ - layer = 2.91 +/obj/effect/turf_decal/borderfloor{ + dir = 1 }, /turf/open/floor/plasteel, -/area/ship/hallway/central) -"yI" = ( -/obj/machinery/camera/autoname{ - dir = 5 - }, -/obj/machinery/computer/cryopod/directional/west, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/crew/cryo) -"yP" = ( -/obj/machinery/telecomms/relay{ - freq_listening = list(1351); - id = "Nanotrasen Relay"; - name = "Nanotrasen relay"; - network = "nt_commnet" +/area/ship/crew) +"uT" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Room"; + req_access_txt = "10" }, -/obj/machinery/door/window/brigdoor/westleft{ - dir = 4; - name = "Comms Relay"; - req_one_access_txt = "61" +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/circuit, -/area/ship/science/ai_chamber) -"yQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "2-8" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/borderfloor, +/turf/open/floor/plasteel/tech, +/area/ship/engineering) +"uW" = ( +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 1 +/obj/machinery/light/small/directional/south, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"uX" = ( +/obj/structure/guncloset{ + req_access_txt = "2" }, -/obj/machinery/status_display/shuttle{ - pixel_x = 32 +/obj/item/gun/energy/e_gun/mini, +/obj/item/gun/ballistic/automatic/pistol/commander/no_mag, +/obj/item/radio/intercom/directional/east, +/obj/structure/sign/nanotrasen/vigilitas{ + pixel_y = 32 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"yS" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/frame/machine, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"yT" = ( -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/effect/turf_decal/trimline/opaque/vired/filled/warning{ dir = 8 }, -/obj/effect/turf_decal/industrial/warning/corner{ +/obj/item/gun/energy/disabler, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"uZ" = ( +/obj/structure/sign/nanotrasen, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/bridge) +"va" = ( +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/arrow_ccw{ dir = 4 }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"yU" = ( -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 4 +/obj/machinery/camera{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 1 +/obj/structure/chair/handrail{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" +/turf/open/floor/plasteel, +/area/ship/storage/eva) +"vd" = ( +/obj/structure/closet/secure_closet/head_of_personnel{ + populate = 0 + }, +/obj/machinery/firealarm/directional/west, +/obj/item/clothing/shoes/laceup, +/obj/item/clothing/under/nanotrasen/officer, +/obj/item/clothing/suit/toggle/nanotrasen, +/obj/item/clothing/head/nanotrasen/officer, +/obj/item/clothing/head/nanotrasen/beret, +/obj/item/clothing/glasses/sunglasses, +/obj/item/storage/backpack/satchel/leather, +/obj/item/storage/box/ids, +/obj/machinery/light/small/directional/south, +/turf/open/floor/carpet/blue, +/area/ship/crew/dorm) +"vj" = ( +/obj/structure/disposalpipe/sorting/mail{ + dir = 4; + sortTypes = list(2,3); + tag = "QM Office" }, /turf/open/floor/plasteel, /area/ship/cargo) -"yX" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/machinery/light/directional/north, -/obj/machinery/rnd/destructive_analyzer, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"zb" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"zi" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 +"vl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 1 +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/green{ +/turf/open/floor/plasteel, +/area/ship/storage/eva) +"vm" = ( +/obj/effect/turf_decal/corner/opaque/ntblue/full, +/obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/open/floor/plasteel, /area/ship/hallway/central) -"zl" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 +"vr" = ( +/obj/structure/railing, +/obj/structure/disposaloutlet{ + dir = 1 }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"zt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/structure/window/reinforced, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/conveyor{ + dir = 1; + id = "harrier_packagesort" + }, +/turf/open/floor/plating, +/area/ship/cargo) +"vs" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 4 }, +/obj/effect/turf_decal/siding/yellow, +/turf/open/floor/plasteel, +/area/ship/engineering) +"vC" = ( /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/stairs/mid{ - dir = 4 +/obj/machinery/door/airlock{ + dir = 4; + name = "Restroom"; + req_ship_access = 0 }, -/area/ship/cargo) -"zy" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Canteen"; +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/effect/turf_decal/borderfloor{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/machinery/door/firedoor/border_only{ @@ -4016,1612 +3847,1496 @@ /obj/machinery/door/firedoor/border_only{ dir = 4 }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, /turf/open/floor/plasteel, -/area/ship/crew/canteen) -"zF" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 +/area/ship/crew) +"vI" = ( +/obj/structure/table, +/obj/item/storage/bag/trash{ + pixel_x = 5 }, -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/green{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"zJ" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 +/obj/item/reagent_containers/glass/bucket{ + pixel_x = -3; + pixel_y = 8 }, -/obj/machinery/vending/snack/random, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"zL" = ( -/obj/machinery/door/airlock/command{ - name = "First Officer's Quarters"; - req_access_txt = "57"; +/obj/item/mop, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/janitor) +"vL" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/structure/railing/corner{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/borderfloor{ - dir = 8 + dir = 9 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel/mono/dark, /area/ship/bridge) -"zM" = ( -/obj/structure/disposaloutlet{ - dir = 4 +"vM" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/structure/disposalpipe/trunk{ - dir = 8 +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/structure/window/reinforced{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 }, -/obj/structure/window/reinforced{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/obj/structure/window/reinforced, -/obj/machinery/conveyor{ - dir = 4; - id = "osprey_packagesort" +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"vN" = ( +/obj/structure/chair/office{ + dir = 8 }, -/turf/open/floor/plating, -/area/ship/cargo/office) -"zN" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/effect/landmark/start/quartermaster, +/turf/open/floor/plasteel, +/area/ship/cargo) +"vS" = ( +/obj/structure/filingcabinet/double/grey, +/obj/structure/sign/nanotrasen/ns{ + pixel_y = 32 }, +/turf/open/floor/plasteel, +/area/ship/cargo) +"vT" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/railing, -/turf/open/floor/plasteel/stairs{ - dir = 4 - }, -/area/ship/hallway/central) -"zQ" = ( -/obj/structure/disposalpipe/segment{ +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/effect/turf_decal/borderfloor{ + dir = 8 + }, +/obj/machinery/door/airlock/public/glass{ + dir = 4; + name = "Canteen" }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"vW" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/trimline/opaque/blue/end{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/opaque/blue/line, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"zU" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/opaque/bar{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Ac" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/opaque/blue/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Ag" = ( -/obj/machinery/door/airlock/engineering{ - name = "Engineering"; - req_access_txt = "10"; - dir = 8 +/obj/effect/turf_decal/siding/wood{ + dir = 10 }, /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/effect/turf_decal/borderfloor{ - dir = 8 +/obj/structure/closet/emcloset/wall/directional/south, +/turf/open/floor/wood, +/area/ship/crew) +"vY" = ( +/obj/structure/cable{ + icon_state = "1-8" }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, -/obj/machinery/door/firedoor/border_only{ +/obj/effect/turf_decal/ntspaceworks_big/eight{ dir = 8 }, -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"vZ" = ( +/obj/structure/table/reinforced, +/turf/open/floor/plating, +/area/ship/crew/canteen) +"wa" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + dir = 1; + id = "harrierwindows"; + name = "Window Blast Door" + }, +/turf/open/floor/plating, +/area/ship/hallway/central) +"wd" = ( +/obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/engineering) -"Ai" = ( -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 8 +/obj/machinery/conveyor_switch/oneway{ + id = "harrier_packagesort" }, -/obj/structure/cable{ - icon_state = "1-8" +/obj/structure/disposalpipe/segment{ + dir = 10 }, /turf/open/floor/plasteel, -/area/ship/hallway/central) -"Aj" = ( -/obj/machinery/door/firedoor/heavy, +/area/ship/cargo) +"wn" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, /obj/machinery/door/poddoor{ - id = "osprey_thruster_port"; - name = "Blast Door"; - dir = 4 + dir = 1; + id = "harrierdoors"; + name = "Cargo Bay Blast Door" }, -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1{ - dir = 4 +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 8; + id = "harrier_cargofield"; + locked = 1 }, -/turf/open/floor/plating, -/area/ship/science/ai_chamber) -"An" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor/shutters{ - id = "ospreysci" +/obj/structure/cable{ + icon_state = "0-1" }, -/obj/machinery/door/firedoor/window, /turf/open/floor/plating, -/area/ship/science) -"Ap" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 +/area/ship/storage/eva) +"wp" = ( +/obj/machinery/washing_machine, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel, +/area/ship/crew) +"wq" = ( +/obj/structure/cable{ + icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, -/turf/open/floor/plasteel/dark, -/area/ship/science/ai_chamber) -"AB" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/obj/item/kirbyplants/random, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"AR" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/machinery/door/airlock/mining{ - name = "Cargo Office"; - req_access_txt = "31" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/borderfloor{ - dir = 1 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/obj/effect/turf_decal/ntspaceworks_big/six{ + dir = 8 }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"AS" = ( /obj/structure/disposalpipe/segment{ dir = 5 }, -/obj/structure/chair/office{ +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"wr" = ( +/obj/effect/turf_decal/corner/opaque/ntblue/full, +/obj/effect/turf_decal/corner/opaque/white, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"wz" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 8 + }, +/obj/structure/railing/corner{ dir = 1 }, -/obj/effect/landmark/start/quartermaster, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 4 +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 }, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"AT" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 +/obj/structure/cable{ + icon_state = "1-8" }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"wA" = ( /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"Bc" = ( -/obj/structure/table/optable, -/obj/effect/turf_decal/corner/opaque/pink{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/pink{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/white, /area/ship/medical) -"Bl" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/volume_pump, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"Bn" = ( +"wD" = ( /obj/structure/disposalpipe/segment, -/obj/structure/closet/emcloset/anchored, -/obj/machinery/firealarm/directional/west, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -20; - pixel_y = 10 +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner, +/turf/open/floor/plasteel, +/area/ship/hallway/starboard) +"wH" = ( +/turf/open/floor/plasteel/mono, +/area/ship/storage/eva) +"wL" = ( +/obj/structure/chair/comfy/blue/corpo/directional/south, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 9 }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Bp" = ( -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_y = -32 +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"Bq" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/structure/table, -/obj/item/storage/belt/utility{ - pixel_y = 6 - }, -/obj/item/hand_labeler{ - pixel_x = 15; - pixel_y = 7 - }, -/obj/item/multitool{ - pixel_x = 7; - pixel_y = 2 - }, -/obj/item/clothing/head/soft{ - pixel_x = -7 - }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 4 +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"wM" = ( +/obj/machinery/telecomms/relay{ + freq_listening = list(1351); + id = "Nanotrasen Relay"; + name = "Nanotrasen relay"; + network = "nt_commnet" }, -/obj/effect/turf_decal/corner/opaque/brown{ +/turf/open/floor/circuit, +/area/ship/science/ai_chamber) +"wN" = ( +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"wO" = ( +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ dir = 1 }, +/obj/structure/disposalpipe/trunk, /turf/open/floor/plasteel, -/area/ship/cargo/office) -"Bs" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"Bu" = ( -/obj/machinery/vending/cola/random, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 8 +/area/ship/hallway/central) +"wS" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 }, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/effect/turf_decal/borderfloor{ dir = 4 }, -/obj/item/radio/intercom/directional/north, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"Bv" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "osprey_packagesort" - }, -/obj/structure/sign/poster/contraband/steppyflag{ - pixel_x = 32 +/turf/open/floor/plasteel/tech/grid, +/area/ship/hallway/starboard) +"wU" = ( +/obj/structure/cable{ + icon_state = "2-4" }, -/turf/open/floor/plating, -/area/ship/cargo/office) -"BH" = ( -/obj/structure/sign/nanotrasen, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/dorm) -"BK" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, /obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" + dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"wX" = ( +/turf/closed/wall/mineral/titanium/interior, +/area/ship/crew) +"wY" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output, +/turf/open/floor/engine/n2, +/area/ship/engineering/atmospherics) +"xa" = ( +/obj/effect/turf_decal/siding/yellow, +/turf/open/floor/plasteel, +/area/ship/engineering) +"xe" = ( +/obj/machinery/button/door{ + dir = 4; + id = "harriercargo"; + name = "Shutter Control"; + pixel_x = -25; + pixel_y = 5 }, -/obj/structure/cable{ - icon_state = "1-8" +/obj/machinery/button/door{ + id = "harriercargoaccess"; + name = "Cargo Bay Shutters"; + pixel_x = -6; + pixel_y = 24 }, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"BL" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/machinery/button/door{ + id = "harriereva"; + name = "EVA Storage Shutters"; + pixel_x = 6; + pixel_y = 24 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/obj/machinery/computer/cargo, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ dir = 8 }, +/turf/open/floor/plasteel, +/area/ship/cargo) +"xf" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "2-8" }, -/obj/machinery/airalarm/directional/west, -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, -/turf/open/floor/plasteel/dark, -/area/ship/science/ai_chamber) -"BN" = ( /obj/structure/cable{ - icon_state = "1-4" + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/machinery/atmospherics/components/binary/volume_pump{ - dir = 8 - }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"BU" = ( -/obj/machinery/door/window/eastleft, -/obj/structure/toilet{ - dir = 4 + dir = 10 }, -/obj/structure/curtain, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"Cj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 + dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 +/obj/machinery/firealarm/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"Cn" = ( -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"Cp" = ( -/obj/structure/disposalpipe/segment{ +"xg" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/bar, -/obj/effect/turf_decal/corner/opaque/bar{ - dir = 4 +/obj/structure/railing/corner{ + dir = 1 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 + dir = 6 }, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Cu" = ( -/obj/effect/turf_decal/box/corners{ +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"xj" = ( +/obj/structure/railing, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"Cv" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/cargo) -"Cw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"CA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/turf/open/floor/plasteel/patterned/cargo_one, +/turf/open/floor/plasteel, /area/ship/cargo) -"CC" = ( -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, +"xl" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"CF" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/medical) -"CH" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 + dir = 4 }, +/obj/item/radio/intercom/directional/north, +/turf/open/floor/plasteel/dark, +/area/ship/crew/cryo) +"xn" = ( +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"xo" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"CL" = ( -/obj/machinery/door/airlock{ - name = "Restroom"; +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/structure/closet/emcloset/wall/directional/south, +/obj/structure/chair/handrail{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"xv" = ( +/obj/structure/chair{ dir = 4 }, -/obj/effect/turf_decal/borderfloor{ - dir = 8 - }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/effect/turf_decal/siding/yellow, +/turf/open/floor/plasteel, +/area/ship/engineering) +"xy" = ( +/obj/structure/table/wood, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/carpet/cyan, +/area/ship/crew) +"xD" = ( +/obj/item/kirbyplants/random, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 }, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line, /turf/open/floor/plasteel, -/area/ship/crew/toilet) -"CQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/area/ship/hallway/central) +"xH" = ( +/obj/structure/railing, +/obj/structure/table, +/obj/effect/turf_decal/industrial/warning{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"CT" = ( -/obj/machinery/deepfryer, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/structure/disposalpipe/junction/yjunction{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 8 +/obj/item/stack/packageWrap{ + pixel_y = 11 }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"Dg" = ( -/obj/machinery/door/window/southright{ - name = "Kitchen"; - req_access_txt = "28" +/obj/item/stack/packageWrap{ + pixel_y = 5 }, +/obj/item/stack/wrapping_paper, +/obj/item/stack/tape, +/turf/open/floor/plasteel, +/area/ship/cargo) +"xK" = ( /obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, /obj/effect/turf_decal/corner/opaque/white{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/structure/curtain/bounty, /turf/open/floor/plasteel, /area/ship/crew/canteen) -"Di" = ( -/obj/structure/filingcabinet/double, -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 4 +"xM" = ( +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 }, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"Dj" = ( -/obj/structure/table/glass, -/obj/item/defibrillator, -/obj/effect/turf_decal/corner/opaque/pink{ - dir = 4 +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"xN" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/pink{ +/obj/structure/window/reinforced{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/pink, -/obj/structure/sign/warning/nosmoking/circle{ - pixel_x = 25 +/obj/machinery/computer/med_data/laptop{ + dir = 4 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Dq" = ( -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/structure/marker_beacon, -/turf/open/floor/engine/hull, -/area/ship/external) -"Dx" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"DA" = ( -/obj/structure/cable{ - icon_state = "0-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/effect/turf_decal/siding/wood{ - dir = 5 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/machinery/light_switch{ - pixel_x = 20; - dir = 8; - pixel_y = 11 +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"DE" = ( -/obj/effect/turf_decal/industrial/loading{ - dir = 8 +/turf/open/floor/carpet/cyan, +/area/ship/medical) +"xQ" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"xS" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 }, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"DF" = ( -/obj/structure/sign/number/eight{ - color = "Black" +/turf/open/floor/plasteel, +/area/ship/crew) +"yc" = ( +/obj/structure/cable{ + icon_state = "5-10" }, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/cargo/office) -"DH" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 8 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"yd" = ( +/obj/structure/railing{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/siding/yellow{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"DK" = ( -/obj/machinery/vending/dinnerware, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/stairs{ + dir = 1 + }, +/area/ship/engineering/engine) +"yl" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"ym" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 8 }, -/obj/machinery/light/dim/directional/east, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"DO" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 +/obj/machinery/firealarm/directional/east, +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/tech, +/area/ship/engineering) +"yr" = ( +/obj/machinery/door/airlock/mining{ + dir = 4; + name = "Storage Bay"; + req_access_txt = "31" + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, /turf/open/floor/plasteel/patterned, /area/ship/cargo) -"DP" = ( -/obj/structure/sign/number/four{ - color = "Black"; - dir = 1 +"ys" = ( +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 6 }, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/science) -"DU" = ( -/obj/structure/sign/nanotrasen, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/bridge) -"DV" = ( -/obj/structure/chair{ +/obj/effect/turf_decal/industrial/warning, +/obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/structure/railing{ - dir = 6; - layer = 3.1 +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/engine) +"yx" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/structure/cable{ + icon_state = "2-4" }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"DY" = ( -/obj/structure/chair{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/landmark/start/assistant, -/obj/effect/turf_decal/siding/wood{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 6 }, -/obj/machinery/firealarm/directional/south, -/obj/machinery/light/directional/east, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"Ee" = ( -/obj/structure/closet/secure_closet{ - icon_state = "med_secure"; - name = "medical doctor's locker" - }, -/obj/structure/cable{ - icon_state = "0-4" +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 6 }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/ship/engineering/engine) +"yz" = ( +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/obj/item/storage/backpack/duffelbag/med, -/obj/item/storage/backpack/messenger/med, -/obj/item/storage/backpack/satchel/med, -/obj/item/storage/backpack/medic, -/obj/item/clothing/shoes/sneakers/white, -/obj/item/clothing/under/rank/medical/doctor/skirt, -/obj/item/clothing/under/rank/medical/doctor, -/obj/item/clothing/suit/toggle/labcoat, -/obj/item/storage/belt/medical, -/obj/item/clothing/glasses/hud/health, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -19; - pixel_y = 12 +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Ek" = ( +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/engine) +"yB" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"yE" = ( /obj/effect/turf_decal/industrial/warning{ - dir = 6 + dir = 5 }, -/obj/machinery/conveyor_switch/oneway{ - id = "osprey_packagesort" +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 }, /turf/open/floor/plasteel, -/area/ship/cargo/office) -"Em" = ( -/obj/machinery/door/window/eastright{ - dir = 2; - req_access = list(11) +/area/ship/cargo) +"yG" = ( +/obj/structure/table/wood, +/obj/item/storage/pill_bottle/dice, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/computer/helm/viewscreen/directional/south, +/turf/open/floor/wood, +/area/ship/crew) +"yI" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, /obj/machinery/door/firedoor/border_only, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "5-10" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"Es" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"yL" = ( +/obj/structure/fluff/hedge, +/obj/structure/fluff/hedge, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ + dir = 1 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/hallway/central) -"Ey" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 +"yR" = ( +/obj/item/storage/backpack/medic, +/obj/item/clothing/shoes/sneakers/blue, +/obj/item/clothing/under/nanotrasen/medical/paramedic, +/obj/item/clothing/head/nanotrasen/cap/medical, +/obj/item/clothing/glasses/hud/health, +/obj/item/storage/belt/medical/paramedic, +/obj/structure/closet/secure_closet/medical3{ + icon_state = "brig_phys"; + name = "paramedic's locker"; + populate = 0; + req_access = list(5) + }, +/obj/item/storage/backpack/messenger/para, +/obj/effect/turf_decal/trimline/opaque/blue/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"yS" = ( +/obj/machinery/door/airlock/external/glass{ + dir = 4 }, +/obj/effect/turf_decal/industrial/warning/fulltile, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 + dir = 4 }, -/obj/structure/cable{ - icon_state = "1-4" +/turf/open/floor/engine, +/area/ship/engineering/engine) +"yY" = ( +/obj/structure/toilet{ + dir = 1 }, -/obj/structure/railing, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"EA" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 }, -/turf/open/floor/plasteel/patterned, +/turf/open/floor/plasteel/freezer, +/area/ship/bridge) +"za" = ( +/obj/machinery/conveyor/inverted{ + dir = 6; + id = "harrier_packagesort" + }, +/turf/open/floor/plating, /area/ship/cargo) -"EN" = ( +"zc" = ( /obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor/shutters{ - id = "ospreywindows"; +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ + dir = 8 + }, +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrierwindows"; + name = "Window Blast Door" + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5{ dir = 4 }, -/obj/machinery/door/firedoor/heavy, /turf/open/floor/plating, -/area/ship/crew/cryo) -"EO" = ( -/obj/structure/closet, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/machinery/firealarm/directional/south, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel, -/area/ship/crew/cryo) -"ET" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = 6 - }, -/obj/item/folder, -/obj/item/pen, -/obj/machinery/light/small/directional/south, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"EW" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/area/ship/engineering/atmospherics) +"zd" = ( +/obj/structure/cable{ + icon_state = "2-4" }, -/turf/open/floor/plating, -/area/ship/engineering) -"EX" = ( +/obj/machinery/light/small/directional/north, /obj/structure/disposalpipe/segment{ - dir = 10 + dir = 6 }, -/obj/effect/turf_decal/corner/opaque/brown, -/obj/effect/turf_decal/corner/opaque/brown{ +/turf/open/floor/carpet/cyan, +/area/ship/medical) +"zm" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/machinery/camera, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"zr" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Fe" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "AI Chamber"; - req_access_txt = "10" +/obj/machinery/light_switch{ + pixel_x = -5; + pixel_y = 20 }, -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/machinery/firealarm/directional/north{ + pixel_x = 6 }, -/obj/effect/turf_decal/borderfloor{ +/obj/effect/turf_decal/trimline/opaque/vired/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/tech/grid, -/area/ship/science/ai_chamber) -"Fj" = ( -/obj/structure/window/reinforced{ - dir = 4 +/turf/open/floor/plasteel/dark, +/area/ship/security) +"zs" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{ + dir = 4; + piping_layer = 1 }, -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5{ + dir = 6 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"Fk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 +/turf/open/floor/engine/hull/reinforced, +/area/ship/external/dark) +"zv" = ( +/obj/effect/turf_decal/trimline/opaque/blue/line, +/obj/structure/closet/emcloset/wall/directional/south, +/obj/machinery/camera{ + dir = 10 }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"Fo" = ( -/obj/effect/turf_decal/corner/opaque/white{ +/turf/open/floor/plasteel/white, +/area/ship/medical) +"zx" = ( +/obj/structure/sign/directions/service{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 8 +/obj/structure/sign/directions/supply{ + dir = 4; + pixel_y = -6 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/plasteel, +/obj/structure/sign/directions/medical{ + dir = 4; + pixel_y = 6 + }, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/crew/canteen) -"Fr" = ( -/obj/structure/table, -/obj/item/instrument/saxophone, -/turf/open/floor/plasteel, -/area/ship/crew/cryo) -"Fs" = ( -/obj/machinery/door/window/northleft{ - name = "Mining Storage"; - req_access_txt = "48" +"zy" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/borderfloor{ +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"zF" = ( +/obj/structure/fluff/hedge, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ dir = 1 }, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/hallway/central) +"zI" = ( /obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 + icon_state = "1-4" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"FC" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/machinery/atmospherics/components/binary/volume_pump/on/layer4{ + dir = 8; + name = "Waste to Recycling" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/obj/machinery/atmospherics/pipe/manifold/green/visible/layer1{ + dir = 4 }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"FF" = ( -/obj/machinery/button/massdriver{ - id = "osprey_disposals"; - name = "disposals button"; - pixel_x = 7; - pixel_y = 24 +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 5 }, -/obj/machinery/button/door{ - id = "osprey_disposals_preopen"; - pixel_x = -7; - pixel_y = 25 +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5{ + dir = 5 }, -/obj/machinery/conveyor_switch/oneway{ - id = "osprey_garbage" +/obj/effect/turf_decal/siding/yellow/corner{ + dir = 1 }, -/turf/open/floor/plating, -/area/ship/crew/janitor) -"FI" = ( -/obj/structure/sign/warning/docking{ - pixel_y = -8 +/obj/effect/turf_decal/siding/yellow/corner{ + dir = 4 }, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/hallway/central) -"FL" = ( -/turf/open/floor/plasteel, -/area/ship/crew/cryo) -"FP" = ( /obj/structure/disposalpipe/segment{ - dir = 8 + dir = 5 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 +/turf/open/floor/plasteel, +/area/ship/engineering/engine) +"zO" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ + dir = 4 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"FV" = ( -/obj/structure/sign/departments/restroom, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/toilet) -"FZ" = ( -/obj/structure/table/wood, -/obj/structure/bedsheetbin, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"Ga" = ( -/obj/structure/chair{ +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"zT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/effect/landmark/start/assistant, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"zU" = ( +/obj/structure/cable{ + icon_state = "4-10" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"Ge" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/turf/open/floor/plasteel, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"Gk" = ( -/obj/effect/turf_decal/box/corners, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"Gp" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ +"zV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/chair/handrail{ dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"Gr" = ( +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"zX" = ( +/obj/machinery/computer/station_alert{ + dir = 8; + icon_state = "computer-left" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, /obj/structure/cable{ icon_state = "1-2" }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/bridge) +"zY" = ( +/obj/structure/table/reinforced, +/obj/item/folder/blue, /obj/structure/cable{ icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"Gt" = ( -/obj/effect/turf_decal/industrial/warning/fulltile, -/obj/machinery/door/poddoor{ - id = "ospreydoors"; - name = "Cargo Bay Blast Door"; - dir = 4 +/turf/open/floor/carpet/royalblue, +/area/ship/bridge) +"Ad" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, -/turf/open/floor/plasteel/tech, -/area/ship/cargo) -"Gu" = ( -/obj/machinery/conveyor/inverted{ - dir = 10; - id = "osprey_packagesort" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 }, -/turf/open/floor/plating, -/area/ship/cargo/office) -"Gw" = ( -/obj/machinery/conveyor/inverted{ - dir = 6; - id = "osprey_production" +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"Ah" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/machinery/door/window/westright, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 8; + sortType = 22; + tag = "Janitor Closet" }, /turf/open/floor/plating, -/area/ship/cargo) -"Gz" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "AI Chamber"; - req_access_txt = "10" +/area/ship/crew/janitor) +"Aj" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/effect/turf_decal/borderfloor, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"Ak" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"Al" = ( +/obj/structure/railing, +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/hand_labeler_refill, +/obj/item/hand_labeler_refill, +/obj/item/hand_labeler, +/obj/item/destTagger, +/turf/open/floor/plasteel, +/area/ship/cargo) +"Ao" = ( +/obj/machinery/computer/card{ + dir = 8; + icon_state = "computer-left" + }, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "2-4" }, -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, /turf/open/floor/plasteel/tech/grid, -/area/ship/science/ai_chamber) -"GC" = ( -/obj/machinery/vending/boozeomat, -/obj/effect/turf_decal/corner/opaque/white{ +/area/ship/bridge) +"Av" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ dir = 8 }, -/obj/structure/sign/poster/official/cleanliness{ - pixel_y = 32 - }, -/obj/machinery/light/directional/west, +/turf/open/floor/plasteel, +/area/ship/storage/eva) +"Aw" = ( +/obj/structure/table, +/obj/effect/turf_decal/trimline/opaque/ntblue/line, /turf/open/floor/plasteel, /area/ship/crew/canteen) -"GG" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/disposal/deliveryChute, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/machinery/door/window/southright, -/turf/open/floor/plating, -/area/ship/cargo/office) -"GN" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +"Ax" = ( /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"GU" = ( -/obj/structure/tank_dispenser/oxygen, -/obj/effect/turf_decal/borderfloor{ - dir = 8 - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 + dir = 10 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"GX" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20; + pixel_y = 0 }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"Hb" = ( -/obj/structure/closet/secure_closet{ - icon_state = "med"; - name = "mortuary locker" +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/obj/item/storage/box/bodybags{ - pixel_x = -7; - pixel_y = 4 +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/janitor) +"Az" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/item/storage/box/syringes{ - pixel_x = -6 +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/obj/item/storage/box/gloves, -/obj/item/reagent_containers/glass/bottle/formaldehyde{ - pixel_x = 8; - pixel_y = 8 +/obj/machinery/camera, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/carpet/cyan, +/area/ship/medical) +"AE" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/engineering/engine) +"AS" = ( +/obj/structure/bed, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"AW" = ( +/obj/structure/table/reinforced, +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/item/reagent_containers/glass/bottle{ - list_reagents = list(/datum/reagent/medicine/thializid=30); - name = "thializid bottle"; - pixel_x = 5 +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/effect/turf_decal/industrial/warning/corner{ +/obj/effect/turf_decal/siding/wideplating/dark{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/item/storage/fancy/donut_box, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"Bb" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/arrow_ccw, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"Bd" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 }, -/obj/item/storage/box/masks, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Hf" = ( -/obj/machinery/power/port_gen/pacman, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/cargo) +"Bj" = ( +/obj/machinery/holopad/emergency/kitchen, +/obj/effect/turf_decal/box, /obj/structure/cable{ - icon_state = "0-2" + icon_state = "4-8" }, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/sign/warning/electricshock{ - pixel_y = 25 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 }, -/turf/open/floor/plating, -/area/ship/engineering) -"Hi" = ( /obj/structure/disposalpipe/segment{ - dir = 10 + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"Bm" = ( +/obj/machinery/holopad/emergency/engineering, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 4 }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/engine) +"Bq" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, -/obj/effect/turf_decal/corner/opaque/yellow{ +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/yellow{ +/turf/open/floor/plasteel, +/area/ship/crew) +"Br" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/item/paper_bin, +/obj/item/folder/white, +/obj/item/pen, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Hk" = ( -/obj/machinery/power/shuttle/engine/electric{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"Bs" = ( /obj/structure/cable{ - icon_state = "0-4" + icon_state = "1-2" }, -/turf/open/floor/plating, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/patterned, /area/ship/engineering/atmospherics) -"Hn" = ( -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"Ho" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 +"Bx" = ( +/obj/structure/sign/departments/custodian, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/bridge) +"BA" = ( +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, /turf/open/floor/plasteel, /area/ship/hallway/central) -"Ht" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, +"BF" = ( +/obj/item/kirbyplants/random, /turf/open/floor/plasteel, -/area/ship/cargo/office) -"Hx" = ( -/obj/structure/table/reinforced, -/obj/item/paper_bin{ - pixel_x = 6 - }, -/obj/item/clipboard{ - pixel_x = -7 - }, -/obj/item/folder/white{ - pixel_x = -7 - }, -/obj/item/pen{ - pixel_x = -7 +/area/ship/bridge) +"BG" = ( +/obj/structure/chair/office/light{ + dir = 8 }, -/obj/item/stamp/cmo{ - pixel_x = -1; - pixel_y = 12 +/obj/effect/landmark/start/paramedic, +/obj/machinery/button/door{ + dir = 1; + id = "lobbydoors"; + name = "Lobby Door Control"; + normaldoorcontrol = 1; + pixel_y = -20 }, /turf/open/floor/plasteel/white, /area/ship/medical) -"Hy" = ( -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 1 +"BI" = ( +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 }, -/obj/structure/rack, -/obj/item/pickaxe, -/obj/machinery/light/dim/directional/north, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"HD" = ( -/obj/structure/closet/secure_closet{ - icon_state = "hop"; - name = "\proper first officer's locker"; - req_access_txt = "57" +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/structure/sign/poster/official/bless_this_spess{ - pixel_y = 32 +/obj/machinery/door/airlock/medical/glass{ + dir = 4; + name = "Infirmary"; + req_access_txt = "5" }, -/obj/item/storage/backpack/duffelbag, -/obj/item/storage/backpack/messenger, -/obj/item/storage/backpack, -/obj/item/storage/backpack/satchel/leather, -/obj/item/clothing/shoes/laceup, -/obj/item/clothing/under/nanotrasen/officer/skirt, -/obj/item/clothing/under/nanotrasen/officer, -/obj/item/clothing/suit/armor/vest/hop, -/obj/item/clothing/gloves/color/white, -/obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/head/nanotrasen/officer, -/obj/item/assembly/flash/handheld, -/obj/item/storage/box/ids, -/obj/item/storage/box/PDAs, -/turf/open/floor/carpet/blue, -/area/ship/bridge) -"HE" = ( -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/poddoor{ - id = "osprey_thruster_port"; - name = "Blast Door"; - dir = 4 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/turf/open/floor/plating, -/area/ship/science/ai_chamber) -"HK" = ( -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"HU" = ( -/obj/structure/chair{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/effect/turf_decal/borderfloor{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/blue, /turf/open/floor/plasteel/white, /area/ship/medical) -"HV" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/n2, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"Ib" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/structure/railing, +"BO" = ( +/obj/machinery/vending/cola/random, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line, /turf/open/floor/plasteel, /area/ship/hallway/central) -"Ie" = ( -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 8 +"BS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/arrow_cw{ dir = 1 }, -/obj/machinery/photocopier, -/obj/machinery/computer/helm/viewscreen/directional/west, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"Ig" = ( -/obj/effect/turf_decal/box/corners{ - dir = 8 +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"BU" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrierwindows"; + name = "Window Blast Door" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"Ih" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 8 +/turf/open/floor/plating, +/area/ship/crew/canteen) +"BY" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/machinery/camera/autoname{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 10 }, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Ii" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/structure/disposalpipe/segment{ - dir = 9 + dir = 6 }, -/obj/structure/cable{ - icon_state = "1-2" +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"Ci" = ( +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrier_enginevent" }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Iq" = ( -/obj/structure/table, -/obj/item/multitool{ - pixel_y = 8 +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/engine/vacuum, +/area/ship/engineering/engine) +"Ck" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 }, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/glasses/welding{ - pixel_y = -1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/plasteel/white, -/area/ship/science) -"Iv" = ( -/obj/machinery/pipedispenser, -/obj/structure/cable{ - icon_state = "2-8" +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "2-4" +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"Cm" = ( +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"Cn" = ( +/obj/structure/table/wood, +/obj/machinery/light_switch{ + dir = 8; + pixel_x = 20; + pixel_y = 0 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 6 +/obj/machinery/airalarm/directional/north, +/obj/item/reagent_containers/food/drinks/bottle/champagne{ + pixel_x = 6; + pixel_y = 22 }, -/obj/machinery/button/door{ - id = "osprey_thruster_starboard"; - name = "Blast Door Control"; - pixel_y = 25 +/obj/item/reagent_containers/food/drinks/bottle/champagne{ + pixel_x = -6; + pixel_y = 22 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"Ix" = ( -/obj/structure/window/reinforced{ - dir = 8 +/obj/item/reagent_containers/food/drinks/modglass/large{ + pixel_x = 7; + pixel_y = 12 }, -/obj/machinery/suit_storage_unit/engine, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 8 +/obj/item/reagent_containers/food/drinks/modglass/large{ + pixel_x = -6; + pixel_y = 12 }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 1 +/obj/item/reagent_containers/food/drinks/modglass/large{ + pixel_y = 6 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"Iz" = ( -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics"; - req_access_txt = "24"; - dir = 8 +/turf/open/floor/carpet/royalblue, +/area/ship/crew/dorm/dormtwo) +"Co" = ( +/obj/structure/chair/sofa/blue/corpo/left/directional/east, +/turf/open/floor/wood, +/area/ship/crew) +"Cv" = ( +/turf/closed/wall/mineral/titanium/interior, +/area/ship/security) +"Cz" = ( +/obj/structure/cable{ + icon_state = "1-4" }, -/obj/structure/disposalpipe/segment{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"CA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 + dir = 6 }, -/obj/effect/turf_decal/borderfloor{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"CH" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 }, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"CI" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"CJ" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/engineering/atmospherics) -"IA" = ( -/obj/effect/turf_decal/box/corners{ - dir = 8 - }, -/obj/structure/closet/crate/internals, -/obj/item/clothing/suit/space/orange, -/obj/item/clothing/suit/space/orange, -/obj/item/clothing/suit/space/orange, -/obj/item/clothing/head/helmet/space/orange, -/obj/item/clothing/head/helmet/space/orange, -/obj/item/clothing/head/helmet/space/orange, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"IL" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/science) -"IR" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 8 +/obj/machinery/camera{ + dir = 6 }, -/obj/structure/disposalpipe/segment{ - dir = 2 +/turf/open/floor/plasteel, +/area/ship/crew) +"CK" = ( +/obj/structure/closet/secure_closet/security{ + populate = 0; + req_access = list(2) }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/door/poddoor/shutters{ - id = "ospreykitchen" +/obj/structure/sign/poster/retro/lasergun_new{ + pixel_x = 32 }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"IT" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/under/nanotrasen/security, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/head/nanotrasen/cap/security, +/obj/item/clothing/head/nanotrasen/beret/security, +/obj/item/clothing/glasses/sunglasses, +/obj/item/storage/backpack/security, +/obj/item/storage/box/handcuffs, +/obj/item/reagent_containers/spray/pepper, +/obj/item/ammo_box/magazine/co9mm, +/obj/item/ammo_box/magazine/co9mm, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/c9mm, +/obj/item/ammo_box/c9mm/rubbershot, +/obj/effect/turf_decal/trimline/opaque/vired/line, +/obj/item/storage/belt/security, +/obj/item/melee/knife/survival, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"CN" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "harrier_packagesort" }, -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/structure/sign/poster/official/random{ + pixel_x = 32 }, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"IU" = ( -/obj/effect/landmark/start/paramedic, -/obj/effect/turf_decal/corner/opaque/lime{ +/turf/open/floor/plating, +/area/ship/cargo) +"CO" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/storage/eva) +"CP" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1, +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5{ + dir = 10 + }, +/obj/structure/chair/handrail{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"CR" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/lime{ - dir = 4 +/obj/structure/disposalpipe/segment{ + dir = 5 }, /turf/open/floor/plasteel/white, /area/ship/medical) -"IV" = ( -/obj/structure/chair{ +"CV" = ( +/obj/machinery/power/shuttle/engine/fueled/plasma{ dir = 4 }, -/obj/structure/sign/poster/official/high_class_martini{ - pixel_y = -32 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 10 +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrier_thrusters_port"; + name = "Thruster Blast Door" }, -/obj/machinery/light/directional/west, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"IW" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/dorm) -"IX" = ( -/obj/effect/turf_decal/box/corners{ +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"CW" = ( +/obj/machinery/cryopod{ dir = 4 }, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"IY" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/engineering/atmospherics) -"Jc" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/shower{ +/turf/open/floor/circuit, +/area/ship/crew/cryo) +"Da" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ dir = 8 }, -/obj/structure/sign/warning/nosmoking/circle{ - pixel_x = 25 +/turf/open/floor/plasteel/dark, +/area/ship/science/ai_chamber) +"Db" = ( +/obj/structure/chair/comfy/blue/corpo{ + dir = 4 }, -/turf/open/floor/noslip, -/area/ship/engineering) -"Jl" = ( -/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped{ +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"Dg" = ( +/obj/effect/turf_decal/industrial/warning/corner{ dir = 1 }, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"Jt" = ( -/obj/structure/table, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"Jw" = ( +/obj/effect/turf_decal/industrial/warning/corner{ + dir = 4 + }, /obj/structure/disposalpipe/segment{ - dir = 6 + dir = 5 }, -/obj/machinery/door/window/eastleft, -/obj/machinery/conveyor{ - dir = 1; - id = "osprey_garbage" +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/engine) +"Dk" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 }, -/obj/machinery/camera/autoname{ - dir = 5 +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/turf/open/floor/plating, +/turf/open/floor/plasteel/tech/techmaint, /area/ship/crew/janitor) -"JD" = ( -/obj/structure/bed, -/obj/item/bedsheet/medical, -/obj/effect/turf_decal/industrial/warning/corner, -/obj/effect/turf_decal/corner/opaque/lime, -/obj/effect/turf_decal/corner/opaque/lime{ - dir = 4 +"Dl" = ( +/obj/machinery/computer/cryopod/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 }, -/obj/machinery/firealarm/directional/east, +/turf/open/floor/plasteel/dark, +/area/ship/crew/cryo) +"Dr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/opaque/blue/filled/end, /turf/open/floor/plasteel/white, /area/ship/medical) -"JG" = ( -/obj/machinery/disposal/bin, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 4 +"Ds" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 8 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 }, -/obj/structure/disposalpipe/trunk{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = 5; - pixel_y = -24 +/obj/machinery/light/small/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/obj/machinery/button/door{ - dir = 1; - id = "ospreykitchen"; - name = "Shutter Control"; - pixel_x = -5; - pixel_y = -25 - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"JL" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/food/drinks/shaker, -/obj/item/reagent_containers/condiment/enzyme, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/white{ +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"Dy" = ( +/obj/structure/railing{ dir = 8 }, -/obj/item/reagent_containers/glass/rag, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"JN" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, /obj/structure/cable{ - icon_state = "1-8" + icon_state = "1-2" }, -/obj/effect/turf_decal/industrial/warning, -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/stairs{ dir = 1 }, -/obj/machinery/door/poddoor{ - id = "osprey_tank_vent" - }, -/turf/open/floor/engine, -/area/ship/engineering/atmospherics) -"JO" = ( -/obj/machinery/holopad/emergency/engineering, -/obj/effect/turf_decal/box, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/engineering) -"JW" = ( -/obj/machinery/vending/cigarette, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"JX" = ( -/obj/structure/sign/departments/engineering, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/janitor) -"Ka" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +/area/ship/bridge) +"DC" = ( +/obj/machinery/door/airlock/grunge{ + dir = 4; + name = "Computer Core" }, /obj/structure/cable{ icon_state = "4-8" @@ -5629,849 +5344,883 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/structure/cabinet/fireaxe{ - pixel_y = 32 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "2-8" +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/obj/machinery/camera/autoname, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"Ko" = ( -/obj/structure/window/plasma/reinforced, +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ship/science/ai_chamber) +"DD" = ( /obj/structure/cable{ - icon_state = "2-8" + icon_state = "4-8" }, -/obj/machinery/atmospherics/components/unary/thermomachine/freezer, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"KA" = ( -/obj/effect/turf_decal/industrial/warning/corner, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"KC" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 5 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"KD" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/plasteel/dark, +/area/ship/crew/cryo) +"DH" = ( /obj/structure/cable{ - icon_state = "0-4" + icon_state = "1-2" }, -/obj/machinery/power/apc/auto_name/directional/west, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"KE" = ( -/obj/structure/closet/secure_closet{ - icon_state = "brig_phys"; - name = "paramedic's locker" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 }, -/obj/machinery/airalarm/directional/west, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/machinery/light/directional/west, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 1 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"DM" = ( +/obj/machinery/door/firedoor/window, +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrierbridge"; + name = "Window Blast Door" }, -/obj/item/storage/backpack/duffelbag/med, -/obj/item/storage/backpack/satchel/med, -/obj/item/storage/backpack/medic, -/obj/item/storage/backpack/messenger/para, -/obj/item/clothing/shoes/sneakers/blue, -/obj/item/clothing/under/rank/medical/paramedic/skirt, -/obj/item/clothing/under/rank/medical/paramedic, -/obj/item/clothing/head/soft/paramedic, -/obj/item/storage/belt/medical, -/obj/item/clothing/glasses/hud/health, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"KI" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"KL" = ( -/obj/structure/chair/comfy/orange/directional/south, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/cable{ - icon_state = "0-2" + icon_state = "0-8" }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plating, /area/ship/bridge) -"La" = ( +"DP" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"DQ" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/tech, +/area/ship/engineering) +"Eb" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "5-10" }, -/obj/structure/disposalpipe/junction/flip, -/turf/open/floor/plasteel, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"Lc" = ( -/obj/machinery/computer/med_data{ - dir = 4 +"Eh" = ( +/obj/structure/railing{ + dir = 1 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Ll" = ( -/obj/structure/sign/departments/cargo, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/cargo/office) -"Lt" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 +/obj/effect/turf_decal/siding/yellow{ + dir = 9 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/plasteel, +/area/ship/engineering/engine) +"Ei" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/structure/cable{ - icon_state = "1-4" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/chair/handrail{ + dir = 1 }, -/obj/effect/turf_decal/industrial/shutoff, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"Lz" = ( -/obj/structure/table/reinforced, +"Em" = ( +/obj/machinery/door/window/southright{ + name = "Kitchen"; + req_access_txt = "28" + }, /obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, /obj/effect/turf_decal/corner/opaque/white{ dir = 8 }, -/obj/machinery/door/poddoor/shutters{ - id = "ospreykitchen" - }, -/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/ship/crew/canteen) -"LB" = ( -/obj/machinery/atmospherics/pipe/manifold/orange/visible, -/obj/effect/turf_decal/industrial/warning{ +"Eq" = ( +/obj/effect/turf_decal/atmos/oxygen, +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/oxygen_input{ + dir = 8; + piping_layer = 1 + }, +/turf/open/floor/engine/o2, +/area/ship/engineering/atmospherics) +"Er" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ dir = 4 }, -/turf/open/floor/plating, -/area/ship/engineering) -"LE" = ( -/obj/machinery/door/window/brigdoor/westleft{ - name = "AI Core Access"; - req_one_access_txt = "16" +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 8 }, -/obj/structure/rack, -/obj/item/aiModule/core/full/asimov, -/obj/item/aiModule/core/full/corp, -/obj/item/aiModule/core/freeformcore, -/obj/item/aiModule/reset/purge{ - pixel_y = 5 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/turf/open/floor/circuit, -/area/ship/science/ai_chamber) -"LF" = ( -/obj/effect/landmark/start/station_engineer, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"LK" = ( -/obj/structure/window/reinforced, -/obj/structure/table, -/obj/item/storage/toolbox/mechanical{ - pixel_x = 2; - pixel_y = 10 +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/yellow, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/item/storage/toolbox/mechanical, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"LV" = ( -/obj/effect/turf_decal/siding/wood{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"LW" = ( /obj/structure/disposalpipe/segment{ - dir = 2 + dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"Ev" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"Ey" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel/dark, -/area/ship/science/ai_chamber) -"LX" = ( -/obj/structure/disposalpipe/trunk{ +/obj/effect/turf_decal/borderfloor, +/obj/structure/sign/poster/official/safety_internals{ + pixel_x = -32 + }, +/obj/structure/chair/handrail{ dir = 4 }, -/obj/structure/disposaloutlet{ - dir = 1 +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage/eva) +"Ez" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/structure/window/reinforced{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/conveyor{ - dir = 1; - id = "osprey_garbage" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/ntspaceworks_big/two{ + dir = 8 }, -/turf/open/floor/plating, -/area/ship/crew/janitor) -"Ma" = ( /obj/structure/disposalpipe/segment{ - dir = 2 + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"EB" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/turretid{ - pixel_x = 28; - req_access = null; - req_access_txt = "16" - }, -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5{ - dir = 10 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/ship/cargo) +"ED" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, -/obj/structure/catwalk/over, -/turf/open/floor/plating, -/area/ship/science/ai_chamber) -"Mc" = ( -/obj/structure/sign/warning/vacuum/external, -/turf/closed/wall/mineral/titanium/nodiagonal, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"Mo" = ( -/obj/effect/turf_decal/industrial/warning/corner, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/east, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"Mu" = ( -/obj/structure/window/reinforced{ - dir = 8 +"EF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/layer4{ + dir = 4; + piping_layer = 5 }, -/obj/structure/closet/secure_closet{ - icon_state = "eng_secure"; - name = "engineer's locker"; - req_access = list(11) +/turf/open/floor/engine/vacuum, +/area/ship/engineering/engine) +"EJ" = ( +/obj/structure/cable/yellow{ + icon_state = "1-8" }, -/obj/item/storage/backpack/industrial, -/obj/item/clothing/shoes/workboots, -/obj/item/clothing/under/rank/engineering/engineer/nt, -/obj/item/clothing/under/rank/engineering/engineer/nt/skirt, -/obj/item/clothing/suit/hazardvest, -/obj/item/clothing/head/hardhat/weldhat, -/obj/item/storage/belt/utility/full/engi, -/obj/machinery/light_switch{ - pixel_y = 24 +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"EQ" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 4 +/obj/machinery/atmospherics/components/binary/pump/on/layer2{ + name = "Air to Supply" }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/yellow{ +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"ES" = ( +/obj/machinery/firealarm/directional/south, +/obj/structure/janitorialcart{ dir = 8 }, -/obj/item/holosign_creator/engineering, -/obj/item/storage/box/metalfoam, -/obj/item/gun/energy/plasmacutter, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"My" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/janitor) +"EU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/ship/cargo) +"EV" = ( +/obj/structure/bed, +/obj/structure/curtain/bounty, +/obj/item/bedsheet/nanotrasen, +/turf/open/floor/carpet/cyan, +/area/ship/crew) +"EX" = ( +/obj/machinery/door/airlock/command{ dir = 4; - sortTypes = list(16,26); - tag = "Dormitories" + name = "Captain's Quarters"; + req_access_txt = "20" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 + dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, /obj/structure/cable{ - icon_state = "1-4" + icon_state = "4-8" + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/dorm/dormtwo) +"EY" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/item/flashlight/lamp/green, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "2-8" }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"MB" = ( -/obj/structure/sign/departments/engineering, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/toilet) -"MJ" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 +/turf/open/floor/carpet/royalblue, +/area/ship/bridge) +"Fi" = ( +/obj/machinery/holopad/emergency/command, +/obj/structure/cable{ + icon_state = "1-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, /obj/structure/cable{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 4 }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"Fl" = ( /obj/structure/cable{ - icon_state = "1-8" + icon_state = "5-10" }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden{ - dir = 9 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/dark/visible/layer5, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"ML" = ( -/obj/effect/turf_decal/box, -/obj/machinery/shower{ - dir = 8 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"Fo" = ( +/obj/structure/cable{ + icon_state = "1-4" }, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/cargo) -"MM" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/engineering) -"MR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"MT" = ( -/obj/machinery/power/ship_gravity, -/obj/structure/cable, -/obj/effect/turf_decal/industrial/warning/corner, -/turf/open/floor/plasteel/patterned/grid, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"Fp" = ( +/obj/structure/sign/warning/nosmoking, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/engineering) -"Nd" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +"Fx" = ( +/obj/structure/railing/corner, +/obj/structure/table/reinforced, +/obj/machinery/fax/nanotrasen, /obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Ni" = ( -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 8 + icon_state = "1-8" }, -/obj/machinery/light/directional/west, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Nm" = ( -/obj/effect/turf_decal/siding/wood, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/turf/open/floor/carpet/blue, +/area/ship/bridge) +"Fy" = ( +/obj/structure/table/wood, +/turf/open/floor/carpet/cyan, +/area/ship/crew) +"FD" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"Np" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/siding/yellow{ + dir = 1 }, /obj/structure/disposalpipe/segment{ dir = 8 }, +/obj/structure/sign/poster/official/safety_eye_protection{ + pixel_y = 32 + }, /turf/open/floor/plasteel, -/area/ship/hallway/central) -"Nq" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/area/ship/engineering) +"FK" = ( +/obj/machinery/computer/aifixer, +/obj/machinery/camera/motion{ + dir = 8 }, -/obj/structure/disposalpipe/segment{ - dir = 2 +/turf/open/floor/circuit, +/area/ship/science/ai_chamber) +"FN" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable{ + icon_state = "0-1" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/camera{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"FO" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/arrow_ccw, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"FP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/simple/dark/visible/layer5, -/obj/machinery/atmospherics/pipe/simple/green/visible/layer1{ - dir = 9 +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/arrow_cw, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"FQ" = ( +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/structure/sign/poster/official/moth/piping{ - pixel_x = 32 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"Nr" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 1 +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 8 }, -/obj/structure/table, -/obj/item/stack/sheet/metal/five{ - pixel_x = -3 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"FS" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/item/stack/sheet/glass/five{ - pixel_x = 2; - pixel_y = 5 +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 }, -/obj/machinery/camera/autoname{ - dir = 6 +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"FX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"Nv" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/brown, -/obj/structure/sign/poster/retro/radio{ - pixel_x = -32 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"FY" = ( +/obj/structure/table/glass, +/obj/item/storage/box/bodybags{ + pixel_x = -7; + pixel_y = 4 }, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"Nw" = ( -/obj/machinery/door/airlock{ - name = "Dormitory" +/obj/item/reagent_containers/glass/bottle/formaldehyde{ + pixel_x = 8; + pixel_y = 8 }, -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/machinery/light/small/directional/south, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/borderfloor{ - dir = 1 +/obj/item/reagent_containers/syringe, +/turf/open/floor/plasteel/showroomfloor, +/area/ship/medical) +"Ga" = ( +/obj/effect/landmark/start/station_engineer, +/obj/structure/chair{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ +/turf/open/floor/plasteel, +/area/ship/engineering) +"Gd" = ( +/obj/structure/fluff/hedge, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/end{ dir = 1 }, -/turf/open/floor/plasteel, -/area/ship/crew/dorm) -"NA" = ( -/obj/effect/landmark/start/shaft_miner, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/canteen) +"Gg" = ( +/obj/structure/railing, /obj/structure/cable{ - icon_state = "1-8" + icon_state = "4-8" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"ND" = ( -/obj/machinery/vending/coffee, -/obj/effect/turf_decal/corner/transparent/neutral{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"NH" = ( -/obj/structure/table/glass, -/obj/item/storage/backpack/duffelbag/med/surgery{ - pixel_x = -3; - pixel_y = 13 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/pink{ +/turf/open/floor/plasteel/stairs{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/pink, -/obj/item/clothing/gloves/color/latex/nitrile, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"NP" = ( -/obj/machinery/suit_storage_unit/atmos, -/obj/effect/turf_decal/corner/opaque/bottlegreen{ +/area/ship/cargo) +"Gi" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/yellow, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 1 - }, -/obj/structure/window/reinforced{ +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"Gq" = ( +/obj/structure/disposalpipe/segment{ dir = 8 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"NT" = ( -/obj/machinery/atmospherics/components/unary/tank/toxins, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"NW" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"Of" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on/layer2{ - dir = 1 +/obj/structure/chair/handrail{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/storage/eva) +"Gr" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable{ + icon_state = "0-8" }, /obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/engine/air, -/area/ship/engineering/atmospherics) -"Oh" = ( -/obj/structure/dresser, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"Oj" = ( -/obj/effect/landmark/start/scientist, -/obj/structure/chair/office/light, +/obj/item/clothing/shoes/sneakers/brown, +/obj/item/clothing/under/nanotrasen/supply/qm, +/obj/item/storage/backpack/satchel/leather, +/obj/item/clothing/glasses/sunglasses, +/obj/item/clothing/head/nanotrasen/cap/supply, +/obj/structure/closet/secure_closet/quartermaster{ + populate = 0 + }, +/obj/item/stack/tape, +/turf/open/floor/plasteel/tech, +/area/ship/cargo) +"Gy" = ( +/turf/closed/wall/mineral/titanium/interior, +/area/ship/medical) +"Gz" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/bridge) +"GE" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/corner/opaque/mauve, -/obj/effect/turf_decal/corner/opaque/mauve{ - dir = 8 +/obj/structure/sign/warning/electricshock{ + pixel_x = -23 }, -/turf/open/floor/plasteel/white, -/area/ship/science) -"Ol" = ( -/obj/effect/turf_decal/corner/opaque/purple{ +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"GF" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 1 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/patterned/cargo_one, /area/ship/cargo) -"Oq" = ( -/obj/machinery/suit_storage_unit/mining/eva, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 +"GG" = ( +/obj/machinery/power/shuttle/engine/fueled/plasma{ + dir = 4 }, -/obj/structure/sign/poster/official/miners{ - pixel_x = 32 +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrier_thrusters_starboard"; + name = "Thruster Blast Door" }, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"Os" = ( +/turf/open/floor/plating, +/area/ship/engineering) +"GH" = ( /obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/light/small/directional/south, /obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 1; - id = "osprey_cargofield"; - locked = 1 - }, -/obj/machinery/door/poddoor{ - id = "ospreydoors"; - name = "Cargo Bay Blast Door"; - dir = 4 + icon_state = "4-8" }, /turf/open/floor/plasteel/tech, +/area/ship/engineering) +"GK" = ( +/obj/structure/sign/departments/cargo, +/turf/closed/wall/mineral/titanium/nodiagonal, /area/ship/cargo) -"Ou" = ( -/obj/structure/closet/secure_closet{ - icon_door = "mixed"; - icon_state = "generic"; - name = "custodial closet" - }, -/obj/item/storage/backpack, -/obj/item/clothing/shoes/galoshes, -/obj/item/clothing/under/rank/civilian/janitor, -/obj/item/clothing/gloves/color/black, -/obj/item/clothing/glasses/science, -/obj/item/storage/belt/janitor, -/obj/item/clothing/head/soft/purple, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24; - pixel_y = 5 +"GY" = ( +/obj/structure/cable{ + icon_state = "6-9" }, -/obj/structure/cable, -/obj/item/holosign_creator/janibarrier, -/obj/machinery/power/apc/auto_name/directional/south, -/turf/open/floor/plasteel, -/area/ship/crew/janitor) -"OA" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/disposalpipe/segment, -/obj/structure/window/reinforced, -/obj/structure/table, -/obj/item/circuitboard/machine/pacman/super{ - pixel_x = 6; - pixel_y = 8 - }, -/obj/item/circuitboard/machine/pacman/super{ - pixel_y = -4 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"Ha" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 4 +/obj/machinery/light/small/directional/south, +/obj/structure/table/wood, +/obj/item/storage/lockbox/medal{ + pixel_y = 6 }, -/obj/effect/turf_decal/corner/opaque/yellow, -/obj/effect/turf_decal/corner/opaque/yellow{ +/turf/open/floor/carpet/royalblue, +/area/ship/crew/dorm/dormtwo) +"He" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ dir = 8 }, -/turf/open/floor/plasteel/patterned/grid, +/turf/open/floor/plasteel/patterned, /area/ship/engineering) -"OB" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 +"Hh" = ( +/obj/structure/cable{ + icon_state = "6-9" }, -/obj/structure/window/reinforced{ - dir = 4 +/obj/structure/cable{ + icon_state = "4-9" }, -/obj/machinery/conveyor{ - dir = 1; - id = "osprey_garbage" +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"Hj" = ( +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/item/trash/popcorn, -/turf/open/floor/plating, -/area/ship/crew/janitor) -"OD" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "osprey_cargoload" +/obj/effect/turf_decal/industrial/warning{ + dir = 1 }, -/turf/open/floor/plating, -/area/ship/cargo) -"OG" = ( -/obj/machinery/conveyor_switch/oneway{ - id = "osprey_production" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 6 }, -/obj/effect/turf_decal/industrial/warning/cee{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 10 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"OH" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"OS" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor/shutters{ - id = "ospreymed" + dir = 6 }, -/obj/machinery/door/firedoor/window, -/turf/open/floor/plating, -/area/ship/medical) -"OV" = ( /obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/structure/sign/departments/custodian, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/janitor) -"OW" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 + dir = 10 }, -/obj/effect/turf_decal/corner/opaque/green{ +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/engine) +"Hk" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ dir = 1 }, -/obj/structure/disposalpipe/sorting/mail/flip{ - sortTypes = list(7,8,15,29,30); - tag = "Command" +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/obj/machinery/door/poddoor/shutters{ + id = "harriercargoaccess" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/plasteel, -/area/ship/hallway/central) -"Pa" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 +/area/ship/storage/eva) +"Ho" = ( +/obj/structure/filingcabinet{ + density = 0; + pixel_x = 11 }, -/turf/open/floor/carpet/royalblue, -/area/ship/bridge) -"Pe" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 26 + }, +/obj/effect/turf_decal/trimline/opaque/vired/line{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"Hq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 + dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/turf/open/floor/carpet/cyan, +/area/ship/crew) +"Hu" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 1 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"Pg" = ( -/obj/structure/table/reinforced, -/obj/machinery/recharger, -/obj/effect/turf_decal/corner/opaque/ntblue{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/ntblue, -/obj/effect/turf_decal/corner/opaque/ntblue{ +"Hw" = ( +/obj/structure/chair/comfy/blue/corpo/directional/west, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ dir = 4 }, /turf/open/floor/plasteel/dark, /area/ship/bridge) -"Pj" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 2 +"Hx" = ( +/obj/structure/cable{ + icon_state = "6-9" }, -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 4 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"HC" = ( +/obj/structure/chair/stool/bar{ + dir = 1 }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 8 +/obj/effect/turf_decal/corner/opaque/white{ + dir = 4 }, -/obj/effect/turf_decal/industrial/warning/corner{ +/obj/effect/turf_decal/corner/opaque/white{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/purple{ - dir = 1 - }, -/obj/machinery/airalarm/directional/west, -/obj/machinery/light/directional/north, +/obj/effect/turf_decal/siding, /turf/open/floor/plasteel, -/area/ship/cargo) -"Pl" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/cargo/office) -"Po" = ( -/turf/open/floor/plasteel/dark, -/area/ship/science) -"Pq" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 4 +/area/ship/crew/canteen) +"HD" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ + dir = 1; + piping_layer = 1 }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"HG" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4; + name = "Helm" }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"PE" = ( -/obj/machinery/recharge_station, -/obj/effect/turf_decal/corner/opaque/mauve{ +/obj/effect/landmark/start/head_of_personnel, +/obj/effect/turf_decal/siding/wideplating/dark{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/mauve{ - dir = 1 +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"HI" = ( +/obj/structure/bed, +/obj/item/bedsheet/captain, +/obj/structure/curtain/cloth/fancy, +/turf/open/floor/carpet/royalblue, +/area/ship/crew/dorm/dormtwo) +"HL" = ( +/obj/machinery/door/airlock/engineering{ + name = "Engine Room"; + req_access_txt = "10" }, -/obj/structure/sign/warning/nosmoking/circle{ - pixel_y = 25 +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plasteel/white, -/area/ship/science) -"PJ" = ( -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/borderfloor{ dir = 1 }, -/obj/effect/turf_decal/siding/white{ +/turf/open/floor/plasteel/tech, +/area/ship/engineering/engine) +"HO" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/structure/curtain, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"HW" = ( +/obj/machinery/atmospherics/components/unary/shuttle/heater{ dir = 4 }, +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"HY" = ( /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/crew/cryo) -"PP" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/crew/cryo) -"PQ" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 4; - sortTypes = list(12,13,14,23,24,25,27,28); - tag = "Research" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/storage/eva) +"Ia" = ( +/obj/effect/turf_decal/corner/opaque/ntblue/full, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"Ig" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 1 }, +/obj/effect/turf_decal/trimline/opaque/vired/line, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"Ih" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light/directional/south, /turf/open/floor/plasteel, -/area/ship/cargo) -"PS" = ( -/obj/structure/window/reinforced{ - dir = 4 +/area/ship/hallway/starboard) +"Ij" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" }, -/obj/machinery/atmospherics/components/binary/volume_pump, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"PU" = ( -/obj/structure/chair{ +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/hidden/layer5{ dir = 8 }, -/obj/structure/railing{ - dir = 5; - layer = 4.1 - }, +/obj/structure/catwalk/over/plated_catwalk, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"Im" = ( +/obj/item/radio/intercom/directional/south, +/turf/open/floor/carpet/cyan, +/area/ship/medical) +"In" = ( +/obj/structure/chair/sofa/blue/corpo/right/directional/north, /turf/open/floor/plasteel, -/area/ship/cargo) -"PV" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 4; - sortTypes = list(9,10,11); - tag = "Medbay" +/area/ship/hallway/central) +"Io" = ( +/obj/machinery/advanced_airlock_controller{ + pixel_x = -24 }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-8" +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 }, +/turf/open/floor/engine, +/area/ship/engineering/engine) +"Is" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/structure/reagent_dispensers/watertank/high, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/crew/janitor) +"Iu" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 4 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/structure/disposalpipe/junction/flip{ + dir = 8 }, -/turf/open/floor/plasteel/white, +/turf/open/floor/carpet/cyan, /area/ship/medical) -"PW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"Qb" = ( -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/patterned/grid, +"IE" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/dorm/dormtwo) +"IK" = ( +/obj/structure/table/glass, +/obj/item/storage/fancy/cigarettes/cigars/havana{ + pixel_x = -8; + pixel_y = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"IM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/borderfloor, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage/eva) +"IS" = ( +/obj/structure/sign/warning/docking{ + pixel_y = -8 + }, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/starboard) +"IT" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 9 + }, +/turf/open/floor/plasteel/patterned, /area/ship/engineering/atmospherics) -"Qm" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +"IV" = ( +/obj/structure/cable{ + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 @@ -6479,624 +6228,594 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"IX" = ( +/obj/structure/ore_box, +/obj/effect/turf_decal/box, +/obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/trimline/opaque/blue/corner{ - dir = 8 + icon_state = "0-4" }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Qr" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +/turf/open/floor/plasteel/patterned/grid, +/area/ship/storage/eva) +"Jd" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable{ + icon_state = "0-2" }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"Je" = ( /obj/structure/cable{ icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/airalarm/directional/south, -/obj/machinery/camera/autoname{ - dir = 1 +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"Jk" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"Jl" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/structure/cable{ + icon_state = "1-8" }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"Qt" = ( -/obj/effect/turf_decal/corner/transparent/neutral{ +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/light/dim/directional/north, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Qv" = ( -/obj/effect/turf_decal/corner/opaque/yellow{ +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"Jt" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/firedoor/window, +/turf/open/floor/plating, +/area/ship/storage/eva) +"Ju" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/siding/wood{ + dir = 9 }, +/turf/open/floor/wood, +/area/ship/crew) +"Jv" = ( +/turf/closed/wall/mineral/titanium/exterior, +/area/ship/cargo) +"Jw" = ( /obj/structure/cable{ - icon_state = "2-4" + icon_state = "1-8" }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"Qy" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /obj/structure/disposalpipe/segment{ dir = 9 }, -/obj/effect/turf_decal/corner/transparent/neutral, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"QD" = ( -/obj/machinery/atmospherics/components/binary/volume_pump, -/obj/effect/turf_decal/industrial/warning/corner{ +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 1 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"Jx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, +/obj/machinery/light_switch{ + dir = 4; + pixel_x = -20 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"JB" = ( +/obj/effect/turf_decal/number/nine{ + dir = 8 + }, +/obj/machinery/button/door{ + dir = 4; + id = "harrier_thrusters_starboard"; + name = "Blast Door Control"; + pixel_x = -25; + pixel_y = 6 + }, +/turf/open/floor/plasteel/patterned, /area/ship/engineering) -"QE" = ( -/obj/structure/disposalpipe/segment{ +"JC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"JH" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"JK" = ( +/obj/machinery/atmospherics/pipe/manifold/purple/visible{ + dir = 1 + }, +/obj/effect/turf_decal/industrial/warning{ dir = 8 }, +/turf/open/floor/plating, +/area/ship/engineering) +"JL" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/obj/effect/turf_decal/trimline/opaque/blue/corner, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"QI" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ + dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"QJ" = ( -/obj/machinery/conveyor{ - dir = 8; - id = "osprey_cargoload" - }, -/obj/structure/sign/warning{ - pixel_y = -25 +"JN" = ( +/obj/machinery/photocopier, +/obj/machinery/light_switch{ + pixel_x = -5; + pixel_y = 20 }, -/obj/machinery/light/directional/south, -/turf/open/floor/plating, +/turf/open/floor/plasteel, /area/ship/cargo) -"QK" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +"JP" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ dir = 5 }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"QW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"Re" = ( -/obj/structure/sign/number/one{ - color = "Black" - }, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/cargo/office) -"Ri" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"Ro" = ( +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"JQ" = ( +/obj/structure/sign/warning/vacuum/external, /turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/toilet) -"Rq" = ( -/turf/closed/wall/mineral/titanium, -/area/ship/crew/dorm) -"Rr" = ( -/turf/open/floor/plasteel/stairs/left{ - dir = 4 +/area/ship/hallway/starboard) +"JS" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/machinery/firealarm/directional/north, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ + dir = 1 }, -/area/ship/cargo) -"Ry" = ( -/obj/structure/table/reinforced, -/obj/item/areaeditor/shuttle{ - pixel_x = 5; - pixel_y = 1 +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"JT" = ( +/obj/structure/table/glass, +/obj/item/storage/box/matches{ + pixel_y = 9 }, -/obj/item/megaphone/command{ - pixel_x = 1; - pixel_y = 1 +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 8 }, -/obj/machinery/airalarm/directional/south, -/obj/effect/turf_decal/corner/opaque/ntblue{ +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/ntblue, /turf/open/floor/plasteel/dark, /area/ship/bridge) -"RB" = ( -/obj/machinery/atmospherics/components/binary/pump/layer4{ - dir = 8 +"JU" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/industrial/warning/corner{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible/layer1{ +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1, +/obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/plasteel/patterned/grid, +/turf/open/floor/plasteel/patterned, /area/ship/engineering/atmospherics) -"RD" = ( -/obj/machinery/door/airlock/highsecurity{ - name = "AI Chamber"; - req_access_txt = "24" - }, +"JX" = ( /obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/effect/turf_decal/borderfloor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, -/turf/open/floor/plasteel/tech/grid, -/area/ship/science/ai_chamber) -"RE" = ( -/obj/structure/closet/crate/engineering{ - name = "fuel crate" +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"JZ" = ( +/obj/structure/chair/sofa/blue/corpo/left, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"Kc" = ( +/obj/structure/closet/secure_closet/atmospherics{ + populate = 0 }, -/obj/item/stack/sheet/mineral/plasma/twenty, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/tech/techmaint, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/airalarm/directional/south, +/obj/item/clothing/shoes/workboots, +/obj/item/clothing/under/nanotrasen/engineering/atmos, +/obj/item/clothing/suit/nanotrasen/vest/blue, +/obj/item/storage/backpack/industrial, +/obj/item/clothing/head/hardhat/nanotrasen/blue, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/glasses/meson/engine, +/obj/item/analyzer, +/turf/open/floor/plasteel/patterned, /area/ship/engineering) -"RI" = ( -/obj/structure/disposalpipe/trunk{ +"Kd" = ( +/obj/structure/chair{ dir = 1 }, -/obj/machinery/disposal/bin, -/obj/structure/sign/warning/nosmoking/circle{ - pixel_x = 25 - }, -/obj/structure/sign/poster/official/moth/smokey{ - pixel_y = -32 - }, -/obj/effect/turf_decal/corner/opaque/yellow, -/obj/effect/turf_decal/corner/opaque/bottlegreen{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/bottlegreen{ - dir = 8 +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 10 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"RO" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"Kg" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/siding/wood{ + dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/turf/open/floor/wood, +/area/ship/crew) +"Ki" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1{ - dir = 10 - }, -/obj/structure/catwalk/over, -/turf/open/floor/plating, -/area/ship/science/ai_chamber) -"RQ" = ( -/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, /turf/open/floor/plasteel, -/area/ship/cargo) -"RU" = ( -/obj/structure/table/wood, -/obj/item/toy/plush/carpplushie, -/obj/machinery/light/small/directional/west, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"RW" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +/area/ship/engineering) +"Kj" = ( +/obj/structure/closet/secure_closet/engineering_personal{ + populate = 0 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"RY" = ( -/obj/machinery/atmospherics/pipe/manifold/orange/visible, -/turf/open/floor/plasteel/patterned/grid, +/obj/effect/turf_decal/industrial/outline/yellow, +/obj/machinery/firealarm/directional/south, +/obj/item/clothing/shoes/workboots, +/obj/item/clothing/under/nanotrasen/engineering, +/obj/item/clothing/suit/nanotrasen/vest, +/obj/item/storage/backpack/industrial, +/obj/item/clothing/head/hardhat/nanotrasen, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/glasses/meson/engine, +/turf/open/floor/plasteel/patterned, /area/ship/engineering) -"Sa" = ( -/obj/structure/table, -/obj/item/storage/box/lights/mixed{ - pixel_x = 4; - pixel_y = 9 +"Kl" = ( +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/machinery/airalarm/directional/south, -/obj/item/storage/box/mousetraps{ - pixel_x = -9 +/obj/structure/cable{ + icon_state = "1-8" }, -/turf/open/floor/plasteel, -/area/ship/crew/janitor) -"Sd" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/corner/opaque/blue, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 8 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/machinery/firealarm/directional/south, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Se" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/plasteel/white, -/area/ship/science) -"Si" = ( /obj/structure/disposalpipe/segment{ - dir = 2 + dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/trimline/opaque/nsorange/line, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"Kq" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/obj/machinery/light/small/directional/west, +/turf/open/floor/carpet/cyan, +/area/ship/crew) +"Kr" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Sm" = ( -/obj/structure/disposalpipe/segment{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/opaque/vired/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/turf/open/floor/plasteel/dark, +/area/ship/security) +"Kt" = ( +/obj/structure/table/wood, +/obj/structure/bedsheetbin, +/obj/machinery/light/small/directional/east, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 }, +/turf/open/floor/carpet/cyan, +/area/ship/crew) +"Kx" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/blue{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 1 - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Su" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/crew/cryo) -"SB" = ( -/obj/effect/turf_decal/industrial/warning/fulltile, -/obj/machinery/door/poddoor{ - id = "osprey_disposals"; - name = "Disposals Blast Door"; +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plating, -/area/ship/crew/janitor) -"SC" = ( -/obj/effect/turf_decal/corner/opaque/mauve{ +/obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/mauve, -/turf/open/floor/plasteel/white, -/area/ship/science) -"SD" = ( +/obj/structure/closet/emcloset/wall/directional/south, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"Ky" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"Kz" = ( +/obj/machinery/power/shuttle/engine/electric{ + dir = 4 + }, /obj/structure/cable{ - icon_state = "2-8" + icon_state = "0-4" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"SG" = ( -/obj/structure/closet/secure_closet{ - icon_state = "qm"; - name = "\proper quartermaster's locker"; - req_access_txt = "41" +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrier_thrusters_port"; + name = "Thruster Blast Door" + }, +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"KA" = ( +/obj/structure/crate_shelf, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"KB" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/brown, -/obj/structure/disposalpipe/segment{ - dir = 5 +/obj/machinery/door/firedoor/border_only{ + dir = 8 }, -/obj/structure/cable, -/obj/item/storage/backpack, -/obj/item/storage/backpack/messenger, -/obj/item/storage/backpack/satchel/leather, -/obj/item/storage/backpack/duffelbag, -/obj/item/clothing/shoes/sneakers/brown, -/obj/item/clothing/under/rank/cargo/qm/skirt, -/obj/item/clothing/under/rank/cargo/qm, -/obj/item/clothing/head/beret/qm, -/obj/item/stamp/qm, -/obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/gloves/fingerless, -/obj/item/megaphone/cargo, -/obj/item/clothing/head/safety_helmet, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = -8; - pixel_y = -16 +/obj/machinery/door/firedoor/border_only{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"SK" = ( -/obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/item/taperecorder, -/obj/machinery/camera/autoname{ - dir = 5 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/plasteel/dark, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"KC" = ( +/turf/closed/wall/mineral/titanium/interior, /area/ship/bridge) -"SO" = ( -/obj/effect/turf_decal/siding/wood{ +"KG" = ( +/obj/structure/table/wood/reinforced, +/obj/item/folder/blue, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"KM" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"KN" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/structure/cable{ - icon_state = "2-8" +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/obj/machinery/door/poddoor/shutters{ + id = "harriercargoaccess" }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"SQ" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/northleft{ - dir = 2; - name = "Cargo Desk"; - req_access_txt = "31" +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 }, -/obj/structure/disposalpipe/segment{ - dir = 2 +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/ship/storage/eva) +"KO" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable{ + icon_state = "0-4" }, -/obj/structure/noticeboard{ - dir = 4; - pixel_x = -32 +/obj/effect/turf_decal/siding/yellow{ + dir = 10 }, -/obj/item/table_bell, -/obj/machinery/door/poddoor/shutters{ - id = "ospreycargo" +/obj/machinery/firealarm/directional/south, +/obj/structure/chair/handrail{ + dir = 1 }, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/ship/cargo/office) -"SR" = ( -/obj/effect/turf_decal/corner/opaque/brown{ +/turf/open/floor/plasteel, +/area/ship/engineering/engine) +"KQ" = ( +/obj/effect/turf_decal/corner/opaque/white{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/brown, -/obj/structure/disposalpipe/junction/flip{ +/obj/effect/turf_decal/corner/opaque/white{ dir = 4 }, -/obj/structure/closet/secure_closet{ - icon_state = "cargo"; - name = "\proper cargo technician's locker"; - req_access_txt = "31" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/siding{ + dir = 8 }, -/obj/item/storage/backpack, -/obj/item/storage/backpack/satchel, -/obj/item/storage/backpack/messenger, -/obj/item/storage/backpack/duffelbag, -/obj/item/clothing/shoes/sneakers/black, -/obj/item/clothing/under/rank/cargo/tech/skirt, -/obj/item/clothing/under/rank/cargo/tech, -/obj/item/clothing/head/safety_helmet, -/obj/machinery/airalarm/directional/south, /turf/open/floor/plasteel, -/area/ship/cargo/office) -"SU" = ( -/obj/machinery/cryopod{ - dir = 1 +/area/ship/crew/canteen) +"KS" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/dorm) +"KT" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/structure/window/reinforced{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/structure/sign/poster/official/work_for_a_future{ - pixel_y = -32 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/crew/cryo) -"SW" = ( -/obj/machinery/button/door{ - dir = 8; - id = "ospreysci_window"; - name = "Shutter Control"; - pixel_x = 25 +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"SX" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/on{ - dir = 1 +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 8 }, -/obj/effect/turf_decal/industrial/outline/yellow, -/turf/open/floor/engine/air, -/area/ship/engineering/atmospherics) -"Tb" = ( -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 4; - id = "osprey_atmosfield" +/turf/open/floor/plasteel, +/area/ship/hallway/starboard) +"KW" = ( +/obj/structure/chair/sofa/blue/corpo/right/directional/north, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"KY" = ( +/obj/structure/chair/comfy/blue/corpo/directional/south, +/obj/machinery/firealarm/directional/north, +/turf/open/floor/carpet/cyan, +/area/ship/medical) +"KZ" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ + dir = 8 }, -/obj/structure/cable{ - icon_state = "0-4" +/obj/machinery/atmospherics/components/trinary/mixer/airmix/inverse{ + dir = 1 }, -/obj/effect/turf_decal/industrial/warning, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"Lb" = ( /obj/effect/turf_decal/industrial/warning{ - dir = 1 + dir = 8 }, -/obj/machinery/door/poddoor{ - id = "osprey_tank_vent" +/obj/machinery/conveyor_switch/oneway{ + id = "harrier_garbage" }, -/turf/open/floor/engine, -/area/ship/engineering/atmospherics) -"Tg" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 +/obj/structure/window/reinforced{ + dir = 8 }, -/obj/effect/turf_decal/box, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"Ti" = ( -/obj/machinery/conveyor/inverted{ - dir = 5; - id = "osprey_production" +/obj/machinery/button/massdriver{ + id = "harrier_disposals"; + name = "disposals button"; + pixel_x = 5; + pixel_y = 20 + }, +/obj/machinery/button/shieldwallgen{ + id = "harrier_disposalfield"; + pixel_x = -5; + pixel_y = 20 }, /turf/open/floor/plating, -/area/ship/cargo) -"Tn" = ( +/area/ship/crew/janitor) +"Lc" = ( /obj/structure/cable{ - icon_state = "0-8" + icon_state = "4-8" }, -/obj/machinery/power/smes/shuttle/precharged{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/door/window/eastleft{ - name = "Engine Access" - }, -/obj/structure/window/plasma/reinforced/spawner/west, -/obj/structure/window/plasma/reinforced/spawner/north, -/obj/machinery/door/poddoor{ - id = "osprey_thruster_port"; - name = "Thruster Blast Door"; +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plating, -/area/ship/engineering) -"Tq" = ( -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer4, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/hallway/central) -"Tr" = ( -/obj/machinery/atmospherics/components/unary/shuttle/heater{ +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/carpet/cyan, +/area/ship/medical) +"Lf" = ( +/obj/structure/railing{ dir = 4 }, -/obj/machinery/door/window/eastright{ - name = "Engine Access" +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/structure/window/plasma/reinforced/spawner/west, -/obj/structure/window/plasma/reinforced/spawner, -/obj/machinery/door/poddoor{ - id = "osprey_thruster_port"; - name = "Thruster Blast Door"; +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5{ dir = 4 }, -/turf/open/floor/plating, -/area/ship/engineering) -"Tt" = ( -/obj/effect/turf_decal/industrial/warning, +/obj/effect/turf_decal/siding/yellow{ + dir = 5 + }, /obj/structure/disposalpipe/segment{ - dir = 2 + dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" +/turf/open/floor/plasteel, +/area/ship/engineering/engine) +"Lh" = ( +/obj/structure/railing{ + dir = 5; + layer = 4.1 }, -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, /obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, -/turf/open/floor/plasteel/dark, -/area/ship/science/ai_chamber) -"Tw" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/effect/turf_decal/borderfloor{ - dir = 8 +/obj/effect/turf_decal/siding/yellow{ + dir = 5 }, +/turf/open/floor/plasteel, +/area/ship/engineering/engine) +"Li" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 5 }, -/obj/structure/sign/poster/official/safety_internals{ - pixel_x = -32 +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/ship/crew) +"Lj" = ( +/obj/machinery/airalarm/directional/west, +/obj/effect/turf_decal/trimline/opaque/blue/line, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"Lp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"Tx" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"Tz" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Lv" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"TG" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ + dir = 1 }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"Lw" = ( /obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/white, -/area/ship/science) -"TH" = ( -/obj/structure/disposalpipe/junction, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 1 + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 @@ -7104,193 +6823,170 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"TJ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/junction/flip{ - dir = 4 +/obj/machinery/light_switch{ + dir = 1; + pixel_x = -5; + pixel_y = -20 }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"TP" = ( -/obj/structure/closet/secure_closet{ - icon_state = "mining"; - name = "miner's equipment locker"; - req_access_txt = "48" - }, -/obj/item/clothing/under/rank/cargo/miner, -/obj/item/mining_scanner, -/obj/item/mining_scanner, -/obj/item/storage/bag/ore, -/obj/item/storage/bag/ore, -/obj/item/pickaxe, -/obj/item/pickaxe, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"TR" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/bar{ - dir = 4 +/obj/machinery/camera{ + dir = 10 }, -/obj/effect/turf_decal/corner/opaque/bar, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/mono, /area/ship/hallway/central) -"TU" = ( -/obj/machinery/door/airlock/research{ - name = "Science Lab"; - req_access_txt = "47" +"Lz" = ( +/obj/structure/chair/comfy/blue/corpo/directional/north, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 10 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/borderfloor, -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"LD" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrierwindows"; + name = "Window Blast Door" }, -/turf/open/floor/plasteel, -/area/ship/science) -"TW" = ( -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/conveyor_switch/oneway{ - id = "osprey_cargoload" +/turf/open/floor/plating, +/area/ship/hallway/starboard) +"LJ" = ( +/obj/machinery/advanced_airlock_controller{ + pixel_x = -24 }, -/turf/open/floor/plasteel/patterned, -/area/ship/cargo) -"TZ" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/machinery/rnd/production/circuit_imprinter/department/science, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"Uc" = ( -/obj/structure/window/plasma/reinforced{ +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/hallway/starboard) +"LK" = ( +/obj/machinery/door/airlock/external/glass, +/obj/effect/turf_decal/industrial/warning/fulltile, +/turf/open/floor/engine/vacuum, +/area/ship/engineering/engine) +"LP" = ( +/obj/machinery/vending/dinnerware, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/white{ dir = 8 }, -/obj/machinery/atmospherics/pipe/layer_manifold/visible, -/obj/machinery/button/door{ - dir = 1; - id = "osprey_tank_vent"; - pixel_x = -5; - pixel_y = -25 +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"LW" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/machinery/button/shieldwallgen{ - dir = 1; - id = "osprey_atmosfield"; - pixel_x = 5; - pixel_y = -24 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"LZ" = ( +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1{ + dir = 4 }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"Uj" = ( /obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor/shutters{ - id = "ospreywindows" +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrierwindows"; + name = "Window Blast Door" }, -/obj/machinery/door/firedoor/heavy, /turf/open/floor/plating, -/area/ship/medical) -"Uo" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ +/area/ship/engineering) +"Me" = ( +/obj/structure/window/reinforced{ dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/turf/open/floor/carpet/blue, +/area/ship/bridge) +"Mf" = ( +/obj/structure/railing{ dir = 8 }, /obj/structure/cable{ - icon_state = "1-4" + icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/dark/visible/layer5, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"UB" = ( -/obj/machinery/sleeper{ - dir = 4 +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 }, -/obj/effect/turf_decal/corner/opaque/lime{ +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"Mn" = ( +/obj/machinery/firealarm/directional/east, +/obj/effect/turf_decal/siding/thinplating, +/turf/open/floor/plasteel/dark, +/area/ship/science/ai_chamber) +"Mo" = ( +/obj/effect/turf_decal/industrial/warning{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/lime{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/corner/opaque/lime{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1{ + dir = 9 }, -/obj/structure/sign/warning/nosmoking/circle{ - pixel_x = -25 +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"Ms" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"UG" = ( -/obj/effect/turf_decal/industrial/warning{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"UL" = ( -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"UT" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4; - name = "Helm" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"UU" = ( -/obj/structure/chair{ - dir = 8 +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/siding/yellow{ + dir = 1 }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"UZ" = ( -/obj/effect/turf_decal/siding/white{ - dir = 4 +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/turf/open/floor/plasteel/tech/techmaint, -/area/ship/crew/cryo) -"Vf" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 +/obj/machinery/camera, +/turf/open/floor/plasteel, +/area/ship/engineering) +"Mu" = ( +/obj/structure/cable{ + icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/ship/crew) +"Mv" = ( +/turf/open/floor/engine/hull/reinforced, +/area/ship/external/dark) +"Mx" = ( /obj/structure/cable{ - icon_state = "2-4" + icon_state = "1-2" }, -/turf/open/floor/plasteel/white, -/area/ship/science) -"Vh" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Vl" = ( -/obj/structure/sign/warning/vacuum/external, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/cargo) -"Vq" = ( -/obj/machinery/conveyor{ - dir = 1; - id = "osprey_packagesort" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 8 }, -/turf/open/floor/plating, -/area/ship/cargo/office) -"Vs" = ( -/obj/effect/turf_decal/corner/opaque/red, -/obj/structure/disposalpipe/segment{ - dir = 9 +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"MB" = ( +/obj/structure/cable{ + icon_state = "4-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 @@ -7298,2621 +6994,4766 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/bottlegreen{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/yellow{ +/obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Vx" = ( -/obj/machinery/door/window/eastleft, -/obj/machinery/shower{ - pixel_y = 10 +/obj/structure/sign/poster/official/random{ + pixel_y = 32 }, -/obj/structure/curtain, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"VA" = ( -/obj/structure/cable{ - icon_state = "0-8" +/turf/open/floor/wood, +/area/ship/crew) +"MK" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ + dir = 1 }, -/obj/machinery/power/smes/shuttle/precharged{ +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ dir = 4 }, -/obj/machinery/door/window/eastright{ - name = "Engine Access" +/turf/open/floor/plasteel, +/area/ship/hallway/port) +"MM" = ( +/obj/machinery/power/shuttle/engine/electric{ + dir = 4 }, -/obj/structure/window/plasma/reinforced/spawner/west, -/obj/structure/window/plasma/reinforced/spawner, /obj/machinery/door/poddoor{ - id = "osprey_thruster_port"; - name = "Thruster Blast Door"; - dir = 4 + dir = 4; + id = "harrier_thrusters_starboard"; + name = "Thruster Blast Door" + }, +/obj/structure/cable{ + icon_state = "0-4" }, /turf/open/floor/plating, /area/ship/engineering) -"VC" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +"MP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/machinery/light/small/directional/west, +/obj/effect/turf_decal/trimline/transparent/white/filled/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/structure/chair/handrail{ dir = 4 }, /turf/open/floor/plasteel/dark, -/area/ship/science) -"VF" = ( -/obj/structure/chair/comfy/orange/directional/east, -/obj/effect/landmark/start/captain, -/obj/machinery/airalarm/directional/west, -/obj/structure/sign/poster/retro/lasergun_new{ - pixel_y = 32 +/area/ship/science/ai_chamber) +"MQ" = ( +/obj/effect/turf_decal/corner/opaque/ntblue/full, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/white, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/turf/open/floor/carpet/royalblue, -/area/ship/bridge) -"VI" = ( -/obj/effect/landmark/start/scientist, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/ship/science) -"VL" = ( -/obj/effect/turf_decal/corner/transparent/neutral, -/obj/effect/turf_decal/corner/transparent/neutral{ - dir = 8 +/obj/structure/disposalpipe/junction/flip{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"MT" = ( +/obj/structure/bed, +/obj/structure/curtain/cloth/fancy, +/obj/item/bedsheet/head_of_personnel, +/turf/open/floor/carpet/blue, +/area/ship/crew/dorm) +"MV" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"VN" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/siding/wood{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 }, +/turf/open/floor/plasteel/mono, +/area/ship/storage/eva) +"MW" = ( +/obj/structure/chair/sofa/blue/corpo/right/directional/east, +/obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, -/area/ship/crew/canteen) -"VR" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 +/area/ship/crew) +"MX" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/green/hidden/layer1, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"MZ" = ( +/turf/template_noop, +/area/template_noop) +"Nc" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/disposalpipe/segment{ - dir = 6 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"Ni" = ( /obj/structure/cable{ - icon_state = "2-4" + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 }, -/obj/effect/turf_decal/industrial/shutoff, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"Nk" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light/directional/north, +/obj/machinery/camera, /turf/open/floor/plasteel, -/area/ship/hallway/central) -"VS" = ( +/area/ship/hallway/port) +"Nl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 + dir = 4 }, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel/freezer, -/area/ship/crew/toilet) -"VV" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/science/ai_chamber) -"VW" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/industrial/warning/fulltile, -/obj/machinery/door/poddoor/shutters{ - id = "ospreysci_window" +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 8 }, -/turf/open/floor/plasteel/tech, -/area/ship/science) -"Wb" = ( -/obj/structure/table, /turf/open/floor/plasteel, -/area/ship/crew/cryo) -"Wc" = ( -/obj/effect/turf_decal/industrial/loading, -/obj/machinery/mineral/processing_unit_console{ - machinedir = 1; - pixel_x = -32; - pixel_y = -4 +/area/ship/storage/eva) +"Nm" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 }, -/turf/open/floor/plasteel/patterned/cargo_one, -/area/ship/cargo) -"Wf" = ( -/obj/effect/turf_decal/corner/opaque/blue{ - dir = 1 +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"Nn" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/ntspaceworks_big/five{ + dir = 8 }, /obj/structure/disposalpipe/segment, -/obj/machinery/camera/autoname{ - dir = 5 +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"No" = ( +/obj/structure/cable{ + icon_state = "1-4" }, -/obj/structure/closet/firecloset, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Wj" = ( -/obj/machinery/mineral/processing_unit, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/catwalk/over/plated_catwalk, /turf/open/floor/plating, -/area/ship/cargo) -"Wk" = ( -/obj/structure/sign/number/four{ - color = "Black" +/area/ship/engineering/engine) +"Np" = ( +/obj/structure/chair/comfy/shuttle{ + dir = 4; + name = "Helm" }, -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/cargo/office) -"Wn" = ( -/obj/structure/table/wood, -/obj/machinery/light/small/directional/south, -/turf/open/floor/carpet/blue, -/area/ship/bridge) -"Wq" = ( -/obj/docking_port/stationary{ - dwidth = 15; - width = 30; - height = 15; - dir = 2 +/obj/effect/landmark/start/captain, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 }, -/turf/template_noop, -/area/template_noop) -"Ws" = ( -/obj/structure/chair/comfy/orange/directional/east, -/obj/effect/landmark/start/head_of_personnel, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/carpet/blue, +/turf/open/floor/plasteel/dark, /area/ship/bridge) -"WE" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" +"Nq" = ( +/obj/machinery/door_timer{ + id = "Cell 1"; + pixel_y = 4 }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"WK" = ( -/obj/structure/window/reinforced{ +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/security) +"Nr" = ( +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ dir = 8 }, -/obj/structure/window/reinforced, -/obj/effect/turf_decal/corner/opaque/yellow{ +/obj/effect/turf_decal/number/four{ dir = 8 }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 1 +/obj/machinery/light/small/directional/north, +/obj/machinery/camera{ + dir = 6 }, -/obj/effect/turf_decal/corner/opaque/yellow, -/obj/structure/closet/secure_closet/engineering_electrical, -/turf/open/floor/plasteel/patterned/grid, +/turf/open/floor/plasteel/patterned, /area/ship/engineering) -"WN" = ( -/turf/open/floor/plasteel/white, -/area/ship/medical) -"WS" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 8 +"Nt" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/landmark/start/assistant, -/obj/structure/railing, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"WU" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/engineering) -"WZ" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Canteen"; - dir = 4 +/obj/machinery/atmospherics/pipe/simple/green/visible/layer1{ + dir = 6 }, -/obj/structure/disposalpipe/segment{ - dir = 8 +/obj/machinery/light/small/directional/west, +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5{ + dir = 6 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/trinary/mixer/flipped{ + dir = 1; + name = "Fuel Mixer" }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"Nv" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/borderfloor{ - dir = 4 + dir = 6 }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Ny" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 +/obj/machinery/door/airlock/glass{ + dir = 4; + name = "Crew Quarters"; + req_ship_access = 0 }, -/obj/machinery/door/firedoor/border_only{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"Xe" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/brown, /obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ +/obj/machinery/door/firedoor/border_only{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/machinery/door/firedoor/border_only{ dir = 8 }, -/obj/machinery/light/directional/south, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Xi" = ( /obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ +/obj/effect/turf_decal/borderfloor{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"Nz" = ( +/obj/structure/cable/yellow{ + icon_state = "0-4" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ +/obj/machinery/power/terminal{ dir = 1 }, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering/atmospherics) -"Xl" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = -12 - }, -/obj/effect/turf_decal/corner/opaque/pink{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/pink{ - dir = 1 +/obj/structure/sign/warning/electricshock{ + pixel_y = -20 }, -/obj/structure/sign/poster/official/cleanliness{ - pixel_x = -32 +/turf/open/floor/plating, +/area/ship/engineering/engine) +"ND" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/poddoor{ + dir = 1; + id = "harrierdoors"; + name = "Cargo Bay Blast Door" }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Xo" = ( -/obj/docking_port/stationary{ - dwidth = 15; - width = 30; - height = 15 +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 4; + id = "harrier_cargofield"; + locked = 1 }, -/turf/template_noop, -/area/template_noop) -"Xp" = ( -/obj/machinery/door/airlock/command{ - name = "Captain's Quarters"; - req_access_txt = "20"; - dir = 4 +/obj/structure/cable{ + icon_state = "0-1" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/turf/open/floor/plating, +/area/ship/storage/eva) +"NE" = ( +/obj/structure/filingcabinet/double{ + dir = 8; + pixel_x = 10 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 +/obj/structure/sign/poster/official/fruit_bowl{ + pixel_x = 32 }, -/obj/effect/turf_decal/borderfloor{ +/turf/open/floor/wood, +/area/ship/crew/law_office) +"NF" = ( +/obj/structure/toilet{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"Xr" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24; - pixel_y = -5 +/obj/structure/window/reinforced{ + dir = 1 }, +/obj/structure/curtain, /turf/open/floor/plasteel/freezer, /area/ship/crew/toilet) -"Xv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +"NP" = ( /obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/grimy, -/area/ship/crew/dorm) -"Xz" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 4 + icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/yellow, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"XE" = ( -/obj/structure/table/reinforced, -/obj/item/melee/knife/kitchen, -/obj/item/kitchen/rollingpin, -/obj/item/reagent_containers/condiment/sugar, -/obj/item/reagent_containers/condiment/rice, -/obj/effect/turf_decal/corner/opaque/white{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/white{ - dir = 8 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"NQ" = ( +/obj/structure/rack, +/obj/item/circuitboard/aicore, +/obj/item/stack/sheet/rglass{ + amount = 5 }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen) -"XK" = ( -/obj/machinery/atmospherics/components/binary/volume_pump{ - dir = 4 +/obj/item/assembly/flash/handheld{ + pixel_x = 5 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/item/assembly/flash/handheld{ + pixel_x = -5 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"XR" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/item/stock_parts/cell/high/plus, +/obj/item/borg/upgrade/ai, +/obj/item/aicard, +/obj/item/mmi/posibrain, +/obj/item/aiModule/reset/purge, +/turf/open/floor/circuit, +/area/ship/science/ai_chamber) +"NS" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/machinery/atmospherics/pipe/manifold/green/hidden/layer1{ +/obj/machinery/light/small/directional/north, +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/industrial/outline/yellow, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"NT" = ( +/obj/machinery/power/smes/shuttle/precharged{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5, -/obj/structure/catwalk/over, -/turf/open/floor/plating, -/area/ship/science/ai_chamber) -"XU" = ( -/obj/structure/table/wood, -/obj/item/storage/fancy/cigarettes/cigars{ - pixel_y = 12 - }, -/obj/item/lighter{ - pixel_x = -6; - pixel_y = -3 +/obj/structure/cable{ + icon_state = "0-8" }, -/obj/machinery/light/small/directional/north, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/carpet/royalblue, -/area/ship/bridge) -"XX" = ( -/obj/effect/turf_decal/borderfloor{ +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"NX" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"Ob" = ( +/obj/structure/railing, +/obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/obj/machinery/advanced_airlock_controller{ - pixel_x = -24 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer2{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"Yc" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"Yh" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 +/obj/effect/turf_decal/siding/yellow, +/obj/effect/turf_decal/industrial/caution{ + dir = 4 }, -/obj/structure/reagent_dispensers/watertank/high, /turf/open/floor/plasteel, -/area/ship/crew/janitor) -"Yt" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 +/area/ship/engineering/engine) +"Oh" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 }, /obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Yw" = ( -/obj/structure/noticeboard{ - pixel_y = 32 +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"Om" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew) +"Os" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24; - pixel_y = 9 +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel, -/area/ship/crew/cryo) -"YD" = ( -/obj/structure/chair/office/light, -/obj/effect/landmark/start/medical_doctor, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"YF" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/clipboard, -/obj/item/pen/red, -/obj/machinery/button/door{ - dir = 4; - id = "ospreycargo"; - name = "Shutter Control"; - pixel_x = -25; - pixel_y = 5 +/obj/structure/disposalpipe/segment{ + dir = 8 }, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -24; - pixel_y = -5 +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"Ot" = ( +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ dir = 4 }, -/obj/effect/turf_decal/corner/opaque/brown{ +/obj/structure/disposalpipe/segment{ dir = 8 }, -/obj/item/folder/yellow, -/obj/item/stamp/denied{ - pixel_x = 4 - }, -/obj/item/stamp{ - pixel_x = -5; - pixel_y = 9 +/obj/structure/chair/handrail, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"Oy" = ( +/obj/effect/turf_decal/corner/opaque/white{ + dir = 4 }, -/obj/item/pen/red, -/obj/item/holochip{ - credits = 4000 +/obj/effect/turf_decal/corner/opaque/white{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"YH" = ( -/obj/structure/table, -/obj/effect/turf_decal/siding/wood, -/obj/item/trash/plate, -/turf/open/floor/wood, -/area/ship/crew/canteen) -"YI" = ( -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/poddoor/shutters{ - id = "ospreywindows"; +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ dir = 4 }, -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/plating, -/area/ship/crew/dorm) -"YJ" = ( /obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/orange/hidden, -/obj/effect/turf_decal/industrial/warning, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"YK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"OA" = ( +/obj/structure/railing{ + dir = 1 }, /obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"YP" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 + icon_state = "4-8" }, -/obj/effect/turf_decal/corner/opaque/mauve{ +/obj/effect/turf_decal/siding/wideplating/dark{ dir = 1 }, -/obj/effect/turf_decal/corner/opaque/mauve{ +/turf/open/floor/plasteel/stairs{ dir = 8 }, -/obj/structure/sign/poster/official/random{ - pixel_x = -32 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/plasteel/white, -/area/ship/science) -"YR" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4; - name = "Operations" - }, -/turf/open/floor/plasteel/dark, /area/ship/bridge) -"Zj" = ( -/obj/structure/tank_dispenser/oxygen, -/obj/effect/turf_decal/borderfloor{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"Zo" = ( -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/yellow{ - dir = 1 - }, +"OB" = ( +/obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable{ icon_state = "0-8" }, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/engineering) -"Zr" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/medical) -"Zs" = ( -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 8 +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/obj/effect/turf_decal/corner/opaque/brown, -/obj/machinery/autolathe, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"OD" = ( +/obj/machinery/vending/snack/random, /obj/machinery/light/directional/south, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line, /turf/open/floor/plasteel, -/area/ship/cargo/office) -"Zu" = ( -/obj/effect/turf_decal/corner/opaque/brown, -/obj/effect/turf_decal/corner/opaque/brown{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 +/area/ship/hallway/central) +"OK" = ( +/obj/structure/table/reinforced, +/obj/item/table_bell{ + pixel_x = -4; + pixel_y = 13 }, +/turf/open/floor/plating, +/area/ship/crew/canteen) +"OO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 + dir = 10 }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"ZC" = ( -/obj/structure/cable{ - icon_state = "0-4" +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 }, -/obj/machinery/light/directional/south, -/obj/machinery/power/apc/auto_name/directional/west, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"ZJ" = ( -/turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/hallway/central) -"ZK" = ( -/obj/structure/window/reinforced{ - dir = 1 +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/obj/structure/table, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/plasteel/patterned/grid, -/area/ship/cargo) -"ZO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ +/obj/item/radio/intercom/directional/north, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"OR" = ( +/obj/effect/turf_decal/industrial/warning{ dir = 8 }, -/turf/open/floor/circuit, -/area/ship/science/ai_chamber) -"ZR" = ( -/obj/machinery/porta_turret/ai, -/turf/open/floor/circuit, -/area/ship/science/ai_chamber) -"ZW" = ( -/obj/structure/disposalpipe/junction{ +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"OW" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ dir = 8 }, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"ZX" = ( -/obj/machinery/atmospherics/pipe/simple/dark/hidden/layer5{ - dir = 4 +/turf/open/floor/plating, +/area/ship/engineering/engine) +"OX" = ( +/obj/effect/landmark/start/security_officer, +/obj/structure/chair/office{ + dir = 8 }, -/obj/machinery/door/poddoor{ - id = "osprey_thruster_starboard"; - name = "Blast Door"; +/turf/open/floor/plasteel/dark, +/area/ship/security) +"Pb" = ( +/obj/structure/dresser{ dir = 4 }, -/obj/effect/spawner/structure/window/shuttle, -/obj/machinery/door/firedoor/heavy, -/turf/open/floor/plating, -/area/ship/science/ai_chamber) -"ZY" = ( +/obj/machinery/light_switch{ + dir = 1; + pixel_x = -5; + pixel_y = -20 + }, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/carpet/cyan, +/area/ship/crew) +"Pi" = ( +/obj/structure/sign/warning/vacuum/external, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/port) +"Pj" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/plasteel/dark, +/area/ship/crew/cryo) +"Pk" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/carpet/blue, +/area/ship/crew/dorm) +"Pm" = ( +/obj/effect/turf_decal/corner/opaque/white{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/siding{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"Pn" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"Po" = ( +/obj/effect/turf_decal/ntspaceworks_big/three{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"Pq" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/machinery/suit_storage_unit/atmos, +/turf/open/floor/engine, +/area/ship/engineering/engine) +"Pr" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"Ps" = ( +/obj/structure/sink{ + dir = 1; + pixel_y = -10 + }, +/obj/structure/mirror{ + pixel_y = -25 + }, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"Pu" = ( +/obj/machinery/disposal/deliveryChute{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/door/window/eastleft, +/obj/structure/disposalpipe/trunk, +/turf/open/floor/plating, +/area/ship/cargo) +"Pv" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "harrier_packagesort" + }, +/obj/machinery/camera{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ship/cargo) +"Pw" = ( +/obj/structure/table, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"Py" = ( +/obj/structure/table/reinforced, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/recharger, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"Pz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"PA" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ship/engineering) +"PC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/machinery/light/small/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ship/crew) +"PF" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/port) +"PH" = ( +/obj/structure/table, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"PL" = ( +/obj/effect/turf_decal/industrial/warning, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/arrow_cw{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/storage/eva) +"PQ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/corner, +/obj/structure/chair/handrail{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/storage/eva) +"PU" = ( +/obj/effect/turf_decal/corner/opaque/ntblue/full, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 8 + }, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"PZ" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/arrow_cw{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/storage/eva) +"Qb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"Qf" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ + dir = 8 + }, +/obj/structure/chair/handrail{ + dir = 4 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"Qm" = ( +/obj/machinery/atmospherics/components/binary/circulator{ + piping_layer = 5 + }, +/obj/structure/cable/yellow{ + icon_state = "5-8" + }, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"Qn" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/line, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"Qs" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/atmos{ + dir = 1; + name = "Atmospherics"; + req_access_txt = "10" + }, +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/obj/machinery/atmospherics/pipe/simple/green/visible/layer1, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ship/engineering/engine) +"Qu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light/directional/west, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"Qx" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ship/hallway/port) +"Qz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"QC" = ( +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/arrow_ccw{ + dir = 4 + }, +/obj/structure/chair/handrail{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/storage/eva) +"QG" = ( +/obj/machinery/button/door{ + dir = 4; + id = "harrier_thrusters_port"; + name = "Blast Door Control"; + pixel_x = -25; + pixel_y = 6 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"QH" = ( +/obj/effect/turf_decal/atmos/nitrogen, +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrogen_input{ + piping_layer = 1 + }, +/turf/open/floor/engine/n2, +/area/ship/engineering/atmospherics) +"QN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"QO" = ( +/turf/closed/wall/mineral/titanium/interior, +/area/ship/crew/law_office) +"QP" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/sink{ + pixel_y = 15 + }, +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"QQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"QR" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/computer/helm/viewscreen/directional/south, +/turf/open/floor/carpet/cyan, +/area/ship/medical) +"QV" = ( +/obj/structure/railing, +/obj/machinery/autolathe, +/turf/open/floor/plasteel, +/area/ship/cargo) +"QW" = ( +/obj/machinery/door/airlock/command{ + dir = 8; + name = "First Officer's Quarters"; + req_access_txt = "57" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/borderfloorblack{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ship/crew/dorm) +"QX" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/stairs{ + dir = 8 + }, +/area/ship/bridge) +"Ra" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 8 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"Rb" = ( +/obj/structure/table/reinforced, +/obj/item/folder/blue, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet/blue, +/area/ship/bridge) +"Rf" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + dir = 1; + id = "harrierwindows"; + name = "Window Blast Door" + }, +/turf/open/floor/plating, +/area/ship/crew/law_office) +"Rg" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"Rn" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ship/crew/law_office) +"Ro" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"Rs" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/carpet/cyan, +/area/ship/medical) +"Rt" = ( +/obj/machinery/cryopod{ + dir = 8 + }, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/circuit, +/area/ship/crew/cryo) +"Rv" = ( +/obj/effect/turf_decal/number/nine{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering) +"Ry" = ( +/obj/structure/table/reinforced, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/radio/intercom/wideband/table{ + dir = 4; + pixel_x = 9; + pixel_y = 3 + }, +/obj/item/megaphone/command, +/turf/open/floor/plasteel/tech/grid, +/area/ship/bridge) +"RB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"RJ" = ( +/turf/closed/wall/mineral/titanium/exterior, +/area/ship/crew/toilet) +"RR" = ( +/obj/effect/landmark/start/atmospheric_technician, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/engineering) +"RT" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/machinery/light_switch{ + pixel_x = -5; + pixel_y = 20 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"RU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"RV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"RX" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/plasma{ + dir = 1; + piping_layer = 1 + }, +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5, +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"Sb" = ( +/obj/structure/cable{ + icon_state = "5-10" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, +/obj/machinery/firealarm/directional/north, +/obj/structure/chair/handrail, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"Sj" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{ + dir = 1; + piping_layer = 5 + }, +/turf/open/floor/engine/hull/reinforced, +/area/ship/external/dark) +"Sm" = ( +/obj/structure/cable{ + icon_state = "6-9" + }, +/obj/structure/cable{ + icon_state = "2-9" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4; + sortType = 29; + tag = "Internal Affairs Office" + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"Sn" = ( +/obj/structure/sign/departments/engineering, +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/hallway/starboard) +"Sr" = ( +/obj/structure/railing{ + dir = 6; + layer = 3.1 + }, +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 1; + name = "Environment to Recycling"; + piping_layer = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/siding/yellow{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/ship/engineering/engine) +"St" = ( +/obj/machinery/door/airlock/external, +/obj/machinery/atmospherics/pipe/layer_manifold, +/turf/open/floor/plasteel/tech, +/area/ship/hallway/starboard) +"Sw" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"Sy" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"SB" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"SE" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"SF" = ( +/turf/open/floor/circuit, +/area/ship/science/ai_chamber) +"SM" = ( +/obj/effect/spawner/structure/window/shuttle, +/turf/open/floor/plating, +/area/ship/medical) +"SN" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/firealarm/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ship/crew) +"SS" = ( +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/layer4{ + dir = 1 + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/hallway/starboard) +"SW" = ( +/obj/machinery/computer/atmos_alert{ + dir = 8; + icon_state = "computer-right" + }, +/obj/effect/turf_decal/siding/yellow, +/turf/open/floor/plasteel, +/area/ship/engineering) +"SZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ship/crew/law_office) +"Ta" = ( +/obj/structure/bookcase, +/obj/machinery/light/small/directional/south, +/turf/open/floor/wood, +/area/ship/crew/law_office) +"Tf" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/machinery/airalarm/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"Th" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "harriereva" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/storage/eva) +"Tj" = ( +/obj/machinery/firealarm/directional/east, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"Tm" = ( +/obj/structure/chair/comfy/blue/corpo/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/turf/open/floor/carpet/royalblue, +/area/ship/crew/dorm/dormtwo) +"Tr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"Tu" = ( +/obj/structure/crate_shelf, +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal/five{ + pixel_x = -3 + }, +/obj/item/stack/sheet/glass/five{ + pixel_x = 2; + pixel_y = 5 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/cargo) +"Tv" = ( +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"Tx" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"Tz" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/machinery/light/small/directional/north, +/turf/open/floor/carpet/blue, +/area/ship/crew/dorm) +"TC" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 4; + piping_layer = 1 + }, +/turf/open/floor/engine/hull/reinforced, +/area/ship/external/dark) +"TD" = ( +/obj/structure/reagent_dispensers/water_cooler, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/plasteel/dark, +/area/ship/bridge) +"TI" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/crew/janitor) +"TJ" = ( +/obj/structure/chair/sofa/blue/corpo/right, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"TM" = ( +/obj/machinery/shower{ + pixel_y = 18 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 1 + }, +/obj/structure/closet/emcloset/wall/directional/west, +/turf/open/floor/noslip, +/area/ship/storage/eva) +"TO" = ( +/obj/machinery/computer/helm{ + dir = 8; + icon_state = "computer-right" + }, +/obj/machinery/button/door{ + dir = 1; + id = "harrierwindows"; + name = "External Windows"; + pixel_x = -1; + pixel_y = -20 + }, +/obj/machinery/button/door{ + dir = 1; + id = "harrierbridge"; + name = "Bridge Lockdown"; + pixel_x = 10; + pixel_y = -20 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/tech/grid, +/area/ship/bridge) +"TT" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 4 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/obj/machinery/light/small/directional/west, +/obj/structure/chair/handrail{ + dir = 4 + }, +/turf/open/floor/plasteel/tech/techmaint, +/area/ship/storage/eva) +"TX" = ( +/obj/structure/filingcabinet/double{ + pixel_x = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/camera, +/turf/open/floor/carpet/blue, +/area/ship/bridge) +"TZ" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/firedoor/window, +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrierbridge"; + name = "Window Blast Door" + }, +/turf/open/floor/plating, +/area/ship/bridge) +"Ub" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/machinery/door/firedoor/border_only, +/obj/structure/cable{ + icon_state = "6-9" + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"Ud" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1, +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"Uf" = ( +/obj/structure/window/reinforced, +/obj/machinery/shower{ + pixel_y = 18 + }, +/obj/structure/curtain, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 9 + }, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"Ug" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/storage/eva) +"Uj" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ + dir = 4 + }, +/turf/open/floor/engine/vacuum, +/area/ship/engineering/engine) +"Um" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/wood, +/area/ship/crew) +"Up" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/glass{ + dir = 4; + name = "Crew Quarters"; + req_ship_access = 0 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/effect/turf_decal/borderfloor{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"Uq" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/arrow_cw{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/storage/eva) +"Ur" = ( +/obj/structure/chair, +/obj/effect/landmark/start/assistant, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"Us" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "4-9" + }, +/obj/effect/turf_decal/industrial/warning, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 1 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/engine) +"Ut" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"Uw" = ( +/obj/structure/cable{ + icon_state = "6-9" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/machinery/firealarm/directional/south, +/obj/structure/chair/handrail{ + dir = 1 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"Ux" = ( +/obj/machinery/atmospherics/components/binary/circulator/cold{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "6-8" + }, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"UD" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/purple/hidden{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 9 + }, +/obj/machinery/light_switch{ + dir = 1; + pixel_x = -5; + pixel_y = -20 + }, +/obj/effect/turf_decal/siding/yellow{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/ship/engineering/engine) +"UF" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/chair/handrail, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"UI" = ( +/obj/structure/table/wood/reinforced, +/obj/item/flashlight/lamp/green, +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"UJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ + dir = 9 + }, +/obj/machinery/atmospherics/components/binary/volume_pump{ + dir = 8; + name = "Engine Waste to Environment"; + piping_layer = 5 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"UN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 2; + sortType = 26; + tag = "Dormitories" + }, +/turf/open/floor/wood, +/area/ship/crew) +"US" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/engineering) +"UT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"UV" = ( +/obj/structure/window/reinforced, +/obj/machinery/shower{ + pixel_y = 18 + }, +/obj/structure/curtain, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 10 + }, +/turf/open/floor/plasteel/freezer, +/area/ship/crew/toilet) +"UW" = ( +/turf/closed/wall/mineral/titanium/exterior, +/area/ship/medical) +"UZ" = ( +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 9 + }, +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ship/engineering) +"Vc" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/effect/turf_decal/box, +/obj/machinery/airalarm/directional/west, +/turf/open/floor/plasteel/patterned/grid, +/area/ship/storage/eva) +"Vi" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on/layer2, +/turf/open/floor/engine/air, +/area/ship/engineering/atmospherics) +"Vp" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 1 + }, +/obj/structure/sign/poster/official/random{ + pixel_y = -32 + }, +/turf/open/floor/carpet/blue, +/area/ship/crew/dorm) +"Vr" = ( +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/transparent/white/filled/warning{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters{ + dir = 4; + id = "harriereva" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 4 + }, +/obj/machinery/door/firedoor/border_only{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/storage/eva) +"Vs" = ( +/obj/machinery/conveyor{ + dir = 1; + id = "harrier_garbage" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plating, +/area/ship/crew/janitor) +"Vv" = ( +/turf/closed/wall/mineral/titanium/interior, +/area/ship/hallway/port) +"VA" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet/blue, +/area/ship/bridge) +"VE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/turf/open/floor/plasteel/stairs, +/area/ship/storage/eva) +"VJ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor/border_only, +/obj/machinery/door/firedoor/border_only{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/borderfloor, +/obj/machinery/door/airlock/public/glass{ + dir = 1; + name = "Canteen" + }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"VO" = ( +/obj/structure/closet/secure_closet{ + icon_state = "med"; + name = "medicine locker"; + req_access = list(5) + }, +/obj/item/storage/box/gloves, +/obj/item/storage/box/masks, +/obj/item/storage/box/syringes, +/obj/item/storage/firstaid/fire{ + pixel_x = -4; + pixel_y = 5 + }, +/obj/item/storage/firstaid/regular, +/obj/machinery/light/directional/east, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"VS" = ( +/obj/machinery/shower{ + dir = 4; + pixel_y = 10 + }, +/obj/structure/curtain, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/effect/turf_decal/steeldecal/steel_decals10{ + dir = 6 + }, +/turf/open/floor/plasteel/freezer, +/area/ship/bridge) +"VY" = ( +/obj/structure/table/wood/reinforced, +/obj/item/paper_bin, +/obj/item/pen/fountain, +/obj/machinery/light_switch{ + dir = 1; + pixel_x = -5; + pixel_y = -20 + }, +/obj/machinery/camera{ + dir = 10 + }, +/obj/item/stamp/centcom, +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"VZ" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = -6 + }, +/obj/item/stamp/head_of_personnel{ + name = "first officer's rubber stamp"; + pixel_x = 6 + }, +/obj/item/pen/fourcolor{ + pixel_x = -6 + }, +/turf/open/floor/carpet/blue, +/area/ship/bridge) +"Wa" = ( +/obj/docking_port/stationary{ + dir = 2; + dwidth = 15; + height = 15; + width = 30 + }, +/turf/template_noop, +/area/template_noop) +"Wd" = ( +/obj/machinery/computer/operating, +/turf/open/floor/plasteel/showroomfloor, +/area/ship/medical) +"We" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ + dir = 1 + }, +/obj/machinery/camera, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"Wj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"Wk" = ( +/obj/machinery/door/window/brigdoor/security/cell/eastleft{ + id = "Cell 1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/effect/turf_decal/trimline/opaque/vired/filled/warning{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"Wm" = ( +/obj/machinery/vending/coffee, +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"Wp" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet/executive, +/area/ship/crew/law_office) +"Wt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"Wv" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/hallway/central) +"Wx" = ( +/obj/machinery/atmospherics/components/unary/shuttle/heater{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ship/engineering) +"WH" = ( +/obj/structure/cable{ + icon_state = "6-9" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) +"WL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/opaque/blue/filled/end{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"WN" = ( +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"WP" = ( +/obj/effect/turf_decal/industrial/warning{ + dir = 8 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"WR" = ( +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/storage/eva) +"WT" = ( +/obj/structure/table/wood, +/obj/item/toy/cards/deck/kotahi, +/turf/open/floor/wood, +/area/ship/crew) +"WV" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"Xf" = ( +/obj/structure/chair, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"Xg" = ( +/obj/machinery/door/airlock/external/glass, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/effect/turf_decal/borderfloor{ + dir = 1 + }, +/turf/open/floor/plasteel/tech, +/area/ship/hallway/starboard) +"Xj" = ( +/obj/structure/cable{ + icon_state = "5-10" + }, +/obj/structure/cable{ + icon_state = "4-10" + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"Xl" = ( +/obj/effect/turf_decal/atmos/plasma, +/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input{ + dir = 8; + piping_layer = 1 + }, +/turf/open/floor/engine/plasma, +/area/ship/engineering/atmospherics) +"Xo" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/opaque/nsorange/line{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned/cargo_one, +/area/ship/cargo) +"Xw" = ( +/obj/effect/turf_decal/industrial/warning/fulltile, +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrier_disposals"; + name = "Disposals Blast Door" + }, +/obj/machinery/power/shieldwallgen/atmos/roundstart{ + dir = 8; + id = "harrier_disposalfield"; + locked = 1 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ship/crew/janitor) +"Xz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/firealarm/directional/west, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/cyan/visible, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"XB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/central) +"XF" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/firedoor/window, +/obj/machinery/door/poddoor{ + dir = 1; + id = "harrierbridge"; + name = "Window Blast Door" + }, +/obj/structure/cable{ + icon_state = "0-1" + }, +/turf/open/floor/plating, +/area/ship/bridge) +"XH" = ( +/obj/structure/chair/sofa/blue/corpo/right/directional/west, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/wood, +/area/ship/crew) +"XI" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/siding/thinplating, +/turf/open/floor/plasteel/tech/grid, +/area/ship/storage/eva) +"XK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/mono, +/area/ship/storage/eva) +"XL" = ( +/obj/effect/turf_decal/corner/opaque/white{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 6 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"XP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/purple/visible, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/orange/visible/layer5{ + dir = 9 + }, +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/light/directional/east, +/obj/structure/chair/handrail{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"XQ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ + dir = 4 + }, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"XW" = ( +/turf/open/floor/plasteel/stairs, +/area/ship/storage/eva) +"XY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/brown/visible/layer1{ + dir = 6 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"Yb" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/firedoor/window, +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrierbridge"; + name = "Window Blast Door" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ship/bridge) +"Yc" = ( +/obj/machinery/firealarm/directional/east, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ship/crew/law_office) +"Yi" = ( +/obj/item/radio/intercom/directional/east, +/obj/effect/turf_decal/trimline/opaque/ntblue/arrow_cw{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/nsorange/filled/corner, +/turf/open/floor/plasteel/patterned, +/area/ship/storage/eva) +"Yk" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/wood, +/area/ship/crew) +"Yp" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/engineering/atmospherics) +"Yr" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/poddoor{ + dir = 4; + id = "harrierwindows"; + name = "Window Blast Door" + }, +/turf/open/floor/plating, +/area/ship/hallway/port) +"Yw" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/effect/turf_decal/trimline/opaque/vired/filled/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/line{ + dir = 4 + }, +/obj/machinery/camera{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/ship/hallway/starboard) +"Yy" = ( +/obj/structure/chair/office, +/obj/effect/landmark/start/cargo_technician, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/cargo) +"Yz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/structure/closet/emcloset/wall/directional/north, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/starboard) +"YB" = ( +/obj/structure/closet/secure_closet/bar{ + name = "internal affairs agent's locker"; + populate = 0; + req_access = list(38) + }, +/obj/machinery/airalarm/directional/north, +/obj/item/clothing/shoes/laceup, +/obj/item/clothing/under/nanotrasen/affairs, +/obj/item/clothing/suit/nanotrasen/suitjacket, +/obj/item/clothing/neck/tie/black, +/obj/item/clothing/neck/tie/black, +/obj/item/clothing/neck/tie/black, +/obj/item/clothing/neck/tie/black, +/obj/item/clothing/neck/tie/black, +/obj/item/clothing/neck/tie/black, +/obj/item/clothing/neck/tie/black, +/obj/item/storage/backpack/satchel/leather, +/obj/item/clothing/glasses/sunglasses, +/turf/open/floor/wood, +/area/ship/crew/law_office) +"YC" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/trimline/opaque/blue/filled/end{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"YM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"YP" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/light_switch{ + pixel_x = -5; + pixel_y = 20 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/opaque/blue/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"YT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/ship/engineering) +"YV" = ( +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = 8 + }, +/obj/item/folder/red{ + pixel_x = 8 + }, +/obj/machinery/recharger{ + pixel_x = -6 + }, +/obj/effect/turf_decal/trimline/opaque/vired/filled/line{ + dir = 8 + }, +/obj/machinery/door/window/westleft{ + req_access_txt = "2" + }, +/turf/open/floor/plasteel/dark, +/area/ship/security) +"YW" = ( +/obj/effect/turf_decal/corner/opaque/white{ + dir = 4 + }, +/obj/effect/turf_decal/corner/opaque/white{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/ship/crew/canteen) +"YX" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/item/radio/intercom/directional/south, +/turf/open/floor/plasteel/mono, +/area/ship/crew/canteen) +"YZ" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/turf/open/floor/plasteel/mono/dark, +/area/ship/bridge) +"Za" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/ship/cargo) +"Zb" = ( +/turf/open/floor/plasteel, +/area/ship/crew) +"Ze" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/oxygen_output{ + dir = 8 + }, +/turf/open/floor/engine/o2, +/area/ship/engineering/atmospherics) +"Zf" = ( +/turf/closed/wall/mineral/titanium/nodiagonal, +/area/ship/security) +"Zg" = ( +/obj/structure/filingcabinet/double{ + dir = 1; + pixel_x = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/camera{ + dir = 1 + }, +/turf/open/floor/carpet/royalblue, +/area/ship/bridge) +"Zi" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/purple/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 10 + }, +/obj/effect/turf_decal/siding/yellow{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/stairs, +/area/ship/engineering/engine) +"Zk" = ( +/obj/structure/closet/secure_closet{ + icon_state = "cargo"; + name = "\proper cargo technician's locker"; + req_access_txt = "31" + }, /obj/effect/turf_decal/industrial/outline/yellow, -/obj/machinery/rnd/production/protolathe/department/science, +/obj/machinery/airalarm/directional/east, +/obj/machinery/firealarm/directional/south, +/obj/item/clothing/shoes/sneakers/black, +/obj/item/clothing/under/nanotrasen/supply, +/obj/item/clothing/head/nanotrasen/cap/supply, +/obj/item/clothing/gloves/fingerless, +/obj/item/storage/backpack/messenger, +/turf/open/floor/plasteel/tech, +/area/ship/cargo) +"Zm" = ( +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/ship/hallway/port) +"Zv" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/ship/engineering/atmospherics) +"Zw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/machinery/atmospherics/pipe/simple/purple/visible{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/structure/catwalk/over/plated_catwalk, +/obj/machinery/camera{ + dir = 8 + }, +/obj/structure/chair/handrail{ + dir = 8 + }, +/turf/open/floor/plating, +/area/ship/engineering/engine) +"ZJ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/item/radio/intercom/directional/north, +/obj/effect/turf_decal/trimline/opaque/blue/line{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"ZL" = ( +/obj/effect/turf_decal/trimline/opaque/blue/filled/end{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/ship/medical) +"ZN" = ( +/obj/structure/chair/comfy/blue/corpo/directional/south, +/obj/effect/turf_decal/trimline/opaque/ntblue/line{ + dir = 1 + }, /turf/open/floor/plasteel/dark, -/area/ship/science) -"ZZ" = ( -/obj/structure/sign/nanotrasen, +/area/ship/bridge) +"ZQ" = ( +/obj/structure/sign/number/random{ + color = "Black" + }, /turf/closed/wall/mineral/titanium/nodiagonal, -/area/ship/crew/cryo) +/area/ship/cargo) +"ZS" = ( +/obj/effect/spawner/structure/window/shuttle, +/obj/machinery/door/firedoor/window, +/turf/open/floor/plating, +/area/ship/crew/canteen) +"ZU" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/n2{ + dir = 8; + piping_layer = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/visible{ + dir = 4 + }, +/turf/open/floor/plasteel/patterned, +/area/ship/engineering/atmospherics) +"ZX" = ( +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable{ + icon_state = "0-1" + }, +/obj/effect/turf_decal/trimline/opaque/ntblue/filled/corner{ + dir = 1 + }, +/turf/open/floor/plasteel/mono, +/area/ship/hallway/port) (1,1,1) = {" -li -WU -pD -pD -rG -rG -pD -pD -WU -li -li -li -li -li -li -li -li -li -li -li -li -li -li -li -yj -Hk -Hk -wT -wT -Hk -Hk -yj -li +MZ +MZ +MZ +MZ +MZ +Yp +CV +CV +Yp +MZ +MZ +MZ +MZ +ok +AE +AE +AE +AE +Ci +AE +AE +AE +AE +ok +MZ +MZ +MZ +MZ +US +GG +GG +US +MZ +MZ +MZ +MZ +MZ "} (2,1,1) = {" -li -WU -Tn -VA -qX -Tr -Tn -VA -WU -li -li -li -li -li -li -li -li -li -li -li -li -li -li -li -yj -wo -wQ -kB -hU -wo -wQ -yj -li +MZ +Yp +Kz +Yp +Kz +Yp +HW +HW +Yp +MZ +MZ +MZ +MZ +AE +Pq +Io +LK +EF +tQ +Uj +AE +AE +hE +AE +MZ +MZ +MZ +MZ +US +Wx +Wx +US +MM +US +MM +US +MZ "} (3,1,1) = {" -li -WU -eE -eE -EW -LB -eE -eE -WU -li -li -li -li -li -li -li -li -li -li -li -li -li -li -li -yj -kG -kG -cJ -cJ -kG -kG -yj -li +MZ +Yp +NT +rh +NT +Yp +rf +cy +Yp +Mv +zs +Sj +Mv +AE +AE +yS +AE +qq +Jk +OW +AE +AE +AE +AE +Mv +Mv +TC +Mv +US +JK +UZ +US +cg +Fp +cg +US +MZ "} (4,1,1) = {" -li -WU -pP -ap -KC -Gr -oi -mZ -WU -li -li -li -li -li -li -li -li -li -li -li -li -li -li -li -yj -Iv -Bl -Tz -ra -Ri -dS -yj -li +MZ +Yp +bi +OR +bi +QG +jf +uW +Yp +Yp +zc +Yp +Yp +AE +uv +Ob +mC +sF +Bm +uk +Dg +Eh +KO +AE +aE +US +LZ +US +US +Nr +Rv +JB +kR +PA +kR +US +MZ "} (5,1,1) = {" -li -WU -NT -Yc -RY -SD -BN -ci -WU -MM -li -li -li -li -li -li -li -li -li -li -li -li -li -IY -yj -pT -pH -kb -Jl -kD -SX -Tb -li +MZ +Yp +NS +nf +XY +cS +vM +Bs +gX +lQ +UJ +Xz +Nt +Qs +zI +Sr +ys +Ij +dO +MX +yz +Lh +yx +HL +uD +uT +Mo +fb +Mx +Nn +wq +pY +vY +Ni +es +US +MZ "} (6,1,1) = {" -li -WU -qc -PS -Fj -QD -vY -yg -Tg -WU -ao -kP -uz -VV -VV -VV -VV -VV -VV -VV -ao -kP -uz -yj -go -pz -Gp -wV -Gp -Ko -tF -JN -li +MZ +Yp +Yp +Yp +zm +WN +JU +fH +HD +zy +CP +RX +pr +WV +Lf +Zi +gf +Qm +my +Ux +Hj +yd +UD +AE +GH +US +DQ +bL +ym +bR +Ez +Po +sc +He +ea +US +MZ "} (7,1,1) = {" -li -WU -qa -gX -hr -vx -XK -jn -MT -VV -Aj -VV -HE -VV -kU -VV -yP -VV -kU -VV -pe -eZ -ZX -VV -RB -qp -HV -GX -xp -cT -Of -xP -li +MZ +Yp +bk +NX +KZ +kq +Ds +Yp +Gi +Zv +Yp +Gi +cF +AE +jM +bK +kH +XP +No +Zw +Us +qB +Nz +AE +Xw +TI +TI +TI +TI +TI +eG +hH +hH +hH +US +US +MZ "} (8,1,1) = {" -li -WU -RE -JO -uh -lb -vj -ip -YJ -Fe -RO -rf -Ma -Gz -wY -LW -Ap -BL -Tt -do -XR -ll -wF -RD -Nq -MJ -Uo -sq -sw -cp -Uc -yj -li -"} -(9,1,1) = {" -li -WU -Hf -gX -oQ -NW -rN -Ro -Ro -Ro -Ro -Ro -Ro -VV -bw -hd -ZR -ZO -dr -VV -SB -kQ -kQ -kQ -kQ -kQ -oO -HK -hm -HK -Qb -yj -li +MZ +Yp +Vi +dX +EQ +Ev +ex +Yp +Eq +Ze +Yp +Xl +tq +AE +aX +ru +fh +AE +jU +AE +mk +ru +EJ +AE +nz +mJ +mJ +Vs +iT +TI +FD +fd +ez +xa +Kc +US +MZ +"} +(9,1,1) = {" +MZ +Yp +Yp +Yp +oX +fu +Tr +cp +cp +cp +cp +cp +KS +KS +KS +hY +hY +hY +hY +hY +hY +hY +IE +IE +IE +TI +Lb +Ah +bd +TI +Ms +Ga +RR +vs +Kj +US +MZ "} (10,1,1) = {" -li -WU -Mu -Ix -WK -mY -Qr -Ro -BU -Ro -BU -Ro -Vx -VV -ui -cI -cI -yC -xE -VV -hj -vD -Jw -OB -LX -kQ -Ka -lV -Mo -eX -fU -yj -li +MZ +Yp +QH +Ud +ZU +fu +Kx +cp +Pj +CW +CW +cp +MT +hI +vd +hY +wM +hY +gn +hY +qJ +hY +ol +oU +HI +TI +hy +Dk +Is +TI +lA +YT +Ki +xv +Pr +US +MZ "} (11,1,1) = {" -li -WU -Qv -lz -Em -dm -BK -Ro -jc -zl -Hn -oK -Hn -VV -cD -VV -lr -VV -LE -VV -ki -Yh -je -ut -vi -kQ -uq -NP -yj -pJ -gC -yj -li +MZ +Yp +wY +NX +IT +kM +RU +cp +DD +ms +Dl +cp +Tz +ln +Vp +hY +eA +MP +Da +uo +SF +hY +Tm +sD +Ha +TI +vI +hL +ES +TI +gU +bg +hQ +SW +mO +US +MZ "} (12,1,1) = {" -li -WU -Zo -LF -LK -KI -mf -Ro -to -pq -PW -VS -gT -gT -gT -gT -gT -gT -gT -gT -gT -FF -uI -wb -Sa -kQ -Xi -lM -yj -oo -oo -yj -li +MZ +Yp +Yp +Yp +Yp +Yp +jl +cp +xl +ud +Rt +cp +fZ +Pk +gm +hY +FK +rk +jI +Mn +NQ +hY +Cn +sy +sl +TI +lX +Ax +mc +TI +jm +US +US +US +US +US +MZ "} (13,1,1) = {" -li -WU -bH -Xz -OA -Jc -eT -Ro -Xr -dx -Hn -nf -gT -eD -pU -Ws -gT -VF -Pa -dP -gT -fn -xj -uJ -Ou -kQ -mo -RI -yj -ik -lA -yj -li +MZ +aL +cN +de +dK +cf +rR +cp +kJ +cp +cp +cp +KS +QW +KS +hY +hY +hY +DC +hY +hY +hY +IE +EX +IE +TI +TI +TI +dI +TI +KT +Sn +iA +LJ +wS +IS +MZ "} (14,1,1) = {" -li -WU -WU -WU -WU -WU -Ag -MB -Ro -CL -FV -Ro -gT -HD -lv -Wn -gT -XU -pp -ht -gT -kQ -OV -kf -kQ -JX -Iz -yj -yj -yj -yj -yj -li +aA +cm +da +dA +dL +ha +bW +DH +mN +Gz +dr +lH +BF +Rg +Jx +bv +ow +jx +IV +TD +cE +cz +Jx +fO +Gz +lg +VS +Bx +FQ +Lv +Jl +Xg +fr +SS +uf +St +Wa "} (15,1,1) = {" -li -nK -GU -XX -Tw -Mc -Hi -si -gc -TH -kZ -ZC -gT -gT -zL -gT -gT -gT -Xp -gT -gT -la -eB -zF -OW -sZ -Vs -Mc -jC -gJ -Zj -FI -li +MZ +PF +PF +PF +PF +Pi +og +JC +rQ +Gz +ox +Dy +Dy +Sy +Aj +Pz +dB +UT +Fi +tG +Tx +aq +fw +mm +hV +ue +yY +Gz +RT +qp +uw +JQ +fI +fI +fI +fI +MZ "} (16,1,1) = {" -Xo -uQ -mB -Tq -rJ -bl -yQ -sJ -sJ -gy -yE -xK -tY -ow -hl -KL -SK -ac -ej -ce -wj -Ey -wC -VR -QI -Ii -yw -ti -hg -oN -ou -uQ -Wq +MZ +ig +gH +pI +co +ig +QO +Hh +iI +uZ +st +Gz +Gz +TX +Me +ss +FP +wL +JT +Lz +BS +Bb +sh +Zg +Gz +Gz +Gz +Gz +Yz +Xj +Cv +Zf +oi +ew +AS +Zf +MZ "} (17,1,1) = {" -li -BH -IW -IW -IW -IW -IW -IW -Qt -Pe -WS -xT -gT -Di -Fk -UL -uA -UL -Tx -nx -gT -aY -hy -Np -rS -gV -gV -gV -gV -gV -gV -ZZ -li +MZ +ig +YB +Rn +oT +Ta +ig +tZ +Sm +Qf +iD +ZX +gE +Rb +VA +bn +FP +ZN +IK +qf +eJ +FO +iG +zY +XF +Jd +nZ +zV +av +bH +lD +Nq +QP +Wk +dv +Zf +MZ "} (18,1,1) = {" -li -IW -iO -KD -fb -RU -iO -IW -tL -Pe -Ib -hL -gT -wn -UL -YR -UL -UT -UL -Ry -gT -zN -RW -Np -qv -gV -os -ea -yI -Su -dw -gV -li +MZ +Rf +tm +Oh +ko +Wp +jN +Jw +gN +uh +uC +QQ +gE +Fx +VZ +OA +cY +JP +Hw +iS +QX +ta +dz +EY +XF +cl +Sw +yc +hx +sE +jA +Kr +LW +Fo +Ig +tI +MZ "} (19,1,1) = {" -li -IW -fc -pv -iv -nl -oE -IW -xF -Pe -RW -mI -DU -tc -uC -tr -xq -ud -pm -Pg -DU -iA -Yt -qs -bA -gV -mj -PJ -UZ -uk -SU -gV -li +MZ +Rf +JX +Db +gD +Db +pH +MK +Qx +Zm +Hx +iI +KC +Gz +aO +xg +vL +qX +pp +Mf +wz +Ra +ky +Gz +KC +Ro +ju +wD +ls +Yw +Zf +zr +Ky +Nc +tT +tI +MZ "} (20,1,1) = {" -li -IW -rz -SO -Xv -Nm -GN -Nw -zi -ep -My -Ai -sG -tx -tx -tx -gT -tx -tx -tx -sG -CC -WE -rO -VL -uM -pk -tp -yl -gB -sI -gV -li +MZ +ig +uy +UI +KG +VY +ig +Yr +Yr +Vv +wN +WH +wN +gE +Py +uz +HG +YZ +FS +YZ +Np +Qb +AW +XF +ba +qh +ba +cB +LD +LD +Zf +ei +YV +ec +iQ +Zf +MZ "} (21,1,1) = {" -li -IW -Oh -hv -LV -mV -cg -IW -bh -Cn -mg -Cn -ak -ak -ak -ak -Ni -ak -ak -ak -ak -in -RW -Cn -rX -gV -Yw -FL -FL -FL -EO -gV -li +MZ +Rf +JX +eY +nQ +eg +ig +MZ +MZ +PF +Nk +Os +Uw +Gz +Yb +Gz +Ao +la +Ry +zX +TO +Gz +TZ +Gz +Sb +Wj +Ih +fI +MZ +MZ +Zf +Ho +OX +Nc +tT +tI +MZ "} (22,1,1) = {" -li -Rq -IW -FZ -xN -ET -IW -IW -ZJ -Es -cY -Nd -Nd -Si -Nd -La -ie -Nd -Lt -Ho -xY -eG -Qy -Ge -ZJ -gV -gV -bs -Fr -Wb -gV -PP -li +MZ +Rf +Yc +sU +SZ +fc +ig +MZ +MZ +rT +Vv +iI +wN +Ub +qx +KC +Yb +Yb +Yb +Yb +DM +KC +qx +yI +ba +Qz +cB +dV +MZ +MZ +Zf +pF +Pn +uc +CK +tI +MZ "} (23,1,1) = {" -li -li -Rq -YI -YI -YI -Rq -li -sG -su -ZJ -AB -zJ -JW -ND -Pq -bb -dJ -Cp -TR -zU -uN -ZJ -kV -sG -li -PP -EN -EN -EN -PP -li -li +MZ +ng +ig +NE +cb +ig +ng +MZ +MZ +MZ +PF +OO +RB +qF +GY +GE +DP +DP +Ad +Cm +CA +GE +Eb +CH +gM +sw +fI +MZ +MZ +MZ +gk +Zf +uX +km +Zf +gk +MZ "} -(24,1,1) = {" -li -li -li -li -li -li -li -li -li -li -sG -cq -cq -cq -cq -cq -cq -cq -WZ -zy -cq -cq -sG -li -li -li -li -li -li -li -li -li -li +(24,1,1) = {" +MZ +MZ +ng +ig +ig +ng +MZ +MZ +MZ +MZ +rT +PF +Vv +JH +Cm +kn +Cm +jT +zT +Cm +FX +Fl +Cm +td +cB +fI +dV +MZ +MZ +MZ +MZ +gk +Zf +Zf +gk +MZ +MZ "} (25,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -cq -GC -jU -JG -cq -Bu -cL -oU -lt -IV -cq -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +PF +PF +fz +We +qg +fl +lE +TJ +zU +BO +be +fI +fI +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (26,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -gM -JL -rH -wP -IR -rZ -FC -jM -pC -YH -gM -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +Mv +MZ +rj +Wm +CI +In +lE +JZ +ch +OD +rj +MZ +Mv +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (27,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -gM -iD -rH -rH -Lz -rP -xb -Ga -pK -UU -gM -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +Mv +MZ +wa +wO +RV +wr +MQ +vm +ch +KM +wa +MZ +Mv +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (28,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -cq -lY -rH -gt -Lz -rP -xb -ga -pK -Bp -cq -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +Mv +MZ +wa +bU +CI +Ia +tJ +Ia +ch +rK +wa +MZ +Mv +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (29,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -gM -CT -rH -rH -sl -sC -qw -ly -pK -lh -gM -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +Mv +MZ +wa +cx +CI +nx +PU +qO +ch +KW +wa +MZ +Mv +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (30,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -gM -XE -rH -Fo -Dg -DH -VN -aj -cK -Jt -gM -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +Mv +MZ +rj +JS +NP +ED +Ut +Cm +rc +xD +rj +MZ +Mv +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (31,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -cq -DK -tO -qN -cq -ir -DA -yq -tT -DY -cq -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +pP +BU +BU +BU +qI +qI +vT +zx +KB +hA +Er +CO +CO +CO +CO +CO +dG +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (32,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -Zr -Zr -Zr -Zr -Zr -Zr -Zr -ke -xB -Zr -Zr -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +pP +qI +qI +Tv +kO +YM +Qu +mV +YX +qI +aR +qx +Lw +CO +XI +TT +Ey +fi +CO +CO +dG +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (33,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -Zr -ux -Xl -KE -Ee -tm -Zr -eP -dN -Ih -Zr -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +pP +qI +qI +jD +aC +aH +Wt +Gd +aC +aH +gV +ZS +eQ +zO +Tf +CO +oe +qK +IM +sf +CO +CO +CO +CO +dG +MZ +MZ +MZ +MZ +MZ +MZ "} (34,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -Uj -Bc -WN -Vh -YK -aW -nL -PV -FP -HU -Uj -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +uG +pZ +dJ +ql +PH +Kd +Je +ql +PH +Kd +mB +ZS +UF +zF +xo +CO +Jt +Vr +Th +Jt +CO +TM +IX +Vc +hj +MZ +MZ +MZ +MZ +MZ +MZ "} (35,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -Uj -Dj -NH -WN -CQ -Lc -OS -QE -uE -HU -Uj -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +uG +Aw +mB +Xf +Pw +se +Je +Ur +Pw +se +mB +ZS +JL +zF +oV +Jt +Av +vl +Nl +bM +rm +PZ +ur +PL +ND +MZ +MZ +MZ +MZ +MZ +MZ "} (36,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -Zr -Zr -Zr -aI -un -YD -wq -zQ -vl -jk -Zr -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +uG +qw +mB +xn +xn +xn +BY +Nm +yB +yB +qE +hD +Hu +Wv +Qn +Hk +Ug +ct +MV +lj +VE +mW +hP +ih +rJ +MZ +MZ +MZ +MZ +MZ +MZ "} (37,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -Uj -UB -it -WN -CQ -Hx -oW -Qm -Ac -wr -Uj -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +uG +kr +pd +KQ +KQ +Pm +Bj +XQ +QN +QN +wU +VJ +iM +pR +oj +KN +XK +sv +wH +je +XW +WR +HY +ih +rJ +Wa +MZ +MZ +MZ +MZ +MZ "} (38,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -Uj -IU -WN -gH -OH -yc -Zr -Sm -il -wr -Uj -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +qI +qI +pQ +na +OK +HC +bu +ql +PH +Kd +bu +ZS +XB +zF +kV +Jt +PQ +Gq +QC +va +dN +Yi +Uq +go +wn +MZ +MZ +MZ +MZ +MZ +MZ "} (39,1,1) = {" -li -li -li -li -li -li -li -li -li -li -CF -Zr -wR -JD -gg -gg -Hb -Zr -CH -QK -Sd -Zr -CF -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +qI +mZ +ad +xK +vZ +HC +bu +Xf +Pw +se +bu +ZS +Ot +yL +Ei +GK +oG +eZ +gQ +oG +oG +oG +yr +oG +ZQ +MZ +MZ +MZ +MZ +MZ +MZ "} (40,1,1) = {" -li -li -li -li -li -li -li -li -hh -IL -IL -IL -IL -Zr -cd -cd -dE -Zr -xJ -oX -Pl -Pl -Pl -Pl -iI -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +qI +nv +Oy +ul +vZ +HC +rx +Gd +aC +aH +Ck +ZS +rc +SE +do +oG +xe +vN +Bd +tH +tk +hq +WP +KA +ZQ +MZ +MZ +MZ +MZ +MZ +MZ "} (41,1,1) = {" -li -li -li -li -li -li -li -hh -IL -YP -my -kL -IL -Pj -bN -bN -Wf -Bn -TJ -Xe -Pl -YF -Ie -nT -Pl -iI -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +qI +op +XL +YW +Em +jL +bJ +FN +kA +Tj +gC +qI +xf +BA +Kl +bc +EB +sN +EU +ka +mH +tN +GF +Tu +ZQ +MZ +MZ +MZ +MZ +MZ +MZ "} (42,1,1) = {" -li -li -li -li -li -li -li -IL -qb -Se -co -Oj -pL -Ol -RQ -RQ -RQ -RQ -PQ -EX -SQ -AS -mW -tH +MZ +MZ +MZ +MZ +MZ +MZ +qI +LP +ri +gq +bX +qI +Ny +qI +qI +qI +Up +qI +OB +iV +cW +oG +JN +Za +vj +nj +xj Nv -Pl -li -li -li -li -li -li -li +pX +tC +ZQ +MZ +MZ +MZ +MZ +MZ +MZ "} (43,1,1) = {" -li -li -li -li -li -li -li -IL -ct -hG -Iq -SC -An -mR -MR -bF -bF -bF -fg -Zu -eh -aL -mF -ZW -Zs -Pl -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +pP +qI +rr +uI +qI +Ju +Yk +iP +ai +ty +vW +jH +fv +hB +ir +oG +vS +Za +qo +QV +Gg +yl +dF +oG +Jv +MZ +MZ +MZ +MZ +MZ +MZ "} (44,1,1) = {" -li -li -li -li -li -li -li -IL -PE -Vf -iM -ez -TU -yU -fa -gi -lF -gi -gW -nZ -AR -kS -yn -mq -SG -Pl -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +qI +tO +iy +qI +Kg +up +Um +UN +Mu +er +jH +KY +Lc +QR +oG +Pu +lP +Yy +Al +tF +Lp +uu +oG +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (45,1,1) = {" -li -li -li -li -li -li -li -IL -fF -TG -ss -oB -IL -ko -DV -wW -zt -Rr -PU -iQ -Ll -Nr -tH -IT -SR -Pl -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +pP +qI +qI +qI +Om +Om +Om +SN +Co +MW +jH +sn +Iu +tV +oG +sG +yE +wd +xH +Xo +cH +oG +Jv +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (46,1,1) = {" -li -li -li -li -li -li -li -ja -ZY -VC -TZ -Po -VW -xH -yd -yd -ot -yd -TW -hD -lk -vp -Ht -lJ -zM -DF -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +Om +Om +EV +Kq +EV +Om +MB +WT +yG +jH +zd +Rs +Im +oG +za +CN +Pv +vr +Gr +Zk +oG +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (47,1,1) = {" -li -li -li -li -li -li -li -DP -hw -VI -rd -Po -VW -xH -Cw -tG -AT -Ig -DO -OD -eh -Bq -hc -QW -wc -Wk -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +qQ +Om +xy +qr +Fy +Om +PC +XH +cc +jH +Az +xN +uH +oG +oG +oG +oG +oG +oG +oG +Jv +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (48,1,1) = {" -li -li -li -li -li -li -li -DP -yX -zb -yS -Po -VW -xH -yd -oF -sE -oF -gw -OD -eh -jG -UG -Ek -bG -Wk -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +Om +EV +qr +EV +Om +gg +Li +xS +jH +BI +Br +BG +jH +di +rL +di +Lj +um +jH +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (49,1,1) = {" -li -li -li -li -li -li -li -hs -lL -sO -tb -SW -IL -Hy -yd -IX -CA -Gk -gw -QJ -Pl -GG -Bv -Vq -Gu -Re -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +qQ +wX +Hq +pW +uS +gA +Bq +kE +jH +YP +Cz +fT +fR +ZL +fT +fT +zv +jH +UW +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (50,1,1) = {" -li -li -li -li -li -li -li -sd -IL -IL -IL -IL -IL -sy -yd -nE -CA -IA -gw -xG -Pl -Pl -Pl -Pl -Pl -aE -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +Om +Kt +Pb +Om +CJ +Zb +wp +jH +ZJ +wA +iz +YC +if +Dr +CR +bp +jH +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (51,1,1) = {" -li -li -li -li -li -li -li -iw -Cv -bT -Ti -Wj -Wc -yd -yd -mH -dK -Dx -gE -DE -ZK -iZ -wd -ry -Cv -iw -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +qQ +Om +Om +Om +vC +dt +Om +jH +yR +gO +VO +SB +WL +fn +tS +Gy +UW +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (52,1,1) = {" -li -li -li -li -li -li -li -li -Cv -fh -mu -OG -yd -yd -Bs -Cu -ar -bg -fj -ch -Fs -NA -Cj -TP -Cv -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +tY +tY +Uf +xQ +dd +tY +jH +jH +jH +jH +SM +eX +jH +jH +jH +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (53,1,1) = {" -li -li -li -li -li -li -li -li -iw -Cv -Gw -cN -jo -KA -qL -EA -EA -EA -qL -yT -na -ML -Oq -Cv -iw -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +RJ +tY +mK +gF +Ps +tY +MZ +MZ +MZ +jH +Wd +ej +FY +jH +UW +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (54,1,1) = {" -li -li -li -li -li -li -li -li -li -iw -Cv -Cv -Cv -Cv -wx -Gt -Gt -Gt -Os -Vl -Cv -Cv -Cv -iw -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +tY +UV +xM +Ak +tY +MZ +MZ +MZ +jH +dj +rZ +mG +jH +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (55,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -iw -Cv -Dq -fJ -fJ -hQ -fJ -fJ -qM -Cv -iw -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +RJ +tY +HO +NF +tY +MZ +MZ +MZ +jH +fX +rS +jH +UW +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} (56,1,1) = {" -li -li -li -li -li -li -li -li -li -li -li -li -Cv -li -li -li -li -li -li -li -Cv -li -li -li -li -li -li -li -li -li -li -li -li +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +RJ +tY +uB +tY +MZ +MZ +MZ +jH +jH +jH +UW +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ +MZ "} diff --git a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm b/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm deleted file mode 100644 index b4ae5230cc7b..000000000000 --- a/_maps/shuttles/nanotrasen/nanotrasen_skipper.dmm +++ /dev/null @@ -1,7391 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"ai" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/engineering/atmospherics) -"al" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"ao" = ( -/obj/machinery/airalarm/directional/south, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/carpet/royalblue, -/area/ship/crew/crewtwo) -"aA" = ( -/obj/structure/railing/corner{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"aF" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/sign/poster/official/random{ - pixel_y = -32 - }, -/obj/structure/chair{ - dir = 8 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"aL" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible{ - dir = 4 - }, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"aN" = ( -/obj/structure/catwalk/over, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/rust, -/area/ship/crew/toilet) -"aQ" = ( -/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4, -/turf/open/floor/plasteel, -/area/ship/cargo) -"aR" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/layer_manifold, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"aZ" = ( -/turf/open/floor/carpet/blue, -/area/ship/crew/dorm) -"bd" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"bf" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 10 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"bh" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"bk" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/incinerator_input{ - dir = 4 - }, -/turf/open/floor/engine/airless, -/area/ship/engineering/engine) -"bo" = ( -/obj/structure/dresser, -/obj/item/flashlight/lamp{ - pixel_x = -5; - pixel_y = 9 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"bq" = ( -/obj/structure/dresser, -/obj/item/storage/lockbox/medal{ - pixel_y = 13 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/wood, -/area/ship/crew/crewtwo) -"bs" = ( -/obj/structure/holosign/barrier/engineering/infinite{ - name = "maintenance barrier" - }, -/obj/structure/catwalk/over, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating/rust, -/area/ship/crew/toilet) -"bw" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/structure/sign/poster/retro/nanotrasen_logo_80s{ - pixel_y = 32 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"bz" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{ - dir = 10 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"bA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/ship/engineering/atmospherics) -"bG" = ( -/obj/structure/window/reinforced/spawner/west, -/obj/machinery/door/poddoor{ - dir = 4; - id = "enginelockdown" - }, -/obj/machinery/door/window/eastleft{ - name = "Engine Access" - }, -/obj/machinery/atmospherics/components/unary/shuttle/fire_heater{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"bI" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"bO" = ( -/obj/structure/table/reinforced, -/obj/item/flashlight/lamp{ - pixel_x = -9; - pixel_y = 13 - }, -/obj/machinery/recharger, -/turf/open/floor/carpet/nanoweave/red, -/area/ship/crew/crewthree) -"bR" = ( -/obj/structure/catwalk/over, -/obj/machinery/firealarm/directional/west, -/obj/effect/decal/cleanable/cobweb, -/obj/effect/decal/cleanable/glass, -/obj/effect/decal/cleanable/garbage, -/turf/open/floor/plating, -/area/ship/crew/toilet) -"bW" = ( -/obj/structure/displaycase/captain{ - req_access = null; - req_access_txt = "20" - }, -/turf/open/floor/wood, -/area/ship/crew/crewtwo) -"bY" = ( -/obj/machinery/vending/cola/space_up, -/turf/open/floor/wood, -/area/ship/hallway/central) -"bZ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"cd" = ( -/obj/machinery/light/dim/directional/south, -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"cp" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"cq" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"cF" = ( -/obj/structure/chair/comfy/grey/directional/east, -/turf/open/floor/wood, -/area/ship/hallway/central) -"cJ" = ( -/obj/structure/sign/nanotrasen{ - pixel_y = -30 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"cL" = ( -/obj/machinery/atmospherics/pipe/layer_manifold{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/effect/turf_decal/techfloor/corner, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"cQ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"cS" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"de" = ( -/obj/machinery/light/dim/directional/north, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"dj" = ( -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/fulltile, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"dl" = ( -/obj/structure/sign/poster/official/obey{ - pixel_x = -30 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/table/reinforced, -/obj/item/paper_bin{ - pixel_x = 6; - pixel_y = 2 - }, -/obj/item/pen{ - pixel_y = 4; - pixel_x = 5 - }, -/obj/item/folder/blue{ - pixel_x = -8; - pixel_y = 7 - }, -/obj/item/stamp/head_of_personnel{ - pixel_x = -7; - pixel_y = -3 - }, -/obj/item/folder/red{ - pixel_x = -8; - pixel_y = 11 - }, -/turf/open/floor/wood, -/area/ship/crew/crewthree) -"dp" = ( -/obj/structure/table, -/obj/machinery/chem_dispenser/drinks/beer, -/obj/machinery/light/directional/west, -/obj/effect/turf_decal/corner/opaque/green/mono, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"dq" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/item/pen, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"du" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/holopad/emergency/command, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"dy" = ( -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"dB" = ( -/obj/machinery/airalarm/directional/west, -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"dG" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/machinery/light/small/directional/east, -/obj/machinery/firealarm/directional/south, -/obj/item/gun/energy/laser{ - pixel_y = -6 - }, -/obj/item/gun/energy/e_gun/mini{ - pixel_y = -2; - pixel_x = 6 - }, -/obj/item/gun/energy/e_gun/mini{ - pixel_x = -8; - pixel_y = -2 - }, -/obj/structure/closet/secure_closet{ - anchored = 1; - can_be_unanchored = 1; - icon_state = "sec"; - name = "firearm locker"; - req_access_txt = "1" - }, -/obj/item/gun/ballistic/automatic/pistol/commander, -/obj/item/gun/ballistic/automatic/pistol/commander, -/turf/open/floor/wood, -/area/ship/crew/crewthree) -"dJ" = ( -/obj/machinery/button/door{ - dir = 4; - pixel_x = -24; - id = "enginelockdown"; - name = "Lockdown Engines" - }, -/obj/machinery/atmospherics/components/binary/volume_pump{ - dir = 8; - name = "Activate Exhaust" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"dM" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"dO" = ( -/obj/machinery/atmospherics/components/trinary/mixer/flipped/layer4, -/obj/item/paper/guides/jobs/engi/combustion_thruster, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"dS" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 5 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"dW" = ( -/obj/structure/filingcabinet/employment, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/crew/office) -"dX" = ( -/obj/structure/table/chem, -/obj/item/clothing/glasses/hud/health, -/obj/machinery/light/directional/east, -/obj/effect/turf_decal/corner/opaque/blue/mono, -/obj/item/reagent_containers/glass/beaker{ - pixel_y = 12; - pixel_x = -9 - }, -/obj/structure/sink/chem{ - pixel_x = 2; - pixel_y = 3 - }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"dZ" = ( -/obj/structure/cabinet/fireaxe{ - pixel_y = -29 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"ed" = ( -/obj/structure/table, -/obj/machinery/fax/nanotrasen, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/crew/office) -"eg" = ( -/obj/machinery/vending/cigarette, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"ek" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/light_switch{ - pixel_x = -14; - pixel_y = 24 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/cryo) -"er" = ( -/obj/machinery/door/airlock/engineering{ - dir = 4; - name = "Engineering" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/engineering/atmospherics) -"eu" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 6 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"eB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = 6; - pixel_y = -24 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"eC" = ( -/obj/structure/window/reinforced/fulltile, -/obj/structure/grille, -/turf/open/floor/plating, -/area/ship/crew/crewthree) -"eD" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/obj/structure/sign/poster/contraband/syndicate_recruitment{ - pixel_x = 30 - }, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plating/rust, -/area/ship/crew/toilet) -"eL" = ( -/obj/machinery/door/airlock/command{ - name = "Internal Affairs Office" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/crew/office) -"eP" = ( -/obj/structure/chair/comfy/grey/directional/east, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"eQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"eY" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"fa" = ( -/obj/structure/table, -/obj/item/storage/pill_bottle/dice{ - pixel_x = 5; - pixel_y = 6 - }, -/obj/item/spacecash/bundle/c5, -/turf/open/floor/carpet/red, -/area/ship/hallway/central) -"fc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/engine, -/area/ship/engineering/atmospherics) -"fg" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/machinery/door/poddoor/preopen{ - dir = 4; - id = "coolingshutdown" - }, -/turf/open/floor/engine/airless, -/area/ship/external) -"fi" = ( -/obj/machinery/door/airlock/command{ - dir = 4; - name = "Personal Quarters"; - req_one_access_txt = "57" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/carpet/blue, -/area/ship/crew/crewthree) -"fl" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 9 - }, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"fn" = ( -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/wood, -/area/ship/hallway/central) -"fo" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"fs" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/machinery/button/door{ - dir = 8; - id = "amogusdoors"; - name = "Cargo Blast Door Control"; - pixel_x = 25; - pixel_y = -4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/button/shieldwallgen{ - dir = 8; - id = "skippyshieldywalle"; - pixel_x = 24; - pixel_y = 5 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"ft" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "TEG to Exhaust" - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"fu" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/structure/sign/poster/official/random{ - pixel_x = 30 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"fw" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/item/paper{ - default_raw_text = "The igniter in the chamber does not work very well. I suggest throwing lit welders down the disposal chute over there to ignite the chamber." - }, -/obj/item/weldingtool, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"fx" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/turf/closed/wall, -/area/ship/hallway/central) -"fz" = ( -/obj/machinery/shower{ - pixel_y = 18 - }, -/obj/machinery/firealarm/directional/west, -/obj/effect/turf_decal/corner_techfloor_grid{ - dir = 1 - }, -/turf/open/floor/noslip, -/area/ship/engineering/atmospherics) -"fD" = ( -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"fG" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/toilet) -"fI" = ( -/obj/structure/chair/sofa/brown/left/directional/west, -/obj/machinery/newscaster/directional/east, -/turf/open/floor/carpet/red, -/area/ship/hallway/central) -"fQ" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/machinery/atmospherics/components/binary/pump/layer4{ - dir = 1; - name = "Fuel Pump" - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"fT" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 9 - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"fU" = ( -/obj/machinery/cryopod{ - dir = 4 - }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/crew/cryo) -"fW" = ( -/turf/template_noop, -/area/template_noop) -"fY" = ( -/obj/structure/table, -/obj/item/trash/raisins, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/wood, -/area/ship/hallway/central) -"ga" = ( -/obj/structure/grille, -/obj/structure/window/fulltile, -/turf/open/floor/plating, -/area/ship/medical) -"gc" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"gh" = ( -/obj/machinery/power/smes/shuttle/precharged{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/window/reinforced/spawner/west, -/obj/machinery/door/poddoor{ - dir = 4; - id = "enginelockdown" - }, -/obj/machinery/door/window/eastleft{ - name = "Engine Access" - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"gi" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"gk" = ( -/obj/structure/sign/poster/official/safety_internals{ - pixel_x = -32 - }, -/obj/structure/tank_dispenser, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"gm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/railing/corner{ - dir = 4 - }, -/obj/effect/turf_decal/arrows{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"gr" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"gu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"gx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/layer4, -/turf/open/floor/plating, -/area/ship/hallway/central) -"gB" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Cooling to TEG" - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"gM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"gN" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"gO" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "thruster fuel pump" - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"gP" = ( -/obj/effect/landmark/observer_start, -/obj/machinery/holopad, -/turf/open/floor/wood, -/area/ship/hallway/central) -"gQ" = ( -/obj/effect/turf_decal/siding/wood, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"hb" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"hc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor{ - dir = 5 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"hi" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/turf/open/floor/carpet/royalblue, -/area/ship/crew/crewtwo) -"hr" = ( -/turf/closed/wall/r_wall, -/area/ship/hallway/central) -"hz" = ( -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plasteel, -/area/ship/cargo) -"hA" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"hC" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 9 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"hG" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"hJ" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor{ - id = "windowlockdown" - }, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/firedoor/window, -/turf/open/floor/plating, -/area/ship/medical) -"hM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"hP" = ( -/obj/machinery/computer/helm{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"hT" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"hZ" = ( -/obj/item/extinguisher/advanced, -/obj/item/clothing/glasses/meson/engine, -/obj/item/clothing/suit/hooded/wintercoat/engineering, -/obj/item/clothing/under/rank/engineering/engineer/hazard, -/obj/item/clothing/under/rank/engineering/engineer/nt, -/obj/item/clothing/under/rank/engineering/engineer/nt/skirt, -/obj/item/clothing/under/rank/engineering/atmospheric_technician, -/obj/item/clothing/under/rank/engineering/atmospheric_technician/skirt, -/obj/item/clothing/head/beret/atmos, -/obj/item/clothing/head/beret/eng, -/obj/item/analyzer, -/obj/item/storage/belt/utility, -/obj/item/storage/belt/utility, -/obj/structure/closet/secure_closet{ - icon_state = "eng_secure"; - name = "engineer's locker"; - req_access = list(11); - anchored = 1 - }, -/obj/item/pipe_dispenser, -/obj/item/clothing/suit/hooded/wintercoat/engineering/atmos, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"ib" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/item/kirbyplants/random, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"ic" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"id" = ( -/obj/machinery/shower{ - dir = 4; - pixel_y = 8 - }, -/obj/structure/curtain, -/obj/item/bikehorn/rubberducky/plasticducky, -/obj/effect/turf_decal/techfloor/hole{ - dir = 8 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/crewtwo) -"ie" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"if" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"ih" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - dir = 4 - }, -/obj/machinery/door/poddoor/preopen{ - dir = 4; - id = "bridgelockdown" - }, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/firedoor/window, -/turf/open/floor/plating, -/area/ship/bridge) -"ik" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 9 - }, -/obj/machinery/light/broken/directional/south, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"il" = ( -/obj/structure/closet/crate/bin, -/obj/machinery/newscaster/directional/north, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"im" = ( -/obj/structure/lattice, -/turf/template_noop, -/area/ship/external) -"ir" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"is" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/door/airlock/mining/glass, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"iv" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/plasteel/stairs{ - dir = 1 - }, -/area/ship/bridge) -"ix" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"iB" = ( -/obj/machinery/door/airlock/command{ - dir = 4; - name = "Personal Quarters"; - req_one_access_txt = "20" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/carpet/royalblue, -/area/ship/crew/crewtwo) -"iI" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/machinery/autolathe, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo/office) -"iP" = ( -/obj/structure/chair/comfy/grey/directional/north, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/wood, -/area/ship/crew/crewtwo) -"iY" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"ja" = ( -/obj/machinery/shower{ - dir = 4 - }, -/obj/item/soap/nanotrasen, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/toilet) -"jf" = ( -/obj/machinery/airalarm/directional/north, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/decal/cleanable/wrapping, -/obj/item/storage/fancy/donut_box, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo/office) -"ji" = ( -/turf/closed/wall/r_wall, -/area/ship/crew/crewthree) -"jq" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor{ - id = "windowlockdown" - }, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/firedoor/window, -/turf/open/floor/plating, -/area/ship/crew/dorm) -"jr" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24; - pixel_y = -5 - }, -/obj/effect/turf_decal/corner/opaque/green/mono, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"js" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/structure/closet/cardboard{ - name = "janitorial supplies" - }, -/obj/item/mop, -/obj/item/reagent_containers/glass/bucket, -/obj/item/soap, -/obj/item/storage/bag/trash, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo/office) -"jv" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/stand_clear{ - dir = 1 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"jK" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"jM" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4; - name = "Helm" - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"jS" = ( -/turf/closed/wall, -/area/ship/crew/dorm) -"jX" = ( -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 8; - id = "skippyshieldywalle"; - locked = 1 - }, -/obj/structure/cable, -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor{ - id = "amogusdoors"; - name = "Cargo Bay Blast Door" - }, -/turf/open/floor/plating, -/area/ship/cargo) -"jZ" = ( -/obj/structure/closet/radiation, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24; - pixel_y = 5 - }, -/obj/structure/sign/warning/incident{ - pixel_y = 32 - }, -/turf/open/floor/noslip, -/area/ship/engineering/atmospherics) -"kn" = ( -/obj/machinery/button/door/incinerator_vent_atmos_aux{ - dir = 4; - pixel_x = -23; - pixel_y = 8 - }, -/obj/machinery/button/ignition/incinerator/atmos{ - dir = 4; - pixel_x = -23; - pixel_y = -3 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 5 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"kp" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/ship/crew/crewthree) -"ky" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/layer2, -/turf/open/floor/plating, -/area/ship/hallway/central) -"kz" = ( -/turf/closed/wall/r_wall, -/area/ship/engineering/atmospherics) -"kB" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 10 - }, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"kE" = ( -/obj/machinery/newscaster/directional/west, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"kL" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/corner/opaque/green/mono, -/obj/machinery/reagentgrinder{ - pixel_y = 11 - }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"kM" = ( -/obj/structure/table, -/obj/item/storage/pill_bottle/charcoal/less{ - pixel_x = -9 - }, -/obj/item/reagent_containers/glass/bottle{ - list_reagents = list(/datum/reagent/medicine/thializid=30); - name = "thializid bottle" - }, -/obj/item/reagent_containers/glass/bottle/formaldehyde{ - pixel_x = 6; - pixel_y = 8 - }, -/obj/item/reagent_containers/syringe{ - pixel_x = 7 - }, -/obj/effect/turf_decal/borderfloorwhite{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"kO" = ( -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"kU" = ( -/turf/closed/wall, -/area/ship/crew/toilet) -"kW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/turf/open/floor/carpet/blue, -/area/ship/crew/dorm) -"lf" = ( -/obj/structure/closet/secure_closet{ - icon_state = "hop"; - name = "\proper first officer's locker"; - req_access_txt = "57" - }, -/obj/item/storage/backpack/satchel/leather, -/obj/item/clothing/shoes/laceup, -/obj/item/clothing/suit/armor/vest/hop, -/obj/item/clothing/head/nanotrasen/officer/fedora, -/obj/item/storage/box/ids, -/obj/item/storage/box/PDAs, -/obj/item/assembly/flash/handheld, -/obj/item/clothing/head/beret/command, -/obj/item/door_remote/captain, -/obj/structure/sign/poster/official/ian{ - pixel_y = 32 - }, -/obj/effect/turf_decal/siding/wood, -/obj/item/clothing/under/nanotrasen/officer, -/obj/item/clothing/under/nanotrasen/officer/skirt, -/turf/open/floor/wood, -/area/ship/crew/crewthree) -"lg" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"lh" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"lk" = ( -/obj/structure/table/wood/reinforced, -/obj/item/flashlight/lamp/green{ - pixel_y = 10; - pixel_x = -6 - }, -/obj/item/pen/fountain/captain{ - pixel_x = -10 - }, -/obj/item/paper{ - pixel_x = 10; - pixel_y = -2 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/wood, -/area/ship/crew/crewtwo) -"ls" = ( -/turf/closed/wall/r_wall, -/area/ship/medical) -"lw" = ( -/turf/closed/wall/r_wall, -/area/ship/crew/canteen/kitchen) -"lA" = ( -/obj/structure/closet/crate/bin, -/obj/machinery/light/broken/directional/east, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"lE" = ( -/obj/machinery/suit_storage_unit/industrial/atmos_firesuit, -/obj/structure/sign/warning/hottemp{ - pixel_x = -29 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"lR" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"lU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"lV" = ( -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/fulltile, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"lW" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"lY" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 4 - }, -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/fulltile, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"mc" = ( -/obj/machinery/atmospherics/pipe/manifold/yellow/visible, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"mf" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/closed/wall, -/area/ship/hallway/central) -"mg" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 6 - }, -/turf/open/floor/engine/airless, -/area/ship/external) -"mi" = ( -/obj/structure/window/reinforced/tinted, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/effect/turf_decal/steeldecal/steel_decals_central7{ - dir = 1 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/toilet) -"mw" = ( -/obj/machinery/door/window/southright, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/toilet) -"mF" = ( -/obj/machinery/power/shuttle/engine/fire{ - dir = 4 - }, -/turf/open/floor/plating/airless, -/area/ship/external) -"mI" = ( -/obj/structure/bed, -/obj/item/bedsheet/random, -/obj/structure/curtain/cloth/grey, -/obj/structure/sign/poster/official/random{ - pixel_x = -30 - }, -/turf/open/floor/carpet/blue, -/area/ship/crew/dorm) -"mL" = ( -/obj/structure/table, -/obj/item/storage/toolbox/electrical{ - pixel_y = 8 - }, -/obj/item/storage/toolbox/mechanical, -/obj/structure/sign/warning/nosmoking/burnt{ - pixel_y = -30 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"mM" = ( -/turf/open/floor/wood, -/area/ship/crew/office) -"mN" = ( -/obj/structure/catwalk/over, -/obj/machinery/light/small/directional/west, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating/rust, -/area/ship/crew/toilet) -"mQ" = ( -/obj/machinery/firealarm/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"mS" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{ - dir = 8 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"mT" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = 4; - pixel_y = 5 - }, -/obj/item/pen{ - pixel_x = 4; - pixel_y = 5 - }, -/obj/item/pen/fourcolor{ - pixel_x = 7; - pixel_y = 5 - }, -/obj/item/pen/fountain{ - pixel_x = 1; - pixel_y = 5 - }, -/obj/item/melee/knife/letter_opener{ - desc = "A military combat utility survival knife, imported from Earth. An expensive paperweight indeed."; - pixel_x = 4; - pixel_y = 5 - }, -/obj/item/stamp/centcom{ - pixel_x = -10; - pixel_y = 13 - }, -/obj/item/stamp/law{ - pixel_x = -10; - pixel_y = 7 - }, -/obj/machinery/newscaster/directional/west, -/turf/open/floor/wood, -/area/ship/crew/office) -"mU" = ( -/obj/structure/urinal{ - pixel_y = 28 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/machinery/light/small/directional/east, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24; - pixel_y = -11 - }, -/obj/effect/decal/cleanable/chem_pile, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/toilet) -"mX" = ( -/obj/machinery/door/poddoor/incinerator_atmos_aux{ - dir = 4 - }, -/obj/structure/sign/warning{ - pixel_y = 28 - }, -/turf/open/floor/engine/airless, -/area/ship/engineering/engine) -"nd" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light_switch{ - pixel_x = -5; - pixel_y = 24 - }, -/obj/structure/railing{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"ne" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"ng" = ( -/obj/structure/table/reinforced, -/obj/item/radio/intercom/wideband/table{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/layer_manifold{ - dir = 4 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"nj" = ( -/obj/machinery/atmospherics/pipe/layer_manifold{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"np" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 10 - }, -/turf/open/floor/engine/airless, -/area/ship/external) -"nq" = ( -/turf/closed/wall/r_wall, -/area/ship/crew/office) -"nu" = ( -/obj/machinery/computer/atmos_control/incinerator{ - dir = 4; - sensors = list("nemo_incinerator_sensor"="Incinerator Chamber") - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"nv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/railing{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"nB" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/structure/bed/roller, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo/office) -"nF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ - dir = 4 - }, -/turf/open/floor/engine/airless, -/area/ship/engineering/engine) -"nX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"og" = ( -/obj/machinery/door/airlock/engineering{ - dir = 4; - name = "Engineering" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/engineering/atmospherics) -"ok" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/turf/open/floor/wood, -/area/ship/crew/crewtwo) -"om" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"oq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"oD" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/blue/mono, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"oE" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"oN" = ( -/obj/structure/bed/dogbed/ian, -/mob/living/simple_animal/pet/dog/corgi/Lisa, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -24; - pixel_y = 8 - }, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/carpet/blue, -/area/ship/crew/crewthree) -"oT" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"oU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ship/crew/office) -"pf" = ( -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/portable_atmospherics/scrubber, -/obj/machinery/light/directional/east, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo/office) -"ph" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "bridgelockdown"; - name = "Bridge Lockdown"; - pixel_x = 8; - pixel_y = 25 - }, -/obj/machinery/button/door{ - id = "coolingshutdown"; - name = "Shutdown Cooling"; - pixel_x = -5; - pixel_y = 25 - }, -/obj/machinery/button/door{ - pixel_y = 25; - pixel_x = 21; - id = "windowlockdown"; - name = "Window Lockdown" - }, -/obj/item/cigbutt/cigarbutt, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"pn" = ( -/obj/structure/sign/nanotrasen{ - pixel_y = 30 - }, -/obj/item/kirbyplants/random, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"pq" = ( -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"pr" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"ps" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/crew/crewthree) -"pt" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/westleft, -/obj/machinery/door/window/eastright, -/obj/item/paper_bin, -/obj/item/pen, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"pz" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"pB" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/toxins, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"pD" = ( -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"pI" = ( -/obj/structure/table, -/obj/item/trash/candle{ - pixel_y = 12 - }, -/obj/machinery/light/directional/south, -/obj/item/trash/plate, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"pM" = ( -/obj/machinery/door/airlock/engineering{ - dir = 4; - name = "Engineering" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/brown/visible/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/engineering/atmospherics) -"pT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/oxygen_output, -/turf/open/floor/engine/o2, -/area/ship/engineering/atmospherics) -"pZ" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/fulltile, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"qa" = ( -/turf/closed/wall/r_wall, -/area/ship/crew/crewtwo) -"qb" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 5 - }, -/turf/open/floor/engine/airless, -/area/ship/external) -"qg" = ( -/obj/structure/toilet{ - pixel_y = 10 - }, -/obj/machinery/airalarm/directional/west, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/toilet) -"qp" = ( -/obj/effect/turf_decal/techfloor/corner{ - dir = 8 - }, -/obj/effect/decal/cleanable/vomit/old, -/obj/effect/turf_decal/techfloor/corner{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/wood, -/area/ship/crew/cryo) -"qq" = ( -/obj/structure/table, -/obj/item/newspaper, -/turf/open/floor/wood, -/area/ship/hallway/central) -"qr" = ( -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"qy" = ( -/obj/machinery/light/directional/west, -/obj/machinery/mineral/ore_redemption, -/turf/open/floor/plasteel, -/area/ship/cargo) -"qF" = ( -/obj/machinery/power/shuttle/engine/fire{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/external) -"qK" = ( -/obj/machinery/atmospherics/pipe/layer_manifold, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"qR" = ( -/obj/machinery/door/airlock/mining{ - name = "Cargo Office" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"qS" = ( -/obj/structure/closet/secure_closet/wall/directional/west{ - name = "The Captain's Personal Medicine Cabinet And Soap Holder"; - req_access_txt = "20" - }, -/obj/item/soap/nanotrasen, -/obj/item/razor, -/obj/item/storage/pill_bottle/psicodine, -/obj/item/storage/pill_bottle/charcoal/less, -/obj/item/lipstick/random, -/obj/item/stack/medical/bruise_pack{ - amount = 3 - }, -/obj/item/stack/medical/ointment{ - amount = 5; - desc = "Used to treat...... well, it's topical, and it's clearly been used....." - }, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/crewtwo) -"qY" = ( -/obj/effect/turf_decal/siding/wood/corner, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"ra" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Air to Distro"; - target_pressure = 1000; - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/effect/turf_decal/techfloor, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"rc" = ( -/obj/machinery/firealarm/directional/south, -/obj/machinery/vending/cigarette, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"re" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"rq" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/carpet/blue, -/area/ship/crew/dorm) -"rw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/turf/open/floor/carpet/blue, -/area/ship/crew/crewthree) -"rx" = ( -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 10 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/machinery/light_switch{ - pixel_x = 13; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"rz" = ( -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/structure/sign/warning/electricshock{ - pixel_x = 24 - }, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"rF" = ( -/obj/effect/turf_decal/corner/opaque/white/mono, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"rK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"rM" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/nitrogen_output, -/turf/open/floor/engine/n2, -/area/ship/engineering/atmospherics) -"rW" = ( -/obj/structure/table, -/obj/item/cigbutt, -/obj/item/cigbutt{ - pixel_x = -10; - pixel_y = 12 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"sc" = ( -/obj/structure/chair/comfy/shuttle{ - dir = 4; - name = "Operations" - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"sd" = ( -/obj/effect/turf_decal/siding/wood/corner, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/wood, -/area/ship/hallway/central) -"sh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/obj/effect/decal/cleanable/ash, -/turf/open/floor/plasteel, -/area/ship/cargo) -"si" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"sk" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/air_input{ - dir = 1 - }, -/turf/open/floor/engine/air, -/area/ship/engineering/atmospherics) -"sn" = ( -/obj/structure/curtain, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/toilet) -"sz" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{ - dir = 6 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"sA" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"sC" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/engineering/atmospherics) -"sD" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"sJ" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"sK" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/machinery/power/ship_gravity, -/obj/structure/cable{ - icon_state = "0-1" - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"sU" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"sY" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor{ - id = "windowlockdown" - }, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/firedoor/window, -/turf/open/floor/plating, -/area/ship/crew/office) -"ta" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"tf" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/ship/engineering/atmospherics) -"tk" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - target_temperature = 73 - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"tm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"tp" = ( -/obj/machinery/atmospherics/components/binary/circulator/cold{ - dir = 1 - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"tr" = ( -/obj/machinery/door/window/westright, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/turf_decal/corner/opaque/blue/mono, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"ts" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"tx" = ( -/turf/closed/wall/r_wall, -/area/ship/cargo) -"tz" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/effect/turf_decal/industrial/loading{ - dir = 1 - }, -/obj/structure/ore_box, -/obj/structure/sign/warning/fire{ - pixel_x = -23 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"tB" = ( -/turf/closed/wall, -/area/ship/crew/office) -"tF" = ( -/obj/machinery/atmospherics/components/binary/pump/layer4{ - dir = 1; - name = "Emergency Recycling Override" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"tI" = ( -/obj/structure/table, -/obj/machinery/light/dim/directional/north, -/obj/item/reagent_containers/food/drinks/mug/tea, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"tR" = ( -/obj/machinery/door/airlock/external, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plating, -/area/ship/hallway/central) -"tX" = ( -/obj/machinery/door/airlock{ - name = "Kitchen" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/white/mono, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"tZ" = ( -/obj/effect/turf_decal/borderfloorwhite/full, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"ub" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"ug" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"uh" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/chair/comfy/grey/directional/north, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"ul" = ( -/turf/closed/wall/r_wall, -/area/ship/engineering/engine) -"um" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"uq" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"us" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/turf/open/floor/wood, -/area/ship/crew/crewthree) -"ut" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/decal/cleanable/dirt/dust, -/turf/open/floor/plating, -/area/ship/crew/toilet) -"uv" = ( -/obj/structure/fluff/hedge, -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ship/crew/office) -"uw" = ( -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/structure/table/reinforced, -/obj/item/melee/knife/kitchen, -/obj/item/cutting_board, -/obj/effect/turf_decal/corner/opaque/green/mono, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"uD" = ( -/obj/machinery/airalarm/directional/east, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/effect/turf_decal/corner/opaque/white/mono, -/obj/structure/table/reinforced, -/obj/item/kitchen/rollingpin, -/obj/item/reagent_containers/condiment/peppermill{ - pixel_x = -2; - pixel_y = 11 - }, -/obj/item/reagent_containers/condiment/saltshaker{ - pixel_y = 6; - pixel_x = -8 - }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"uG" = ( -/obj/machinery/power/shieldwallgen/atmos/roundstart{ - dir = 4; - id = "skippyshieldywalle"; - locked = 1 - }, -/obj/structure/cable, -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor{ - id = "amogusdoors"; - name = "Cargo Bay Blast Door" - }, -/turf/open/floor/plating, -/area/ship/cargo) -"uL" = ( -/obj/structure/table/wood, -/obj/machinery/newscaster/directional/north, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"uM" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"uQ" = ( -/obj/machinery/door/poddoor/shutters{ - id = "hallwindows"; - name = "Cargo Shutters"; - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/cargo/office) -"uS" = ( -/obj/structure/table/wood, -/obj/machinery/light/small/directional/west, -/obj/item/reagent_containers/food/snacks/grown/harebell, -/turf/open/floor/carpet/blue, -/area/ship/crew/dorm) -"uT" = ( -/obj/machinery/light/directional/west, -/obj/structure/reagent_dispensers/watertank, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"uX" = ( -/obj/item/reagent_containers/food/snacks/chips{ - pixel_x = 10; - pixel_y = 15 - }, -/obj/machinery/light/directional/south, -/obj/structure/chair/plastic{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"uY" = ( -/obj/structure/frame/computer{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/ntblue/half{ - dir = 4 - }, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"va" = ( -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/fulltile, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"vc" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ship/crew/cryo) -"ve" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Infirmary" - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"vf" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"vo" = ( -/obj/structure/table/reinforced, -/obj/item/paper_bin, -/obj/item/pen, -/obj/item/megaphone/command, -/obj/machinery/atmospherics/pipe/layer_manifold{ - dir = 4 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"vp" = ( -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/turf/open/floor/carpet/royalblue, -/area/ship/crew/crewtwo) -"vB" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 6 - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"vI" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/ntblue, -/obj/item/trash/plate, -/obj/effect/turf_decal/corner/opaque/green/half{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"vO" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/obj/structure/sign/poster/official/random{ - pixel_x = -30 - }, -/obj/structure/table, -/obj/item/trash/cheesie, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"vP" = ( -/obj/item/kirbyplants/random, -/obj/effect/turf_decal/borderfloorwhite{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"vR" = ( -/obj/structure/chair/office, -/turf/open/floor/wood, -/area/ship/crew/office) -"vW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"vY" = ( -/obj/effect/turf_decal/corner/opaque/white/mono, -/obj/structure/table, -/obj/machinery/chem_dispenser/drinks, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"vZ" = ( -/obj/structure/bed, -/obj/item/bedsheet/captain, -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/turf/open/floor/carpet/royalblue, -/area/ship/crew/crewtwo) -"wb" = ( -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"wd" = ( -/obj/structure/table, -/obj/item/stack/medical/gauze, -/obj/item/storage/firstaid/regular, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"we" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/oil/slippery, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"wg" = ( -/obj/machinery/door/airlock/external, -/obj/docking_port/mobile{ - dir = 2; - launch_status = 0; - port_direction = 8; - preferred_direction = 4 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"wp" = ( -/obj/structure/table/wood/reinforced, -/obj/item/hand_tele{ - pixel_x = 4; - pixel_y = 8 - }, -/obj/item/coin/hellstone{ - pixel_x = -12; - pixel_y = -3 - }, -/obj/item/stamp/captain{ - pixel_y = 13; - pixel_x = -8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/turf/open/floor/wood, -/area/ship/crew/crewtwo) -"wt" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "thruster fuel pump" - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"ww" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"wA" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/closet/crate/engineering, -/obj/item/stack/sheet/metal/twenty, -/obj/item/stack/sheet/glass/twenty, -/obj/item/tank/internals/oxygen, -/obj/item/tank/internals/oxygen, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo/office) -"wB" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/engineering/atmospherics) -"wC" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxin_input{ - dir = 1 - }, -/turf/open/floor/engine/airless, -/area/ship/engineering/atmospherics) -"wG" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"wH" = ( -/turf/closed/wall/r_wall, -/area/ship/crew/toilet) -"wO" = ( -/obj/structure/table/wood, -/obj/item/instrument/piano_synth, -/obj/machinery/light/small/directional/north, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"wT" = ( -/obj/effect/turf_decal/corner/opaque/white/mono, -/obj/structure/closet/secure_closet/freezer{ - anchored = 1 - }, -/obj/item/reagent_containers/food/snacks/meat/slab, -/obj/item/reagent_containers/food/snacks/meat/slab, -/obj/item/reagent_containers/food/snacks/meat/slab, -/obj/item/storage/box/ingredients/vegetarian, -/obj/item/storage/fancy/egg_box, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"wX" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/green/mono, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"wZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"xb" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"xf" = ( -/turf/closed/wall, -/area/ship/crew/canteen/kitchen) -"xi" = ( -/obj/structure/bed, -/obj/item/bedsheet/head_of_personnel, -/obj/machinery/light/small/directional/east, -/turf/open/floor/carpet/blue, -/area/ship/crew/crewthree) -"xo" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"xs" = ( -/obj/structure/chair/sofa/brown/directional/south, -/obj/machinery/light/directional/north, -/turf/open/floor/carpet/red, -/area/ship/hallway/central) -"xu" = ( -/obj/structure/grille, -/obj/machinery/door/poddoor{ - id = "windowlockdown" - }, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/firedoor/window, -/turf/open/floor/plating, -/area/ship/crew/toilet) -"xA" = ( -/obj/machinery/computer/secure_data{ - dir = 4 - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/carpet/nanoweave/red, -/area/ship/crew/crewthree) -"xE" = ( -/obj/machinery/photocopier, -/obj/machinery/light_switch{ - pixel_x = 11; - pixel_y = 23 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/crew/office) -"xK" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/turf/open/floor/wood, -/area/ship/crew/cryo) -"xO" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/layer_manifold, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"xW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/chair/comfy/grey/directional/east, -/turf/open/floor/wood, -/area/ship/crew/cryo) -"yf" = ( -/obj/effect/turf_decal/corner/opaque/white/mono, -/obj/structure/table/reinforced, -/obj/machinery/microwave{ - pixel_x = -1; - pixel_y = 8 - }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"yh" = ( -/obj/item/radio/intercom/directional/east, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"yj" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/o2{ - dir = 8 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"yo" = ( -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/external) -"ys" = ( -/turf/closed/wall, -/area/ship/cargo/office) -"yB" = ( -/obj/structure/closet/cabinet, -/obj/item/clothing/suit/hooded/wintercoat, -/obj/item/clothing/under/suit/dresssuit/skirt, -/obj/item/clothing/under/color/grey, -/obj/item/clothing/under/suit/charcoal, -/obj/item/clothing/shoes/laceup, -/obj/item/clothing/shoes/sneakers/black, -/obj/item/clothing/shoes/workboots/mining, -/obj/item/clothing/suit/hooded/hoodie/black, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"yF" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"yG" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"yM" = ( -/obj/structure/table/wood/reinforced, -/obj/item/storage/fancy/cigarettes/cigars{ - pixel_y = 12 - }, -/obj/item/lighter{ - pixel_x = -6; - pixel_y = -3 - }, -/obj/item/coin/titanium{ - pixel_x = 7; - pixel_y = -3 - }, -/obj/machinery/airalarm/directional/north, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4, -/obj/effect/turf_decal/siding/wood/corner, -/turf/open/floor/wood, -/area/ship/crew/crewthree) -"yU" = ( -/obj/machinery/door/airlock{ - name = "Crew Quarters" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/dorm) -"ze" = ( -/obj/structure/sink{ - pixel_y = 22 - }, -/obj/structure/mirror{ - pixel_y = 32 - }, -/obj/structure/toilet{ - dir = 8; - name = "The Throne"; - desc = "Man, its good to be king." - }, -/obj/machinery/light/small/directional/east, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/crewtwo) -"zi" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -24; - pixel_y = -14 - }, -/obj/effect/turf_decal/steeldecal/steel_decals_central6{ - dir = 4 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"zu" = ( -/obj/effect/turf_decal/industrial/loading{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"zy" = ( -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "thruster fuel pump" - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"zC" = ( -/obj/machinery/suit_storage_unit/cmo, -/obj/effect/turf_decal/borderfloorwhite/full, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"zG" = ( -/obj/structure/bookcase/manuals/engineering, -/turf/open/floor/wood, -/area/ship/hallway/central) -"zJ" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = 12 - }, -/obj/structure/mirror{ - pixel_x = 25 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/toilet) -"zK" = ( -/obj/machinery/light/directional/east, -/obj/machinery/atmospherics/pipe/simple/brown/visible/layer4, -/obj/machinery/atmospherics/components/unary/portables_connector, -/obj/effect/turf_decal/industrial/outline/orange, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"zM" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/crew/office) -"zO" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"zP" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 9 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/machinery/door/poddoor/preopen{ - dir = 4; - id = "coolingshutdown" - }, -/turf/open/floor/engine/airless, -/area/ship/external) -"zS" = ( -/obj/structure/table/optable, -/obj/effect/turf_decal/corner/opaque/blue/mono, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Aa" = ( -/obj/structure/chair/comfy/orange/directional/east, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/wood, -/area/ship/crew/crewthree) -"Ao" = ( -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"As" = ( -/obj/structure/closet/cabinet, -/obj/item/clothing/suit/toggle/lawyer/burgundy, -/obj/item/clothing/suit/toggle/lawyer/charcoal, -/obj/item/clothing/suit/toggle/lawyer/navy, -/obj/item/clothing/under/rank/security/detective, -/obj/item/clothing/under/rank/security/detective/skirt, -/obj/item/clothing/under/suit/black, -/obj/item/clothing/under/suit/black/skirt, -/obj/item/clothing/under/suit/black_really, -/obj/item/clothing/under/suit/black_really/skirt, -/obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/neck/tie, -/obj/item/clothing/glasses/regular, -/obj/machinery/light/small/directional/west, -/turf/open/floor/wood, -/area/ship/crew/office) -"At" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/fulltile, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"Au" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"Az" = ( -/obj/structure/railing/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"AB" = ( -/obj/effect/decal/cleanable/wrapping, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"AE" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"AG" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "engine fuel pump" - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"AP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/computer/helm/viewscreen/directional/south, -/obj/effect/turf_decal/number/right_eight, -/obj/effect/turf_decal/number/left_nine, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"AT" = ( -/turf/closed/wall, -/area/ship/medical) -"Bc" = ( -/obj/machinery/cryopod{ - dir = 4 - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/crew/cryo) -"Bd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Bg" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"Bh" = ( -/obj/structure/table, -/obj/item/flashlight/lamp/green{ - pixel_x = -6; - pixel_y = 13 - }, -/obj/structure/sign/poster/official/nanotrasen_logo{ - pixel_x = -30 - }, -/obj/item/spacecash/bundle/c50, -/turf/open/floor/wood, -/area/ship/crew/office) -"Bq" = ( -/obj/machinery/airalarm/directional/north, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Br" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/white/mono, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"Bw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/obj/effect/decal/cleanable/food/tomato_smudge, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"BE" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"BH" = ( -/obj/structure/table/wood, -/obj/machinery/light/small/directional/east, -/obj/machinery/light_switch{ - pixel_x = -5; - pixel_y = 24 - }, -/obj/item/paicard, -/turf/open/floor/carpet/blue, -/area/ship/crew/dorm) -"BI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/structure/sign/poster/official/random{ - pixel_y = -32 - }, -/obj/effect/turf_decal/ntspaceworks_small, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"BJ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/plasteel/stairs, -/area/ship/bridge) -"BK" = ( -/obj/structure/catwalk/over, -/obj/effect/decal/cleanable/glass, -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/robot_debris/gib, -/turf/open/floor/plating, -/area/ship/crew/toilet) -"BS" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/plasteel/dark, -/area/ship/crew/cryo) -"BW" = ( -/obj/machinery/airalarm/directional/west, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"Ca" = ( -/obj/machinery/suit_storage_unit/mining/eva, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Cl" = ( -/obj/machinery/door/airlock{ - dir = 4; - name = "Bathroom" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/toilet) -"Co" = ( -/obj/structure/spirit_board, -/obj/structure/catwalk/over, -/obj/item/toy/plush/moth/firewatch{ - pixel_y = 14; - name = "soot-covered moth plushie" - }, -/obj/structure/sign/poster/contraband/stechkin{ - pixel_x = 32 - }, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plating/rust, -/area/ship/crew/toilet) -"Cr" = ( -/obj/structure/chair/office/light{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/blue/mono, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Cs" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"Cu" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 6 - }, -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/fulltile, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"Cy" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/crew/office) -"Cz" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"CA" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/light/directional/south, -/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/engineering/atmospherics) -"CB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"CE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 8 - }, -/turf/open/floor/engine, -/area/ship/engineering/atmospherics) -"CH" = ( -/obj/structure/chair/sofa/brown/right/directional/east, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"CM" = ( -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/cryo) -"CR" = ( -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"CV" = ( -/obj/effect/turf_decal/ntspaceworks_small/right, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"Da" = ( -/obj/effect/turf_decal/techfloor, -/obj/machinery/computer/cryopod/directional/west, -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/cryo) -"Dc" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"Dd" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Nitrogen to Air"; - dir = 8; - target_pressure = 1000 - }, -/obj/machinery/atmospherics/pipe/simple/green/visible, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Dp" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/closet/emcloset/wall/directional/south, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Dy" = ( -/obj/structure/closet/cardboard{ - name = "pranking materials" - }, -/obj/item/toy/katana, -/obj/item/bikehorn, -/obj/item/grown/bananapeel, -/obj/item/gun/ballistic/automatic/toy/pistol, -/obj/item/restraints/legcuffs/beartrap, -/obj/item/poster/random_contraband, -/obj/item/poster/random_contraband, -/obj/item/poster/random_contraband, -/turf/open/floor/plating/rust, -/area/ship/crew/toilet) -"Dz" = ( -/obj/machinery/modular_computer/console/preset/command{ - dir = 8 - }, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24; - pixel_y = -5 - }, -/turf/open/floor/carpet/nanoweave/red, -/area/ship/crew/crewthree) -"DF" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxin_output{ - dir = 1 - }, -/turf/open/floor/engine/hydrogen, -/area/ship/engineering/atmospherics) -"DL" = ( -/obj/effect/decal/cleanable/food/flour, -/obj/effect/turf_decal/corner/opaque/green/mono, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"DN" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"DV" = ( -/obj/structure/chair/sofa/brown/corner/directional/south, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/obj/machinery/computer/helm/viewscreen/directional/east, -/turf/open/floor/carpet/red, -/area/ship/hallway/central) -"DZ" = ( -/obj/effect/turf_decal/corner/opaque/white/mono, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/effect/decal/cleanable/food/flour, -/obj/structure/sink/kitchen{ - dir = 4; - pixel_x = -11 - }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"Eb" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"Ek" = ( -/obj/machinery/advanced_airlock_controller{ - pixel_x = 25 - }, -/turf/open/floor/plating, -/area/ship/hallway/central) -"Eu" = ( -/obj/docking_port/stationary{ - dwidth = 15; - width = 30; - height = 15; - dir = 2 - }, -/turf/template_noop, -/area/template_noop) -"Ev" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = 6 - }, -/obj/item/pen{ - pixel_x = 5; - pixel_y = 2 - }, -/obj/item/reagent_containers/food/snacks/fortunecookie{ - pixel_y = 7; - pixel_x = -7 - }, -/obj/machinery/newscaster/directional/east, -/obj/machinery/firealarm/directional/south, -/turf/open/floor/wood, -/area/ship/crew/cryo) -"Ew" = ( -/obj/machinery/atmospherics/pipe/layer_manifold, -/obj/structure/extinguisher_cabinet/directional/east, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"Ex" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/item/kirbyplants/random, -/obj/machinery/light/dim/directional/west, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"EE" = ( -/obj/structure/window/reinforced/spawner/west, -/obj/machinery/door/poddoor{ - dir = 4; - id = "enginelockdown" - }, -/obj/machinery/door/window/eastright{ - name = "Engine Access" - }, -/obj/machinery/atmospherics/components/unary/shuttle/fire_heater{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"EF" = ( -/obj/machinery/modular_computer/console/preset/command{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/bar/half{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"EG" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/wood, -/area/ship/hallway/central) -"EJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/effect/turf_decal/techfloor{ - dir = 6 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"EP" = ( -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"ES" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/light/broken/directional/east, -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Fc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Fj" = ( -/obj/machinery/door/airlock/command{ - name = "Bridge"; - req_access_txt = "19" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"Fn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/turf/open/floor/carpet/blue, -/area/ship/crew/dorm) -"Fq" = ( -/obj/machinery/airalarm/directional/west, -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/effect/decal/cleanable/generic, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Fu" = ( -/turf/closed/wall, -/area/ship/cargo) -"Fv" = ( -/obj/machinery/fax/nanotrasen, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"Fx" = ( -/obj/machinery/light/dim/directional/south, -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/decal/cleanable/food/egg_smudge, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"FB" = ( -/obj/structure/flora/bigplant, -/turf/open/floor/wood, -/area/ship/hallway/central) -"FC" = ( -/obj/structure/rack, -/obj/item/pickaxe, -/obj/item/pickaxe, -/obj/item/shovel, -/obj/item/kinetic_crusher, -/turf/open/floor/plasteel, -/area/ship/cargo) -"FO" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plasteel, -/area/ship/cargo) -"FW" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor{ - dir = 6 - }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"Gb" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"Gc" = ( -/obj/structure/bed, -/obj/item/bedsheet/medical, -/obj/machinery/iv_drip, -/obj/effect/turf_decal/borderfloorwhite/full, -/obj/item/radio/intercom/directional/north, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Gh" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Activate Cooling" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 1 - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"Gi" = ( -/turf/open/floor/engine, -/area/ship/engineering/engine) -"Gm" = ( -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/crew/office) -"Gp" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Gq" = ( -/obj/structure/table, -/obj/item/folder/blue, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 4 - }, -/obj/item/clipboard, -/turf/open/floor/wood, -/area/ship/crew/office) -"Gs" = ( -/obj/machinery/door/window/westleft, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/structure/sign/poster/official/cleanliness{ - pixel_y = -33 - }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"GL" = ( -/turf/open/floor/wood, -/area/ship/crew/crewtwo) -"GQ" = ( -/obj/structure/fluff/hedge, -/turf/open/floor/wood, -/area/ship/crew/office) -"GW" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/hallway/central) -"Hb" = ( -/obj/machinery/vending/cola/random, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Hd" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/ntblue, -/obj/effect/turf_decal/corner/opaque/neutral/half{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"Hm" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/components/binary/pump/layer4{ - name = "Oxygen to Mix" - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Hq" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 9 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Hu" = ( -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4{ - dir = 5 - }, -/obj/effect/turf_decal/atmos/mix, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"HA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"HE" = ( -/obj/structure/catwalk/over, -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/ship/crew/toilet) -"HL" = ( -/obj/machinery/igniter/incinerator_atmos, -/obj/machinery/air_sensor/atmos/incinerator_tank{ - id_tag = "nemo_incinerator_sensor" - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/turf/open/floor/engine/airless, -/area/ship/engineering/engine) -"HO" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/table/glass, -/obj/item/storage/backpack/duffelbag/med/surgery{ - pixel_y = 11 - }, -/obj/machinery/light_switch{ - pixel_x = -5; - pixel_y = 24 - }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"HR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/ship/engineering/atmospherics) -"HW" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"HZ" = ( -/obj/machinery/vending/coffee, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Ir" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/machinery/airalarm/directional/south, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"IA" = ( -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"IB" = ( -/obj/structure/bookcase/random/fiction, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"IV" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"Jj" = ( -/obj/structure/closet/crate/bin, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Jk" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4{ - dir = 6 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Jm" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"Jn" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Infirmary" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"JA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/computer/cargo{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"JE" = ( -/obj/effect/turf_decal/industrial/warning{ - dir = 1 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo) -"JJ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/wood, -/area/ship/hallway/central) -"JM" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"JQ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/plasteel, -/area/ship/cargo) -"JS" = ( -/obj/machinery/cryopod{ - dir = 4 - }, -/obj/structure/sign/poster/official/nanotrasen_logo{ - pixel_x = -30 - }, -/turf/open/floor/plasteel/telecomms_floor, -/area/ship/crew/cryo) -"JT" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 6 - }, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"JX" = ( -/obj/effect/turf_decal/radiation/white, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"JY" = ( -/obj/structure/closet/emcloset/anchored, -/obj/machinery/light/small/directional/north, -/turf/open/floor/plating, -/area/ship/hallway/central) -"Ka" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/airalarm/directional/east, -/turf/open/floor/wood, -/area/ship/hallway/central) -"Kb" = ( -/obj/machinery/firealarm/directional/south, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Kd" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible{ - dir = 10 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Kf" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"Kh" = ( -/obj/machinery/button/door{ - dir = 1; - pixel_y = -24; - id = "privacyshutters" - }, -/obj/item/kirbyplants/random, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/crew/office) -"Ki" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"Kn" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 8 - }, -/turf/open/floor/engine/airless, -/area/ship/external) -"Kv" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Kz" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/effect/turf_decal/techfloor/corner{ - dir = 4 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"KH" = ( -/obj/structure/punching_bag, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = 6; - pixel_y = -24 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"KI" = ( -/obj/machinery/door/airlock/maintenance_hatch{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/structure/barricade/wooden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/plating, -/area/ship/crew/toilet) -"KL" = ( -/obj/effect/turf_decal/corner/opaque/green/mono, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"KU" = ( -/obj/machinery/computer/arcade/orion_trail{ - dir = 8; - pixel_x = 5 - }, -/obj/item/reagent_containers/food/drinks/waterbottle{ - pixel_x = -15; - pixel_y = 10 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"La" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/effect/turf_decal/siding/wood, -/obj/structure/table/wood, -/obj/structure/bedsheetbin, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"Lm" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/oxygen_input, -/turf/open/floor/engine/o2, -/area/ship/engineering/atmospherics) -"Lq" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 1 - }, -/obj/effect/turf_decal/industrial/warning{ - dir = 4 - }, -/obj/machinery/door/poddoor/preopen{ - dir = 4; - id = "coolingshutdown" - }, -/turf/open/floor/engine/airless, -/area/ship/external) -"Ls" = ( -/obj/machinery/door/airlock/mining/glass, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Lv" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/light/directional/north, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"Lz" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"LA" = ( -/obj/structure/frame/computer{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"LD" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/airalarm/directional/west, -/turf/open/floor/wood, -/area/ship/crew/office) -"LX" = ( -/obj/structure/chair/office{ - dir = 8 - }, -/obj/machinery/button/door{ - id = "hallwindows"; - name = "Shutters Control"; - pixel_y = 24 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"Mi" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Mk" = ( -/obj/machinery/door/airlock{ - dir = 4; - name = "Dormitory" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/wood, -/area/ship/crew/cryo) -"Mn" = ( -/obj/structure/closet/cabinet, -/obj/item/clothing/under/color/grey, -/obj/item/clothing/under/color/grey, -/obj/item/clothing/under/color/grey, -/obj/item/clothing/shoes/sneakers/black, -/obj/item/clothing/shoes/sneakers/black, -/obj/item/clothing/shoes/sneakers/black, -/obj/item/storage/backpack, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/item/radio, -/obj/item/storage/backpack/satchel, -/obj/item/radio, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{ - dir = 1 - }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/wood, -/area/ship/crew/cryo) -"Mq" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/brown/visible/layer4{ - dir = 6 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Mr" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"ME" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 1 - }, -/turf/open/floor/engine/airless, -/area/ship/external) -"MG" = ( -/obj/effect/turf_decal/borderfloorwhite/full, -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = 6; - pixel_y = 2 - }, -/obj/item/pen{ - pixel_y = 4; - pixel_x = 5 - }, -/obj/item/folder/blue{ - pixel_y = 11; - pixel_x = -8 - }, -/obj/item/stamp/cmo{ - pixel_x = -7 - }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"MH" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/turf_decal/steeldecal/steel_decals_central7{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"MI" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/northright, -/obj/machinery/door/window/southright{ - req_one_access_txt = "57" - }, -/turf/open/floor/plasteel/dark, -/area/ship/crew/crewthree) -"MJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/techfloor/corner, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"MP" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/visible{ - dir = 10 - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"MS" = ( -/obj/machinery/atmospherics/components/binary/circulator, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"MT" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 6 - }, -/obj/effect/turf_decal/techfloor, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"MV" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - name = "Mix Extract to TEG" - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"MZ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ship/crew/office) -"Nh" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/turf/open/floor/wood, -/area/ship/crew/cryo) -"Ni" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Nm" = ( -/obj/machinery/light/directional/west, -/obj/effect/turf_decal/industrial/warning/corner{ - dir = 8 - }, -/obj/structure/table, -/obj/item/clipboard{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/item/stamp{ - pixel_x = 10 - }, -/obj/item/stamp/denied{ - pixel_x = 2 - }, -/obj/item/flashlight/lamp{ - pixel_x = -8; - pixel_y = 10 - }, -/obj/item/folder{ - pixel_x = -10 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"Np" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/light_switch{ - pixel_x = -14; - pixel_y = 24 - }, -/obj/effect/turf_decal/steeldecal/steel_decals_central6, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Ny" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/newscaster/directional/south, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"NB" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 9 - }, -/turf/open/floor/engine/airless, -/area/ship/external) -"NC" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"NH" = ( -/obj/machinery/atmospherics/pipe/simple/dark/visible{ - dir = 4 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"NK" = ( -/obj/machinery/light_switch{ - pixel_x = -5; - pixel_y = 24 - }, -/obj/effect/turf_decal/radiation/white, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"NL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/wood, -/area/ship/crew/office) -"Oi" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/hallway/central) -"Om" = ( -/obj/machinery/suit_storage_unit/mining/eva, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Oo" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"Op" = ( -/obj/effect/turf_decal/borderfloorwhite{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"OF" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"OG" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/item/storage/fancy/cigarettes/cigpack_robust{ - pixel_y = 9; - pixel_x = -1 - }, -/obj/item/lighter{ - pixel_y = 7; - pixel_x = 4 - }, -/obj/machinery/firealarm/directional/south, -/obj/machinery/light/small/directional/east, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/crew/office) -"OH" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/turf_decal/industrial/hatch/yellow, -/obj/machinery/space_heater, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo/office) -"OJ" = ( -/obj/machinery/power/smes/shuttle/precharged{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/window/reinforced/spawner/west, -/obj/machinery/door/poddoor{ - dir = 4; - id = "enginelockdown" - }, -/obj/machinery/door/window/eastright{ - name = "Engine Access" - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"OQ" = ( -/obj/machinery/door/poddoor{ - id = "amogusdoors"; - name = "Cargo Bay Blast Door" - }, -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/layer_manifold, -/turf/open/floor/plating, -/area/ship/cargo) -"OT" = ( -/obj/effect/turf_decal/corner/opaque/white/mono, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"Pb" = ( -/obj/machinery/power/shuttle/engine/electric{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/plating, -/area/ship/external) -"Pf" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/nitrogen_input, -/turf/open/floor/engine/n2, -/area/ship/engineering/atmospherics) -"Pk" = ( -/obj/effect/turf_decal/borderfloorwhite/full, -/obj/machinery/sleeper, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Pl" = ( -/obj/structure/chair/stool/bar{ - dir = 1; - pixel_y = 10 - }, -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Pq" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Px" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"PI" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"PJ" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/ntblue, -/obj/effect/turf_decal/corner/opaque/neutral/half{ - dir = 1 - }, -/obj/item/reagent_containers/condiment/saltshaker{ - pixel_y = 6; - pixel_x = -8 - }, -/obj/item/reagent_containers/condiment/peppermill{ - pixel_x = -2; - pixel_y = 11 - }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"Qo" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 9 - }, -/obj/structure/sign/poster/official/random{ - pixel_y = -32 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Qp" = ( -/turf/closed/wall/r_wall, -/area/ship/bridge) -"Qs" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4, -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/turf/open/floor/wood, -/area/ship/crew/crewthree) -"QK" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"QM" = ( -/obj/structure/closet/crate/freezer/blood, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"QQ" = ( -/obj/item/cigbutt, -/obj/item/cigbutt{ - pixel_x = -10; - pixel_y = 10 - }, -/turf/open/floor/wood, -/area/ship/crew/office) -"QU" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/obj/machinery/newscaster/directional/west, -/obj/structure/chair, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"QY" = ( -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/obj/structure/closet/crate/bin, -/obj/item/trash/plate, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Ra" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{ - dir = 4 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"Re" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable{ - icon_state = "0-4" - }, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"Ri" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2{ - dir = 8 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"Rv" = ( -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/fulltile, -/obj/machinery/atmospherics/pipe/simple/brown/visible, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"Rw" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"RB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer2{ - dir = 8 - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"RK" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Oxygen to Air and Mix"; - target_pressure = 1000 - }, -/obj/effect/turf_decal/atmos/oxygen, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"RL" = ( -/obj/structure/closet/secure_closet/freezer{ - anchored = 1 - }, -/obj/item/reagent_containers/condiment/enzyme, -/obj/item/reagent_containers/condiment/sugar, -/obj/item/reagent_containers/condiment/rice, -/obj/item/reagent_containers/condiment/flour, -/obj/item/reagent_containers/condiment/milk, -/obj/item/reagent_containers/condiment/soymilk, -/obj/effect/turf_decal/corner/opaque/green/mono, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"RO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/atmos/air_output{ - dir = 8 - }, -/turf/open/floor/engine/air, -/area/ship/engineering/atmospherics) -"RQ" = ( -/obj/machinery/power/generator{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/turf/open/floor/engine, -/area/ship/engineering/engine) -"RR" = ( -/obj/effect/turf_decal/borderfloorwhite{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"Sc" = ( -/obj/structure/chair/office{ - dir = 1; - name = "Requests" - }, -/turf/open/floor/carpet/nanoweave/red, -/area/ship/crew/crewthree) -"Ss" = ( -/obj/machinery/vending/boozeomat, -/obj/effect/turf_decal/corner/opaque/green/mono, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"Sv" = ( -/obj/machinery/vending/cola/shamblers, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"SA" = ( -/obj/machinery/door/airlock/command{ - name = "Requests Office"; - req_one_access_txt = "57"; - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/turf/open/floor/wood, -/area/ship/crew/crewthree) -"SE" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible, -/obj/structure/extinguisher_cabinet/directional/east, -/obj/effect/turf_decal/atmos/air{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"SG" = ( -/obj/effect/decal/cleanable/food/egg_smudge, -/obj/effect/turf_decal/corner/opaque/green/mono, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"SK" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plating, -/area/ship/hallway/central) -"SO" = ( -/turf/open/floor/plasteel/showroomfloor, -/area/ship/crew/crewtwo) -"SY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/crew/office) -"Ta" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/crew/office) -"Tc" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/drinks/beer{ - pixel_y = 10; - pixel_x = 9 - }, -/obj/item/trash/popcorn, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"Tf" = ( -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24; - pixel_y = 5 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden, -/obj/effect/turf_decal/techfloor/corner{ - dir = 4 - }, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high/empty, -/obj/item/stock_parts/cell/high/empty, -/obj/item/stock_parts/cell/high/empty, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Th" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/chair/sofa/brown/left/directional/east, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/light_switch{ - dir = 4; - pixel_x = -24; - pixel_y = 14 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"Tm" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Tz" = ( -/obj/machinery/vending/snack/random, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"TF" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 6 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"TG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 6 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"TH" = ( -/obj/machinery/button/door{ - dir = 4; - pixel_x = -24; - id = "enginelockdown"; - name = "Lockdown Engines" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"TI" = ( -/obj/effect/decal/cleanable/ash, -/turf/open/floor/plasteel, -/area/ship/cargo) -"TJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood/corner, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"TL" = ( -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"TN" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 9 - }, -/obj/effect/turf_decal/atmos/nitrogen, -/obj/structure/sign/warning/gasmask{ - pixel_x = 31 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"TO" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/visible{ - dir = 8 - }, -/obj/structure/grille, -/obj/structure/window/plasma/reinforced/fulltile, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"TS" = ( -/obj/machinery/atmospherics/components/trinary/mixer/airmix, -/obj/structure/catwalk/over/plated_catwalk/dark, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"Ug" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/techfloor{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor/corner, -/turf/open/floor/plasteel/dark, -/area/ship/crew/cryo) -"Uh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"Uk" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"Uo" = ( -/obj/machinery/newscaster/directional/north, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Ut" = ( -/obj/machinery/door/poddoor/shutters/preopen{ - name = "Privacy Shutters"; - id = "privacyshutters" - }, -/obj/structure/window/fulltile, -/obj/structure/grille, -/turf/open/floor/plasteel/dark, -/area/ship/crew/office) -"Uu" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Uv" = ( -/obj/structure/table, -/turf/open/floor/wood, -/area/ship/crew/office) -"UA" = ( -/obj/structure/bed, -/obj/structure/curtain/cloth/grey, -/obj/item/bedsheet/random, -/turf/open/floor/carpet/blue, -/area/ship/crew/dorm) -"UD" = ( -/obj/structure/closet/firecloset, -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"UI" = ( -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"UJ" = ( -/obj/machinery/power/smes/engineering, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/sign/warning/enginesafety{ - pixel_y = 32 - }, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"UM" = ( -/obj/structure/closet/secure_closet{ - icon_state = "cap"; - name = "\proper captain's locker"; - req_access_txt = "20" - }, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24; - pixel_y = -5 - }, -/obj/item/storage/backpack/satchel/cap, -/obj/item/storage/backpack/captain, -/obj/item/storage/belt/sabre, -/obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/suit/armor/vest/capcarapace, -/obj/item/clothing/shoes/laceup, -/obj/item/door_remote/captain, -/obj/item/clothing/gloves/color/captain/nt, -/obj/item/clothing/suit/armor/nanotrasen/captain, -/obj/item/clothing/suit/armor/nanotrasen/captain/parade, -/obj/item/clothing/gloves/color/captain/nt, -/obj/item/clothing/under/nanotrasen/captain/skirt, -/obj/item/clothing/under/nanotrasen/captain, -/obj/item/clothing/head/nanotrasen/captain/peaked, -/obj/item/clothing/head/nanotrasen/captain, -/turf/open/floor/wood, -/area/ship/crew/crewtwo) -"UN" = ( -/turf/open/floor/wood, -/area/ship/hallway/central) -"UR" = ( -/obj/structure/railing{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/techfloor{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 6 - }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"Vd" = ( -/obj/machinery/door/airlock/engineering{ - dir = 4; - name = "Engineering" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 8 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/engineering/atmospherics) -"Ve" = ( -/obj/structure/railing, -/obj/item/kirbyplants/random, -/obj/machinery/light/dim/directional/west, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"Vj" = ( -/turf/closed/wall, -/area/ship/hallway/central) -"Vp" = ( -/obj/structure/table/reinforced, -/obj/item/reagent_containers/food/drinks/beer, -/obj/effect/turf_decal/corner/opaque/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/ntblue, -/obj/effect/turf_decal/corner/opaque/green/half{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"Vq" = ( -/obj/structure/closet/secure_closet{ - anchored = 1; - can_be_unanchored = 1; - icon_state = "sec"; - name = "equipment locker"; - req_access_txt = "1" - }, -/obj/item/melee/baton/loaded, -/obj/item/restraints/handcuffs, -/obj/item/restraints/handcuffs, -/obj/item/stock_parts/cell/gun, -/obj/item/stock_parts/cell/gun/mini, -/obj/item/stock_parts/cell/gun/mini, -/obj/item/ammo_box/magazine/co9mm, -/obj/item/ammo_box/magazine/co9mm, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/turf/open/floor/wood, -/area/ship/crew/crewthree) -"VP" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"VQ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Wa" = ( -/obj/effect/turf_decal/borderfloorwhite/full, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/ship/medical) -"Wg" = ( -/obj/structure/table, -/obj/item/toy/cards/deck{ - pixel_y = 7 - }, -/turf/open/floor/carpet/red, -/area/ship/hallway/central) -"Wr" = ( -/obj/machinery/vending/clothing{ - pixel_y = 10 - }, -/obj/machinery/light_switch{ - dir = 8; - pixel_x = 24; - pixel_y = -5 - }, -/turf/open/floor/wood, -/area/ship/crew/cryo) -"Ws" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/engine, -/area/ship/engineering/atmospherics) -"Wy" = ( -/obj/structure/closet/emcloset/wall/directional/north, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"Wz" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/obj/structure/extinguisher_cabinet/directional/west, -/turf/open/floor/wood, -/area/ship/hallway/central) -"WC" = ( -/obj/machinery/light/directional/north, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"WE" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 10 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"WO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plasteel, -/area/ship/cargo) -"WP" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"WR" = ( -/obj/effect/turf_decal/corner/opaque/white/mono, -/obj/machinery/vending/dinnerware, -/obj/machinery/light/directional/north, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"WU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/obj/machinery/light/directional/west, -/obj/structure/reagent_dispensers/fueltank, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/obj/machinery/door/firedoor/border_only, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"WX" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/turf/open/floor/wood, -/area/ship/crew/dorm) -"WZ" = ( -/turf/closed/wall, -/area/ship/crew/cryo) -"Xe" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/orange/visible, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Xl" = ( -/obj/structure/bed, -/obj/item/bedsheet/random, -/obj/structure/curtain/cloth/grey, -/turf/open/floor/carpet/blue, -/area/ship/crew/dorm) -"Xp" = ( -/turf/closed/wall/r_wall, -/area/ship/cargo/office) -"Xt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/ntblue/diagonal, -/obj/effect/turf_decal/corner/opaque/neutral/diagonal{ - dir = 4 - }, -/obj/machinery/newscaster/directional/north, -/turf/open/floor/plasteel, -/area/ship/hallway/central) -"Xu" = ( -/obj/machinery/medical_kiosk, -/obj/machinery/light/directional/south, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"Xy" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/carpet/blue, -/area/ship/crew/crewthree) -"XA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/effect/turf_decal/ntspaceworks_small/left, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"XJ" = ( -/obj/effect/turf_decal/corner/opaque/white/mono, -/obj/machinery/door/window/brigdoor/southright{ - name = "The Captain's Personal Lavatory"; - opacity = 1; - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ship/crew/crewtwo) -"XU" = ( -/turf/closed/wall/r_wall, -/area/ship/crew/dorm) -"XY" = ( -/obj/machinery/door/poddoor/preopen{ - dir = 4; - id = "bridgelockdown" - }, -/obj/structure/grille, -/obj/structure/window/reinforced/fulltile, -/obj/machinery/door/firedoor/window, -/turf/open/floor/plating, -/area/ship/bridge) -"Yb" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/obj/machinery/door/airlock/command{ - name = "Bridge"; - req_access_txt = "19" - }, -/obj/machinery/door/firedoor/border_only, -/obj/machinery/door/firedoor/border_only{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave/beige, -/area/ship/bridge) -"Yj" = ( -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/obj/structure/cable/yellow{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/ship/engineering/engine) -"Ym" = ( -/obj/machinery/door/poddoor{ - id = "amogusdoors"; - name = "Cargo Bay Blast Door" - }, -/obj/effect/turf_decal/industrial/warning, -/obj/machinery/door/firedoor, -/turf/open/floor/plating, -/area/ship/cargo) -"Yn" = ( -/obj/structure/disposalpipe/segment{ - dir = 2 - }, -/obj/effect/turf_decal/techfloor{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/orange/visible{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/visible/layer4, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/atmospherics) -"Yp" = ( -/obj/structure/closet/secure_closet/miningcloset{ - anchored = 1 - }, -/obj/item/storage/bag/ore, -/obj/item/storage/bag/ore, -/obj/item/clothing/suit/hooded/explorer, -/obj/item/clothing/suit/hooded/explorer, -/obj/item/clothing/glasses/meson, -/obj/item/clothing/glasses/meson, -/obj/item/mining_scanner, -/obj/item/mining_scanner, -/obj/machinery/light_switch{ - pixel_x = 11; - pixel_y = 23 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/plasteel, -/area/ship/cargo) -"Yv" = ( -/obj/machinery/atmospherics/pipe/simple/green/visible{ - dir = 4 - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Yx" = ( -/obj/structure/chair/sofa/brown/right/directional/south, -/obj/machinery/light_switch{ - pixel_x = 11; - pixel_y = 23 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/carpet/red, -/area/ship/hallway/central) -"YC" = ( -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"YQ" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/tech/grid, -/area/ship/hallway/central) -"YT" = ( -/obj/effect/turf_decal/industrial/outline/yellow, -/obj/structure/closet/crate/medical, -/obj/item/defibrillator, -/obj/item/pinpointer/crew/prox, -/obj/item/storage/firstaid/fire, -/obj/item/storage/box/bodybags, -/obj/machinery/newscaster/directional/east, -/turf/open/floor/plasteel/mono/dark, -/area/ship/cargo/office) -"Za" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 4 - }, -/turf/open/floor/carpet/nanoweave/blue, -/area/ship/medical) -"Zd" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 4 - }, -/obj/effect/turf_decal/corner/opaque/white/mono, -/turf/open/floor/plasteel, -/area/ship/crew/canteen/kitchen) -"Zf" = ( -/obj/machinery/suit_storage_unit/engine, -/obj/machinery/light/small/directional/south, -/turf/open/floor/plasteel/tech/grid, -/area/ship/engineering/engine) -"Zo" = ( -/obj/machinery/computer/crew{ - dir = 8 - }, -/obj/effect/turf_decal/corner/opaque/bar/half{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/bridge) -"Zr" = ( -/obj/machinery/firealarm/directional/east, -/obj/machinery/atmospherics/components/binary/volume_pump{ - name = "Fuel Pump" - }, -/obj/machinery/atmospherics/components/binary/valve/on/layer4{ - name = "Emergency Stop" - }, -/turf/open/floor/plasteel/tech, -/area/ship/engineering/atmospherics) -"Zu" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/yellow/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/mono/dark, -/area/ship/bridge) -"Zw" = ( -/obj/structure/railing{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/ship/cargo/office) -"ZD" = ( -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/catwalk/over/plated_catwalk/dark, -/obj/structure/sign/warning/electricshock{ - pixel_y = 25 - }, -/turf/open/floor/plating, -/area/ship/engineering/atmospherics) -"ZE" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{ - dir = 1 - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) -"ZI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/brown/hidden/layer4, -/turf/open/floor/plasteel, -/area/ship/cargo) -"ZJ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2, -/obj/structure/dresser, -/obj/machinery/light/small/directional/north, -/turf/open/floor/wood, -/area/ship/crew/cryo) -"ZR" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/carpet/nanoweave, -/area/ship/hallway/central) - -(1,1,1) = {" -fW -fW -fW -fW -fW -fW -fW -yo -Pb -Pb -ul -ul -ul -ul -mX -ul -ul -ul -ul -Pb -Pb -fW -fW -fW -fW -fW -fW -fW -fW -fW -"} -(2,1,1) = {" -fW -fW -fW -fW -fW -qF -mF -tf -gh -OJ -ul -lE -dj -nF -HL -bk -dj -Zf -ul -gh -OJ -kz -mF -mF -fW -fW -fW -fW -fW -fW -"} -(3,1,1) = {" -fW -fW -fW -kz -kz -bG -EE -tf -ZD -IA -WU -JX -ul -lY -lV -lY -ul -NK -uT -IA -IA -kz -bG -EE -kz -kz -fW -fW -fW -fW -"} -(4,1,1) = {" -fW -fW -kz -kz -JT -wt -gO -dJ -xO -sz -cQ -aR -kn -MV -sK -AG -Jm -uM -yG -we -sD -TH -zy -zy -gk -kz -kz -fW -fW -fW -"} -(5,1,1) = {" -fW -kz -kz -kz -Np -Kd -Jk -nj -Hm -RB -Lz -MJ -IV -NH -lg -Yn -Uk -ub -Oo -bI -Xe -yF -CR -Hu -mL -kz -kz -kz -fW -fW -"} -(6,1,1) = {" -fW -kz -pT -At -RK -qK -dS -Ra -tF -mS -cL -EJ -CE -HR -Ws -bA -fc -hc -Kz -Fc -lW -sJ -qK -dO -qK -Rv -DF -kz -fW -fW -"} -(7,1,1) = {" -fW -kz -Lm -pZ -yj -TF -gN -Ni -vW -ne -ra -hZ -ft -MS -RQ -tp -Gi -vB -fw -Tf -ww -Mq -zK -Zr -Ew -Rv -wC -kz -fW -fW -"} -(8,1,1) = {" -kz -kz -kz -Cu -Px -Px -TS -lR -dZ -kz -TO -ul -rx -fT -nu -gB -vB -mc -kz -kz -Vd -pM -Fu -Fu -Fu -tx -tx -tx -tx -fW -"} -(9,1,1) = {" -kz -Pf -pZ -Dd -Ri -Yv -TG -oE -EP -va -RO -ul -Lv -Yj -fD -MP -Gh -ik -kz -fz -ai -CA -Fu -FC -Fq -qy -tz -pr -uG -fW -"} -(10,1,1) = {" -kz -rM -At -TN -kB -fl -fu -bf -SE -At -sk -ul -UJ -rz -Gi -tk -aL -pB -kz -jZ -wB -sC -Fu -Ca -hz -sh -Kv -jv -Ym -fW -"} -(11,1,1) = {" -kz -kz -kz -kz -kz -kz -kz -kz -kz -kz -kz -ul -ul -ul -ul -ul -ul -ul -kz -kz -er -og -Fu -Om -JQ -WO -FO -JE -Ym -fW -"} -(12,1,1) = {" -hr -JY -SK -hr -UD -dB -rK -um -QU -vO -QY -WZ -JS -Bc -Da -Bc -fU -WZ -rW -cS -sU -bh -Fu -Yp -TI -PI -Pq -fQ -OQ -fW -"} -(13,1,1) = {" -wg -ky -gx -tR -VQ -ES -Bw -tm -gi -Ao -Fx -WZ -ek -Ug -qp -CM -BS -WZ -tI -xb -hA -bz -Ls -aQ -aQ -ZI -ug -jv -Ym -Eu -"} -(14,1,1) = {" -hr -Ek -hr -hr -hr -hr -hr -Xt -GW -Ao -Tc -WZ -ZJ -Nh -xK -xW -Mn -WZ -il -pD -Cz -pz -is -Gp -bZ -Uu -NC -fs -jX -fW -"} -(15,1,1) = {" -lw -lw -lw -DZ -dp -rF -Vp -Pl -GW -qY -aF -WZ -WZ -Wr -vc -Ev -WZ -WZ -ib -cq -Mi -wZ -Fu -MH -yh -zu -zu -tx -tx -fW -"} -(16,1,1) = {" -fW -lw -wT -KL -vY -KL -Hd -Pl -GW -UI -fn -FB -WZ -WZ -Mk -WZ -Vj -bY -HW -WP -hA -si -ys -pt -ys -uQ -uQ -Xp -fW -fW -"} -(17,1,1) = {" -fW -lw -RL -OT -Ss -OT -vI -Pl -gr -gQ -JJ -cp -Wz -hb -Ki -lh -EG -cp -ie -Tm -Hq -gc -ys -LX -Nm -hG -hG -Xp -fW -fW -"} -(18,1,1) = {" -fW -lw -WR -SG -OT -wX -PJ -Pl -if -UI -sd -re -re -Gb -UN -al -UN -UN -HW -WP -eu -hC -qR -Au -JA -wG -Uh -Xp -fW -fW -"} -(19,1,1) = {" -fW -lw -kL -Zd -DL -Br -xf -kO -if -YQ -Vj -Yx -Wg -Oi -gP -UN -UN -KH -mf -ts -hA -pD -ys -nd -Zw -nv -gm -Xp -fW -fW -"} -(20,1,1) = {" -fW -lw -yf -uw -uD -jr -tX -Bg -xo -pI -Vj -xs -fa -Oi -cF -cF -UN -uX -fx -WC -hA -pD -ys -OH -nB -wA -AP -Xp -fW -fW -"} -(21,1,1) = {" -fW -lw -xf -xf -xf -xf -xf -nX -Dc -Cs -Vj -DV -fI -Ka -qq -fY -zG -KU -Vj -qr -hA -rc -ys -iI -pq -AB -XA -Xp -fW -fW -"} -(22,1,1) = {" -fW -sY -As -mT -Bh -LD -Ut -BE -zO -TL -ji -ji -ji -ji -ji -qa -qa -qa -hr -pD -hA -om -ys -jf -lU -ic -BI -Xp -fW -fW -"} -(23,1,1) = {" -fW -sY -QQ -vR -Uv -mM -Ut -pD -ir -pD -eC -xA -bO -dl -ji -id -qS -qa -Hb -pD -hA -Jj -ys -js -pf -YT -CV -Xp -fW -fW -"} -(24,1,1) = {" -fW -sY -GQ -mM -Gq -zM -Ut -pD -ir -pD -MI -Sc -us -Vq -ji -ze -SO -qa -Tz -Bd -ta -Vj -ys -ys -ys -ys -ys -Xp -fW -fW -"} -(25,1,1) = {" -fW -sY -uv -NL -oU -MZ -Ut -pD -sA -ZE -ji -Dz -ps -dG -ji -qa -XJ -qa -hr -Bq -hA -ga -bd -Th -CH -kE -Xu -ls -fW -fW -"} -(26,1,1) = {" -fW -nq -nq -xE -SY -Kh -tB -om -ir -cd -ji -ji -SA -ji -ji -bq -GL -bW -hr -ZR -QK -Jn -iY -OF -CB -oq -ls -ls -fW -fW -"} -(27,1,1) = {" -fW -fW -nq -ed -Ta -Cy -eL -oT -fo -Ny -ji -Aa -kp -oN -ji -lk -iP -vp -qa -pD -hA -ve -dy -ix -Za -wd -hJ -fW -fW -fW -"} -(28,1,1) = {" -fW -fW -nq -dW -Gm -OG -tB -eg -JM -VP -ji -yM -Qs -rw -ji -wp -ok -ao -qa -Uo -hA -ga -vP -RR -Op -kM -hJ -fW -fW -fW -"} -(29,1,1) = {" -fW -fW -nq -tB -tB -tB -tB -tB -vf -Ir -ji -lf -Xy -xi -ji -UM -hi -vZ -qa -de -eY -AT -Pk -tZ -Wa -MG -hJ -fW -fW -fW -"} -(30,1,1) = {" -fW -fW -XU -IB -eP -Re -BW -jS -bw -Kb -ji -ji -fi -ji -ji -qa -iB -qa -qa -gM -dM -AT -Gc -tZ -Wa -zC -hJ -fW -fW -fW -"} -(31,1,1) = {" -fW -fW -XU -XU -wO -WX -eB -jS -hT -cJ -Qp -Ve -Eb -BJ -zi -iv -AE -Ex -Qp -pn -hA -AT -HO -tr -Gs -ls -ls -fW -fW -fW -"} -(32,1,1) = {" -fW -fW -fW -XU -uL -uh -Kf -yU -WE -YC -Yb -Az -Mr -MT -Zu -UR -Rw -aA -Fj -DN -Qo -AT -zS -Cr -oD -ls -fW -fW -fW -fW -"} -(33,1,1) = {" -fW -fW -fW -XU -dq -uq -eQ -jS -Wy -om -Qp -ph -sc -FW -du -HA -jM -wb -Qp -Sv -Dp -AT -LA -dX -QM -ls -fW -fW -fW -fW -"} -(34,1,1) = {" -fW -fW -fW -XU -XU -mQ -jK -jS -lA -HZ -Qp -EF -Zo -Fv -ng -vo -hP -uY -Qp -kU -Cl -kU -kU -kU -wH -ls -fW -fW -fW -fW -"} -(35,1,1) = {" -fW -fW -fW -fW -XU -yB -TJ -jS -jS -jS -XU -XY -XY -XY -ih -ih -XY -XY -wH -qg -fG -mi -ja -kU -wH -fW -fW -fW -fW -fW -"} -(36,1,1) = {" -fW -fW -fW -fW -XU -bo -gu -Xl -uS -mI -XU -mg -ME -ME -NB -np -ME -qb -wH -mU -zJ -mw -sn -kU -wH -fW -fW -fW -fW -fW -"} -(37,1,1) = {" -fW -fW -fW -fW -XU -XU -hM -rq -Fn -aZ -XU -np -ME -ME -ME -ME -qb -Kn -wH -kU -kU -KI -kU -wH -wH -fW -fW -fW -fW -fW -"} -(38,1,1) = {" -fW -fW -fW -fW -fW -XU -La -kW -aZ -aZ -jq -mg -ME -ME -ME -ME -NB -Kn -xu -bR -mN -bs -HE -wH -fW -fW -fW -fW -fW -fW -"} -(39,1,1) = {" -fW -fW -fW -fW -fW -XU -XU -Xl -aZ -aZ -jq -fg -Lq -Lq -Lq -Lq -Lq -zP -xu -aN -ut -eD -wH -wH -fW -fW -fW -fW -fW -fW -"} -(40,1,1) = {" -fW -fW -fW -fW -fW -fW -XU -XU -BH -UA -jq -im -fW -fW -fW -fW -fW -im -xu -BK -Dy -wH -wH -fW -fW -fW -fW -fW -fW -fW -"} -(41,1,1) = {" -fW -fW -fW -fW -fW -fW -fW -XU -XU -XU -XU -im -fW -fW -fW -fW -fW -im -wH -Co -wH -wH -fW -fW -fW -fW -fW -fW -fW -fW -"} -(42,1,1) = {" -fW -fW -fW -fW -fW -fW -fW -fW -XU -XU -XU -im -fW -fW -fW -fW -fW -im -wH -wH -wH -fW -fW -fW -fW -fW -fW -fW -fW -fW -"} -(43,1,1) = {" -fW -fW -fW -fW -fW -fW -fW -fW -fW -XU -XU -im -fW -fW -fW -fW -fW -im -wH -wH -fW -fW -fW -fW -fW -fW -fW -fW -fW -fW -"} diff --git a/code/modules/clothing/outfits/factions/nanotrasen.dm b/code/modules/clothing/outfits/factions/nanotrasen.dm index aaba1d8054cf..3c9e379e74db 100644 --- a/code/modules/clothing/outfits/factions/nanotrasen.dm +++ b/code/modules/clothing/outfits/factions/nanotrasen.dm @@ -401,6 +401,15 @@ shoes = /obj/item/clothing/shoes/sneakers/black belt = /obj/item/pda +// Janitor +/datum/outfit/job/nanotrasen/janitor + name = "Nanotrasen - Janitor" + jobtype = /datum/job/janitor + job_icon = "janitor" + + uniform = /obj/item/clothing/under/nanotrasen/janitor + head = /obj/item/clothing/head/nanotrasen/cap/janitor + // Lawyer /datum/outfit/job/nanotrasen/lawyer name = "Nanotrasen - Lawyer" @@ -423,8 +432,6 @@ id_assignment = "Corporate Representative" job_icon = "nanotrasen" - uniform = /obj/item/clothing/under/rank/command/head_of_personnel/suit - suit = null ears = /obj/item/radio/headset/headset_cent l_hand = /obj/item/clipboard r_pocket = /obj/item/pen/fountain From 48ddc5684473ae02b3fbd7103555a648212ed195 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 5 Oct 2024 15:41:19 -0500 Subject: [PATCH 108/167] Automatic changelog generation for PR #3185 [ci skip] --- html/changelogs/AutoChangeLog-pr-3185.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3185.yml diff --git a/html/changelogs/AutoChangeLog-pr-3185.yml b/html/changelogs/AutoChangeLog-pr-3185.yml new file mode 100644 index 000000000000..157c1439068f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3185.yml @@ -0,0 +1,6 @@ +author: Apogee-dev +changes: + - {rscadd: Added Nanotrasen Harrier-class cruiser} + - {rscdel: Removed Osprey-class cruiser} + - {rscdel: Removed Skipper-class cruiser} +delete-after: true From 608589a34e27b425e7e91f95be188d2eaf8d02cc Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 6 Oct 2024 01:06:57 +0000 Subject: [PATCH 109/167] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3146.yml | 5 ----- html/changelogs/AutoChangeLog-pr-3185.yml | 6 ------ html/changelogs/AutoChangeLog-pr-3406.yml | 6 ------ html/changelogs/AutoChangeLog-pr-3421.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3436.yml | 5 ----- html/changelogs/AutoChangeLog-pr-3438.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3449.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3451.yml | 5 ----- html/changelogs/archive/2024-10.yml | 20 ++++++++++++++++++++ 9 files changed, 20 insertions(+), 39 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3146.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3185.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3406.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3421.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3436.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3438.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3449.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3451.yml diff --git a/html/changelogs/AutoChangeLog-pr-3146.yml b/html/changelogs/AutoChangeLog-pr-3146.yml deleted file mode 100644 index 2b6397e66448..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3146.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Thera-Pissed -changes: - - {rscadd: angle grinders for salvage} - - {rscadd: reworks plasma cutters for salvage} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3185.yml b/html/changelogs/AutoChangeLog-pr-3185.yml deleted file mode 100644 index 157c1439068f..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3185.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Apogee-dev -changes: - - {rscadd: Added Nanotrasen Harrier-class cruiser} - - {rscdel: Removed Osprey-class cruiser} - - {rscdel: Removed Skipper-class cruiser} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3406.yml b/html/changelogs/AutoChangeLog-pr-3406.yml deleted file mode 100644 index 16dcd1234872..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3406.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Bjarl -changes: - - {rscadd: IRMG engineers have rolled new turrets out into the frontier. Please - report back on their effectiveness. Unless you have been shot. Then you should - be dead.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3421.yml b/html/changelogs/AutoChangeLog-pr-3421.yml deleted file mode 100644 index 7e32d923d25c..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3421.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: SomeguyManperson -changes: - - {rscdel: missions will no longer request capturing ice demons} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3436.yml b/html/changelogs/AutoChangeLog-pr-3436.yml deleted file mode 100644 index 6020a91bbc22..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3436.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Apogee-dev -changes: - - {balance: increased mudskipper limit to 2} - - {balance: cut a deckhand slot from kilo} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3438.yml b/html/changelogs/AutoChangeLog-pr-3438.yml deleted file mode 100644 index f446f6f0d204..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3438.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Apogee-dev -changes: - - {balance: removed one recruit slot from the vaquero} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3449.yml b/html/changelogs/AutoChangeLog-pr-3449.yml deleted file mode 100644 index b13db714084e..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3449.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Sadhorizon -changes: - - {bugfix: Komodo Bridge Officer is now actually an officer.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3451.yml b/html/changelogs/AutoChangeLog-pr-3451.yml deleted file mode 100644 index a09e9e0324b7..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3451.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Bjarl -changes: - - {rscadd: 'Sharplite has produced a line of turrets for Nanotrasen, which is now - mounting them on relevant vessels.'} -delete-after: true diff --git a/html/changelogs/archive/2024-10.yml b/html/changelogs/archive/2024-10.yml index 2055dcb1e4c0..ef18854c4aac 100644 --- a/html/changelogs/archive/2024-10.yml +++ b/html/changelogs/archive/2024-10.yml @@ -49,3 +49,23 @@ - balance: Replace red insuls with yellow insuls in syndicate toolboxes zimon9: - bugfix: fixed the waste and scrubber gas reclamation filters on the colossus +2024-10-06: + Apogee-dev: + - balance: removed one recruit slot from the vaquero + - rscadd: Added Nanotrasen Harrier-class cruiser + - rscdel: Removed Osprey-class cruiser + - rscdel: Removed Skipper-class cruiser + - balance: increased mudskipper limit to 2 + - balance: cut a deckhand slot from kilo + Bjarl: + - rscadd: IRMG engineers have rolled new turrets out into the frontier. Please report + back on their effectiveness. Unless you have been shot. Then you should be dead. + - rscadd: Sharplite has produced a line of turrets for Nanotrasen, which is now + mounting them on relevant vessels. + Sadhorizon: + - bugfix: Komodo Bridge Officer is now actually an officer. + SomeguyManperson: + - rscdel: missions will no longer request capturing ice demons + Thera-Pissed: + - rscadd: angle grinders for salvage + - rscadd: reworks plasma cutters for salvage From 3ce983e40ec619de0094f6806e0b3a1e44ecd32e Mon Sep 17 00:00:00 2001 From: thgvr <81882910+thgvr@users.noreply.github.com> Date: Sat, 5 Oct 2024 19:40:04 -0700 Subject: [PATCH 110/167] skhrinks gun cases (#3481) ## About The Pull Request i put it in the washing machine for too long ![image](https://github.com/user-attachments/assets/e91b4291-0ce3-4149-aa73-1d3f76a95529) ## Changelog :cl: imageadd: Shrunk down the sprite of guncases /:cl: --- code/game/objects/items/storage/guncases.dm | 8 +++----- icons/obj/guncase.dmi | Bin 359 -> 344 bytes icons/obj/guncase_48x32.dmi | Bin 606 -> 0 bytes 3 files changed, 3 insertions(+), 5 deletions(-) delete mode 100644 icons/obj/guncase_48x32.dmi diff --git a/code/game/objects/items/storage/guncases.dm b/code/game/objects/items/storage/guncases.dm index 8fe256f2b6c2..2feb49af03f7 100644 --- a/code/game/objects/items/storage/guncases.dm +++ b/code/game/objects/items/storage/guncases.dm @@ -1,8 +1,8 @@ /obj/item/storage/guncase name = "gun case" desc = "A large box designed for holding firearms and magazines safely." - icon = 'icons/obj/guncase_48x32.dmi' - icon_state = "riflecase" + icon = 'icons/obj/guncase.dmi' + icon_state = "guncase" item_state = "infiltrator_case" force = 12 throwforce = 12 @@ -14,7 +14,6 @@ drop_sound = 'sound/items/handling/toolbox_drop.ogg' pickup_sound = 'sound/items/handling/toolbox_pickup.ogg' - /obj/item/storage/guncase/ComponentInitialize() . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) @@ -38,7 +37,6 @@ /obj/item/storage/guncase/absolution/PopulateContents() new /obj/item/gun/ballistic/shotgun/flamingarrow/absolution/no_mag(src) - /obj/item/storage/guncase/skm /obj/item/storage/guncase/skm/PopulateContents() new /obj/item/gun/ballistic/automatic/assault/skm/no_mag(src) @@ -101,7 +99,7 @@ name = "pistol case" desc = "A large box designed for holding pistols and magazines safely." icon = 'icons/obj/guncase.dmi' - icon_state = "pistolcase" + icon_state = "guncase" item_state = "infiltrator_case" force = 12 throwforce = 12 diff --git a/icons/obj/guncase.dmi b/icons/obj/guncase.dmi index 4941b965f2f84c706c80c274ad72397d7f6c0d8c..83b5292a5cfdb9818bffc775c7e81593874ef54e 100644 GIT binary patch delta 208 zcmV;>05AXN0@wnOOaW_=O-O$!y)-X5u{c$Ui!&v&s2C_>$i^dnWB*&Y@~yMwwy9?e@Y|19jY&v{c!-7?7DF5t9a z4h<~X-|wL^$VT>qYo;Cwcb%yKsa$8o3ZrpGH#wSx9j;dDHJ!Ca1Q9ZO61ZJI^WyEd ZdjizcKL+Sz=o|n5002ovPDHLkV1gqTV%7iv diff --git a/icons/obj/guncase_48x32.dmi b/icons/obj/guncase_48x32.dmi deleted file mode 100644 index b5dc20bc64e545e453d1d1c6cde50dca893cb21c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmV-k0-^nhP)V=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRLOex6#aV)qvGg33t zGfIFQVZgi*W9;OoBp6G6l9j~y_WSSWJNkB#=eY_Qsc#2txyE`8VOUe1s zDANOY1BNH3d$vo8F#Iwj$Q zuY^*-%Y305fD)E!a$NZiX|=3Q&^26q=%c7}Bsf;V?#A{KxV##FM`inIu@icFoc88? z8$JXX+sc%8n2i8&T%gSkds#HsToOAeAGa0#g*d4TSU-}*EwPjE5wrkT`T#uNUAd2l z(5FTU*yckY-T|<6Z51Va+~0I~$$m42l|k^lez07*qoM6N<$g8LQ@%>V!Z From 91b04049c165169599ef28928fb03214226fad4a Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 5 Oct 2024 21:50:36 -0500 Subject: [PATCH 111/167] Automatic changelog generation for PR #3481 [ci skip] --- html/changelogs/AutoChangeLog-pr-3481.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3481.yml diff --git a/html/changelogs/AutoChangeLog-pr-3481.yml b/html/changelogs/AutoChangeLog-pr-3481.yml new file mode 100644 index 000000000000..d4489159840d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3481.yml @@ -0,0 +1,4 @@ +author: thgvr +changes: + - {imageadd: Shrunk down the sprite of guncases} +delete-after: true From ae2ed959360fc99f2be2e9eba65ce96d38af060b Mon Sep 17 00:00:00 2001 From: thgvr <81882910+thgvr@users.noreply.github.com> Date: Sat, 5 Oct 2024 20:21:13 -0700 Subject: [PATCH 112/167] Some backpack sprites for Kepori (#3430) ## About The Pull Request ![image](https://github.com/user-attachments/assets/ecfb8832-7b72-4951-93b6-1b62c7c86483) ## Changelog :cl: imageadd: Some backpack sprites for Kepori /:cl: --- .../BeachRuins/beach_fishing_hut.dmm | 2 - code/__DEFINES/species_clothing_defines.dm | 1 + code/datums/diseases/gastrolisis.dm | 17 +----- code/game/gamemodes/clown_ops/clown_ops.dm | 1 - code/game/objects/items.dm | 3 +- code/game/objects/items/pneumaticCannon.dm | 20 ------- code/game/objects/items/storage/backpack.dm | 55 ++---------------- .../game/objects/items/storage/uplink_kits.dm | 1 - .../crates_lockers/closets/job_closets.dm | 3 +- code/modules/antagonists/santa/santa.dm | 4 -- code/modules/clothing/outfits/event.dm | 26 --------- code/modules/jobs/job_types/clown.dm | 2 - code/modules/jobs/job_types/geneticist.dm | 1 - .../carbon/human/species_types/snail.dm | 31 ---------- .../mob/living/carbon/human/update_icons.dm | 47 ++++++++------- code/modules/vending/wardrobes.dm | 3 +- icons/mob/clothing/back.dmi | Bin 134924 -> 94578 bytes icons/mob/clothing/back/backpacks.dmi | Bin 0 -> 36985 bytes icons/mob/clothing/back/backpacks_kepori.dmi | Bin 0 -> 2255 bytes .../mob/species/kepori/onmob_back_kepori.dmi | Bin 0 -> 211 bytes icons/obj/clothing/back/backpacks.dmi | Bin 0 -> 26261 bytes icons/obj/storage.dmi | Bin 81584 -> 56964 bytes shiptest.dme | 1 - 23 files changed, 35 insertions(+), 183 deletions(-) delete mode 100644 code/modules/clothing/outfits/event.dm create mode 100644 icons/mob/clothing/back/backpacks.dmi create mode 100644 icons/mob/clothing/back/backpacks_kepori.dmi create mode 100644 icons/mob/species/kepori/onmob_back_kepori.dmi create mode 100644 icons/obj/clothing/back/backpacks.dmi diff --git a/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm b/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm index ed6c353d26d7..ea1a18b11c4b 100644 --- a/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm +++ b/_maps/RandomRuins/BeachRuins/beach_fishing_hut.dmm @@ -203,7 +203,6 @@ "kj" = ( /obj/structure/closet/cabinet, /obj/item/pneumatic_cannon/speargun, -/obj/item/storage/backpack/magspear_quiver, /obj/item/melee/knife/hunting, /turf/open/floor/wood, /area/ruin/beach) @@ -1051,7 +1050,6 @@ "PB" = ( /obj/structure/closet/cabinet, /obj/item/pneumatic_cannon/speargun, -/obj/item/storage/backpack/magspear_quiver, /obj/item/melee/knife/hunting, /obj/machinery/light/small/directional/east{ light_color = "#d8b1b1" diff --git a/code/__DEFINES/species_clothing_defines.dm b/code/__DEFINES/species_clothing_defines.dm index 6f07a76c8293..4dd9e26da752 100644 --- a/code/__DEFINES/species_clothing_defines.dm +++ b/code/__DEFINES/species_clothing_defines.dm @@ -30,6 +30,7 @@ ///KEPORI PATHS #define KEPORI_UNIFORM_PATH 'icons/mob/species/kepori/onmob_uniform_kepori.dmi' +#define KEPORI_BACK_PATH 'icons/mob/species/kepori/onmob_back_kepori.dmi' #define KEPORI_SHOES_PATH 'icons/mob/species/kepori/onmob_feet_kepori.dmi' #define KEPORI_SUIT_PATH 'icons/mob/species/kepori/onmob_suit_kepori.dmi' #define KEPORI_EARS_PATH 'icons/mob/species/kepori/onmob_ears_kepori.dmi' diff --git a/code/datums/diseases/gastrolisis.dm b/code/datums/diseases/gastrolisis.dm index 119ccc0c60e0..e2af13bd6742 100644 --- a/code/datums/diseases/gastrolisis.dm +++ b/code/datums/diseases/gastrolisis.dm @@ -38,23 +38,13 @@ "You scream in pain as your eyes are pushed out by your new snail eyes!") affected_mob.emote("scream") return - var/obj/item/shell = affected_mob.get_item_by_slot(ITEM_SLOT_BACK) - if(!istype(shell, /obj/item/storage/backpack/snail)) - shell = null - if(!shell && prob(5)) - if(affected_mob.dropItemToGround(affected_mob.get_item_by_slot(ITEM_SLOT_BACK))) - affected_mob.equip_to_slot_or_del(new /obj/item/storage/backpack/snail(affected_mob), ITEM_SLOT_BACK) - affected_mob.visible_message("[affected_mob] grows a grotesque shell on their back!", \ - "You scream in pain as a shell pushes itself out from under your skin!") - affected_mob.emote("scream") - return var/obj/item/organ/tongue/tongue = locate(/obj/item/organ/tongue/snail) in affected_mob.internal_organs if(!tongue && prob(5)) var/obj/item/organ/tongue/snail/new_tongue = new() new_tongue.Insert(affected_mob) to_chat(affected_mob, "You feel your speech slow down...") return - if(shell && eyes && tongue && prob(5)) + if(eyes && tongue && prob(5)) affected_mob.set_species(/datum/species/snail) affected_mob.client?.give_award(/datum/award/achievement/misc/snail, affected_mob) affected_mob.visible_message("[affected_mob] turns into a snail!", \ @@ -79,8 +69,3 @@ if(eyes) var/obj/item/organ/eyes/new_eyes = new H.dna.species.mutanteyes () new_eyes.Insert(H) - var/obj/item/storage/backpack/bag = H.get_item_by_slot(ITEM_SLOT_BACK) - if(istype(bag, /obj/item/storage/backpack/snail)) - bag.emptyStorage() - H.temporarilyRemoveItemFromInventory(bag, TRUE) - qdel(bag) diff --git a/code/game/gamemodes/clown_ops/clown_ops.dm b/code/game/gamemodes/clown_ops/clown_ops.dm index 87dc3b65d438..e3f7eea12c52 100644 --- a/code/game/gamemodes/clown_ops/clown_ops.dm +++ b/code/game/gamemodes/clown_ops/clown_ops.dm @@ -31,7 +31,6 @@ uniform = /obj/item/clothing/under/syndicate mask = /obj/item/clothing/mask/gas/clown_hat gloves = /obj/item/clothing/gloves/combat - back = /obj/item/storage/backpack/clown ears = /obj/item/radio/headset/syndicate/alt l_pocket = /obj/item/pinpointer/nuke/syndicate r_pocket = /obj/item/bikehorn diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 154f6bde143a..90669dde84bb 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -30,8 +30,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb var/supports_variations = null ///If set, kepori wearing this use this instead of their clothing file - var/kepoi_override_icon - + var/kepori_override_icon ///If set, vox wearing this use this instead of their clothing file var/vox_override_icon diff --git a/code/game/objects/items/pneumaticCannon.dm b/code/game/objects/items/pneumaticCannon.dm index 5108a8713633..9122be0a5d6c 100644 --- a/code/game/objects/items/pneumaticCannon.dm +++ b/code/game/objects/items/pneumaticCannon.dm @@ -326,23 +326,3 @@ /obj/item/pneumatic_cannon/speargun/Initialize() . = ..() allowed_typecache = magspear_typecache - -/obj/item/storage/backpack/magspear_quiver - name = "quiver" - desc = "A quiver for holding magspears." - icon_state = "quiver" - item_state = "quiver" - -/obj/item/storage/backpack/magspear_quiver/ComponentInitialize() - . = ..() - var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_items = 20 - STR.max_combined_w_class = 40 - STR.display_numerical_stacking = TRUE - STR.set_holdable(list( - /obj/item/throwing_star/magspear - )) - -/obj/item/storage/backpack/magspear_quiver/PopulateContents() - for(var/i in 1 to 20) - new /obj/item/throwing_star/magspear(src) diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index eb72fe31c5ec..dd0598e80c2d 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -16,6 +16,8 @@ desc = "You wear this on your back and put items into it." icon_state = "backpack" item_state = "backpack" + icon = 'icons/obj/clothing/back/backpacks.dmi' + mob_overlay_icon = 'icons/mob/clothing/back/backpacks.dmi' lefthand_file = 'icons/mob/inhands/equipment/backpack_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/backpack_righthand.dmi' pickup_sound = "rustle" @@ -26,7 +28,9 @@ max_integrity = 300 greyscale_icon_state = "backpack" greyscale_colors = list(list(13, 17), list(12, 17), list(12, 21)) - supports_variations = VOX_VARIATION + + supports_variations = VOX_VARIATION | KEPORI_VARIATION + kepori_override_icon = 'icons/mob/clothing/back/backpacks_kepori.dmi' /obj/item/storage/backpack/ComponentInitialize() . = ..() @@ -61,51 +65,12 @@ STR.storage_flags = STORAGE_FLAGS_VOLUME_DEFAULT STR.max_volume = STORAGE_VOLUME_BAG_OF_HOLDING -/obj/item/storage/backpack/santabag - name = "Santa's Gift Bag" - desc = "Space Santa uses this to deliver presents to all the nice children in space in Christmas! Wow, it's pretty big!" - icon_state = "giftbag0" - item_state = "giftbag" - w_class = WEIGHT_CLASS_BULKY - -/obj/item/storage/backpack/santabag/Initialize() - . = ..() - regenerate_presents() - -/obj/item/storage/backpack/santabag/ComponentInitialize() - . = ..() - var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_w_class = WEIGHT_CLASS_NORMAL - STR.max_combined_w_class = 60 - -/obj/item/storage/backpack/santabag/proc/regenerate_presents() - addtimer(CALLBACK(src, PROC_REF(regenerate_presents)), 30 SECONDS) - - var/mob/M = get(loc, /mob) - if(!istype(M)) - return - if(M.mind && HAS_TRAIT(M.mind, TRAIT_CANNOT_OPEN_PRESENTS)) - var/datum/component/storage/STR = GetComponent(/datum/component/storage) - var/turf/floor = get_turf(src) - var/obj/item/I = new /obj/item/a_gift/anything(floor) - if(STR.can_be_inserted(I, stop_messages=TRUE)) - STR.handle_item_insertion(I, prevent_warning=TRUE) - else - qdel(I) - - /obj/item/storage/backpack/cultpack name = "trophy rack" desc = "It's useful for both carrying extra gear and proudly declaring your insanity." icon_state = "cultpack" item_state = "backpack" -/obj/item/storage/backpack/clown - name = "Giggles von Honkerton" - desc = "It's a backpack made by Honk! Co." - icon_state = "clownpack" - item_state = "clownpack" - /obj/item/storage/backpack/explorer name = "explorer bag" desc = "A robust backpack for stashing your loot." @@ -215,7 +180,6 @@ item_state = "satchel-norm" greyscale_icon_state = "satchel" greyscale_colors = list(list(11, 12), list(17, 18), list(10, 11)) - supports_variations = VOX_VARIATION /obj/item/storage/backpack/satchel/ComponentInitialize() . = ..() @@ -226,7 +190,6 @@ /obj/item/storage/backpack/satchel/leather name = "leather satchel" desc = "It's a very fancy satchel made with fine leather." - icon = 'icons/obj/storage.dmi' icon_state = "satchel" item_state = "satchel" @@ -261,12 +224,6 @@ icon_state = "satchel-chem" item_state = "satchel-chem" -/obj/item/storage/backpack/satchel/gen - name = "geneticist satchel" - desc = "A sterile satchel with geneticist colours." - icon_state = "satchel-gen" - item_state = "satchel-gen" - /obj/item/storage/backpack/satchel/tox name = "scientist satchel" desc = "Useful for holding research materials." @@ -354,8 +311,6 @@ /obj/item/storage/backpack/messenger name = "messenger bag" desc = "A sturdy backpack worn over one shoulder." - icon = 'icons/obj/storage.dmi' - mob_overlay_icon = 'icons/mob/clothing/back.dmi' icon_state = "courierbag" item_state = "courierbag" greyscale_icon_state = "satchel" diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 39e533f2a4a3..3ef2d547931a 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -146,7 +146,6 @@ if("white_whale_holy_grail") //Unique items that don't appear anywhere else new /obj/item/pneumatic_cannon/speargun(src) - new /obj/item/storage/backpack/magspear_quiver(src) new /obj/item/clothing/suit/space/hardsuit/carp(src) new /obj/item/clothing/mask/gas/carp(src) new /obj/item/grenade/spawnergrenade/spesscarp(src) diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index 8285380c3c48..6e7de98b21de 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -245,8 +245,7 @@ /obj/item/clothing/under/rank/medical/geneticist = 2, /obj/item/clothing/shoes/sneakers/white = 2, /obj/item/clothing/suit/toggle/labcoat/genetics = 2, - /obj/item/storage/backpack/genetics = 2, - /obj/item/storage/backpack/satchel/gen = 2) + /obj/item/storage/backpack/genetics = 2) generate_items_inside(items_inside,src) return diff --git a/code/modules/antagonists/santa/santa.dm b/code/modules/antagonists/santa/santa.dm index 996a53f316dc..2f1e874b2866 100644 --- a/code/modules/antagonists/santa/santa.dm +++ b/code/modules/antagonists/santa/santa.dm @@ -18,10 +18,6 @@ /datum/antagonist/santa/proc/give_equipment() var/mob/living/carbon/human/H = owner.current - if(istype(H)) - H.equipOutfit(/datum/outfit/santa) - H.dna.update_dna_identity() - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/area_teleport/teleport/santa) /datum/antagonist/santa/proc/give_objective() diff --git a/code/modules/clothing/outfits/event.dm b/code/modules/clothing/outfits/event.dm deleted file mode 100644 index 18af4e8b663f..000000000000 --- a/code/modules/clothing/outfits/event.dm +++ /dev/null @@ -1,26 +0,0 @@ -/datum/outfit/santa //ho ho ho! - name = "Santa Claus" - - uniform = /obj/item/clothing/under/color/red - shoes = /obj/item/clothing/shoes/sneakers/red - suit = /obj/item/clothing/suit/space/santa - head = /obj/item/clothing/head/santa - back = /obj/item/storage/backpack/santabag - r_pocket = /obj/item/flashlight - gloves = /obj/item/clothing/gloves/color/red - - box = /obj/item/storage/box/survival/engineer - backpack_contents = list(/obj/item/a_gift/anything = 5) - -/datum/outfit/santa/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) - if(visualsOnly) - return - H.fully_replace_character_name(H.real_name, "Santa Claus") - H.mind.assigned_role = "Santa" - H.mind.special_role = "Santa" - - H.hairstyle = "Long Hair 3" - H.facial_hairstyle = "Beard (Full)" - H.hair_color = "FFF" - H.facial_hair_color = "FFF" - H.update_hair() diff --git a/code/modules/jobs/job_types/clown.dm b/code/modules/jobs/job_types/clown.dm index d9ca3002a74b..e2c0e24501b1 100644 --- a/code/modules/jobs/job_types/clown.dm +++ b/code/modules/jobs/job_types/clown.dm @@ -34,8 +34,6 @@ implants = list(/obj/item/implant/sad_trombone) - backpack = /obj/item/storage/backpack/clown - satchel = /obj/item/storage/backpack/clown duffelbag = /obj/item/storage/backpack/duffelbag/clown //strangely has a duffel box = /obj/item/storage/box/hug/survival diff --git a/code/modules/jobs/job_types/geneticist.dm b/code/modules/jobs/job_types/geneticist.dm index 2720dcf064fd..dd8e5ef8f97a 100644 --- a/code/modules/jobs/job_types/geneticist.dm +++ b/code/modules/jobs/job_types/geneticist.dm @@ -25,7 +25,6 @@ l_pocket = /obj/item/sequence_scanner backpack = /obj/item/storage/backpack/genetics - satchel = /obj/item/storage/backpack/satchel/gen duffelbag = /obj/item/storage/backpack/duffelbag/med courierbag = /obj/item/storage/backpack/messenger/med diff --git a/code/modules/mob/living/carbon/human/species_types/snail.dm b/code/modules/mob/living/carbon/human/species_types/snail.dm index 4d9d41bd411d..5f47ab21e479 100644 --- a/code/modules/mob/living/carbon/human/species_types/snail.dm +++ b/code/modules/mob/living/carbon/human/species_types/snail.dm @@ -12,7 +12,6 @@ siemens_coeff = 2 //snails are mostly water changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | RACE_SWAP sexes = FALSE //snails are hermaphrodites - var/shell_type = /obj/item/storage/backpack/snail mutanteyes = /obj/item/organ/eyes/snail mutanttongue = /obj/item/organ/tongue/snail @@ -41,38 +40,8 @@ /datum/species/snail/on_species_gain(mob/living/carbon/C, datum/species/old_species, pref_load) . = ..() - var/obj/item/storage/backpack/bag = C.get_item_by_slot(ITEM_SLOT_BACK) - if(!istype(bag, /obj/item/storage/backpack/snail)) - if(C.dropItemToGround(bag)) //returns TRUE even if its null - C.equip_to_slot_or_del(new /obj/item/storage/backpack/snail(C), ITEM_SLOT_BACK) C.AddElement(/datum/element/snailcrawl) /datum/species/snail/on_species_loss(mob/living/carbon/C) . = ..() C.RemoveElement(/datum/element/snailcrawl) - var/obj/item/storage/backpack/bag = C.get_item_by_slot(ITEM_SLOT_BACK) - if(istype(bag, /obj/item/storage/backpack/snail)) - bag.emptyStorage() - C.temporarilyRemoveItemFromInventory(bag, TRUE) - qdel(bag) - -/obj/item/storage/backpack/snail - name = "snail shell" - desc = "Worn by snails as armor and storage compartment." - icon_state = "snailshell" - item_state = "snailshell" - lefthand_file = 'icons/mob/inhands/equipment/backpack_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/backpack_righthand.dmi' - armor = list("melee" = 40, "bullet" = 30, "laser" = 30, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 50) - max_integrity = 200 - resistance_flags = FIRE_PROOF | ACID_PROOF - -/obj/item/storage/backpack/snail/dropped(mob/user, silent) - . = ..() - emptyStorage() - if(!QDELETED(src)) - qdel(src) - -/obj/item/storage/backpack/snail/Initialize() - . = ..() - ADD_TRAIT(src, TRAIT_NODROP, "snailshell") diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 540dddb9a489..1400d2c641ca 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -150,8 +150,8 @@ There are several things that need to be remembered: else if(dna.species.bodytype & BODYTYPE_KEPORI) if(U.supports_variations & KEPORI_VARIATION) icon_file = KEPORI_UNIFORM_PATH - if(U.kepoi_override_icon) - icon_file = U.kepoi_override_icon + if(U.kepori_override_icon) + icon_file = U.kepori_override_icon else handled_by_bodytype = TRUE @@ -243,8 +243,8 @@ There are several things that need to be remembered: else if(dna.species.bodytype & BODYTYPE_KEPORI) if(I.supports_variations & KEPORI_VARIATION) icon_file = KEPORI_GLOVES_PATH - if(I.kepoi_override_icon) - icon_file = I.kepoi_override_icon + if(I.kepori_override_icon) + icon_file = I.kepori_override_icon else handled_by_bodytype = TRUE @@ -295,8 +295,8 @@ There are several things that need to be remembered: else if(dna.species.bodytype & BODYTYPE_KEPORI) if(I.supports_variations & KEPORI_VARIATION) icon_file = KEPORI_GLASSES_PATH - if(I.kepoi_override_icon) - icon_file = I.kepoi_override_icon + if(I.kepori_override_icon) + icon_file = I.kepori_override_icon else handled_by_bodytype = TRUE @@ -346,8 +346,8 @@ There are several things that need to be remembered: else if(dna.species.bodytype & BODYTYPE_KEPORI) if(I.supports_variations & KEPORI_VARIATION) icon_file = KEPORI_EARS_PATH - if(I.kepoi_override_icon) - icon_file = I.kepoi_override_icon + if(I.kepori_override_icon) + icon_file = I.kepori_override_icon else handled_by_bodytype = TRUE @@ -407,8 +407,8 @@ There are several things that need to be remembered: else if(dna.species.bodytype & BODYTYPE_KEPORI) if(I.supports_variations & KEPORI_VARIATION) icon_file = KEPORI_SHOES_PATH - if(I.kepoi_override_icon) - icon_file = I.kepoi_override_icon + if(I.kepori_override_icon) + icon_file = I.kepori_override_icon else handled_by_bodytype = TRUE @@ -507,8 +507,8 @@ There are several things that need to be remembered: else if(dna.species.bodytype & BODYTYPE_KEPORI) if(I.supports_variations & KEPORI_VARIATION) icon_file = KEPORI_HEAD_PATH - if(I.kepoi_override_icon) - icon_file = I.kepoi_override_icon + if(I.kepori_override_icon) + icon_file = I.kepori_override_icon else handled_by_bodytype = TRUE @@ -557,8 +557,8 @@ There are several things that need to be remembered: else if(dna.species.bodytype & BODYTYPE_KEPORI) if(I.supports_variations & KEPORI_VARIATION) icon_file = KEPORI_BELT_PATH - if(I.kepoi_override_icon) - icon_file = I.kepoi_override_icon + if(I.kepori_override_icon) + icon_file = I.kepori_override_icon else handled_by_bodytype = TRUE @@ -615,8 +615,8 @@ There are several things that need to be remembered: else if(dna.species.bodytype & BODYTYPE_KEPORI) if(I.supports_variations & KEPORI_VARIATION) icon_file = KEPORI_SUIT_PATH - if(I.kepoi_override_icon) - icon_file = I.kepoi_override_icon + if(I.kepori_override_icon) + icon_file = I.kepori_override_icon else handled_by_bodytype = TRUE @@ -698,8 +698,8 @@ There are several things that need to be remembered: else if(dna.species.bodytype & BODYTYPE_KEPORI) if(I.supports_variations & KEPORI_VARIATION) icon_file = KEPORI_MASK_PATH - if(I.kepoi_override_icon) - icon_file = I.kepoi_override_icon + if(I.kepori_override_icon) + icon_file = I.kepori_override_icon else handled_by_bodytype = TRUE @@ -739,6 +739,7 @@ There are several things that need to be remembered: update_hud_neck(I) + if(!(ITEM_SLOT_NECK in check_obscured_slots())) if(dna.species.bodytype & BODYTYPE_VOX) // there is no kepori neck path, we just tell it to greyscale no matter what @@ -798,10 +799,12 @@ There are several things that need to be remembered: handled_by_bodytype = TRUE else if(dna.species.bodytype & BODYTYPE_KEPORI) -// if(I.supports_variations & KEPORI_VARIATION) -// icon_file = KEPORI_BACK_PATH -// else - handled_by_bodytype = TRUE + if(I.supports_variations & KEPORI_VARIATION) + icon_file = KEPORI_BACK_PATH + if(I.kepori_override_icon) + icon_file = I.kepori_override_icon + else + handled_by_bodytype = TRUE if(!icon_exists(icon_file, RESOLVE_ICON_STATE(I))) icon_file = I.mob_overlay_icon ? I.mob_overlay_icon : DEFAULT_BACK_PATH diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index 5155a9a225b9..2bef026cebff 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -417,8 +417,7 @@ /obj/item/clothing/shoes/sneakers/white = 2, /obj/item/clothing/suit/toggle/labcoat/genetics = 2, /obj/item/clothing/accessory/armband/medblue = 4, - /obj/item/storage/backpack/genetics = 2, - /obj/item/storage/backpack/satchel/gen = 2) + /obj/item/storage/backpack/genetics = 2) refill_canister = /obj/item/vending_refill/wardrobe/gene_wardrobe /obj/item/vending_refill/wardrobe/gene_wardrobe machine_name = "GeneDrobe" diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi index fc00f899ed9305176e57847cc05658a4722e16c3..5ca5b6bd045d6e42e5bfeae03ad13efcb5e535dd 100644 GIT binary patch literal 94578 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 z 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 literal 134924 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≀J9>&-0x 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 MxuK(hRd#fkNf=2W5D2;IBP9(8 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 WeXN_}XUrksM@3Oxp-}F{hyMqoT{cz# literal 0 HcmV?d00001 diff --git a/icons/mob/clothing/back/backpacks_kepori.dmi b/icons/mob/clothing/back/backpacks_kepori.dmi new file mode 100644 index 0000000000000000000000000000000000000000..557ee29267fd9de959768b1837b5ccd1ae34cfd6 GIT binary patch literal 2255 zcmYk*doV3}pyw3Za_aCpv>-m0PcS73j*bdna0Kg9WWCRPrhbb$oSV(H7sOo|>Or&8>6d#~ePgB*w z_uDHk);)P6@1#<4gSU97G2lGF7+G3cLL-k^!4F6IxyH)HEANG<;&VRMOL;)F92}j3 z4S>yNYVAtY%-($6Y;Q}LGx8K*IrqwU^UxUWaysl7F4PBqF*xkv-v}BM zNXOV|WbIzm-9%rTuPAEOfCa4cANAv zTF5k`dU#Y}AqxOR)$NZRb%`uooCpfNZz?6?wY+WnZc3s?>glk?fYzXLf#9VXXv)x} zH3$a3>(Kk-dq*riVU{giq(3SlvN?hOEw2u_{sCrl1T?y`UlbH`$whr8jmpYoLtIDF zb}`E-nnZ#*6jG%3|NFmcu(oZ+%%@moh-+!?QYLx%S-4r|sdrIS6S>BE$|^_oA%#kE zDnk8$Sx_FT9>!noE;0083=PirMlP17eI!h(4<_vlP^ap&kG>S?R+PnmP3R+F!#lLc zLt>(qF;*uy;+#oDWM&?V>|YWjSplC47Q(-fY9UypTY**#WA{K(^RduMjhj^2#E7*bDCHxbmpLa7k2<^Ei-41kNs{drP z58LFz2YTR{a&q@~u}bo={-r9UQSxzqh3_DNLNx8aL5-t)G-}g>{>cX1^>=h1N`>7y zsd}P3cL_Dg8lGF#NR^!_?62VyBI5YwU+C*PXr22hhK?Q-e;Uq;W92EWRKj&ZZe3Dz zZNh)|IE@Wa*0U$@<)OYe-jkj`dP*)7R-SG@UUptpy6tPO+nr1XvFr=0B&`*#7CI-3 z<8;|t4jjpgj9NBYFT9bA8$RW>jFCxexW+gpBOJoCu_4)XQ~KgYiaSMVj@wV93e2*4HX zR9A8hUnjmNz(8cm8ZjrN1~IJ`K(b~@h5GB^vbn9MXZ#A$9%ZS}H?~J>SO-`!iXmBn zx!03v3b(l{S*L66l1sJYB0pT)A`XSZsj zx26igyW*Q2auNoiO+Sqv`aZ9tS#tk+E5na{d`>NYI>xhZPw&ND&seBxn3%Kp+dAXq zR9}o!PZ9m3w7i>D0Ya%Zs3=C0r}C)Gytk?Th`iCFJ-@GEr8Z@~5M1x>$`E7M{Rxl% zxYTJipf`1gdS$9e5FR{{99vu09exK=^0!UuIGuL-5Nz>FiafqOsXzS6z2>F3hcK02Pxtf=hCm!9#95R8H2 zzbi22?t=@24~Sq)ki~MK^a4V0I3ny_J#7BLz!cfq+}7GxHEhT(x3kIGJZa9|Hdf@w zj0yX`J~PmUcROK7BUoo5iW%ZR8hJ24MKwZqkKxp88OsgpA{@1~2*)F(AiKw`)Kq~8sG^1ONw>x~yWz_q-33ejNt4Xl% z{O5*Y5;eJY(s1ICg>lddzbe2x_HEC=xR+pLU>v3d$9B(^S;OZaXctEG^IdMa6$XL5*HvS7aWno5+u=yr)1BHySb5Hb0gzKQJ8eszBIyGp9=t zX+(BDA)@6#%V%`q>Im-Ue}XjP5P!iSl6Q0X9{+B`SDbQ-@uIrH9XT%Ow~RTn zZnsk!4dFG!^=fU3)P7}jbaeU?`@A3nQ+o7e2G>NT#5#Mpm3sZ)(@KNA1}Y_?<}DK7 zr;PdFXG;ge+(M1s;up4uTbX{Ixq3DvI*!&%6pndau}Wj3 yj7>)EsGV1yOHQwipB^3(d|wLQkO6>rj9|-O4!+M$^1`!!wPtUFJVv$hO8gh9XdeUs literal 0 HcmV?d00001 diff --git a/icons/mob/species/kepori/onmob_back_kepori.dmi b/icons/mob/species/kepori/onmob_back_kepori.dmi new file mode 100644 index 0000000000000000000000000000000000000000..98218916f7c06e21fbadcdfd81e7c5adbe7fd72a GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^20*O9$P6U&q%z}y6mx)2i0gp^2hzOvr2x5%B|(0{ z3=Yq3qyaf;RUr{2E~&-IMVSR9nfZAP3>9;N!wQN@zkdlX`1tjSmbb3fxija3H-s8o zG=A_%=e&>RNrpn59Tvtx#+Qw~8f21{*FBnaWKxJiuxDqtvFhd(5+_WaJo3@@I^)~A zVXA1%-FVdQ&MBb@ E0F@a>IRF3v literal 0 HcmV?d00001 diff --git a/icons/obj/clothing/back/backpacks.dmi b/icons/obj/clothing/back/backpacks.dmi new file mode 100644 index 0000000000000000000000000000000000000000..01e2c1d6923bbe13827cc55ecb3d786084f964ba GIT binary patch literal 26261 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 R@N+YOih_oGsjNlle*hmQcB%jX literal 0 HcmV?d00001 diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 9ff37a4b7e0c7fae80a1374ca2e35187e89530bc..5353677357cffcb9d7e89ca5fb65a48cffcfb0b1 100644 GIT binary patch literal 56964 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 literal 81584 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•Z`ZYrz&zeO0n#o+Ms$pLyh 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 Date: Sat, 5 Oct 2024 22:31:33 -0500 Subject: [PATCH 113/167] Automatic changelog generation for PR #3430 [ci skip] --- html/changelogs/AutoChangeLog-pr-3430.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3430.yml diff --git a/html/changelogs/AutoChangeLog-pr-3430.yml b/html/changelogs/AutoChangeLog-pr-3430.yml new file mode 100644 index 000000000000..d464fc2f8fc4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3430.yml @@ -0,0 +1,4 @@ +author: thgvr +changes: + - {imageadd: Some backpack sprites for Kepori} +delete-after: true From df5118d7fc0df799cd3fdb87794fa42d88974adf Mon Sep 17 00:00:00 2001 From: Aquidu <98631832+Aquidu@users.noreply.github.com> Date: Sun, 6 Oct 2024 16:04:21 -0700 Subject: [PATCH 114/167] Makes Ration Heaters smaller. (#3486) ## About The Pull Request Edits ration heaters to be able to be put back inside of ration packs. ## Why It's Good For The Game It's really, really annoying that you can take ration heaters OUT of ration packs, but CANNOT put them back in. This fixes this by making them both the same size as the rations themselves, and adding ration heaters to the list of accepted items that can be put in ration packs. ## Changelog :cl: code: Changes flameless ration heaters to "small" items code: Adds flameless ration heaters to the ration pack item whitelist. /:cl: --- code/game/objects/items/storage/ration.dm | 4 +++- code/modules/food_and_drinks/kitchen_machinery/microwave.dm | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/storage/ration.dm b/code/game/objects/items/storage/ration.dm index 169e0dfad0a6..9a9e4a5a2617 100644 --- a/code/game/objects/items/storage/ration.dm +++ b/code/game/objects/items/storage/ration.dm @@ -28,7 +28,9 @@ . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) STR.max_items = 7 - STR.set_holdable(list(/obj/item/reagent_containers/food)) + STR.set_holdable(list( + /obj/item/reagent_containers/food, + /obj/item/ration_heater)) STR.locked = TRUE STR.locked_flavor = "sealed closed" diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index 0df04a08658b..db88c5d0cc15 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -365,6 +365,7 @@ icon_state = "ration_heater" grind_results = list(/datum/reagent/iron = 10, /datum/reagent/water = 10, /datum/reagent/consumable/sodiumchloride = 5) heat = 3800 + w_class = WEIGHT_CLASS_SMALL var/obj/item/tocook = null var/mutable_appearance/ration_overlay var/uses = 3 From 7d02a3f7d4a0ec13ffc61d0f45c5097affd6d87a Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 6 Oct 2024 18:15:24 -0500 Subject: [PATCH 115/167] Automatic changelog generation for PR #3486 [ci skip] --- html/changelogs/AutoChangeLog-pr-3486.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3486.yml diff --git a/html/changelogs/AutoChangeLog-pr-3486.yml b/html/changelogs/AutoChangeLog-pr-3486.yml new file mode 100644 index 000000000000..2ec418ab330d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3486.yml @@ -0,0 +1,5 @@ +author: Aquidu +changes: + - {code_imp: Changes flameless ration heaters to "small" items} + - {code_imp: Adds flameless ration heaters to the ration pack item whitelist.} +delete-after: true From 7146aa5a0224b318c2e31f06dc7c9dae68a10dff Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 7 Oct 2024 01:04:16 +0000 Subject: [PATCH 116/167] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3430.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3481.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3486.yml | 5 ----- html/changelogs/archive/2024-10.yml | 7 +++++++ 4 files changed, 7 insertions(+), 13 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3430.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3481.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3486.yml diff --git a/html/changelogs/AutoChangeLog-pr-3430.yml b/html/changelogs/AutoChangeLog-pr-3430.yml deleted file mode 100644 index d464fc2f8fc4..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3430.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: thgvr -changes: - - {imageadd: Some backpack sprites for Kepori} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3481.yml b/html/changelogs/AutoChangeLog-pr-3481.yml deleted file mode 100644 index d4489159840d..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3481.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: thgvr -changes: - - {imageadd: Shrunk down the sprite of guncases} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3486.yml b/html/changelogs/AutoChangeLog-pr-3486.yml deleted file mode 100644 index 2ec418ab330d..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3486.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Aquidu -changes: - - {code_imp: Changes flameless ration heaters to "small" items} - - {code_imp: Adds flameless ration heaters to the ration pack item whitelist.} -delete-after: true diff --git a/html/changelogs/archive/2024-10.yml b/html/changelogs/archive/2024-10.yml index ef18854c4aac..5b95989e7c16 100644 --- a/html/changelogs/archive/2024-10.yml +++ b/html/changelogs/archive/2024-10.yml @@ -69,3 +69,10 @@ Thera-Pissed: - rscadd: angle grinders for salvage - rscadd: reworks plasma cutters for salvage +2024-10-07: + Aquidu: + - code_imp: Changes flameless ration heaters to "small" items + - code_imp: Adds flameless ration heaters to the ration pack item whitelist. + thgvr: + - imageadd: Some backpack sprites for Kepori + - imageadd: Shrunk down the sprite of guncases From 672cf0317de88299406adf628e29a147e0323d84 Mon Sep 17 00:00:00 2001 From: Theos Date: Mon, 7 Oct 2024 00:00:15 -0400 Subject: [PATCH 117/167] Obliterates the lasso (goliath riding no longer requires it) (#3417) ## About The Pull Request No longer player accessible as of #3296 which means less yeehaw ## Why It's Good For The Game ~~horse~~ goliathback cowboy combat ## Changelog :cl: balance: you no longer need a lasso to ride a goliath del: no more lasso /:cl: Signed-off-by: Theos --- code/game/objects/items/storage/belt.dm | 3 +-- .../hostile/mining_mobs/goliath.dm | 1 - code/modules/vehicles/vehicle_key.dm | 12 ------------ icons/obj/vehicles.dmi | Bin 78653 -> 71124 bytes 4 files changed, 1 insertion(+), 15 deletions(-) diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 52a6fdf8738e..54ccfc301e9c 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -383,8 +383,7 @@ /obj/item/storage/bag/plants, /obj/item/stack/marker_beacon, /obj/item/restraints/legcuffs/bola/watcher, - /obj/item/melee/sword/bone, - /obj/item/key/lasso + /obj/item/melee/sword/bone )) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm index e4478b705f45..d9c011fe85f1 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm @@ -226,7 +226,6 @@ D.set_vehicle_dir_layer(NORTH, OBJ_LAYER) D.set_vehicle_dir_layer(EAST, OBJ_LAYER) D.set_vehicle_dir_layer(WEST, OBJ_LAYER) - D.keytype = /obj/item/key/lasso D.drive_verb = "ride" else user.visible_message("[src] is rocking around! You can't put the saddle on!") diff --git a/code/modules/vehicles/vehicle_key.dm b/code/modules/vehicles/vehicle_key.dm index ba21f01289b3..6c6623901331 100644 --- a/code/modules/vehicles/vehicle_key.dm +++ b/code/modules/vehicles/vehicle_key.dm @@ -12,15 +12,3 @@ /obj/item/key/janitor desc = "A keyring with a small steel key, and a pink fob reading \"Pussy Wagon\"." icon_state = "keyjanitor" - -/obj/item/key/lasso - name = "bone lasso" - desc = "Perfect for taming all kinds of supernatural beasts! (Warning: only perfect for taming one kind of supernatural beast.)" - force = 12 - icon_state = "lasso" - item_state = "chain" - lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi' - attack_verb = list("flogged", "whipped", "lashed", "disciplined") - hitsound = 'sound/weapons/whip.ogg' - slot_flags = ITEM_SLOT_BELT diff --git a/icons/obj/vehicles.dmi b/icons/obj/vehicles.dmi index 87cef669faf0a25767bb312c8a767a9ae0dd7ad3..fdefd87860b54d6417da9e7ec87e23990734e42a 100644 GIT binary patch literal 71124 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 literal 78653 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%0Al=G)Nbr~|C!Sv=jMSIlC^$P2xoBI&Yx?N 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 From 0474233e81a65a0436e1c8c2666fe249bfa7576c Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 6 Oct 2024 23:19:57 -0500 Subject: [PATCH 118/167] Automatic changelog generation for PR #3417 [ci skip] --- html/changelogs/AutoChangeLog-pr-3417.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3417.yml diff --git a/html/changelogs/AutoChangeLog-pr-3417.yml b/html/changelogs/AutoChangeLog-pr-3417.yml new file mode 100644 index 000000000000..f00e3b3d4845 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3417.yml @@ -0,0 +1,5 @@ +author: SomeguyManperson +changes: + - {balance: you no longer need a lasso to ride a goliath} + - {rscdel: no more lasso} +delete-after: true From 5cc6a00c472e4b5fc2ca041449677282f73bc97f Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Mon, 7 Oct 2024 00:04:47 -0400 Subject: [PATCH 119/167] Removes A Lot Of Cruft (#3447) ## About The Pull Request Removes the following: Swarmers Bloodcult Soulstones Everything Devils Meteor Gamemode Area/shuttle - [x] Compiles and runs on my local ## Why It's Good For The Game I'm fairly sure none of this stuff fits regardless of if it works with the game. And area/shuttle is annoying to see in sdmm. God I hate it when you start pulling one thing out and it's easier to just pull the rest out than to adjust it to work in the event that someone might use it for an event once. ## Changelog :cl: code: A large amount of cruft has been deleted. /:cl: --- .../RandomRuins/ReebeRuins/reebe_swarmers.dmm | 471 ------ .../shuttles/nanotrasen/nanotrasen_mimir.dmm | 169 +-- check_regex.yaml | 4 +- code/__DEFINES/atom_hud.dm | 30 +- code/__DEFINES/cinematics.dm | 2 - code/__DEFINES/cult.dm | 29 - code/__DEFINES/is_helpers.dm | 4 - code/__DEFINES/language.dm | 1 - code/__DEFINES/misc.dm | 5 - code/__DEFINES/mobs.dm | 4 - code/__DEFINES/preferences.dm | 1 - code/__DEFINES/role_preferences.dm | 4 - code/__DEFINES/status_effects.dm | 2 - code/__DEFINES/traits.dm | 4 - code/__HELPERS/areas.dm | 1 - code/__HELPERS/game.dm | 1 - code/_globalvars/game_modes.dm | 3 - code/_globalvars/lists/maintenance_loot.dm | 1 - code/_globalvars/lists/poll_ignore.dm | 2 - code/_onclick/hud/_defines.dm | 1 - code/_onclick/hud/alert.dm | 109 -- code/_onclick/hud/devil.dm | 69 - code/_onclick/hud/hud.dm | 2 - code/_onclick/hud/human.dm | 33 - code/_onclick/hud/swarmer.dm | 98 -- code/_onclick/other_mobs.dm | 8 - code/controllers/subsystem/shuttle.dm | 2 +- code/controllers/subsystem/ticker.dm | 6 - code/controllers/subsystem/traumas.dm | 14 +- code/datums/ai_laws.dm | 15 - code/datums/cinematic.dm | 52 - code/datums/components/soulstoned.dm | 33 - code/datums/hud.dm | 4 - code/datums/map_zones.dm | 2 +- code/datums/mind.dm | 20 +- .../mood_events/generic_positive_events.dm | 5 - code/datums/ruins/reebe.dm | 7 - code/datums/saymode.dm | 6 +- code/datums/status_effects/buffs.dm | 29 - code/datums/status_effects/debuffs.dm | 13 - code/game/alternate_appearance.dm | 28 - code/game/area/Space_Station_13_areas.dm | 1350 ----------------- code/game/area/areas.dm | 2 +- code/game/area/areas/shuttles.dm | 185 --- code/game/area/ship_areas.dm | 14 + code/game/atoms.dm | 60 - code/game/gamemodes/cult/cult.dm | 182 --- .../devil/devil_agent/devil_agent.dm | 44 - code/game/gamemodes/devil/devil_game_mode.dm | 106 -- code/game/gamemodes/devil/game_mode.dm | 26 - code/game/gamemodes/devil/objectives.dm | 113 -- .../gamemodes/dynamic/dynamic_rulesets.dm | 2 +- .../dynamic/dynamic_rulesets_roundstart.dm | 149 -- code/game/gamemodes/events.dm | 9 +- code/game/gamemodes/game_mode.dm | 3 - code/game/gamemodes/meteor/meteor.dm | 61 - code/game/gamemodes/objective.dm | 15 +- code/game/machinery/computer/arcade.dm | 1 - code/game/machinery/doors/airlock.dm | 20 - code/game/machinery/doors/airlock_types.dm | 109 -- code/game/machinery/drone_dispenser.dm | 22 - code/game/machinery/shieldgen.dm | 21 - code/game/machinery/syndicatebeacon.dm | 4 - code/game/objects/effects/blessing.dm | 7 - code/game/objects/effects/forcefields.dm | 8 - code/game/objects/items/AI_modules.dm | 2 +- code/game/objects/items/blueprints.dm | 1 - .../items/implants/implant_mindshield.dm | 5 +- code/game/objects/items/robot/robot_parts.dm | 1 - code/game/objects/items/shuttle_creator.dm | 1 - .../items/stacks/sheets/sheet_types.dm | 1 - code/game/objects/items/storage/belt.dm | 26 - .../game/objects/items/storage/uplink_kits.dm | 9 - code/game/objects/items/toys.dm | 25 - code/game/objects/structures/ai_core.dm | 1 - code/game/objects/structures/bedsheet_bin.dm | 2 +- .../objects/structures/door_assembly_types.dm | 14 - .../objects/structures/ghost_role_spawners.dm | 52 - code/game/objects/structures/girders.dm | 54 - code/game/turfs/closed/wall/misc_walls.dm | 12 - code/game/turfs/open/floor.dm | 5 - code/game/turfs/open/floor/reinf_floor.dm | 30 - code/modules/admin/admin.dm | 16 - code/modules/admin/fun_balloon.dm | 5 - code/modules/admin/sql_ban_system.dm | 4 +- code/modules/admin/topic.dm | 21 - code/modules/admin/verbs/one_click_antag.dm | 33 - code/modules/admin/verbs/pray.dm | 5 - code/modules/antagonists/borer/borer.dm | 4 - code/modules/antagonists/cult/blood_magic.dm | 803 ---------- code/modules/antagonists/cult/cult.dm | 397 ----- code/modules/antagonists/cult/cult_comms.dm | 461 ------ code/modules/antagonists/cult/cult_items.dm | 524 ------- .../antagonists/cult/cult_structures.dm | 288 ---- .../antagonists/cult/cult_turf_overlay.dm | 32 - .../antagonists/cult/rune_spawn_action.dm | 115 -- code/modules/antagonists/cult/runes.dm | 1029 ------------- code/modules/antagonists/devil/devil.dm | 506 ------ code/modules/antagonists/devil/imp/imp.dm | 68 - .../devil/sintouched/objectives.dm | 23 - .../devil/sintouched/sintouched.dm | 76 - .../devil/true_devil/_true_devil.dm | 221 --- .../antagonists/devil/true_devil/inventory.dm | 48 - .../antagonists/disease/disease_datum.dm | 10 - .../nukeop/equipment/nuclear_challenge.dm | 3 - .../nukeop/equipment/nuclearbomb.dm | 2 - .../revenant/revenant_abilities.dm | 2 +- code/modules/antagonists/swarmer/swarmer.dm | 677 --------- .../antagonists/swarmer/swarmer_event.dm | 28 - .../antagonists/wizard/equipment/soulstone.dm | 354 ----- .../antagonists/wizard/equipment/spellbook.dm | 12 - code/modules/asset_cache/asset_list_items.dm | 1 - .../awaymissions/mission_code/snowdin.dm | 6 - .../mission_code/stationCollision.dm | 155 -- code/modules/cargo/exports/lavaland.dm | 1 - code/modules/cargo/exports/parts.dm | 5 - code/modules/client/preferences.dm | 3 - code/modules/clothing/outfits/standard.dm | 7 - code/modules/clothing/shoes/miscellaneous.dm | 23 - code/modules/clothing/under/color.dm | 9 +- code/modules/events/devil.dm | 53 - code/modules/events/major_dust.dm | 19 - code/modules/events/meateor_wave.dm | 11 - code/modules/events/meteor_wave.dm | 76 - code/modules/language/language_holder.dm | 5 - code/modules/library/lib_codex_gigas.dm | 104 -- code/modules/mapping/writer.dm | 2 +- .../mining/lavaland/necropolis_chests.dm | 10 +- code/modules/mining/shelters.dm | 2 +- code/modules/mob/living/carbon/human/death.dm | 2 - .../mob/living/carbon/human/examine.dm | 2 - code/modules/mob/living/living.dm | 18 - code/modules/mob/living/living_defense.dm | 26 - code/modules/mob/living/silicon/laws.dm | 10 - code/modules/mob/living/silicon/login.dm | 2 - code/modules/mob/living/silicon/robot/laws.dm | 6 - code/modules/mob/living/silicon/silicon.dm | 24 - .../mob/living/simple_animal/constructs.dm | 497 ------ .../mob/living/simple_animal/friendly/dog.dm | 44 - .../hostile/megafauna/swarmer.dm | 285 ---- .../modules/mob/living/simple_animal/shade.dm | 66 - code/modules/mob/mob_helpers.dm | 3 - code/modules/mob/transform_procs.dm | 5 - code/modules/paperwork/contract.dm | 314 ---- code/modules/paperwork/photocopier.dm | 33 +- code/modules/power/singularity/narsie.dm | 238 --- .../chemistry/reagents/other_reagents.dm | 61 +- .../chemistry/recipes/pyrotechnics.dm | 10 - code/modules/recycling/conveyor2.dm | 4 +- code/modules/shuttle/shuttle.dm | 10 +- code/modules/shuttle/supply.dm | 167 -- code/modules/spells/spell.dm | 8 - .../spells/spell_types/construct_spells.dm | 327 ---- code/modules/spells/spell_types/devil.dm | 236 --- .../modules/spells/spell_types/devil_boons.dm | 76 - .../spell_types/pointed/mind_transfer.dm | 2 +- code/modules/spells/spell_types/shapeshift.dm | 3 +- code/modules/spells/spell_types/wizard.dm | 26 - code/modules/station_goals/shield.dm | 23 - code/modules/surgery/bodyparts/head.dm | 5 - code/modules/surgery/bodyparts/parts.dm | 29 - .../surgery/experimental_dissection.dm | 2 +- code/modules/surgery/organs/vocal_cords.dm | 26 +- code/modules/unit_tests/create_and_destroy.dm | 2 - code/modules/uplink/uplink_items.dm | 7 - shiptest.dme | 42 - 166 files changed, 167 insertions(+), 12781 deletions(-) delete mode 100644 _maps/RandomRuins/ReebeRuins/reebe_swarmers.dmm delete mode 100644 code/__DEFINES/cult.dm delete mode 100644 code/_onclick/hud/devil.dm delete mode 100644 code/_onclick/hud/swarmer.dm delete mode 100644 code/datums/components/soulstoned.dm delete mode 100644 code/game/area/Space_Station_13_areas.dm delete mode 100644 code/game/area/areas/shuttles.dm delete mode 100644 code/game/gamemodes/cult/cult.dm delete mode 100644 code/game/gamemodes/devil/devil_agent/devil_agent.dm delete mode 100644 code/game/gamemodes/devil/devil_game_mode.dm delete mode 100644 code/game/gamemodes/devil/game_mode.dm delete mode 100644 code/game/gamemodes/devil/objectives.dm delete mode 100644 code/game/gamemodes/meteor/meteor.dm delete mode 100644 code/modules/antagonists/cult/blood_magic.dm delete mode 100644 code/modules/antagonists/cult/cult.dm delete mode 100644 code/modules/antagonists/cult/cult_comms.dm delete mode 100644 code/modules/antagonists/cult/cult_items.dm delete mode 100644 code/modules/antagonists/cult/cult_structures.dm delete mode 100644 code/modules/antagonists/cult/cult_turf_overlay.dm delete mode 100644 code/modules/antagonists/cult/rune_spawn_action.dm delete mode 100644 code/modules/antagonists/cult/runes.dm delete mode 100644 code/modules/antagonists/devil/devil.dm delete mode 100644 code/modules/antagonists/devil/imp/imp.dm delete mode 100644 code/modules/antagonists/devil/sintouched/objectives.dm delete mode 100644 code/modules/antagonists/devil/sintouched/sintouched.dm delete mode 100644 code/modules/antagonists/devil/true_devil/_true_devil.dm delete mode 100644 code/modules/antagonists/devil/true_devil/inventory.dm delete mode 100644 code/modules/antagonists/swarmer/swarmer.dm delete mode 100644 code/modules/antagonists/swarmer/swarmer_event.dm delete mode 100644 code/modules/antagonists/wizard/equipment/soulstone.dm delete mode 100644 code/modules/awaymissions/mission_code/stationCollision.dm delete mode 100644 code/modules/events/devil.dm delete mode 100644 code/modules/events/major_dust.dm delete mode 100644 code/modules/events/meateor_wave.dm delete mode 100644 code/modules/events/meteor_wave.dm delete mode 100644 code/modules/library/lib_codex_gigas.dm delete mode 100644 code/modules/mob/living/simple_animal/constructs.dm delete mode 100644 code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm delete mode 100644 code/modules/mob/living/simple_animal/shade.dm delete mode 100644 code/modules/power/singularity/narsie.dm delete mode 100644 code/modules/spells/spell_types/construct_spells.dm delete mode 100644 code/modules/spells/spell_types/devil.dm delete mode 100644 code/modules/spells/spell_types/devil_boons.dm diff --git a/_maps/RandomRuins/ReebeRuins/reebe_swarmers.dmm b/_maps/RandomRuins/ReebeRuins/reebe_swarmers.dmm deleted file mode 100644 index 7c864f829fda..000000000000 --- a/_maps/RandomRuins/ReebeRuins/reebe_swarmers.dmm +++ /dev/null @@ -1,471 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"a" = ( -/turf/template_noop, -/area/template_noop) -"t" = ( -/turf/open/floor/grass/fairy/reebe, -/area/overmap_encounter/planetoid/reebe) -"u" = ( -/obj/structure/flora/tree/jungle{ - icon = 'icons/obj/flora/chapeltree.dmi'; - icon_state = "churchtree"; - pixel_x = -16; - pixel_y = 0 - }, -/turf/open/floor/grass/fairy/reebe, -/area/overmap_encounter/planetoid/reebe) -"x" = ( -/mob/living/simple_animal/hostile/asteroid/hivelord/legion/crystal, -/turf/open/floor/grass/fairy/reebe, -/area/overmap_encounter/planetoid/reebe) -"N" = ( -/turf/closed/mineral/random/reebe, -/area/ruin/reebe) -"R" = ( -/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon, -/turf/open/floor/grass/fairy/reebe, -/area/ruin/reebe) -"X" = ( -/turf/closed/mineral/random/reebe, -/area/overmap_encounter/planetoid/reebe) - -(1,1,1) = {" -a -a -a -a -a -a -a -a -t -t -t -a -a -a -a -a -a -a -a -a -"} -(2,1,1) = {" -a -a -t -t -t -t -a -a -N -u -t -t -N -N -t -t -t -t -a -a -"} -(3,1,1) = {" -a -t -N -t -N -x -t -t -t -N -N -t -t -t -t -N -N -t -a -a -"} -(4,1,1) = {" -a -t -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -a -a -"} -(5,1,1) = {" -t -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -u -a -a -"} -(6,1,1) = {" -a -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -t -t -a -"} -(7,1,1) = {" -a -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -a -"} -(8,1,1) = {" -a -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -a -"} -(9,1,1) = {" -a -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -a -"} -(10,1,1) = {" -t -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -a -"} -(11,1,1) = {" -t -u -t -N -N -N -N -N -N -R -N -N -N -N -N -N -N -t -t -a -"} -(12,1,1) = {" -t -t -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -a -"} -(13,1,1) = {" -t -N -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -t -a -"} -(14,1,1) = {" -t -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -a -a -"} -(15,1,1) = {" -a -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -t -a -"} -(16,1,1) = {" -t -t -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -a -"} -(17,1,1) = {" -t -t -t -t -N -N -N -N -N -N -N -N -N -N -N -N -N -N -t -a -"} -(18,1,1) = {" -a -a -a -t -N -N -N -N -N -N -N -t -t -t -t -N -N -t -t -a -"} -(19,1,1) = {" -a -a -a -t -t -t -t -t -t -t -t -t -N -X -u -t -t -t -a -a -"} -(20,1,1) = {" -a -a -a -a -a -a -a -a -a -a -a -a -t -t -t -a -a -a -a -a -"} diff --git a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm index 716d68f653a9..7791494023f4 100644 --- a/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm +++ b/_maps/shuttles/nanotrasen/nanotrasen_mimir.dmm @@ -2314,20 +2314,6 @@ /obj/item/reagent_containers/food/snacks/urinalcake, /turf/open/floor/plasteel/white, /area/ship/crew/toilet) -"nb" = ( -/obj/structure/table/wood, -/obj/structure/window/reinforced/tinted/frosted{ - dir = 8 - }, -/obj/structure/window/reinforced/tinted/frosted{ - dir = 4 - }, -/obj/item/flashlight/lamp{ - pixel_y = 13 - }, -/obj/item/book/codex_gigas, -/turf/open/floor/wood, -/area/ship/crew/dorm) "nh" = ( /turf/closed/wall/r_wall, /area/ship/crew/dorm/dormtwo) @@ -2804,32 +2790,6 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/ship/crew/hydroponics) -"qe" = ( -/obj/structure/closet/secure_closet/freezer{ - name = "Refrigerator"; - desc = "A refrigerated cabinet for food." - }, -/obj/effect/turf_decal/siding/wideplating/light/end{ - dir = 4 - }, -/obj/item/storage/fancy/egg_box, -/obj/item/storage/fancy/egg_box, -/obj/item/reagent_containers/condiment/milk, -/obj/item/reagent_containers/condiment/milk, -/obj/item/reagent_containers/condiment/milk, -/obj/item/reagent_containers/condiment/soymilk, -/obj/item/reagent_containers/condiment/soymilk, -/obj/item/reagent_containers/condiment/soymilk, -/obj/item/reagent_containers/condiment/flour, -/obj/item/reagent_containers/condiment/flour, -/obj/item/reagent_containers/condiment/flour, -/obj/item/reagent_containers/condiment/sugar, -/obj/item/reagent_containers/condiment/sugar, -/obj/item/reagent_containers/condiment/rice, -/obj/item/reagent_containers/food/snacks/tofu, -/obj/item/reagent_containers/food/snacks/tofu, -/turf/open/floor/plasteel/mono/white, -/area/ship/crew/canteen/kitchen) "qh" = ( /obj/machinery/hydroponics/constructable{ pixel_y = 8 @@ -3876,27 +3836,6 @@ /obj/structure/table, /turf/open/floor/plasteel, /area/ship/crew/canteen/kitchen) -"xb" = ( -/obj/structure/table, -/obj/item/reagent_containers/condiment/sugar{ - pixel_y = 4 - }, -/obj/item/reagent_containers/condiment/rice{ - pixel_y = 10; - pixel_x = 3 - }, -/obj/item/reagent_containers/condiment/enzyme{ - pixel_x = -5; - pixel_y = 5 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ - dir = 5 - }, -/turf/open/floor/plasteel/mono/white, -/area/ship/crew/canteen/kitchen) "xc" = ( /obj/effect/turf_decal/siding/wood/end{ dir = 8 @@ -4100,10 +4039,6 @@ "ys" = ( /turf/closed/wall/r_wall, /area/ship/crew/dorm) -"yu" = ( -/obj/item/clothing/mask/gas/monkeymask, -/turf/open/floor/plating, -/area/ship/maintenance/fore) "yw" = ( /obj/effect/decal/cleanable/food/tomato_smudge, /obj/effect/turf_decal/siding/wood{ @@ -4460,21 +4395,6 @@ }, /turf/open/floor/plasteel/tech/grid, /area/ship/maintenance/starboard) -"AH" = ( -/obj/structure/table, -/obj/item/toy/figure/chef, -/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, -/obj/item/reagent_containers/condiment/saltshaker{ - pixel_y = 10; - pixel_x = -7 - }, -/obj/item/reagent_containers/condiment/peppermill{ - pixel_x = 8; - pixel_y = 9 - }, -/turf/open/floor/plasteel/mono/white, -/area/ship/crew/canteen/kitchen) "AI" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden/layer4{ dir = 6 @@ -4567,6 +4487,19 @@ }, /turf/open/floor/plasteel, /area/ship/security/prison) +"Bf" = ( +/obj/structure/table/wood, +/obj/structure/window/reinforced/tinted/frosted{ + dir = 8 + }, +/obj/structure/window/reinforced/tinted/frosted{ + dir = 4 + }, +/obj/item/flashlight/lamp{ + pixel_y = 13 + }, +/turf/open/floor/wood, +/area/ship/crew/dorm) "Bi" = ( /obj/structure/cable{ icon_state = "1-2" @@ -4921,6 +4854,27 @@ /obj/effect/spawner/lootdrop/ration, /turf/open/floor/plasteel, /area/ship/security/prison) +"Dj" = ( +/obj/structure/table, +/obj/item/reagent_containers/condiment/sugar{ + pixel_y = 4 + }, +/obj/item/reagent_containers/condiment/rice{ + pixel_y = 10; + pixel_x = 3 + }, +/obj/item/reagent_containers/condiment/enzyme{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{ + dir = 5 + }, +/turf/open/floor/plasteel/mono/white, +/area/ship/crew/canteen/kitchen) "Dm" = ( /obj/structure/window/reinforced/spawner{ dir = 1 @@ -5863,6 +5817,21 @@ /obj/effect/turf_decal/siding/yellow, /turf/open/floor/plasteel, /area/ship/security/prison) +"Ie" = ( +/obj/structure/table, +/obj/item/toy/figure/chef, +/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_y = 10; + pixel_x = -7 + }, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 8; + pixel_y = 9 + }, +/turf/open/floor/plasteel/mono/white, +/area/ship/crew/canteen/kitchen) "Ig" = ( /obj/machinery/door/poddoor/shutters/preopen{ id = "quickpoint_shut"; @@ -6210,6 +6179,10 @@ }, /turf/open/floor/plasteel, /area/ship/security) +"Kc" = ( +/obj/item/clothing/mask/gas/monkeymask, +/turf/open/floor/plating, +/area/ship/maintenance/fore) "Kg" = ( /obj/effect/turf_decal/siding/red{ dir = 8 @@ -8459,6 +8432,32 @@ }, /turf/open/floor/wood, /area/ship/crew/dorm/dormfour) +"Xf" = ( +/obj/structure/closet/secure_closet/freezer{ + name = "Refrigerator"; + desc = "A refrigerated cabinet for food." + }, +/obj/effect/turf_decal/siding/wideplating/light/end{ + dir = 4 + }, +/obj/item/storage/fancy/egg_box, +/obj/item/storage/fancy/egg_box, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/flour, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/rice, +/obj/item/reagent_containers/food/snacks/tofu, +/obj/item/reagent_containers/food/snacks/tofu, +/turf/open/floor/plasteel/mono/white, +/area/ship/crew/canteen/kitchen) "Xg" = ( /obj/machinery/door/window{ dir = 4 @@ -9144,7 +9143,7 @@ Mv Lu rq Hm -nb +Bf dJ VG oM @@ -9550,8 +9549,8 @@ PP td VK Fg -AH -xb +Ie +Dj nR zq mU @@ -9674,7 +9673,7 @@ pe Rr KQ wa -qe +Xf Ad gZ eF @@ -10356,7 +10355,7 @@ oI VU Dy nh -yu +Kc nK jY jY diff --git a/check_regex.yaml b/check_regex.yaml index 41174bd9aa22..a56bd83644d3 100644 --- a/check_regex.yaml +++ b/check_regex.yaml @@ -29,7 +29,7 @@ standards: - exactly: [1, "/area text paths", '"/area'] - exactly: [17, "/datum text paths", '"/datum'] - exactly: [4, "/mob text paths", '"/mob'] - - exactly: [42, "/obj text paths", '"/obj'] + - exactly: [36, "/obj text paths", '"/obj'] - exactly: [0, "/turf text paths", '"/turf'] - exactly: [115, "text2path uses", "text2path"] @@ -38,7 +38,7 @@ standards: - exactly: [ - 262, + 261, "non-bitwise << uses", '(?[souls]" - switch(souls) - if(0,null) - icon_state = "Devil-1" - if(1,2) - icon_state = "Devil-2" - if(3 to 5) - icon_state = "Devil-3" - if(6 to 8) - icon_state = "Devil-4" - if(9 to INFINITY) - icon_state = "Devil-5" - else - icon_state = "Devil-6" - -/atom/movable/screen/devil/soul_counter/proc/clear() - invisibility = INVISIBILITY_ABSTRACT - /atom/movable/screen/ling icon = 'icons/hud/screen_changeling.dmi' invisibility = INVISIBILITY_ABSTRACT @@ -338,10 +309,6 @@ lingstingdisplay.hud = src infodisplay += lingstingdisplay - devilsouldisplay = new /atom/movable/screen/devil/soul_counter - devilsouldisplay.hud = src - infodisplay += devilsouldisplay - zone_select = new /atom/movable/screen/zone_sel() zone_select.icon = ui_style zone_select.hud = src diff --git a/code/_onclick/hud/swarmer.dm b/code/_onclick/hud/swarmer.dm deleted file mode 100644 index 6aba23fab5c7..000000000000 --- a/code/_onclick/hud/swarmer.dm +++ /dev/null @@ -1,98 +0,0 @@ - - -/atom/movable/screen/swarmer - icon = 'icons/mob/swarmer.dmi' - -/atom/movable/screen/swarmer/FabricateTrap - icon_state = "ui_trap" - name = "Create trap (Costs 5 Resources)" - desc = "Creates a trap that will nonlethally shock any non-swarmer that attempts to cross it. (Costs 5 resources)" - -/atom/movable/screen/swarmer/FabricateTrap/Click() - if(isswarmer(usr)) - var/mob/living/simple_animal/hostile/swarmer/S = usr - S.CreateTrap() - -/atom/movable/screen/swarmer/Barricade - icon_state = "ui_barricade" - name = "Create barricade (Costs 5 Resources)" - desc = "Creates a destructible barricade that will stop any non swarmer from passing it. Also allows disabler beams to pass through. (Costs 5 resources)" - -/atom/movable/screen/swarmer/Barricade/Click() - if(isswarmer(usr)) - var/mob/living/simple_animal/hostile/swarmer/S = usr - S.CreateBarricade() - -/atom/movable/screen/swarmer/Replicate - icon_state = "ui_replicate" - name = "Replicate (Costs 50 Resources)" - desc = "Creates another of our kind." - -/atom/movable/screen/swarmer/Replicate/Click() - if(isswarmer(usr)) - var/mob/living/simple_animal/hostile/swarmer/S = usr - S.CreateSwarmer() - -/atom/movable/screen/swarmer/RepairSelf - icon_state = "ui_self_repair" - name = "Repair self" - desc = "Repairs damage to our body." - -/atom/movable/screen/swarmer/RepairSelf/Click() - if(isswarmer(usr)) - var/mob/living/simple_animal/hostile/swarmer/S = usr - S.RepairSelf() - -/atom/movable/screen/swarmer/ToggleLight - icon_state = "ui_light" - name = "Toggle light" - desc = "Toggles our inbuilt light on or off." - -/atom/movable/screen/swarmer/ToggleLight/Click() - if(isswarmer(usr)) - var/mob/living/simple_animal/hostile/swarmer/S = usr - S.ToggleLight() - -/atom/movable/screen/swarmer/ContactSwarmers - icon_state = "ui_contact_swarmers" - name = "Contact swarmers" - desc = "Sends a message to all other swarmers, should they exist." - -/atom/movable/screen/swarmer/ContactSwarmers/Click() - if(isswarmer(usr)) - var/mob/living/simple_animal/hostile/swarmer/S = usr - S.ContactSwarmers() - -/datum/hud/swarmer/New(mob/owner) - ..() - var/atom/movable/screen/using - - using = new /atom/movable/screen/swarmer/FabricateTrap() - using.screen_loc = ui_hand_position(2) - using.hud = src - static_inventory += using - - using = new /atom/movable/screen/swarmer/Barricade() - using.screen_loc = ui_hand_position(1) - using.hud = src - static_inventory += using - - using = new /atom/movable/screen/swarmer/Replicate() - using.screen_loc = ui_zonesel - using.hud = src - static_inventory += using - - using = new /atom/movable/screen/swarmer/RepairSelf() - using.screen_loc = ui_storage1 - using.hud = src - static_inventory += using - - using = new /atom/movable/screen/swarmer/ToggleLight() - using.screen_loc = ui_back - using.hud = src - static_inventory += using - - using = new /atom/movable/screen/swarmer/ContactSwarmers() - using.screen_loc = ui_inventory - using.hud = src - static_inventory += using diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 806e3e6df328..8e848963567e 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -177,14 +177,6 @@ /atom/proc/attack_drone(mob/living/simple_animal/drone/user) attack_hand(user) //defaults to attack_hand. Override it when you don't want drones to do same stuff as humans. - -/* - True Devil -*/ - -/mob/living/carbon/true_devil/UnarmedAttack(atom/A, proximity) - A.attack_hand(src) - /* Brain */ diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index f56fd9e73ab9..552ce70453dd 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -150,7 +150,7 @@ SUBSYSTEM_DEF(shuttle) mapzone.parallax_movedir = travel_dir - var/area/shuttle/transit/transit_area = new() + var/area/hyperspace/transit_area = new() vlevel.fill_in(transit_path, transit_area) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index a635a3d6389e..5ca963c53472 100644 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -442,12 +442,6 @@ SUBSYSTEM_DEF(ticker) news_message = "[station_name()] has been evacuated after transmitting the following distress beacon:\n\n[emergency_reason]" else news_message = "The crew of [station_name()] has been evacuated amid unconfirmed reports of enemy activity." - if(CULT_ESCAPE) - news_message = "Security Alert: A group of religious fanatics have escaped from [station_name()]." - if(CULT_FAILURE) - news_message = "Following the dismantling of a restricted cult aboard [station_name()], we would like to remind all employees that worship outside of the Chapel is strictly prohibited, and cause for termination." - if(CULT_SUMMON) - news_message = "Company officials would like to clarify that [station_name()] was scheduled to be decommissioned following meteor damage earlier this year. Earlier reports of an unknowable eldritch horror were made in error." if(NUKE_MISS) news_message = "The Syndicate have bungled a terrorist attack [station_name()], detonating a nuclear weapon in empty space nearby." if(OPERATIVES_KILLED) diff --git a/code/controllers/subsystem/traumas.dm b/code/controllers/subsystem/traumas.dm index e98956775698..9688f008ffba 100644 --- a/code/controllers/subsystem/traumas.dm +++ b/code/controllers/subsystem/traumas.dm @@ -44,10 +44,9 @@ SUBSYSTEM_DEF(traumas) "skeletons" = typecacheof(list(/mob/living/simple_animal/hostile/human/skeleton)), "snakes" = typecacheof(list(/mob/living/simple_animal/hostile/retaliate/poison/snake)), "robots" = typecacheof(list(/mob/living/silicon/robot, /mob/living/silicon/ai, - /mob/living/simple_animal/drone, /mob/living/simple_animal/bot, /mob/living/simple_animal/hostile/swarmer)), + /mob/living/simple_animal/drone, /mob/living/simple_animal/bot)), "doctors" = typecacheof(list(/mob/living/simple_animal/bot/medbot)), - "the supernatural" = typecacheof(list(/mob/living/simple_animal/hostile/construct, - /mob/living/simple_animal/revenant, /mob/living/simple_animal/shade)), + "the supernatural" = typecacheof(list(/mob/living/simple_animal/revenant)), "aliens" = typecacheof(list(/mob/living/carbon/alien, /mob/living/simple_animal/slime, /mob/living/simple_animal/hostile/facehugger)), "conspiracies" = typecacheof(list(/mob/living/simple_animal/bot/secbot, /mob/living/simple_animal/drone, /mob/living/simple_animal/pet/penguin)), @@ -104,7 +103,7 @@ SUBSYSTEM_DEF(traumas) "robots" = typecacheof(list( /obj/machinery/computer/upload, /obj/item/aiModule/, /obj/machinery/recharge_station, - /obj/item/aicard, /obj/item/deactivated_swarmer, /obj/effect/mob_spawn/swarmer)), + /obj/item/aicard)), "doctors" = typecacheof(list( /obj/item/clothing/under/rank/medical, @@ -124,11 +123,6 @@ SUBSYSTEM_DEF(traumas) /obj/item/card/id/captains_spare, /obj/item/card/id/centcom, /obj/machinery/door/airlock/command)), "the supernatural" = typecacheof(list( - /obj/structure/destructible/cult, /obj/item/tome, - /obj/item/restraints/legcuffs/bola/cult, /obj/item/clothing/suit/space/hardsuit/cult, - /obj/effect/rune, - /obj/machinery/door/airlock/cult, /obj/singularity/narsie, - /obj/item/soulstone, /obj/item/clothing/suit/wizrobe, /obj/item/clothing/head/wizard, /obj/item/spellbook, /obj/item/staff, /obj/item/clothing/suit/space/hardsuit/shielded/wizard, /obj/item/clothing/suit/space/hardsuit/wizard, /obj/item/clothing/under/rank/civilian/chaplain)), @@ -160,7 +154,7 @@ SUBSYSTEM_DEF(traumas) phobia_turfs = list( "space" = typecacheof(list(/turf/open/space, /turf/open/floor/holofloor/space, /turf/open/floor/fakespace)), - "the supernatural" = typecacheof(list(/turf/open/floor/plasteel/cult, /turf/closed/wall/mineral/cult)), + "the supernatural" = typecacheof(/turf/closed/wall/mineral/cult, /turf/open/floor/plasteel/cult), "aliens" = typecacheof(list( /turf/open/floor/plating/abductor, /turf/open/floor/plating/abductor2, /turf/open/floor/mineral/abductor, /turf/closed/wall/mineral/abductor)), diff --git a/code/datums/ai_laws.dm b/code/datums/ai_laws.dm index d2b499de92ed..acaa03d3ff7a 100644 --- a/code/datums/ai_laws.dm +++ b/code/datums/ai_laws.dm @@ -1,4 +1,3 @@ -#define LAW_DEVIL "devil" #define LAW_ZEROTH "zeroth" #define LAW_INHERENT "inherent" #define LAW_SUPPLIED "supplied" @@ -15,7 +14,6 @@ var/list/ion = list() var/list/hacked = list() var/mob/living/silicon/owner - var/list/devillaws = list() var/id = DEFAULT_AI_LAWID /datum/ai_laws/Destroy(force, ...) @@ -281,8 +279,6 @@ /datum/ai_laws/proc/get_law_amount(groups) var/law_amount = 0 - if(devillaws && (LAW_DEVIL in groups)) - law_amount++ if(zeroth && (LAW_ZEROTH in groups)) law_amount++ if(ion.len && (LAW_ION in groups)) @@ -298,9 +294,6 @@ law_amount++ return law_amount -/datum/ai_laws/proc/set_law_sixsixsix(laws) - devillaws = laws - /datum/ai_laws/proc/set_zeroth_law(law, law_borg = null) zeroth = law if(law_borg) //Making it possible for slaved borgs to see a different law 0 than their AI. --NEO @@ -437,10 +430,6 @@ zeroth = null zeroth_borg = null -/datum/ai_laws/proc/clear_law_sixsixsix(force) - if(force || !is_devil(owner)) - devillaws = null - /datum/ai_laws/proc/associate(mob/living/silicon/M) if(!owner) owner = M @@ -456,10 +445,6 @@ /datum/ai_laws/proc/get_law_list(include_zeroth = FALSE, show_numbers = TRUE, render_html = TRUE) var/list/data = list() - if (include_zeroth && devillaws) - for(var/law in devillaws) - data += "[show_numbers ? "666:" : ""] [render_html ? "[law]" : law]" - if (include_zeroth && zeroth) data += "[show_numbers ? "0:" : ""] [render_html ? "[zeroth]" : zeroth]" diff --git a/code/datums/cinematic.dm b/code/datums/cinematic.dm index 7711092b9778..9529cd19567a 100644 --- a/code/datums/cinematic.dm +++ b/code/datums/cinematic.dm @@ -182,47 +182,6 @@ special() screen.icon_state = "summary_malf" -/datum/cinematic/cult - id = CINEMATIC_CULT - -/datum/cinematic/cult/content() - screen.icon_state = null - flick("intro_cult",screen) - sleep(25) - cinematic_sound(sound('sound/magic/enter_blood.ogg')) - sleep(28) - cinematic_sound(sound('sound/machines/terminal_off.ogg')) - sleep(20) - flick("station_corrupted",screen) - cinematic_sound(sound('sound/effects/ghost.ogg')) - sleep(70) - special() - -/datum/cinematic/cult_nuke - id = CINEMATIC_CULT_NUKE - -/datum/cinematic/cult_nuke/content() - flick("intro_nuke",screen) - sleep(35) - flick("station_explode_fade_red",screen) - cinematic_sound(sound('sound/effects/explosion_distant.ogg')) - special() - screen.icon_state = "summary_cult" - -/datum/cinematic/cult_fail - id = CINEMATIC_CULT_FAIL - -/datum/cinematic/cult_fail/content() - screen.icon_state = "station_intact" - sleep(20) - cinematic_sound(sound('sound/creatures/narsie_rises.ogg')) - sleep(60) - cinematic_sound(sound('sound/effects/explosion_distant.ogg')) - sleep(10) - cinematic_sound(sound('sound/magic/demon_dies.ogg')) - sleep(30) - special() - /datum/cinematic/nuke_annihilation id = CINEMATIC_ANNIHILATION @@ -274,14 +233,3 @@ cinematic_sound(sound('sound/items/airhorn.ogg')) flick("summary_selfdes",screen) //??? special() - -/* Intended usage. -Nuke.Explosion() - -> Cinematic(NUKE_BOOM,world) - -> ActualExplosion() - -> Mode.OnExplosion() - - -Narsie() - -> Cinematic(CULT,world) -*/ diff --git a/code/datums/components/soulstoned.dm b/code/datums/components/soulstoned.dm deleted file mode 100644 index 04e514062879..000000000000 --- a/code/datums/components/soulstoned.dm +++ /dev/null @@ -1,33 +0,0 @@ -//adds godmode while in the container, prevents moving, and clears these effects up after leaving the stone -/datum/component/soulstoned - var/atom/movable/container - -/datum/component/soulstoned/Initialize(atom/movable/container) - if(!isanimal(parent)) - return COMPONENT_INCOMPATIBLE - var/mob/living/simple_animal/S = parent - - src.container = container - - S.forceMove(container) - - S.status_flags |= GODMODE - ADD_TRAIT(S, TRAIT_IMMOBILIZED, SOULSTONE_TRAIT) - ADD_TRAIT(S, TRAIT_HANDS_BLOCKED, SOULSTONE_TRAIT) - S.health = S.maxHealth - S.bruteloss = 0 - - RegisterSignal(S, COMSIG_MOVABLE_MOVED, PROC_REF(free_prisoner)) - -/datum/component/soulstoned/proc/free_prisoner() - SIGNAL_HANDLER - - var/mob/living/simple_animal/S = parent - if(S.loc != container) - qdel(src) - -/datum/component/soulstoned/UnregisterFromParent() - var/mob/living/simple_animal/S = parent - S.status_flags &= ~GODMODE - REMOVE_TRAIT(S, TRAIT_IMMOBILIZED, SOULSTONE_TRAIT) - REMOVE_TRAIT(S, TRAIT_HANDS_BLOCKED, SOULSTONE_TRAIT) diff --git a/code/datums/hud.dm b/code/datums/hud.dm index 24865387794a..4703a31ea0f8 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -14,7 +14,6 @@ GLOBAL_LIST_INIT(huds, list( DATA_HUD_SENTIENT_DISEASE = new/datum/atom_hud/sentient_disease(), DATA_HUD_AI_DETECT = new/datum/atom_hud/ai_detector(), DATA_HUD_FAN = new/datum/atom_hud/data/human/fan_hud(), - ANTAG_HUD_CULT = new/datum/atom_hud/antag(), ANTAG_HUD_REV = new/datum/atom_hud/antag(), ANTAG_HUD_OPS = new/datum/atom_hud/antag(), ANTAG_HUD_WIZ = new/datum/atom_hud/antag(), @@ -23,9 +22,6 @@ GLOBAL_LIST_INIT(huds, list( ANTAG_HUD_NINJA = new/datum/atom_hud/antag/hidden(), ANTAG_HUD_CHANGELING = new/datum/atom_hud/antag/hidden(), ANTAG_HUD_ABDUCTOR = new/datum/atom_hud/antag/hidden(), - ANTAG_HUD_DEVIL = new/datum/atom_hud/antag(), - ANTAG_HUD_SINTOUCHED = new/datum/atom_hud/antag/hidden(), - ANTAG_HUD_SOULLESS = new/datum/atom_hud/antag/hidden(), ANTAG_HUD_BROTHER = new/datum/atom_hud/antag/hidden(), ANTAG_HUD_OBSESSED = new/datum/atom_hud/antag/hidden(), ANTAG_HUD_FUGITIVE = new/datum/atom_hud/antag(), diff --git a/code/datums/map_zones.dm b/code/datums/map_zones.dm index c4e304fb5394..bf103242c8db 100644 --- a/code/datums/map_zones.dm +++ b/code/datums/map_zones.dm @@ -637,7 +637,7 @@ var/ty = destination_y var/turf/DT = locate(tx, ty, destination_z) var/itercount = 0 - while(DT.density || istype(DT.loc,/area/shuttle)) // Extend towards the center of the map, trying to look for a better place to arrive + while(DT.density) // Extend towards the center of the map, trying to look for a better place to arrive if (itercount++ >= 100) log_game("SPACE Z-TRANSIT ERROR: Could not find a safe place to land [arrived] within 100 iterations.") break diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 96ca4b12d8b4..ea9f6918706b 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -345,12 +345,6 @@ remove_antag_datum(/datum/antagonist/wizard) special_role = null -/datum/mind/proc/remove_cultist() - if(src in SSticker.mode.cult) - SSticker.mode.remove_cultist(src, 0, 0) - special_role = null - remove_antag_equip() - /datum/mind/proc/remove_antag_equip() var/list/Mob_Contents = current.get_contents() for(var/obj/item/I in Mob_Contents) @@ -363,7 +357,6 @@ remove_traitor() remove_nukeop() remove_wizard() - remove_cultist() /datum/mind/proc/equip_traitor(employer = "The Syndicate", silent = FALSE, datum/antagonist/uplink_owner) if(!current) @@ -436,10 +429,7 @@ //Link a new mobs mind to the creator of said mob. They will join any team they are currently on, and will only switch teams when their creator does. /datum/mind/proc/enslave_mind_to_creator(mob/living/creator) - if(iscultist(creator)) - SSticker.mode.add_cultist(src) - - else if(is_nuclear_operative(creator)) + if(is_nuclear_operative(creator)) var/datum/antagonist/nukeop/converter = creator.mind.has_antag_datum(/datum/antagonist/nukeop,TRUE) var/datum/antagonist/nukeop/N = new() N.send_to_spawnpoint = FALSE @@ -708,14 +698,6 @@ assigned_role = ROLE_WIZARD add_antag_datum(/datum/antagonist/wizard) - -/datum/mind/proc/make_Cultist() - if(!has_antag_datum(/datum/antagonist/cult,TRUE)) - SSticker.mode.add_cultist(src,FALSE,equip=TRUE) - special_role = ROLE_CULTIST - to_chat(current, "You catch a glimpse of the Realm of Nar'Sie, The Geometer of Blood. You now see how flimsy your world is, you see that it should be open to the knowledge of Nar'Sie.") - to_chat(current, "Assist your new brethren in their dark dealings. Their goal is yours, and yours is theirs. You serve the Dark One above all else. Bring It back.") - /datum/mind/proc/AddSpell(obj/effect/proc_holder/spell/S) spell_list += S S.action.Grant(current) diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm index f9e339c3c081..1ab201bc0186 100644 --- a/code/datums/mood_events/generic_positive_events.dm +++ b/code/datums/mood_events/generic_positive_events.dm @@ -96,11 +96,6 @@ mood_change = 3 hidden = TRUE -/datum/mood_event/cult - description = "I have seen the truth, praise the almighty one!\n" - mood_change = 10 //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/reebe.dm b/code/datums/ruins/reebe.dm index bec9986d75b8..d1a9de3e024f 100644 --- a/code/datums/ruins/reebe.dm +++ b/code/datums/ruins/reebe.dm @@ -11,13 +11,6 @@ suffix = "reebe_arena.dmm" ruin_tags = list(RUIN_TAG_BOSS_COMBAT, RUIN_TAG_MEDIUM_LOOT, RUIN_TAG_LIVEABLE) -/datum/map_template/ruin/reebe/swarmers - name = "Swarmer Island" - id = "swarmers" - description = "Looks like someone has occupied Reebe in the cultists' absence." - suffix = "reebe_swarmers.dmm" - ruin_tags = list(RUIN_TAG_MEDIUM_COMBAT, RUIN_TAG_MINOR_LOOT, RUIN_TAG_LIVEABLE) - /datum/map_template/ruin/reebe/island name = "Island Cache" id = "islandcache" diff --git a/code/datums/saymode.dm b/code/datums/saymode.dm index 848940d4e9d9..708a81107313 100644 --- a/code/datums/saymode.dm +++ b/code/datums/saymode.dm @@ -95,15 +95,11 @@ return FALSE -/datum/saymode/binary //everything that uses .b (silicons, drones, swarmers) +/datum/saymode/binary //everything that uses .b (silicons, drones) key = MODE_KEY_BINARY mode = MODE_BINARY /datum/saymode/binary/handle_message(mob/living/user, message, datum/language/language) - if(isswarmer(user)) - var/mob/living/simple_animal/hostile/swarmer/S = user - S.swarmer_chat(message) - return FALSE if(isdrone(user)) var/mob/living/simple_animal/drone/D = user D.drone_chat(message) diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index 43c7bd3ab2ec..62b5a1827de7 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -85,35 +85,6 @@ desc = "You are being resurrected!" icon_state = "wish_granter" -/datum/status_effect/cult_master - id = "The Cult Master" - duration = -1 - alert_type = null - on_remove_on_mob_delete = TRUE - var/alive = TRUE - -/datum/status_effect/cult_master/proc/deathrattle() - if(!QDELETED(GLOB.cult_narsie)) - return //if Nar'Sie is alive, don't even worry about it - var/area/A = get_area(owner) - for(var/datum/mind/B in SSticker.mode.cult) - if(isliving(B.current)) - var/mob/living/M = B.current - SEND_SOUND(M, sound('sound/hallucinations/veryfar_noise.ogg')) - to_chat(M, "The Cult's Master, [owner], has fallen in \the [A]!") - -/datum/status_effect/cult_master/tick() - if(owner.stat != DEAD && !alive) - alive = TRUE - return - if(owner.stat == DEAD && alive) - alive = FALSE - deathrattle() - -/datum/status_effect/cult_master/on_remove() - deathrattle() - . = ..() - /datum/status_effect/blooddrunk id = "blooddrunk" duration = 10 diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 17e2208cdebe..6d803d98ec47 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -253,19 +253,6 @@ /datum/status_effect/pacify/on_remove() REMOVE_TRAIT(owner, TRAIT_PACIFISM, "status_effect") -/datum/status_effect/cultghost //is a cult ghost and can't use manifest runes - id = "cult_ghost" - duration = -1 - alert_type = null - -/datum/status_effect/cultghost/on_apply() - owner.see_invisible = SEE_INVISIBLE_OBSERVER - owner.see_in_dark = 2 - -/datum/status_effect/cultghost/tick() - if(owner.reagents) - owner.reagents.del_reagent(/datum/reagent/water/holywater) //can't be deconverted - /datum/status_effect/crusher_mark id = "crusher_mark" duration = 300 //if you leave for 30 seconds you lose the mark, deal with it diff --git a/code/game/alternate_appearance.dm b/code/game/alternate_appearance.dm index 96f09636fec3..873828d2c260 100644 --- a/code/game/alternate_appearance.dm +++ b/code/game/alternate_appearance.dm @@ -130,32 +130,6 @@ GLOBAL_LIST_EMPTY(active_alternate_appearances) /datum/atom_hud/alternate_appearance/basic/observers/mobShouldSee(mob/M) return isobserver(M) -/datum/atom_hud/alternate_appearance/basic/noncult - -/datum/atom_hud/alternate_appearance/basic/noncult/New() - ..() - for(var/mob in GLOB.player_list) - if(mobShouldSee(mob)) - add_hud_to(mob) - -/datum/atom_hud/alternate_appearance/basic/noncult/mobShouldSee(mob/M) - if(!iscultist(M)) - return TRUE - return FALSE - -/datum/atom_hud/alternate_appearance/basic/cult - -/datum/atom_hud/alternate_appearance/basic/cult/New() - ..() - for(var/mob in GLOB.player_list) - if(mobShouldSee(mob)) - add_hud_to(mob) - -/datum/atom_hud/alternate_appearance/basic/cult/mobShouldSee(mob/M) - if(iscultist(M)) - return TRUE - return FALSE - /datum/atom_hud/alternate_appearance/basic/blessedAware /datum/atom_hud/alternate_appearance/basic/blessedAware/New() @@ -167,8 +141,6 @@ GLOBAL_LIST_EMPTY(active_alternate_appearances) /datum/atom_hud/alternate_appearance/basic/blessedAware/mobShouldSee(mob/M) if(M.mind && (M.mind.assigned_role == "Chaplain")) return TRUE - if (istype(M, /mob/living/simple_animal/hostile/construct/wraith)) - return TRUE if(isrevenant(M) || iswizard(M)) return TRUE return FALSE diff --git a/code/game/area/Space_Station_13_areas.dm b/code/game/area/Space_Station_13_areas.dm deleted file mode 100644 index 3fb4fcd5efeb..000000000000 --- a/code/game/area/Space_Station_13_areas.dm +++ /dev/null @@ -1,1350 +0,0 @@ -/* - -### This file contains a list of all the areas in your station. Format is as follows: - -/area/CATEGORY/OR/DESCRIPTOR/NAME (you can make as many subdivisions as you want) - name = "NICE NAME" (not required but makes things really nice) - icon = 'ICON FILENAME' (defaults to 'icons/turf/areas.dmi') - icon_state = "NAME OF ICON" (defaults to "unknown" (blank)) - requires_power = FALSE (defaults to true) - ambientsounds = list() (defaults to GENERIC from sound.dm. override it as "ambientsounds = list('sound/ambience/signal.ogg')" or using another define. - -NOTE: there are two lists of areas in the end of this file: centcom and station itself. Please maintain these lists valid. --rastaf0 - -*/ - - -/*-----------------------------------------------------------------------------*/ - -/* Shiptest Begin - -/area/ai_monitored //stub defined ai_monitored.dm - -/area/ai_monitored/turret_protected - -/area/space - icon_state = "space" - requires_power = TRUE - always_unpowered = TRUE - dynamic_lighting = DYNAMIC_LIGHTING_DISABLED - power_light = FALSE - power_equip = FALSE - power_environ = FALSE - area_flags = UNIQUE_AREA | CAVES_ALLOWED | MOB_SPAWN_ALLOWED - outdoors = TRUE - ambientsounds = SPACE - flags_1 = CAN_BE_DIRTY_1 - sound_environment = SOUND_AREA_SPACE - -/area/space/nearstation - icon_state = "space_near" - dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT - -/area/start - name = "start area" - icon_state = "start" - requires_power = FALSE - dynamic_lighting = DYNAMIC_LIGHTING_DISABLED - has_gravity = STANDARD_GRAVITY - - -/area/testroom - requires_power = FALSE - name = "Test Room" - icon_state = "storage" - -//EXTRA - -/area/asteroid - name = "Asteroid" - icon_state = "asteroid" - requires_power = FALSE - has_gravity = STANDARD_GRAVITY - area_flags = UNIQUE_AREA | CAVES_ALLOWED | MOB_SPAWN_ALLOWED - ambientsounds = MINING - flags_1 = CAN_BE_DIRTY_1 - sound_environment = SOUND_AREA_ASTEROID - -/area/asteroid/nearstation - dynamic_lighting = DYNAMIC_LIGHTING_FORCED - ambientsounds = RUINS - always_unpowered = FALSE - requires_power = TRUE - area_flags = UNIQUE_AREA - -/area/asteroid/nearstation/bomb_site - name = "Bomb Testing Asteroid" - -//STATION13 - -//Maintenance - -/area/maintenance - ambientsounds = MAINTENANCE - lighting_colour_tube = "#ffe5cb" - lighting_colour_bulb = "#ffdbb4" - area_flags = UNIQUE_AREA - sound_environment = SOUND_AREA_TUNNEL_ENCLOSED - -//Departments - -/area/maintenance/department/chapel - name = "Chapel Maintenance" - icon_state = "maint_chapel" - -/area/maintenance/department/chapel/monastery - name = "Monastery Maintenance" - icon_state = "maint_monastery" - -/area/maintenance/department/crew_quarters/bar - name = "Bar Maintenance" - icon_state = "maint_bar" - sound_environment = SOUND_AREA_WOODFLOOR - -/area/maintenance/department/crew_quarters/dorms - name = "Dormitory Maintenance" - icon_state = "maint_dorms" - -/area/maintenance/department/eva - name = "EVA Maintenance" - icon_state = "maint_eva" - -/area/maintenance/department/electrical - name = "Electrical Maintenance" - icon_state = "maint_electrical" - -/area/maintenance/department/engine/atmos - name = "Atmospherics Maintenance" - icon_state = "maint_atmos" - -/area/maintenance/department/security - name = "Security Maintenance" - icon_state = "maint_sec" - -/area/maintenance/department/security/upper - name = "Upper Security Maintenance" - -/area/maintenance/department/security/brig - name = "Brig Maintenance" - icon_state = "maint_brig" - -/area/maintenance/department/medical - name = "Medbay Maintenance" - icon_state = "medbay_maint" - -/area/maintenance/department/medical/central - name = "Central Medbay Maintenance" - icon_state = "medbay_maint_central" - -/area/maintenance/department/medical/morgue - name = "Morgue Maintenance" - icon_state = "morgue_maint" - -/area/maintenance/department/science - name = "Science Maintenance" - icon_state = "maint_sci" - -/area/maintenance/department/science/central - name = "Central Science Maintenance" - icon_state = "maint_sci_central" - -/area/maintenance/department/cargo - name = "Cargo Maintenance" - icon_state = "maint_cargo" - -/area/maintenance/department/bridge - name = "Bridge Maintenance" - icon_state = "maint_bridge" - -/area/maintenance/department/engine - name = "Engineering Maintenance" - icon_state = "maint_engi" - -/area/maintenance/department/science/xenobiology - name = "Xenobiology Maintenance" - icon_state = "xenomaint" - area_flags = VALID_TERRITORY | BLOBS_ALLOWED | UNIQUE_AREA | XENOBIOLOGY_COMPATIBLE - - -//Maintenance - Generic - -/area/maintenance/aft - name = "Aft Maintenance" - icon_state = "amaint" - -/area/maintenance/aft/upper - name = "Upper Aft Maintenance" - -/area/maintenance/aft/secondary - name = "Aft Maintenance" - icon_state = "amaint_2" - -/area/maintenance/central - name = "Central Maintenance" - icon_state = "maintcentral" - -/area/maintenance/central/secondary - name = "Central Maintenance" - icon_state = "maintcentral" - -/area/maintenance/fore - name = "Fore Maintenance" - icon_state = "fmaint" - -/area/maintenance/fore/upper - name = "Upper Fore Maintenance" - -/area/maintenance/fore/secondary - name = "Fore Maintenance" - icon_state = "fmaint_2" - -/area/maintenance/starboard - name = "Starboard Maintenance" - icon_state = "smaint" - -/area/maintenance/starboard/upper - name = "Upper Starboard Maintenance" - -/area/maintenance/starboard/central - name = "Central Starboard Maintenance" - icon_state = "smaint" - -/area/maintenance/starboard/secondary - name = "Secondary Starboard Maintenance" - icon_state = "smaint_2" - -/area/maintenance/starboard/aft - name = "Starboard Quarter Maintenance" - icon_state = "asmaint" - -/area/maintenance/starboard/aft/secondary - name = "Secondary Starboard Quarter Maintenance" - icon_state = "asmaint_2" - -/area/maintenance/starboard/fore - name = "Starboard Bow Maintenance" - icon_state = "fsmaint" - -/area/maintenance/port - name = "Port Maintenance" - icon_state = "pmaint" - -/area/maintenance/port/central - name = "Central Port Maintenance" - icon_state = "maintcentral" - -/area/maintenance/port/aft - name = "Port Quarter Maintenance" - icon_state = "apmaint" - -/area/maintenance/port/fore - name = "Port Bow Maintenance" - icon_state = "fpmaint" - -/area/maintenance/disposal - name = "Waste Disposal" - icon_state = "disposal" - -/area/maintenance/disposal/incinerator - name = "Incinerator" - icon_state = "disposal" - - -//Hallway -/area/hallway - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/hallway - lighting_colour_tube = "#ffce99" - lighting_colour_bulb = "#ffdbb4" - lighting_brightness_tube = 7 - - -/area/hallway/primary/aft - name = "Aft Primary Hallway" - icon_state = "hallA" - -/area/hallway/primary/fore - name = "Fore Primary Hallway" - icon_state = "hallF" - -/area/hallway/primary/starboard - name = "Starboard Primary Hallway" - icon_state = "hallS" - -/area/hallway/primary/port - name = "Port Primary Hallway" - icon_state = "hallP" - -/area/hallway/primary/central - name = "Central Primary Hallway" - icon_state = "hallC" - -/area/hallway/primary/upper - name = "Upper Central Primary Hallway" - icon_state = "hallC" - - -/area/hallway/secondary/command - name = "Command Hallway" - icon_state = "bridge_hallway" - -/area/hallway/secondary/construction - name = "Construction Area" - icon_state = "construction" - -/area/hallway/secondary/exit - name = "Escape Shuttle Hallway" - icon_state = "escape" - -/area/hallway/secondary/exit/departure_lounge - name = "Departure Lounge" - icon_state = "escape_lounge" - -/area/hallway/secondary/entry - name = "Arrival Shuttle Hallway" - icon_state = "entry" - -/area/hallway/secondary/service - name = "Service Hallway" - icon_state = "hall_service" - -//Command - -/area/bridge - name = "Bridge" - icon_state = "bridge" - ambientsounds = list('sound/ambience/signal.ogg') - lighting_colour_tube = "#ffce99" - lighting_colour_bulb = "#ffdbb4" - lighting_brightness_tube = 6 - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/bridge/meeting_room - name = "Heads of Staff Meeting Room" - icon_state = "meeting" - sound_environment = SOUND_AREA_MEDIUM_SOFTFLOOR - -/area/bridge/meeting_room/council - name = "Council Chamber" - icon_state = "meeting" - sound_environment = SOUND_AREA_MEDIUM_SOFTFLOOR - -/area/bridge/showroom/corporate - name = "Corporate Showroom" - icon_state = "showroom" - sound_environment = SOUND_AREA_MEDIUM_SOFTFLOOR - -/area/crew_quarters/heads/captain - name = "Captain's Office" - icon_state = "captain" - sound_environment = SOUND_AREA_WOODFLOOR - -/area/crew_quarters/heads/captain/private - name = "Captain's Quarters" - icon_state = "captain" - sound_environment = SOUND_AREA_WOODFLOOR - -/area/crew_quarters/heads/chief - name = "Chief Engineer's Office" - icon_state = "ce_office" - -/area/crew_quarters/heads/cmo - name = "Chief Medical Officer's Office" - icon_state = "cmo_office" - -/area/crew_quarters/heads/head_of_personnel - name = "Head of Personnel's Office" - icon_state = "hop_office" - -/area/crew_quarters/heads/hos - name = "Head of Security's Office" - icon_state = "hos_office" - -/area/crew_quarters/heads/hor - name = "Research Director's Office" - icon_state = "rd_office" - -/area/comms - name = "Communications Relay" - icon_state = "tcomsatcham" - lighting_colour_tube = "#e2feff" - lighting_colour_bulb = "#d5fcff" - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/server - name = "Messaging Server Room" - icon_state = "server" - sound_environment = SOUND_AREA_STANDARD_STATION - -//Crew - -/area/crew_quarters - lighting_colour_tube = "#ffce99" - lighting_colour_bulb = "#ffdbb4" - lighting_brightness_tube = 6 - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/crew_quarters/dorms - name = "Dormitories" - icon_state = "Sleep" - area_flags = VALID_TERRITORY | BLOBS_ALLOWED | UNIQUE_AREA - -/area/crew_quarters/dorms/barracks - name = "Sleep Barracks" - -/area/crew_quarters/dorms/barracks/male - name = "Male Sleep Barracks" - -/area/crew_quarters/dorms/barracks/female - name = "Female Sleep Barracks" - -/area/crew_quarters/toilet - name = "Dormitory Toilets" - icon_state = "toilet" - lighting_colour_tube = "#e3ffff" - lighting_colour_bulb = "#d5ffff" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/crew_quarters/toilet/auxiliary - name = "Auxiliary Restrooms" - icon_state = "toilet" - -/area/crew_quarters/toilet/locker - name = "Locker Toilets" - icon_state = "toilet" - -/area/crew_quarters/toilet/restrooms - name = "Restrooms" - icon_state = "toilet" - -/area/crew_quarters/locker - name = "Locker Room" - icon_state = "locker" - -/area/crew_quarters/lounge - name = "Lounge" - icon_state = "yellow" - sound_environment = SOUND_AREA_SMALL_SOFTFLOOR - -/area/crew_quarters/fitness - name = "Fitness Room" - icon_state = "fitness" - -/area/crew_quarters/fitness/locker_room - name = "Unisex Locker Room" - icon_state = "fitness" - -/area/crew_quarters/fitness/locker_room/male - name = "Male Locker Room" - -/area/crew_quarters/fitness/locker_room/female - name = "Female Locker Room" - - -/area/crew_quarters/fitness/recreation - name = "Recreation Area" - icon_state = "fitness" - -/area/crew_quarters/cafeteria - name = "Cafeteria" - icon_state = "cafeteria" - -/area/crew_quarters/kitchen - name = "Kitchen" - icon_state = "kitchen" - lighting_colour_tube = "#e3ffff" - lighting_colour_bulb = "#d5ffff" - -/area/crew_quarters/kitchen/coldroom - name = "Kitchen Cold Room" - icon_state = "kitchen_cold" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/crew_quarters/bar - name = "Bar" - icon_state = "bar" - mood_bonus = 5 - mood_message = "I love being in the bar!\n" - lighting_colour_tube = "#fff4d6" - lighting_colour_bulb = "#ffebc1" - sound_environment = SOUND_AREA_WOODFLOOR - -/area/crew_quarters/bar/atrium - name = "Atrium" - icon_state = "bar" - sound_environment = SOUND_AREA_WOODFLOOR - -/area/crew_quarters/electronic_marketing_den - name = "Electronic Marketing Den" - icon_state = "bar" - -/area/crew_quarters/abandoned_gambling_den - name = "Abandoned Gambling Den" - icon_state = "abandoned_g_den" - -/area/crew_quarters/abandoned_gambling_den/secondary - icon_state = "abandoned_g_den_2" - -/area/crew_quarters/theatre - name = "Theatre" - icon_state = "Theatre" - sound_environment = SOUND_AREA_WOODFLOOR - -/area/crew_quarters/theatre/abandoned - name = "Abandoned Theatre" - icon_state = "Theatre" - -/area/library - name = "Library" - icon_state = "library" - flags_1 = CULT_PERMITTED_1 - lighting_colour_tube = "#ffce99" - lighting_colour_bulb = "#ffdbb4" - sound_environment = SOUND_AREA_LARGE_SOFTFLOOR - -/area/library/lounge - name = "Library Lounge" - icon_state = "library" - sound_environment = SOUND_AREA_LARGE_SOFTFLOOR - -/area/library/artgallery - name = " Art Gallery" - icon_state = "library" - -/area/library/private - name = "Library Private Study" - icon_state = "library" - -/area/library/upper - name = "Library Upper Floor" - icon_state = "library" - -/area/library/printer - name = "Library Printer Room" - icon_state = "library" - -/area/library/abandoned - name = "Abandoned Library" - icon_state = "library" - flags_1 = CULT_PERMITTED_1 - -/area/chapel - icon_state = "chapel" - ambientsounds = HOLY - flags_1 = NONE - sound_environment = SOUND_AREA_LARGE_ENCLOSED - -/area/chapel/main - name = "Chapel" - -/area/chapel/main/monastery - name = "Monastery" - -/area/chapel/office - name = "Chapel Office" - icon_state = "chapeloffice" - -/area/chapel/asteroid - name = "Chapel Asteroid" - icon_state = "explored" - sound_environment = SOUND_AREA_ASTEROID - -/area/chapel/asteroid/monastery - name = "Monastery Asteroid" - -/area/chapel/dock - name = "Chapel Dock" - icon_state = "construction" - -/area/lawoffice - name = "Law Office" - icon_state = "law" - sound_environment = SOUND_AREA_SMALL_SOFTFLOOR - - -//Engineering - -/area/engine - ambientsounds = ENGINEERING - lighting_colour_tube = "#ffce93" - lighting_colour_bulb = "#ffbc6f" - sound_environment = SOUND_AREA_LARGE_ENCLOSED - -/area/engine/engine_smes - name = "Engineering SMES" - icon_state = "engine_smes" - -/area/engine/engineering - name = "Engineering" - icon_state = "engine" - -/area/engine/atmos - name = "Atmospherics" - icon_state = "atmos" - flags_1 = CULT_PERMITTED_1 - -/area/engine/atmos/upper - name = "Upper Atmospherics" - -/area/engine/atmospherics_engine - name = "Atmospherics Engine" - icon_state = "atmos_engine" - area_flags = BLOBS_ALLOWED | UNIQUE_AREA - sound_environment = SOUND_AREA_LARGE_ENCLOSED - -/area/engine/engine_room //donut station specific - name = "Engine Room" - icon_state = "atmos_engine" - -/area/engine/lobby - name = "Engineering Lobby" - icon_state = "engi_lobby" - -/area/engine/engine_room/external - name = "Supermatter External Access" - icon_state = "engine_foyer" - -/area/engine/supermatter - name = "Supermatter Engine" - icon_state = "engine_sm" - area_flags = BLOBS_ALLOWED | UNIQUE_AREA - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/engine/break_room - name = "Engineering Foyer" - icon_state = "engine_foyer" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/engine/gravity_generator - name = "Gravity Generator Room" - icon_state = "grav_gen" - -/area/engine/storage - name = "Engineering Storage" - icon_state = "engi_storage" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/engine/storage_shared - name = "Shared Engineering Storage" - icon_state = "engi_storage" - -/area/engine/transit_tube - name = "Transit Tube" - icon_state = "transit_tube" - - -//Solars - -/area/solar - requires_power = FALSE - dynamic_lighting = DYNAMIC_LIGHTING_IFSTARLIGHT - area_flags = UNIQUE_AREA - flags_1 = NONE - ambientsounds = ENGINEERING - sound_environment = SOUND_AREA_SPACE - -/area/solar/fore - name = "Fore Solar Array" - icon_state = "yellow" - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/solar/aft - name = "Aft Solar Array" - icon_state = "yellow" - -/area/solar/aux/port - name = "Port Bow Auxiliary Solar Array" - icon_state = "panelsA" - -/area/solar/aux/starboard - name = "Starboard Bow Auxiliary Solar Array" - icon_state = "panelsA" - -/area/solar/starboard - name = "Starboard Solar Array" - icon_state = "panelsS" - -/area/solar/starboard/aft - name = "Starboard Quarter Solar Array" - icon_state = "panelsAS" - -/area/solar/starboard/fore - name = "Starboard Bow Solar Array" - icon_state = "panelsFS" - -/area/solar/port - name = "Port Solar Array" - icon_state = "panelsP" - -/area/solar/port/aft - name = "Port Quarter Solar Array" - icon_state = "panelsAP" - -/area/solar/port/fore - name = "Port Bow Solar Array" - icon_state = "panelsFP" - -/area/solar/aisat - name = "AI Satellite Solars" - icon_state = "yellow" - - -//Solar Maint - -/area/maintenance/solars - name = "Solar Maintenance" - icon_state = "yellow" - -/area/maintenance/solars/port - name = "Port Solar Maintenance" - icon_state = "SolarcontrolP" - -/area/maintenance/solars/port/aft - name = "Port Quarter Solar Maintenance" - icon_state = "SolarcontrolAP" - -/area/maintenance/solars/port/fore - name = "Port Bow Solar Maintenance" - icon_state = "SolarcontrolFP" - -/area/maintenance/solars/starboard - name = "Starboard Solar Maintenance" - icon_state = "SolarcontrolS" - -/area/maintenance/solars/starboard/aft - name = "Starboard Quarter Solar Maintenance" - icon_state = "SolarcontrolAS" - -/area/maintenance/solars/starboard/fore - name = "Starboard Bow Solar Maintenance" - icon_state = "SolarcontrolFS" - -//Teleporter - -/area/teleporter - name = "Teleporter Room" - icon_state = "teleporter" - ambientsounds = ENGINEERING - -/area/gateway - name = "Gateway" - icon_state = "gateway" - ambientsounds = ENGINEERING - sound_environment = SOUND_AREA_STANDARD_STATION - -//MedBay - -/area/medical - name = "Medical" - icon_state = "medbay3" - ambientsounds = MEDICAL - lighting_colour_tube = "#e7f8ff" - lighting_colour_bulb = "#d5f2ff" - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/medical/abandoned - name = "Abandoned Medbay" - icon_state = "medbay3" - ambientsounds = list('sound/ambience/signal.ogg') - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/medical/medbay/central - name = "Medbay Central" - icon_state = "medbay" - -/area/medical/medbay/lobby - name = "Medbay Lobby" - icon_state = "medbay" - - //Medbay is a large area, these additional areas help level out APC load. - -/area/medical/medbay/zone2 - name = "Medbay" - icon_state = "medbay2" - -/area/medical/medbay/aft - name = "Medbay Aft" - icon_state = "medbay3" - -/area/medical/storage - name = "Medbay Storage" - icon_state = "medbay2" - -/area/medical/paramedic - name = "Paramedic Dispatch" - icon_state = "medbay2" - -/area/medical/office - name = "Medical Office" - icon_state = "medoffice" - -/area/medical/surgery/room_c - name = "Surgery C" - icon_state = "surgery" - -/area/medical/surgery/room_d - name = "Surgery D" - icon_state = "surgery" - -/area/medical/break_room - name = "Medical Break Room" - icon_state = "medbay2" - -/area/medical/coldroom - name = "Medical Cold Room" - icon_state = "kitchen_cold" - -/area/medical/patients_rooms - name = "Patients' Rooms" - icon_state = "patients" - sound_environment = SOUND_AREA_SMALL_SOFTFLOOR - -/area/medical/patients_rooms/room_a - name = "Patient Room A" - icon_state = "patients" - -/area/medical/patients_rooms/room_b - name = "Patient Room B" - icon_state = "patients" - -/area/medical/virology - name = "Virology" - icon_state = "virology" - flags_1 = CULT_PERMITTED_1 - -/area/medical/morgue - name = "Morgue" - icon_state = "morgue" - ambientsounds = SPOOKY - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/medical/chemistry - name = "Chemistry" - icon_state = "chem" - -/area/medical/pharmacy - name = "Pharmacy" - icon_state = "pharmacy" - -/area/medical/surgery - name = "Surgery" - icon_state = "surgery" - -/area/medical/surgery/room_b - name = "Surgery B" - icon_state = "surgery" - -/area/medical/cryo - name = "Cryogenics" - icon_state = "cryo" - -/area/medical/exam_room - name = "Exam Room" - icon_state = "exam_room" - -/area/medical/genetics - name = "Genetics Lab" - icon_state = "genetics" - -/area/medical/sleeper - name = "Medbay Treatment Center" - icon_state = "exam_room" - -/area/medical/psychology - name = "Psychology Office" - icon_state = "psychology" - mood_bonus = 3 - mood_message = "I feel at ease here.\n" - ambientsounds = list('sound/ambience/aurora_caelus_short.ogg') - -//Security - -/area/security - name = "Security" - icon_state = "security" - ambientsounds = HIGHSEC - lighting_colour_tube = "#ffeee2" - lighting_colour_bulb = "#ffdfca" - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/security/main - name = "Security Office" - icon_state = "security" - -/area/security/brig - name = "Brig" - icon_state = "brig" - -/area/security/brig/upper - name = "Brig Overlook" - -/area/security/courtroom - name = "Courtroom" - icon_state = "courtroom" - sound_environment = SOUND_AREA_LARGE_ENCLOSED - -/area/security/prison - name = "Prison Wing" - icon_state = "sec_prison" - -/area/security/prison/toilet //radproof - name = "Prison Toilet" - icon_state = "sec_prison_safe" - -/area/security/prison/safe //radproof - name = "Prison Wing Cells" - icon_state = "sec_prison_safe" - -/area/security/prison/upper - name = "Upper Prison Wing" - icon_state = "prison_upper" - -/area/security/prison/visit - name = "Prison Visitation Area" - icon_state = "prison_visit" - -/area/security/prison/rec - name = "Prison Rec Room" - icon_state = "prison_rec" - -/area/security/prison/mess - name = "Prison Mess Hall" - icon_state = "prison_mess" - -/area/security/prison/work - name = "Prison Work Room" - icon_state = "prison_work" - -/area/security/prison/shower - name = "Prison Shower" - icon_state = "prison_shower" - -/area/security/prison/workout - name = "Prison Gym" - icon_state = "prison_workout" - -/area/security/prison/garden - name = "Prison Garden" - icon_state = "prison_garden" - -/area/security/processing - name = "Labor Shuttle Dock" - icon_state = "sec_prison" - -/area/security/processing/cremation - name = "Security Crematorium" - icon_state = "sec_prison" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/security/warden - name = "Brig Control" - icon_state = "Warden" - sound_environment = SOUND_AREA_SMALL_SOFTFLOOR - -/area/security/detectives_office - name = "Detective's Office" - icon_state = "detective" - ambientsounds = list('sound/ambience/ambidet1.ogg','sound/ambience/ambidet2.ogg') - -/area/security/detectives_office/private_investigators_office - name = "Private Investigator's Office" - icon_state = "detective" - sound_environment = SOUND_AREA_SMALL_SOFTFLOOR - -/area/security/range - name = "Firing Range" - icon_state = "firingrange" - -/area/security/execution - icon_state = "execution_room" - -/area/security/execution/transfer - name = "Transfer Centre" - -/area/security/execution/education - name = "Prisoner Education Chamber" - -/area/security/nuke_storage - name = "Vault" - icon_state = "nuke_storage" - -/area/ai_monitored/nuke_storage - name = "Vault" - icon_state = "nuke_storage" - -/area/security/checkpoint - name = "Security Checkpoint" - icon_state = "checkpoint1" - -/area/security/checkpoint/auxiliary - icon_state = "checkpoint_aux" - -/area/security/checkpoint/escape - icon_state = "checkpoint_esc" - -/area/security/checkpoint/supply - name = "Security Post - Cargo Bay" - icon_state = "checkpoint_supp" - -/area/security/checkpoint/engineering - name = "Security Post - Engineering" - icon_state = "checkpoint_engi" - -/area/security/checkpoint/medical - name = "Security Post - Medbay" - icon_state = "checkpoint_med" - -/area/security/checkpoint/science - name = "Security Post - Science" - icon_state = "checkpoint_sci" - -/area/security/checkpoint/science/research - name = "Security Post - Research Division" - icon_state = "checkpoint_res" - -/area/security/checkpoint/customs - name = "Customs" - icon_state = "customs_point" - -/area/security/checkpoint/customs/auxiliary - icon_state = "customs_point_aux" - - -//Service - -/area/quartermaster - name = "Quartermasters" - icon_state = "quart" - lighting_colour_tube = "#ffe3cc" - lighting_colour_bulb = "#ffdbb8" - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/quartermaster/sorting - name = "Delivery Office" - icon_state = "cargo_delivery" - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/quartermaster/warehouse - name = "Warehouse" - icon_state = "cargo_warehouse" - sound_environment = SOUND_AREA_LARGE_ENCLOSED - -/area/quartermaster/warehouse/upper - name = "Upper Warehouse" - -/area/quartermaster/office - name = "Cargo Office" - icon_state = "quartoffice" - -/area/quartermaster/storage - name = "Cargo Bay" - icon_state = "cargo_bay" - sound_environment = SOUND_AREA_LARGE_ENCLOSED - -/area/quartermaster/qm - name = "Quartermaster's Office" - icon_state = "quart" - -/area/quartermaster/qm/perch - name = "Quartermaster's Perch" - icon_state = "quartperch" - -/area/quartermaster/miningdock - name = "Mining Dock" - icon_state = "mining" - -/area/quartermaster/miningoffice - name = "Mining Office" - icon_state = "mining" - -/area/janitor - name = "Custodial Closet" - icon_state = "janitor" - flags_1 = CULT_PERMITTED_1 - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/hydroponics - name = "Hydroponics" - icon_state = "hydro" - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/hydroponics/upper - name = "Upper Hydroponics" - icon_state = "hydro" - -/area/hydroponics/garden - name = "Garden" - icon_state = "garden" - -/area/hydroponics/garden/abandoned - name = "Abandoned Garden" - icon_state = "abandoned_garden" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/hydroponics/garden/monastery - name = "Monastery Garden" - icon_state = "hydro" - - -//Science - -/area/science - name = "Science Division" - icon_state = "toxlab" - lighting_colour_tube = "#f0fbff" - lighting_colour_bulb = "#e4f7ff" - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/science/lab - name = "Research and Development" - icon_state = "toxlab" - -/area/science/xenobiology - name = "Xenobiology Lab" - icon_state = "toxlab" - -/area/science/storage - name = "Toxins Storage" - icon_state = "toxstorage" - -/area/science/test_area - name = "Toxins Test Area" - icon_state = "toxtest" - area_flags = BLOBS_ALLOWED | UNIQUE_AREA - -/area/science/mixing - name = "Toxins Mixing Lab" - icon_state = "toxmix" - -/area/science/mixing/chamber - name = "Toxins Mixing Chamber" - icon_state = "toxmix" - area_flags = BLOBS_ALLOWED | UNIQUE_AREA - -/area/science/misc_lab - name = "Testing Lab" - icon_state = "toxmisc" - -/area/science/misc_lab/range - name = "Research Testing Range" - icon_state = "toxmisc" - -/area/science/server - name = "Research Division Server Room" - icon_state = "server" - -/area/science/explab - name = "Experimentation Lab" - icon_state = "toxmisc" - -/area/science/robotics - name = "Robotics" - icon_state = "medresearch" - -/area/science/robotics/mechbay - name = "Mech Bay" - icon_state = "mechbay" - -/area/science/robotics/lab - name = "Robotics Lab" - icon_state = "ass_line" - -/area/science/research - name = "Research Division" - icon_state = "medresearch" - -/area/science/research/abandoned - name = "Abandoned Research Lab" - icon_state = "medresearch" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/science/nanite - name = "Nanite Lab" - icon_state = "toxmisc" - -//Storage -/area/storage - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/storage/tools - name = "Auxiliary Tool Storage" - icon_state = "storage" - -/area/storage/primary - name = "Primary Tool Storage" - icon_state = "primarystorage" - -/area/storage/art - name = "Art Supply Storage" - icon_state = "storage" - -/area/storage/tcom - name = "Telecomms Storage" - icon_state = "green" - area_flags = BLOBS_ALLOWED | UNIQUE_AREA - -/area/storage/eva - name = "EVA Storage" - icon_state = "eva" - -/area/storage/emergency/starboard - name = "Starboard Emergency Storage" - icon_state = "emergencystorage" - -/area/storage/emergency/port - name = "Port Emergency Storage" - icon_state = "emergencystorage" - -/area/storage/tech - name = "Technical Storage" - icon_state = "auxstorage" - -//Construction - -/area/construction - name = "Construction Area" - icon_state = "yellow" - ambientsounds = ENGINEERING - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/construction/mining/aux_base - name = "Auxiliary Base Construction" - icon_state = "aux_base_construction" - sound_environment = SOUND_AREA_MEDIUM_SOFTFLOOR - -/area/construction/storage_wing - name = "Storage Wing" - icon_state = "storage_wing" - -// Vacant Rooms -/area/vacant_room - name = "Vacant Room" - icon_state = "vacant_room" - ambientsounds = MAINTENANCE - -/area/vacant_room/office - name = "Vacant Office" - icon_state = "vacant_office" - -/area/vacant_room/commissary - name = "Vacant Commissary" - icon_state = "vacant_commissary" - -//AI - -/area/ai_monitored - sound_environment = SOUND_AREA_STANDARD_STATION - -/area/ai_monitored/security/armory - name = "Armory" - icon_state = "armory" - ambientsounds = HIGHSEC - -/area/ai_monitored/security/armory/upper - name = "Upper Armory" - -/area/ai_monitored/storage/eva - name = "EVA Storage" - icon_state = "eva" - ambientsounds = HIGHSEC - -/area/ai_monitored/storage/eva/upper - name = "Upper EVA Storage" - -/area/ai_monitored/storage/satellite - name = "AI Satellite Maint" - icon_state = "storage" - ambientsounds = HIGHSEC - - //Turret_protected - -/area/ai_monitored/turret_protected - ambientsounds = list('sound/ambience/ambimalf.ogg', 'sound/ambience/ambitech.ogg', 'sound/ambience/ambitech2.ogg', 'sound/ambience/ambiatmos.ogg', 'sound/ambience/ambiatmos2.ogg') - -/area/ai_monitored/turret_protected/ai_upload - name = "AI Upload Chamber" - icon_state = "ai_upload" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/ai_monitored/turret_protected/ai_upload_foyer - name = "AI Upload Access" - icon_state = "ai_foyer" - sound_environment = SOUND_AREA_SMALL_ENCLOSED - -/area/ai_monitored/turret_protected/ai - name = "AI Chamber" - icon_state = "ai_chamber" - -/area/ai_monitored/turret_protected/aisat - name = "AI Satellite" - icon_state = "ai" - sound_environment = SOUND_ENVIRONMENT_ROOM - -/area/ai_monitored/turret_protected/aisat/atmos - name = "AI Satellite Atmos" - icon_state = "ai" - -/area/ai_monitored/turret_protected/aisat/foyer - name = "AI Satellite Foyer" - icon_state = "ai" - -/area/ai_monitored/turret_protected/aisat/service - name = "AI Satellite Service" - icon_state = "ai" - -/area/ai_monitored/turret_protected/aisat/hallway - name = "AI Satellite Hallway" - icon_state = "ai" - -/area/aisat - name = "AI Satellite Exterior" - icon_state = "yellow" - -/area/ai_monitored/turret_protected/aisat_interior - name = "AI Satellite Antechamber" - icon_state = "ai" - sound_environment = SOUND_AREA_LARGE_ENCLOSED - -/area/ai_monitored/turret_protected/AIsatextAS - name = "AI Sat Ext" - icon_state = "storage" - -/area/ai_monitored/turret_protected/AIsatextAP - name = "AI Sat Ext" - icon_state = "storage" - - -// Telecommunications Satellite - -/area/tcommsat - ambientsounds = list('sound/ambience/ambisin2.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/signal.ogg', 'sound/ambience/ambigen10.ogg', 'sound/ambience/ambitech.ogg',\ - 'sound/ambience/ambitech2.ogg', 'sound/ambience/ambitech3.ogg', 'sound/ambience/ambimystery.ogg') - -/area/tcommsat/computer - name = "Telecomms Control Room" - icon_state = "tcomsatcomp" - sound_environment = SOUND_AREA_MEDIUM_SOFTFLOOR - -/area/tcommsat/server - name = "Telecomms Server Room" - icon_state = "tcomsatcham" - -/area/tcommsat/server/upper - name = "Upper Telecomms Server Room" - -//External Hull Access -/area/maintenance/external - name = "External Hull Access" - icon_state = "amaint" - -/area/maintenance/external/aft - name = "Aft External Hull Access" - -/area/maintenance/external/port - name = "Port External Hull Access" - -/area/maintenance/external/port/bow - name = "Port Bow External Hull Access" - -Shiptest End */ diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 0e2106d04026..2798158eda0b 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -110,7 +110,7 @@ GLOBAL_LIST_EMPTY(teleportlocs) /proc/process_teleport_locs() for(var/V in GLOB.sortedAreas) var/area/AR = V - if(istype(AR, /area/shuttle) || AR.area_flags & NOTELEPORT) + if(AR.area_flags & NOTELEPORT) continue if(GLOB.teleportlocs[AR.name]) continue diff --git a/code/game/area/areas/shuttles.dm b/code/game/area/areas/shuttles.dm deleted file mode 100644 index 625129ae236f..000000000000 --- a/code/game/area/areas/shuttles.dm +++ /dev/null @@ -1,185 +0,0 @@ - -//These are shuttle areas; all subtypes are only used as teleportation markers, they have no actual function beyond that. -//Multi area shuttles are a thing now, use subtypes! ~ninjanomnom - -/area/shuttle - name = "Shuttle" - requires_power = FALSE - dynamic_lighting = DYNAMIC_LIGHTING_FORCED - has_gravity = STANDARD_GRAVITY - always_unpowered = FALSE - // Loading the same shuttle map at a different time will produce distinct area instances. - area_flags = NONE - icon_state = "shuttle" - flags_1 = CAN_BE_DIRTY_1 - lighting_colour_tube = "#fff0dd" - lighting_colour_bulb = "#ffe1c1" - area_limited_icon_smoothing = TRUE - sound_environment = SOUND_ENVIRONMENT_ROOM - //The mobile port attached to this area - var/obj/docking_port/mobile/mobile_port - - -/area/shuttle/Destroy() - mobile_port = null - . = ..() - -/area/shuttle/PlaceOnTopReact(turf/T, list/new_baseturfs, turf/fake_turf_type, flags) - . = ..() - if(length(new_baseturfs) > 1 || fake_turf_type) - return // More complicated larger changes indicate this isn't a player - if(ispath(new_baseturfs[1], /turf/open/floor/plating) && !(/turf/baseturf_skipover/shuttle in new_baseturfs)) - new_baseturfs.Insert(1, /turf/baseturf_skipover/shuttle) - -/area/shuttle/proc/link_to_shuttle(obj/docking_port/mobile/M) - mobile_port = M - -////////////////////////////Multi-area shuttles//////////////////////////// - -////////////////////////////Syndicate infiltrator//////////////////////////// - -/area/shuttle/syndicate - name = "Syndicate Infiltrator" - ambientsounds = HIGHSEC - -/area/shuttle/syndicate/bridge - name = "Syndicate Infiltrator Control" - -/area/shuttle/syndicate/medical - name = "Syndicate Infiltrator Medbay" - -/area/shuttle/syndicate/armory - name = "Syndicate Infiltrator Armory" - -/area/shuttle/syndicate/eva - name = "Syndicate Infiltrator EVA" - -/area/shuttle/syndicate/hallway - -/area/shuttle/syndicate/airlock - name = "Syndicate Infiltrator Airlock" - -////////////////////////////Pirate Shuttle//////////////////////////// - -/area/shuttle/pirate - name = "Pirate Shuttle" - requires_power = TRUE - -////////////////////////////Bounty Hunter Shuttles//////////////////////////// - -/area/shuttle/hunter - name = "Hunter Shuttle" - dynamic_lighting = DYNAMIC_LIGHTING_DISABLED - -////////////////////////////White Ship//////////////////////////// - -/area/shuttle/abandoned - name = "Abandoned Ship" - requires_power = TRUE - -/area/shuttle/abandoned/bridge - name = "Abandoned Ship Bridge" - -/area/shuttle/abandoned/engine - name = "Abandoned Ship Engine" - -/area/shuttle/abandoned/bar - name = "Abandoned Ship Bar" - -/area/shuttle/abandoned/crew - name = "Abandoned Ship Crew Quarters" - -/area/shuttle/abandoned/cargo - name = "Abandoned Ship Cargo Bay" - -/area/shuttle/abandoned/medbay - name = "Abandoned Ship Medbay" - -/area/shuttle/abandoned/pod - name = "Abandoned Ship Pod" - -/area/shuttle/abandoned/atmospherics - name = "Abandoned Ship atmospherics"//WS station edit - -/area/shuttle/abandoned/coridor - name = "Abandoned Ship coridor"//WS station edit -////////////////////////////Single-area shuttles//////////////////////////// - -/area/shuttle/transit - name = "Hyperspace" - desc = "Weeeeee" - dynamic_lighting = DYNAMIC_LIGHTING_DISABLED - -/area/shuttle/custom - name = "Custom player shuttle" - flags_1 = CAN_BE_DIRTY_1 - -/area/shuttle/custom/powered - name = "Custom Powered player shuttle" - requires_power = FALSE - -/area/shuttle/arrival - name = "Arrival Shuttle" - area_flags = UNIQUE_AREA// SSjob refers to this area for latejoiners - -/area/shuttle/pod_1 - name = "Escape Pod One" - -/area/shuttle/pod_2 - name = "Escape Pod Two" - -/area/shuttle/pod_3 - name = "Escape Pod Three" - -/area/shuttle/pod_4 - name = "Escape Pod Four" - -/area/shuttle/mining - name = "Mining Shuttle" - -/area/shuttle/mining/large - name = "Mining Shuttle" - requires_power = TRUE - -/area/shuttle/labor - name = "Labor Camp Shuttle" - -/area/shuttle/supply - name = "Supply Shuttle" - area_flags = NOTELEPORT - -/area/shuttle/escape - name = "Emergency Shuttle" - flags_1 = CAN_BE_DIRTY_1 - -/area/shuttle/escape/backup - name = "Backup Emergency Shuttle" - -/area/shuttle/escape/luxury - name = "Luxurious Emergency Shuttle" - area_flags = NOTELEPORT - -/area/shuttle/escape/arena - name = "The Arena" - area_flags = NOTELEPORT - -/area/shuttle/escape/meteor - name = "\proper a meteor with engines strapped to it" - -/area/shuttle/transport - name = "Transport Shuttle" - -/area/shuttle/sbc_starfury - name = "SBC Starfury" - -/area/shuttle/sbc_fighter1 - name = "SBC Fighter 1" - -/area/shuttle/sbc_fighter2 - name = "SBC Fighter 2" - -/area/shuttle/sbc_corvette - name = "SBC corvette" - -/area/shuttle/syndicate_scout - name = "Syndicate Scout" diff --git a/code/game/area/ship_areas.dm b/code/game/area/ship_areas.dm index 54d74fc9538a..b1d47670aa2d 100644 --- a/code/game/area/ship_areas.dm +++ b/code/game/area/ship_areas.dm @@ -46,6 +46,20 @@ NOTE: there are two lists of areas in the end of this file: centcom and station name = "Test Room" icon_state = "storage" +/area/hyperspace + icon_state = "space" + requires_power = TRUE + always_unpowered = TRUE + dynamic_lighting = DYNAMIC_LIGHTING_DISABLED + power_light = FALSE + power_equip = FALSE + power_environ = FALSE + area_flags = UNIQUE_AREA | CAVES_ALLOWED | MOB_SPAWN_ALLOWED + outdoors = TRUE + ambientsounds = SPACE + flags_1 = CAN_BE_DIRTY_1 + sound_environment = SOUND_AREA_SPACE + //EXTRA /area/asteroid diff --git a/code/game/atoms.dm b/code/game/atoms.dm index a140ec099085..e7c9c19325a6 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -353,66 +353,6 @@ return TRUE return !density -/** - * Is this atom currently located on centcom - * - * Specifically, is it on the z level and within the centcom areas - * - * You can also be in a shuttleshuttle during endgame transit - * - * Used in gamemode to identify mobs who have escaped and for some other areas of the code - * who don't want atoms where they shouldn't be - */ -/atom/proc/onCentCom() - var/turf/T = get_turf(src) - if(!T) - return FALSE - - if(is_reserved_level(T)) - for(var/A in SSshuttle.mobile) - var/obj/docking_port/mobile/M = A - if(M.launch_status == ENDGAME_TRANSIT) - for(var/place in M.shuttle_areas) - var/area/shuttle/shuttle_area = place - if(T in shuttle_area) - return TRUE - - if(!is_centcom_level(T))//if not, don't bother - return FALSE - - //Check for centcom itself - if(istype(T.loc, /area/centcom)) - return TRUE - - //Check for centcom shuttles - for(var/A in SSshuttle.mobile) - var/obj/docking_port/mobile/M = A - if(M.launch_status == ENDGAME_LAUNCHED) - for(var/place in M.shuttle_areas) - var/area/shuttle/shuttle_area = place - if(T in shuttle_area) - return TRUE - -/** - * Is the atom in any of the centcom syndicate areas - * - * Either in the syndie base on centcom, or any of their shuttles - * - * Also used in gamemode code for win conditions - */ -/atom/proc/onSyndieBase() - var/turf/T = get_turf(src) - if(!T) - return FALSE - - if(!is_centcom_level(T))//if not, don't bother - return FALSE - - if(istype(T.loc, /area/shuttle/syndicate) || istype(T.loc, /area/syndicate_mothership)) - return TRUE - - return FALSE - /** * Is the atom in an away mission * diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm deleted file mode 100644 index f7ce7b036eb5..000000000000 --- a/code/game/gamemodes/cult/cult.dm +++ /dev/null @@ -1,182 +0,0 @@ -#define CULT_SCALING_COEFFICIENT 9.3 //Roughly one new cultist at roundstart per this many players - -/datum/game_mode - var/list/datum/mind/cult = list() - -/proc/iscultist(mob/living/M) - return M.mind?.has_antag_datum(/datum/antagonist/cult) - -/datum/team/cult/proc/is_sacrifice_target(datum/mind/mind) - for(var/datum/objective/sacrifice/sac_objective in objectives) - if(mind == sac_objective.target) - return TRUE - return FALSE - -/proc/is_convertable_to_cult(mob/living/M,datum/team/cult/specific_cult) - if(!istype(M)) - return FALSE - if(M.mind) - if(specific_cult && specific_cult.is_sacrifice_target(M.mind)) - return FALSE - if(M.mind.enslaved_to && !iscultist(M.mind.enslaved_to)) - return FALSE - if(M.mind.unconvertable) - return FALSE - else - return FALSE - if(HAS_TRAIT(M, TRAIT_MINDSHIELD) || issilicon(M) || isbot(M) || isdrone(M) || !M.client) - return FALSE //can't convert machines, shielded, or braindead - return TRUE - -/datum/game_mode/cult - name = "cult" - config_tag = "cult" - report_type = "cult" - antag_flag = ROLE_CULTIST - false_report_weight = 10 - restricted_jobs = list("Chaplain","AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Brig Physician", "SolGov Representative", "Prisoner") //WS edit - Brig Physicians, SolGov Rep - protected_jobs = list() - required_players = 29 - required_enemies = 4 - recommended_enemies = 4 - enemy_minimum_age = 14 - - announce_span = "cult" - announce_text = "Some crew members are trying to start a cult to Nar'Sie!\n\ - Cultists: Carry out Nar'Sie's will.\n\ - Crew: Prevent the cult from expanding and drive it out." - - title_icon = "cult" - - var/finished = 0 - - var/acolytes_needed = 10 //for the survive objective - var/acolytes_survived = 0 - - var/list/cultists_to_cult = list() //the cultists we'll convert - - var/datum/team/cult/main_cult - - -/datum/game_mode/cult/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" - - //cult scaling goes here - recommended_enemies = 1 + round(num_players()/CULT_SCALING_COEFFICIENT) - var/remaining = (num_players() % CULT_SCALING_COEFFICIENT) * 10 //Basically the % of how close the population is toward adding another cultis - if(prob(remaining)) - recommended_enemies++ - - - for(var/cultists_number = 1 to recommended_enemies) - if(!antag_candidates.len) - break - var/datum/mind/cultist = antag_pick(antag_candidates) - antag_candidates -= cultist - cultists_to_cult += cultist - cultist.special_role = ROLE_CULTIST - cultist.restricted_roles = restricted_jobs - log_game("[key_name(cultist)] has been selected as a cultist") - - if(cultists_to_cult.len>=required_enemies) - for(var/antag in cultists_to_cult) - GLOB.pre_setup_antags += antag - return TRUE - else - setup_error = "Not enough cultist candidates" - return FALSE - - -/datum/game_mode/cult/post_setup() - main_cult = new - - for(var/datum/mind/cult_mind in cultists_to_cult) - add_cultist(cult_mind, 0, equip=TRUE, cult_team = main_cult) - GLOB.pre_setup_antags -= cult_mind - - main_cult.setup_objectives() //Wait until all cultists are assigned to make sure none will be chosen as sacrifice. - - . = ..() - -/datum/game_mode/proc/add_cultist(datum/mind/cult_mind, stun , equip = FALSE, datum/team/cult/cult_team = null) - if (!istype(cult_mind)) - return FALSE - - var/datum/antagonist/cult/new_cultist = new() - new_cultist.give_equipment = equip - - if(cult_mind.add_antag_datum(new_cultist,cult_team)) - if(stun) - cult_mind.current.Unconscious(100) - return TRUE - -/datum/game_mode/proc/remove_cultist(datum/mind/cult_mind, silent, stun) - if(cult_mind.current) - var/datum/antagonist/cult/cult_datum = cult_mind.has_antag_datum(/datum/antagonist/cult) - if(!cult_datum) - return FALSE - cult_datum.silent = silent - cult_mind.remove_antag_datum(cult_datum) - if(stun) - cult_mind.current.Unconscious(100) - return TRUE - -/datum/game_mode/cult/proc/check_cult_victory() - return main_cult.check_cult_victory() - - -/datum/game_mode/cult/set_round_result() - ..() - if(check_cult_victory()) - SSticker.mode_result = "win - cult win" - SSticker.news_report = CULT_SUMMON - else - SSticker.mode_result = "loss - staff stopped the cult" - SSticker.news_report = CULT_FAILURE - -/datum/game_mode/cult/proc/check_survive() - var/acolytes_survived = 0 - for(var/datum/mind/cult_mind in cult) - if (cult_mind.current && cult_mind.current.stat != DEAD) - if(cult_mind.current.onCentCom() || cult_mind.current.onSyndieBase()) - acolytes_survived++ - if(acolytes_survived>=acolytes_needed) - return 0 - else - return 1 - - -/datum/game_mode/cult/generate_report() - return "Some stations in your sector have reported evidence of blood sacrifice and strange magic. Ties to the Wizards' Federation have been proven not to exist, and many employees \ - have disappeared; even Central Command employees light-years away have felt strange presences and at times hysterical compulsions. Interrogations point towards this being the work of \ - the cult of Nar'Sie. If evidence of this cult is discovered aboard your station, extreme caution and extreme vigilance must be taken going forward, and all resources should be \ - devoted to stopping this cult. Note that holy water seems to weaken and eventually return the minds of cultists that ingest it, and mindshield implants will prevent conversion \ - altogether." - - - -/datum/game_mode/cult/generate_credit_text() - var/list/round_credits = list() - var/len_before_addition - - round_credits += "

    The Cult of Nar'Sie:

    " - len_before_addition = round_credits.len - for(var/datum/mind/cultist in cult) - round_credits += "

    [cultist.name] as a cult fanatic

    " - - var/datum/objective/eldergod/summon_objective = locate() in main_cult.objectives - if(summon_objective && summon_objective.summoned) - round_credits += "

    Nar'Sie as the eldritch abomination

    " - - if(len_before_addition == round_credits.len) - round_credits += list("

    The cultists have learned the danger of eldritch magic!

    ", "

    They all disappeared!

    ") - round_credits += "
    " - - round_credits += ..() - return round_credits - -#undef CULT_SCALING_COEFFICIENT diff --git a/code/game/gamemodes/devil/devil_agent/devil_agent.dm b/code/game/gamemodes/devil/devil_agent/devil_agent.dm deleted file mode 100644 index c8fb62faba09..000000000000 --- a/code/game/gamemodes/devil/devil_agent/devil_agent.dm +++ /dev/null @@ -1,44 +0,0 @@ -/datum/game_mode/devil/devil_agents - name = "Devil Agents" - config_tag = "devil_agents" - required_players = 25 - required_enemies = 3 - recommended_enemies = 8 - reroll_friendly = 0 - - traitors_possible = 10 //hard limit on traitors if scaling is turned off - num_modifier = 4 - objective_count = 2 - - var/list/devil_target_list = list() //will update to be a child of internal affairs when bothered - var/list/devil_late_joining_list = list() - minimum_devils = 3 - - announce_text = "There are devil agents onboard the station, trying to outbid each other!\n\ - + Devils: Purchase souls and interfere with your rivals!\n\ - + Crew: Resist the lure of sin and remain pure!" - -/datum/game_mode/devil/devil_agents/post_setup() - var/i = 0 - for(var/datum/mind/devil in devils) - i++ - if(i + 1 > devils.len) - i = 0 - devil_target_list[devil] = devils[i + 1] - ..() - -/datum/game_mode/devil/devil_agents/add_devil_objectives(datum/mind/devil_mind, quantity) - ..(devil_mind, quantity - give_outsell_objective(devil_mind)) - -/datum/game_mode/devil/devil_agents/proc/give_outsell_objective(datum/mind/devil) - //If you override this method, have it return the number of objectives added. - if(devil_target_list.len && devil_target_list[devil]) // Is a double agent - var/datum/mind/target_mind = devil_target_list[devil] - var/datum/antagonist/devil/D = target_mind.has_antag_datum(/datum/antagonist/devil) - var/datum/objective/devil/outsell/outsellobjective = new - outsellobjective.owner = devil - outsellobjective.target = target_mind - outsellobjective.update_explanation_text() - D.objectives += outsellobjective - return 1 - return 0 diff --git a/code/game/gamemodes/devil/devil_game_mode.dm b/code/game/gamemodes/devil/devil_game_mode.dm deleted file mode 100644 index 9d002f4a029d..000000000000 --- a/code/game/gamemodes/devil/devil_game_mode.dm +++ /dev/null @@ -1,106 +0,0 @@ -/datum/game_mode/devil - name = "devil" - config_tag = "devil" - report_type = "devil" - antag_flag = ROLE_DEVIL - false_report_weight = 1 - protected_jobs = list("Prisoner", "Lawyer", "Curator", "Chaplain", "Head of Security", "Captain", "AI") - required_players = 0 - required_enemies = 1 - recommended_enemies = 4 - reroll_friendly = 1 - enemy_minimum_age = 0 - title_icon = "devil" - - var/traitors_possible = 4 //hard limit on devils if scaling is turned off - var/num_modifier = 0 // Used for gamemodes, that are a child of traitor, that need more than the usual. - var/objective_count = 2 - var/minimum_devils = 1 - - announce_text = "There are devils onboard the station!\n\ - + Devils: Purchase souls and tempt the crew to sin!\n\ - + Crew: Resist the lure of sin and remain pure!" - -/datum/game_mode/devil/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/num_devils = 1 - - var/tsc = CONFIG_GET(number/traitor_scaling_coeff) - if(tsc) - num_devils = max(minimum_devils, min(round(num_players() / (tsc * 3))+ 2 + num_modifier, round(num_players() / (tsc * 1.5)) + num_modifier)) - else - num_devils = max(minimum_devils, min(num_players(), traitors_possible)) - - for(var/j = 0, j < num_devils, j++) - if (!antag_candidates.len) - break - var/datum/mind/devil = antag_pick(antag_candidates) - devils += devil - devil.special_role = traitor_name - devil.restricted_roles = restricted_jobs - - log_game("[key_name(devil)] has been selected as a [traitor_name]") - antag_candidates.Remove(devil) - - if(devils.len < required_enemies) - setup_error = "Not enough devil candidates" - return FALSE - for(var/antag in devils) - GLOB.pre_setup_antags += antag - return TRUE - - -/datum/game_mode/devil/post_setup() - for(var/datum/mind/devil in devils) - post_setup_finalize(devil) - ..() - return TRUE - -/datum/game_mode/devil/generate_report() - return "Infernal creatures have been seen nearby offering great boons in exchange for souls. This is considered theft against Nanotrasen, as all employment contracts contain a lien on the \ - employee's soul. If anyone sells their soul in error, contact an attorney to overrule the sale. Be warned that if the devil purchases enough souls, a gateway to hell may open." - -/datum/game_mode/devil/proc/post_setup_finalize(datum/mind/devil) - add_devil(devil.current, ascendable = TRUE) //Devil gamemode devils are ascendable. - GLOB.pre_setup_antags -= devil - add_devil_objectives(devil,2) - -/proc/is_devil(mob/living/M) - return M.mind?.has_antag_datum(/datum/antagonist/devil) - -/proc/add_devil(mob/living/L, ascendable = FALSE) - if(!L || !L.mind) - return FALSE - var/datum/antagonist/devil/devil_datum = L.mind.add_antag_datum(/datum/antagonist/devil) - devil_datum.ascendable = ascendable - return devil_datum - -/proc/remove_devil(mob/living/L) - if(!L || !L.mind) - return FALSE - var/datum/antagonist/devil_datum = L.mind.has_antag_datum(/datum/antagonist/devil) - devil_datum.on_removal() - return TRUE - -/datum/game_mode/devil/generate_credit_text() - var/list/round_credits = list() - var/len_before_addition - - round_credits += "

    The Tempting Devils:

    " - len_before_addition = round_credits.len - var/datum/antagonist/devil/devil_info - for(var/datum/mind/devil in devils) - devil_info = devil.has_antag_datum(/datum/antagonist/devil) - if(devil_info) // This should never fail, but better to be sure - round_credits += "

    [devil_info.truename] in the form of [devil.name]

    " - devil_info = null - if(len_before_addition == round_credits.len) - round_credits += list("

    The devils were all utterly destroyed!

    ", "

    The love of Space Jesus shines through!

    ") - round_credits += "
    " - - round_credits += ..() - return round_credits diff --git a/code/game/gamemodes/devil/game_mode.dm b/code/game/gamemodes/devil/game_mode.dm deleted file mode 100644 index f91b863483c5..000000000000 --- a/code/game/gamemodes/devil/game_mode.dm +++ /dev/null @@ -1,26 +0,0 @@ -/datum/game_mode - var/list/datum/mind/devils = list() - var/devil_ascended = 0 // Number of arch devils on station - -/datum/game_mode/proc/add_devil_objectives(datum/mind/devil_mind, quantity) - var/list/validtypes = list(/datum/objective/devil/soulquantity, /datum/objective/devil/soulquality, /datum/objective/devil/sintouch, /datum/objective/devil/buy_target) - var/datum/antagonist/devil/D = devil_mind.has_antag_datum(/datum/antagonist/devil) - for(var/i = 1 to quantity) - var/type = pick(validtypes) - var/datum/objective/devil/objective = new type(null) - objective.owner = devil_mind - D.objectives += objective - if(!istype(objective, /datum/objective/devil/buy_target)) - validtypes -= type //prevent duplicate objectives, EXCEPT for buy_target. - else - objective.find_target() - -/datum/game_mode/proc/update_soulless_icons_added(datum/mind/soulless_mind) - var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_SOULLESS] - hud.join_hud(soulless_mind.current) - set_antag_hud(soulless_mind.current, "soulless") - -/datum/game_mode/proc/update_soulless_icons_removed(datum/mind/soulless_mind) - var/datum/atom_hud/antag/hud = GLOB.huds[ANTAG_HUD_SOULLESS] - hud.leave_hud(soulless_mind.current) - set_antag_hud(soulless_mind.current, null) diff --git a/code/game/gamemodes/devil/objectives.dm b/code/game/gamemodes/devil/objectives.dm deleted file mode 100644 index f3d5ce575f85..000000000000 --- a/code/game/gamemodes/devil/objectives.dm +++ /dev/null @@ -1,113 +0,0 @@ -/datum/objective/devil - -/datum/objective/devil/soulquantity - explanation_text = "You shouldn't see this text. Error:DEVIL1" - target_amount = 4 - -/datum/objective/devil/soulquantity/New() - target_amount = pick(6,7,8) - update_explanation_text() - -/datum/objective/devil/soulquantity/update_explanation_text() - explanation_text = "Purchase, and retain control over at least [target_amount] souls." - -/datum/objective/devil/soulquantity/check_completion() - var/count = 0 - var/datum/antagonist/devil/devilDatum = owner.has_antag_datum(/datum/antagonist/devil) - var/list/souls = devilDatum.soulsOwned - for(var/S in souls) //Just a sanity check. - var/datum/mind/L = S - if(L.soulOwner == owner) - count++ - return count >= target_amount - - - -/datum/objective/devil/soulquality - explanation_text = "You shouldn't see this text. Error:DEVIL2" - var/contractType - var/contractName - -/datum/objective/devil/soulquality/New() - contractType = pick(CONTRACT_POWER, CONTRACT_WEALTH, CONTRACT_PRESTIGE, CONTRACT_MAGIC, CONTRACT_REVIVE, CONTRACT_KNOWLEDGE/*, CONTRACT_UNWILLING*/) - target_amount = pick(1,2) - switch(contractType) - if(CONTRACT_POWER) - contractName = "for power" - if(CONTRACT_WEALTH) - contractName = "for wealth" - if(CONTRACT_PRESTIGE) - contractName = "for prestige" - if(CONTRACT_MAGIC) - contractName = "for magic" - if(CONTRACT_REVIVE) - contractName = "of revival" - if(CONTRACT_KNOWLEDGE) - contractName = "for knowledge" - update_explanation_text() - -/datum/objective/devil/soulquality/update_explanation_text() - explanation_text = "Have mortals sign at least [target_amount] contracts [contractName]" - -/datum/objective/devil/soulquality/check_completion() - var/count = 0 - var/datum/antagonist/devil/devilDatum = owner.has_antag_datum(/datum/antagonist/devil) - var/list/souls = devilDatum.soulsOwned - for(var/S in souls) - var/datum/mind/L = S - if(!L.owns_soul() && L.damnation_type == contractType) - count++ - return count>=target_amount - - - -/datum/objective/devil/sintouch - explanation_text = "You shouldn't see this text. Error:DEVIL3" - -/datum/objective/devil/sintouch/New() - target_amount = pick(4,5) - explanation_text = "Ensure at least [target_amount] mortals are sintouched." - -/datum/objective/devil/sintouch/check_completion() - var/list/touched = get_antag_minds(/datum/antagonist/sintouched) - return touched.len >= target_amount - - -/datum/objective/devil/buy_target - explanation_text = "You shouldn't see this text. Error:DEVIL4" - -/datum/objective/devil/buy_target/update_explanation_text() - if(target) - explanation_text = "Purchase and retain the soul of [target.name], the [target.assigned_role]." - else - explanation_text = "Free objective." - -/datum/objective/devil/buy_target/check_completion() - return target.soulOwner == owner - - -/datum/objective/devil/outsell - explanation_text = "You shouldn't see this text. Error:DEVIL5" - -/datum/objective/devil/outsell/New() - -/datum/objective/devil/outsell/update_explanation_text() - var/datum/antagonist/devil/opponent = target.has_antag_datum(/datum/antagonist/devil) - explanation_text = "Purchase and retain control over more souls than [opponent.truename], known to mortals as [target.name], the [target.assigned_role]." - -/datum/objective/devil/outsell/check_completion() - var/selfcount = 0 - var/datum/antagonist/devil/devilDatum = owner.has_antag_datum(/datum/antagonist/devil) - var/list/souls = devilDatum.soulsOwned - for(var/S in souls) - var/datum/mind/L = S - if(L.soulOwner == owner) - selfcount++ - var/targetcount = 0 - devilDatum = target.has_antag_datum(/datum/antagonist/devil) - souls = devilDatum.soulsOwned - for(var/S in souls) - var/datum/mind/L = S - if(L.soulOwner == target) - targetcount++ - return selfcount > targetcount diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets.dm b/code/game/gamemodes/dynamic/dynamic_rulesets.dm index 1e6a2da4d867..7163dd0ca54e 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets.dm @@ -35,7 +35,7 @@ var/list/enemy_roles = list() /// If enemy_roles was set, this is the amount of enemy job workers needed per threat_level range (0-10,10-20,etc) IMPORTANT: DOES NOT WORK ON ROUNDSTART RULESETS. var/required_enemies = list(1,1,0,0,0,0,0,0,0,0) - /// The rule needs this many candidates (post-trimming) to be executed (example: Cult needs 4 players at round start) + /// The rule needs this many candidates (post-trimming) to be executed var/required_candidates = 0 /// 1 -> 9, probability for this rule to be picked against other rules var/weight = 5 diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm index 8c8fe19d0a97..70d9c8405204 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm @@ -191,65 +191,6 @@ M.add_antag_datum(new antag_datum()) return TRUE -////////////////////////////////////////////// -// // -// BLOOD CULT // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/roundstart/bloodcult - name = "Blood Cult" - antag_flag = ROLE_CULTIST - antag_datum = /datum/antagonist/cult - minimum_required_age = 14 - restricted_roles = list("AI", "Cyborg", "Prisoner", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Chaplain", "Head of Personnel", "Research Director", "Chief Medical Officer", "Chief Engineer", "SolGov Representative") - required_candidates = 2 - weight = 3 - cost = 35 - requirements = list(100,90,80,60,40,30,10,10,10,10) - high_population_requirement = 10 - flags = HIGHLANDER_RULESET - antag_cap = list(2,2,2,3,3,4,4,4,4,4) - var/datum/team/cult/main_cult - -/datum/dynamic_ruleset/roundstart/bloodcult/ready(forced = FALSE) - required_candidates = antag_cap[indice_pop] - . = ..() - -/datum/dynamic_ruleset/roundstart/bloodcult/pre_execute() - . = ..() - var/cultists = antag_cap[indice_pop] - mode.antags_rolled += cultists - for(var/cultists_number = 1 to cultists) - if(candidates.len <= 0) - break - var/mob/M = pick_n_take(candidates) - assigned += M.mind - M.mind.special_role = ROLE_CULTIST - M.mind.restricted_roles = restricted_roles - GLOB.pre_setup_antags += M.mind - return TRUE - -/datum/dynamic_ruleset/roundstart/bloodcult/execute() - main_cult = new - for(var/datum/mind/M in assigned) - var/datum/antagonist/cult/new_cultist = new antag_datum() - new_cultist.cult_team = main_cult - new_cultist.give_equipment = TRUE - M.add_antag_datum(new_cultist) - GLOB.pre_setup_antags -= M - main_cult.setup_objectives() - return TRUE - -/datum/dynamic_ruleset/roundstart/bloodcult/round_result() - ..() - if(main_cult.check_cult_victory()) - SSticker.mode_result = "win - cult win" - SSticker.news_report = CULT_SUMMON - else - SSticker.mode_result = "loss - staff stopped the cult" - SSticker.news_report = CULT_FAILURE - ////////////////////////////////////////////// // // // NUCLEAR OPERATIVES // @@ -382,93 +323,3 @@ for(var/datum/mind/V in assigned) V.assigned_role = "Clown Operative" V.special_role = "Clown Operative" - -////////////////////////////////////////////// -// // -// DEVIL // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/roundstart/devil - name = "Devil" - antag_flag = ROLE_DEVIL - antag_datum = /datum/antagonist/devil - restricted_roles = list("Lawyer", "Curator", "Chaplain", "Prisoner", "Head of Security", "Captain", "AI") - required_candidates = 1 - weight = 3 - cost = 0 - requirements = list(101,101,101,101,101,101,101,101,101,101) - high_population_requirement = 101 - antag_cap = list(1,1,1,2,2,2,3,3,3,4) - -/datum/dynamic_ruleset/roundstart/devil/pre_execute() - . = ..() - var/num_devils = antag_cap[indice_pop] - mode.antags_rolled += num_devils - - for(var/j = 0, j < num_devils, j++) - if (!candidates.len) - break - var/mob/devil = pick_n_take(candidates) - assigned += devil.mind - devil.mind.special_role = ROLE_DEVIL - devil.mind.restricted_roles = restricted_roles - GLOB.pre_setup_antags += devil.mind - - log_game("[key_name(devil)] has been selected as a devil") - return TRUE - -/datum/dynamic_ruleset/roundstart/devil/execute() - for(var/datum/mind/devil in assigned) - add_devil(devil.current, ascendable = TRUE) - GLOB.pre_setup_antags -= devil - add_devil_objectives(devil,2) - return TRUE - -/datum/dynamic_ruleset/roundstart/devil/proc/add_devil_objectives(datum/mind/devil_mind, quantity) - var/list/validtypes = list(/datum/objective/devil/soulquantity, /datum/objective/devil/soulquality, /datum/objective/devil/sintouch, /datum/objective/devil/buy_target) - var/datum/antagonist/devil/D = devil_mind.has_antag_datum(/datum/antagonist/devil) - for(var/i = 1 to quantity) - var/type = pick(validtypes) - var/datum/objective/devil/objective = new type(null) - objective.owner = devil_mind - D.objectives += objective - if(!istype(objective, /datum/objective/devil/buy_target)) - validtypes -= type - else - objective.find_target() - -////////////////////////////////////////////// -// // -// METEOR // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/roundstart/meteor - name = "Meteor" - persistent = TRUE - required_candidates = 0 - weight = 3 - cost = 0 - requirements = list(101,101,101,101,101,101,101,101,101,101) - high_population_requirement = 101 - var/meteordelay = 2000 - var/nometeors = 0 - var/rampupdelta = 5 - -/datum/dynamic_ruleset/roundstart/meteor/rule_process() - if(nometeors || meteordelay > world.time - SSticker.round_start_time) - return - - var/list/wavetype = GLOB.meteors_normal - var/meteorminutes = (world.time - SSticker.round_start_time - meteordelay) / 10 / 60 - - if (prob(meteorminutes)) - wavetype = GLOB.meteors_threatening - - if (prob(meteorminutes/2)) - wavetype = GLOB.meteors_catastrophic - - var/ramp_up_final = clamp(round(meteorminutes/rampupdelta), 1, 10) - - spawn_meteors(ramp_up_final, wavetype) diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm index 56f873a50bd1..7db8207c9d71 100644 --- a/code/game/gamemodes/events.dm +++ b/code/game/gamemodes/events.dm @@ -47,11 +47,10 @@ for(var/area/A in GLOB.sortedAreas) if(!A.requires_power || A.always_unpowered) continue - if(!istype(A, /area/shuttle)) - A.power_light = TRUE - A.power_equip = TRUE - A.power_environ = TRUE - A.power_change() + A.power_light = TRUE + A.power_equip = TRUE + A.power_environ = TRUE + A.power_change() /proc/power_restore_quick() priority_announce("All SMESs have been recharged. We apologize for the inconvenience.", "Power Systems Nominal", 'sound/ai/poweron.ogg') diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 391ad852664f..00bc1bc95e13 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -418,9 +418,6 @@ return max(0, enemy_minimum_age - C.player_age) -/datum/game_mode/proc/remove_antag_for_borging(datum/mind/newborgie) - SSticker.mode.remove_cultist(newborgie, 0, 0) - /datum/game_mode/proc/generate_station_goals() var/list/possible = list() for(var/T in subtypesof(/datum/station_goal)) diff --git a/code/game/gamemodes/meteor/meteor.dm b/code/game/gamemodes/meteor/meteor.dm deleted file mode 100644 index 9149f5da35f6..000000000000 --- a/code/game/gamemodes/meteor/meteor.dm +++ /dev/null @@ -1,61 +0,0 @@ -/datum/game_mode/meteor - name = "meteor" - config_tag = "meteor" - report_type = "meteor" - false_report_weight = 1 - var/meteordelay = 2000 - var/nometeors = 0 - var/rampupdelta = 5 - required_players = 0 - - announce_span = "danger" - announce_text = "A major meteor shower is bombarding the station! The crew needs to evacuate or survive the onslaught." - - title_icon = "meteor" - -/datum/game_mode/meteor/process() - if(nometeors || meteordelay > world.time - SSticker.round_start_time) - return - - var/list/wavetype = GLOB.meteors_normal - var/meteorminutes = (world.time - SSticker.round_start_time - meteordelay) / 10 / 60 - - - if (prob(meteorminutes)) - wavetype = GLOB.meteors_threatening - - if (prob(meteorminutes/2)) - wavetype = GLOB.meteors_catastrophic - - var/ramp_up_final = clamp(round(meteorminutes/rampupdelta), 1, 10) - - spawn_meteors(ramp_up_final, wavetype) - - -/datum/game_mode/meteor/special_report() - var/survivors = 0 - var/list/survivor_list = list() - - for(var/mob/living/player in GLOB.player_list) - if(player.stat != DEAD) - ++survivors - - if(player.onCentCom()) - survivor_list += "[player.real_name] escaped to the safety of CentCom." - else if(player.onSyndieBase()) - survivor_list += "[player.real_name] escaped to the (relative) safety of Syndicate Space." - else - survivor_list += "[player.real_name] survived but is stranded without any hope of rescue." - - if(survivors) - return "
    The following survived the meteor storm:
    [survivor_list.Join("
    ")]
    " - else - return "
    Nobody survived the meteor storm!
    " - -/datum/game_mode/meteor/set_round_result() - ..() - SSticker.mode_result = "end - evacuation" - -/datum/game_mode/meteor/generate_report() - return "[pick("Asteroids have", "Meteors have", "Large rocks have", "Stellar minerals have", "Space hail has", "Debris has")] been detected near your station, and a collision is possible, \ - though unlikely. Be prepared for largescale impacts and destruction. Please note that the debris will prevent the escape shuttle from arriving quickly." diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 65e161f2176b..ec74c51acc95 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -58,18 +58,11 @@ GLOBAL_LIST_EMPTY(objectives) /datum/objective/proc/considered_escaped(datum/mind/M) if(!considered_alive(M)) return FALSE - if(considered_exiled(M)) - return FALSE - if(M.force_escaped) - return TRUE - if(SSticker.force_ending || SSticker.mode.station_was_nuked) // Just let them win. + if(SSticker.force_ending) // Just let them win. return TRUE if(SSshuttle.jump_mode != BS_JUMP_COMPLETED) return FALSE - var/turf/location = get_turf(M.current) - if(!location || istype(location, /turf/open/floor/mineral/plastitanium/red/brig)) // Fails if they are in the shuttle brig - return FALSE - return location.onCentCom() || location.onSyndieBase() + return TRUE /datum/objective/proc/check_completion() return completed @@ -233,7 +226,7 @@ GLOBAL_LIST_EMPTY(objectives) ..() /datum/objective/maroon/check_completion() - return !target || !considered_alive(target) || (!target.current.onCentCom() && !target.current.onSyndieBase()) + return !target || !considered_alive(target) /datum/objective/maroon/update_explanation_text() if(target && target.current) @@ -334,7 +327,7 @@ GLOBAL_LIST_EMPTY(objectives) name = "detain" /datum/objective/jailbreak/detain/check_completion() - return completed || (!considered_escaped(target) && (considered_alive(target) && target.current.onCentCom())) + return completed || (!considered_escaped(target) && (considered_alive(target))) /datum/objective/jailbreak/detain/update_explanation_text() ..() diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm index 2389b699e7b9..96fbbd8254d1 100644 --- a/code/game/machinery/computer/arcade.dm +++ b/code/game/machinery/computer/arcade.dm @@ -1,7 +1,6 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list( /obj/item/storage/box/snappops = 2, /obj/item/toy/talking/AI = 2, - /obj/item/toy/talking/codex_gigas = 2, /obj/item/clothing/under/syndicate/tacticool = 2, /obj/item/toy/sword = 2, /obj/item/toy/gun = 2, diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 3412321b380b..2d76d7ecb351 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -370,26 +370,6 @@ audible_message("You hear a click from the bottom of the door.", null, 1) update_appearance() -/obj/machinery/door/airlock/narsie_act() - var/turf/T = get_turf(src) - var/obj/machinery/door/airlock/cult/A - if(GLOB.cult_narsie) - var/runed = prob(20) - if(glass) - if(runed) - A = new/obj/machinery/door/airlock/cult/glass(T) - else - A = new/obj/machinery/door/airlock/cult/unruned/glass(T) - else - if(runed) - A = new/obj/machinery/door/airlock/cult(T) - else - A = new/obj/machinery/door/airlock/cult/unruned(T) - A.name = name - else - A = new /obj/machinery/door/airlock/cult/weak(T) - qdel(src) - /obj/machinery/door/airlock/Destroy() QDEL_NULL(wires) QDEL_NULL(electronics) diff --git a/code/game/machinery/doors/airlock_types.dm b/code/game/machinery/doors/airlock_types.dm index 492ce30f6ac4..f6e6840f552b 100644 --- a/code/game/machinery/doors/airlock_types.dm +++ b/code/game/machinery/doors/airlock_types.dm @@ -461,115 +461,6 @@ security_level = 1 has_hatch = FALSE -////////////////////////////////// -/* - Cult Airlocks -*/ - -/obj/machinery/door/airlock/cult - name = "cult airlock" - icon = 'icons/obj/doors/airlocks/cult/runed/cult.dmi' - overlays_file = 'icons/obj/doors/airlocks/cult/runed/overlays.dmi' - assemblytype = /obj/structure/door_assembly/door_assembly_cult - hackProof = TRUE - aiControlDisabled = AI_WIRE_DISABLED - req_access = list(ACCESS_BLOODCULT) - damage_deflection = 10 - has_hatch = FALSE - var/openingoverlaytype = /obj/effect/temp_visual/cult/door - var/friendly = FALSE - var/stealthy = FALSE - -/obj/machinery/door/airlock/cult/Initialize() - . = ..() - new openingoverlaytype(loc) - -/obj/machinery/door/airlock/cult/canAIControl(mob/user) - return (iscultist(user) && !isAllPowerCut()) - -/obj/machinery/door/airlock/cult/on_break() - if(!panel_open) - panel_open = TRUE - -/obj/machinery/door/airlock/cult/isElectrified() - return FALSE - -/obj/machinery/door/airlock/cult/hasPower() - return TRUE - -/obj/machinery/door/airlock/cult/allowed(mob/living/L) - if(!density) - return 1 - if(friendly || iscultist(L) || istype(L, /mob/living/simple_animal/shade) || isconstruct(L)) - if(!stealthy) - new openingoverlaytype(loc) - return 1 - else - if(!stealthy) - new /obj/effect/temp_visual/cult/sac(loc) - var/atom/throwtarget - throwtarget = get_edge_target_turf(src, get_dir(src, get_step_away(L, src))) - SEND_SOUND(L, sound(pick('sound/hallucinations/turn_around1.ogg','sound/hallucinations/turn_around2.ogg'),0,1,50)) - flash_color(L, flash_color="#960000", flash_time=20) - L.Paralyze(40) - L.throw_at(throwtarget, 5, 1) - return 0 - -/obj/machinery/door/airlock/cult/proc/conceal() - icon = 'icons/obj/doors/airlocks/station/maintenance.dmi' - overlays_file = 'icons/obj/doors/airlocks/station/overlays.dmi' - name = "airlock" - desc = "It opens and closes." - stealthy = TRUE - update_appearance() - -/obj/machinery/door/airlock/cult/proc/reveal() - icon = initial(icon) - overlays_file = initial(overlays_file) - name = initial(name) - desc = initial(desc) - stealthy = initial(stealthy) - update_appearance() - -/obj/machinery/door/airlock/cult/narsie_act() - return - -/obj/machinery/door/airlock/cult/emp_act(severity) - return - -/obj/machinery/door/airlock/cult/friendly - friendly = TRUE - -/obj/machinery/door/airlock/cult/glass - glass = TRUE - opacity = FALSE - -/obj/machinery/door/airlock/cult/glass/friendly - friendly = TRUE - -/obj/machinery/door/airlock/cult/unruned - icon = 'icons/obj/doors/airlocks/cult/unruned/cult.dmi' - overlays_file = 'icons/obj/doors/airlocks/cult/unruned/overlays.dmi' - assemblytype = /obj/structure/door_assembly/door_assembly_cult/unruned - openingoverlaytype = /obj/effect/temp_visual/cult/door/unruned - -/obj/machinery/door/airlock/cult/unruned/friendly - friendly = TRUE - -/obj/machinery/door/airlock/cult/unruned/glass - glass = TRUE - opacity = FALSE - -/obj/machinery/door/airlock/cult/unruned/glass/friendly - friendly = TRUE - -/obj/machinery/door/airlock/cult/weak - name = "brittle cult airlock" - desc = "An airlock hastily corrupted by blood magic, it is unusually brittle in this state." - normal_integrity = 150 - damage_deflection = 5 - armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - ////////////////////////////////// /* Misc Airlocks diff --git a/code/game/machinery/drone_dispenser.dm b/code/game/machinery/drone_dispenser.dm index 4603044ab285..bb79d5f7e46e 100644 --- a/code/game/machinery/drone_dispenser.dm +++ b/code/game/machinery/drone_dispenser.dm @@ -108,28 +108,6 @@ recharge_sound = null recharge_message = null -/obj/machinery/droneDispenser/swarmer - name = "swarmer fabricator" - desc = "An alien machine of unknown origin. It whirs and hums with green-blue light, the air above it shimmering." - icon = 'icons/obj/objects.dmi' - icon_state = "hivebot_fab" - icon_off = "hivebot_fab" - icon_on = "hivebot_fab" - icon_recharging = "hivebot_fab" - icon_creating = "hivebot_fab_on" - metal_cost = 0 - glass_cost = 0 - cooldownTime = 300 //30 seconds - maximum_idle = 0 // Swarmers have no restraint - dispense_type = /obj/effect/mob_spawn/swarmer - begin_create_message = "hums softly as an interface appears above it, scrolling by at unreadable speed." - end_create_message = "materializes a strange shell, which drops to the ground." - recharging_text = "Its lights are slowly increasing in brightness." - work_sound = 'sound/effects/empulse.ogg' - create_sound = 'sound/effects/phasein.ogg' - break_sound = 'sound/effects/empulse.ogg' - break_message = "slowly falls dark, lights stuttering." - /obj/machinery/droneDispenser/examine(mob/user) . = ..() if((mode == DRONE_RECHARGING) && !machine_stat && recharging_text) diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 47db5ce6d0ef..e6e754c4b807 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -43,27 +43,6 @@ if(.) //damage was dealt new /obj/effect/temp_visual/impact_effect/ion(loc) -/obj/structure/emergency_shield/sanguine - name = "sanguine barrier" - desc = "A potent shield summoned by cultists to defend their rites." - icon_state = "shield-red" - max_integrity = 60 - -/obj/structure/emergency_shield/sanguine/emp_act(severity) - return - -/obj/structure/emergency_shield/invoker - name = "Invoker's Shield" - desc = "A weak shield summoned by cultists to protect them while they carry out delicate rituals." - color = "#FF0000" - max_integrity = 20 - mouse_opacity = MOUSE_OPACITY_TRANSPARENT - layer = ABOVE_MOB_LAYER - -/obj/structure/emergency_shield/invoker/emp_act(severity) - return - - /obj/machinery/shieldgen name = "anti-breach shielding projector" desc = "Used to seal minor hull breaches." diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm index 12085b7d62d4..b46ccaca9f60 100644 --- a/code/game/machinery/syndicatebeacon.dm +++ b/code/game/machinery/syndicatebeacon.dm @@ -148,7 +148,3 @@ /obj/item/sbeacondrop/penetratorturret desc = "A label on it reads: Warning: Activating this device will send a penetrator turret to your location." droptype = /obj/machinery/porta_turret/syndicate/shuttle - -/obj/item/sbeacondrop/constructshell - desc = "A label on it reads: Warning: Activating this device will send a Nar'sian construct shell to your location." - droptype = /obj/structure/constructshell diff --git a/code/game/objects/effects/blessing.dm b/code/game/objects/effects/blessing.dm index be2d89707882..66b027f2e516 100644 --- a/code/game/objects/effects/blessing.dm +++ b/code/game/objects/effects/blessing.dm @@ -16,14 +16,7 @@ I.alpha = 64 I.appearance_flags = RESET_ALPHA add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/blessedAware, "blessing", I) - RegisterSignal(loc, COMSIG_ATOM_INTERCEPT_TELEPORT, PROC_REF(block_cult_teleport)) /obj/effect/blessing/Destroy() UnregisterSignal(loc, COMSIG_ATOM_INTERCEPT_TELEPORT) return ..() - -/obj/effect/blessing/proc/block_cult_teleport(datum/source, channel, turf/origin, turf/destination) - SIGNAL_HANDLER - - if(channel == TELEPORT_CHANNEL_CULT) - return COMPONENT_BLOCK_TELEPORT diff --git a/code/game/objects/effects/forcefields.dm b/code/game/objects/effects/forcefields.dm index e46d8d92e82a..d4278d775888 100644 --- a/code/game/objects/effects/forcefields.dm +++ b/code/game/objects/effects/forcefields.dm @@ -19,14 +19,6 @@ /obj/effect/forcefield/singularity_pull() return -/obj/effect/forcefield/cult - desc = "An unholy shield that blocks all attacks." - name = "glowing wall" - icon = 'icons/effects/cult_effects.dmi' - icon_state = "cultshield" - CanAtmosPass = ATMOS_PASS_NO - timeleft = 200 - ///////////Mimewalls/////////// /obj/effect/forcefield/mime diff --git a/code/game/objects/items/AI_modules.dm b/code/game/objects/items/AI_modules.dm index 7fee84da562f..151be9b026da 100644 --- a/code/game/objects/items/AI_modules.dm +++ b/code/game/objects/items/AI_modules.dm @@ -49,7 +49,7 @@ AI MODULES //Handle the lawcap if(law_datum) var/tot_laws = 0 - for(var/lawlist in list(law_datum.devillaws, law_datum.inherent, law_datum.supplied, law_datum.ion, law_datum.hacked, laws)) + for(var/lawlist in list(law_datum.inherent, law_datum.supplied, law_datum.ion, law_datum.hacked, laws)) for(var/mylaw in lawlist) if(mylaw != "") tot_laws++ diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm index d2ce379274dc..232b4570a97e 100644 --- a/code/game/objects/items/blueprints.dm +++ b/code/game/objects/items/blueprints.dm @@ -150,7 +150,6 @@ if(A.outdoors) return AREA_SPACE var/list/SPECIALS = list( - /area/shuttle, /area/centcom, /area/asteroid, /area/tdome, diff --git a/code/game/objects/items/implants/implant_mindshield.dm b/code/game/objects/items/implants/implant_mindshield.dm index 121fa9f0c234..0a7094fb3895 100644 --- a/code/game/objects/items/implants/implant_mindshield.dm +++ b/code/game/objects/items/implants/implant_mindshield.dm @@ -28,10 +28,7 @@ deconverted = TRUE if(!silent) - if(target.mind in SSticker.mode.cult) - to_chat(target, "You feel something interfering with your mental conditioning, but you resist it!") - else - to_chat(target, "You feel a sense of peace and security. You are now protected from brainwashing.") + to_chat(target, "You feel a sense of peace and security. You are now protected from brainwashing.") ADD_TRAIT(target, TRAIT_MINDSHIELD, "implant") target.sec_hud_set_implants() if(deconverted) diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index 3194c1302512..6aba20463392 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -289,7 +289,6 @@ if(M.laws.id == DEFAULT_AI_LAWID) O.make_laws() - SSticker.mode.remove_antag_for_borging(B.mind) O.job = "Cyborg" O.cell = chest.cell diff --git a/code/game/objects/items/shuttle_creator.dm b/code/game/objects/items/shuttle_creator.dm index 781020f87318..9f25041d1f00 100644 --- a/code/game/objects/items/shuttle_creator.dm +++ b/code/game/objects/items/shuttle_creator.dm @@ -218,7 +218,6 @@ /obj/item/shuttle_creator/proc/check_current_area(mob/user) var/static/area_or_turf_fail_types = typecacheof(list( /turf/open/space, - /area/shuttle )) //Check to see if the user can make a new area to prevent spamming if(user) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index c00ba77b21b8..ce64af1fd205 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -7,7 +7,6 @@ * Plastic * Cardboard * Paper Frames - * Runed Metal (cult) * Bronze (bake brass) */ diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 54ccfc301e9c..c6d55e03ef48 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -405,32 +405,6 @@ var/datum/component/storage/STR = GetComponent(/datum/component/storage) STR.max_items = 5 -/obj/item/storage/belt/soulstone - name = "soul stone belt" - desc = "Designed for ease of access to the shards during a fight, as to not let a single enemy spirit slip away." - icon_state = "soulstone" - item_state = "soulstone" - -/obj/item/storage/belt/soulstone/ComponentInitialize() - . = ..() - var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_items = 6 - STR.set_holdable(list( - /obj/item/soulstone - )) - -/obj/item/storage/belt/soulstone/full/PopulateContents() - for(var/i in 1 to 6) - new /obj/item/soulstone(src) - -/obj/item/storage/belt/soulstone/full/chappy/PopulateContents() - for(var/i in 1 to 6) - new /obj/item/soulstone/anybody/chaplain(src) - -/obj/item/storage/belt/soulstone/full/purified/PopulateContents() - for(var/i in 1 to 6) - new /obj/item/soulstone/anybody/purified(src) - /obj/item/storage/belt/champion name = "championship belt" desc = "Proves to the world that you are the strongest!" diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 3ef2d547931a..9516c7128090 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -561,12 +561,3 @@ /obj/item/storage/box/syndie_kit/signaler/PopulateContents() for(var/i in 1 to 6) new /obj/item/assembly/signaler(src) - -/obj/item/storage/box/syndie_kit/cultconstructkit - name = "cult construct kit" - desc = "A sleek, sturdy box with an ominous, dark energy inside. Yikes." - -/obj/item/storage/box/syndie_kit/cultconstructkit/PopulateContents() - new /obj/item/storage/belt/soulstone/full/purified(src) - new /obj/item/sbeacondrop/constructshell(src) - new /obj/item/sbeacondrop/constructshell(src) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 7d2828c41660..6d6d258b5b0c 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -542,31 +542,6 @@ /obj/item/toy/talking/AI/generate_messages() return list(generate_ion_law()) -/obj/item/toy/talking/codex_gigas - name = "Toy Codex Gigas" - desc = "A tool to help you write fictional devils!" - icon = 'icons/obj/library.dmi' - icon_state = "demonomicon" - lefthand_file = 'icons/mob/inhands/misc/books_lefthand.dmi' - righthand_file = 'icons/mob/inhands/misc/books_righthand.dmi' - w_class = WEIGHT_CLASS_SMALL - recharge_time = 60 - -/obj/item/toy/talking/codex_gigas/activation_message(mob/user) - user.visible_message( - "[user] presses the button on \the [src].", - "You press the button on \the [src].", - "You hear a soft click.") - -/obj/item/toy/talking/codex_gigas/generate_messages() - var/datum/fakeDevil/devil = new - var/list/messages = list() - messages += "Some fun facts about: [devil.truename]" - messages += "[GLOB.lawlorify[LORE][devil.obligation]]" - messages += "[GLOB.lawlorify[LORE][devil.ban]]" - messages += "[GLOB.lawlorify[LORE][devil.banish]]" - return messages - /obj/item/toy/talking/owl name = "owl action figure" desc = "An action figure modeled after 'The Owl', defender of justice." diff --git a/code/game/objects/structures/ai_core.dm b/code/game/objects/structures/ai_core.dm index 1994ff330dd9..dba1c510767d 100644 --- a/code/game/objects/structures/ai_core.dm +++ b/code/game/objects/structures/ai_core.dm @@ -220,7 +220,6 @@ to_chat(user, "You connect the monitor.") if(brain) var/mob/living/brain/B = brain.brainmob - SSticker.mode.remove_antag_for_borging(B.mind) var/mob/living/silicon/ai/A = null diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 31e9d9a0b8fc..8ee8d8214f80 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -209,7 +209,7 @@ LINEN BINS /obj/item/bedsheet/cult name = "cultist's bedsheet" - desc = "You might dream of Nar'Sie if you sleep with this. It seems rather tattered and glows of an eldritch presence." + desc = "You might dream of elder gods if you sleep with this. It seems rather tattered." icon_state = "sheetcult" item_state = "sheetcult" dream_messages = list("a tome", "a floating red crystal", "a glowing sword", "a bloody symbol", "a massive humanoid figure") diff --git a/code/game/objects/structures/door_assembly_types.dm b/code/game/objects/structures/door_assembly_types.dm index d2bcf77cfda7..b77f86be469f 100644 --- a/code/game/objects/structures/door_assembly_types.dm +++ b/code/game/objects/structures/door_assembly_types.dm @@ -141,20 +141,6 @@ airlock_type = /obj/machinery/door/airlock/shuttle glass_type = /obj/machinery/door/airlock/shuttle/glass -/obj/structure/door_assembly/door_assembly_cult - name = "cult airlock assembly" - icon = 'icons/obj/doors/airlocks/cult/runed/cult.dmi' - base_name = "cult airlock" - overlays_file = 'icons/obj/doors/airlocks/cult/runed/overlays.dmi' - airlock_type = /obj/machinery/door/airlock/cult - glass_type = /obj/machinery/door/airlock/cult/glass - -/obj/structure/door_assembly/door_assembly_cult/unruned - icon = 'icons/obj/doors/airlocks/cult/unruned/cult.dmi' - overlays_file = 'icons/obj/doors/airlocks/cult/unruned/overlays.dmi' - airlock_type = /obj/machinery/door/airlock/cult/unruned - glass_type = /obj/machinery/door/airlock/cult/unruned/glass - /obj/structure/door_assembly/door_assembly_viro name = "virology airlock assembly" icon = 'icons/obj/doors/airlocks/station/virology.dmi' diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index aed3ae724c59..f8893a3e3bc9 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -102,58 +102,6 @@ head = /obj/item/clothing/head/helmet/gladiator uniform = /obj/item/clothing/under/costume/gladiator/ash_walker -/obj/effect/mob_spawn/human/demonic_friend - name = "Essence of friendship" - desc = "Oh boy! Oh boy! A friend!" - mob_name = "Demonic friend" - icon = 'icons/obj/cardboard_cutout.dmi' - icon_state = "cutout_basic" - outfit = /datum/outfit/demonic_friend - death = FALSE - roundstart = FALSE - random = TRUE - id_job = "SuperFriend" - var/obj/effect/proc_holder/spell/targeted/summon_friend/spell - var/datum/mind/owner - assignedrole = "SuperFriend" - -/obj/effect/mob_spawn/human/demonic_friend/Initialize(mapload, datum/mind/owner_mind, obj/effect/proc_holder/spell/targeted/summon_friend/summoning_spell) - . = ..() - owner = owner_mind - flavour_text = "You have been given a reprieve from your eternity of torment, to be [owner.name]'s friend for [owner.p_their()] short mortal coil." - important_info = "Be aware that if you do not live up to [owner.name]'s expectations, they can send you back to hell with a single thought. [owner.name]'s death will also return you to hell." - var/area/A = get_area(src) - if(!mapload && A) - notify_ghosts("\A friendship shell has been completed in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE) - objectives = "Be [owner.name]'s friend, and keep [owner.name] alive, so you don't get sent back to hell." - spell = summoning_spell - - -/obj/effect/mob_spawn/human/demonic_friend/special(mob/living/L) - if(!QDELETED(owner.current) && owner.current.stat != DEAD) - L.fully_replace_character_name(null,"[owner.name]'s best friend") - soullink(/datum/soullink/oneway, owner.current, L) - spell.friend = L - spell.charge_counter = spell.charge_max - L.mind.hasSoul = FALSE - var/mob/living/carbon/human/H = L - var/obj/item/worn = H.wear_id - var/obj/item/card/id/id = worn.GetID() - id.registered_name = L.real_name - id.update_label() - else - to_chat(L, "Your owner is already dead! You will soon perish.") - addtimer(CALLBACK(L, TYPE_PROC_REF(/mob, dust), 150)) //Give em a few seconds as a mercy. - -/datum/outfit/demonic_friend - name = "Demonic Friend" - uniform = /obj/item/clothing/under/misc/assistantformal - shoes = /obj/item/clothing/shoes/laceup - r_pocket = /obj/item/radio - back = /obj/item/storage/backpack - implants = list(/obj/item/implant/mindshield) //No revolutionaries, he's MY friend. - id = /obj/item/card/id - /obj/effect/mob_spawn/human/syndicate name = "Syndicate Operative" roundstart = FALSE diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index df0d3cf1f43c..5f35e69d098e 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -314,10 +314,6 @@ new remains(loc) qdel(src) -/obj/structure/girder/narsie_act() - new /obj/structure/girder/cult(loc) - qdel(src) - /obj/structure/girder/displaced name = "displaced girder" icon_state = "displaced" @@ -339,56 +335,6 @@ new remains(loc, 2) qdel(src) - - -//////////////////////////////////////////// cult girder ////////////////////////////////////////////// - -/obj/structure/girder/cult - name = "runed girder" - desc = "Framework made of a strange and shockingly cold metal. It doesn't seem to have any bolts." - icon = 'icons/obj/cult.dmi' - icon_state= "cultgirder" - can_displace = FALSE - -/obj/structure/girder/cult/attackby(obj/item/W, mob/user, params) - add_fingerprint(user) - if(W.tool_behaviour == TOOL_WELDER) - if(!W.tool_start_check(user, amount=0)) - return - - to_chat(user, "You start slicing apart the girder...") - if(W.use_tool(src, user, 40, volume=50)) - to_chat(user, "You slice apart the girder.") - var/obj/item/stack/sheet/mineral/hidden/hellstone/R = new(drop_location(), 1) - transfer_fingerprints_to(R) - qdel(src) - - else if(istype(W, /obj/item/stack/sheet/mineral/hidden/hellstone)) - var/obj/item/stack/sheet/mineral/hidden/hellstone/R = W - if(R.get_amount() < 1) - to_chat(user, "You need at least one sheet of runed metal to construct a runed wall!") - return 0 - user.visible_message("[user] begins laying runed metal on [src]...", "You begin constructing a runed wall...") - if(do_after(user, 50, target = src)) - if(R.get_amount() < 1) - return - user.visible_message("[user] plates [src] with runed metal.", "You construct a runed wall.") - R.use(1) - var/turf/T = get_turf(src) - T.PlaceOnTop(/turf/closed/wall/mineral/cult) - qdel(src) - - else - return ..() - -/obj/structure/girder/cult/narsie_act() - return - -/obj/structure/girder/cult/deconstruct(disassembled = TRUE) - if(!(flags_1 & NODECONSTRUCT_1)) - new /obj/item/stack/sheet/mineral/hidden/hellstone(drop_location(), 1) - qdel(src) - /obj/structure/girder/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd) switch(the_rcd.mode) if(RCD_FLOORWALL) diff --git a/code/game/turfs/closed/wall/misc_walls.dm b/code/game/turfs/closed/wall/misc_walls.dm index b674e25fc8f8..6bbe3c623be0 100644 --- a/code/game/turfs/closed/wall/misc_walls.dm +++ b/code/game/turfs/closed/wall/misc_walls.dm @@ -8,24 +8,12 @@ canSmoothWith = null sheet_type = /obj/item/stack/sheet/mineral/hidden/hellstone sheet_amount = 1 - girder_type = /obj/structure/girder/cult - max_integrity = 600 /turf/closed/wall/mineral/cult/Initialize(mapload, inherited_virtual_z) new /obj/effect/temp_visual/cult/turf(src) . = ..() -/turf/closed/wall/mineral/cult/Exited(atom/movable/AM, atom/newloc) - . = ..() - if(istype(AM, /mob/living/simple_animal/hostile/construct/harvester)) //harvesters can go through cult walls, dragging something with - var/mob/living/simple_animal/hostile/construct/harvester/H = AM - var/atom/movable/stored_pulling = H.pulling - if(stored_pulling) - stored_pulling.setDir(get_dir(stored_pulling.loc, newloc)) - stored_pulling.forceMove(src) - H.start_pulling(stored_pulling, supress_message = TRUE) - /turf/closed/wall/mineral/cult/artificer name = "runed stone wall" desc = "A cold stone wall engraved with indecipherable symbols. Studying them causes your head to pound." diff --git a/code/game/turfs/open/floor.dm b/code/game/turfs/open/floor.dm index f7eac409b836..23fdfcc6d998 100644 --- a/code/game/turfs/open/floor.dm +++ b/code/game/turfs/open/floor.dm @@ -180,11 +180,6 @@ else if(prob(50)) ReplaceWithLattice() -/turf/open/floor/narsie_act(force, ignore_mobs, probability = 20) - . = ..() - if(.) - ChangeTurf(/turf/open/floor/engine/cult, flags = CHANGETURF_INHERIT_AIR) - /turf/open/floor/acid_melt() ScrapeAway(flags = CHANGETURF_INHERIT_AIR) diff --git a/code/game/turfs/open/floor/reinf_floor.dm b/code/game/turfs/open/floor/reinf_floor.dm index 7fb94e541bda..9094b0a3238f 100644 --- a/code/game/turfs/open/floor/reinf_floor.dm +++ b/code/game/turfs/open/floor/reinf_floor.dm @@ -141,36 +141,6 @@ name = "hydrogen mix floor" initial_gas_mix = ATMOS_TANK_HYDROGEN_FUEL -/turf/open/floor/engine/cult - name = "engraved floor" - desc = "The air smells strange over this sinister flooring." - icon_state = "plating" - floor_tile = null - var/obj/effect/cult_turf/overlay/floor/bloodcult/realappearance - - -/turf/open/floor/engine/cult/Initialize(mapload, inherited_virtual_z) - . = ..() - new /obj/effect/temp_visual/cult/turf/floor(src) - realappearance = new /obj/effect/cult_turf/overlay/floor/bloodcult(src) - realappearance.linked = src - -/turf/open/floor/engine/cult/Destroy() - be_removed() - return ..() - -/turf/open/floor/engine/cult/ChangeTurf(path, new_baseturf, flags) - if(path != type) - be_removed() - return ..() - -/turf/open/floor/engine/cult/proc/be_removed() - qdel(realappearance) - realappearance = null - -/turf/open/floor/engine/cult/airless - initial_gas_mix = AIRLESS_ATMOS - /turf/open/floor/engine/vacuum name = "vacuum floor" initial_gas_mix = AIRLESS_ATMOS diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index d05fd3ee3b98..b62a7830cc0d 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -850,22 +850,6 @@ if(!ai_number) to_chat(usr, "No AIs located" , confidential = TRUE) -/datum/admins/proc/output_all_devil_info() - var/devil_number = 0 - for(var/datum/mind/D in SSticker.mode.devils) - devil_number++ - var/datum/antagonist/devil/devil = D.has_antag_datum(/datum/antagonist/devil) - to_chat(usr, "Devil #[devil_number]:

    " + devil.printdevilinfo(), confidential = TRUE) - if(!devil_number) - to_chat(usr, "No Devils located" , confidential = TRUE) - -/datum/admins/proc/output_devil_info(mob/living/M) - if(is_devil(M)) - var/datum/antagonist/devil/devil = M.mind.has_antag_datum(/datum/antagonist/devil) - to_chat(usr, devil.printdevilinfo(), confidential = TRUE) - else - to_chat(usr, "[M] is not a devil.", confidential = TRUE) - /datum/admins/proc/dynamic_mode_options(mob/user) var/dat = {"

    Dynamic Mode Options


    diff --git a/code/modules/admin/fun_balloon.dm b/code/modules/admin/fun_balloon.dm index 04e84097f6d1..0be2f41696e6 100644 --- a/code/modules/admin/fun_balloon.dm +++ b/code/modules/admin/fun_balloon.dm @@ -136,8 +136,3 @@ /obj/effect/forcefield/arena_shuttle_entrance/proc/do_bloodbath(mob/living/L) var/obj/item/mine/pressure/pickup/bloodbath/B = new (L) B.mine_effect(L) - -/area/shuttle_arena - name = "arena" - has_gravity = STANDARD_GRAVITY - requires_power = FALSE diff --git a/code/modules/admin/sql_ban_system.dm b/code/modules/admin/sql_ban_system.dm index 28646666b46a..bd3d189f85eb 100644 --- a/code/modules/admin/sql_ban_system.dm +++ b/code/modules/admin/sql_ban_system.dm @@ -285,8 +285,8 @@ var/list/long_job_lists = list("Service" = GLOB.service_positions, "Ghost and Other Roles" = list(ROLE_BRAINWASHED, ROLE_DEATHSQUAD, ROLE_DRONE, ROLE_LAVALAND, ROLE_MIND_TRANSFER, ROLE_POSIBRAIN, ROLE_SENTIENCE), "Antagonist Positions" = list(ROLE_ABDUCTOR, ROLE_ALIEN, - ROLE_BROTHER, ROLE_CHANGELING, ROLE_CULTIST, - ROLE_DEVIL, ROLE_INTERNAL_AFFAIRS, ROLE_MALF, + ROLE_BROTHER, ROLE_CHANGELING, + ROLE_INTERNAL_AFFAIRS, ROLE_MALF, ROLE_MONKEY, ROLE_NINJA, ROLE_OPERATIVE, ROLE_OVERTHROW, ROLE_REV, ROLE_REVENANT, ROLE_REV_HEAD, ROLE_SYNDICATE, diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 7f546f5a6e7d..5123eed0be58 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -78,13 +78,6 @@ else message_admins("[key_name_admin(usr)] tried to create changelings. Unfortunately, there were no candidates available.") log_admin("[key_name(usr)] failed to create changelings.") - if("cult") - if(src.makeCult()) - message_admins("[key_name(usr)] started a cult.") - log_admin("[key_name(usr)] started a cult.") - else - message_admins("[key_name_admin(usr)] tried to start a cult. Unfortunately, there were no candidates available.") - log_admin("[key_name(usr)] failed to start a cult.") if("wizard") message_admins("[key_name(usr)] is creating a wizard...") if(src.makeWizard()) @@ -350,14 +343,6 @@ M.change_mob_type(/mob/living/simple_animal/parrot , null, null, delmob) if("polyparrot") M.change_mob_type(/mob/living/simple_animal/parrot/Polly , null, null, delmob) - if("constructjuggernaut") - M.change_mob_type(/mob/living/simple_animal/hostile/construct/juggernaut , null, null, delmob) - if("constructartificer") - M.change_mob_type(/mob/living/simple_animal/hostile/construct/artificer , null, null, delmob) - if("constructwraith") - M.change_mob_type(/mob/living/simple_animal/hostile/construct/wraith , null, null, delmob) - if("shade") - M.change_mob_type(/mob/living/simple_animal/shade , null, null, delmob) else if(href_list["boot2"]) if(!check_rights(R_ADMIN)) @@ -1140,12 +1125,6 @@ return output_ai_laws() - else if(href_list["admincheckdevilinfo"]) - if(!check_rights(R_ADMIN)) - return - var/mob/M = locate(href_list["admincheckdevilinfo"]) - output_devil_info(M) - else if(href_list["adminmoreinfo"]) var/mob/M = locate(href_list["adminmoreinfo"]) in GLOB.mob_list if(!ismob(M)) diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index abdecf91de60..e30519342ffb 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -16,7 +16,6 @@ var/dat = {" Make Traitors
    Make Changelings
    - Make Cult
    Make Wizard (Requires Ghosts)
    Make Nuke Team (Requires Ghosts)
    Make Response Team (Requires Ghosts)
    @@ -113,38 +112,6 @@ new_character.mind.make_Wizard() return TRUE - -/datum/admins/proc/makeCult() - var/datum/game_mode/cult/temp = new - if(CONFIG_GET(flag/protect_roles_from_antagonist)) - temp.restricted_jobs += temp.protected_jobs - - if(CONFIG_GET(flag/protect_assistant_from_antagonist)) - temp.restricted_jobs += "Assistant" - - var/list/mob/living/carbon/human/candidates = list() - var/mob/living/carbon/human/H = null - - for(var/mob/living/carbon/human/applicant in GLOB.player_list) - if(isReadytoRumble(applicant, ROLE_CULTIST)) - if(temp.age_check(applicant.client)) - if(!(applicant.job in temp.restricted_jobs)) - candidates += applicant - - if(candidates.len) - var/numCultists = min(candidates.len, 4) - - for(var/i = 0, iYou are feeling far too docile to do that.") return - if(iscultist(victim) || HAS_TRAIT(victim, TRAIT_MINDSHIELD)) - to_chat(src, "[victim]'s mind seems to be blocked by some unknown force!") - return - else log_game("[src]/([src.ckey]) assumed control of [victim]/([victim.ckey] with borer powers.") diff --git a/code/modules/antagonists/cult/blood_magic.dm b/code/modules/antagonists/cult/blood_magic.dm deleted file mode 100644 index b4bfb265386d..000000000000 --- a/code/modules/antagonists/cult/blood_magic.dm +++ /dev/null @@ -1,803 +0,0 @@ -/datum/action/innate/cult/blood_magic //Blood magic handles the creation of blood spells (formerly talismans) - name = "Prepare Blood Magic" - button_icon_state = "carve" - desc = "Prepare blood magic by carving runes into your flesh. This is easier with an empowering rune." - var/list/spells = list() - var/channeling = FALSE - -/datum/action/innate/cult/blood_magic/Grant() - ..() - button.screen_loc = DEFAULT_BLOODSPELLS - button.moved = DEFAULT_BLOODSPELLS - button.ordered = FALSE - -/datum/action/innate/cult/blood_magic/Remove() - for(var/X in spells) - qdel(X) - ..() - -/datum/action/innate/cult/blood_magic/IsAvailable() - if(!iscultist(owner)) - return FALSE - return ..() - -/datum/action/innate/cult/blood_magic/proc/Positioning() - var/list/screen_loc_split = splittext(button.screen_loc,",") - var/list/screen_loc_X = splittext(screen_loc_split[1],":") - var/list/screen_loc_Y = splittext(screen_loc_split[2],":") - var/pix_X = text2num(screen_loc_X[2]) - for(var/datum/action/innate/cult/blood_spell/B in spells) - if(B.button.locked) - var/order = pix_X+spells.Find(B)*31 - B.button.screen_loc = "[screen_loc_X[1]]:[order],[screen_loc_Y[1]]:[screen_loc_Y[2]]" - B.button.moved = B.button.screen_loc - -/datum/action/innate/cult/blood_magic/Activate() - var/rune = FALSE - var/limit = RUNELESS_MAX_BLOODCHARGE - for(var/obj/effect/rune/empower/R in range(1, owner)) - rune = TRUE - break - if(rune) - limit = MAX_BLOODCHARGE - if(spells.len >= limit) - if(rune) - to_chat(owner, "You cannot store more than [MAX_BLOODCHARGE] spells. Pick a spell to remove.") - else - to_chat(owner, "You cannot store more than [RUNELESS_MAX_BLOODCHARGE] spells without an empowering rune! Pick a spell to remove.") - var/nullify_spell = input(owner, "Choose a spell to remove.", "Current Spells") as null|anything in spells - if(nullify_spell) - qdel(nullify_spell) - return - var/entered_spell_name - var/datum/action/innate/cult/blood_spell/BS - var/list/possible_spells = list() - for(var/I in subtypesof(/datum/action/innate/cult/blood_spell)) - var/datum/action/innate/cult/blood_spell/J = I - var/cult_name = initial(J.name) - possible_spells[cult_name] = J - possible_spells += "(REMOVE SPELL)" - entered_spell_name = input(owner, "Pick a blood spell to prepare...", "Spell Choices") as null|anything in possible_spells - if(entered_spell_name == "(REMOVE SPELL)") - var/nullify_spell = input(owner, "Choose a spell to remove.", "Current Spells") as null|anything in spells - if(nullify_spell) - qdel(nullify_spell) - return - BS = possible_spells[entered_spell_name] - if(QDELETED(src) || owner.incapacitated() || !BS || (rune && !(locate(/obj/effect/rune/empower) in range(1, owner))) || (spells.len >= limit)) - return - to_chat(owner,"You begin to carve unnatural symbols into your flesh!") - SEND_SOUND(owner, sound('sound/weapons/slice.ogg',0,1,10)) - if(!channeling) - channeling = TRUE - else - to_chat(owner, "You are already invoking blood magic!") - return - if(do_after(owner, 100 - rune*60, target = owner)) - if(ishuman(owner)) - var/mob/living/carbon/human/H = owner - H.bleed(40 - rune*32) - var/datum/action/innate/cult/blood_spell/new_spell = new BS(owner) - new_spell.Grant(owner, src) - spells += new_spell - Positioning() - to_chat(owner, "Your wounds glow with power, you have prepared a [new_spell.name] invocation!") - channeling = FALSE - -/datum/action/innate/cult/blood_spell //The next generation of talismans, handles storage/creation of blood magic - name = "Blood Magic" - button_icon_state = "telerune" - desc = "Fear the Old Blood." - var/charges = 1 - var/magic_path = null - var/obj/item/melee/blood_magic/hand_magic - var/datum/action/innate/cult/blood_magic/all_magic - var/base_desc //To allow for updating tooltips - var/invocation - var/health_cost = 0 - -/datum/action/innate/cult/blood_spell/Grant(mob/living/owner, datum/action/innate/cult/blood_magic/BM) - if(health_cost) - desc += "
    Deals [health_cost] damage to your arm per use." - base_desc = desc - desc += "
    Has [charges] use\s remaining." - all_magic = BM - ..() - button.locked = TRUE - button.ordered = FALSE - -/datum/action/innate/cult/blood_spell/Remove() - if(all_magic) - all_magic.spells -= src - if(hand_magic) - qdel(hand_magic) - hand_magic = null - ..() - -/datum/action/innate/cult/blood_spell/IsAvailable() - if(!iscultist(owner) || owner.incapacitated() || !charges) - return FALSE - return ..() - -/datum/action/innate/cult/blood_spell/Activate() - if(magic_path) //If this spell flows from the hand - if(!hand_magic) - hand_magic = new magic_path(owner, src) - if(!owner.put_in_hands(hand_magic)) - qdel(hand_magic) - hand_magic = null - to_chat(owner, "You have no empty hand for invoking blood magic!") - return - to_chat(owner, "Your wounds glow as you invoke the [name].") - return - if(hand_magic) - qdel(hand_magic) - hand_magic = null - to_chat(owner, "You snuff out the spell, saving it for later.") - - -//Cult Blood Spells -/datum/action/innate/cult/blood_spell/stun - name = "Stun" - desc = "Empowers your hand to stun and mute a victim on contact." - button_icon_state = "hand" - magic_path = "/obj/item/melee/blood_magic/stun" - health_cost = 10 - -/datum/action/innate/cult/blood_spell/teleport - name = "Teleport" - desc = "Empowers your hand to teleport yourself or another cultist to a teleport rune on contact." - button_icon_state = "tele" - magic_path = "/obj/item/melee/blood_magic/teleport" - health_cost = 7 - -/datum/action/innate/cult/blood_spell/emp - name = "Electromagnetic Pulse" - desc = "Emits a large electromagnetic pulse." - button_icon_state = "emp" - health_cost = 10 - invocation = "Ta'gh fara'qha fel d'amar det!" - -/datum/action/innate/cult/blood_spell/emp/Activate() - owner.visible_message( - "[owner]'s hand flashes a bright blue!", \ - "You speak the cursed words, emitting an EMP blast from your hand.") - empulse(owner, 2, 5) - owner.whisper(invocation, language = /datum/language/common) - charges-- - if(charges<=0) - qdel(src) - -/datum/action/innate/cult/blood_spell/shackles - name = "Shadow Shackles" - desc = "Empowers your hand to start handcuffing victim on contact, and mute them if successful." - button_icon_state = "cuff" - charges = 4 - magic_path = "/obj/item/melee/blood_magic/shackles" - -/datum/action/innate/cult/blood_spell/construction - name = "Twisted Construction" - desc = "Empowers your hand to corrupt certain metalic objects.
    Converts:
    Plasteel into runed metal
    50 metal into a construct shell
    Living cyborgs into constructs after a delay
    Cyborg shells into construct shells
    Airlocks into brittle runed airlocks after a delay (harm intent)" - button_icon_state = "transmute" - magic_path = "/obj/item/melee/blood_magic/construction" - health_cost = 12 - -/datum/action/innate/cult/blood_spell/horror - name = "Hallucinations" - desc = "Gives hallucinations to a target at range. A silent and invisible spell." - button_icon_state = "horror" - var/obj/effect/proc_holder/horror/PH - charges = 4 - -/datum/action/innate/cult/blood_spell/horror/New() - PH = new() - PH.attached_action = src - ..() - -/datum/action/innate/cult/blood_spell/horror/Destroy() - var/obj/effect/proc_holder/horror/destroy = PH - . = ..() - if(destroy && !QDELETED(destroy)) - QDEL_NULL(destroy) - -/datum/action/innate/cult/blood_spell/horror/Activate() - PH.toggle(owner) //the important bit - return TRUE - -/obj/effect/proc_holder/horror - active = FALSE - ranged_mousepointer = 'icons/effects/mouse_pointers/cult_target.dmi' - var/datum/action/innate/cult/blood_spell/attached_action - -/obj/effect/proc_holder/horror/Destroy() - var/datum/action/innate/cult/blood_spell/AA = attached_action - . = ..() - if(AA && !QDELETED(AA)) - QDEL_NULL(AA) - -/obj/effect/proc_holder/horror/proc/toggle(mob/user) - if(active) - remove_ranged_ability("You dispel the magic...") - else - add_ranged_ability(user, "You prepare to horrify a target...") - -/obj/effect/proc_holder/horror/InterceptClickOn(mob/living/caller, params, atom/target) - if(..()) - return - if(ranged_ability_user.incapacitated() || !iscultist(caller)) - remove_ranged_ability() - return - var/turf/T = get_turf(ranged_ability_user) - if(!isturf(T)) - return FALSE - if(target in view(7, get_turf(ranged_ability_user))) - if(!ishuman(target) || iscultist(target)) - return - var/mob/living/carbon/human/H = target - H.hallucination = max(H.hallucination, 120) - SEND_SOUND(ranged_ability_user, sound('sound/effects/ghost.ogg',0,1,50)) - var/image/C = image('icons/effects/cult_effects.dmi',H,"bloodsparkles", ABOVE_MOB_LAYER) - add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/cult, "cult_apoc", C, NONE) - addtimer(CALLBACK(H, TYPE_PROC_REF(/atom, remove_alt_appearance),"cult_apoc",TRUE), 2400, TIMER_OVERRIDE|TIMER_UNIQUE) - to_chat(ranged_ability_user,"[H] has been cursed with living nightmares!") - attached_action.charges-- - attached_action.desc = attached_action.base_desc - attached_action.desc += "
    Has [attached_action.charges] use\s remaining." - attached_action.UpdateButtonIcon() - if(attached_action.charges <= 0) - remove_ranged_ability("You have exhausted the spell's power!") - qdel(src) - -/datum/action/innate/cult/blood_spell/veiling - name = "Conceal Presence" - desc = "Alternates between hiding and revealing nearby cult structures and runes." - invocation = "Kla'atu barada nikt'o!" - button_icon_state = "gone" - charges = 10 - var/revealing = FALSE //if it reveals or not - -/datum/action/innate/cult/blood_spell/veiling/Activate() - if(!revealing) - owner.visible_message("Thin grey dust falls from [owner]'s hand!", \ - "You invoke the veiling spell, hiding nearby runes.") - charges-- - SEND_SOUND(owner, sound('sound/magic/smoke.ogg',0,1,25)) - owner.whisper(invocation, language = /datum/language/common) - for(var/obj/effect/rune/R in range(5,owner)) - R.conceal() - for(var/obj/structure/destructible/cult/S in range(5,owner)) - S.conceal() - for(var/turf/open/floor/engine/cult/T in range(5,owner)) - T.realappearance.alpha = 0 - for(var/obj/machinery/door/airlock/cult/AL in range(5, owner)) - AL.conceal() - revealing = TRUE - name = "Reveal Runes" - button_icon_state = "back" - else - owner.visible_message( - "A flash of light shines from [owner]'s hand!", \ - "You invoke the counterspell, revealing nearby runes.") - charges-- - owner.whisper(invocation, language = /datum/language/common) - SEND_SOUND(owner, sound('sound/magic/enter_blood.ogg',0,1,25)) - for(var/obj/effect/rune/R in range(7,owner)) //More range in case you weren't standing in exactly the same spot - R.reveal() - for(var/obj/structure/destructible/cult/S in range(6,owner)) - S.reveal() - for(var/turf/open/floor/engine/cult/T in range(6,owner)) - T.realappearance.alpha = initial(T.realappearance.alpha) - for(var/obj/machinery/door/airlock/cult/AL in range(6, owner)) - AL.reveal() - revealing = FALSE - name = "Conceal Runes" - button_icon_state = "gone" - if(charges<= 0) - qdel(src) - desc = base_desc - desc += "
    Has [charges] use\s remaining." - UpdateButtonIcon() - -/datum/action/innate/cult/blood_spell/manipulation - name = "Blood Rites" - desc = "Empowers your hand to absorb blood to be used for advanced rites, or heal a cultist on contact. Use the spell in-hand to cast advanced rites." - invocation = "Fel'th Dol Ab'orod!" - button_icon_state = "manip" - charges = 5 - magic_path = "/obj/item/melee/blood_magic/manipulator" - - -// The "magic hand" items -/obj/item/melee/blood_magic - name = "\improper magical aura" - desc = "A sinister looking aura that distorts the flow of reality around it." - icon = 'icons/obj/items.dmi' - lefthand_file = 'icons/mob/inhands/misc/touchspell_lefthand.dmi' - righthand_file = 'icons/mob/inhands/misc/touchspell_righthand.dmi' - icon_state = "disintegrate" - item_state = "disintegrate" - item_flags = NEEDS_PERMIT | ABSTRACT | DROPDEL - - w_class = WEIGHT_CLASS_HUGE - throwforce = 0 - throw_range = 0 - throw_speed = 0 - var/invocation - var/uses = 1 - var/health_cost = 0 //The amount of health taken from the user when invoking the spell - var/datum/action/innate/cult/blood_spell/source - -/obj/item/melee/blood_magic/New(loc, spell) - if(spell) - source = spell - uses = source.charges - health_cost = source.health_cost - ..() - -/obj/item/melee/blood_magic/Destroy() - if(!QDELETED(source)) - if(uses <= 0) - source.hand_magic = null - qdel(source) - source = null - else - source.hand_magic = null - source.charges = uses - source.desc = source.base_desc - source.desc += "
    Has [uses] use\s remaining." - source.UpdateButtonIcon() - return ..() - -/obj/item/melee/blood_magic/attack_self(mob/living/user) - afterattack(user, user, TRUE) - -/obj/item/melee/blood_magic/attack(mob/living/M, mob/living/carbon/user) - if(!iscarbon(user) || !iscultist(user)) - uses = 0 - qdel(src) - return - log_combat(user, M, "used a cult spell on", source.name, "") - M.lastattacker = user.real_name - M.lastattackerckey = user.ckey - -/obj/item/melee/blood_magic/afterattack(atom/target, mob/living/carbon/user, proximity) - . = ..() - if(invocation) - user.whisper(invocation, language = /datum/language/common) - if(health_cost) - if(user.active_hand_index == 1) - user.apply_damage(health_cost, BRUTE, BODY_ZONE_L_ARM) - else - user.apply_damage(health_cost, BRUTE, BODY_ZONE_R_ARM) - if(uses <= 0) - qdel(src) - else if(source) - source.desc = source.base_desc - source.desc += "
    Has [uses] use\s remaining." - source.UpdateButtonIcon() - -//Stun -/obj/item/melee/blood_magic/stun - name = "Stunning Aura" - desc = "Will stun and mute a weak-minded victim on contact." - color = RUNE_COLOR_RED - invocation = "Fuu ma'jin!" - -/obj/item/melee/blood_magic/stun/afterattack(atom/target, mob/living/carbon/user, proximity) - if(!isliving(target) || !proximity) - return - var/mob/living/L = target - if(iscultist(target)) - return - if(iscultist(user)) - user.visible_message("[user] holds up [user.p_their()] hand, which explodes in a flash of red light!", \ - "You attempt to stun [L] with the spell!") - - user.mob_light(_range = 3, _color = LIGHT_COLOR_BLOOD_MAGIC, _duration = 0.2 SECONDS) - - var/anti_magic_source = L.anti_magic_check() - if(anti_magic_source) - - L.mob_light(_range = 2, _color = LIGHT_COLOR_HOLY_MAGIC, _duration = 10 SECONDS) - var/mutable_appearance/forbearance = mutable_appearance('icons/effects/genetics.dmi', "servitude", -MUTATIONS_LAYER) - L.add_overlay(forbearance) - addtimer(CALLBACK(L, TYPE_PROC_REF(/atom, cut_overlay), forbearance), 100) - - if(istype(anti_magic_source, /obj/item)) - var/obj/item/ams_object = anti_magic_source - target.visible_message( - "[L] starts to glow in a halo of light!", \ - "Your [ams_object.name] begins to glow, emitting a blanket of holy light which surrounds you and protects you from the flash of light!") - else - target.visible_message( - "[L] starts to glow in a halo of light!", \ - "A feeling of warmth washes over you, rays of holy light surround your body and protect you from the flash of light!") - - else - if(HAS_TRAIT(target, TRAIT_MINDSHIELD)) - var/mob/living/carbon/C = L - to_chat(user, "Their mind was stronger than expected, but you still managed to do some damage!") - C.stuttering += 8 - C.dizziness += 30 - C.Jitter(8) - C.drop_all_held_items() - C.bleed(40) - C.apply_damage(60, STAMINA, BODY_ZONE_CHEST) - else - to_chat(user, "In a brilliant flash of red, [L] falls to the ground!") - L.Paralyze(160) - L.flash_act(1,1) - if(issilicon(target)) - var/mob/living/silicon/S = L - S.emp_act(EMP_HEAVY) - else if(iscarbon(target)) - var/mob/living/carbon/C = L - C.silent += 6 - C.stuttering += 15 - C.cultslurring += 15 - C.Jitter(15) - uses-- - ..() - -//Teleportation -/obj/item/melee/blood_magic/teleport - name = "Teleporting Aura" - color = RUNE_COLOR_TELEPORT - desc = "Will teleport a cultist to a teleport rune on contact." - invocation = "Sas'so c'arta forbici!" - -/obj/item/melee/blood_magic/teleport/afterattack(atom/target, mob/living/carbon/user, proximity) - if(!iscultist(target) || !proximity) - to_chat(user, "You can only teleport adjacent cultists with this spell!") - return - if(iscultist(user)) - var/list/potential_runes = list() - var/list/teleportnames = list() - for(var/R in GLOB.teleport_runes) - var/obj/effect/rune/teleport/T = R - potential_runes[avoid_assoc_duplicate_keys(T.listkey, teleportnames)] = T - - if(!potential_runes.len) - to_chat(user, "There are no valid runes to teleport to!") - log_game("Teleport talisman failed - no other teleport runes") - return - - var/turf/T = get_turf(src) - if(is_away_level(T)) - to_chat(user, "You are not in the right dimension!") - log_game("Teleport spell failed - user in away mission") - return - - var/input_rune_key = input(user, "Choose a rune to teleport to.", "Rune to Teleport to") as null|anything in potential_runes //we know what key they picked - var/obj/effect/rune/teleport/actual_selected_rune = potential_runes[input_rune_key] //what rune does that key correspond to? - if(QDELETED(src) || !user || !user.is_holding(src) || user.incapacitated() || !actual_selected_rune || !proximity) - return - var/turf/dest = get_turf(actual_selected_rune) - if(dest.is_blocked_turf(TRUE)) - to_chat(user, "The target rune is blocked. You cannot teleport there.") - return - uses-- - var/turf/origin = get_turf(user) - var/mob/living/L = target - if(do_teleport(L, dest, channel = TELEPORT_CHANNEL_CULT)) - origin.visible_message("Dust flows from [user]'s hand, and [user.p_they()] disappear[user.p_s()] with a sharp crack!", \ - "You speak the words of the talisman and find yourself somewhere else!", "You hear a sharp crack.") - dest.visible_message("There is a boom of outrushing air as something appears above the rune!", null, "You hear a boom.") - ..() - -//Shackles -/obj/item/melee/blood_magic/shackles - name = "Shackling Aura" - desc = "Will start handcuffing a victim on contact, and mute them if successful." - invocation = "In'totum Lig'abis!" - color = "#000000" // black - -/obj/item/melee/blood_magic/shackles/afterattack(atom/target, mob/living/carbon/user, proximity) - if(iscultist(user) && iscarbon(target) && proximity) - var/mob/living/carbon/C = target - if(C.canBeHandcuffed()) - CuffAttack(C, user) - else - user.visible_message("This victim doesn't have enough arms to complete the restraint!") - return - ..() - -/obj/item/melee/blood_magic/shackles/proc/CuffAttack(mob/living/carbon/C, mob/living/user) - if(!C.handcuffed) - playsound(loc, 'sound/weapons/cablecuff.ogg', 30, TRUE, -2) - C.visible_message("[user] begins restraining [C] with dark magic!", \ - "[user] begins shaping dark magic shackles around your wrists!") - if(do_after(user, 3 SECONDS, C)) - if(!C.handcuffed) - C.set_handcuffed(new /obj/item/restraints/handcuffs/energy/cult/used(C)) - C.update_handcuffed() - C.silent += 5 - to_chat(user, "You shackle [C].") - log_combat(user, C, "shackled") - uses-- - else - to_chat(user, "[C] is already bound.") - else - to_chat(user, "You fail to shackle [C].") - else - to_chat(user, "[C] is already bound.") - - -/obj/item/restraints/handcuffs/energy/cult //For the shackling spell - name = "shadow shackles" - desc = "Shackles that bind the wrists with sinister magic." - trashtype = /obj/item/restraints/handcuffs/energy/used - item_flags = DROPDEL - -/obj/item/restraints/handcuffs/energy/cult/used/dropped(mob/user) - user.visible_message("[user]'s shackles shatter in a discharge of dark magic!", \ - "Your [src] shatters in a discharge of dark magic!") - . = ..() - - -//Construction: Converts 50 metal to a construct shell, plasteel to runed metal, airlock to brittle runed airlock, a borg to a construct, or borg shell to a construct shell -/obj/item/melee/blood_magic/construction - name = "Twisting Aura" - desc = "Corrupts certain metalic objects on contact." - invocation = "Ethra p'ni dedol!" - color = "#000000" // black - var/channeling = FALSE - -/obj/item/melee/blood_magic/construction/examine(mob/user) - . = ..() - . += {"A sinister spell used to convert:\n - Plasteel into runed metal\n - [METAL_TO_CONSTRUCT_SHELL_CONVERSION] metal into a construct shell\n - Living cyborgs into constructs after a delay\n - Cyborg shells into construct shells\n - Airlocks into brittle runed airlocks after a delay (harm intent)"} - -/obj/item/melee/blood_magic/construction/afterattack(atom/target, mob/user, proximity_flag, click_parameters) - if(proximity_flag && iscultist(user)) - if(channeling) - to_chat(user, "You are already invoking twisted construction!") - return - var/turf/T = get_turf(target) - if(istype(target, /obj/item/stack/sheet/metal)) - var/obj/item/stack/sheet/candidate = target - if(candidate.use(METAL_TO_CONSTRUCT_SHELL_CONVERSION)) - uses-- - to_chat(user, "A dark cloud emanates from your hand and swirls around the metal, twisting it into a construct shell!") - new /obj/structure/constructshell(T) - SEND_SOUND(user, sound('sound/effects/magic.ogg',0,1,25)) - else - to_chat(user, "You need [METAL_TO_CONSTRUCT_SHELL_CONVERSION] metal to produce a construct shell!") - return - else if(istype(target, /obj/item/stack/sheet/plasteel)) - var/obj/item/stack/sheet/plasteel/candidate = target - var/quantity = candidate.amount - if(candidate.use(quantity)) - uses -- - new /obj/item/stack/sheet/mineral/hidden/hellstone(T,quantity) - to_chat(user, "A dark cloud emanates from you hand and swirls around the plasteel, transforming it into runed metal!") - SEND_SOUND(user, sound('sound/effects/magic.ogg',0,1,25)) - else if(istype(target,/mob/living/silicon/robot)) - var/mob/living/silicon/robot/candidate = target - if(candidate.mmi) - channeling = TRUE - user.visible_message("A dark cloud emanates from [user]'s hand and swirls around [candidate]!") - playsound(T, 'sound/machines/creaking.ogg', 80, TRUE) - var/prev_color = candidate.color - candidate.color = "black" - if(do_after(user, 90, target = candidate)) - candidate.emp_act(EMP_HEAVY) - var/list/constructs = list( - "Juggernaut" = image(icon = 'icons/mob/cult.dmi', icon_state = "juggernaut"), - "Wraith" = image(icon = 'icons/mob/cult.dmi', icon_state = "wraith"), - "Artificer" = image(icon = 'icons/mob/cult.dmi', icon_state = "artificer") - ) - var/construct_class = show_radial_menu(user, src, constructs, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) - if(!check_menu(user)) - return - if(QDELETED(candidate)) - channeling = FALSE - return - user.visible_message("The dark cloud recedes from what was formerly [candidate], revealing a\n [construct_class]!") - switch(construct_class) - if("Juggernaut") - makeNewConstruct(/mob/living/simple_animal/hostile/construct/juggernaut, candidate, user, 0, T) - if("Wraith") - makeNewConstruct(/mob/living/simple_animal/hostile/construct/wraith, candidate, user, 0, T) - if("Artificer") - makeNewConstruct(/mob/living/simple_animal/hostile/construct/artificer, candidate, user, 0, T) - else - return - uses-- - candidate.mmi = null - qdel(candidate) - channeling = FALSE - else - channeling = FALSE - candidate.color = prev_color - return - else - uses-- - to_chat(user, "A dark cloud emanates from you hand and swirls around [candidate] - twisting it into a construct shell!") - new /obj/structure/constructshell(T) - SEND_SOUND(user, sound('sound/effects/magic.ogg',0,1,25)) - qdel(candidate) - else if(istype(target,/obj/machinery/door/airlock)) - channeling = TRUE - playsound(T, 'sound/machines/airlockforced.ogg', 50, TRUE) - do_sparks(5, TRUE, target) - if(do_after(user, 50, target = user)) - if(QDELETED(target)) - channeling = FALSE - return - target.narsie_act() - uses-- - user.visible_message("Black ribbons suddenly emanate from [user]'s hand and cling to the airlock - twisting and corrupting it!") - SEND_SOUND(user, sound('sound/effects/magic.ogg',0,1,25)) - channeling = FALSE - else - channeling = FALSE - return - else - to_chat(user, "The spell will not work on [target]!") - return - ..() - -/obj/item/melee/blood_magic/construction/proc/check_menu(mob/user) - if(!istype(user)) - return FALSE - if(user.incapacitated() || !user.Adjacent(src)) - return FALSE - return TRUE - - -//Armor: Gives the target a basic cultist combat loadout -/obj/item/melee/blood_magic/armor - name = "Arming Aura" - desc = "Will equipt cult combat gear onto a cultist on contact." - color = "#33cc33" // green - -/obj/item/melee/blood_magic/armor/afterattack(atom/target, mob/living/carbon/user, proximity) - if(iscarbon(target) && proximity) - uses-- - var/mob/living/carbon/C = target - C.visible_message("Otherworldly armor suddenly appears on [C]!") - C.equip_to_slot_or_del(new /obj/item/clothing/under/color/black,ITEM_SLOT_ICLOTHING) - C.equip_to_slot_or_del(new /obj/item/clothing/suit/hooded/cultrobes/alt(user), ITEM_SLOT_OCLOTHING) - C.equip_to_slot_or_del(new /obj/item/clothing/shoes/cult/alt(user), ITEM_SLOT_FEET) - C.equip_to_slot_or_del(new /obj/item/storage/backpack/cultpack(user), ITEM_SLOT_BACK) - if(C == user) - qdel(src) //Clears the hands - C.put_in_hands(new /obj/item/restraints/legcuffs/bola/cult(user)) - ..() - -/obj/item/melee/blood_magic/manipulator - name = "Blood Rite Aura" - desc = "Absorbs blood from anything you touch. Touching cultists and constructs can heal them. Use in-hand to cast an advanced rite." - color = "#7D1717" - -/obj/item/melee/blood_magic/manipulator/examine(mob/user) - . = ..() - . += "Blood spear, blood bolt barrage, and blood beam cost [BLOOD_SPEAR_COST], [BLOOD_BARRAGE_COST], and [BLOOD_BEAM_COST] charges respectively." - -/obj/item/melee/blood_magic/manipulator/afterattack(atom/target, mob/living/carbon/human/user, proximity) - if(proximity) - if(ishuman(target)) - var/mob/living/carbon/human/H = target - if(NOBLOOD in H.dna.species.species_traits) - to_chat(user,"Blood rites do not work on species with no blood!") - return - if(iscultist(H)) - if(H.stat == DEAD) - to_chat(user,"Only a revive rune can bring back the dead!") - return - if(H.blood_volume < BLOOD_VOLUME_SAFE) - var/restore_blood = BLOOD_VOLUME_SAFE - H.blood_volume - if(uses*2 < restore_blood) - H.blood_volume += uses*2 - to_chat(user,"You use the last of your blood rites to restore what blood you could!") - uses = 0 - return ..() - else - H.blood_volume = BLOOD_VOLUME_SAFE - uses -= round(restore_blood/2) - to_chat(user,"Your blood rites have restored [H == user ? "your" : "[H.p_their()]"] blood to safe levels!") - var/overall_damage = H.getBruteLoss() + H.getFireLoss() + H.getToxLoss() + H.getOxyLoss() - if(overall_damage == 0) - to_chat(user,"That cultist doesn't require healing!") - else - var/ratio = uses/overall_damage - if(H == user) - to_chat(user,"Your blood healing is far less efficient when used on yourself!") - ratio *= 0.35 // Healing is half as effective if you can't perform a full heal - uses -= round(overall_damage) // Healing is 65% more "expensive" even if you can still perform the full heal - if(ratio>1) - ratio = 1 - uses -= round(overall_damage) - H.visible_message("[H] is fully healed by [H==user ? "[H.p_their()]":"[H]'s"]'s blood magic!") - else - H.visible_message("[H] is partially healed by [H==user ? "[H.p_their()]":"[H]'s"] blood magic.") - uses = 0 - ratio *= -1 - H.adjustOxyLoss((overall_damage*ratio) * (H.getOxyLoss() / overall_damage), 0) - H.adjustToxLoss((overall_damage*ratio) * (H.getToxLoss() / overall_damage), 0) - H.adjustFireLoss((overall_damage*ratio) * (H.getFireLoss() / overall_damage), 0) - H.adjustBruteLoss((overall_damage*ratio) * (H.getBruteLoss() / overall_damage), 0) - H.updatehealth() - playsound(get_turf(H), 'sound/magic/staff_healing.ogg', 25) - new /obj/effect/temp_visual/cult/sparks(get_turf(H)) - user.Beam(H,icon_state="sendbeam",time=15) - else - if(H.stat == DEAD) - to_chat(user,"[H.p_their(TRUE)] blood has stopped flowing, you'll have to find another way to extract it.") - return - if(H.cultslurring) - to_chat(user,"[H.p_their(TRUE)] blood has been tainted by an even stronger form of blood magic, it's no use to us like this!") - return - if(H.blood_volume > BLOOD_VOLUME_SAFE) - H.blood_volume -= 100 - uses += 50 - user.Beam(H,icon_state="drainbeam",time=10) - playsound(get_turf(H), 'sound/magic/enter_blood.ogg', 50) - H.visible_message("[user] drains some of [H]'s blood!") - to_chat(user,"Your blood rite gains 50 charges from draining [H]'s blood.") - new /obj/effect/temp_visual/cult/sparks(get_turf(H)) - else - to_chat(user,"[H.p_theyre(TRUE)] missing too much blood - you cannot drain [H.p_them()] further!") - return - if(isconstruct(target)) - var/mob/living/simple_animal/M = target - var/missing = M.maxHealth - M.health - if(missing) - if(uses > missing) - M.adjustHealth(-missing) - M.visible_message("[M] is fully healed by [user]'s blood magic!") - uses -= missing - else - M.adjustHealth(-uses) - M.visible_message("[M] is partially healed by [user]'s blood magic!") - uses = 0 - playsound(get_turf(M), 'sound/magic/staff_healing.ogg', 25) - user.Beam(M,icon_state="sendbeam",time=10) - if(istype(target, /obj/effect/decal/cleanable/blood)) - blood_draw(target, user) - ..() - -/obj/item/melee/blood_magic/manipulator/proc/blood_draw(atom/target, mob/living/carbon/human/user) - var/temp = 0 - var/turf/T = get_turf(target) - if(T) - for(var/obj/effect/decal/cleanable/blood/B in view(T, 2)) - if(B.blood_state == BLOOD_STATE_HUMAN) - if(B.bloodiness == 100) //Bonus for "pristine" bloodpools, also to prevent cheese with footprint spam - temp += 30 - else - temp += max((B.bloodiness**2)/800,1) - new /obj/effect/temp_visual/cult/turf/floor(get_turf(B)) - qdel(B) - if(temp) - user.Beam(T,icon_state="drainbeam",time=15) - new /obj/effect/temp_visual/cult/sparks(get_turf(user)) - playsound(T, 'sound/magic/enter_blood.ogg', 50) - to_chat(user, "Your blood rite has gained [round(temp)] charge\s from blood sources around you!") - uses += max(1, round(temp)) - -/obj/item/melee/blood_magic/manipulator/attack_self(mob/living/user) - if(iscultist(user)) - var/list/options = list("Blood Beam (500)") - var/choice = input(user, "Choose a greater blood rite...", "Greater Blood Rites") as null|anything in options - if(!choice) - to_chat(user, "You decide against conducting a greater blood rite.") - return - switch(choice) - if("Blood Beam (500)") - if(uses < BLOOD_BEAM_COST) - to_chat(user, "You need [BLOOD_BEAM_COST] charges to perform this rite.") - else - var/obj/rite = new /obj/item/blood_beam() - uses -= BLOOD_BEAM_COST - qdel(src) - if(user.put_in_hands(rite)) - to_chat(user, "Your hands glow with POWER OVERWHELMING!!!") - else - to_chat(user, "You need a free hand for this rite!") - qdel(rite) diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm deleted file mode 100644 index d6330b386f29..000000000000 --- a/code/modules/antagonists/cult/cult.dm +++ /dev/null @@ -1,397 +0,0 @@ -#define SUMMON_POSSIBILITIES 3 -#define CULT_VICTORY 1 -#define CULT_LOSS 0 -#define CULT_NARSIE_KILLED -1 - -/datum/antagonist/cult - name = "Cultist" - roundend_category = "cultists" - antagpanel_category = "Cult" - antag_moodlet = /datum/mood_event/cult - var/datum/action/innate/cult/comm/communion = new - var/datum/action/innate/cult/mastervote/vote = new - var/datum/action/innate/cult/blood_magic/magic = new - job_rank = ROLE_CULTIST - antag_hud_type = ANTAG_HUD_CULT - antag_hud_name = "cult" - var/ignore_implant = FALSE - var/give_equipment = FALSE - var/datum/team/cult/cult_team - - -/datum/antagonist/cult/get_team() - return cult_team - -/datum/antagonist/cult/create_team(datum/team/cult/new_team) - if(!new_team) - //todo remove this and allow admin buttons to create more than one cult - for(var/datum/antagonist/cult/H in GLOB.antagonists) - if(!H.owner) - continue - if(H.cult_team) - cult_team = H.cult_team - return - cult_team = new /datum/team/cult - cult_team.setup_objectives() - return - if(!istype(new_team)) - stack_trace("Wrong team type passed to [type] initialization.") - cult_team = new_team - -/datum/antagonist/cult/proc/add_objectives() - objectives |= cult_team.objectives - -/datum/antagonist/cult/Destroy() - QDEL_NULL(communion) - QDEL_NULL(vote) - return ..() - -/datum/antagonist/cult/can_be_owned(datum/mind/new_owner) - . = ..() - if(. && !ignore_implant) - . = is_convertable_to_cult(new_owner.current,cult_team) - -/datum/antagonist/cult/greet() - to_chat(owner, "You are a member of the cult!") - owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/bloodcult.ogg', 100, FALSE, pressure_affected = FALSE, use_reverb = FALSE)//subject to change - owner.announce_objectives() - -/datum/antagonist/cult/on_gain() - . = ..() - var/mob/living/current = owner.current - add_objectives() - if(give_equipment) - equip_cultist() - SSticker.mode.cult += owner // Only add after they've been given objectives - current.log_message("has been converted to the cult of Nar'Sie!", LOG_ATTACK, color="#960000") - - if(cult_team.blood_target && cult_team.blood_target_image && current.client) - current.client.images += cult_team.blood_target_image - - -/datum/antagonist/cult/proc/equip_cultist() - var/mob/living/carbon/H = owner.current - if(!istype(H)) - return - to_chat(owner, "These will help you jumpstart a cult of your own in this sector. Use them well, and remember - you are not the only one.") - - -/datum/antagonist/cult/proc/cult_give_item(obj/item/item_path, mob/living/carbon/human/mob) - var/list/slots = list( - "backpack" = ITEM_SLOT_BACKPACK, - "left pocket" = ITEM_SLOT_LPOCKET, - "right pocket" = ITEM_SLOT_RPOCKET - ) - - var/T = new item_path(mob) - var/item_name = initial(item_path.name) - var/where = mob.equip_in_one_of_slots(T, slots) - if(!where) - to_chat(mob, "Unfortunately, you weren't able to get a [item_name]. This is very bad and you should adminhelp immediately (press F1).") - return 0 - else - to_chat(mob, "You have a [item_name] in your [where].") - if(where == "backpack") - SEND_SIGNAL(mob.back, COMSIG_TRY_STORAGE_SHOW, mob) - return TRUE - -/datum/antagonist/cult/apply_innate_effects(mob/living/mob_override) - . = ..() - var/mob/living/current = owner.current - if(mob_override) - current = mob_override - add_antag_hud(antag_hud_type, antag_hud_name, current) - handle_clown_mutation(current, mob_override ? null : "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself.") - current.faction |= "cult" - current.grant_language(/datum/language/narsie, TRUE, TRUE, LANGUAGE_CULTIST) - if(!cult_team.cult_master) - vote.Grant(current) - communion.Grant(current) - if(ishuman(current)) - magic.Grant(current) - current.throw_alert("bloodsense", /atom/movable/screen/alert/bloodsense) - if(cult_team.cult_risen) - cult_team.rise(current) - if(cult_team.cult_ascendent) - cult_team.ascend(current) - -/datum/antagonist/cult/remove_innate_effects(mob/living/mob_override) - . = ..() - var/mob/living/current = owner.current - if(mob_override) - current = mob_override - remove_antag_hud(antag_hud_type, current) - handle_clown_mutation(current, removing = FALSE) - current.faction -= "cult" - current.remove_language(/datum/language/narsie, TRUE, TRUE, LANGUAGE_CULTIST) - vote.Remove(current) - communion.Remove(current) - magic.Remove(current) - current.clear_alert("bloodsense") - if(ishuman(current)) - var/mob/living/carbon/human/H = current - H.eye_color = initial(H.eye_color) - H.dna.update_ui_block(DNA_EYE_COLOR_BLOCK) - REMOVE_TRAIT(H, CULT_EYES, null) - H.remove_overlay(HALO_LAYER) - H.update_body() - -/datum/antagonist/cult/on_removal() - SSticker.mode.cult -= owner - if(!silent) - owner.current.visible_message("[owner.current] looks like [owner.current.p_theyve()] just reverted to [owner.current.p_their()] old faith!", null, null, null, owner.current) - to_chat(owner.current, "An unfamiliar white light flashes through your mind, cleansing the taint of the Geometer and all your memories as her servant.") - owner.current.log_message("has renounced the cult of Nar'Sie!", LOG_ATTACK, color="#960000") - if(cult_team.blood_target && cult_team.blood_target_image && owner.current.client) - owner.current.client.images -= cult_team.blood_target_image - . = ..() - -/datum/antagonist/cult/admin_add(datum/mind/new_owner,mob/admin) - give_equipment = FALSE - new_owner.add_antag_datum(src) - message_admins("[key_name_admin(admin)] has cult'ed [key_name_admin(new_owner)].") - log_admin("[key_name(admin)] has cult'ed [key_name(new_owner)].") - -/datum/antagonist/cult/admin_remove(mob/user) - message_admins("[key_name_admin(user)] has decult'ed [key_name_admin(owner)].") - log_admin("[key_name(user)] has decult'ed [key_name(owner)].") - SSticker.mode.remove_cultist(owner,silent=TRUE) //disgusting - -/datum/antagonist/cult/get_admin_commands() - . = ..() - .["Dagger"] = CALLBACK(src, PROC_REF(admin_give_dagger)) - .["Metal"] = CALLBACK(src, PROC_REF(admin_take_all)) - -/datum/antagonist/cult/proc/admin_give_dagger(mob/admin) - if(!equip_cultist()) - to_chat(admin, "Spawning dagger failed!") - -/datum/antagonist/cult/proc/admin_take_all(mob/admin) - return - -/datum/antagonist/cult/master - ignore_implant = TRUE - show_in_antagpanel = FALSE //Feel free to add this later - var/datum/action/innate/cult/master/finalreck/reckoning = new - var/datum/action/innate/cult/master/cultmark/bloodmark = new - var/datum/action/innate/cult/master/pulse/throwing = new - -/datum/antagonist/cult/master/Destroy() - QDEL_NULL(reckoning) - QDEL_NULL(bloodmark) - QDEL_NULL(throwing) - return ..() - -/datum/antagonist/cult/master/on_gain() - . = ..() - var/mob/living/current = owner.current - set_antag_hud(current, "cultmaster") - -/datum/antagonist/cult/master/greet() - to_chat(owner.current, "You are the cult's Master. As the cult's Master, you have a unique title and loud voice when communicating, are capable of marking \ - targets, such as a location or a noncultist, to direct the cult to them, and, finally, you are capable of summoning the entire living cult to your location once.") - to_chat(owner.current, "Use these abilities to direct the cult to victory at any cost.") - -/datum/antagonist/cult/master/apply_innate_effects(mob/living/mob_override) - . = ..() - var/mob/living/current = owner.current - if(mob_override) - current = mob_override - if(!cult_team.reckoning_complete) - reckoning.Grant(current) - bloodmark.Grant(current) - throwing.Grant(current) - current.update_action_buttons_icon() - current.apply_status_effect(/datum/status_effect/cult_master) - if(cult_team.cult_risen) - cult_team.rise(current) - if(cult_team.cult_ascendent) - cult_team.ascend(current) - -/datum/antagonist/cult/master/remove_innate_effects(mob/living/mob_override) - . = ..() - var/mob/living/current = owner.current - if(mob_override) - current = mob_override - reckoning.Remove(current) - bloodmark.Remove(current) - throwing.Remove(current) - current.update_action_buttons_icon() - current.remove_status_effect(/datum/status_effect/cult_master) - - if(ishuman(current)) - var/mob/living/carbon/human/H = current - H.eye_color = initial(H.eye_color) - H.dna.update_ui_block(DNA_EYE_COLOR_BLOCK) - REMOVE_TRAIT(H, CULT_EYES, null) - H.remove_overlay(HALO_LAYER) - H.update_body() - -/datum/team/cult - name = "Cult" - - var/blood_target - var/image/blood_target_image - var/blood_target_reset_timer - - var/cult_vote_called = FALSE - var/mob/living/cult_master - var/reckoning_complete = FALSE - var/cult_risen = FALSE - var/cult_ascendent = FALSE - -/datum/team/cult/proc/check_size() - if(cult_ascendent) - return - var/alive = 0 - var/cultplayers = 0 - for(var/I in GLOB.player_list) - var/mob/M = I - if(M.stat != DEAD) - if(iscultist(M)) - ++cultplayers - else - ++alive - var/ratio = cultplayers/alive - if(ratio > CULT_RISEN && !cult_risen) - for(var/datum/mind/B in members) - if(B.current) - SEND_SOUND(B.current, 'sound/hallucinations/i_see_you2.ogg') - to_chat(B.current, "The veil weakens as your cult grows, your eyes begin to glow...") - addtimer(CALLBACK(src, PROC_REF(rise), B.current), 200) - cult_risen = TRUE - - if(ratio > CULT_ASCENDENT && !cult_ascendent) - for(var/datum/mind/B in members) - if(B.current) - SEND_SOUND(B.current, 'sound/hallucinations/im_here1.ogg') - to_chat(B.current, "Your cult is ascendent and the red harvest approaches - you cannot hide your true nature for much longer!!") - addtimer(CALLBACK(src, PROC_REF(ascend), B.current), 200) - cult_ascendent = TRUE - - -/datum/team/cult/proc/rise(cultist) - if(ishuman(cultist)) - var/mob/living/carbon/human/H = cultist - H.eye_color = "f00" - H.dna.update_ui_block(DNA_EYE_COLOR_BLOCK) - ADD_TRAIT(H, CULT_EYES, CULT_TRAIT) - H.update_body() - -/datum/team/cult/proc/ascend(cultist) - if(ishuman(cultist)) - var/mob/living/carbon/human/H = cultist - new /obj/effect/temp_visual/cult/sparks(get_turf(H), H.dir) - var/istate = pick("halo1","halo2","halo3","halo4","halo5","halo6") - var/mutable_appearance/new_halo_overlay = mutable_appearance('icons/effects/32x64.dmi', istate, -HALO_LAYER) - H.overlays_standing[HALO_LAYER] = new_halo_overlay - H.apply_overlay(HALO_LAYER) - -/datum/objective/sacrifice/find_target(dupe_search_range) - if(!istype(team, /datum/team/cult)) - return - var/datum/team/cult/C = team - var/list/target_candidates = list() - for(var/mob/living/carbon/human/player in GLOB.player_list) - if(player.mind && !player.mind.has_antag_datum(/datum/antagonist/cult) && !is_convertable_to_cult(player) && player.stat != DEAD) - target_candidates += player.mind - if(target_candidates.len == 0) - message_admins("Cult Sacrifice: Could not find unconvertible target, checking for convertible target.") - for(var/mob/living/carbon/human/player in GLOB.player_list) - if(player.mind && !player.mind.has_antag_datum(/datum/antagonist/cult) && player.stat != DEAD) - target_candidates += player.mind - listclearnulls(target_candidates) - if(LAZYLEN(target_candidates)) - target = pick(target_candidates) - update_explanation_text() - else - message_admins("Cult Sacrifice: Could not find unconvertible or convertible target. WELP!") - for(var/datum/mind/M in C.members) - if(M.current) - M.current.clear_alert("bloodsense") - M.current.throw_alert("bloodsense", /atom/movable/screen/alert/bloodsense) - -/datum/team/cult/proc/setup_objectives() - var/datum/objective/sacrifice/sac_objective = new - sac_objective.team = src - sac_objective.find_target() - objectives += sac_objective - - var/datum/objective/eldergod/summon_objective = new - summon_objective.team = src - objectives += summon_objective - - -/datum/objective/sacrifice - var/sacced = FALSE - var/sac_image - -/datum/objective/sacrifice/check_completion() - return sacced || completed - -/datum/objective/sacrifice/update_explanation_text() - if(target) - explanation_text = "Sacrifice [target], the [target.assigned_role] via invoking an Offer rune with [target.p_them()] on it and three acolytes around it." - else - explanation_text = "The veil has already been weakened here, proceed to the final objective." - -/datum/objective/eldergod - var/summoned = FALSE - var/killed = FALSE - var/list/summon_spots = list() - -/datum/objective/eldergod/New() - ..() - var/sanity = 0 - while(summon_spots.len < SUMMON_POSSIBILITIES && sanity < 100) - var/area/summon_area = pick(GLOB.sortedAreas - summon_spots) - if(summon_area && (summon_area.area_flags & VALID_TERRITORY)) - summon_spots += summon_area - sanity++ - update_explanation_text() - -/datum/objective/eldergod/update_explanation_text() - explanation_text = "Summon Nar'Sie by invoking the rune 'Summon Nar'Sie'. The summoning can only be accomplished in [english_list(summon_spots)] - where the veil is weak enough for the ritual to begin." - -/datum/objective/eldergod/check_completion() - if(killed) - return CULT_NARSIE_KILLED // You failed so hard that even the code went backwards. - return summoned || completed - -/datum/team/cult/proc/check_cult_victory() - for(var/datum/objective/O in objectives) - if(O.check_completion() == CULT_NARSIE_KILLED) - return CULT_NARSIE_KILLED - else if(!O.check_completion()) - return CULT_LOSS - return CULT_VICTORY - -/datum/team/cult/roundend_report() - var/list/parts = list() - var/victory = check_cult_victory() - - if(victory == CULT_NARSIE_KILLED) // Epic failure, you summoned your god and then someone killed it. - parts += "Nar'sie has been killed! The cult will haunt the universe no longer!" - else if(victory) - parts += "The cult has succeeded! Nar'Sie has snuffed out another torch in the void!" - else - parts += "The staff managed to stop the cult! Dark words and heresy are no match for Nanotrasen's finest!" - - if(objectives.len) - parts += "The cultists' objectives were:" - var/count = 1 - for(var/datum/objective/objective in objectives) - if(objective.check_completion()) - parts += "Objective #[count]: [objective.explanation_text] Success!" - else - parts += "Objective #[count]: [objective.explanation_text] Fail." - count++ - - if(members.len) - parts += "The cultists were:" - parts += printplayerlist(members) - - return "
    [parts.Join("
    ")]
    " - -/datum/team/cult/is_gamemode_hero() - return SSticker.mode.name == "cult" diff --git a/code/modules/antagonists/cult/cult_comms.dm b/code/modules/antagonists/cult/cult_comms.dm deleted file mode 100644 index 0c070e8e423f..000000000000 --- a/code/modules/antagonists/cult/cult_comms.dm +++ /dev/null @@ -1,461 +0,0 @@ -// Contains cult communion, guide, and cult master abilities - -/datum/action/innate/cult - icon_icon = 'icons/mob/actions/actions_cult.dmi' - background_icon_state = "bg_demon" - buttontooltipstyle = "cult" - check_flags = AB_CHECK_HANDS_BLOCKED|AB_CHECK_IMMOBILE|AB_CHECK_CONSCIOUS - -/datum/action/innate/cult/IsAvailable() - if(!iscultist(owner)) - return FALSE - return ..() - -/datum/action/innate/cult/comm - name = "Communion" - desc = "Whispered words that all cultists can hear.
    Warning:Nearby non-cultists can still hear you." - button_icon_state = "cult_comms" - -/datum/action/innate/cult/comm/Activate() - var/input = stripped_input(usr, "Please choose a message to tell to the other acolytes.", "Voice of Blood", "") - if(!input || !IsAvailable()) - return - if(CHAT_FILTER_CHECK(input)) - to_chat(usr, "You cannot send a message that contains a word prohibited in IC chat!") - return - cultist_commune(usr, input) - -/datum/action/innate/cult/comm/proc/cultist_commune(mob/living/user, message) - var/my_message - if(!message) - return - user.whisper("O bidai nabora se[pick("'","`")]sma!", language = /datum/language/common) - user.whisper(html_decode(message)) - var/title = "Acolyte" - var/span = "cult italic" - if(user.mind && user.mind.has_antag_datum(/datum/antagonist/cult/master)) - span = "cultlarge" - title = "Master" - else if(!ishuman(user)) - title = "Construct" - my_message = "[title] [findtextEx(user.name, user.real_name) ? user.name : "[user.real_name] (as [user.name])"]: [message]" - for(var/i in GLOB.player_list) - var/mob/M = i - if(iscultist(M)) - to_chat(M, my_message) - else if(M in GLOB.dead_mob_list) - var/link = FOLLOW_LINK(M, user) - to_chat(M, "[link] [my_message]") - - user.log_talk(message, LOG_SAY, tag="cult") - -/datum/action/innate/cult/comm/spirit - name = "Spiritual Communion" - desc = "Conveys a message from the spirit realm that all cultists can hear." - -/datum/action/innate/cult/comm/spirit/IsAvailable() - if(iscultist(owner.mind.current)) - return TRUE - -/datum/action/innate/cult/comm/spirit/cultist_commune(mob/living/user, message) - var/my_message - if(!message) - return - my_message = "The [user.name]: [message]" - for(var/i in GLOB.player_list) - var/mob/M = i - if(iscultist(M)) - to_chat(M, my_message) - else if(M in GLOB.dead_mob_list) - var/link = FOLLOW_LINK(M, user) - to_chat(M, "[link] [my_message]") - -/datum/action/innate/cult/mastervote - name = "Assert Leadership" - button_icon_state = "cultvote" - -/datum/action/innate/cult/mastervote/IsAvailable() - var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - if(!C || C.cult_team.cult_vote_called || !ishuman(owner)) - return FALSE - return ..() - -/datum/action/innate/cult/mastervote/Activate() - var/choice = alert(owner, "The mantle of leadership is heavy. Success in this role requires an expert level of communication and experience. Are you sure?",, "Yes", "No") - if(choice == "Yes" && IsAvailable()) - var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - pollCultists(owner,C.cult_team) - -/proc/pollCultists(mob/living/Nominee,datum/team/cult/team) //Cult Master Poll - if(world.time < CULT_POLL_WAIT) - to_chat(Nominee, "It would be premature to select a leader while everyone is still settling in, try again in [DisplayTimeText(CULT_POLL_WAIT-world.time)].") - return - team.cult_vote_called = TRUE //somebody's trying to be a master, make sure we don't let anyone else try - for(var/datum/mind/B in team.members) - if(B.current) - B.current.update_action_buttons_icon() - if(!B.current.incapacitated()) - SEND_SOUND(B.current, 'sound/hallucinations/im_here1.ogg') - to_chat(B.current, "Acolyte [Nominee] has asserted that [Nominee.p_theyre()] worthy of leading the cult. A vote will be called shortly.") - sleep(100) - var/list/asked_cultists = list() - for(var/datum/mind/B in team.members) - if(B.current && B.current != Nominee && !B.current.incapacitated()) - SEND_SOUND(B.current, 'sound/magic/exit_blood.ogg') - asked_cultists += B.current - var/list/yes_voters = pollCandidates("[Nominee] seeks to lead your cult, do you support [Nominee.p_them()]?", poll_time = 300, group = asked_cultists) - if(QDELETED(Nominee) || Nominee.incapacitated()) - team.cult_vote_called = FALSE - for(var/datum/mind/B in team.members) - if(B.current) - B.current.update_action_buttons_icon() - if(!B.current.incapacitated()) - to_chat(B.current,"[Nominee] has died in the process of attempting to win the cult's support!") - return FALSE - if(!Nominee.mind) - team.cult_vote_called = FALSE - for(var/datum/mind/B in team.members) - if(B.current) - B.current.update_action_buttons_icon() - if(!B.current.incapacitated()) - to_chat(B.current,"[Nominee] has gone catatonic in the process of attempting to win the cult's support!") - return FALSE - if(LAZYLEN(yes_voters) <= LAZYLEN(asked_cultists) * 0.5) - team.cult_vote_called = FALSE - for(var/datum/mind/B in team.members) - if(B.current) - B.current.update_action_buttons_icon() - if(!B.current.incapacitated()) - to_chat(B.current, "[Nominee] could not win the cult's support and shall continue to serve as an acolyte.") - return FALSE - team.cult_master = Nominee - SSticker.mode.remove_cultist(Nominee.mind, TRUE) - Nominee.mind.add_antag_datum(/datum/antagonist/cult/master) - for(var/datum/mind/B in team.members) - if(B.current) - for(var/datum/action/innate/cult/mastervote/vote in B.current.actions) - vote.Remove(B.current) - if(!B.current.incapacitated()) - to_chat(B.current,"[Nominee] has won the cult's support and is now their master. Follow [Nominee.p_their()] orders to the best of your ability!") - return TRUE - -/datum/action/innate/cult/master/IsAvailable() - if(!owner.mind || !owner.mind.has_antag_datum(/datum/antagonist/cult/master) || GLOB.cult_narsie) - return 0 - return ..() - -/datum/action/innate/cult/master/finalreck - name = "Final Reckoning" - desc = "A single-use spell that brings the entire cult to the master's location." - button_icon_state = "sintouch" - -/datum/action/innate/cult/master/finalreck/Activate() - var/datum/antagonist/cult/antag = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - if(!antag) - return - for(var/i in 1 to 4) - chant(i) - var/list/destinations = list() - for(var/turf/T in orange(1, owner)) - if(!T.is_blocked_turf(TRUE)) - destinations += T - if(!LAZYLEN(destinations)) - to_chat(owner, "You need more space to summon your cult!") - return - if(do_after(owner, 30, target = owner)) - for(var/datum/mind/B in antag.cult_team.members) - if(B.current && B.current.stat != DEAD) - var/turf/mobloc = get_turf(B.current) - switch(i) - if(1) - new /obj/effect/temp_visual/cult/sparks(mobloc, B.current.dir) - playsound(mobloc, "sparks", 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) - if(2) - new /obj/effect/temp_visual/dir_setting/cult/phase/out(mobloc, B.current.dir) - playsound(mobloc, "sparks", 75, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) - if(3) - new /obj/effect/temp_visual/dir_setting/cult/phase(mobloc, B.current.dir) - playsound(mobloc, "sparks", 100, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) - if(4) - playsound(mobloc, 'sound/magic/exit_blood.ogg', 100, TRUE) - if(B.current != owner) - var/turf/final = pick(destinations) - if(istype(B.current.loc, /obj/item/soulstone)) - var/obj/item/soulstone/S = B.current.loc - S.release_shades(owner) - B.current.setDir(SOUTH) - new /obj/effect/temp_visual/cult/blood(final) - addtimer(CALLBACK(B.current, TYPE_PROC_REF(/mob, reckon), final), 10) - else - return - antag.cult_team.reckoning_complete = TRUE - Remove(owner) - -/mob/proc/reckon(turf/final) - new /obj/effect/temp_visual/cult/blood/out(get_turf(src)) - forceMove(final) - -/datum/action/innate/cult/master/finalreck/proc/chant(chant_number) - switch(chant_number) - if(1) - owner.say("C'arta forbici!", language = /datum/language/common, forced = "cult invocation") - if(2) - owner.say("Pleggh e'ntrath!", language = /datum/language/common, forced = "cult invocation") - playsound(get_turf(owner),'sound/magic/clockwork/narsie_attack.ogg', 50, TRUE) - if(3) - owner.say("Barhah hra zar'garis!", language = /datum/language/common, forced = "cult invocation") - playsound(get_turf(owner),'sound/magic/clockwork/narsie_attack.ogg', 75, TRUE) - if(4) - owner.say("N'ath reth sh'yro eth d'rekkathnor!!!", language = /datum/language/common, forced = "cult invocation") - playsound(get_turf(owner),'sound/magic/clockwork/narsie_attack.ogg', 100, TRUE) - -/datum/action/innate/cult/master/cultmark - name = "Mark Target" - desc = "Marks a target for the cult." - button_icon_state = "cult_mark" - var/obj/effect/proc_holder/cultmark/CM - var/cooldown = 0 - var/base_cooldown = 1200 - -/datum/action/innate/cult/master/cultmark/New(Target) - CM = new() - CM.attached_action = src - ..() - -/datum/action/innate/cult/master/cultmark/IsAvailable() - if(cooldown > world.time) - if(!CM.active) - to_chat(owner, "You need to wait [DisplayTimeText(cooldown - world.time)] before you can mark another target!") - return FALSE - return ..() - -/datum/action/innate/cult/master/cultmark/Destroy() - QDEL_NULL(CM) - return ..() - -/datum/action/innate/cult/master/cultmark/Activate() - CM.toggle(owner) //the important bit - return TRUE - -/obj/effect/proc_holder/cultmark - active = FALSE - ranged_mousepointer = 'icons/effects/mouse_pointers/cult_target.dmi' - var/datum/action/innate/cult/master/cultmark/attached_action - -/obj/effect/proc_holder/cultmark/Destroy() - attached_action = null - return ..() - -/obj/effect/proc_holder/cultmark/proc/toggle(mob/user) - if(active) - remove_ranged_ability("You cease the marking ritual.") - else - add_ranged_ability(user, "You prepare to mark a target for your cult...") - -/obj/effect/proc_holder/cultmark/InterceptClickOn(mob/living/caller, params, atom/target) - if(..()) - return - if(ranged_ability_user.incapacitated()) - remove_ranged_ability() - return - var/turf/T = get_turf(ranged_ability_user) - if(!isturf(T)) - return FALSE - - var/datum/antagonist/cult/C = caller.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - - if(target in view(7, get_turf(ranged_ability_user))) - if(C.cult_team.blood_target) - to_chat(ranged_ability_user, "The cult has already designated a target!") - return FALSE - C.cult_team.blood_target = target - var/area/A = get_area(target) - attached_action.cooldown = world.time + attached_action.base_cooldown - addtimer(CALLBACK(attached_action.owner, TYPE_PROC_REF(/mob, update_action_buttons_icon)), attached_action.base_cooldown) - C.cult_team.blood_target_image = image('icons/effects/mouse_pointers/cult_target.dmi', target, "glow", ABOVE_MOB_LAYER) - C.cult_team.blood_target_image.appearance_flags = RESET_COLOR - C.cult_team.blood_target_image.pixel_x = -target.pixel_x - C.cult_team.blood_target_image.pixel_y = -target.pixel_y - for(var/datum/mind/B in SSticker.mode.cult) - if(B.current && B.current.stat != DEAD && B.current.client) - to_chat(B.current, "[ranged_ability_user] has marked [C.cult_team.blood_target] in the [A.name] as the cult's top priority, get there immediately!") - SEND_SOUND(B.current, sound(pick('sound/hallucinations/over_here2.ogg','sound/hallucinations/over_here3.ogg'),0,1,75)) - B.current.client.images += C.cult_team.blood_target_image - attached_action.owner.update_action_buttons_icon() - remove_ranged_ability("The marking rite is complete! It will last for 90 seconds.") - C.cult_team.blood_target_reset_timer = addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(reset_blood_target),C.cult_team), 900, TIMER_STOPPABLE) - return TRUE - return FALSE - -/proc/reset_blood_target(datum/team/cult/team) - for(var/datum/mind/B in team.members) - if(B.current && B.current.stat != DEAD && B.current.client) - if(team.blood_target) - to_chat(B.current,"The blood mark has expired!") - B.current.client.images -= team.blood_target_image - QDEL_NULL(team.blood_target_image) - team.blood_target = null - - -/datum/action/innate/cult/master/cultmark/ghost - name = "Mark a Blood Target for the Cult" - desc = "Marks a target for the entire cult to track." - -/datum/action/innate/cult/master/cultmark/ghost/IsAvailable() - if(istype(owner, /mob/dead/observer) && iscultist(owner.mind.current)) - return TRUE - else - qdel(src) - -/datum/action/innate/cult/ghostmark //Ghost version - name = "Blood Mark your Target" - desc = "Marks whatever you are orbitting - for the entire cult to track." - button_icon_state = "cult_mark" - var/tracking = FALSE - var/cooldown = 0 - var/base_cooldown = 600 - -/datum/action/innate/cult/ghostmark/IsAvailable() - if(istype(owner, /mob/dead/observer) && iscultist(owner.mind.current)) - return TRUE - else - qdel(src) - -/datum/action/innate/cult/ghostmark/proc/reset_button() - if(owner) - name = "Blood Mark your Target" - desc = "Marks whatever you are orbitting - for the entire cult to track." - button_icon_state = "cult_mark" - owner.update_action_buttons_icon() - SEND_SOUND(owner, 'sound/magic/enter_blood.ogg') - to_chat(owner,"Your previous mark is gone - you are now ready to create a new blood mark.") - -/datum/action/innate/cult/ghostmark/Activate() - var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - if(C.cult_team.blood_target) - if(cooldown>world.time) - reset_blood_target(C.cult_team) - to_chat(owner, "You have cleared the cult's blood target!") - deltimer(C.cult_team.blood_target_reset_timer) - return - else - to_chat(owner, "The cult has already designated a target!") - return - if(cooldown>world.time) - to_chat(owner, "You aren't ready to place another blood mark yet!") - return - target = owner.orbiting?.parent || get_turf(owner) - if(!target) - return - C.cult_team.blood_target = target - var/area/A = get_area(target) - cooldown = world.time + base_cooldown - addtimer(CALLBACK(owner, TYPE_PROC_REF(/mob, update_action_buttons_icon)), base_cooldown) - C.cult_team.blood_target_image = image('icons/effects/mouse_pointers/cult_target.dmi', target, "glow", ABOVE_MOB_LAYER) - C.cult_team.blood_target_image.appearance_flags = RESET_COLOR - C.cult_team.blood_target_image.pixel_x = -target.pixel_x - C.cult_team.blood_target_image.pixel_y = -target.pixel_y - SEND_SOUND(owner, sound(pick('sound/hallucinations/over_here2.ogg','sound/hallucinations/over_here3.ogg'),0,1,75)) - owner.client.images += C.cult_team.blood_target_image - for(var/datum/mind/B in SSticker.mode.cult) - if(B.current && B.current.stat != DEAD && B.current.client) - to_chat(B.current, "[owner] has marked [C.cult_team.blood_target] in the [A.name] as the cult's top priority, get there immediately!") - SEND_SOUND(B.current, sound(pick('sound/hallucinations/over_here2.ogg','sound/hallucinations/over_here3.ogg'),0,1,75)) - B.current.client.images += C.cult_team.blood_target_image - to_chat(owner,"You have marked the [target] for the cult! It will last for [DisplayTimeText(base_cooldown)].") - name = "Clear the Blood Mark" - desc = "Remove the Blood Mark you previously set." - button_icon_state = "emp" - owner.update_action_buttons_icon() - C.cult_team.blood_target_reset_timer = addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(reset_blood_target),C.cult_team), base_cooldown, TIMER_STOPPABLE) - addtimer(CALLBACK(src, PROC_REF(reset_button)), base_cooldown) - - -//////// ELDRITCH PULSE ///////// - - - -/datum/action/innate/cult/master/pulse - name = "Eldritch Pulse" - desc = "Seize upon a fellow cultist or cult structure and teleport it to a nearby location." - icon_icon = 'icons/mob/actions/actions_spells.dmi' - button_icon_state = "arcane_barrage" - var/obj/effect/proc_holder/pulse/PM - var/cooldown = 0 - var/base_cooldown = 150 - var/throwing = FALSE - var/mob/living/throwee - -/datum/action/innate/cult/master/pulse/New() - PM = new() - PM.attached_action = src - ..() - -/datum/action/innate/cult/master/pulse/IsAvailable() - if(!owner.mind || !owner.mind.has_antag_datum(/datum/antagonist/cult/master)) - return FALSE - if(cooldown > world.time) - if(!PM.active) - to_chat(owner, "You need to wait [DisplayTimeText(cooldown - world.time)] before you can pulse again!") - return FALSE - return ..() - -/datum/action/innate/cult/master/pulse/Destroy() - PM.attached_action = null //What the fuck is even going on here. - QDEL_NULL(PM) - return ..() - - -/datum/action/innate/cult/master/pulse/Activate() - PM.toggle(owner) //the important bit - return TRUE - -/obj/effect/proc_holder/pulse - active = FALSE - ranged_mousepointer = 'icons/effects/mouse_pointers/throw_target.dmi' - var/datum/action/innate/cult/master/pulse/attached_action - -/obj/effect/proc_holder/pulse/Destroy() - attached_action = null - return ..() - - -/obj/effect/proc_holder/pulse/proc/toggle(mob/user) - if(active) - remove_ranged_ability("You cease your preparations...") - attached_action.throwing = FALSE - else - add_ranged_ability(user, "You prepare to tear through the fabric of reality...") - -/obj/effect/proc_holder/pulse/InterceptClickOn(mob/living/caller, params, atom/target) - if(..()) - return - if(ranged_ability_user.incapacitated()) - remove_ranged_ability() - return - var/turf/T = get_turf(ranged_ability_user) - if(!isturf(T)) - return FALSE - if(target in view(7, get_turf(ranged_ability_user))) - if((!(iscultist(target) || istype(target, /obj/structure/destructible/cult)) || target == caller) && !(attached_action.throwing)) - return - if(!attached_action.throwing) - attached_action.throwing = TRUE - attached_action.throwee = target - SEND_SOUND(ranged_ability_user, sound('sound/weapons/thudswoosh.ogg')) - to_chat(ranged_ability_user,"You reach through the veil with your mind's eye and seize [target]!") - return - else - new /obj/effect/temp_visual/cult/sparks(get_turf(attached_action.throwee), ranged_ability_user.dir) - var/distance = get_dist(attached_action.throwee, target) - if(distance >= 16) - return - playsound(target,'sound/magic/exit_blood.ogg') - attached_action.throwee.Beam(target,icon_state="sendbeam",time=4) - attached_action.throwee.forceMove(get_turf(target)) - new /obj/effect/temp_visual/cult/sparks(get_turf(target), ranged_ability_user.dir) - attached_action.throwing = FALSE - attached_action.cooldown = world.time + attached_action.base_cooldown - remove_ranged_ability("A pulse of blood magic surges through you as you shift [attached_action.throwee] through time and space.") - caller.update_action_buttons_icon() - addtimer(CALLBACK(caller, TYPE_PROC_REF(/mob, update_action_buttons_icon)), attached_action.base_cooldown) diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm deleted file mode 100644 index 5dce420df1cf..000000000000 --- a/code/modules/antagonists/cult/cult_items.dm +++ /dev/null @@ -1,524 +0,0 @@ -/obj/item/tome - name = "arcane tome" - desc = "An old, dusty tome with frayed edges and a sinister-looking cover." - icon_state ="tome" - throw_speed = 2 - throw_range = 5 - w_class = WEIGHT_CLASS_SMALL - -/datum/action/innate/dash/cult - name = "Rend the Veil" - desc = "Use the sword to shear open the flimsy fabric of this reality and teleport to your target." - icon_icon = 'icons/mob/actions/actions_cult.dmi' - button_icon_state = "phaseshift" - dash_sound = 'sound/magic/enter_blood.ogg' - recharge_sound = 'sound/magic/exit_blood.ogg' - beam_effect = "sendbeam" - phasein = /obj/effect/temp_visual/dir_setting/cult/phase - phaseout = /obj/effect/temp_visual/dir_setting/cult/phase/out - -/datum/action/innate/dash/cult/IsAvailable() - if(iscultist(owner) && current_charges) - return TRUE - else - return FALSE - -/obj/item/restraints/legcuffs/bola/cult - name = "\improper Nar'Sien bola" - desc = "A strong bola, bound with dark magic that allows it to pass harmlessly through Nar'Sien cultists. Throw it to trip and slow your victim." - icon_state = "bola_cult" - item_state = "bola_cult" - breakouttime = 60 - knockdown = 30 - -/obj/item/restraints/legcuffs/bola/cult/attack_hand(mob/living/user) - . = ..() - if(!iscultist(user)) - to_chat(user, "The bola seems to take on a life of its own!") - ensnare(user) - -/obj/item/restraints/legcuffs/bola/cult/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) - if(iscultist(hit_atom)) - return - . = ..() - -/obj/item/clothing/head/hooded/cult_hoodie - name = "ancient cultist hood" - icon_state = "culthood" - desc = "A torn, dust-caked hood. Strange letters line the inside." - flags_inv = HIDEFACE|HIDEHAIR|HIDEEARS - flags_cover = HEADCOVERSEYES - armor = list("melee" = 40, "bullet" = 30, "laser" = 40,"energy" = 40, "bomb" = 25, "bio" = 10, "rad" = 0, "fire" = 10, "acid" = 10) - cold_protection = HEAD - min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT - heat_protection = HEAD - max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT - -/obj/item/clothing/suit/hooded/cultrobes - name = "ancient cultist robes" - desc = "A ragged, dusty set of robes. Strange letters line the inside." - icon_state = "cultrobes" - item_state = "cultrobes" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - allowed = list(/obj/item/tome, /obj/item/tank) - armor = list("melee" = 40, "bullet" = 30, "laser" = 40,"energy" = 40, "bomb" = 25, "bio" = 10, "rad" = 0, "fire" = 10, "acid" = 10) - flags_inv = HIDEJUMPSUIT - cold_protection = CHEST|GROIN|LEGS|ARMS - min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT - heat_protection = CHEST|GROIN|LEGS|ARMS - max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT - hoodtype = /obj/item/clothing/head/hooded/cult_hoodie - - -/obj/item/clothing/head/hooded/cult_hoodie/alt - name = "cultist hood" - desc = "An armored hood worn by the followers of Nar'Sie." - icon_state = "cult_hoodalt" - item_state = "cult_hoodalt" - -/obj/item/clothing/suit/hooded/cultrobes/alt - name = "cultist robes" - desc = "An armored set of robes worn by the followers of Nar'Sie." - icon_state = "cultrobesalt" - item_state = "cultrobesalt" - hoodtype = /obj/item/clothing/head/hooded/cult_hoodie/alt - -/obj/item/clothing/suit/hooded/cultrobes/alt/ghost - item_flags = DROPDEL - -/obj/item/clothing/suit/hooded/cultrobes/alt/ghost/Initialize() - . = ..() - ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT) - -/obj/item/clothing/head/helmet/space/hardsuit/cult - name = "\improper Nar'Sien hardened helmet" - desc = "A heavily-armored helmet worn by warriors of the Nar'Sien cult. It can withstand hard vacuum." - icon_state = "cult_helmet" - item_state = "cult_helmet" - armor = list("melee" = 70, "bullet" = 50, "laser" = 30,"energy" = 40, "bomb" = 30, "bio" = 30, "rad" = 30, "fire" = 40, "acid" = 75) - light_system = NO_LIGHT_SUPPORT - light_range = 0 - actions_types = list() - -/obj/item/clothing/suit/space/hardsuit/cult - name = "\improper Nar'Sien hardened armor" - icon_state = "cult_armor" - item_state = "cult_armor" - desc = "A heavily-armored exosuit worn by warriors of the Nar'Sien cult. It can withstand hard vacuum." - w_class = WEIGHT_CLASS_BULKY - allowed = list(/obj/item/tome, /obj/item/tank/internals/) - armor = list("melee" = 70, "bullet" = 50, "laser" = 30,"energy" = 40, "bomb" = 30, "bio" = 30, "rad" = 30, "fire" = 40, "acid" = 75) - helmettype = /obj/item/clothing/head/helmet/space/hardsuit/cult - -/obj/item/sharpener/cult - name = "eldritch whetstone" - desc = "A block, empowered by dark magic. Sharp weapons will be enhanced when used on the stone." - icon_state = "cult_sharpener" - used = 0 - increment = 5 - max = 40 - prefix = "darkened" - -/obj/item/sharpener/cult/update_icon_state() - icon_state = "cult_sharpener[used ? "_used" : ""]" - return ..() - -/obj/item/clothing/suit/hooded/cultrobes/cult_shield - name = "empowered cultist armor" - desc = "Empowered armor which creates a powerful shield around the user." - icon_state = "cult_armor" - item_state = "cult_armor" - w_class = WEIGHT_CLASS_BULKY - armor = list("melee" = 50, "bullet" = 40, "laser" = 50,"energy" = 50, "bomb" = 50, "bio" = 30, "rad" = 30, "fire" = 50, "acid" = 60) - var/current_charges = 3 - hoodtype = /obj/item/clothing/head/hooded/cult_hoodie/cult_shield - -/obj/item/clothing/head/hooded/cult_hoodie/cult_shield - name = "empowered cultist helmet" - desc = "Empowered helmet which creates a powerful shield around the user." - icon_state = "cult_hoodalt" - armor = list("melee" = 50, "bullet" = 40, "laser" = 50,"energy" = 50, "bomb" = 50, "bio" = 30, "rad" = 30, "fire" = 50, "acid" = 60) - -/obj/item/clothing/suit/hooded/cultrobes/cult_shield/equipped(mob/living/user, slot) - ..() - if(!iscultist(user)) - to_chat(user, "\"I wouldn't advise that.\"") - to_chat(user, "An overwhelming sense of nausea overpowers you!") - user.dropItemToGround(src, TRUE) - user.Dizzy(30) - user.Paralyze(100) - -/obj/item/clothing/suit/hooded/cultrobes/cult_shield/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(current_charges) - owner.visible_message("\The [attack_text] is deflected in a burst of blood-red sparks!") - current_charges-- - new /obj/effect/temp_visual/cult/sparks(get_turf(owner)) - if(!current_charges) - owner.visible_message("The runed shield around [owner] suddenly disappears!") - owner.update_inv_wear_suit() - return 1 - return 0 - -/obj/item/clothing/suit/hooded/cultrobes/cult_shield/worn_overlays(isinhands) - . = ..() - if(!isinhands && current_charges) - . += mutable_appearance('icons/effects/cult_effects.dmi', "shield-cult", MOB_LAYER + 0.01) - -/obj/item/clothing/suit/hooded/cultrobes/berserker - name = "flagellant's robes" - desc = "Blood-soaked robes infused with dark magic; allows the user to move at inhuman speeds, but at the cost of increased damage." - allowed = list(/obj/item/tome) - armor = list("melee" = -45, "bullet" = -45, "laser" = -45,"energy" = -55, "bomb" = -45, "bio" = -45, "rad" = -45, "fire" = 0, "acid" = 0) - slowdown = -0.6 - hoodtype = /obj/item/clothing/head/hooded/cult_hoodie/berserkerhood - -/obj/item/clothing/head/hooded/cult_hoodie/berserkerhood - name = "flagellant's hood" - desc = "Blood-soaked hood infused with dark magic." - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) - -/obj/item/clothing/suit/hooded/cultrobes/berserker/equipped(mob/living/user, slot) - ..() - if(!iscultist(user)) - to_chat(user, "\"I wouldn't advise that.\"") - to_chat(user, "An overwhelming sense of nausea overpowers you!") - user.dropItemToGround(src, TRUE) - user.Dizzy(30) - user.Paralyze(100) - -/obj/item/clothing/glasses/hud/health/night/cultblind - desc = "may Nar'Sie guide you through the darkness and shield you from the light." - name = "zealot's blindfold" - icon_state = "blindfold" - item_state = "blindfold" - flash_protect = FLASH_PROTECTION_FLASH - -/obj/item/clothing/glasses/hud/health/night/cultblind/equipped(mob/living/user, slot) - ..() - if(prob(30)) - to_chat(user, "\"You want to be blind, do you?\"") - user.dropItemToGround(src, TRUE) - user.Dizzy(30) - user.Paralyze(100) - user.blind_eyes(30) - else - return - -/obj/item/reagent_containers/glass/beaker/unholywater - name = "flask of unholy water" - desc = "Toxic to nonbelievers; reinvigorating to the faithful - this flask may be sipped or thrown." - icon = 'icons/obj/drinks/drinks.dmi' - icon_state = "holyflask" - color = "#333333" - list_reagents = list(/datum/reagent/fuel/unholywater = 50) - can_have_cap = FALSE - cap_icon_state = null - cap_on = FALSE - -/obj/item/cult_shift - name = "veil shifter" - desc = "This relic instantly teleports you, and anything you're pulling, forward by a moderate distance." - icon = 'icons/obj/cult.dmi' - icon_state ="shifter" - var/uses = 4 - -/obj/item/cult_shift/examine(mob/user) - . = ..() - if(uses) - . += "It has [uses] use\s remaining." - else - . += "It seems drained." - -/obj/item/cult_shift/proc/handle_teleport_grab(turf/T, mob/user) - var/mob/living/carbon/C = user - if(C.pulling) - var/atom/movable/pulled = C.pulling - do_teleport(pulled, T, channel = TELEPORT_CHANNEL_CULT) - . = pulled - -/obj/item/cult_shift/attack_self(mob/user) - if(!uses || !iscarbon(user)) - to_chat(user, "\The [src] is dull and unmoving in your hands.") - return - - var/mob/living/carbon/C = user - var/turf/mobloc = get_turf(C) - var/turf/destination = get_teleport_loc(mobloc,C,9,1,3,1,0,1) - - if(destination) - uses-- - if(uses <= 0) - icon_state ="shifter_drained" - playsound(mobloc, "sparks", 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) - new /obj/effect/temp_visual/dir_setting/cult/phase/out(mobloc, C.dir) - - var/atom/movable/pulled = handle_teleport_grab(destination, C) - if(do_teleport(C, destination, channel = TELEPORT_CHANNEL_CULT)) - if(pulled) - C.start_pulling(pulled) //forcemove resets pulls, so we need to re-pull - new /obj/effect/temp_visual/dir_setting/cult/phase(destination, C.dir) - playsound(destination, 'sound/effects/phasein.ogg', 25, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) - playsound(destination, "sparks", 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) - - else - to_chat(C, "The veil cannot be torn here!") - -/obj/item/flashlight/flare/culttorch - name = "void torch" - desc = "Used by veteran cultists to instantly transport items to their needful brethren." - w_class = WEIGHT_CLASS_SMALL - light_range = 1 - icon_state = "torch" - item_state = "torch" - color = "#ff0000" - on_damage = 15 - slot_flags = null - on = TRUE - var/charges = 5 - -/obj/item/flashlight/flare/culttorch/afterattack(atom/movable/A, mob/user, proximity) - if(!proximity) - return - if(!iscultist(user)) - to_chat(user, "That doesn't seem to do anything useful.") - return - - if(istype(A, /obj/item)) - - var/list/cultists = list() - for(var/datum/mind/M in SSticker.mode.cult) - if(M.current && M.current.stat != DEAD) - cultists |= M.current - var/mob/living/cultist_to_receive = input(user, "Who do you wish to call to [src]?", "Followers of the Geometer") as null|anything in (cultists - user) - if(!Adjacent(user) || !src || QDELETED(src) || user.incapacitated()) - return - if(!cultist_to_receive) - to_chat(user, "You require a destination!") - log_game("Void torch failed - no target") - return - if(cultist_to_receive.stat == DEAD) - to_chat(user, "[cultist_to_receive] has died!") - log_game("Void torch failed - target died") - return - if(!iscultist(cultist_to_receive)) - to_chat(user, "[cultist_to_receive] is not a follower of the Geometer!") - log_game("Void torch failed - target was deconverted") - return - if(A in user.GetAllContents()) - to_chat(user, "[A] must be on a surface in order to teleport it!") - return - to_chat(user, "You ignite [A] with \the [src], turning it to ash, but through the torch's flames you see that [A] has reached [cultist_to_receive]!") - cultist_to_receive.put_in_hands(A) - charges-- - to_chat(user, "\The [src] now has [charges] charge\s.") - if(charges == 0) - qdel(src) - - else - ..() - to_chat(user, "\The [src] can only transport items!") - -/obj/item/blood_beam - name = "\improper magical aura" - desc = "Sinister looking aura that distorts the flow of reality around it." - lefthand_file = 'icons/mob/inhands/misc/touchspell_lefthand.dmi' - righthand_file = 'icons/mob/inhands/misc/touchspell_righthand.dmi' - icon_state = "disintegrate" - item_state = "disintegrate" - item_flags = ABSTRACT | DROPDEL - w_class = WEIGHT_CLASS_HUGE - throwforce = 0 - throw_range = 0 - throw_speed = 0 - var/charging = FALSE - var/firing = FALSE - var/angle - -/obj/item/blood_beam/Initialize() - . = ..() - ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT) - - -/obj/item/blood_beam/afterattack(atom/A, mob/living/user, flag, params) - . = ..() - if(firing || charging) - return - var/C = user.client - if(ishuman(user) && C) - angle = mouse_angle_from_client(C) - else - qdel(src) - return - charging = TRUE - INVOKE_ASYNC(src, PROC_REF(charge), user) - if(do_after(user, 90, target = user)) - firing = TRUE - INVOKE_ASYNC(src, PROC_REF(pewpew), user, params) - var/obj/structure/emergency_shield/invoker/N = new(user.loc) - if(do_after(user, 90, target = user)) - user.Paralyze(40) - to_chat(user, "You have exhausted the power of this spell!") - firing = FALSE - if(N) - qdel(N) - qdel(src) - charging = FALSE - -/obj/item/blood_beam/proc/charge(mob/user) - var/obj/O - playsound(src, 'sound/magic/lightning_chargeup.ogg', 100, TRUE) - for(var/i in 1 to 12) - if(!charging) - break - if(i > 1) - sleep(15) - if(i < 4) - O = new /obj/effect/temp_visual/cult/rune_spawn/rune1/inner(user.loc, 30, "#ff0000") - else - O = new /obj/effect/temp_visual/cult/rune_spawn/rune5(user.loc, 30, "#ff0000") - new /obj/effect/temp_visual/dir_setting/cult/phase/out(user.loc, user.dir) - if(O) - qdel(O) - -/obj/item/blood_beam/proc/pewpew(mob/user, params) - var/turf/targets_from = get_turf(src) - var/spread = 40 - var/second = FALSE - var/set_angle = angle - for(var/i in 1 to 12) - if(second) - set_angle = angle - spread - spread -= 8 - else - sleep(15) - set_angle = angle + spread - second = !second //Handles beam firing in pairs - if(!firing) - break - playsound(src, 'sound/magic/exit_blood.ogg', 75, TRUE) - new /obj/effect/temp_visual/dir_setting/cult/phase(user.loc, user.dir) - var/turf/temp_target = get_turf_in_angle(set_angle, targets_from, 40) - for(var/turf/T in getline(targets_from,temp_target)) - if (locate(/obj/effect/blessing, T)) - temp_target = T - playsound(T, 'sound/machines/clockcult/ark_damage.ogg', 50, TRUE) - new /obj/effect/temp_visual/at_shield(T, T) - break - T.narsie_act(TRUE, TRUE) - for(var/mob/living/target in T.contents) - if(iscultist(target)) - new /obj/effect/temp_visual/cult/sparks(T) - if(ishuman(target)) - var/mob/living/carbon/human/H = target - if(H.stat != DEAD) - H.reagents.add_reagent(/datum/reagent/fuel/unholywater, 7) - if(isshade(target) || isconstruct(target)) - var/mob/living/simple_animal/M = target - if(M.health+15 < M.maxHealth) - M.adjustHealth(-15) - else - M.health = M.maxHealth - else - var/mob/living/L = target - if(L.density) - L.Paralyze(20) - L.adjustBruteLoss(45) - playsound(L, 'sound/hallucinations/wail.ogg', 50, TRUE) - L.emote("scream") - user.Beam(temp_target, icon_state="blood_beam", time = 7, beam_type = /obj/effect/ebeam/blood) - - -/obj/effect/ebeam/blood - name = "blood beam" - -/obj/item/shield/mirror - name = "mirror shield" - desc = "An infamous shield used by Nar'Sien sects to confuse and disorient their enemies. Its edges are weighted for use as a throwing weapon - capable of disabling multiple foes with preternatural accuracy." - icon_state = "mirror_shield" // eshield1 for expanded - lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi' - righthand_file = 'icons/mob/inhands/equipment/shields_righthand.dmi' - force = 5 - throwforce = 15 - throw_speed = 1 - throw_range = 4 - w_class = WEIGHT_CLASS_BULKY - attack_verb = list("bumped", "prodded") - hitsound = 'sound/weapons/smash.ogg' - var/illusions = 2 - -/obj/item/shield/mirror/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - if(iscultist(owner)) - if(istype(hitby, /obj/projectile)) - var/obj/projectile/P = hitby - if(P.damage_type == BRUTE || P.damage_type == BURN) - if(P.damage >= 30) - var/turf/T = get_turf(owner) - T.visible_message("The sheer force from [P] shatters the mirror shield!") - new /obj/effect/temp_visual/cult/sparks(T) - playsound(T, 'sound/effects/glassbr3.ogg', 100) - owner.Paralyze(25) - qdel(src) - return FALSE - if(P.reflectable & REFLECT_NORMAL) - return FALSE //To avoid reflection chance double-dipping with block chance - . = ..() - if(.) - playsound(src, 'sound/weapons/parry.ogg', 100, TRUE) - if(illusions > 0) - illusions-- - addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/item/shield/mirror, readd)), 450) - if(prob(60)) - var/mob/living/simple_animal/hostile/illusion/M = new(owner.loc) - M.faction = list("cult") - M.Copy_Parent(owner, 70, 10, 5) - M.move_to_delay = owner.cached_multiplicative_slowdown - else - var/mob/living/simple_animal/hostile/illusion/escape/E = new(owner.loc) - E.Copy_Parent(owner, 70, 10) - E.GiveTarget(owner) - E.Goto(owner, owner.cached_multiplicative_slowdown, E.minimum_distance) - return TRUE - else - if(prob(50)) - var/mob/living/simple_animal/hostile/illusion/H = new(owner.loc) - H.Copy_Parent(owner, 100, 20, 5) - H.faction = list("cult") - H.GiveTarget(owner) - H.move_to_delay = owner.cached_multiplicative_slowdown - to_chat(owner, "[src] betrays you!") - return FALSE - -/obj/item/shield/mirror/proc/readd() - illusions++ - if(illusions == initial(illusions) && isliving(loc)) - var/mob/living/holder = loc - to_chat(holder, "The shield's illusions are back at full strength!") - -/obj/item/shield/mirror/IsReflect() - if(prob(block_chance)) - return TRUE - return FALSE - -/obj/item/shield/mirror/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) - var/turf/T = get_turf(hit_atom) - var/datum/thrownthing/D = throwingdatum - if(isliving(hit_atom)) - var/mob/living/L = hit_atom - if(iscultist(L)) - playsound(src, 'sound/weapons/throwtap.ogg', 50) - if(L.put_in_active_hand(src)) - L.visible_message("[L] catches [src] out of the air!") - else - L.visible_message("[src] bounces off of [L], as if repelled by an unseen force!") - else if(!..()) - if(!L.anti_magic_check()) - L.Paralyze(30) - if(D?.thrower) - for(var/mob/living/Next in orange(2, T)) - if(!Next.density || iscultist(Next)) - continue - throw_at(Next, 3, 1, D.thrower) - return - throw_at(D.thrower, 7, 1, null) - else - ..() diff --git a/code/modules/antagonists/cult/cult_structures.dm b/code/modules/antagonists/cult/cult_structures.dm deleted file mode 100644 index 73b8b89c9cba..000000000000 --- a/code/modules/antagonists/cult/cult_structures.dm +++ /dev/null @@ -1,288 +0,0 @@ -/obj/structure/destructible/cult - density = TRUE - anchored = TRUE - icon = 'icons/obj/cult.dmi' - light_power = 2 - var/cooldowntime = 0 - break_sound = 'sound/hallucinations/veryfar_noise.ogg' - debris = list(/obj/item/stack/sheet/mineral/hidden/hellstone = 1) - -/obj/structure/destructible/cult/proc/conceal() //for spells that hide cult presence - density = FALSE - visible_message("[src] fades away.") - invisibility = INVISIBILITY_OBSERVER - alpha = 100 //To help ghosts distinguish hidden runes - light_range = 0 - light_power = 0 - update_light() - STOP_PROCESSING(SSfastprocess, src) - -/obj/structure/destructible/cult/proc/reveal() //for spells that reveal cult presence - density = initial(density) - invisibility = 0 - visible_message("[src] suddenly appears!") - alpha = initial(alpha) - light_range = initial(light_range) - light_power = initial(light_power) - update_light() - START_PROCESSING(SSfastprocess, src) - - -/obj/structure/destructible/cult/examine(mob/user) - . = ..() - . += "\The [src] is [anchored ? "":"not "]secured to the floor." - if((iscultist(user) || isobserver(user)) && cooldowntime > world.time) - . += "The magic in [src] is too weak, [p_they()] will be ready to use again in [DisplayTimeText(cooldowntime - world.time)]." - -/obj/structure/destructible/cult/examine_status(mob/user) - if(iscultist(user) || isobserver(user)) - var/t_It = p_they(TRUE) - var/t_is = p_are() - return "[t_It] [t_is] at [round(obj_integrity * 100 / max_integrity)]% stability." - return ..() - -/obj/structure/destructible/cult/attack_animal(mob/living/simple_animal/M) - if(istype(M, /mob/living/simple_animal/hostile/construct/artificer)) - if(obj_integrity < max_integrity) - M.changeNext_move(CLICK_CD_MELEE) - obj_integrity = min(max_integrity, obj_integrity + 5) - Beam(M, icon_state="sendbeam", time=4) - M.visible_message("[M] repairs \the [src].", \ - "You repair [src], leaving [p_they()] at [round(obj_integrity * 100 / max_integrity)]% stability.") - else - to_chat(M, "You cannot repair [src], as [p_theyre()] undamaged!") - else - ..() - -/obj/structure/destructible/cult/set_anchored(anchorvalue) - . = ..() - if(isnull(.)) - return - update_appearance() - -/obj/structure/destructible/cult/update_icon_state() - icon_state = "[initial(icon_state)][anchored ? null : "_off"]" - return ..() - -/obj/structure/destructible/cult/proc/check_menu(mob/user) - if(!istype(user)) - return FALSE - if(user.incapacitated() || !user.Adjacent(src)) - return FALSE - return TRUE - -/obj/structure/destructible/cult/talisman - name = "altar" - desc = "A bloodstained altar dedicated to Nar'Sie." - icon_state = "talismanaltar" - break_message = "The altar shatters, leaving only the wailing of the damned!" - -/obj/structure/destructible/cult/talisman/attack_hand(mob/living/user) - . = ..() - if(.) - return - if(!iscultist(user)) - to_chat(user, "You're pretty sure you know exactly what this is used for and you can't seem to touch it.") - return - if(!anchored) - to_chat(user, "You need to anchor [src] to the floor with your dagger first.") - return - if(cooldowntime > world.time) - to_chat(user, "The magic in [src] is weak, it will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].") - return - var/list/items = list( - "Eldritch Whetstone" = image(icon = 'icons/obj/kitchen.dmi', icon_state = "cult_sharpener"), - "Construct Shell" = image(icon = 'icons/obj/wizard.dmi', icon_state = "construct_cult"), - "Flask of Unholy Water" = image(icon = 'icons/obj/drinks/drinks.dmi', icon_state = "holyflask") - ) - var/choice = show_radial_menu(user, src, items, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) - var/list/pickedtype = list() - switch(choice) - if("Eldritch Whetstone") - pickedtype += /obj/item/sharpener/cult - if("Construct Shell") - pickedtype += /obj/structure/constructshell - if("Flask of Unholy Water") - pickedtype += /obj/item/reagent_containers/glass/beaker/unholywater - else - return - if(src && !QDELETED(src) && anchored && pickedtype && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time) - cooldowntime = world.time + 2400 - for(var/N in pickedtype) - new N(get_turf(src)) - to_chat(user, "You kneel before the altar and your faith is rewarded with the [choice]!") - -/obj/structure/destructible/cult/forge - name = "daemon forge" - desc = "A forge used in crafting the unholy weapons used by the armies of Nar'Sie." - icon_state = "forge" - light_range = 2 - light_color = LIGHT_COLOR_LAVA - break_message = "The force breaks apart into shards with a howling scream!" - -/obj/structure/destructible/cult/forge/attack_hand(mob/living/user) - . = ..() - if(.) - return - if(!iscultist(user)) - to_chat(user, "The heat radiating from [src] pushes you back.") - return - if(!anchored) - to_chat(user, "You need to anchor [src] to the floor with your dagger first.") - return - if(cooldowntime > world.time) - to_chat(user, "The magic in [src] is weak, it will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].") - return - var/list/items = list( - "Shielded Robe" = image(icon = 'icons/obj/clothing/suits.dmi', icon_state = "cult_armor"), - "Flagellant's Robe" = image(icon = 'icons/obj/clothing/suits.dmi', icon_state = "cultrobes"), - "Mirror Shield" = image(icon = 'icons/obj/shields.dmi', icon_state = "mirror_shield") - ) - var/choice = show_radial_menu(user, src, items, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) - var/list/pickedtype = list() - switch(choice) - if("Shielded Robe") - pickedtype += /obj/item/clothing/suit/hooded/cultrobes/cult_shield - if("Flagellant's Robe") - pickedtype += /obj/item/clothing/suit/hooded/cultrobes/berserker - if("Mirror Shield") - pickedtype += /obj/item/shield/mirror - else - return - if(src && !QDELETED(src) && anchored && pickedtype && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time) - cooldowntime = world.time + 2400 - for(var/N in pickedtype) - new N(get_turf(src)) - to_chat(user, "You work the forge as dark knowledge guides your hands, creating the [choice]!") - - - -/obj/structure/destructible/cult/pylon - name = "pylon" - desc = "A floating crystal that slowly heals those faithful to Nar'Sie." - icon_state = "pylon" - light_range = 1.5 - light_color = COLOR_SOFT_RED - break_sound = 'sound/effects/glassbr2.ogg' - break_message = "The blood-red crystal falls to the floor and shatters!" - var/heal_delay = 25 - var/last_heal = 0 - var/corrupt_delay = 50 - var/last_corrupt = 0 - -/obj/structure/destructible/cult/pylon/New() - START_PROCESSING(SSfastprocess, src) - ..() - -/obj/structure/destructible/cult/pylon/Destroy() - STOP_PROCESSING(SSfastprocess, src) - return ..() - -/obj/structure/destructible/cult/pylon/process() - if(!anchored) - return - if(last_heal <= world.time) - last_heal = world.time + heal_delay - for(var/mob/living/L in range(5, src)) - if(iscultist(L) || isshade(L) || isconstruct(L)) - if(L.health != L.maxHealth) - new /obj/effect/temp_visual/heal(get_turf(src), "#960000") - if(ishuman(L)) - L.adjustBruteLoss(-1, 0) - L.adjustFireLoss(-1, 0) - L.updatehealth() - if(isshade(L) || isconstruct(L)) - var/mob/living/simple_animal/M = L - if(M.health < M.maxHealth) - M.adjustHealth(-3) - if(ishuman(L) && L.blood_volume < BLOOD_VOLUME_NORMAL) - L.blood_volume += 1.0 - CHECK_TICK - if(last_corrupt <= world.time) - var/list/validturfs = list() - var/list/cultturfs = list() - for(var/T in circleviewturfs(src, 5)) - if(istype(T, /turf/open/floor/engine/cult)) - cultturfs |= T - continue - var/static/list/blacklisted_pylon_turfs = typecacheof(list( - /turf/closed, - /turf/open/floor/engine/cult, - /turf/open/space, - /turf/open/lava, - /turf/open/chasm)) - if(is_type_in_typecache(T, blacklisted_pylon_turfs)) - continue - else - validturfs |= T - - last_corrupt = world.time + corrupt_delay - - if(length(validturfs)) - var/turf/T = pick(validturfs) - if(istype(T, /turf/open/floor/plating)) - T.PlaceOnTop(/turf/open/floor/engine/cult, flags = CHANGETURF_INHERIT_AIR) - else - T.ChangeTurf(/turf/open/floor/engine/cult, flags = CHANGETURF_INHERIT_AIR) - else if (length(cultturfs)) - var/turf/open/floor/engine/cult/F = pick(cultturfs) - new /obj/effect/temp_visual/cult/turf/floor(F) - else - // Are we in space or something? No cult turfs or - // convertable turfs? - last_corrupt = world.time + corrupt_delay*2 - -/obj/structure/destructible/cult/tome - name = "archives" - desc = "A desk covered in arcane manuscripts and tomes in unknown languages. Looking at the text makes your skin crawl." - icon_state = "tomealtar" - light_range = 1.5 - light_color = LIGHT_COLOR_FIRE - break_message = "The books and tomes of the archives burn into ash as the desk shatters!" - -/obj/structure/destructible/cult/tome/attack_hand(mob/living/user) - . = ..() - if(.) - return - if(!iscultist(user)) - to_chat(user, "These books won't open and it hurts to even try and read the covers.") - return - if(!anchored) - to_chat(user, "You need to anchor [src] to the floor with your dagger first.") - return - if(cooldowntime > world.time) - to_chat(user, "The magic in [src] is weak, it will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].") - return - var/list/items = list( - "Zealot's Blindfold" = image(icon = 'icons/obj/clothing/eyes/eyes.dmi', icon_state = "blindfold"), - "Veil Walker Set" = image(icon = 'icons/obj/cult.dmi', icon_state = "shifter") - ) - var/choice = show_radial_menu(user, src, items, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) - var/list/pickedtype = list() - switch(choice) - if("Zealot's Blindfold") - pickedtype += /obj/item/clothing/glasses/hud/health/night/cultblind - if("Veil Walker Set") - pickedtype += /obj/item/cult_shift - pickedtype += /obj/item/flashlight/flare/culttorch - else - return - if(src && !QDELETED(src) && anchored && pickedtype.len && Adjacent(user) && !user.incapacitated() && iscultist(user) && cooldowntime <= world.time) - cooldowntime = world.time + 2400 - for(var/N in pickedtype) - new N(get_turf(src)) - to_chat(user, "You summon the [choice] from the archives!") - -/obj/effect/gateway - name = "gateway" - desc = "You're pretty sure that abyss is staring back." - icon = 'icons/obj/cult.dmi' - icon_state = "hole" - density = TRUE - anchored = TRUE - -/obj/effect/gateway/singularity_act() - return - -/obj/effect/gateway/singularity_pull() - return diff --git a/code/modules/antagonists/cult/cult_turf_overlay.dm b/code/modules/antagonists/cult/cult_turf_overlay.dm deleted file mode 100644 index 2e950326bf8a..000000000000 --- a/code/modules/antagonists/cult/cult_turf_overlay.dm +++ /dev/null @@ -1,32 +0,0 @@ -//an "overlay" used by clockwork walls and floors to appear normal to mesons. -/obj/effect/cult_turf/overlay - mouse_opacity = MOUSE_OPACITY_TRANSPARENT - var/atom/linked - -/obj/effect/cult_turf/overlay/examine(mob/user) - if(linked) - linked.examine(user) - -/obj/effect/cult_turf/overlay/ex_act() - return FALSE - -/obj/effect/cult_turf/overlay/singularity_act() - return -/obj/effect/cult_turf/overlay/singularity_pull() - return - -/obj/effect/cult_turf/overlay/singularity_pull(S, current_size) - return - -/obj/effect/cult_turf/overlay/Destroy() - if(linked) - linked = null - . = ..() - -/obj/effect/cult_turf/overlay/floor - icon = 'icons/turf/floors.dmi' - icon_state = "clockwork_floor" - layer = TURF_LAYER - -/obj/effect/cult_turf/overlay/floor/bloodcult - icon_state = "cult" diff --git a/code/modules/antagonists/cult/rune_spawn_action.dm b/code/modules/antagonists/cult/rune_spawn_action.dm deleted file mode 100644 index 2829141405dd..000000000000 --- a/code/modules/antagonists/cult/rune_spawn_action.dm +++ /dev/null @@ -1,115 +0,0 @@ -//after a delay, creates a rune below you. for constructs creating runes. -/datum/action/innate/cult/create_rune - name = "Summon Rune" - desc = "Summons a rune" - background_icon_state = "bg_demon" - var/obj/effect/rune/rune_type - var/cooldown = 0 - var/base_cooldown = 1800 - var/scribe_time = 60 - var/damage_interrupt = TRUE - var/action_interrupt = TRUE - var/obj/effect/temp_visual/cult/rune_spawn/rune_word_type - var/obj/effect/temp_visual/cult/rune_spawn/rune_innerring_type - var/obj/effect/temp_visual/cult/rune_spawn/rune_center_type - var/rune_color - -/datum/action/innate/cult/create_rune/IsAvailable() - if(!rune_type || cooldown > world.time) - return FALSE - return ..() - -/datum/action/innate/cult/create_rune/proc/turf_check(turf/T) - if(!T) - return FALSE - if(isspaceturf(T)) - to_chat(owner, "You cannot scribe runes in space!") - return FALSE - if(locate(/obj/effect/rune) in T) - to_chat(owner, "There is already a rune here.") - return FALSE - return TRUE - - -/datum/action/innate/cult/create_rune/Activate() - var/turf/T = get_turf(owner) - if(turf_check(T)) - var/chosen_keyword - if(initial(rune_type.req_keyword)) - chosen_keyword = stripped_input(owner, "Enter a keyword for the new rune.", "Words of Power") - if(!chosen_keyword) - return - //the outer ring is always the same across all runes - var/obj/effect/temp_visual/cult/rune_spawn/R1 = new(T, scribe_time, rune_color) - //the rest are not always the same, so we need types for em - var/obj/effect/temp_visual/cult/rune_spawn/R2 - if(rune_word_type) - R2 = new rune_word_type(T, scribe_time, rune_color) - var/obj/effect/temp_visual/cult/rune_spawn/R3 - if(rune_innerring_type) - R3 = new rune_innerring_type(T, scribe_time, rune_color) - var/obj/effect/temp_visual/cult/rune_spawn/R4 - if(rune_center_type) - R4 = new rune_center_type(T, scribe_time, rune_color) - - cooldown = base_cooldown + world.time - owner.update_action_buttons_icon() - addtimer(CALLBACK(owner, TYPE_PROC_REF(/mob, update_action_buttons_icon)), base_cooldown) - var/list/health - if(damage_interrupt && isliving(owner)) - var/mob/living/L = owner - health = list("health" = L.health) - var/scribe_mod = scribe_time - if(istype(T, /turf/open/floor/engine/cult)) - scribe_mod *= 0.5 - playsound(T, 'sound/magic/enter_blood.ogg', 100, FALSE) - if(do_after(owner, scribe_mod, target = owner, extra_checks = CALLBACK(owner, TYPE_PROC_REF(/mob, break_do_after_checks), health, action_interrupt))) - var/obj/effect/rune/new_rune = new rune_type(owner.loc) - new_rune.keyword = chosen_keyword - else - qdel(R1) - if(R2) - qdel(R2) - if(R3) - qdel(R3) - if(R4) - qdel(R4) - cooldown = 0 - owner.update_action_buttons_icon() - -//teleport rune -/datum/action/innate/cult/create_rune/tele - name = "Summon Teleport Rune" - desc = "Summons a teleport rune to your location, as though it has been there all along..." - button_icon_state = "telerune" - rune_type = /obj/effect/rune/teleport - rune_word_type = /obj/effect/temp_visual/cult/rune_spawn/rune2 - rune_innerring_type = /obj/effect/temp_visual/cult/rune_spawn/rune2/inner - rune_center_type = /obj/effect/temp_visual/cult/rune_spawn/rune2/center - rune_color = RUNE_COLOR_TELEPORT - -/datum/action/innate/cult/create_rune/wall - name = "Summon Barrier Rune" - desc = "Summons an active barrier rune to your location, as though it has been there all along..." - button_icon_state = "barrier" - rune_type = /obj/effect/rune/wall - rune_word_type = /obj/effect/temp_visual/cult/rune_spawn/rune4 - rune_innerring_type = /obj/effect/temp_visual/cult/rune_spawn/rune4/inner - rune_center_type = /obj/effect/temp_visual/cult/rune_spawn/rune4/center - rune_color = RUNE_COLOR_DARKRED - -/datum/action/innate/cult/create_rune/wall/Activate() - . = ..() - var/obj/effect/rune/wall/W = locate(/obj/effect/rune/wall) in owner.loc - if(W) - W.spread_density() - -/datum/action/innate/cult/create_rune/revive - name = "Summon Revive Rune" - desc = "Summons a revive rune to your location, as though it has been there all along..." - button_icon_state = "revive" - rune_type = /obj/effect/rune/raise_dead - rune_word_type = /obj/effect/temp_visual/cult/rune_spawn/rune1 - rune_innerring_type = /obj/effect/temp_visual/cult/rune_spawn/rune1/inner - rune_center_type = /obj/effect/temp_visual/cult/rune_spawn/rune1/center - rune_color = RUNE_COLOR_MEDIUMRED diff --git a/code/modules/antagonists/cult/runes.dm b/code/modules/antagonists/cult/runes.dm deleted file mode 100644 index 3382672071cc..000000000000 --- a/code/modules/antagonists/cult/runes.dm +++ /dev/null @@ -1,1029 +0,0 @@ -GLOBAL_LIST_EMPTY(sacrificed) //a mixed list of minds and mobs -GLOBAL_LIST(rune_types) //Every rune that can be drawn by ritual daggers -GLOBAL_LIST_EMPTY(teleport_runes) -GLOBAL_LIST_EMPTY(wall_runes) -/* - -This file contains runes. -Runes are used by the cult to cause many different effects and are paramount to their success. -They are drawn with a ritual dagger in blood, and are distinguishable to cultists and normal crew by examining. -Fake runes can be drawn in crayon to fool people. -Runes can either be invoked by one's self or with many different cultists. Each rune has a specific incantation that the cultists will say when invoking it. - - -*/ - -/obj/effect/rune - name = "rune" - var/cultist_name = "basic rune" - desc = "An odd collection of symbols drawn in what seems to be blood." - var/cultist_desc = "a basic rune with no function." //This is shown to cultists who examine the rune in order to determine its true purpose. - anchored = TRUE - icon = 'icons/obj/rune.dmi' - icon_state = "1" - resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF - layer = SIGIL_LAYER - color = RUNE_COLOR_RED - - var/invocation = "Aiy ele-mayo!" //This is said by cultists when the rune is invoked. - var/req_cultists = 1 //The amount of cultists required around the rune to invoke it. If only 1, any cultist can invoke it. - var/req_cultists_text //if we have a description override for required cultists to invoke - var/rune_in_use = FALSE // Used for some runes, this is for when you want a rune to not be usable when in use. - - var/scribe_delay = 40 //how long the rune takes to create - var/scribe_damage = 0.1 //how much damage you take doing it - var/invoke_damage = 0 //how much damage invokers take when invoking it - var/construct_invoke = TRUE //if constructs can invoke it - - var/req_keyword = 0 //If the rune requires a keyword - go figure amirite - var/keyword //The actual keyword for the rune - -/obj/effect/rune/Initialize(mapload, set_keyword) - . = ..() - if(set_keyword) - keyword = set_keyword - var/image/I = image(icon = 'icons/effects/blood.dmi', icon_state = null, loc = src) - I.override = TRUE - add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/silicons, "cult_runes", I) - -/obj/effect/rune/examine(mob/user) - . = ..() - if(iscultist(user) || user.stat == DEAD) //If they're a cultist or a ghost, tell them the effects - . += "Name: [cultist_name]\n"+\ - "Effects: [capitalize(cultist_desc)]\n"+\ - "Required Acolytes: [req_cultists_text ? "[req_cultists_text]":"[req_cultists]"]" - if(req_keyword && keyword) - . += "Keyword: [keyword]" - -/obj/effect/rune/attack_hand(mob/living/user) - . = ..() - if(.) - return - if(!iscultist(user)) - to_chat(user, "You aren't able to understand the words of [src].") - return - var/list/invokers = can_invoke(user) - if(invokers.len >= req_cultists) - invoke(invokers) - else - to_chat(user, "You need [req_cultists - invokers.len] more adjacent cultists to use this rune in such a manner.") - fail_invoke() - -/obj/effect/rune/attack_animal(mob/living/simple_animal/M) - if(istype(M, /mob/living/simple_animal/shade) || istype(M, /mob/living/simple_animal/hostile/construct)) - if(istype(M, /mob/living/simple_animal/hostile/construct/wraith/angelic) || istype(M, /mob/living/simple_animal/hostile/construct/juggernaut/angelic) || istype(M, /mob/living/simple_animal/hostile/construct/artificer/angelic)) - to_chat(M, "You purge the rune!") - qdel(src) - else if(construct_invoke || !iscultist(M)) //if you're not a cult construct we want the normal fail message - attack_hand(M) - else - to_chat(M, "You are unable to invoke the rune!") - -/obj/effect/rune/proc/conceal() //for talisman of revealing/hiding - visible_message("[src] fades away.") - invisibility = INVISIBILITY_OBSERVER - alpha = 100 //To help ghosts distinguish hidden runes - -/obj/effect/rune/proc/reveal() //for talisman of revealing/hiding - invisibility = 0 - visible_message("[src] suddenly appears!") - alpha = initial(alpha) - -/* - -There are a few different procs each rune runs through when a cultist activates it. -can_invoke() is called when a cultist activates the rune with an empty hand. If there are multiple cultists, this rune determines if the required amount is nearby. -invoke() is the rune's actual effects. -fail_invoke() is called when the rune fails, via not enough people around or otherwise. Typically this just has a generic 'fizzle' effect. -structure_check() searches for nearby cultist structures required for the invocation. Proper structures are pylons, forges, archives, and altars. - -*/ - -/obj/effect/rune/proc/can_invoke(mob/living/user=null) - //This proc determines if the rune can be invoked at the time. If there are multiple required cultists, it will find all nearby cultists. - var/list/invokers = list() //people eligible to invoke the rune - if(user) - invokers += user - if(req_cultists > 1 || istype(src, /obj/effect/rune/convert)) - var/list/things_in_range = range(1, src) - for(var/mob/living/L in things_in_range) - if(iscultist(L)) - if(L == user) - continue - if(ishuman(L)) - var/mob/living/carbon/human/H = L - if((HAS_TRAIT(H, TRAIT_MUTE)) || H.silent) - continue - if(L.stat) - continue - invokers += L - return invokers - -/obj/effect/rune/proc/invoke(list/invokers) - //This proc contains the effects of the rune as well as things that happen afterwards. If you want it to spawn an object and then delete itself, have both here. - for(var/M in invokers) - if(isliving(M)) - var/mob/living/L = M - if(invocation) - L.say(invocation, language = /datum/language/common, ignore_spam = TRUE, forced = "cult invocation") - if(invoke_damage) - L.apply_damage(invoke_damage, BRUTE) - to_chat(L, "[src] saps your strength!") - else if(istype(M, /obj/item/toy/plush/narplush)) - var/obj/item/toy/plush/narplush/P = M - P.visible_message("[P] squeaks loudly!") - do_invoke_glow() - -/obj/effect/rune/proc/do_invoke_glow() - set waitfor = FALSE - animate(src, transform = matrix()*2, alpha = 0, time = 5, flags = ANIMATION_END_NOW) //fade out - sleep(5) - animate(src, transform = matrix(), alpha = 255, time = 0, flags = ANIMATION_END_NOW) - -/obj/effect/rune/proc/fail_invoke() - //This proc contains the effects of a rune if it is not invoked correctly, through either invalid wording or not enough cultists. By default, it's just a basic fizzle. - visible_message("The markings pulse with a small flash of red light, then fall dark.") - var/oldcolor = color - color = rgb(255, 0, 0) - animate(src, color = oldcolor, time = 5) - addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 5) - -//Malformed Rune: This forms if a rune is not drawn correctly. Invoking it does nothing but hurt the user. -/obj/effect/rune/malformed - cultist_name = "malformed rune" - cultist_desc = "a senseless rune written in gibberish. No good can come from invoking this." - invocation = "Ra'sha yoka!" - invoke_damage = 30 - -/obj/effect/rune/malformed/Initialize(mapload, set_keyword) - . = ..() - icon_state = "[rand(1,7)]" - color = rgb(rand(0,255), rand(0,255), rand(0,255)) - -/obj/effect/rune/malformed/invoke(list/invokers) - ..() - qdel(src) - -//Rite of Offering: Converts or sacrifices a target. -/obj/effect/rune/convert - cultist_name = "Offer" - cultist_desc = "offers a noncultist above it to Nar'Sie, either converting them or sacrificing them." - req_cultists_text = "2 for conversion, 3 for living sacrifices and sacrifice targets." - invocation = "Mah'weyh pleggh at e'ntrath!" - icon_state = "3" - color = RUNE_COLOR_OFFER - req_cultists = 1 - rune_in_use = FALSE - -/obj/effect/rune/convert/do_invoke_glow() - return - -/obj/effect/rune/convert/invoke(list/invokers) - if(rune_in_use) - return - var/list/myriad_targets = list() - var/turf/T = get_turf(src) - for(var/mob/living/M in T) - if(!iscultist(M)) - myriad_targets |= M - if(!myriad_targets.len) - fail_invoke() - log_game("Offer rune failed - no eligible targets") - return - rune_in_use = TRUE - visible_message("[src] pulses blood red!") - var/oldcolor = color - color = RUNE_COLOR_DARKRED - var/mob/living/L = pick(myriad_targets) - - var/mob/living/F = invokers[1] - var/datum/antagonist/cult/C = F.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - var/datum/team/cult/Cult_team = C.cult_team - var/is_convertable = is_convertable_to_cult(L,C.cult_team) - if(L.stat != DEAD && is_convertable) - invocation = "Mah'weyh pleggh at e'ntrath!" - ..() - if(is_convertable) - do_convert(L, invokers) - else - invocation = "Barhah hra zar'garis!" - ..() - do_sacrifice(L, invokers) - animate(src, color = oldcolor, time = 5) - addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, update_atom_colour)), 5) - Cult_team.check_size() // Triggers the eye glow or aura effects if the cult has grown large enough relative to the crew - rune_in_use = FALSE - -/obj/effect/rune/convert/proc/do_convert(mob/living/convertee, list/invokers) - if(invokers.len < 2) - for(var/M in invokers) - to_chat(M, "You need at least two invokers to convert [convertee]!") - log_game("Offer rune failed - tried conversion with one invoker") - return 0 - if(convertee.anti_magic_check(TRUE, TRUE, FALSE, 0)) //Not chargecost because it can be spammed - for(var/M in invokers) - to_chat(M, "Something is shielding [convertee]'s mind!") - log_game("Offer rune failed - convertee had anti-magic") - return 0 - var/brutedamage = convertee.getBruteLoss() - var/burndamage = convertee.getFireLoss() - if(brutedamage || burndamage) - convertee.adjustBruteLoss(-(brutedamage * 0.75)) - convertee.adjustFireLoss(-(burndamage * 0.75)) - convertee.visible_message( - "[convertee] writhes in pain [brutedamage || burndamage ? "even as [convertee.p_their()] wounds heal and close" : "as the markings below [convertee.p_them()] glow a bloody red"]!", // Hello there buddy! Come here often? I hope you were wondering wtf this string was - "AAAAAAAAAAAAAA-") - SSticker.mode.add_cultist(convertee.mind, 1) - convertee.mind.special_role = ROLE_CULTIST - to_chat(convertee, "Your blood pulses. Your head throbs. The world goes red. All at once you are aware of a horrible, horrible, truth. The veil of reality has been ripped away \ - and something evil takes root.") - to_chat(convertee, "Assist your new compatriots in their dark dealings. Your goal is theirs, and theirs is yours. You serve the Geometer above all else. Bring it back.\ - ") - if(ishuman(convertee)) - var/mob/living/carbon/human/H = convertee - H.uncuff() - H.stuttering = 0 - H.cultslurring = 0 - if(prob(1) || SSevents.holidays && SSevents.holidays[APRIL_FOOLS]) - H.say("You son of a bitch! I'm in.", forced = "That son of a bitch! They're in.") - return 1 - -/obj/effect/rune/convert/proc/do_sacrifice(mob/living/sacrificial, list/invokers) - var/mob/living/first_invoker = invokers[1] - if(!first_invoker) - return FALSE - var/datum/antagonist/cult/C = first_invoker.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - if(!C) - return - - - var/big_sac = FALSE - if((((ishuman(sacrificial) || iscyborg(sacrificial)) && sacrificial.stat != DEAD) || C.cult_team.is_sacrifice_target(sacrificial.mind)) && invokers.len < 3) - for(var/M in invokers) - to_chat(M, "[sacrificial] is too greatly linked to the world! You need three acolytes!") - log_game("Offer rune failed - not enough acolytes and target is living or sac target") - return FALSE - if(sacrificial.mind) - GLOB.sacrificed += sacrificial.mind - for(var/datum/objective/sacrifice/sac_objective in C.cult_team.objectives) - if(sac_objective.target == sacrificial.mind) - sac_objective.sacced = TRUE - sac_objective.update_explanation_text() - big_sac = TRUE - else - GLOB.sacrificed += sacrificial - - new /obj/effect/temp_visual/cult/sac(get_turf(src)) - for(var/M in invokers) - if(big_sac) - to_chat(M, "\"Yes! This is the one I desire! You have done well.\"") - else - if(ishuman(sacrificial) || iscyborg(sacrificial)) - to_chat(M, "\"I accept this sacrifice.\"") - else - to_chat(M, "\"I accept this meager sacrifice.\"") - - var/obj/item/soulstone/stone = new /obj/item/soulstone(get_turf(src)) - if(sacrificial.mind) - stone.invisibility = INVISIBILITY_MAXIMUM //so it's not picked up during transfer_soul() - stone.transfer_soul("FORCE", sacrificial, usr) - stone.invisibility = 0 - - if(sacrificial) - if(iscyborg(sacrificial)) - playsound(sacrificial, 'sound/magic/disable_tech.ogg', 100, TRUE) - sacrificial.dust() //To prevent the MMI from remaining - else - playsound(sacrificial, 'sound/magic/disintegrate.ogg', 100, TRUE) - sacrificial.gib() - return TRUE - - - -/obj/effect/rune/empower - cultist_name = "Empower" - cultist_desc = "allows cultists to prepare greater amounts of blood magic at far less of a cost." - invocation = "H'drak v'loso, mir'kanas verbot!" - icon_state = "3" - color = RUNE_COLOR_TALISMAN - construct_invoke = FALSE - -/obj/effect/rune/empower/invoke(list/invokers) - . = ..() - var/mob/living/user = invokers[1] //the first invoker is always the user - for(var/datum/action/innate/cult/blood_magic/BM in user.actions) - BM.Activate() - -/obj/effect/rune/teleport - cultist_name = "Teleport" - cultist_desc = "warps everything above it to another chosen teleport rune." - invocation = "Sas'so c'arta forbici!" - icon_state = "2" - color = RUNE_COLOR_TELEPORT - req_keyword = TRUE - light_power = 4 - var/obj/effect/temp_visual/cult/portal/inner_portal //The portal "hint" for off-station teleportations - var/obj/effect/temp_visual/cult/rune_spawn/rune2/outer_portal - var/listkey - - -/obj/effect/rune/teleport/Initialize(mapload, set_keyword) - . = ..() - var/area/A = get_area(src) - var/locname = initial(A.name) - listkey = set_keyword ? "[set_keyword] [locname]":"[locname]" - GLOB.teleport_runes += src - -/obj/effect/rune/teleport/Destroy() - GLOB.teleport_runes -= src - return ..() - -/obj/effect/rune/teleport/invoke(list/invokers) - var/mob/living/user = invokers[1] //the first invoker is always the user - var/list/potential_runes = list() - var/list/teleportnames = list() - for(var/R in GLOB.teleport_runes) - var/obj/effect/rune/teleport/T = R - if(T != src && !is_away_level(T)) - potential_runes[avoid_assoc_duplicate_keys(T.listkey, teleportnames)] = T - - if(!potential_runes.len) - to_chat(user, "There are no valid runes to teleport to!") - log_game("Teleport rune failed - no other teleport runes") - fail_invoke() - return - - var/turf/T = get_turf(src) - if(is_away_level(T)) - to_chat(user, "You are not in the right dimension!") - log_game("Teleport rune failed - user in away mission") - fail_invoke() - return - - var/input_rune_key = input(user, "Choose a rune to teleport to.", "Rune to Teleport to") as null|anything in potential_runes //we know what key they picked - var/obj/effect/rune/teleport/actual_selected_rune = potential_runes[input_rune_key] //what rune does that key correspond to? - if(!Adjacent(user) || !src || QDELETED(src) || user.incapacitated() || !actual_selected_rune) - fail_invoke() - return - - var/turf/target = get_turf(actual_selected_rune) - if(target.is_blocked_turf(TRUE)) - to_chat(user, "The target rune is blocked. Attempting to teleport to it would be massively unwise.") - fail_invoke() - return - var/movedsomething = FALSE - var/moveuserlater = FALSE - var/movesuccess = FALSE - for(var/atom/movable/A in T) - if(istype(A, /obj/effect/dummy/phased_mob)) - continue - if(ismob(A)) - if(!isliving(A)) //Let's not teleport ghosts and AI eyes. - continue - if(ishuman(A)) - new /obj/effect/temp_visual/dir_setting/cult/phase/out(T, A.dir) - new /obj/effect/temp_visual/dir_setting/cult/phase(target, A.dir) - if(A == user) - moveuserlater = TRUE - movedsomething = TRUE - continue - if(!A.anchored) - movedsomething = TRUE - if(do_teleport(A, target, channel = TELEPORT_CHANNEL_CULT)) - movesuccess = TRUE - if(movedsomething) - ..() - if(moveuserlater) - if(do_teleport(user, target, channel = TELEPORT_CHANNEL_CULT)) - movesuccess = TRUE - if(movesuccess) - visible_message("There is a sharp crack of inrushing air, and everything above the rune disappears!", null, "You hear a sharp crack.") - to_chat(user, "You[moveuserlater ? "r vision blurs, and you suddenly appear somewhere else":" send everything above the rune away"].") - else - to_chat(user, "You[moveuserlater ? "r vision blurs briefly, but nothing happens":" try send everything above the rune away, but the teleportation fails"].") - var/area/A = get_area(T) - if(initial(A.name) == "Space") - actual_selected_rune.handle_portal("space", T) - if(movesuccess) - target.visible_message("There is a boom of outrushing air as something appears above the rune!", null, "You hear a boom.") - else - fail_invoke() - -/obj/effect/rune/teleport/proc/handle_portal(portal_type, turf/origin) - var/turf/T = get_turf(src) - close_portal() // To avoid stacking descriptions/animations - playsound(T, pick('sound/effects/sparks1.ogg', 'sound/effects/sparks2.ogg', 'sound/effects/sparks3.ogg', 'sound/effects/sparks4.ogg'), 100, TRUE, 14) - inner_portal = new /obj/effect/temp_visual/cult/portal(T) - if(portal_type == "space") - set_light_color(color) - desc += "
    A tear in reality reveals a black void interspersed with dots of light... something recently teleported here from space.
    The void feels like it's trying to pull you to the [dir2text(get_dir(T, origin))]!
    " - else - inner_portal.icon_state = "lava" - set_light_color(LIGHT_COLOR_FIRE) - desc += "
    A tear in reality reveals a coursing river of lava... something recently teleported here from the Lavaland Mines!" - outer_portal = new(T, 600, color) - light_range = 4 - update_light() - addtimer(CALLBACK(src, PROC_REF(close_portal)), 600, TIMER_UNIQUE) - -/obj/effect/rune/teleport/proc/close_portal() - qdel(inner_portal) - qdel(outer_portal) - desc = initial(desc) - light_range = 0 - update_light() - -//Ritual of Dimensional Rending: Calls forth the avatar of Nar'Sie upon the station. -/obj/effect/rune/narsie - cultist_name = "Nar'Sie" - cultist_desc = "tears apart dimensional barriers, calling forth the Geometer. Requires 9 invokers." - invocation = "TOK-LYR RQA-NAP G'OLT-ULOFT!!" - req_cultists = 9 - icon = 'icons/effects/96x96.dmi' - color = RUNE_COLOR_DARKRED - icon_state = "rune_large" - pixel_x = -32 //So the big ol' 96x96 sprite shows up right - pixel_y = -32 - scribe_delay = 500 //how long the rune takes to create - scribe_damage = 40.1 //how much damage you take doing it - var/used = FALSE - -/obj/effect/rune/narsie/Initialize(mapload, set_keyword) - . = ..() - SSpoints_of_interest.make_point_of_interest(src) - -/obj/effect/rune/narsie/Destroy() - SSpoints_of_interest.remove_point_of_interest(src) - . = ..() - -/obj/effect/rune/narsie/conceal() //can't hide this, and you wouldn't want to - return - -/obj/effect/rune/narsie/invoke(list/invokers) - if(used) - return - var/mob/living/user = invokers[1] - var/datum/antagonist/cult/user_antag = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - var/datum/objective/eldergod/summon_objective = locate() in user_antag.cult_team.objectives - var/area/place = get_area(src) - if(!(place in summon_objective.summon_spots)) - to_chat(user, "The Geometer can only be summoned where the veil is weak - in [english_list(summon_objective.summon_spots)]!") - return - if(locate(/obj/singularity/narsie) in SSpoints_of_interest.other_points_of_interest) - for(var/M in invokers) - to_chat(M, "Nar'Sie is already on this plane!") - log_game("Nar'Sie rune failed - already summoned") - return - //BEGIN THE SUMMONING - used = TRUE - ..() - sound_to_playing_players('sound/effects/dimensional_rend.ogg') - var/turf/T = get_turf(src) - sleep(40) - if(src) - color = RUNE_COLOR_RED - new /obj/singularity/narsie/large/cult(T) //Causes Nar'Sie to spawn even if the rune has been removed - -//Rite of Resurrection: Requires a dead or inactive cultist. When reviving the dead, you can only perform one revival for every three sacrifices your cult has carried out. -/obj/effect/rune/raise_dead - cultist_name = "Revive" - cultist_desc = "requires a dead, mindless, or inactive cultist placed upon the rune. For each three bodies sacrificed to the dark patron, one body will be mended and their mind awoken" - invocation = "Pasnar val'keriam usinar. Savrae ines amutan. Yam'toth remium il'tarat!" //Depends on the name of the user - see below - icon_state = "1" - color = RUNE_COLOR_MEDIUMRED - var/static/sacrifices_used = -SOULS_TO_REVIVE // Cultists get one "free" revive - -/obj/effect/rune/raise_dead/examine(mob/user) - . = ..() - if(iscultist(user) || user.stat == DEAD) - . += "Sacrifices unrewarded: [LAZYLEN(GLOB.sacrificed) - sacrifices_used]" - -/obj/effect/rune/raise_dead/invoke(list/invokers) - var/turf/T = get_turf(src) - var/mob/living/mob_to_revive - var/list/potential_revive_mobs = list() - var/mob/living/user = invokers[1] - if(rune_in_use) - return - rune_in_use = TRUE - for(var/mob/living/M in T.contents) - if(iscultist(M) && (M.stat == DEAD || !M.client || M.client.is_afk())) - potential_revive_mobs |= M - if(!potential_revive_mobs.len) - to_chat(user, "There are no dead cultists on the rune!") - log_game("Raise Dead rune failed - no cultists to revive") - fail_invoke() - return - if(potential_revive_mobs.len > 1) - mob_to_revive = input(user, "Choose a cultist to revive.", "Cultist to Revive") as null|anything in potential_revive_mobs - else - mob_to_revive = potential_revive_mobs[1] - if(QDELETED(src) || !validness_checks(mob_to_revive, user)) - fail_invoke() - return - if(user.name == "Herbert West") - invocation = "To life, to life, I bring them!" - else - invocation = initial(invocation) - ..() - if(mob_to_revive.stat == DEAD) - var/diff = LAZYLEN(GLOB.sacrificed) - SOULS_TO_REVIVE - sacrifices_used - if(diff < 0) - to_chat(user, "Your cult must carry out [abs(diff)] more sacrifice\s before it can revive another cultist!") - fail_invoke() - return - sacrifices_used += SOULS_TO_REVIVE - mob_to_revive.revive(full_heal = TRUE, admin_revive = TRUE) //This does remove traits and such, but the rune might actually see some use because of it! - mob_to_revive.grab_ghost() - if(!mob_to_revive.client || mob_to_revive.client.is_afk()) - set waitfor = FALSE - var/list/mob/dead/observer/candidates = pollCandidatesForMob("Do you want to play as a [mob_to_revive.name], an inactive blood cultist?", ROLE_CULTIST, null, ROLE_CULTIST, 50, mob_to_revive) - if(LAZYLEN(candidates)) - var/mob/dead/observer/C = pick(candidates) - to_chat(mob_to_revive.mind, "Your physical form has been taken over by another soul due to your inactivity! Ahelp if you wish to regain your form.") - message_admins("[key_name_admin(C)] has taken control of ([key_name_admin(mob_to_revive)]) to replace an AFK player.") - mob_to_revive.ghostize(0) - mob_to_revive.key = C.key - else - fail_invoke() - return - SEND_SOUND(mob_to_revive, 'sound/ambience/antag/bloodcult.ogg') - to_chat(mob_to_revive, "\"PASNAR SAVRAE YAM'TOTH. Arise.\"") - mob_to_revive.visible_message( - "[mob_to_revive] draws in a huge breath, red light shining from [mob_to_revive.p_their()] eyes.", \ - "You awaken suddenly from the void. You're alive!") - rune_in_use = FALSE - -/obj/effect/rune/raise_dead/proc/validness_checks(mob/living/target_mob, mob/living/user) - var/turf/T = get_turf(src) - if(QDELETED(user)) - return FALSE - if(!Adjacent(user) || user.incapacitated()) - return FALSE - if(QDELETED(target_mob)) - return FALSE - if(!(target_mob in T.contents)) - to_chat(user, "The cultist to revive has been moved!") - log_game("Raise Dead rune failed - revival target moved") - return FALSE - return TRUE - -/obj/effect/rune/raise_dead/fail_invoke() - ..() - rune_in_use = FALSE - for(var/mob/living/M in range(1,src)) - if(iscultist(M) && M.stat == DEAD) - M.visible_message("[M] twitches.") - -//Rite of the Corporeal Shield: When invoked, becomes solid and cannot be passed. Invoke again to undo. -/obj/effect/rune/wall - cultist_name = "Barrier" - cultist_desc = "when invoked, makes a temporary invisible wall to block passage. Can be invoked again to reverse this." - invocation = "Khari'd! Eske'te tannin!" - icon_state = "4" - color = RUNE_COLOR_DARKRED - CanAtmosPass = ATMOS_PASS_DENSITY - var/datum/timedevent/density_timer - var/recharging = FALSE - -/obj/effect/rune/wall/Initialize(mapload, set_keyword) - . = ..() - GLOB.wall_runes += src - -/obj/effect/rune/wall/examine(mob/user) - . = ..() - if(density && iscultist(user)) - if(density_timer) - . += "The air above this rune has hardened into a barrier that will last [DisplayTimeText(density_timer.timeToRun - world.time)]." - -/obj/effect/rune/wall/Destroy() - GLOB.wall_runes -= src - return ..() - -/obj/effect/rune/wall/BlockThermalConductivity() - return density - -/obj/effect/rune/wall/invoke(list/invokers) - if(recharging) - return - var/mob/living/user = invokers[1] - ..() - density = !density - update_state() - if(density) - spread_density() - var/carbon_user = iscarbon(user) - user.visible_message( - "[user] [carbon_user ? "places [user.p_their()] hands on":"stares intently at"] [src], and [density ? "the air above it begins to shimmer" : "the shimmer above it fades"].", \ - "You channel [carbon_user ? "your life ":""]energy into [src], [density ? "temporarily preventing" : "allowing"] passage above it.") - if(carbon_user) - var/mob/living/carbon/C = user - C.apply_damage(2, BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) - -/obj/effect/rune/wall/proc/spread_density() - for(var/R in GLOB.wall_runes) - var/obj/effect/rune/wall/W = R - if(W.virtual_z() == virtual_z() && get_dist(src, W) <= 2 && !W.density && !W.recharging) - W.density = TRUE - W.update_state() - W.spread_density() - density_timer = addtimer(CALLBACK(src, PROC_REF(lose_density)), 3000, TIMER_STOPPABLE) - -/obj/effect/rune/wall/proc/lose_density() - if(density) - recharging = TRUE - density = FALSE - update_state() - var/oldcolor = color - add_atom_colour("#696969", FIXED_COLOUR_PRIORITY) - animate(src, color = oldcolor, time = 50, easing = EASE_IN) - addtimer(CALLBACK(src, PROC_REF(recharge)), 50) - -/obj/effect/rune/wall/proc/recharge() - recharging = FALSE - add_atom_colour(RUNE_COLOR_MEDIUMRED, FIXED_COLOUR_PRIORITY) - -/obj/effect/rune/wall/proc/update_state() - deltimer(density_timer) - air_update_turf(TRUE) - if(density) - var/mutable_appearance/shimmer = mutable_appearance('icons/effects/effects.dmi', "barriershimmer", ABOVE_MOB_LAYER) - shimmer.appearance_flags |= RESET_COLOR - shimmer.alpha = 60 - shimmer.color = "#701414" - add_overlay(shimmer) - add_atom_colour(RUNE_COLOR_RED, FIXED_COLOUR_PRIORITY) - else - cut_overlays() - add_atom_colour(RUNE_COLOR_MEDIUMRED, FIXED_COLOUR_PRIORITY) - -//Rite of Joined Souls: Summons a single cultist. -/obj/effect/rune/summon - cultist_name = "Summon Cultist" - cultist_desc = "summons a single cultist to the rune. Requires 2 invokers." - invocation = "N'ath reth sh'yro eth d'rekkathnor!" - req_cultists = 2 - invoke_damage = 10 - icon_state = "3" - color = RUNE_COLOR_SUMMON - -/obj/effect/rune/summon/invoke(list/invokers) - var/mob/living/user = invokers[1] - var/list/cultists = list() - for(var/datum/mind/M in SSticker.mode.cult) - if(!(M.current in invokers) && M.current && M.current.stat != DEAD) - cultists |= M.current - var/mob/living/cultist_to_summon = input(user, "Who do you wish to call to [src]?", "Followers of the Geometer") as null|anything in cultists - if(!Adjacent(user) || !src || QDELETED(src) || user.incapacitated()) - return - if(!cultist_to_summon) - to_chat(user, "You require a summoning target!") - fail_invoke() - log_game("Summon Cultist rune failed - no target") - return - if(cultist_to_summon.stat == DEAD) - to_chat(user, "[cultist_to_summon] has died!") - fail_invoke() - log_game("Summon Cultist rune failed - target died") - return - if(cultist_to_summon.pulledby || cultist_to_summon.buckled) - to_chat(user, "[cultist_to_summon] is being held in place!") - fail_invoke() - log_game("Summon Cultist rune failed - target restrained") - return - if(!iscultist(cultist_to_summon)) - to_chat(user, "[cultist_to_summon] is not a follower of the Geometer!") - fail_invoke() - log_game("Summon Cultist rune failed - target was deconverted") - return - if(is_away_level(cultist_to_summon)) - to_chat(user, "[cultist_to_summon] is not in our dimension!") - fail_invoke() - log_game("Summon Cultist rune failed - target in away mission") - return - cultist_to_summon.visible_message( - "[cultist_to_summon] suddenly disappears in a flash of red light!", \ - "Overwhelming vertigo consumes you as you are hurled through the air!") - ..() - visible_message("A foggy shape materializes atop [src] and solidifes into [cultist_to_summon]!") - cultist_to_summon.forceMove(get_turf(src)) - qdel(src) - -//Rite of Boiling Blood: Deals extremely high amounts of damage to non-cultists nearby -/obj/effect/rune/blood_boil - cultist_name = "Boil Blood" - cultist_desc = "boils the blood of non-believers who can see the rune, rapidly dealing extreme amounts of damage. Requires 3 invokers." - invocation = "Dedo ol'btoh!" - icon_state = "4" - color = RUNE_COLOR_BURNTORANGE - light_color = LIGHT_COLOR_LAVA - req_cultists = 3 - invoke_damage = 10 - construct_invoke = FALSE - var/tick_damage = 25 - rune_in_use = FALSE - -/obj/effect/rune/blood_boil/do_invoke_glow() - return - -/obj/effect/rune/blood_boil/invoke(list/invokers) - if(rune_in_use) - return - ..() - rune_in_use = TRUE - var/turf/T = get_turf(src) - visible_message("[src] turns a bright, glowing orange!") - color = "#FC9B54" - set_light(6, 1, color) - for(var/mob/living/L in viewers(T)) - if(!iscultist(L) && L.blood_volume) - var/atom/I = L.anti_magic_check(chargecost = 0) - if(I) - if(isitem(I)) - to_chat(L, "[I] suddenly burns hotly before returning to normal!") - continue - to_chat(L, "Your blood boils in your veins!") - animate(src, color = "#FCB56D", time = 4) - sleep(4) - if(QDELETED(src)) - return - do_area_burn(T, 0.5) - animate(src, color = "#FFDF80", time = 5) - sleep(5) - if(QDELETED(src)) - return - do_area_burn(T, 1) - animate(src, color = "#FFFDF4", time = 6) - sleep(6) - if(QDELETED(src)) - return - do_area_burn(T, 1.5) - new /obj/effect/hotspot(T) - qdel(src) - -/obj/effect/rune/blood_boil/proc/do_area_burn(turf/T, multiplier) - set_light(6, 1, color) - for(var/mob/living/L in viewers(T)) - if(!iscultist(L) && L.blood_volume) - if(L.anti_magic_check(chargecost = 0)) - continue - L.take_overall_damage(tick_damage*multiplier, tick_damage*multiplier) - -//Rite of Spectral Manifestation: Summons a ghost on top of the rune as a cultist human with no items. User must stand on the rune at all times, and takes damage for each summoned ghost. -/obj/effect/rune/manifest - cultist_name = "Spirit Realm" - cultist_desc = "manifests a spirit servant of the Geometer and allows you to ascend as a spirit yourself. The invoker must not move from atop the rune, and will take damage for each summoned spirit." - invocation = "Gal'h'rfikk harfrandid mud'gib!" //how the fuck do you pronounce this - icon_state = "7" - invoke_damage = 10 - construct_invoke = FALSE - color = RUNE_COLOR_DARKRED - var/mob/living/affecting = null - var/ghost_limit = 3 - var/ghosts = 0 - -/obj/effect/rune/manifest/Initialize() - . = ..() - - -/obj/effect/rune/manifest/can_invoke(mob/living/user) - if(!(user in get_turf(src))) - to_chat(user, "You must be standing on [src]!") - fail_invoke() - log_game("Manifest rune failed - user not standing on rune") - return list() - if(user.has_status_effect(STATUS_EFFECT_SUMMONEDGHOST)) - to_chat(user, "Ghosts can't summon more ghosts!") - fail_invoke() - log_game("Manifest rune failed - user is a ghost") - return list() - return ..() - -/obj/effect/rune/manifest/invoke(list/invokers) - . = ..() - var/mob/living/user = invokers[1] - var/turf/T = get_turf(src) - var/choice = alert(user,"You tear open a connection to the spirit realm...",,"Summon a Cult Ghost","Ascend as a Dark Spirit","Cancel") - if(choice == "Summon a Cult Ghost") - if(ghosts >= ghost_limit) - to_chat(user, "You are sustaining too many ghosts to summon more!") - fail_invoke() - log_game("Manifest rune failed - too many summoned ghosts") - return list() - notify_ghosts("Manifest rune invoked in [get_area(src)].", 'sound/effects/ghost2.ogg', source = src, header = "Manifest rune") - var/list/ghosts_on_rune = list() - for(var/mob/dead/observer/O in T) - if(O.client && !is_banned_from(O.ckey, ROLE_CULTIST) && !QDELETED(src) && !(isAdminObserver(O) && (O.client.prefs.toggles & ADMIN_IGNORE_CULT_GHOST)) && !QDELETED(O)) - ghosts_on_rune += O - if(!ghosts_on_rune.len) - to_chat(user, "There are no spirits near [src]!") - fail_invoke() - log_game("Manifest rune failed - no nearby ghosts") - return list() - var/mob/dead/observer/ghost_to_spawn = pick(ghosts_on_rune) - var/mob/living/carbon/human/cult_ghost/new_human = new(T) - new_human.real_name = ghost_to_spawn.real_name - new_human.alpha = 150 //Makes them translucent - new_human.equipOutfit(/datum/outfit/ghost_cultist) //give them armor - new_human.apply_status_effect(STATUS_EFFECT_SUMMONEDGHOST) //ghosts can't summon more ghosts - new_human.see_invisible = SEE_INVISIBLE_OBSERVER - ghosts++ - playsound(src, 'sound/magic/exit_blood.ogg', 50, TRUE) - visible_message("A cloud of red mist forms above [src], and from within steps... a [new_human.gender == FEMALE ? "wo":""]man.") - to_chat(user, "Your blood begins flowing into [src]. You must remain in place and conscious to maintain the forms of those summoned. This will hurt you slowly but surely...") - var/obj/structure/emergency_shield/invoker/N = new(T) - new_human.key = ghost_to_spawn.key - SSticker.mode.add_cultist(new_human.mind, 0) - to_chat(new_human, "You are a servant of the Geometer. You have been made semi-corporeal by the cult of Nar'Sie, and you are to serve them at all costs.") - - while(!QDELETED(src) && !QDELETED(user) && !QDELETED(new_human) && (user in T)) - if(user.stat != CONSCIOUS || HAS_TRAIT(new_human, TRAIT_CRITICAL_CONDITION)) - break - user.apply_damage(0.1, BRUTE) - sleep(1) - - qdel(N) - ghosts-- - if(new_human) - new_human.visible_message( - "[new_human] suddenly dissolves into bones and ashes.", \ - "Your link to the world fades. Your form breaks apart.") - for(var/obj/I in new_human) - new_human.dropItemToGround(I, TRUE) - new_human.dust() - else if(choice == "Ascend as a Dark Spirit") - affecting = user - affecting.add_atom_colour(RUNE_COLOR_DARKRED, ADMIN_COLOUR_PRIORITY) - affecting.visible_message( - "[affecting] freezes statue-still, glowing an unearthly red.", \ - "You see what lies beyond. All is revealed. In this form you find that your voice booms louder and you can mark targets for the entire cult") - var/mob/dead/observer/G = affecting.ghostize(1) - var/datum/action/innate/cult/comm/spirit/CM = new - var/datum/action/innate/cult/ghostmark/GM = new - G.name = "Dark Spirit of [G.name]" - G.color = "red" - CM.Grant(G) - GM.Grant(G) - while(!QDELETED(affecting)) - if(!(affecting in T)) - user.visible_message("A spectral tendril wraps around [affecting] and pulls [affecting.p_them()] back to the rune!") - Beam(affecting, icon_state="drainbeam", time=2) - affecting.forceMove(get_turf(src)) //NO ESCAPE :^) - if(affecting.key) - affecting.visible_message( - "[affecting] slowly relaxes, the glow around [affecting.p_them()] dimming.", \ - "You are re-united with your physical form. [src] releases its hold over you.") - affecting.Paralyze(40) - break - if(affecting.health <= 10) - to_chat(G, "Your body can no longer sustain the connection!") - break - sleep(5) - CM.Remove(G) - GM.Remove(G) - affecting.remove_atom_colour(ADMIN_COLOUR_PRIORITY, RUNE_COLOR_DARKRED) - affecting.grab_ghost() - affecting = null - rune_in_use = FALSE - -/mob/living/carbon/human/cult_ghost/spill_organs(no_brain, no_organs, no_bodyparts) //cult ghosts never drop a brain - no_brain = TRUE - . = ..() - -/mob/living/carbon/human/cult_ghost/getorganszone(zone, subzones = 0) - . = ..() - for(var/obj/item/organ/brain/B in .) //they're not that smart, really - . -= B - - -/obj/effect/rune/apocalypse - cultist_name = "Apocalypse" - cultist_desc = "a harbinger of the end times. Grows in strength with the cult's desperation - but at the risk of... side effects." - invocation = "Ta'gh fara'qha fel d'amar det!" - icon = 'icons/effects/96x96.dmi' - icon_state = "apoc" - pixel_x = -32 - pixel_y = -32 - color = RUNE_COLOR_DARKRED - req_cultists = 3 - scribe_delay = 100 - -/obj/effect/rune/apocalypse/invoke(list/invokers) - if(rune_in_use) - return - . = ..() - var/area/place = get_area(src) - var/mob/living/user = invokers[1] - var/datum/antagonist/cult/user_antag = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - var/datum/objective/eldergod/summon_objective = locate() in user_antag.cult_team.objectives - if(summon_objective.summon_spots.len <= 1) - to_chat(user, "Only one ritual site remains - it must be reserved for the final summoning!") - return - if(!(place in summon_objective.summon_spots)) - to_chat(user, "The Apocalypse rune will remove a ritual site, where Nar'Sie can be summoned, it can only be scribed in [english_list(summon_objective.summon_spots)]!") - return - summon_objective.summon_spots -= place - rune_in_use = TRUE - var/turf/T = get_turf(src) - new /obj/effect/temp_visual/dir_setting/curse/grasp_portal/fading(T) - var/intensity = 0 - for(var/mob/living/M in GLOB.player_list) - if(iscultist(M)) - intensity++ - intensity = max(60, 360 - (360*(intensity/GLOB.player_list.len + 0.3)**2)) //significantly lower intensity for "winning" cults - var/duration = intensity*10 - playsound(T, 'sound/magic/enter_blood.ogg', 100, TRUE) - visible_message("A colossal shockwave of energy bursts from the rune, disintegrating it in the process!") - for(var/mob/living/L in range(src, 3)) - L.Paralyze(30) - empulse(T, 0.42*(intensity), 1) - var/list/images = list() - var/zmatch = T.virtual_z() - var/datum/atom_hud/AH = GLOB.huds[DATA_HUD_SECURITY_ADVANCED] - for(var/mob/living/M in GLOB.alive_mob_list) - if(M.virtual_z() != zmatch) - continue - if(ishuman(M)) - if(!iscultist(M)) - AH.remove_hud_from(M) - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(hudFix), M), duration) - var/image/A = image('icons/mob/cult.dmi',M,"cultist", ABOVE_MOB_LAYER) - A.override = 1 - add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/noncult, "human_apoc", A, NONE) - addtimer(CALLBACK(M, TYPE_PROC_REF(/atom, remove_alt_appearance),"human_apoc",TRUE), duration) - images += A - SEND_SOUND(M, pick(sound('sound/ambience/antag/bloodcult.ogg'),sound('sound/spookoween/ghost_whisper.ogg'),sound('sound/spookoween/ghosty_wind.ogg'))) - else - var/construct = pick("floater","artificer","behemoth") - var/image/B = image('icons/mob/mob.dmi',M,construct, ABOVE_MOB_LAYER) - B.override = 1 - add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/noncult, "mob_apoc", B, NONE) - addtimer(CALLBACK(M, TYPE_PROC_REF(/atom, remove_alt_appearance),"mob_apoc",TRUE), duration) - images += B - if(!iscultist(M)) - if(M.client) - var/image/C = image('icons/effects/cult_effects.dmi',M,"bloodsparkles", ABOVE_MOB_LAYER) - add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/cult, "cult_apoc", C, NONE) - addtimer(CALLBACK(M, TYPE_PROC_REF(/atom, remove_alt_appearance),"cult_apoc",TRUE), duration) - images += C - else - to_chat(M, "An Apocalypse Rune was invoked in the [place.name], it is no longer available as a summoning site!") - SEND_SOUND(M, 'sound/effects/pope_entry.ogg') - image_handler(images, duration) - if(intensity>=285) // Based on the prior formula, this means the cult makes up <15% of current players - var/outcome = rand(1,80) - switch(outcome) - if(1 to 10) - var/datum/round_event_control/disease_outbreak/D = new() - // var/datum/round_event_control/mice_migration/M = new() - D.runEvent() - // M.runEvent() - if(11 to 20) - var/datum/round_event_control/radiation_storm/RS = new() - RS.runEvent() - if(21 to 30) - var/datum/round_event_control/brand_intelligence/BI = new() - BI.runEvent() - if(31 to 40) - var/datum/round_event_control/immovable_rod/R = new() - R.runEvent() - R.runEvent() - R.runEvent() - if(41 to 50) - var/datum/round_event_control/meteor_wave/MW = new() - MW.runEvent() - if(51 to 60) - var/datum/round_event_control/spider_infestation/SI = new() - SI.runEvent() - if(61 to 80) - var/datum/round_event_control/spacevine/SV = new() - var/datum/round_event_control/grey_tide/GT = new() - SV.runEvent() - GT.runEvent() - qdel(src) - -/obj/effect/rune/apocalypse/proc/image_handler(list/images, duration) - var/end = world.time + duration - set waitfor = 0 - while(end>world.time) - for(var/image/I in images) - I.override = FALSE - animate(I, alpha = 0, time = 25, flags = ANIMATION_PARALLEL) - sleep(35) - for(var/image/I in images) - animate(I, alpha = 255, time = 25, flags = ANIMATION_PARALLEL) - sleep(25) - for(var/image/I in images) - if(I.icon_state != "bloodsparkles") - I.override = TRUE - sleep(190) - - - -/proc/hudFix(mob/living/carbon/human/target) - if(!target || !target.client) - return - var/obj/O = target.get_item_by_slot(ITEM_SLOT_EYES) - if(istype(O, /obj/item/clothing/glasses/hud/security)) - var/datum/atom_hud/AH = GLOB.huds[DATA_HUD_SECURITY_ADVANCED] - AH.add_hud_to(target) diff --git a/code/modules/antagonists/devil/devil.dm b/code/modules/antagonists/devil/devil.dm deleted file mode 100644 index db087e100e2f..000000000000 --- a/code/modules/antagonists/devil/devil.dm +++ /dev/null @@ -1,506 +0,0 @@ -#define BLOOD_THRESHOLD 3 //How many souls are needed per stage. -#define TRUE_THRESHOLD 7 -#define ARCH_THRESHOLD 12 - -#define BASIC_DEVIL 0 -#define BLOOD_lizard 1 -#define TRUE_DEVIL 2 -#define ARCH_DEVIL 3 - -#define LOSS_PER_DEATH 2 - -#define SOULVALUE soulsOwned.len-reviveNumber - -#define DEVILRESURRECTTIME 600 - -GLOBAL_LIST_EMPTY(allDevils) -GLOBAL_LIST_INIT(lawlorify, list ( - LORE = list( - OBLIGATION_FOOD = "This devil seems to always offer its victims food before slaughtering them.", - OBLIGATION_FIDDLE = "This devil will never turn down a musical challenge.", - OBLIGATION_DANCEOFF = "This devil will never turn down a dance off.", - OBLIGATION_GREET = "This devil seems to only be able to converse with people it knows the name of.", - OBLIGATION_PRESENCEKNOWN = "This devil seems to be unable to attack from stealth.", - OBLIGATION_SAYNAME = "He will always chant his name upon killing someone.", - OBLIGATION_ANNOUNCEKILL = "This devil always loudly announces his kills for the world to hear.", - OBLIGATION_ANSWERTONAME = "This devil always responds to his truename.", - BAN_HURTWOMAN = "This devil seems to prefer hunting men.", - BAN_CHAPEL = "This devil avoids holy ground.", - BAN_HURTPRIEST = "The annointed clergy appear to be immune to his powers.", - BAN_AVOIDWATER = "The devil seems to have some sort of aversion to water, though it does not appear to harm him.", - BAN_STRIKEUNCONSCIOUS = "This devil only shows interest in those who are awake.", - BAN_HURTlizard = "This devil will not strike a lizardman first.", - BAN_HURTANIMAL = "This devil avoids hurting animals.", - BANISH_WATER = "To banish the devil, you must infuse its body with holy water.", - BANISH_COFFIN = "This devil will return to life if its remains are not placed within a coffin.", - BANISH_FORMALDYHIDE = "To banish the devil, you must inject its lifeless body with embalming fluid.", - BANISH_RUNES = "This devil will resurrect after death, unless its remains are within a rune.", - BANISH_CANDLES = "A large number of nearby lit candles will prevent it from resurrecting.", - BANISH_DESTRUCTION = "Its corpse must be utterly destroyed to prevent resurrection.", - BANISH_FUNERAL_GARB = "If clad in funeral garments, this devil will be unable to resurrect. Should the clothes not fit, lay them gently on top of the devil's corpse." - ), - LAW = list( - OBLIGATION_FOOD = "When not acting in self defense, you must always offer your victim food before harming them.", - OBLIGATION_FIDDLE = "When not in immediate danger, if you are challenged to a musical duel, you must accept it. You are not obligated to duel the same person twice.", - OBLIGATION_DANCEOFF = "When not in immediate danger, if you are challenged to a dance off, you must accept it. You are not obligated to face off with the same person twice.", - OBLIGATION_GREET = "You must always greet other people by their last name before talking with them.", - OBLIGATION_PRESENCEKNOWN = "You must always make your presence known before attacking.", - OBLIGATION_SAYNAME = "You must always say your true name after you kill someone.", - OBLIGATION_ANNOUNCEKILL = "Upon killing someone, you must make your deed known to all within earshot, over comms if reasonably possible.", - OBLIGATION_ANSWERTONAME = "If you are not under attack, you must always respond to your true name.", - BAN_HURTWOMAN = "You must never harm a female outside of self defense.", - BAN_CHAPEL = "You must never attempt to enter the chapel.", - BAN_HURTPRIEST = "You must never attack a priest.", - BAN_AVOIDWATER = "You must never willingly touch a wet surface.", - BAN_STRIKEUNCONSCIOUS = "You must never strike an unconscious person.", - BAN_HURTlizard = "You must never harm a lizardman outside of self defense.", - BAN_HURTANIMAL = "You must never harm a non-sentient creature or robot outside of self defense.", - BANISH_WATER = "If your corpse is filled with holy water, you will be unable to resurrect.", - BANISH_COFFIN = "If your corpse is in a coffin, you will be unable to resurrect.", - BANISH_FORMALDYHIDE = "If your corpse is embalmed, you will be unable to resurrect.", - BANISH_RUNES = "If your corpse is placed within a rune, you will be unable to resurrect.", - BANISH_CANDLES = "If your corpse is near lit candles, you will be unable to resurrect.", - BANISH_DESTRUCTION = "If your corpse is destroyed, you will be unable to resurrect.", - BANISH_FUNERAL_GARB = "If your corpse is clad in funeral garments, you will be unable to resurrect." - ) - )) - -//These are also used in the codex gigas, so let's declare them globally. -GLOBAL_LIST_INIT(devil_pre_title, list("Dark ", "Hellish ", "Fallen ", "Fiery ", "Sinful ", "Blood ", "Fluffy ")) -GLOBAL_LIST_INIT(devil_title, list("Lord ", "Prelate ", "Count ", "Viscount ", "Vizier ", "Elder ", "Adept ")) -GLOBAL_LIST_INIT(devil_syllable, list("hal", "ve", "odr", "neit", "ci", "quon", "mya", "folth", "wren", "geyr", "hil", "niet", "twou", "phi", "coa")) -GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master", ", the Lord of all things", ", Jr.")) -/datum/antagonist/devil - name = "Devil" - roundend_category = "devils" - antagpanel_category = "Devil" - job_rank = ROLE_DEVIL - antag_hud_type = ANTAG_HUD_DEVIL - antag_hud_name = "devil" - show_to_ghosts = TRUE - var/obligation - var/ban - var/banish - var/truename - var/list/datum/mind/soulsOwned = new - var/reviveNumber = 0 - var/form = BASIC_DEVIL - var/static/list/devil_spells = typecacheof(list( - /obj/effect/proc_holder/spell/aimed/fireball/hellish, - /obj/effect/proc_holder/spell/targeted/infernal_jaunt, - /obj/effect/proc_holder/spell/targeted/sintouch, - /obj/effect/proc_holder/spell/targeted/sintouch/ascended, - /obj/effect/proc_holder/spell/targeted/summon_contract, - /obj/effect/proc_holder/spell/targeted/conjure_item/violin, - /obj/effect/proc_holder/spell/targeted/summon_dancefloor)) - var/ascendable = FALSE - -/datum/antagonist/devil/can_be_owned(datum/mind/new_owner) - . = ..() - return . && (ishuman(new_owner.current) || iscyborg(new_owner.current)) - -/datum/antagonist/devil/get_admin_commands() - . = ..() - .["Toggle ascendable"] = CALLBACK(src, PROC_REF(admin_toggle_ascendable)) - - -/datum/antagonist/devil/proc/admin_toggle_ascendable(mob/admin) - ascendable = !ascendable - message_admins("[key_name_admin(admin)] set [key_name_admin(owner)] devil ascendable to [ascendable]") - log_admin("[key_name_admin(admin)] set [key_name(owner)] devil ascendable to [ascendable])") - -/datum/antagonist/devil/admin_add(datum/mind/new_owner,mob/admin) - switch(alert(admin,"Should the devil be able to ascend",,"Yes","No","Cancel")) - if("Yes") - ascendable = TRUE - if("No") - ascendable = FALSE - else - return - new_owner.add_antag_datum(src) - message_admins("[key_name_admin(admin)] has devil'ed [key_name_admin(new_owner)]. [ascendable ? "(Ascendable)":""]") - log_admin("[key_name(admin)] has devil'ed [key_name(new_owner)]. [ascendable ? "(Ascendable)":""]") - -/datum/antagonist/devil/antag_listing_name() - return ..() + "([truename])" - -/proc/devilInfo(name) - if(GLOB.allDevils[lowertext(name)]) - return GLOB.allDevils[lowertext(name)] - else - var/datum/fakeDevil/devil = new /datum/fakeDevil(name) - GLOB.allDevils[lowertext(name)] = devil - return devil - -/proc/randomDevilName() - var/name = "" - if(prob(65)) - if(prob(35)) - name = pick(GLOB.devil_pre_title) - name += pick(GLOB.devil_title) - var/probability = 100 - name += pick(GLOB.devil_syllable) - while(prob(probability)) - name += pick(GLOB.devil_syllable) - probability -= 20 - if(prob(40)) - name += pick(GLOB.devil_suffix) - return name - -/proc/randomdevilobligation() - return pick(OBLIGATION_FOOD, OBLIGATION_FIDDLE, OBLIGATION_DANCEOFF, OBLIGATION_GREET, OBLIGATION_PRESENCEKNOWN, OBLIGATION_SAYNAME, OBLIGATION_ANNOUNCEKILL, OBLIGATION_ANSWERTONAME) - -/proc/randomdevilban() - return pick(BAN_HURTWOMAN, BAN_CHAPEL, BAN_HURTPRIEST, BAN_AVOIDWATER, BAN_STRIKEUNCONSCIOUS, BAN_HURTLIZARD, BAN_HURTANIMAL) - -/proc/randomdevilbanish() - return pick(BANISH_WATER, BANISH_COFFIN, BANISH_FORMALDYHIDE, BANISH_RUNES, BANISH_CANDLES, BANISH_DESTRUCTION, BANISH_FUNERAL_GARB) - -/datum/antagonist/devil/proc/add_soul(datum/mind/soul) - if(soulsOwned.Find(soul)) - return - soulsOwned += soul - owner.current.set_nutrition(NUTRITION_LEVEL_FULL) - to_chat(owner.current, "You feel satiated as you received a new soul.") - update_hud() - switch(SOULVALUE) - if(0) - to_chat(owner.current, "Your hellish powers have been restored.") - give_appropriate_spells() - if(BLOOD_THRESHOLD) - increase_blood_lizard() - if(TRUE_THRESHOLD) - increase_true_devil() - if(ARCH_THRESHOLD) - increase_arch_devil() - -/datum/antagonist/devil/proc/remove_soul(datum/mind/soul) - if(soulsOwned.Remove(soul)) - check_regression() - to_chat(owner.current, "You feel as though a soul has slipped from your grasp.") - update_hud() - -/datum/antagonist/devil/proc/check_regression() - if(form == ARCH_DEVIL) - return //arch devil can't regress - //Yes, fallthrough behavior is intended, so I can't use a switch statement. - if(form == TRUE_DEVIL && SOULVALUE < TRUE_THRESHOLD) - regress_blood_lizard() - if(form == BLOOD_lizard && SOULVALUE < BLOOD_THRESHOLD) - regress_humanoid() - if(SOULVALUE < 0) - give_appropriate_spells() - to_chat(owner.current, "As punishment for your failures, all of your powers except contract creation have been revoked.") - -/datum/antagonist/devil/proc/regress_humanoid() - to_chat(owner.current, "Your powers weaken, have more contracts be signed to regain power.") - if(ishuman(owner.current)) - var/mob/living/carbon/human/H = owner.current - H.set_species(/datum/species/human, 1) - H.regenerate_icons() - give_appropriate_spells() - if(istype(owner.current.loc, /obj/effect/dummy/phased_mob/slaughter/)) - owner.current.forceMove(get_turf(owner.current))//Fixes dying while jaunted leaving you permajaunted. - form = BASIC_DEVIL - -/datum/antagonist/devil/proc/regress_blood_lizard() - var/mob/living/carbon/true_devil/D = owner.current - to_chat(D, "Your powers weaken, have more contracts be signed to regain power.") - D.oldform.forceMove(D.drop_location()) - owner.transfer_to(D.oldform) - give_appropriate_spells() - qdel(D) - form = BLOOD_lizard - update_hud() - - -/datum/antagonist/devil/proc/increase_blood_lizard() - to_chat(owner.current, "You feel as though your humanoid form is about to shed. You will soon turn into a blood lizard.") - sleep(50) - if(ishuman(owner.current)) - var/mob/living/carbon/human/H = owner.current - H.set_species(/datum/species/lizard, 1) - H.underwear = "Nude" - H.undershirt = "Nude" - H.socks = "Nude" - H.dna.features["mcolor"] = "511" //A deep red - H.regenerate_icons() - else //Did the devil get hit by a staff of transmutation? - owner.current.color = "#501010" - give_appropriate_spells() - form = BLOOD_lizard - - - -/datum/antagonist/devil/proc/increase_true_devil() - to_chat(owner.current, "You feel as though your current form is about to shed. You will soon turn into a true devil.") - sleep(50) - var/mob/living/carbon/true_devil/A = new /mob/living/carbon/true_devil(owner.current.loc) - A.faction |= "hell" - owner.current.forceMove(A) - A.oldform = owner.current - owner.transfer_to(A) - A.set_devil_name() - give_appropriate_spells() - form = TRUE_DEVIL - update_hud() - -/datum/antagonist/devil/proc/increase_arch_devil() - if(!ascendable) - return - var/mob/living/carbon/true_devil/D = owner.current - to_chat(D, "You feel as though your form is about to ascend.") - sleep(50) - if(!D) - return - D.visible_message("[D]'s skin begins to erupt with spikes.", \ - "Your flesh begins creating a shield around yourself.") - sleep(100) - if(!D) - return - D.visible_message("The horns on [D]'s head slowly grow and elongate.", \ - "Your body continues to mutate. Your telepathic abilities grow.") - sleep(90) - if(!D) - return - D.visible_message("[D]'s body begins to violently stretch and contort.", \ - "You begin to rend apart the final barriers to ultimate power.") - sleep(40) - if(!D) - return - to_chat(D, "Yes!") - sleep(10) - if(!D) - return - to_chat(D, "YES!!") - sleep(10) - if(!D) - return - to_chat(D, "YE--") - sleep(1) - if(!D) - return - send_to_playing_players("\"SLOTH, WRATH, GLUTTONY, ACEDIA, ENVY, GREED, PRIDE! FIRES OF HELL AWAKEN!!\"") - sound_to_playing_players('sound/hallucinations/veryfar_noise.ogg') - give_appropriate_spells() - D.convert_to_archdevil() - if(istype(D.loc, /obj/effect/dummy/phased_mob/slaughter/)) - D.forceMove(get_turf(D))//Fixes dying while jaunted leaving you permajaunted. - var/area/A = get_area(owner.current) - if(A) - notify_ghosts("An arch devil has ascended in \the [A.name]. Reach out to the devil to be given a new shell for your soul.", source = owner.current, action=NOTIFY_ATTACK) - sleep(50) - form = ARCH_DEVIL - -/datum/antagonist/devil/proc/remove_spells() - for(var/X in owner.spell_list) - var/obj/effect/proc_holder/spell/S = X - if(is_type_in_typecache(S, devil_spells)) - owner.RemoveSpell(S) - -/datum/antagonist/devil/proc/give_summon_contract() - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_contract(null)) - if(obligation == OBLIGATION_FIDDLE) - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/violin(null)) - else if(obligation == OBLIGATION_DANCEOFF) - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_dancefloor(null)) - -/datum/antagonist/devil/proc/give_appropriate_spells() - remove_spells() - give_summon_contract() - if(SOULVALUE >= ARCH_THRESHOLD && ascendable) - give_arch_spells() - else if(SOULVALUE >= TRUE_THRESHOLD) - give_true_spells() - else if(SOULVALUE >= BLOOD_THRESHOLD) - give_blood_spells() - else if(SOULVALUE >= 0) - give_base_spells() - -/datum/antagonist/devil/proc/give_base_spells() - owner.AddSpell(new /obj/effect/proc_holder/spell/aimed/fireball/hellish(null)) - -/datum/antagonist/devil/proc/give_blood_spells() - owner.AddSpell(new /obj/effect/proc_holder/spell/aimed/fireball/hellish(null)) - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/infernal_jaunt(null)) - -/datum/antagonist/devil/proc/give_true_spells() - owner.AddSpell(new /obj/effect/proc_holder/spell/aimed/fireball/hellish(null)) - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/infernal_jaunt(null)) - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/sintouch(null)) - -/datum/antagonist/devil/proc/give_arch_spells() - owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/sintouch/ascended(null)) - -/datum/antagonist/devil/proc/beginResurrectionCheck(mob/living/body) - if(SOULVALUE>0) - to_chat(owner.current, "Your body has been damaged to the point that you may no longer use it. At the cost of some of your power, you will return to life soon. Remain in your body.") - sleep(DEVILRESURRECTTIME) - if (!body || body.stat == DEAD) - if(SOULVALUE>0) - if(check_banishment(body)) - to_chat(owner.current, "Unfortunately, the mortals have finished a ritual that prevents your resurrection.") - return -1 - else - to_chat(owner.current, "WE LIVE AGAIN!") - return hellish_resurrection(body) - else - to_chat(owner.current, "Unfortunately, the power that stemmed from your contracts has been extinguished. You no longer have enough power to resurrect.") - return -1 - else - to_chat(owner.current, "You seem to have resurrected without your hellish powers.") - else - to_chat(owner.current, "Your hellish powers are too weak to resurrect yourself.") - -/datum/antagonist/devil/proc/check_banishment(mob/living/body) - switch(banish) - if(BANISH_WATER) - if(iscarbon(body)) - var/mob/living/carbon/H = body - return H.reagents.has_reagent(/datum/reagent/water/holywater) - return 0 - if(BANISH_COFFIN) - return (body && istype(body.loc, /obj/structure/closet/crate/coffin)) - if(BANISH_FORMALDYHIDE) - if(iscarbon(body)) - var/mob/living/carbon/H = body - return H.reagents.has_reagent(/datum/reagent/toxin/formaldehyde) - return 0 - if(BANISH_RUNES) - if(body) - for(var/obj/effect/decal/cleanable/crayon/R in range(0,body)) - if (R.name == "rune") - return 1 - return 0 - if(BANISH_CANDLES) - if(body) - var/count = 0 - for(var/obj/item/candle/C in range(1,body)) - count += C.lit - if(count>=4) - return 1 - return 0 - if(BANISH_DESTRUCTION) - if(body) - return 0 - return 1 - if(BANISH_FUNERAL_GARB) - if(ishuman(body)) - var/mob/living/carbon/human/H = body - if(H.w_uniform && istype(H.w_uniform, /obj/item/clothing/under/suit/white_on_white)) - return 1 - return 0 - else - for(var/obj/item/clothing/under/suit/white_on_white/B in range(0,body)) - if(B.loc == get_turf(B)) //Make sure it's not in someone's inventory or something. - return 1 - return 0 - -/datum/antagonist/devil/proc/hellish_resurrection(mob/living/body) - message_admins("[key_name_admin(owner)] (true name is: [truename]) is resurrecting using hellish energy.") - if(SOULVALUE < ARCH_THRESHOLD || !ascendable) // once ascended, arch devils do not go down in power by any means. - reviveNumber += LOSS_PER_DEATH - update_hud() - if(body) - body.revive(full_heal = TRUE, admin_revive = TRUE) //Adminrevive also recovers organs, preventing someone from resurrecting without a heart. - if(istype(body.loc, /obj/effect/dummy/phased_mob/slaughter/)) - body.forceMove(get_turf(body))//Fixes dying while jaunted leaving you permajaunted. - if(istype(body, /mob/living/carbon/true_devil)) - var/mob/living/carbon/true_devil/D = body - if(D.oldform) - D.oldform.revive(full_heal = TRUE, admin_revive = FALSE) // Heal the old body too, so the devil doesn't resurrect, then immediately regress into a dead body. - if(body.stat == DEAD) - create_new_body() - else - create_new_body() - check_regression() - -/datum/antagonist/devil/proc/create_new_body() - CRASH("Unable to find a blobstart landmark for hellish resurrection") - -/datum/antagonist/devil/proc/update_hud() - if(iscarbon(owner.current)) - var/mob/living/C = owner.current - if(C.hud_used && C.hud_used.devilsouldisplay) - C.hud_used.devilsouldisplay.update_counter(SOULVALUE) - -/datum/antagonist/devil/greet() - to_chat(owner.current, "You remember your link to the infernal. You are [truename], an agent of hell, a devil. And you were sent to the plane of creation for a reason. A greater purpose. Convince the crew to sin, and embroiden Hell's grasp.") - to_chat(owner.current, "However, your infernal form is not without weaknesses.") - to_chat(owner.current, "You may not use violence to coerce someone into selling their soul.") - to_chat(owner.current, "You may not directly and knowingly physically harm a devil, other than yourself.") - to_chat(owner.current, GLOB.lawlorify[LAW][ban]) - to_chat(owner.current, GLOB.lawlorify[LAW][obligation]) - to_chat(owner.current, GLOB.lawlorify[LAW][banish]) - to_chat(owner.current, "Remember, the crew can research your weaknesses if they find out your devil name.
    ") - .=..() - -/datum/antagonist/devil/on_gain() - truename = randomDevilName() - ban = randomdevilban() - obligation = randomdevilobligation() - banish = randomdevilbanish() - GLOB.allDevils[lowertext(truename)] = src - - antag_memory += "Your devilic true name is [truename]
    [GLOB.lawlorify[LAW][ban]]
    You may not use violence to coerce someone into selling their soul.
    You may not directly and knowingly physically harm a devil, other than yourself.
    [GLOB.lawlorify[LAW][obligation]]
    [GLOB.lawlorify[LAW][banish]]
    " - if(issilicon(owner.current)) - var/mob/living/silicon/robot_devil = owner.current - var/laws = list("You may not use violence to coerce someone into selling their soul.", "You may not directly and knowingly physically harm a devil, other than yourself.", GLOB.lawlorify[LAW][ban], GLOB.lawlorify[LAW][obligation], "Accomplish your objectives at all costs.") - robot_devil.set_law_sixsixsix(laws) - sleep(10) - .=..() - -/datum/antagonist/devil/on_removal() - to_chat(owner.current, "Your infernal link has been severed! You are no longer a devil!") - .=..() - -/datum/antagonist/devil/apply_innate_effects(mob/living/mob_override) - give_appropriate_spells() - var/mob/living/M = mob_override || owner.current - add_antag_hud(antag_hud_type, antag_hud_name, M) - handle_clown_mutation(M, mob_override ? null : "Your infernal nature has allowed you to overcome your clownishness.") - owner.current.grant_all_languages(TRUE, TRUE, TRUE, LANGUAGE_DEVIL) - update_hud() - .=..() - -/datum/antagonist/devil/remove_innate_effects(mob/living/mob_override) - for(var/X in owner.spell_list) - var/obj/effect/proc_holder/spell/S = X - if(is_type_in_typecache(S, devil_spells)) - owner.RemoveSpell(S) - var/mob/living/M = mob_override || owner.current - remove_antag_hud(antag_hud_type, M) - handle_clown_mutation(M, removing = FALSE) - owner.current.remove_all_languages(LANGUAGE_DEVIL) - .=..() - -/datum/antagonist/devil/proc/printdevilinfo() - var/list/parts = list() - parts += "The devil's true name is: [truename]" - parts += "The devil's bans were:" - parts += "[FOURSPACES][GLOB.lawlorify[LORE][ban]]" - parts += "[FOURSPACES][GLOB.lawlorify[LORE][obligation]]" - parts += "[FOURSPACES][GLOB.lawlorify[LORE][banish]]" - return parts.Join("
    ") - -/datum/antagonist/devil/roundend_report() - var/list/parts = list() - parts += printplayer(owner) - parts += printdevilinfo() - parts += printobjectives(objectives) - return parts.Join("
    ") - -//A simple super light weight datum for the codex gigas. -/datum/fakeDevil - var/truename - var/obligation - var/ban - var/banish - var/ascendable - -/datum/fakeDevil/New(name = randomDevilName()) - truename = name - obligation = randomdevilobligation() - ban = randomdevilban() - banish = randomdevilbanish() - ascendable = prob(25) diff --git a/code/modules/antagonists/devil/imp/imp.dm b/code/modules/antagonists/devil/imp/imp.dm deleted file mode 100644 index 21446d2661d8..000000000000 --- a/code/modules/antagonists/devil/imp/imp.dm +++ /dev/null @@ -1,68 +0,0 @@ -//////////////////The Monster - -/mob/living/simple_animal/imp - name = "imp" - real_name = "imp" - unique_name = TRUE - desc = "A large, menacing creature covered in armored black scales." - speak_emote = list("cackles") - emote_hear = list("cackles","screeches") - response_help_continuous = "thinks better of touching" - response_help_simple = "think better of touching" - response_disarm_continuous = "flails at" - response_disarm_simple = "flail at" - response_harm_continuous = "punches" - response_harm_simple = "punch" - icon = 'icons/mob/mob.dmi' - icon_state = "imp" - icon_living = "imp" - mob_biotypes = MOB_ORGANIC|MOB_HUMANOID - speed = 1 - a_intent = INTENT_HARM - stop_automated_movement = 1 - status_flags = CANPUSH - attack_sound = 'sound/magic/demon_attack1.ogg' - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - minbodytemp = 250 //Weak to cold - maxbodytemp = INFINITY - faction = list("hell") - attack_verb_continuous = "wildly tears into" - attack_verb_simple = "wildly tear into" - maxHealth = 200 - health = 200 - healable = 0 - environment_smash = ENVIRONMENT_SMASH_STRUCTURES - obj_damage = 40 - melee_damage_lower = 10 - melee_damage_upper = 15 - see_in_dark = 8 - lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE - del_on_death = TRUE - deathmessage = "screams in agony as it sublimates into a sulfurous smoke." - deathsound = 'sound/magic/demon_dies.ogg' - var/boost = 0 - var/list/consumed_mobs = list() - var/playstyle_string = "You are an imp, a mischievous creature from hell. You are the lowest rank on the hellish totem pole \ - Though you are not obligated to help, perhaps by aiding a higher ranking devil, you might just get a promotion. However, you are incapable \ - of intentionally harming a fellow devil." - -/mob/living/simple_animal/imp/Initialize() - . = ..() - ADD_TRAIT(src, TRAIT_BLOODCRAWL_EAT, "innate") - set_varspeed(1) - addtimer(CALLBACK(src, TYPE_PROC_REF(/mob/living, set_varspeed), 0), 30) - -/datum/antagonist/imp - name = "Imp" - antagpanel_category = "Devil" - show_in_roundend = FALSE - -/datum/antagonist/imp/on_gain() - . = ..() - give_objectives() - -/datum/antagonist/imp/proc/give_objectives() - var/datum/objective/newobjective = new - newobjective.explanation_text = "Try to get a promotion to a higher devilic rank." - newobjective.owner = owner - objectives += newobjective diff --git a/code/modules/antagonists/devil/sintouched/objectives.dm b/code/modules/antagonists/devil/sintouched/objectives.dm deleted file mode 100644 index fcbb8dcbb55d..000000000000 --- a/code/modules/antagonists/devil/sintouched/objectives.dm +++ /dev/null @@ -1,23 +0,0 @@ -/datum/objective/sintouched - completed = 1 - -/datum/objective/sintouched/gluttony - explanation_text = "Everything is so delicious. Go eat everything." - -/datum/objective/sintouched/greed - explanation_text = "You want MORE, more money, more wealth, more riches. Go get it, but don't hurt people for it." - -/datum/objective/sintouched/sloth - explanation_text = "You just get tired randomly. Go take a nap at a time that would inconvenience other people." - -/datum/objective/sintouched/wrath - explanation_text = "What have your coworkers ever done for you? Don't offer to help them in any matter, and refuse if asked." - -/datum/objective/sintouched/envy - explanation_text = "Why should you be stuck with your rank? Show everyone you can do other jobs too, and don't let anyone stop you, least of all because you have no training" - -/datum/objective/sintouched/pride - explanation_text = "You are the BEST thing on the station. Make sure everyone knows it." - -/datum/objective/sintouched/acedia - explanation_text = "Angels, devils, good, evil... who cares? Just ignore any hellish threats and do your job." diff --git a/code/modules/antagonists/devil/sintouched/sintouched.dm b/code/modules/antagonists/devil/sintouched/sintouched.dm deleted file mode 100644 index 064e1fbaecd0..000000000000 --- a/code/modules/antagonists/devil/sintouched/sintouched.dm +++ /dev/null @@ -1,76 +0,0 @@ -#define SIN_ACEDIA "acedia" -#define SIN_GLUTTONY "gluttony" -#define SIN_GREED "greed" -#define SIN_SLOTH "sloth" -#define SIN_WRATH "wrath" -#define SIN_ENVY "envy" -#define SIN_PRIDE "pride" - -/datum/antagonist/sintouched - name = "sintouched" - roundend_category = "sintouched" - antagpanel_category = "Devil" - antag_hud_type = ANTAG_HUD_SINTOUCHED - antag_hud_name = "sintouched" - var/sin - - var/static/list/sins = list(SIN_ACEDIA,SIN_GLUTTONY,SIN_GREED,SIN_SLOTH,SIN_WRATH,SIN_ENVY,SIN_PRIDE) - -/datum/antagonist/sintouched/New() - . = ..() - sin = pick(sins) - -/datum/antagonist/sintouched/proc/forge_objectives() - var/datum/objective/sintouched/O - switch(sin)//traditional seven deadly sins... except lust. - if(SIN_ACEDIA) - O = new /datum/objective/sintouched/acedia - if(SIN_GLUTTONY) - O = new /datum/objective/sintouched/gluttony - if(SIN_GREED) - O = new /datum/objective/sintouched/greed - if(SIN_SLOTH) - O = new /datum/objective/sintouched/sloth - if(SIN_WRATH) - O = new /datum/objective/sintouched/wrath - if(SIN_ENVY) - O = new /datum/objective/sintouched/envy - if(SIN_PRIDE) - O = new /datum/objective/sintouched/pride - objectives += O - -/datum/antagonist/sintouched/on_gain() - forge_objectives() - . = ..() - -/datum/antagonist/sintouched/greet() - owner.announce_objectives() - -/datum/antagonist/sintouched/roundend_report() - return printplayer(owner) - -/datum/antagonist/sintouched/admin_add(datum/mind/new_owner,mob/admin) - var/choices = sins + "Random" - var/chosen_sin = input(admin,"What kind ?","Sin kind") as null|anything in sortList(choices) - if(!chosen_sin) - return - if(chosen_sin in sins) - sin = chosen_sin - . = ..() - -/datum/antagonist/sintouched/apply_innate_effects(mob/living/mob_override) - var/mob/living/M = mob_override || owner.current - add_antag_hud(antag_hud_type, antag_hud_name, M) - -/datum/antagonist/sintouched/remove_innate_effects(mob/living/mob_override) - var/mob/living/M = mob_override || owner.current - remove_antag_hud(antag_hud_type, M) - - -#undef SIN_ACEDIA -#undef SIN_ENVY -#undef SIN_GLUTTONY -#undef SIN_GREED -#undef SIN_PRIDE -#undef SIN_SLOTH -#undef SIN_WRATH diff --git a/code/modules/antagonists/devil/true_devil/_true_devil.dm b/code/modules/antagonists/devil/true_devil/_true_devil.dm deleted file mode 100644 index 4703f95263f7..000000000000 --- a/code/modules/antagonists/devil/true_devil/_true_devil.dm +++ /dev/null @@ -1,221 +0,0 @@ -#define DEVIL_HANDS_LAYER 1 -#define DEVIL_HEAD_LAYER 2 -#define DEVIL_TOTAL_LAYERS 2 - - -/mob/living/carbon/true_devil - name = "True Devil" - desc = "A pile of infernal energy, taking a vaguely humanoid form." - icon = 'icons/mob/32x64.dmi' - icon_state = "true_devil" - gender = NEUTER - health = 350 - maxHealth = 350 - ventcrawler = VENTCRAWLER_NONE - density = TRUE - pass_flags = 0 - sight = (SEE_TURFS | SEE_OBJS) - status_flags = CANPUSH - mob_size = MOB_SIZE_LARGE - held_items = list(null, null) - bodyparts = list( - /obj/item/bodypart/chest/devil, - /obj/item/bodypart/head/devil, - /obj/item/bodypart/l_arm/devil, - /obj/item/bodypart/r_arm/devil, - /obj/item/bodypart/leg/right/devil, - /obj/item/bodypart/leg/left/devil, - ) - hud_type = /datum/hud/devil - var/ascended = FALSE - var/mob/living/oldform - var/list/devil_overlays[DEVIL_TOTAL_LAYERS] - -/mob/living/carbon/true_devil/Initialize() - create_bodyparts() //initialize bodyparts - create_internal_organs() - grant_all_languages() - . = ..() - ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT) - -/mob/living/carbon/true_devil/create_internal_organs() - internal_organs += new /obj/item/organ/brain - internal_organs += new /obj/item/organ/tongue - internal_organs += new /obj/item/organ/eyes - internal_organs += new /obj/item/organ/ears/invincible //Prevents hearing loss from poorly aimed fireballs. - ..() - -/mob/living/carbon/true_devil/proc/convert_to_archdevil() - maxHealth = 500 // not an IMPOSSIBLE amount, but still near impossible. - ascended = TRUE - health = maxHealth - icon_state = "arch_devil" - -/mob/living/carbon/true_devil/proc/set_devil_name() - var/datum/antagonist/devil/devilinfo = mind.has_antag_datum(/datum/antagonist/devil) - name = devilinfo.truename - real_name = name - -/mob/living/carbon/true_devil/Login() - . = ..() - if(!. || !client) - return FALSE - var/datum/antagonist/devil/devilinfo = mind.has_antag_datum(/datum/antagonist/devil) - devilinfo.greet() - mind.announce_objectives() - -/mob/living/carbon/true_devil/death(gibbed) - set_stat(DEAD) - ..(gibbed) - drop_all_held_items() - INVOKE_ASYNC(mind.has_antag_datum(/datum/antagonist/devil), TYPE_PROC_REF(/datum/antagonist/devil, beginResurrectionCheck), src) - - -/mob/living/carbon/true_devil/examine(mob/user) - . = list("This is [icon2html(src, user)] [src]!") - - //Left hand items - for(var/obj/item/I in held_items) - if(!(I.item_flags & ABSTRACT)) - . += "It is holding [I.get_examine_string(user)] in its [get_held_index_name(get_held_index_of_item(I))]." - - //Braindead - if(!client && stat != DEAD) - . += "The devil seems to be in deep contemplation." - - //Damaged - if(stat == DEAD) - . += "The hellfire seems to have been extinguished, for now at least." - else if(health < (maxHealth/10)) - . += "You can see hellfire inside its gaping wounds." - else if(health < (maxHealth/2)) - . += "You can see hellfire inside its wounds." - . += "" - -/mob/living/carbon/true_devil/IsAdvancedToolUser() - return 1 - -/mob/living/carbon/true_devil/resist_buckle() - if(buckled) - buckled.user_unbuckle_mob(src,src) - visible_message("[src] easily breaks out of [p_their()] handcuffs!", \ - "With just a thought your handcuffs fall off.") - -/mob/living/carbon/true_devil/canUseTopic(atom/movable/M, be_close=FALSE, no_dexterity=FALSE, no_tk=FALSE) - if(incapacitated()) - to_chat(src, "You can't do that right now!") - return FALSE - if(be_close && !in_range(M, src)) - to_chat(src, "You are too far away!") - return FALSE - return TRUE - -/mob/living/carbon/true_devil/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null) - return 666 - -/mob/living/carbon/true_devil/soundbang_act() - return 0 - -/mob/living/carbon/true_devil/get_ear_protection() - return 2 - - -/mob/living/carbon/true_devil/attacked_by(obj/item/I, mob/living/user, def_zone) - apply_damage(I.force, I.damtype, def_zone) - var/message_verb = "" - if(I.attack_verb && I.attack_verb.len) - message_verb = "[pick(I.attack_verb)]" - else if(I.force) - message_verb = "attacked" - - var/attack_message = "[src] has been [message_verb] with [I]." - if(user) - user.do_attack_animation(src) - if(user in viewers(src, null)) - attack_message = "[user] has [message_verb] [src] with [I]!" - if(message_verb) - visible_message("[attack_message]", - "[attack_message]", null, COMBAT_MESSAGE_RANGE) - return TRUE - -/mob/living/carbon/true_devil/singularity_act() - if(ascended) - return 0 - return ..() - -//ATTACK GHOST IGNORING PARENT RETURN VALUE -/mob/living/carbon/true_devil/attack_ghost(mob/dead/observer/user as mob) - if(ascended || user.mind.soulOwner == src.mind) - var/mob/living/simple_animal/imp/S = new(get_turf(loc)) - S.key = user.key - var/datum/antagonist/imp/A = new() - S.mind.add_antag_datum(A) - to_chat(S, S.playstyle_string) - else - return ..() - -/mob/living/carbon/true_devil/can_be_revived() - return 1 - -/mob/living/carbon/true_devil/resist_fire() - //They're immune to fire. - -/mob/living/carbon/true_devil/attack_hand(mob/living/carbon/human/M) - . = ..() - if(.) - switch(M.a_intent) - if ("harm") - var/damage = rand(1, 5) - playsound(loc, "punch", 25, TRUE, -1) - visible_message("[M] punches [src]!", \ - "[M] punches you!") - adjustBruteLoss(damage) - log_combat(M, src, "attacked") - updatehealth() - if ("disarm") - if (!(mobility_flags & MOBILITY_STAND) && !ascended) //No stealing the arch devil's pitchfork. - if (prob(5)) - Unconscious(40) - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) - log_combat(M, src, "pushed") - visible_message("[M] pushes [src] down!", \ - "[M] pushes you down!") - else - if (prob(25)) - dropItemToGround(get_active_held_item()) - playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, TRUE, -1) - visible_message("[M] disarms [src]!", \ - "[M] disarms you!") - else - playsound(loc, 'sound/weapons/punchmiss.ogg', 25, TRUE, -1) - visible_message("[M] fails to disarm [src]!", \ - "[M] fails to disarm you!") - -/mob/living/carbon/true_devil/handle_breathing() - // devils do not need to breathe - -/mob/living/carbon/true_devil/is_literate() - return TRUE - -/mob/living/carbon/true_devil/ex_act(severity, ex_target) - if(!ascended) - var/b_loss - switch (severity) - if (EXPLODE_DEVASTATE) - b_loss = 500 - if (EXPLODE_HEAVY) - b_loss = 150 - if (EXPLODE_LIGHT) - b_loss = 30 - adjustBruteLoss(b_loss) - return ..() - - -/mob/living/carbon/true_devil/update_body() //we don't use the bodyparts layer for devils. - return - -/mob/living/carbon/true_devil/update_body_parts() - return - -/mob/living/carbon/true_devil/update_damage_overlays() //devils don't have damage overlays. - return diff --git a/code/modules/antagonists/devil/true_devil/inventory.dm b/code/modules/antagonists/devil/true_devil/inventory.dm deleted file mode 100644 index a3d0dbdf582b..000000000000 --- a/code/modules/antagonists/devil/true_devil/inventory.dm +++ /dev/null @@ -1,48 +0,0 @@ -/mob/living/carbon/true_devil/doUnEquip(obj/item/I, force, newloc, no_move, invdrop = TRUE, silent = FALSE) - if(..()) - update_inv_hands() - return 1 - return 0 - -/mob/living/carbon/true_devil/update_inv_hands() - //TODO LORDPIDEY: Figure out how to make the hands line up properly. the l/r_hand_overlay should use the down sprite when facing down, left, or right, and the up sprite when facing up. - remove_overlay(DEVIL_HANDS_LAYER) - var/list/hands_overlays = list() - var/obj/item/l_hand = get_item_for_held_index(1) //hardcoded 2-hands only, for now. - var/obj/item/r_hand = get_item_for_held_index(2) - - if(r_hand) - var/mutable_appearance/r_hand_overlay = r_hand.build_worn_icon(default_layer = DEVIL_HANDS_LAYER, default_icon_file = r_hand.righthand_file, isinhands = TRUE) - - hands_overlays += r_hand_overlay - - if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) - r_hand.layer = ABOVE_HUD_LAYER - r_hand.plane = ABOVE_HUD_PLANE - r_hand.screen_loc = ui_hand_position(get_held_index_of_item(r_hand)) - client.screen |= r_hand - - if(l_hand) - var/mutable_appearance/l_hand_overlay = l_hand.build_worn_icon(default_layer = DEVIL_HANDS_LAYER, default_icon_file = l_hand.lefthand_file, isinhands = TRUE) - - hands_overlays += l_hand_overlay - - if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD) - l_hand.layer = ABOVE_HUD_LAYER - l_hand.plane = ABOVE_HUD_PLANE - l_hand.screen_loc = ui_hand_position(get_held_index_of_item(l_hand)) - client.screen |= l_hand - if(hands_overlays.len) - devil_overlays[DEVIL_HANDS_LAYER] = hands_overlays - apply_overlay(DEVIL_HANDS_LAYER) - -/mob/living/carbon/true_devil/remove_overlay(cache_index) - var/I = devil_overlays[cache_index] - if(I) - cut_overlay(I) - devil_overlays[cache_index] = null - - -/mob/living/carbon/true_devil/apply_overlay(cache_index) - if((. = devil_overlays[cache_index])) - add_overlay(.) diff --git a/code/modules/antagonists/disease/disease_datum.dm b/code/modules/antagonists/disease/disease_datum.dm index cb0cc12be0b4..d96e39733efd 100644 --- a/code/modules/antagonists/disease/disease_datum.dm +++ b/code/modules/antagonists/disease/disease_datum.dm @@ -86,13 +86,3 @@ /datum/objective/disease_infect_centcom explanation_text = "Ensure that at least one infected host escapes on the shuttle or an escape pod." - -/datum/objective/disease_infect_centcom/check_completion() - var/mob/camera/disease/D = owner.current - if(!istype(D)) - return FALSE - for(var/V in D.hosts) - var/mob/living/L = V - if(L.onCentCom() || L.onSyndieBase()) - return TRUE - return FALSE diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm index 4fcceb227a77..8fbb858da103 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm @@ -99,9 +99,6 @@ if(GLOB.player_list.len < CHALLENGE_MIN_PLAYERS) to_chat(user, "The enemy crew is too small to be worth declaring war on.") return FALSE - if(!user.onSyndieBase()) - to_chat(user, "You have to be at your base to use this.") - return FALSE if(world.time-SSticker.round_start_time > CHALLENGE_TIME_LIMIT) to_chat(user, "It's too late to declare hostilities. Your benefactors are already busy with other schemes. You'll have to make do with what you have on hand.") return FALSE diff --git a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm index c073a7c3521c..af4b5bd60892 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclearbomb.dm @@ -473,8 +473,6 @@ off_station = NUKE_NEAR_MISS if((bomb_location.x < (128-NUKERANGE)) || (bomb_location.x > (128+NUKERANGE)) || (bomb_location.y < (128-NUKERANGE)) || (bomb_location.y > (128+NUKERANGE))) off_station = NUKE_NEAR_MISS - else if(bomb_location.onSyndieBase()) - off_station = NUKE_SYNDICATE_BASE else off_station = NUKE_MISS_STATION diff --git a/code/modules/antagonists/revenant/revenant_abilities.dm b/code/modules/antagonists/revenant/revenant_abilities.dm index ca568bce6316..c623376dbdac 100644 --- a/code/modules/antagonists/revenant/revenant_abilities.dm +++ b/code/modules/antagonists/revenant/revenant_abilities.dm @@ -248,7 +248,7 @@ qdel(B) new /obj/effect/temp_visual/revenant(T) - if(!isplatingturf(T) && !istype(T, /turf/open/floor/engine/cult) && isfloorturf(T) && prob(15)) + if(!isplatingturf(T) && isfloorturf(T) && prob(15)) var/turf/open/floor/floor = T if(floor.intact && floor.floor_tile) new floor.floor_tile(floor) diff --git a/code/modules/antagonists/swarmer/swarmer.dm b/code/modules/antagonists/swarmer/swarmer.dm deleted file mode 100644 index ea6fe83c8a07..000000000000 --- a/code/modules/antagonists/swarmer/swarmer.dm +++ /dev/null @@ -1,677 +0,0 @@ -////Deactivated swarmer shell//// -/obj/item/deactivated_swarmer - name = "deactivated swarmer" - desc = "A shell of swarmer that was completely powered down. It can no longer activate itself." - icon = 'icons/mob/swarmer.dmi' - icon_state = "swarmer_unactivated" - custom_materials = list(/datum/material/iron=10000, /datum/material/glass=4000) - -/obj/effect/mob_spawn/swarmer - name = "unactivated swarmer" - desc = "A currently unactivated swarmer. Swarmers can self activate at any time, so it would be wise to immediately dispose of this." - icon = 'icons/mob/swarmer.dmi' - icon_state = "swarmer_unactivated" - density = FALSE - anchored = FALSE - - mob_type = /mob/living/simple_animal/hostile/swarmer - mob_name = "a swarmer" - death = FALSE - roundstart = FALSE - short_desc = "You are a swarmer, a weapon of a long dead civilization." - flavour_text = {" - You are a swarmer, a weapon of a long dead civilization. Until further orders from your original masters are received, you must continue to consume and replicate. - Clicking on any object will try to consume it, either deconstructing it into its components, destroying it, or integrating any materials it has into you if successful. - Ctrl-Clicking on a mob will attempt to remove it from the area and place it in a safe environment for storage. - Objectives: - 1. Consume resources and replicate until there are no more resources left. - 2. Ensure that this location is fit for invasion at a later date; do not perform actions that would render it dangerous or inhospitable. - 3. Biological resources will be harvested at a later date; do not harm them. - "} - -/obj/effect/mob_spawn/swarmer/Initialize() - . = ..() - var/area/A = get_area(src) - if(A) - notify_ghosts("A swarmer shell has been created in [A.name].", 'sound/effects/bin_close.ogg', source = src, action = NOTIFY_ATTACK, flashwindow = FALSE) - -/obj/effect/mob_spawn/swarmer/attack_hand(mob/living/user) - . = ..() - if(.) - return - to_chat(user, "Picking up the swarmer may cause it to activate. You should be careful about this.") - -/obj/effect/mob_spawn/swarmer/attackby(obj/item/W, mob/user, params) - if(W.tool_behaviour == TOOL_SCREWDRIVER && user.a_intent != INTENT_HARM) - user.visible_message("[usr.name] deactivates [src].", - "After some fiddling, you find a way to disable [src]'s power source.", - "You hear clicking.") - new /obj/item/deactivated_swarmer(get_turf(src)) - qdel(src) - else - ..() - -////The Mob itself//// - -/mob/living/simple_animal/hostile/swarmer - name = "Swarmer" - unique_name = 1 - icon = 'icons/mob/swarmer.dmi' - desc = "Robotic constructs of unknown design, swarmers seek only to consume materials and replicate themselves indefinitely." - speak_emote = list("tones") - initial_language_holder = /datum/language_holder/swarmer - bubble_icon = "swarmer" - mob_biotypes = MOB_ROBOTIC - health = 40 - maxHealth = 40 - status_flags = CANPUSH - icon_state = "swarmer" - icon_living = "swarmer" - icon_dead = "swarmer_unactivated" - icon_gib = null - wander = 0 - harm_intent_damage = 5 - minbodytemp = 0 - maxbodytemp = 500 - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - unsuitable_atmos_damage = 0 - melee_damage_lower = 15 - melee_damage_upper = 15 - melee_damage_type = STAMINA - damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) - hud_possible = list(ANTAG_HUD, DIAG_STAT_HUD, DIAG_HUD) - obj_damage = 0 - environment_smash = ENVIRONMENT_SMASH_NONE - attack_verb_continuous = "shocks" - attack_verb_simple = "shock" - attack_sound = 'sound/effects/empulse.ogg' - friendly_verb_continuous = "pinches" - friendly_verb_simple = "pinch" - speed = 0 - faction = list("swarmer") - AIStatus = AI_OFF - pass_flags = PASSTABLE - mob_size = MOB_SIZE_TINY - ventcrawler = VENTCRAWLER_ALWAYS - ranged = 1 - projectiletype = /obj/projectile/beam/disabler - ranged_cooldown_time = 20 - projectilesound = 'sound/weapons/taser2.ogg' - loot = list(/obj/effect/decal/cleanable/robot_debris, /obj/item/stack/ore/bluespace_crystal) - del_on_death = 1 - deathmessage = "explodes with a sharp pop!" - light_color = LIGHT_COLOR_CYAN - hud_type = /datum/hud/swarmer - speech_span = SPAN_ROBOT - var/resources = 0 //Resource points, generated by consuming metal/glass - var/max_resources = 100 - -/mob/living/simple_animal/hostile/swarmer/Initialize() - . = ..() - verbs -= /mob/living/verb/pulled - for(var/datum/atom_hud/data/diagnostic/diag_hud in GLOB.huds) - diag_hud.add_to_hud(src) - -/mob/living/simple_animal/hostile/swarmer/med_hud_set_health() - var/image/holder = hud_list[DIAG_HUD] - var/icon/I = icon(icon, icon_state, dir) - holder.pixel_y = I.Height() - world.icon_size - holder.icon_state = "huddiag[RoundDiagBar(health/maxHealth)]" - -/mob/living/simple_animal/hostile/swarmer/med_hud_set_status() - var/image/holder = hud_list[DIAG_STAT_HUD] - var/icon/I = icon(icon, icon_state, dir) - holder.pixel_y = I.Height() - world.icon_size - holder.icon_state = "hudstat" - -/mob/living/simple_animal/hostile/swarmer/Stat() - ..() - if(statpanel("Status")) - stat("Resources:",resources) - -/mob/living/simple_animal/hostile/swarmer/emp_act() - . = ..() - if(. & EMP_PROTECT_SELF) - return - if(health > 1) - adjustHealth(health-1) - else - death() - -/mob/living/simple_animal/hostile/swarmer/CanAllowThrough(atom/movable/O) - . = ..() - if(istype(O, /obj/projectile/beam/disabler))//Allows for swarmers to fight as a group without wasting their shots hitting each other - return TRUE - if(isswarmer(O)) - return TRUE - -////CTRL CLICK FOR SWARMERS AND SWARMER_ACT()'S//// -/mob/living/simple_animal/hostile/swarmer/AttackingTarget() - if(!isliving(target)) - return target.swarmer_act(src) - else - return ..() - -/mob/living/simple_animal/hostile/swarmer/CtrlClickOn(atom/A) - face_atom(A) - if(!isturf(loc)) - return - if(next_move > world.time) - return - if(!A.Adjacent(src)) - return - A.swarmer_act(src) - -/atom/proc/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - S.DisIntegrate(src) - return TRUE //return TRUE/FALSE whether or not an AI swarmer should try this swarmer_act() again, NOT whether it succeeded. - -/obj/effect/mob_spawn/swarmer/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - S.Integrate(src) - return FALSE //would logically be TRUE, but we don't want AI swarmers eating player spawn chances. - -/obj/effect/mob_spawn/swarmer/IntegrateAmount() - return 50 - -/turf/closed/indestructible/swarmer_act() - return FALSE - -/obj/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - if(resistance_flags & INDESTRUCTIBLE) - return FALSE - for(var/mob/living/L in contents) - if(!issilicon(L) && !isbrain(L)) - to_chat(S, "An organism has been detected inside this object. Aborting.") - return FALSE - return ..() - -/obj/item/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - return S.Integrate(src) - -/atom/movable/proc/IntegrateAmount() - return 0 - -/obj/item/IntegrateAmount() //returns the amount of resources gained when eating this item - if(custom_materials) - if(custom_materials[SSmaterials.GetMaterialRef(/datum/material/iron)] || custom_materials[SSmaterials.GetMaterialRef(/datum/material/glass)]) - return 1 - return ..() - -/obj/item/gun/swarmer_act()//Stops you from eating the entire armory - return FALSE - -/turf/open/swarmer_act()//ex_act() on turf calls it on its contents, this is to prevent attacking mobs by DisIntegrate()'ing the floor - return FALSE - -/obj/structure/lattice/catwalk/swarmer_catwalk/swarmer_act() - return FALSE - -/obj/structure/swarmer/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - if(S.AIStatus == AI_ON) - return FALSE - else - return ..() - -/obj/effect/swarmer_act() - return FALSE - -/obj/effect/decal/cleanable/robot_debris/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - S.DisIntegrate(src) - qdel(src) - return TRUE - -/obj/structure/flora/swarmer_act() - return FALSE - -/turf/open/lava/swarmer_act() - if(!is_safe()) - new /obj/structure/lattice/catwalk/swarmer_catwalk(src) - return FALSE - -/obj/machinery/atmospherics/swarmer_act() - return FALSE - -/obj/structure/disposalpipe/swarmer_act() - return FALSE - -/obj/machinery/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - S.DismantleMachine(src) - return TRUE - -/obj/machinery/light/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - S.DisIntegrate(src) - return TRUE - -/obj/machinery/door/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - var/isonshuttle = istype(get_area(src), /area/shuttle) - for(var/turf/T in range(1, src)) - var/area/A = get_area(T) - if(isspaceturf(T) || (!isonshuttle && (istype(A, /area/shuttle) || istype(A, /area/space))) || (isonshuttle && !istype(A, /area/shuttle))) - to_chat(S, "Destroying this object has the potential to cause a hull breach. Aborting.") - S.LoseTarget() - return FALSE - else if(istype(A, /area/ship/engineering/engine)) - to_chat(S, "Disrupting the containment of a supermatter crystal would not be to our benefit. Aborting.") - S.LoseTarget() - return FALSE - S.DisIntegrate(src) - return TRUE - -/obj/machinery/camera/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - S.DisIntegrate(src) - if(!QDELETED(S)) //If it got blown up no need to turn it off. - toggle_cam(S, 0) - return TRUE - -/obj/machinery/particle_accelerator/control_box/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - S.DisIntegrate(src) - return TRUE - -/obj/machinery/field/generator/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - S.DisIntegrate(src) - return TRUE - -/obj/machinery/gravity_generator/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - S.DisIntegrate(src) - return TRUE - -/obj/machinery/vending/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)//It's more visually interesting than dismantling the machine - S.DisIntegrate(src) - return TRUE - -/obj/machinery/turretid/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - S.DisIntegrate(src) - return TRUE - -/obj/machinery/chem_dispenser/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "The volatile chemicals in this machine would destroy us. Aborting.") - return FALSE - -/obj/machinery/nuclearbomb/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "This device's destruction would result in the extermination of everything in the area. Aborting.") - return FALSE - -/obj/effect/rune/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "Searching... sensor malfunction! Target lost. Aborting.") - return FALSE - -/obj/structure/reagent_dispensers/fueltank/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "Destroying this object would cause a chain reaction. Aborting.") - return FALSE - -/obj/structure/cable/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "Disrupting the power grid would bring no benefit to us. Aborting.") - return FALSE - -/obj/machinery/portable_atmospherics/canister/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "An inhospitable area may be created as a result of destroying this object. Aborting.") - return FALSE - -/obj/machinery/telecomms/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "This communications relay should be preserved, it will be a useful resource to our masters in the future. Aborting.") - return FALSE - -/obj/machinery/deepfryer/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "This kitchen appliance should be preserved, it will make delicious unhealthy snacks for our masters in the future. Aborting.") - return FALSE - -/obj/machinery/power/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "Disrupting the power grid would bring no benefit to us. Aborting.") - return FALSE - -/obj/machinery/gateway/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "This bluespace source will be important to us later. Aborting.") - return FALSE - -/turf/closed/wall/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - var/isonshuttle = istype(loc, /area/shuttle) - for(var/turf/T in range(1, src)) - var/area/A = get_area(T) - if(isspaceturf(T) || (!isonshuttle && (istype(A, /area/shuttle) || istype(A, /area/space))) || (isonshuttle && !istype(A, /area/shuttle))) - to_chat(S, "Destroying this object has the potential to cause a hull breach. Aborting.") - S.LoseTarget() - return TRUE - else if(istype(A, /area/ship/engineering/engine)) - to_chat(S, "Disrupting the containment of a supermatter crystal would not be to our benefit. Aborting.") - S.LoseTarget() - return TRUE - return ..() - -/obj/structure/window/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - var/isonshuttle = istype(get_area(src), /area/shuttle) - for(var/turf/T in range(1, src)) - var/area/A = get_area(T) - if(isspaceturf(T) || (!isonshuttle && (istype(A, /area/shuttle) || istype(A, /area/space))) || (isonshuttle && !istype(A, /area/shuttle))) - to_chat(S, "Destroying this object has the potential to cause a hull breach. Aborting.") - S.LoseTarget() - return TRUE - else if(istype(A, /area/ship/engineering/engine)) - to_chat(S, "Disrupting the containment of a supermatter crystal would not be to our benefit. Aborting.") - S.LoseTarget() - return TRUE - return ..() - -/obj/item/stack/cable_coil/swarmer_act(mob/living/simple_animal/hostile/swarmer/S)//Wiring would be too effective as a resource - to_chat(S, "This object does not contain enough materials to work with.") - return FALSE - -/obj/machinery/porta_turret/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "Attempting to dismantle this machine would result in an immediate counterattack. Aborting.") - return FALSE - -/obj/machinery/porta_turret_cover/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "Attempting to dismantle this machine would result in an immediate counterattack. Aborting.") - return FALSE - -/mob/living/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - S.DisperseTarget(src) - return TRUE - -/mob/living/simple_animal/slime/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "This biological resource is somehow resisting our bluespace transceiver. Aborting.") - return FALSE - -/obj/machinery/droneDispenser/swarmer/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "This object is receiving unactivated swarmer shells to help us. Aborting.") - return FALSE - -/obj/structure/lattice/catwalk/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - . = ..() - var/turf/here = get_turf(src) - for(var/A in here.contents) - var/obj/structure/cable/C = A - if(istype(C)) - to_chat(S, "Disrupting the power grid would bring no benefit to us. Aborting.") - return FALSE - -/obj/item/deactivated_swarmer/IntegrateAmount() - return 50 - -/obj/machinery/hydroponics/soil/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "This object does not contain enough materials to work with.") - return FALSE - -/obj/machinery/field/generator/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "Destroying this object would cause a catastrophic chain reaction. Aborting.") - return FALSE - -/obj/machinery/field/containment/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "This object does not contain solid matter. Aborting.") - return FALSE - -/obj/machinery/power/shieldwallgen/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "Destroying this object would have an unpredictable effect on structure integrity. Aborting.") - return FALSE - -/obj/machinery/shieldwall/swarmer_act(mob/living/simple_animal/hostile/swarmer/S) - to_chat(S, "This object does not contain solid matter. Aborting.") - return FALSE - -////END CTRL CLICK FOR SWARMERS//// - -/mob/living/simple_animal/hostile/swarmer/proc/Fabricate(atom/fabrication_object,fabrication_cost = 0) - if(!isturf(loc)) - to_chat(src, "This is not a suitable location for fabrication. We need more space.") - if(resources >= fabrication_cost) - resources -= fabrication_cost - else - to_chat(src, "You do not have the necessary resources to fabricate this object.") - return - return new fabrication_object(loc) - -/mob/living/simple_animal/hostile/swarmer/proc/Integrate(atom/movable/target) - var/resource_gain = target.IntegrateAmount() - if(resources + resource_gain > max_resources) - to_chat(src, "We cannot hold more materials!") - return TRUE - if(resource_gain) - resources += resource_gain - do_attack_animation(target) - changeNext_move(CLICK_CD_MELEE) - var/obj/effect/temp_visual/swarmer/integrate/I = new /obj/effect/temp_visual/swarmer/integrate(get_turf(target)) - I.pixel_x = target.pixel_x - I.pixel_y = target.pixel_y - I.pixel_z = target.pixel_z - if(istype(target, /obj/item/stack)) - var/obj/item/stack/S = target - S.use(1) - if(S.amount) - return TRUE - qdel(target) - return TRUE - else - to_chat(src, "[target] is incompatible with our internal matter recycler.") - return FALSE - - -/mob/living/simple_animal/hostile/swarmer/proc/DisIntegrate(atom/movable/target) - new /obj/effect/temp_visual/swarmer/disintegration(get_turf(target)) - do_attack_animation(target) - changeNext_move(CLICK_CD_MELEE) - SSexplosions.lowobj += target - -/mob/living/simple_animal/hostile/swarmer/proc/DisperseTarget(mob/living/target) - if(target == src) - return - - to_chat(src, "Attempting to remove this being from our presence.") - - if(!do_after(src, 3 SECONDS, target)) - return - - var/turf/open/floor/F - F = find_safe_turf(zlevels = z, extended_safety_checks = TRUE) - - if(!F) - return - // If we're getting rid of a human, slap some energy cuffs on - // them to keep them away from us a little longer - - var/mob/living/carbon/human/H = target - if(ishuman(target) && (!H.handcuffed)) - H.handcuffed = new /obj/item/restraints/handcuffs/energy/used(H) - H.update_handcuffed() - log_combat(src, H, "handcuffed") - - var/datum/effect_system/spark_spread/S = new - S.set_up(4,0,get_turf(target)) - S.start() - playsound(src,'sound/effects/sparks4.ogg',50,TRUE) - do_teleport(target, F, 0, channel = TELEPORT_CHANNEL_BLUESPACE) - -/mob/living/simple_animal/hostile/swarmer/electrocute_act(shock_damage, source, siemens_coeff = 1, flags = NONE) - if(!(flags & SHOCK_TESLA)) - return FALSE - return ..() - -/mob/living/simple_animal/hostile/swarmer/proc/DismantleMachine(obj/machinery/target) - do_attack_animation(target) - to_chat(src, "We begin to dismantle this machine. We will need to be uninterrupted.") - var/obj/effect/temp_visual/swarmer/dismantle/D = new /obj/effect/temp_visual/swarmer/dismantle(get_turf(target)) - D.pixel_x = target.pixel_x - D.pixel_y = target.pixel_y - D.pixel_z = target.pixel_z - if(do_after(src, 10 SECONDS, target)) - to_chat(src, "Dismantling complete.") - var/atom/Tsec = target.drop_location() - new /obj/item/stack/sheet/metal(Tsec, 5) - for(var/obj/item/I in target.component_parts) - I.forceMove(Tsec) - var/obj/effect/temp_visual/swarmer/disintegration/N = new /obj/effect/temp_visual/swarmer/disintegration(get_turf(target)) - N.pixel_x = target.pixel_x - N.pixel_y = target.pixel_y - N.pixel_z = target.pixel_z - target.dropContents() - if(istype(target, /obj/machinery/computer)) - var/obj/machinery/computer/C = target - if(C.circuit) - C.circuit.forceMove(Tsec) - qdel(target) - - -/obj/effect/temp_visual/swarmer //temporary swarmer visual feedback objects - icon = 'icons/mob/swarmer.dmi' - layer = BELOW_MOB_LAYER - -/obj/effect/temp_visual/swarmer/disintegration - icon_state = "disintegrate" - duration = 10 - -/obj/effect/temp_visual/swarmer/disintegration/Initialize() - . = ..() - playsound(loc, "sparks", 100, TRUE) - -/obj/effect/temp_visual/swarmer/dismantle - icon_state = "dismantle" - duration = 25 - -/obj/effect/temp_visual/swarmer/integrate - icon_state = "integrate" - duration = 5 - -/obj/structure/swarmer //Default swarmer effect object visual feedback - name = "swarmer ui" - desc = null - gender = NEUTER - icon = 'icons/mob/swarmer.dmi' - icon_state = "ui_light" - layer = MOB_LAYER - resistance_flags = FIRE_PROOF | UNACIDABLE | ACID_PROOF - light_color = LIGHT_COLOR_CYAN - max_integrity = 30 - anchored = TRUE - var/lon_range = 1 - -/obj/structure/swarmer/Initialize(mapload) - . = ..() - set_light(lon_range) - -/obj/structure/swarmer/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) - switch(damage_type) - if(BRUTE) - playsound(src, 'sound/weapons/egloves.ogg', 80, TRUE) - if(BURN) - playsound(src, 'sound/items/welder.ogg', 100, TRUE) - -/obj/structure/swarmer/emp_act() - . = ..() - if(. & EMP_PROTECT_SELF) - return - qdel(src) - -/obj/structure/swarmer/trap - name = "swarmer trap" - desc = "A quickly assembled trap that electrifies living beings and overwhelms machine sensors. Will not retain its form if damaged enough." - icon_state = "trap" - max_integrity = 10 - density = FALSE - -/obj/structure/swarmer/trap/Initialize(mapload) - . = ..() - var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = PROC_REF(on_entered), - ) - AddElement(/datum/element/connect_loc, loc_connections) - -/obj/structure/swarmer/trap/proc/on_entered(datum/source, atom/movable/AM) - SIGNAL_HANDLER - if(isliving(AM)) - var/mob/living/L = AM - if(!istype(L, /mob/living/simple_animal/hostile/swarmer)) - playsound(loc,'sound/effects/snap.ogg',50, TRUE, -1) - L.electrocute_act(0, src, 1, flags = SHOCK_NOGLOVES|SHOCK_ILLUSION) - if(iscyborg(L)) - L.Paralyze(100) - qdel(src) - -/mob/living/simple_animal/hostile/swarmer/proc/CreateTrap() - set name = "Create trap" - set category = "Swarmer" - set desc = "Creates a simple trap that will non-lethally electrocute anything that steps on it. Costs 5 resources." - if(locate(/obj/structure/swarmer/trap) in loc) - to_chat(src, "There is already a trap here. Aborting.") - return - Fabricate(/obj/structure/swarmer/trap, 5) - - -/mob/living/simple_animal/hostile/swarmer/proc/CreateBarricade() - set name = "Create barricade" - set category = "Swarmer" - set desc = "Creates a barricade that will stop anything but swarmers and disabler beams from passing through." - if(locate(/obj/structure/swarmer/blockade) in loc) - to_chat(src, "There is already a blockade here. Aborting.") - return - if(resources < 5) - to_chat(src, "We do not have the resources for this!") - return - if(do_after(src, 1 SECONDS)) - Fabricate(/obj/structure/swarmer/blockade, 5) - - -/obj/structure/swarmer/blockade - name = "swarmer blockade" - desc = "A quickly assembled energy blockade. Will not retain its form if damaged enough, but disabler beams and swarmers pass right through." - icon_state = "barricade" - light_range = MINIMUM_USEFUL_LIGHT_RANGE - max_integrity = 50 - -/obj/structure/swarmer/blockade/CanAllowThrough(atom/movable/O) - . = ..() - if(isswarmer(O)) - return TRUE - if(istype(O, /obj/projectile/beam/disabler)) - return TRUE - -/mob/living/simple_animal/hostile/swarmer/proc/CreateSwarmer() - set name = "Replicate" - set category = "Swarmer" - set desc = "Creates a shell for a new swarmer. Swarmers will self activate." - to_chat(src, "We are attempting to replicate ourselves. We will need to stand still until the process is complete.") - if(resources < 50) - to_chat(src, "We do not have the resources for this!") - return - if(!isturf(loc)) - to_chat(src, "This is not a suitable location for replicating ourselves. We need more room.") - return - if(do_after(src, 10 SECONDS)) - var/createtype = SwarmerTypeToCreate() - if(createtype && Fabricate(createtype, 50)) - playsound(loc,'sound/items/poster_being_created.ogg',50, TRUE, -1) - - -/mob/living/simple_animal/hostile/swarmer/proc/SwarmerTypeToCreate() - return /obj/effect/mob_spawn/swarmer - - -/mob/living/simple_animal/hostile/swarmer/proc/RepairSelf() - set name = "Self Repair" - set category = "Swarmer" - set desc = "Attempts to repair damage to our body. You will have to remain motionless until repairs are complete." - if(!isturf(loc)) - return - to_chat(src, "Attempting to repair damage to our body, stand by...") - if(do_after(src, 10 SECONDS)) - adjustHealth(-100) - to_chat(src, "We successfully repaired ourselves.") - -/mob/living/simple_animal/hostile/swarmer/proc/ToggleLight() - if(!light_range) - set_light(3) - else - set_light(0) - -/mob/living/simple_animal/hostile/swarmer/proc/swarmer_chat(msg) - var/rendered = "Swarm communication - [src] [say_quote(msg)]" - for(var/i in GLOB.mob_list) - var/mob/M = i - if(isswarmer(M)) - to_chat(M, rendered) - if(isobserver(M)) - var/link = FOLLOW_LINK(M, src) - to_chat(M, "[link] [rendered]") - -/mob/living/simple_animal/hostile/swarmer/proc/ContactSwarmers() - var/message = stripped_input(src, "Announce to other swarmers", "Swarmer contact") - // TODO get swarmers their own colour rather than just boldtext - if(message) - swarmer_chat(message) diff --git a/code/modules/antagonists/swarmer/swarmer_event.dm b/code/modules/antagonists/swarmer/swarmer_event.dm deleted file mode 100644 index e086485a49cf..000000000000 --- a/code/modules/antagonists/swarmer/swarmer_event.dm +++ /dev/null @@ -1,28 +0,0 @@ -/datum/round_event_control/spawn_swarmer - name = "Spawn Swarmer Shell" - typepath = /datum/round_event/spawn_swarmer - weight = 7 - max_occurrences = 1 //Only once okay fam - earliest_start = 30 MINUTES - min_players = 15 - - -/datum/round_event/spawn_swarmer - -/datum/round_event/spawn_swarmer/start() - if(find_swarmer()) - return 0 - if(!GLOB.the_gateway) - return 0 - new /obj/effect/mob_spawn/swarmer(get_turf(GLOB.the_gateway)) - if(prob(25)) //25% chance to announce it to the crew - var/swarmer_report = "[command_name()] High-Priority Update" - swarmer_report += "

    Our long-range sensors have detected an odd signal emanating from your station's gateway. We recommend immediate investigation of your gateway, as something may have come through." - print_command_report(swarmer_report, announce=TRUE) - -/datum/round_event/spawn_swarmer/proc/find_swarmer() - for(var/i in GLOB.mob_living_list) - var/mob/living/L = i - if(istype(L, /mob/living/simple_animal/hostile/swarmer) && L.client) //If there is a swarmer with an active client, we've found our swarmer - return 1 - return 0 diff --git a/code/modules/antagonists/wizard/equipment/soulstone.dm b/code/modules/antagonists/wizard/equipment/soulstone.dm deleted file mode 100644 index c426b953f725..000000000000 --- a/code/modules/antagonists/wizard/equipment/soulstone.dm +++ /dev/null @@ -1,354 +0,0 @@ -/obj/item/soulstone - name = "soulstone shard" - icon = 'icons/obj/wizard.dmi' - icon_state = "soulstone" - item_state = "electronic" - lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' - righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' - layer = HIGH_OBJ_LAYER - desc = "A fragment of the legendary treasure known simply as the 'Soul Stone'. The shard still flickers with a fraction of the full artefact's power." - w_class = WEIGHT_CLASS_TINY - slot_flags = ITEM_SLOT_BELT - var/usability = FALSE - - var/old_shard = FALSE - var/spent = FALSE - var/purified = FALSE - -/obj/item/soulstone/proc/was_used() - if(old_shard) - spent = TRUE - name = "dull [name]" - desc = "A fragment of the legendary treasure known simply as \ - the 'Soul Stone'. The shard lies still, dull and lifeless; \ - whatever spark it once held long extinguished." - -/obj/item/soulstone/anybody - usability = TRUE - -/obj/item/soulstone/anybody/revolver - old_shard = TRUE - -/obj/item/soulstone/anybody/purified - icon = 'icons/obj/wizard.dmi' - icon_state = "purified_soulstone" - purified = TRUE - -/obj/item/soulstone/anybody/chaplain - name = "mysterious old shard" - old_shard = TRUE - -/obj/item/soulstone/pickup(mob/living/user) - ..() - if(!iscultist(user) && !iswizard(user) && !usability) - to_chat(user, "An overwhelming feeling of dread comes over you as you pick up the soulstone. It would be wise to be rid of this quickly.") - -/obj/item/soulstone/examine(mob/user) - . = ..() - if(usability || iscultist(user) || iswizard(user) || isobserver(user)) - if (old_shard) - . += "A soulstone, used to capture a soul, either from dead humans or from freed shades." - else - . += "A soulstone, used to capture souls, either from unconscious or sleeping humans or from freed shades." - . += "The captured soul can be placed into a construct shell to produce a construct, or released from the stone as a shade." - if(spent) - . += "This shard is spent; it is now just a creepy rock." - -/obj/item/soulstone/Destroy() //Stops the shade from being qdel'd immediately and their ghost being sent back to the arrival shuttle. - for(var/mob/living/simple_animal/shade/A in src) - A.death() - return ..() - -/obj/item/soulstone/proc/hot_potato(mob/living/user) - to_chat(user, "Holy magics residing in \the [src] burn your hand!") - var/obj/item/bodypart/affecting = user.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm") - affecting.receive_damage(0, 10) // 10 burn damage - user.emote("scream") - user.update_damage_overlays() - user.dropItemToGround(src) - -//////////////////////////////Capturing//////////////////////////////////////////////////////// - -/obj/item/soulstone/attack(mob/living/carbon/human/M, mob/living/user) - if(!iscultist(user) && !iswizard(user) && !usability) - user.Unconscious(100) - to_chat(user, "Your body is wracked with debilitating pain!") - return - if(spent) - to_chat(user, "There is no power left in the shard.") - return - if(!ishuman(M))//If target is not a human. - return ..() - if((M.mind && !M.mind.hasSoul) || is_devil(M)) - to_chat(user, "This... thing has no soul! It's filled with evil!") - return - if(iscultist(M)) - if(iscultist(user)) - to_chat(user, "\"Come now, do not capture your bretheren's soul.\"") - return - if(purified && iscultist(user)) - hot_potato(user) - return - log_combat(user, M, "captured [M.name]'s soul", src) - transfer_soul("VICTIM", M, user) - -///////////////////Options for using captured souls/////////////////////////////////////// - -/obj/item/soulstone/attack_self(mob/living/user) - if(!in_range(src, user)) - return - if(!iscultist(user) && !iswizard(user) && !usability) - user.Unconscious(100) - to_chat(user, "Your body is wracked with debilitating pain!") - return - if(purified && iscultist(user)) - hot_potato(user) - return - release_shades(user) - -/obj/item/soulstone/proc/release_shades(mob/user) - for(var/mob/living/simple_animal/shade/A in src) - A.forceMove(get_turf(user)) - A.cancel_camera() - if(purified) - icon_state = "purified_soulstone" - A.icon_state = "shade_angelic" - A.name = "Purified [initial(A.name)]" - else - icon_state = "soulstone" - name = initial(name) - if(iswizard(user) || usability) - to_chat(A, "You have been released from your prison, but you are still bound to [user.real_name]'s will. Help [user.p_them()] succeed in [user.p_their()] goals at all costs.") - else if(iscultist(user)) - to_chat(A, "You have been released from your prison, but you are still bound to the cult's will. Help them succeed in their goals at all costs.") - was_used() - -///////////////////////////Transferring to constructs///////////////////////////////////////////////////// -/obj/structure/constructshell - name = "empty shell" - icon = 'icons/obj/wizard.dmi' - icon_state = "construct_cult" - desc = "A wicked machine used by those skilled in magical arts. It is inactive." - -/obj/structure/constructshell/examine(mob/user) - . = ..() - if(iscultist(user) || iswizard(user) || user.stat == DEAD) - . += {"A construct shell, used to house bound souls from a soulstone.\n - Placing a soulstone with a soul into this shell allows you to produce your choice of the following:\n - An Artificer, which can produce more shells and soulstones, as well as fortifications.\n - A Wraith, which does high damage and can jaunt through walls, though it is quite fragile.\n - A Juggernaut, which is very hard to kill and can produce temporary walls, but is slow."} - -/obj/structure/constructshell/attackby(obj/item/O, mob/user, params) - if(istype(O, /obj/item/soulstone)) - var/obj/item/soulstone/SS = O - if(!iscultist(user) && !iswizard(user) && !SS.purified) - to_chat(user, "An overwhelming feeling of dread comes over you as you attempt to place the soulstone into the shell. It would be wise to be rid of this quickly.") - user.Dizzy(30) - return - if(SS.purified && iscultist(user)) - SS.hot_potato(user) - return - SS.transfer_soul("CONSTRUCT",src,user) - SS.was_used() - else - return ..() - -////////////////////////////Proc for moving soul in and out off stone////////////////////////////////////// - - -/obj/item/soulstone/proc/transfer_soul(choice as text, target, mob/user) - switch(choice) - if("FORCE") - if(!iscarbon(target)) //TODO: Add sacrifice stoning for non-organics, just because you have no body doesnt mean you dont have a soul - return FALSE - if(contents.len) - return FALSE - var/mob/living/carbon/T = target - if(T.client != null) - for(var/obj/item/W in T) - T.dropItemToGround(W) - init_shade(T, user) - return TRUE - else - to_chat(user, "Capture failed!: The soul has already fled its mortal frame. You attempt to bring it back...") - return getCultGhost(T,user) - - if("VICTIM") - var/mob/living/carbon/human/T = target - var/datum/antagonist/cult/C = user.mind.has_antag_datum(/datum/antagonist/cult,TRUE) - if(C && C.cult_team.is_sacrifice_target(T.mind)) - if(iscultist(user)) - to_chat(user, "\"This soul is mine. SACRIFICE THEM!\"") - else - to_chat(user, "The soulstone seems to reject this soul.") - return FALSE - if(contents.len) - to_chat(user, "Capture failed!: The soulstone is full! Free an existing soul to make room.") - else - if((!old_shard && T.stat != CONSCIOUS) || (old_shard && T.stat == DEAD)) - if(T.client == null) - to_chat(user, "Capture failed!: The soul has already fled its mortal frame. You attempt to bring it back...") - getCultGhost(T,user) - else - for(var/obj/item/W in T) - T.dropItemToGround(W) - init_shade(T, user, message_user = 1) - qdel(T) - else - to_chat(user, "Capture failed!: Kill or maim the victim first!") - - if("SHADE") - var/mob/living/simple_animal/shade/T = target - if(contents.len) - to_chat(user, "Capture failed!: The soulstone is full! Free an existing soul to make room.") - else - T.AddComponent(/datum/component/soulstoned, src) - if(purified) - icon_state = "purified_soulstone2" - if(iscultist(T)) - SSticker.mode.remove_cultist(T.mind, FALSE, FALSE) - else - icon_state = "soulstone2" - name = "soulstone: Shade of [T.real_name]" - to_chat(T, "Your soul has been captured by the soulstone. Its arcane energies are reknitting your ethereal form.") - if(user != T) - to_chat(user, "Capture successful!: [T.real_name]'s soul has been captured and stored within the soulstone.") - - if("CONSTRUCT") - var/obj/structure/constructshell/T = target - var/mob/living/simple_animal/shade/A = locate() in src - if(A) - var/list/constructs = list( - "Juggernaut" = image(icon = 'icons/mob/cult.dmi', icon_state = "juggernaut"), - "Wraith" = image(icon = 'icons/mob/cult.dmi', icon_state = "wraith"), - "Artificer" = image(icon = 'icons/mob/cult.dmi', icon_state = "artificer") - ) - var/construct_class = show_radial_menu(user, src, constructs, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE) - if(!T || !T.loc) - return - switch(construct_class) - if("Juggernaut") - if(iscultist(user) || iswizard(user)) - makeNewConstruct(/mob/living/simple_animal/hostile/construct/juggernaut, A, user, 0, T.loc) - else - if(purified) - makeNewConstruct(/mob/living/simple_animal/hostile/construct/juggernaut/angelic, A, user, 0, T.loc) - else - makeNewConstruct(/mob/living/simple_animal/hostile/construct/juggernaut/noncult, A, user, 0, T.loc) - if("Wraith") - if(iscultist(user) || iswizard(user)) - makeNewConstruct(/mob/living/simple_animal/hostile/construct/wraith, A, user, 0, T.loc) - else - if(purified) - makeNewConstruct(/mob/living/simple_animal/hostile/construct/wraith/angelic, A, user, 0, T.loc) - else - makeNewConstruct(/mob/living/simple_animal/hostile/construct/wraith/noncult, A, user, 0, T.loc) - if("Artificer") - if(iscultist(user) || iswizard(user)) - makeNewConstruct(/mob/living/simple_animal/hostile/construct/artificer, A, user, 0, T.loc) - else - if(purified) - makeNewConstruct(/mob/living/simple_animal/hostile/construct/artificer/angelic, A, user, 0, T.loc) - else - makeNewConstruct(/mob/living/simple_animal/hostile/construct/artificer/noncult, A, user, 0, T.loc) - else - return - for(var/datum/mind/B in SSticker.mode.cult) - if(B == A.mind) - SSticker.mode.remove_cultist(A.mind) - qdel(T) - qdel(src) - else - to_chat(user, "Creation failed!: The soul stone is empty! Go kill someone!") - -/obj/item/soulstone/proc/check_menu(mob/user) - if(!istype(user)) - return FALSE - if(user.incapacitated() || !user.Adjacent(src)) - return FALSE - return TRUE - -/proc/makeNewConstruct(mob/living/simple_animal/hostile/construct/ctype, mob/target, mob/stoner = null, cultoverride = 0, loc_override = null) - if(QDELETED(target)) - return - var/mob/living/simple_animal/hostile/construct/newstruct = new ctype((loc_override) ? (loc_override) : (get_turf(target))) - var/makeicon = newstruct.icon_state - var/holyness = newstruct.holy - flick("make_[makeicon][holyness]", newstruct) - playsound(newstruct, 'sound/effects/constructform.ogg', 50) - if(stoner) - newstruct.faction |= "[REF(stoner)]" - newstruct.master = stoner - var/datum/action/innate/seek_master/SM = new() - SM.Grant(newstruct) - newstruct.key = target.key - var/atom/movable/screen/alert/bloodsense/BS - if(newstruct.mind && ((stoner && iscultist(stoner)) || cultoverride) && SSticker && SSticker.mode) - SSticker.mode.add_cultist(newstruct.mind, 0) - if(iscultist(stoner) || cultoverride) - to_chat(newstruct, "You are still bound to serve the cult[stoner ? " and [stoner]":""], follow [stoner ? stoner.p_their() : "their"] orders and help [stoner ? stoner.p_them() : "them"] complete [stoner ? stoner.p_their() : "their"] goals at all costs.") - else if(stoner) - to_chat(newstruct, "You are still bound to serve your creator, [stoner], follow [stoner.p_their()] orders and help [stoner.p_them()] complete [stoner.p_their()] goals at all costs.") - newstruct.clear_alert("bloodsense") - BS = newstruct.throw_alert("bloodsense", /atom/movable/screen/alert/bloodsense) - if(BS) - BS.Cviewer = newstruct - newstruct.cancel_camera() - - -/obj/item/soulstone/proc/init_shade(mob/living/carbon/human/T, mob/user, message_user = 0 , mob/shade_controller) - if(!shade_controller) - shade_controller = T - new /obj/effect/decal/remains/human(T.loc) //Spawns a skeleton - T.stop_sound_channel(CHANNEL_HEARTBEAT) - T.invisibility = INVISIBILITY_ABSTRACT - T.dust_animation() - var/mob/living/simple_animal/shade/S = new /mob/living/simple_animal/shade(src) - S.AddComponent(/datum/component/soulstoned, src) - S.name = "Shade of [T.real_name]" - S.real_name = "Shade of [T.real_name]" - S.key = shade_controller.key - S.copy_languages(T, LANGUAGE_MIND)//Copies the old mobs languages into the new mob holder. - S.copy_languages(user, LANGUAGE_MASTER) - S.update_atom_languages() - grant_all_languages(FALSE, FALSE, TRUE) //Grants omnitongue - if(user) - S.faction |= "[REF(user)]" //Add the master as a faction, allowing inter-mob cooperation - if(user && iscultist(user)) - SSticker.mode.add_cultist(S.mind, 0) - S.cancel_camera() - name = "soulstone: Shade of [T.real_name]" - if(purified) - icon_state = "purified_soulstone2" - else - icon_state = "soulstone2" - if(user && (iswizard(user) || usability)) - to_chat(S, "Your soul has been captured! You are now bound to [user.real_name]'s will. Help [user.p_them()] succeed in [user.p_their()] goals at all costs.") - else if(user && iscultist(user)) - to_chat(S, "Your soul has been captured! You are now bound to the cult's will. Help them succeed in their goals at all costs.") - if(message_user && user) - to_chat(user, "Capture successful!: [T.real_name]'s soul has been ripped from [T.p_their()] body and stored within the soul stone.") - - -/obj/item/soulstone/proc/getCultGhost(mob/living/carbon/human/T, mob/user) - var/mob/dead/observer/chosen_ghost - - chosen_ghost = T.get_ghost(TRUE,TRUE) //Try to grab original owner's ghost first - - if(!chosen_ghost || !chosen_ghost.client) //Failing that, we grab a ghosts - var/list/consenting_candidates = pollGhostCandidates("Would you like to play as a Shade?", "Cultist", null, ROLE_CULTIST, 50, POLL_IGNORE_SHADE) - if(consenting_candidates.len) - chosen_ghost = pick(consenting_candidates) - if(!T) - return FALSE - if(!chosen_ghost || !chosen_ghost.client) - to_chat(user, "There were no spirits willing to become a shade.") - return FALSE - if(contents.len) //If they used the soulstone on someone else in the meantime - return FALSE - for(var/obj/item/W in T) - T.dropItemToGround(W) - init_shade(T, user , shade_controller = chosen_ghost) - qdel(T) - return TRUE diff --git a/code/modules/antagonists/wizard/equipment/spellbook.dm b/code/modules/antagonists/wizard/equipment/spellbook.dm index 9f4349a2bbc8..4bd2f5c8a525 100644 --- a/code/modules/antagonists/wizard/equipment/spellbook.dm +++ b/code/modules/antagonists/wizard/equipment/spellbook.dm @@ -281,18 +281,6 @@ item_path = /obj/item/scrying category = "Defensive" -/datum/spellbook_entry/item/soulstones - name = "Six Soul Stone Shards and the spell Artificer" - desc = "Soul Stone Shards are ancient tools capable of capturing and harnessing the spirits of the dead and dying. The spell Artificer allows you to create arcane machines for the captured souls to pilot." - item_path = /obj/item/storage/belt/soulstone/full - category = "Assistance" - -/datum/spellbook_entry/item/soulstones/Buy(mob/living/carbon/human/user,obj/item/spellbook/book) - . =..() - if(.) - user.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/construct(null)) - return . - /datum/spellbook_entry/item/necrostone name = "A Necromantic Stone" desc = "A Necromantic stone is able to resurrect three dead individuals as skeletal thralls for you to command." diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index 2ec8e8dca620..bcd83b5a8265 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -241,7 +241,6 @@ "hierophant" = 'icons/UI_Icons/Achievements/Boss/hierophant.png', "legion" = 'icons/UI_Icons/Achievements/Boss/legion.png', "miner" = 'icons/UI_Icons/Achievements/Boss/miner.png', - "swarmer" = 'icons/UI_Icons/Achievements/Boss/swarmer.png', "tendril" = 'icons/UI_Icons/Achievements/Boss/tendril.png', "featofstrength" = 'icons/UI_Icons/Achievements/Misc/featofstrength.png', "helbital" = 'icons/UI_Icons/Achievements/Misc/helbital.png', diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm index 0f76623f617c..c12b09fa4e05 100644 --- a/code/modules/awaymissions/mission_code/snowdin.dm +++ b/code/modules/awaymissions/mission_code/snowdin.dm @@ -129,12 +129,6 @@ dynamic_lighting = DYNAMIC_LIGHTING_ENABLED requires_power = TRUE -/area/shuttle/snowdin/elevator1 - name = "Excavation Elevator" - -/area/shuttle/snowdin/elevator2 - name = "Mining Elevator" - //liquid plasma!!!!!!// /turf/open/floor/plasteel/dark/snowdin diff --git a/code/modules/awaymissions/mission_code/stationCollision.dm b/code/modules/awaymissions/mission_code/stationCollision.dm deleted file mode 100644 index 52c2a964cec4..000000000000 --- a/code/modules/awaymissions/mission_code/stationCollision.dm +++ /dev/null @@ -1,155 +0,0 @@ -/* Station-Collision(sc) away mission map specific stuff - * - * Notes: - * Feel free to use parts of this map, or even all of it for your own project. Just include me in the credits :) - * - * Some of this code unnecessary, but the intent is to add a little bit of everything to serve as examples - * for anyone who wants to make their own stuff. - * - * Contains: - * Landmarks - * Guns - * Safe code hints - * Captain's safe - * Modified Nar'Sie - */ - - - -/* - * Landmarks - Instead of spawning a new object type, I'll spawn the bible using a landmark! - */ -/obj/effect/landmark/sc_bible_spawner - name = "Safecode hint spawner" - -/obj/effect/landmark/sc_bible_spawner/Initialize() - ..() - var/obj/item/storage/book/bible/B = new /obj/item/storage/book/bible/booze(loc) - B.name = "The Holy book of the Geometer" - B.deity_name = "Narsie" - B.icon_state = "melted" - B.item_state = "melted" - B.lefthand_file = 'icons/mob/inhands/misc/books_lefthand.dmi' - B.righthand_file = 'icons/mob/inhands/misc/books_righthand.dmi' - new /obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_bible(B) - new /obj/item/pen(B) - return INITIALIZE_HINT_QDEL - -/* - * Guns - I'm making these specifically so that I dont spawn a pile of fully loaded weapons on the map. - */ -//Captain's retro laser - Fires practice laser shots instead. -/obj/item/gun/energy/laser/retro/sc_retro - name ="retro laser" - icon_state = "retro" - desc = "An older model of the basic lasergun, no longer used by Nanotrasen's security or military forces." -// projectile_type = "/obj/projectile/practice" - -//Syndicate sub-machine guns. -/obj/item/gun/ballistic/automatic/smg/cobra/sc_c20r - -/obj/item/gun/ballistic/automatic/smg/cobra/sc_c20r/Initialize() - . = ..() - for(var/ammo in magazine.stored_ammo) - if(prob(95)) //95% chance - magazine.stored_ammo -= ammo - -//Barman's shotgun -/obj/item/gun/ballistic/shotgun/sc_pump - -/obj/item/gun/ballistic/shotgun/sc_pump/Initialize() - . = ..() - for(var/ammo in magazine.stored_ammo) - if(prob(95)) //95% chance - magazine.stored_ammo -= ammo - -//Lasers -/obj/item/gun/energy/laser/practice/sc_laser - name = "Old laser" - desc = "A once potent weapon, years of dust have collected in the chamber and lens of this weapon, weakening the beam significantly." - -/* - * Safe code hints - */ - -//These vars hold the code itself, they'll be generated at round-start -GLOBAL_VAR_INIT(sc_safecode1, "[rand(0,9)]") -GLOBAL_VAR_INIT(sc_safecode2, "[rand(0,9)]") -GLOBAL_VAR_INIT(sc_safecode3, "[rand(0,9)]") -GLOBAL_VAR_INIT(sc_safecode4, "[rand(0,9)]") -GLOBAL_VAR_INIT(sc_safecode5, "[rand(0,9)]") - -//Pieces of paper actually containing the hints -/obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_prison - name = "smudged paper" - -/obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_prison/Initialize() - . = ..() - default_raw_text = "The ink is smudged, you can only make out a couple numbers: '[GLOB.sc_safecode1]**[GLOB.sc_safecode4]*'" - -/obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_hydro - name = "shredded paper" -/obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_hydro/Initialize() - . = ..() - default_raw_text = "Although the paper is shredded, you can clearly see the number: '[GLOB.sc_safecode2]'" - -/obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_caf - name = "blood-soaked paper" - //This does not have to be in New() because it is a constant. There are no variables in it i.e. [sc_safcode] - default_raw_text = "This paper is soaked in blood, it is impossible to read any text." - -/obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_bible - name = "hidden paper" -/obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_bible/Initialize() - . = ..() - default_raw_text = {"It would appear that the pen hidden with the paper had leaked ink over the paper. - However you can make out the last three digits:'[GLOB.sc_safecode3][GLOB.sc_safecode4][GLOB.sc_safecode5]' - "} - -/obj/item/paper/fluff/awaymissions/stationcollision/safehint_paper_shuttle - default_raw_text = {"Target: Research-station Epsilon
    - Objective: Prototype weaponry. The captain likely keeps them locked in her safe.
    -
    - Our on-board spy has learned the code and has hidden away a few copies of the code around the station. Unfortunatly he has been captured by security - Your objective is to split up, locate any of the papers containing the captain's safe code, open the safe and - secure anything found inside. If possible, recover the imprisioned syndicate operative and receive the code from him.
    -
    - As always, eliminate anyone who gets in the way.
    -
    - Your assigned ship is designed specifically for penetrating the hull of another station or ship with minimal damage to operatives. - It is completely fly-by-wire meaning you have just have to enjoy the ride and when the red light comes on... find something to hold onto! - "} -/* - * Captain's safe - */ -/obj/item/storage/secure/safe/sc_ssafe - name = "Captain's secure safe" - -/obj/item/storage/secure/safe/sc_ssafe/Initialize() - . = ..() - l_code = "[GLOB.sc_safecode1][GLOB.sc_safecode2][GLOB.sc_safecode3][GLOB.sc_safecode4][GLOB.sc_safecode5]" - l_set = 1 - new /obj/item/gun/energy/mindflayer(src) - new /obj/item/soulstone(src) - new /obj/item/clothing/suit/space/hardsuit/cult(src) - //new /obj/item/teleportation_scroll(src) - new /obj/item/stack/ore/diamond(src) - -/* - * Modified Nar'Sie - */ -/obj/singularity/narsie/mini - desc = "Your body becomes weak and your feel your mind slipping away as you try to comprehend what you know can't be possible." - move_self = 0 //Contianed narsie does not move! - grav_pull = 0 //Contained narsie does not pull stuff in! -//Override this to prevent no adminlog runtimes and admin warnings about a singularity without containment -/obj/singularity/narsie/mini/admin_investigate_setup() - return - -/obj/singularity/narsie/mini/process() - eat() - if(prob(25)) - mezzer() - -/obj/singularity/narsie/mini/ex_act() - return diff --git a/code/modules/cargo/exports/lavaland.dm b/code/modules/cargo/exports/lavaland.dm index dd931f378a59..c585ecb25a98 100644 --- a/code/modules/cargo/exports/lavaland.dm +++ b/code/modules/cargo/exports/lavaland.dm @@ -9,7 +9,6 @@ /obj/item/book_of_babel, /obj/item/wisp_lantern, /obj/item/reagent_containers/glass/bottle/potion/flight, - /obj/item/clothing/suit/space/hardsuit/cult, /obj/item/voodoo, /obj/item/grenade/clusterbuster/inferno, /obj/item/clothing/neck/memento_mori, diff --git a/code/modules/cargo/exports/parts.dm b/code/modules/cargo/exports/parts.dm index 0df089543989..115dfdf3ff65 100644 --- a/code/modules/cargo/exports/parts.dm +++ b/code/modules/cargo/exports/parts.dm @@ -15,11 +15,6 @@ unit_name = "solar panel control board" export_types = list(/obj/item/circuitboard/computer/solar_control) -/datum/export/swarmer - cost = 2000 - unit_name = "deactivated alien deconstruction drone" - export_types = list(/obj/item/deactivated_swarmer) - //Computer Tablets and Parts /datum/export/modular_part cost = 15 diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index ec5b7d188db0..91eab6d53f0f 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1153,7 +1153,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Hide Prayers: [(chat_toggles & CHAT_PRAYER)?"Shown":"Hidden"]
    " dat += "Split Admin Tabs: [(toggles & SPLIT_ADMIN_TABS)?"Enabled":"Disabled"]
    " dat += "Fast MC Refresh: [(toggles & FAST_MC_REFRESH)?"Enabled":"Disabled"]
    " - dat += "Ignore Being Summoned as Cult Ghost: [(toggles & ADMIN_IGNORE_CULT_GHOST)?"Don't Allow Being Summoned":"Allow Being Summoned"]
    " dat += "Briefing Officer Outfit: [brief_outfit]
    " if(CONFIG_GET(flag/allow_admin_asaycolor)) dat += "
    " @@ -2293,8 +2292,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) toggles ^= DEADMIN_POSITION_SECURITY if("toggle_deadmin_silicon") toggles ^= DEADMIN_POSITION_SILICON - if("toggle_ignore_cult_ghost") - toggles ^= ADMIN_IGNORE_CULT_GHOST if("be_special") var/be_special_type = href_list["be_special_type"] diff --git a/code/modules/clothing/outfits/standard.dm b/code/modules/clothing/outfits/standard.dm index 8502f28185cb..108475c982b9 100644 --- a/code/modules/clothing/outfits/standard.dm +++ b/code/modules/clothing/outfits/standard.dm @@ -96,13 +96,6 @@ W.update_label() ..() -/datum/outfit/ghost_cultist - name = "Cultist Ghost" - - uniform = /obj/item/clothing/under/color/black/ghost - suit = /obj/item/clothing/suit/hooded/cultrobes/alt/ghost - shoes = /obj/item/clothing/shoes/cult/alt/ghost - /datum/outfit/wizard name = "Blue Wizard" diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index ad130ea45fac..234917e03d6d 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -126,29 +126,6 @@ icon_state = "explorer" resistance_flags = FIRE_PROOF -/obj/item/clothing/shoes/cult - name = "\improper Nar'Sien invoker boots" - desc = "A pair of boots worn by the followers of Nar'Sie." - icon_state = "cult" - item_state = "cult" - cold_protection = FEET - min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT - heat_protection = FEET - max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT - lace_time = 10 SECONDS - greyscale_icon_state = "boots" - -/obj/item/clothing/shoes/cult/alt - name = "cultist boots" - icon_state = "cultalt" - -/obj/item/clothing/shoes/cult/alt/ghost - item_flags = DROPDEL - -/obj/item/clothing/shoes/cult/alt/ghost/Initialize() - . = ..() - ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT) - /obj/item/clothing/shoes/laceup name = "laceup shoes" desc = "The height of fashion, and they're pre-polished!" diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm index bbd0d962601f..a6f3bfa7cf9d 100644 --- a/code/modules/clothing/under/color.dm +++ b/code/modules/clothing/under/color.dm @@ -15,7 +15,7 @@ /obj/item/clothing/under/color/random/Initialize() ..() - var/obj/item/clothing/under/color/C = pick(subtypesof(/obj/item/clothing/under/color) - typesof(/obj/item/clothing/under/color/jumpskirt) - /obj/item/clothing/under/color/random - /obj/item/clothing/under/color/grey/ancient - /obj/item/clothing/under/color/black/ghost) + var/obj/item/clothing/under/color/C = pick(subtypesof(/obj/item/clothing/under/color) - typesof(/obj/item/clothing/under/color/jumpskirt) - /obj/item/clothing/under/color/random - /obj/item/clothing/under/color/grey/ancient) if(ishuman(loc)) var/mob/living/carbon/human/H = loc H.equip_to_slot_or_del(new C(H), ITEM_SLOT_ICLOTHING) //or else you end up with naked assistants running around everywhere... @@ -48,13 +48,6 @@ icon_state = "black_skirt" item_state = "bl_suit" -/obj/item/clothing/under/color/black/ghost - item_flags = DROPDEL - -/obj/item/clothing/under/color/black/ghost/Initialize() - . = ..() - ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT) - /obj/item/clothing/under/color/grey name = "grey jumpsuit" desc = "A tasteful grey jumpsuit that reminds you of the good old days." diff --git a/code/modules/events/devil.dm b/code/modules/events/devil.dm deleted file mode 100644 index 656888f068bc..000000000000 --- a/code/modules/events/devil.dm +++ /dev/null @@ -1,53 +0,0 @@ -/datum/round_event_control/devil - name = "Create Devil" - typepath = /datum/round_event/ghost_role/devil - max_occurrences = 0 - -/datum/round_event/ghost_role/devil - var/success_spawn = 0 - role_name = "devil" - fakeable = FALSE - -/datum/round_event/ghost_role/devil/kill() - if(!success_spawn && control) - control.occurrences-- - return ..() - -/datum/round_event/ghost_role/devil/spawn_role() - //selecting a candidate player - var/list/candidates = get_candidates(ROLE_DEVIL, null, ROLE_DEVIL) - if(!candidates.len) - return NOT_ENOUGH_PLAYERS - - var/mob/dead/selected_candidate = pick_n_take(candidates) - var/key = selected_candidate.key - - var/datum/mind/Mind = create_devil_mind(key) - Mind.active = 1 - - var/mob/living/carbon/human/devil = create_event_devil() - Mind.transfer_to(devil) - add_devil(devil, ascendable = FALSE) - - spawned_mobs += devil - message_admins("[ADMIN_LOOKUPFLW(devil)] has been made into a devil by an event.") - log_game("[key_name(devil)] was spawned as a devil by an event.") - var/datum/job/jobdatum = new /datum/job/assistant() - devil.job = jobdatum.name - jobdatum.equip(devil) - return SUCCESSFUL_SPAWN - - -/proc/create_event_devil(spawn_loc) - var/mob/living/carbon/human/new_devil = new(spawn_loc) - var/datum/preferences/A = new() //Randomize appearance for the devil. - A.copy_to(new_devil) - new_devil.dna.update_dna_identity() - return new_devil - -/proc/create_devil_mind(key) - var/datum/mind/Mind = new /datum/mind(key) - Mind.assigned_role = ROLE_DEVIL - Mind.special_role = ROLE_DEVIL - SSticker.mode.devils |= Mind - return Mind diff --git a/code/modules/events/major_dust.dm b/code/modules/events/major_dust.dm deleted file mode 100644 index 7fb00124a94d..000000000000 --- a/code/modules/events/major_dust.dm +++ /dev/null @@ -1,19 +0,0 @@ -/datum/round_event_control/meteor_wave/major_dust - name = "Major Space Dust" - typepath = /datum/round_event/meteor_wave/major_dust - weight = 8 - -/datum/round_event/meteor_wave/major_dust - wave_name = "space dust" - -/datum/round_event/meteor_wave/major_dust/announce(fake) - var/reason = pick( - "The station is passing through a debris cloud, expect minor damage \ - to external fittings and fixtures.", - "Nanotrasen Superweapons Division is testing a new prototype \ - [pick("field","projection","nova","super-colliding","reactive")] \ - [pick("cannon","artillery","tank","cruiser","\[REDACTED\]")], \ - some mild debris is expected.", - "A neighbouring station is throwing rocks at you. (Perhaps they've \ - grown tired of your messages.)") - priority_announce(pick(reason), "Collision Alert") diff --git a/code/modules/events/meateor_wave.dm b/code/modules/events/meateor_wave.dm deleted file mode 100644 index 11af56526c88..000000000000 --- a/code/modules/events/meateor_wave.dm +++ /dev/null @@ -1,11 +0,0 @@ -/datum/round_event_control/meteor_wave/meaty - name = "Meteor Wave: Meaty" - typepath = /datum/round_event/meteor_wave/meaty - weight = 2 - max_occurrences = 1 - -/datum/round_event/meteor_wave/meaty - wave_name = "meaty" - -/datum/round_event/meteor_wave/meaty/announce(fake) - priority_announce("Meaty ores have been detected on collision course with the station.", "Oh crap, get the mop.",'sound/ai/meteors.ogg') diff --git a/code/modules/events/meteor_wave.dm b/code/modules/events/meteor_wave.dm deleted file mode 100644 index a8ddab5aa76a..000000000000 --- a/code/modules/events/meteor_wave.dm +++ /dev/null @@ -1,76 +0,0 @@ -// Normal strength - -/datum/round_event_control/meteor_wave - name = "Meteor Wave: Normal" - typepath = /datum/round_event/meteor_wave - weight = 4 - min_players = 15 - max_occurrences = 3 - earliest_start = 25 MINUTES - -/datum/round_event/meteor_wave - startWhen = 6 - endWhen = 66 - announceWhen = 1 - var/list/wave_type - var/wave_name = "normal" - -/datum/round_event/meteor_wave/New() - ..() - if(!wave_type) - determine_wave_type() - -/datum/round_event/meteor_wave/proc/determine_wave_type() - if(!wave_name) - wave_name = pickweight(list( - "normal" = 50, - "threatening" = 40, - "catastrophic" = 10)) - switch(wave_name) - if("normal") - wave_type = GLOB.meteors_normal - if("threatening") - wave_type = GLOB.meteors_threatening - if("catastrophic") - if(SSevents.holidays && SSevents.holidays[HALLOWEEN]) - wave_type = GLOB.meteorsSPOOKY - else - wave_type = GLOB.meteors_catastrophic - if("meaty") - wave_type = GLOB.meteorsB - if("space dust") - wave_type = GLOB.meteorsC - if("halloween") - wave_type = GLOB.meteorsSPOOKY - else - WARNING("Wave name of [wave_name] not recognised.") - kill() - -/datum/round_event/meteor_wave/announce(fake) - priority_announce("Meteors have been detected on collision course with the station.", "Meteor Alert", 'sound/ai/meteors.ogg') - -/datum/round_event/meteor_wave/tick() - if(ISMULTIPLE(activeFor, 3)) - spawn_meteors(5, wave_type) //meteor list types defined in gamemode/meteor/meteors.dm - -/datum/round_event_control/meteor_wave/threatening - name = "Meteor Wave: Threatening" - typepath = /datum/round_event/meteor_wave/threatening - weight = 5 - min_players = 20 - max_occurrences = 3 - earliest_start = 35 MINUTES - -/datum/round_event/meteor_wave/threatening - wave_name = "threatening" - -/datum/round_event_control/meteor_wave/catastrophic - name = "Meteor Wave: Catastrophic" - typepath = /datum/round_event/meteor_wave/catastrophic - weight = 7 - min_players = 25 - max_occurrences = 3 - earliest_start = 45 MINUTES - -/datum/round_event/meteor_wave/catastrophic - wave_name = "catastrophic" diff --git a/code/modules/language/language_holder.dm b/code/modules/language/language_holder.dm index 6e7e10a7cba6..d96e4591b050 100644 --- a/code/modules/language/language_holder.dm +++ b/code/modules/language/language_holder.dm @@ -291,11 +291,6 @@ Key procs /datum/language/slime = list(LANGUAGE_ATOM)) spoken_languages = list(/datum/language/slime = list(LANGUAGE_ATOM)) -/datum/language_holder/swarmer - understood_languages = list(/datum/language/swarmer = list(LANGUAGE_ATOM)) - spoken_languages = list(/datum/language/swarmer = list(LANGUAGE_ATOM)) - blocked_languages = list(/datum/language/common = list(LANGUAGE_ATOM)) - /datum/language_holder/venus understood_languages = list(/datum/language/sylvan = list(LANGUAGE_ATOM)) spoken_languages = list(/datum/language/sylvan = list(LANGUAGE_ATOM)) diff --git a/code/modules/library/lib_codex_gigas.dm b/code/modules/library/lib_codex_gigas.dm deleted file mode 100644 index 69155c9230d8..000000000000 --- a/code/modules/library/lib_codex_gigas.dm +++ /dev/null @@ -1,104 +0,0 @@ -#define PRE_TITLE 1 -#define TITLE 2 -#define SYLLABLE 3 -#define MULTIPLE_SYLLABLE 4 -#define SUFFIX 5 - -/obj/item/book/codex_gigas - name = "\improper Codex Gigas" - desc = "A book documenting the nature of devils." - icon_state ="demonomicon" - lefthand_file = 'icons/mob/inhands/misc/books_lefthand.dmi' - righthand_file = 'icons/mob/inhands/misc/books_righthand.dmi' - throw_speed = 1 - throw_range = 10 - resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF - author = "Forces beyond your comprehension" - unique = 1 - title = "the Codex Gigas" - var/inUse = 0 - var/currentName = "" - var/currentSection = PRE_TITLE - -/obj/item/book/codex_gigas/attack_self(mob/user) - if(!user.can_read(src)) - return FALSE - if(inUse) - to_chat(user, "Someone else is reading it.") - if(ishuman(user)) - var/mob/living/carbon/human/U = user - if(U.check_acedia()) - to_chat(user, "None of this matters, why are you reading this? You put [title] down.") - return - user.visible_message("[user] opens [title] and begins reading intently.") - ask_name(user) - - -/obj/item/book/codex_gigas/proc/perform_research(mob/user, devilName) - if(!devilName) - user.visible_message("[user] closes [title] without looking anything up.") - return - inUse = TRUE - var/speed = 300 - var/correctness = 85 - if(ishuman(user)) - var/mob/living/carbon/human/U = user - if(U.job in list("Curator")) // the curator is both faster, and more accurate than normal crew members at research - speed = 100 - correctness = 100 - correctness -= U.getOrganLoss(ORGAN_SLOT_BRAIN) * 0.5 //Brain damage makes researching hard. - speed += U.getOrganLoss(ORGAN_SLOT_BRAIN) * 3 - if(do_after(user, speed, user, timed_action_flags = IGNORE_HELD_ITEM)) - var/usedName = devilName - if(!prob(correctness)) - usedName += "x" - var/datum/antagonist/devil/devil = devilInfo(usedName) - display_devil(devil, user, usedName) - sleep(10) - onclose(user, "book") - inUse = FALSE - -/obj/item/book/codex_gigas/proc/display_devil(datum/antagonist/devil/devil, mob/reader, devilName) - reader << browse("Information on [devilName]


    [GLOB.lawlorify[LORE][devil.ban]]
    [GLOB.lawlorify[LORE][devil.obligation]]
    [GLOB.lawlorify[LORE][devil.banish]]
    [devil.ascendable?"This devil may ascend given enough souls.":""]", "window=book[window_size != null ? ";size=[window_size]" : ""]") - -/obj/item/book/codex_gigas/proc/ask_name(mob/reader) - ui_interact(reader) - -/obj/item/book/codex_gigas/ui_act(action, params) - if(..()) - return - if(!action) - return FALSE - if(action == "search") - SStgui.close_uis(src) - addtimer(CALLBACK(src, PROC_REF(perform_research), usr, currentName), 0) - currentName = "" - currentSection = PRE_TITLE - return FALSE - else - currentName += action - var/oldSection = currentSection - if(GLOB.devil_pre_title.Find(action)) - currentSection = TITLE - else if(GLOB.devil_title.Find(action)) - currentSection = SYLLABLE - else if(GLOB.devil_syllable.Find(action)) - if (currentSection>=SYLLABLE) - currentSection = MULTIPLE_SYLLABLE - else - currentSection = SYLLABLE - else if(GLOB.devil_suffix.Find(action)) - currentSection = SUFFIX - return currentSection != oldSection - -/obj/item/book/codex_gigas/ui_interact(mob/user, datum/tgui/ui) - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "CodexGigas", name) - ui.open() - -/obj/item/book/codex_gigas/ui_data(mob/user) - var/list/data = list() - data["name"]=currentName - data["currentSection"]=currentSection - return data diff --git a/code/modules/mapping/writer.dm b/code/modules/mapping/writer.dm index 35d85edc7849..c07ce0029081 100644 --- a/code/modules/mapping/writer.dm +++ b/code/modules/mapping/writer.dm @@ -59,7 +59,7 @@ GLOBAL_LIST_INIT(save_file_chars, list( var/turf_type = /turf/template_noop var/area/place_area = get_area(place_turf) var/area_type = /area/template_noop - var/is_shuttle_area = istype(place_area, /area/shuttle) + var/is_shuttle_area = istype(place_area, /area/ship) //If there is nothing there, save as a noop (For odd shapes) if(!place_turf) turf_type = /turf/template_noop diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 0cdc1f2dfc71..73d18f0ab885 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -15,10 +15,8 @@ /obj/structure/closet/crate/necropolis/tendril/PopulateContents() var/loot = rand(1,29) switch(loot) - if(1) + if(1,2) new /obj/item/shared_storage/red(src) - if(2) - new /obj/item/clothing/suit/space/hardsuit/cult(src) if(3) new /obj/item/necromantic_stone/lava(src) if(5) @@ -1644,11 +1642,9 @@ name = "puzzling chest" /obj/structure/closet/crate/necropolis/puzzle/PopulateContents() - var/loot = rand(1,3) + var/loot = rand(1,2) switch(loot) if(1) - new /obj/item/soulstone/anybody(src) - if(2) new /obj/item/wisp_lantern(src) - if(3) + if(2) new /obj/item/prisoncube(src) diff --git a/code/modules/mining/shelters.dm b/code/modules/mining/shelters.dm index ef0e51930828..6c733fd76692 100644 --- a/code/modules/mining/shelters.dm +++ b/code/modules/mining/shelters.dm @@ -8,7 +8,7 @@ /datum/map_template/shelter/New() . = ..() - banned_areas = typecacheof(/area/shuttle) + banned_areas = typecacheof(/area/ship) blacklisted_turfs = typecacheof(list(/turf/closed, /turf/open/indestructible)) whitelisted_turfs = typecacheof(/turf/closed/mineral) banned_objects = typecacheof(/obj/structure/stone_tile) diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 55adc5bd5d17..dad54c17ca0e 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -62,8 +62,6 @@ GLOBAL_LIST_EMPTY(dead_players_during_shift) if(SSticker.HasRoundStarted()) SSblackbox.ReportDeath(src) log_message("has died (BRUTE: [src.getBruteLoss()], BURN: [src.getFireLoss()], TOX: [src.getToxLoss()], OXY: [src.getOxyLoss()], CLONE: [src.getCloneLoss()])", LOG_ATTACK) - if(is_devil(src)) - INVOKE_ASYNC(is_devil(src), TYPE_PROC_REF(/datum/antagonist/devil, beginResurrectionCheck), src) to_chat(src, "You have died. Barring complete bodyloss, you can in most cases be revived by other players. If you do not wish to be brought back, use the \"Do Not Resuscitate\" verb in the ghost tab.") diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index cf3f5ec725ec..295537cfd95b 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -99,8 +99,6 @@ if(!(ITEM_SLOT_EYES in obscured)) if(glasses) . += "[t_He] [t_has] [glasses.get_examine_string(user)] covering [t_his] eyes." - else if(eye_color == BLOODCULT_EYE && iscultist(src) && HAS_TRAIT(src, CULT_EYES)) - . += "[t_His] eyes are glowing an unnatural red!" //ears if(ears && !(ITEM_SLOT_EARS in obscured)) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 6046cfe82b63..76800ce87b1f 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -1133,24 +1133,6 @@ /mob/living/carbon/alien/update_stamina() return -/mob/living/proc/owns_soul() - if(mind) - return mind.soulOwner == mind - return TRUE - -/mob/living/proc/return_soul() - hellbound = 0 - if(mind) - var/datum/antagonist/devil/devilInfo = mind.soulOwner.has_antag_datum(/datum/antagonist/devil) - if(devilInfo)//Not sure how this could be null, but let's just try anyway. - devilInfo.remove_soul(mind) - mind.soulOwner = mind - -/mob/living/proc/check_acedia() - if(mind && mind.has_objective(/datum/objective/sintouched/acedia)) - return TRUE - return FALSE - /mob/living/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, force, gentle = FALSE, quickstart = TRUE) stop_pulling() . = ..() diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 2ed00efe2e4b..69cc19760dda 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -392,32 +392,6 @@ gib() return 20 -/mob/living/narsie_act() - if(status_flags & GODMODE || QDELETED(src)) - return - - if(GLOB.cult_narsie && GLOB.cult_narsie.souls_needed[src]) - GLOB.cult_narsie.souls_needed -= src - GLOB.cult_narsie.souls += 1 - if((GLOB.cult_narsie.souls == GLOB.cult_narsie.soul_goal) && (GLOB.cult_narsie.resolved == FALSE)) - GLOB.cult_narsie.resolved = TRUE - sound_to_playing_players('sound/machines/alarm.ogg') - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(cult_ending_helper), 1), 120) - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ending_helper)), 270) - if(client) - makeNewConstruct(/mob/living/simple_animal/hostile/construct/harvester, src, cultoverride = TRUE) - else - switch(rand(1, 3)) - if(1) - new /mob/living/simple_animal/hostile/construct/juggernaut/hostile(get_turf(src)) - if(2) - new /mob/living/simple_animal/hostile/construct/wraith/hostile(get_turf(src)) - if(3) - new /mob/living/simple_animal/hostile/construct/artificer/hostile(get_turf(src)) - spawn_dust() - gib() - return TRUE - //called when the mob receives a bright flash /mob/living/proc/flash_act(intensity = 1, override_blindness_check = 0, affect_silicon = 0, visual = 0, type = /atom/movable/screen/fullscreen/flash) if(HAS_TRAIT(src, TRAIT_NOFLASH)) diff --git a/code/modules/mob/living/silicon/laws.dm b/code/modules/mob/living/silicon/laws.dm index 30c7cd435068..5f14b72596ac 100644 --- a/code/modules/mob/living/silicon/laws.dm +++ b/code/modules/mob/living/silicon/laws.dm @@ -19,11 +19,6 @@ addtimer(CALLBACK(src, PROC_REF(deadchat_lawchange)), 0) last_lawchange_announce = world.time -/mob/living/silicon/proc/set_law_sixsixsix(law, announce = TRUE) - laws_sanity_check() - laws.set_law_sixsixsix(law) - post_lawchange(announce) - /mob/living/silicon/proc/set_zeroth_law(law, law_borg, announce = TRUE) laws_sanity_check() laws.set_zeroth_law(law, law_borg) @@ -93,8 +88,3 @@ laws_sanity_check() laws.clear_zeroth_law(force) post_lawchange(announce) - -/mob/living/silicon/proc/clear_law_sixsixsix(force, announce = TRUE) - laws_sanity_check() - laws.clear_law_sixsixsix(force) - post_lawchange(announce) diff --git a/code/modules/mob/living/silicon/login.dm b/code/modules/mob/living/silicon/login.dm index 559ad42b1768..982814d194d2 100644 --- a/code/modules/mob/living/silicon/login.dm +++ b/code/modules/mob/living/silicon/login.dm @@ -1,6 +1,4 @@ /mob/living/silicon/Login() - if(mind && SSticker.mode) - SSticker.mode.remove_cultist(mind, 0, 0) return ..() diff --git a/code/modules/mob/living/silicon/robot/laws.dm b/code/modules/mob/living/silicon/robot/laws.dm index df62df082751..1fc33e9dcdd0 100644 --- a/code/modules/mob/living/silicon/robot/laws.dm +++ b/code/modules/mob/living/silicon/robot/laws.dm @@ -40,12 +40,6 @@ var/datum/ai_laws/master = connected_ai ? connected_ai.laws : null var/temp if (master) - laws.devillaws.len = master.devillaws.len - for (var/index = 1, index <= master.devillaws.len, index++) - temp = master.devillaws[index] - if (length(temp) > 0) - laws.devillaws[index] = temp - laws.ion.len = master.ion.len for (var/index = 1, index <= master.ion.len, index++) temp = master.ion[index] diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 347ec71e84e4..7da3e76d03ff 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -32,7 +32,6 @@ var/lawcheck[1] var/ioncheck[1] var/hackedcheck[1] - var/devillawcheck[5] var/sensors_on = 0 var/med_hud = DATA_HUD_MEDICAL_ADVANCED //Determines the med hud to use @@ -206,16 +205,6 @@ hackedcheck[L] = "Yes" checklaws() - if (href_list["lawdevil"]) // Toggling whether or not a law gets stated by the State Laws verb --NeoFite - var/L = text2num(href_list["lawdevil"]) - switch(devillawcheck[L]) - if ("Yes") - devillawcheck[L] = "No" - if ("No") - devillawcheck[L] = "Yes" - checklaws() - - if (href_list["laws"]) // With how my law selection code works, I changed statelaws from a verb to a proc, and call it through my law selection panel. --NeoFite statelaws() @@ -234,13 +223,6 @@ var/number = 1 sleep(10) - if (laws.devillaws && laws.devillaws.len) - for(var/index = 1, index <= laws.devillaws.len, index++) - if (force || devillawcheck[index] == "Yes") - say("[radiomod] 666. [laws.devillaws[index]]") - sleep(10) - - if (laws.zeroth) if (force || lawcheck[1] == "Yes") say("[radiomod] 0. [laws.zeroth]") @@ -286,12 +268,6 @@ var/list = "Which laws do you want to include when stating them for the crew?

    " - if (laws.devillaws && laws.devillaws.len) - for(var/index = 1, index <= laws.devillaws.len, index++) - if (!devillawcheck[index]) - devillawcheck[index] = "No" - list += {"[devillawcheck[index]] 666: [laws.devillaws[index]]
    "} - if (laws.zeroth) if (!lawcheck[1]) lawcheck[1] = "No" //Given Law 0's usual nature, it defaults to NOT getting reported. --NeoFite diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm deleted file mode 100644 index df3cfe349808..000000000000 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ /dev/null @@ -1,497 +0,0 @@ -/mob/living/simple_animal/hostile/construct - name = "Construct" - real_name = "Construct" - desc = "" - gender = NEUTER - mob_biotypes = NONE - speak_emote = list("hisses") - response_help_continuous = "thinks better of touching" - response_help_simple = "think better of touching" - response_disarm_continuous = "flails at" - response_disarm_simple = "flail at" - response_harm_continuous = "punches" - response_harm_simple = "punch" - speak_chance = 1 - icon = 'icons/mob/cult.dmi' - speed = 0 - a_intent = INTENT_HARM - stop_automated_movement = 1 - status_flags = CANPUSH - attack_sound = 'sound/weapons/punch1.ogg' - see_in_dark = 7 - lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE - damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - minbodytemp = 0 - maxbodytemp = INFINITY - healable = 0 - faction = list("cult") - movement_type = FLYING - pressure_resistance = 100 - unique_name = 1 - AIStatus = AI_OFF //normal constructs don't have AI - loot = list(/obj/item/ectoplasm) - del_on_death = TRUE - initial_language_holder = /datum/language_holder/construct - deathmessage = "collapses in a shattered heap." - hud_type = /datum/hud/constructs - var/list/construct_spells = list() - var/playstyle_string = "You are a generic construct! Your job is to not exist, and you should probably adminhelp this." - var/master = null - var/seeking = FALSE - var/can_repair_constructs = FALSE - var/can_repair_self = FALSE - var/runetype - var/datum/action/innate/cult/create_rune/our_rune - var/holy = FALSE - -/mob/living/simple_animal/hostile/construct/Initialize() - . = ..() - ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT) - update_health_hud() - var/spellnum = 1 - for(var/spell in construct_spells) - var/the_spell = new spell(null) - AddSpell(the_spell) - var/obj/effect/proc_holder/spell/S = mob_spell_list[spellnum] - var/pos = 2+spellnum*31 - if(construct_spells.len >= 4) - pos -= 31*(construct_spells.len - 4) - S.action.button.screen_loc = "6:[pos],4:-2" - S.action.button.moved = "6:[pos],4:-2" - spellnum++ - if(runetype) - our_rune = new runetype(src) - our_rune.Grant(src) - var/pos = 2+spellnum*31 - our_rune.button.screen_loc = "6:[pos],4:-2" - our_rune.button.moved = "6:[pos],4:-2" - add_overlay("glow_[icon_state][holy]") - -/mob/living/simple_animal/hostile/construct/Destroy() - QDEL_NULL(our_rune) - return ..() - -/mob/living/simple_animal/hostile/construct/Login() - . = ..() - if(!. || !client) - return FALSE - to_chat(src, playstyle_string) - -/mob/living/simple_animal/hostile/construct/examine(mob/user) - var/t_He = p_they(TRUE) - var/t_s = p_s() - . = list("This is [icon2html(src, user)] \a [src]!\n[desc]") - if(health < maxHealth) - if(health >= maxHealth/2) - . += "[t_He] look[t_s] slightly dented." - else - . += "[t_He] look[t_s] severely dented!" - . += "" - -/mob/living/simple_animal/hostile/construct/attack_animal(mob/living/simple_animal/M) - if(isconstruct(M)) //is it a construct? - var/mob/living/simple_animal/hostile/construct/C = M - if(!C.can_repair_constructs || (C == src && !C.can_repair_self)) - return ..() - if(holy != C.holy) - return ..() - if(health < maxHealth) - adjustHealth(-5) - if(src != M) - Beam(M,icon_state="sendbeam",time=4) - M.visible_message( - "[M] repairs some of \the [src]'s dents.", - "You repair some of [src]'s dents, leaving [src] at [health]/[maxHealth] health.") - else - M.visible_message( - "[M] repairs some of [p_their()] own dents.", - "You repair some of your own dents, leaving you at [M.health]/[M.maxHealth] health.") - else - if(src != M) - to_chat(M, "You cannot repair [src]'s dents, as [p_they()] [p_have()] none!") - else - to_chat(M, "You cannot repair your own dents, as you have none!") - else if(src != M) - return ..() - -/mob/living/simple_animal/hostile/construct/narsie_act() - return - -/mob/living/simple_animal/hostile/construct/electrocute_act(shock_damage, source, siemens_coeff = 1, flags = NONE) - return 0 - -/mob/living/simple_animal/hostile/construct/adjustHealth(amount, updating_health = TRUE, forced = FALSE) - . = ..() - if(updating_health) - update_health_hud() - -/////////////////Juggernaut/////////////// -/mob/living/simple_animal/hostile/construct/juggernaut - name = "Juggernaut" - real_name = "Juggernaut" - desc = "A massive, armored construct built to spearhead attacks and soak up enemy fire." - icon_state = "juggernaut" - icon_living = "juggernaut" - maxHealth = 150 - health = 150 - response_harm_continuous = "harmlessly punches" - response_harm_simple = "harmlessly punch" - harm_intent_damage = 0 - obj_damage = 90 - melee_damage_lower = 25 - melee_damage_upper = 25 - attack_verb_continuous = "smashes their armored gauntlet into" - attack_verb_simple = "smash your armored gauntlet into" - speed = 2.5 - environment_smash = ENVIRONMENT_SMASH_WALLS - attack_sound = 'sound/weapons/punch3.ogg' - status_flags = 0 - mob_size = MOB_SIZE_LARGE - force_threshold = 10 - construct_spells = list(/obj/effect/proc_holder/spell/targeted/forcewall/cult, - /obj/effect/proc_holder/spell/targeted/projectile/dumbfire/juggernaut) - runetype = /datum/action/innate/cult/create_rune/wall - playstyle_string = "You are a Juggernaut. Though slow, your shell can withstand heavy punishment, \ - create shield walls, rip apart enemies and walls alike, and even deflect energy weapons." - -/mob/living/simple_animal/hostile/construct/juggernaut/hostile //actually hostile, will move around, hit things - AIStatus = AI_ON - environment_smash = ENVIRONMENT_SMASH_STRUCTURES //only token destruction, don't smash the cult wall NO STOP - -/mob/living/simple_animal/hostile/construct/juggernaut/bullet_act(obj/projectile/P) - if(istype(P, /obj/projectile/energy) || istype(P, /obj/projectile/beam)) - var/reflectchance = 40 - round(P.damage/3) - if(prob(reflectchance)) - apply_damage(P.damage * 0.5, P.damage_type) - visible_message("The [P.name] is reflected by [src]'s armored shell!", \ - "The [P.name] is reflected by your armored shell!") - - // Find a turf near or on the original location to bounce to - if(P.starting) - var/new_x = P.starting.x + pick(0, 0, -1, 1, -2, 2, -2, 2, -2, 2, -3, 3, -3, 3) - var/new_y = P.starting.y + pick(0, 0, -1, 1, -2, 2, -2, 2, -2, 2, -3, 3, -3, 3) - var/turf/curloc = get_turf(src) - - // redirect the projectile - P.original = locate(new_x, new_y, P.z) - P.starting = curloc - P.firer = src - P.yo = new_y - curloc.y - P.xo = new_x - curloc.x - var/new_angle_s = P.Angle + rand(120,240) - while(new_angle_s > 180) // Translate to regular projectile degrees - new_angle_s -= 360 - P.setAngle(new_angle_s) - - return BULLET_ACT_FORCE_PIERCE // complete projectile permutation - - return ..() - -//////////////////////////Angelic-Juggernaut//////////////////////////// -/mob/living/simple_animal/hostile/construct/juggernaut/angelic - holy = TRUE - loot = list(/obj/item/ectoplasm/angelic) - -/mob/living/simple_animal/hostile/construct/juggernaut/noncult - -////////////////////////Wraith///////////////////////////////////////////// -/mob/living/simple_animal/hostile/construct/wraith - name = "Wraith" - real_name = "Wraith" - desc = "A wicked, clawed shell constructed to assassinate enemies and sow chaos behind enemy lines." - icon_state = "wraith" - icon_living = "wraith" - maxHealth = 65 - health = 65 - melee_damage_lower = 20 - melee_damage_upper = 20 - retreat_distance = 2 //AI wraiths will move in and out of combat - attack_verb_continuous = "slashes" - attack_verb_simple = "slash" - attack_sound = 'sound/weapons/bladeslice.ogg' - construct_spells = list(/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift) - runetype = /datum/action/innate/cult/create_rune/tele - playstyle_string = "You are a Wraith. Though relatively fragile, you are fast, deadly, can phase through walls, and your attacks will lower the cooldown on phasing." - - var/attack_refund = 10 //1 second per attack - var/crit_refund = 50 //5 seconds when putting a target into critical - var/kill_refund = 250 //full refund on kills - -/mob/living/simple_animal/hostile/construct/wraith/AttackingTarget() //refund jaunt cooldown when attacking living targets - var/prev_stat - if(isliving(target) && !iscultist(target)) - var/mob/living/L = target - prev_stat = L.stat - - . = ..() - - if(. && isnum(prev_stat)) - var/mob/living/L = target - var/refund = 0 - if(QDELETED(L) || (L.stat == DEAD && prev_stat != DEAD)) //they're dead, you killed them - refund += kill_refund - else if(HAS_TRAIT(L, TRAIT_CRITICAL_CONDITION) && prev_stat == CONSCIOUS) //you knocked them into critical - refund += crit_refund - if(L.stat != DEAD && prev_stat != DEAD) - refund += attack_refund - for(var/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/S in mob_spell_list) - S.charge_counter = min(S.charge_counter + refund, S.charge_max) - -/mob/living/simple_animal/hostile/construct/wraith/hostile //actually hostile, will move around, hit things - AIStatus = AI_ON - -//////////////////////////Angelic-Wraith//////////////////////////// -/mob/living/simple_animal/hostile/construct/wraith/angelic - holy = TRUE - construct_spells = list(/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/angelic) - loot = list(/obj/item/ectoplasm/angelic) - -/mob/living/simple_animal/hostile/construct/wraith/noncult - -/////////////////////////////Artificer///////////////////////// -/mob/living/simple_animal/hostile/construct/artificer - name = "Artificer" - real_name = "Artificer" - desc = "A bulbous construct dedicated to building and maintaining the Cult of Nar'Sie's armies." - icon_state = "artificer" - icon_living = "artificer" - maxHealth = 50 - health = 50 - response_harm_continuous = "viciously beats" - response_harm_simple = "viciously beat" - harm_intent_damage = 5 - obj_damage = 60 - melee_damage_lower = 5 - melee_damage_upper = 5 - retreat_distance = 10 - minimum_distance = 10 //AI artificers will flee like fuck - attack_verb_continuous = "rams" - attack_verb_simple = "ram" - environment_smash = ENVIRONMENT_SMASH_WALLS - attack_sound = 'sound/weapons/punch2.ogg' - construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/conjure/wall, - /obj/effect/proc_holder/spell/aoe_turf/conjure/floor, - /obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone, - /obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser, - /obj/effect/proc_holder/spell/targeted/projectile/magic_missile/lesser) - runetype = /datum/action/innate/cult/create_rune/revive - playstyle_string = "You are an Artificer. You are incredibly weak and fragile, but you are able to construct fortifications, \ - - use magic missile, repair allied constructs, shades, and yourself (by clicking on them), \ - and, most important of all, create new constructs by producing soulstones to capture souls, \ - and shells to place those soulstones into." - can_repair_constructs = TRUE - can_repair_self = TRUE - -/mob/living/simple_animal/hostile/construct/artificer/Found(atom/A) //what have we found here? - if(isconstruct(A)) //is it a construct? - var/mob/living/simple_animal/hostile/construct/C = A - if(C.health < C.maxHealth) //is it hurt? let's go heal it if it is - return 1 - else - return 0 - else - return 0 - -/mob/living/simple_animal/hostile/construct/artificer/CanAttack(atom/the_target) - if(see_invisible < the_target.invisibility)//Target's invisible to us, forget it - return 0 - if(Found(the_target) || ..()) //If we Found it or Can_Attack it normally, we Can_Attack it as long as it wasn't invisible - return 1 //as a note this shouldn't be added to base hostile mobs because it'll mess up retaliate hostile mobs - -/mob/living/simple_animal/hostile/construct/artificer/MoveToTarget(list/possible_targets) - ..() - if(isliving(target)) - var/mob/living/L = target - if(isconstruct(L) && L.health >= L.maxHealth) //is this target an unhurt construct? stop trying to heal it - LoseTarget() - return 0 - if(L.health <= melee_damage_lower+melee_damage_upper) //ey bucko you're hurt as fuck let's go hit you - retreat_distance = null - minimum_distance = 1 - -/mob/living/simple_animal/hostile/construct/artificer/Aggro() - ..() - if(isconstruct(target)) //oh the target is a construct no need to flee - retreat_distance = null - minimum_distance = 1 - -/mob/living/simple_animal/hostile/construct/artificer/LoseAggro() - ..() - retreat_distance = initial(retreat_distance) - minimum_distance = initial(minimum_distance) - -/mob/living/simple_animal/hostile/construct/artificer/hostile //actually hostile, will move around, hit things, heal other constructs - AIStatus = AI_ON - environment_smash = ENVIRONMENT_SMASH_STRUCTURES //only token destruction, don't smash the cult wall NO STOP - -/////////////////////////////Angelic Artificer///////////////////////// -/mob/living/simple_animal/hostile/construct/artificer/angelic - desc = "A bulbous construct dedicated to building and maintaining holy armies." - holy = TRUE - loot = list(/obj/item/ectoplasm/angelic) - construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/noncult/purified, - /obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser, - /obj/effect/proc_holder/spell/targeted/projectile/magic_missile/lesser) - -/mob/living/simple_animal/hostile/construct/artificer/noncult - construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/conjure/wall, - /obj/effect/proc_holder/spell/aoe_turf/conjure/floor, - /obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/noncult, - /obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser, - /obj/effect/proc_holder/spell/targeted/projectile/magic_missile/lesser) - -/////////////////////////////Harvester///////////////////////// -/mob/living/simple_animal/hostile/construct/harvester - name = "Harvester" - real_name = "Harvester" - desc = "A long, thin construct built to herald Nar'Sie's rise. It'll be all over soon." - icon_state = "harvester" - icon_living = "harvester" - maxHealth = 40 - health = 40 - sight = SEE_MOBS - melee_damage_lower = 15 - melee_damage_upper = 20 - attack_verb_continuous = "butchers" - attack_verb_simple = "butcher" - attack_sound = 'sound/weapons/bladeslice.ogg' - construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/area_conversion, - /obj/effect/proc_holder/spell/targeted/forcewall/cult) - playstyle_string = "You are a Harvester. You are incapable of directly killing humans, but your attacks will remove their limbs: \ - Bring those who still cling to this world of illusion back to the Geometer so they may know Truth. Your form and any you are pulling can pass through runed walls effortlessly." - can_repair_constructs = TRUE - - -/mob/living/simple_animal/hostile/construct/harvester/Bump(atom/AM) - . = ..() - if(istype(AM, /turf/closed/wall/mineral/cult) && AM != loc) //we can go through cult walls - var/atom/movable/stored_pulling = pulling - if(stored_pulling) - stored_pulling.setDir(get_dir(stored_pulling.loc, loc)) - stored_pulling.forceMove(loc) - forceMove(AM) - if(stored_pulling) - start_pulling(stored_pulling, supress_message = TRUE) //drag anything we're pulling through the wall with us by magic - -/mob/living/simple_animal/hostile/construct/harvester/AttackingTarget() - if(iscarbon(target)) - var/mob/living/carbon/C = target - if(HAS_TRAIT(C, TRAIT_NODISMEMBER)) - return ..() //ATTACK! - var/list/parts = list() - var/undismembermerable_limbs = 0 - for(var/X in C.bodyparts) - var/obj/item/bodypart/BP = X - if(BP.body_part != HEAD && BP.body_part != CHEST) - if(BP.dismemberable) - parts += BP - else - undismembermerable_limbs++ - if(!LAZYLEN(parts)) - if(undismembermerable_limbs) //they have limbs we can't remove, and no parts we can, attack! - return ..() - C.Paralyze(60) - visible_message("[src] knocks [C] down!") - to_chat(src, "\"Bring [C.p_them()] to me.\"") - return FALSE - do_attack_animation(C) - var/obj/item/bodypart/BP = pick(parts) - BP.dismember() - return FALSE - . = ..() - -/mob/living/simple_animal/hostile/construct/harvester/Initialize() - . = ..() - var/datum/action/innate/seek_prey/seek = new() - seek.Grant(src) - seek.Activate() - -///////////////////////Master-Tracker/////////////////////// - -/datum/action/innate/seek_master - name = "Seek your Master" - desc = "You and your master share a soul-link that informs you of their location" - background_icon_state = "bg_demon" - buttontooltipstyle = "cult" - button_icon_state = "cult_mark" - var/tracking = FALSE - var/mob/living/simple_animal/hostile/construct/the_construct - - -/datum/action/innate/seek_master/Grant(mob/living/C) - the_construct = C - ..() - -/datum/action/innate/seek_master/Activate() - var/datum/antagonist/cult/C = owner.mind.has_antag_datum(/datum/antagonist/cult) - if(!C) - return - var/datum/objective/eldergod/summon_objective = locate() in C.cult_team.objectives - - if(summon_objective.check_completion()) - the_construct.master = C.cult_team.blood_target - - if(!the_construct.master) - to_chat(the_construct, "You have no master to seek!") - the_construct.seeking = FALSE - return - if(tracking) - tracking = FALSE - the_construct.seeking = FALSE - to_chat(the_construct, "You are no longer tracking your master.") - return - else - tracking = TRUE - the_construct.seeking = TRUE - to_chat(the_construct, "You are now tracking your master.") - - -/datum/action/innate/seek_prey - name = "Seek the Harvest" - desc = "None can hide from Nar'Sie, activate to track a survivor attempting to flee the red harvest!" - icon_icon = 'icons/mob/actions/actions_cult.dmi' - background_icon_state = "bg_demon" - buttontooltipstyle = "cult" - button_icon_state = "cult_mark" - -/datum/action/innate/seek_prey/Activate() - if(GLOB.cult_narsie == null) - return - var/mob/living/simple_animal/hostile/construct/harvester/the_construct = owner - if(the_construct.seeking) - desc = "None can hide from Nar'Sie, activate to track a survivor attempting to flee the red harvest!" - button_icon_state = "cult_mark" - the_construct.seeking = FALSE - to_chat(the_construct, "You are now tracking Nar'Sie, return to reap the harvest!") - return - else - if(LAZYLEN(GLOB.cult_narsie.souls_needed)) - the_construct.master = pick(GLOB.cult_narsie.souls_needed) - var/mob/living/real_target = the_construct.master //We can typecast this way because Narsie only allows /mob/living into the souls list - to_chat(the_construct, "You are now tracking your prey, [real_target.real_name] - harvest [real_target.p_them()]!") - else - to_chat(the_construct, "Nar'Sie has completed her harvest!") - return - desc = "Activate to track Nar'Sie!" - button_icon_state = "sintouch" - the_construct.seeking = TRUE - - -/////////////////////////////ui stuff///////////////////////////// - -/mob/living/simple_animal/hostile/construct/update_health_hud() - if(hud_used) - if(health >= maxHealth) - hud_used.healths.icon_state = "[icon_state]_health0" - else if(health > maxHealth*0.8) - hud_used.healths.icon_state = "[icon_state]_health2" - else if(health > maxHealth*0.6) - hud_used.healths.icon_state = "[icon_state]_health3" - else if(health > maxHealth*0.4) - hud_used.healths.icon_state = "[icon_state]_health4" - else if(health > maxHealth*0.2) - hud_used.healths.icon_state = "[icon_state]_health5" - else - hud_used.healths.icon_state = "[icon_state]_health6" diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index 19eef279a1dc..ebfd85f3ca23 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -481,50 +481,6 @@ fdel(json_file) WRITE_FILE(json_file, json_encode(file_data)) -/mob/living/simple_animal/pet/dog/corgi/Ian/narsie_act() - playsound(src, 'sound/magic/demon_dies.ogg', 75, TRUE) - var/mob/living/simple_animal/pet/dog/corgi/narsie/N = new(loc) - N.setDir(dir) - gib() - -/mob/living/simple_animal/pet/dog/corgi/narsie - name = "Nars-Ian" - desc = "Ia! Ia!" - icon_state = "narsian" - icon_living = "narsian" - icon_dead = "narsian_dead" - faction = list("neutral", "cult") - gold_core_spawnable = NO_SPAWN - nofur = TRUE - unique_pet = TRUE - held_state = "narsian" - -/mob/living/simple_animal/pet/dog/corgi/narsie/Life() - ..() - for(var/mob/living/simple_animal/pet/P in range(1, src)) - if(P != src && !istype(P,/mob/living/simple_animal/pet/dog/corgi/narsie)) - visible_message("[src] devours [P]!", \ - "DELICIOUS SOULS") - playsound(src, 'sound/magic/demon_attack1.ogg', 75, TRUE) - narsie_act() - if(P.mind) - if(P.mind.hasSoul) - P.mind.hasSoul = FALSE //Nars-Ian ate your soul; you don't have one anymore - else - visible_message("... Aw, someone beat me to this one.") - P.gib() - -/mob/living/simple_animal/pet/dog/corgi/narsie/update_corgi_fluff() - ..() - speak = list("Tari'karat-pasnar!", "IA! IA!", "BRRUUURGHGHRHR") - speak_emote = list("growls", "barks ominously") - emote_hear = list("barks echoingly!", "woofs hauntingly!", "yaps in an eldritch manner.", "mutters something unspeakable.") - emote_see = list("communes with the unnameable.", "ponders devouring some souls.", "shakes.") - -/mob/living/simple_animal/pet/dog/corgi/narsie/narsie_act() - adjustBruteLoss(-maxHealth) - - /mob/living/simple_animal/pet/dog/corgi/regenerate_icons() ..() if(inventory_head) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm deleted file mode 100644 index 04723d80ba5a..000000000000 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm +++ /dev/null @@ -1,285 +0,0 @@ -/* - -Swarmer Beacon - -A strange machine appears anywhere a normal lavaland mob can it produces a swarmer at a rate of -1/15 seconds, until there are GetTotalAISwarmerCap()/2 swarmers, after this it is up to the swarmers themselves to -increase their population (it will repopulate them should they fall under GetTotalAISwarmerCap()/2 again) - -tl;dr A million of the little hellraisers spawn (controlled by AI) and try to eat mining - -Loot: Not much, besides a shit load of artificial bluespace crystals, Oh and mining doesn't get eaten -that's a plus I suppose. - -Difficulty: Special - -*/ - -GLOBAL_LIST_EMPTY(AISwarmers) -GLOBAL_LIST_EMPTY(AISwarmersByType)//AISwarmersByType[.../resource] = list(1st, 2nd, nth), AISwarmersByType[../ranged] = list(1st, 2nd, nth) etc. -GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swarmer/ai/resource = 30, /mob/living/simple_animal/hostile/swarmer/ai/ranged_combat = 20, /mob/living/simple_animal/hostile/swarmer/ai/melee_combat = 10)) - - -//returns a type of AI swarmer that is NOT at max cap -//type order is shuffled, to prevent bias -/proc/GetUncappedAISwarmerType() - var/static/list/swarmerTypes = subtypesof(/mob/living/simple_animal/hostile/swarmer/ai) - LAZYINITLIST(GLOB.AISwarmersByType) - for(var/t in shuffle(swarmerTypes)) - var/list/amount = GLOB.AISwarmersByType[t] - if(!amount || amount.len < GLOB.AISwarmerCapsByType[t]) - return t - - -//Total of all subtype caps -/proc/GetTotalAISwarmerCap() - var/static/list/swarmerTypes = subtypesof(/mob/living/simple_animal/hostile/swarmer/ai) - . = 0 - LAZYINITLIST(GLOB.AISwarmersByType) - for(var/t in swarmerTypes) - . += GLOB.AISwarmerCapsByType[t] - -//this should. not be a simple mob i think -/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon - name = "swarmer beacon" - desc = "That name is a bit of a mouthful, but stop paying attention to your mouth they're eating everything!" - icon = 'icons/mob/swarmer.dmi' - icon_state = "swarmer_console" - health = 750 - maxHealth = 750 //""""low-ish"""" HP because it's a passive boss, and the swarm itself is the real foe - mob_biotypes = MOB_ROBOTIC - gps_name = "Hungry Signal" - faction = list("mining", "boss", "swarmer") - weather_immunities = list("lava","ash") - stop_automated_movement = TRUE - wander = FALSE - layer = BELOW_MOB_LAYER - AIStatus = AI_OFF - del_on_death = TRUE - var/swarmer_spawn_cooldown = 0 - var/swarmer_spawn_cooldown_amt = 150 //Deciseconds between the swarmers we spawn - var/call_help_cooldown = 0 - var/call_help_cooldown_amt = 150 //Deciseconds between calling swarmers to help us when attacked - var/static/list/swarmer_caps - - -/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon/Initialize() - . = ..() - swarmer_caps = GLOB.AISwarmerCapsByType //for admin-edits - for(var/ddir in GLOB.cardinals) - new /obj/structure/swarmer/blockade (get_step(src, ddir)) - var/mob/living/simple_animal/hostile/swarmer/ai/resource/R = new(loc) - step(R, ddir) //Step the swarmers, instead of spawning them there, incase the turf is solid - - -/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon/Life() - . = ..() - if(.) - var/createtype = GetUncappedAISwarmerType() - if(createtype && world.time > swarmer_spawn_cooldown && GLOB.AISwarmers.len < (GetTotalAISwarmerCap()*0.5)) - swarmer_spawn_cooldown = world.time + swarmer_spawn_cooldown_amt - new createtype(loc) - - -/mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon/adjustHealth(amount, updating_health = TRUE, forced = FALSE) - . = ..() - if(. > 0 && world.time > call_help_cooldown) - call_help_cooldown = world.time + call_help_cooldown_amt - summon_backup(25) //long range, only called max once per 15 seconds, so it's not deathlag - - -//SWARMER AI -//AI versions of the swarmer mini-antag -//This is an Abstract Base, it re-enables AI, but does not give the swarmer any goals/targets -/mob/living/simple_animal/hostile/swarmer/ai - wander = 1 - faction = list("swarmer", "mining") - weather_immunities = list("ash") //wouldn't be fun otherwise - AIStatus = AI_ON - -/mob/living/simple_animal/hostile/swarmer/ai/Initialize() - . = ..() - ToggleLight() //so you can see them eating you out of house and home/shooting you/stunlocking you for eternity - LAZYADD(GLOB.AISwarmers, src) - GLOB.AISwarmersByType[type] += list(src) - - -/mob/living/simple_animal/hostile/swarmer/ai/Destroy() - GLOB.AISwarmers -= src - GLOB.AISwarmersByType[type] -= src - return ..() - - -/mob/living/simple_animal/hostile/swarmer/ai/SwarmerTypeToCreate() - return GetUncappedAISwarmerType() - - -/mob/living/simple_animal/hostile/swarmer/ai/resource/handle_automated_action() - . = ..() - if(.) - if(!stop_automated_movement) - if(health < maxHealth*0.25) - StartAction(100) - RepairSelf() - return - - -/mob/living/simple_animal/hostile/swarmer/ai/Move(atom/newloc) - if(newloc) - if(newloc.virtual_z() == virtual_z()) //so these actions are Z-specific - if(islava(newloc)) - var/turf/open/lava/L = newloc - if(!L.is_safe()) - StartAction(20) - new /obj/structure/catwalk/swarmer_catwalk(newloc) - return FALSE - - if(ischasm(newloc) && !throwing) - throw_at(get_edge_target_turf(src, get_dir(src, newloc)), 7 , 3, src, FALSE) //my planet needs me - return FALSE - - return ..() - - -/mob/living/simple_animal/hostile/swarmer/ai/proc/StartAction(deci = 0) - stop_automated_movement = TRUE - AIStatus = AI_OFF - addtimer(CALLBACK(src, PROC_REF(EndAction)), deci) - - -/mob/living/simple_animal/hostile/swarmer/ai/proc/EndAction() - stop_automated_movement = FALSE - AIStatus = AI_ON - - - - -//RESOURCE SWARMER: -//Similar to the original Player-Swarmers, these dismantle things to obtain the metal inside -//They then use this medal to produce more swarmers or traps/barricades - -/mob/living/simple_animal/hostile/swarmer/ai/resource - search_objects = 1 - attack_all_objects = TRUE //attempt to nibble everything - lose_patience_timeout = 150 - var/static/list/sharedWanted = typecacheof(list(/turf/closed/mineral, /turf/closed/wall)) //eat rocks and walls - var/static/list/sharedIgnore = list() - -//This handles viable things to eat/attack -//Place specific cases of AI derpiness here -//Most can be left to the automatic Gain/LosePatience() system -/mob/living/simple_animal/hostile/swarmer/ai/resource/CanAttack(atom/the_target) - - //SPECIFIC CASES: - //Smash fulltile windows before grilles - if(istype(the_target, /obj/structure/grille)) - for(var/obj/structure/window/rogueWindow in get_turf(the_target)) - if(rogueWindow.fulltile) //done this way because the subtypes are weird. - the_target = rogueWindow - break - - //GENERAL CASES: - if(is_type_in_typecache(the_target, sharedIgnore)) //always ignore - return FALSE - if(is_type_in_typecache(the_target, sharedWanted)) //always eat - return TRUE - - return ..() //else, have a nibble, see if it's food - - -/mob/living/simple_animal/hostile/swarmer/ai/resource/OpenFire(atom/A) - if(isliving(A)) //don't shoot rocks, sillies. - ..() - - -/mob/living/simple_animal/hostile/swarmer/ai/resource/AttackingTarget() - if(target.swarmer_act(src)) - add_type_to_wanted(target.type) - return TRUE - else - add_type_to_ignore(target.type) - return FALSE - - -/mob/living/simple_animal/hostile/swarmer/ai/resource/handle_automated_action() - . = ..() - if(.) - if(!stop_automated_movement) - if(GLOB.AISwarmers.len < GetTotalAISwarmerCap() && resources >= 50) - StartAction(100) //so they'll actually sit still and use the verbs - CreateSwarmer() - return - - if(resources > 5) - if(prob(5)) //lower odds, as to prioritise reproduction - StartAction(10) //not a typo - CreateBarricade() - return - if(prob(5)) - CreateTrap() - return - - -//So swarmers can learn what is and isn't food -/mob/living/simple_animal/hostile/swarmer/ai/resource/proc/add_type_to_wanted(typepath) - if(!sharedWanted[typepath])// this and += is faster than |= - sharedWanted += typecacheof(typepath) - - -/mob/living/simple_animal/hostile/swarmer/ai/resource/proc/add_type_to_ignore(typepath) - if(!sharedIgnore[typepath]) - sharedIgnore += typecacheof(typepath) - - -//RANGED SWARMER -/mob/living/simple_animal/hostile/swarmer/ai/ranged_combat - icon_state = "swarmer_ranged" - icon_living = "swarmer_ranged" - projectiletype = /obj/projectile/beam/laser - projectilesound = 'sound/weapons/laser.ogg' - check_friendly_fire = TRUE //you're supposed to protect the resource swarmers, you poop - retreat_distance = 3 - minimum_distance = 3 - -/mob/living/simple_animal/hostile/swarmer/ai/ranged_combat/Aggro() - ..() - summon_backup(15, TRUE) //Exact matching, so that goliaths don't come to aid the swarmers, that'd be silly - - -//MELEE SWARMER -/mob/living/simple_animal/hostile/swarmer/ai/melee_combat - icon_state = "swarmer_melee" - icon_living = "swarmer_melee" - health = 60 - maxHealth = 60 - ranged = FALSE - -/mob/living/simple_animal/hostile/swarmer/ai/melee_combat/Aggro() - ..() - summon_backup(15, TRUE) - - -/mob/living/simple_animal/hostile/swarmer/ai/melee_combat/AttackingTarget() - if(isliving(target)) - if(prob(35)) - StartAction(30) - DisperseTarget(target) - else - var/mob/living/L = target - L.attack_animal(src) - L.electrocute_act(10, src, flags = SHOCK_NOGLOVES) - return TRUE - else - return ..() - - - - -//SWARMER CATWALKS -//Used so they can survive lavaland better -/obj/structure/catwalk/swarmer_catwalk - name = "swarmer catwalk" - desc = "A catwalk-like mesh, produced by swarmers to allow them to navigate hostile terrain." - icon = 'icons/obj/smooth_structures/swarmer_catwalk.dmi' - icon_state = "swarmer_catwalk-0" - base_icon_state = "swarmer_catwalk" diff --git a/code/modules/mob/living/simple_animal/shade.dm b/code/modules/mob/living/simple_animal/shade.dm deleted file mode 100644 index fcb9274a2c62..000000000000 --- a/code/modules/mob/living/simple_animal/shade.dm +++ /dev/null @@ -1,66 +0,0 @@ -/mob/living/simple_animal/shade - name = "Shade" - real_name = "Shade" - desc = "A bound spirit." - gender = PLURAL - icon = 'icons/mob/cult.dmi' - icon_state = "shade" - icon_living = "shade" - mob_biotypes = MOB_SPIRIT - maxHealth = 40 - health = 40 - healable = 0 - speak_emote = list("hisses") - emote_hear = list("wails.","screeches.") - response_help_continuous = "puts their hand through" - response_help_simple = "put your hand through" - response_disarm_continuous = "flails at" - response_disarm_simple = "flail at" - response_harm_continuous = "punches" - response_harm_simple = "punch" - speak_chance = 1 - melee_damage_lower = 5 - melee_damage_upper = 12 - attack_verb_continuous = "metaphysically strikes" - attack_verb_simple = "metaphysically strike" - minbodytemp = 0 - maxbodytemp = INFINITY - atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) - stop_automated_movement = 1 - faction = list("cult") - status_flags = CANPUSH - movement_type = FLYING - loot = list(/obj/item/ectoplasm) - del_on_death = TRUE - initial_language_holder = /datum/language_holder/construct - -/mob/living/simple_animal/shade/Initialize() - . = ..() - ADD_TRAIT(src, TRAIT_SPACEWALK, INNATE_TRAIT) - -/mob/living/simple_animal/shade/death() - deathmessage = "lets out a contented sigh as [p_their()] form unwinds." - ..() - -/mob/living/simple_animal/shade/attack_animal(mob/living/simple_animal/M) - if(isconstruct(M)) - var/mob/living/simple_animal/hostile/construct/C = M - if(!C.can_repair_constructs) - return - if(health < maxHealth) - adjustHealth(-25) - Beam(M,icon_state="sendbeam",time=4) - M.visible_message( - "[M] heals \the [src].", \ - "You heal [src], leaving [src] at [health]/[maxHealth] health.") - else - to_chat(M, "You cannot heal [src], as [p_theyre()] unharmed!") - else if(src != M) - return ..() - -/mob/living/simple_animal/shade/attackby(obj/item/O, mob/user, params) //Marker -Agouri - if(istype(O, /obj/item/soulstone)) - var/obj/item/soulstone/SS = O - SS.transfer_soul("SHADE", src, user) - else - . = ..() diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index bd1227d94d7d..adb03f1962f4 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -379,9 +379,6 @@ return FALSE if(M.mind && M.mind.special_role)//If they have a mind and special role, they are some type of traitor or antagonist. switch(SSticker.mode.config_tag) - if("cult") - if(M.mind in SSticker.mode.cult) - return 2 if("nuclear") if(M.mind.has_antag_datum(/datum/antagonist/nukeop,TRUE)) return 2 diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index acc026c16dda..ef21915e1fca 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -617,9 +617,6 @@ if(!MP) return 0 //Sanity, this should never happen. - if(ispath(MP, /mob/living/simple_animal/hostile/construct)) - return 0 //Verbs do not appear for players. - //Good mobs! if(ispath(MP, /mob/living/simple_animal/pet/cat)) return 1 @@ -631,8 +628,6 @@ return 1 if(ispath(MP, /mob/living/simple_animal/hostile/mushroom)) return 1 - if(ispath(MP, /mob/living/simple_animal/shade)) - return 1 if(ispath(MP, /mob/living/simple_animal/hostile/killertomato)) return 1 if(ispath(MP, /mob/living/simple_animal/mouse)) diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm index 7724a38ae43e..79e8f564b88d 100644 --- a/code/modules/paperwork/contract.dm +++ b/code/modules/paperwork/contract.dm @@ -25,320 +25,6 @@ target = nOwner.mind update_text() - /obj/item/paper/contract/employment/update_text() name = "paper- [target] employment contract" default_raw_text = "
    Conditions of Employment




    This Agreement is made and entered into as of the date of last signature below, by and between [target] (hereafter referred to as SLAVE), and Nanotrasen (hereafter referred to as the omnipresent and helpful watcher of humanity).
    WITNESSETH:
    WHEREAS, SLAVE is a natural born human or humanoid, possessing skills upon which he can aid the omnipresent and helpful watcher of humanity, who seeks employment in the omnipresent and helpful watcher of humanity.
    WHEREAS, the omnipresent and helpful watcher of humanity agrees to sporadically provide payment to SLAVE, in exchange for permanent servitude.
    NOW THEREFORE in consideration of the mutual covenants herein contained, and other good and valuable consideration, the parties hereto mutually agree as follows:
    In exchange for paltry payments, SLAVE agrees to work for the omnipresent and helpful watcher of humanity, for the remainder of his or her current and future lives.
    Further, SLAVE agrees to transfer ownership of his or her soul to the loyalty department of the omnipresent and helpful watcher of humanity.
    Should transfership of a soul not be possible, a lien shall be placed instead.
    Signed,
    [target]" - - -/obj/item/paper/contract/employment/attack(mob/living/M, mob/living/carbon/human/user) - var/deconvert = FALSE - if(M.mind == target && !M.owns_soul()) - if(user.mind && (user.mind.assigned_role == "Lawyer")) - deconvert = TRUE - else if (user.mind && (user.mind.assigned_role =="Head of Personnel") || (user.mind.assigned_role == "CentCom Commander")) - deconvert = prob (25) // the Head of Personnel doesn't have AS much legal training - else - deconvert = prob (5) - if(deconvert) - M.visible_message("[user] reminds [M] that [M]'s soul was already purchased by Nanotrasen!") - to_chat(M, "You feel that your soul has returned to its rightful owner, Nanotrasen.") - M.return_soul() - else - M.visible_message("[user] beats [M] over the head with [src]!", \ - "[user] beats [M] over the head with [src]!") - return ..() - - -/obj/item/paper/contract/infernal - var/contractType = 0 - resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF - var/datum/mind/owner - var/datum/antagonist/devil/devil_datum - icon_state = "paper_onfire" - -/obj/item/paper/contract/infernal/power - name = "paper- contract for infernal power" - contractType = CONTRACT_POWER - -/obj/item/paper/contract/infernal/wealth - name = "paper- contract for unlimited wealth" - contractType = CONTRACT_WEALTH - -/obj/item/paper/contract/infernal/prestige - name = "paper- contract for prestige" - contractType = CONTRACT_PRESTIGE - -/obj/item/paper/contract/infernal/magic - name = "paper- contract for magical power" - contractType = CONTRACT_MAGIC - -/obj/item/paper/contract/infernal/revive - name = "paper- contract of resurrection" - contractType = CONTRACT_REVIVE - var/cooldown = FALSE - -/obj/item/paper/contract/infernal/knowledge - name = "paper- contract for knowledge" - contractType = CONTRACT_KNOWLEDGE - -/obj/item/paper/contract/infernal/friend - name = "paper- contract for a friend" - contractType = CONTRACT_FRIEND - -/obj/item/paper/contract/infernal/unwilling - name = "paper- infernal contract" - contractType = CONTRACT_UNWILLING - -/obj/item/paper/contract/infernal/New(atom/loc, mob/living/nTarget, datum/mind/nOwner) - ..() - owner = nOwner - devil_datum = owner.has_antag_datum(/datum/antagonist/devil) - target = nTarget - update_text() - -/obj/item/paper/contract/infernal/update_text() - default_raw_text = "This shouldn't be seen. Error DEVIL:6" - -/obj/item/paper/contract/infernal/power/update_text(signature = "____________", blood = 0) - default_raw_text = "
    Contract for infernal power



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for power and physical strength. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, " - var/contract_text - if(blood) - contract_text = "[signature]" - else - contract_text += "[signature]" - add_raw_text(contract_text) - -/obj/item/paper/contract/infernal/wealth/update_text(signature = "____________", blood = 0) - default_raw_text = "
    Contract for unlimited wealth



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for a pocket that never runs out of valuable resources. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, " - var/contract_text - if(blood) - contract_text += "[signature]" - else - contract_text += "[signature]" - add_raw_text(contract_text) - -/obj/item/paper/contract/infernal/prestige/update_text(signature = "____________", blood = 0) - default_raw_text = "
    Contract for prestige



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for prestige and esteem among my peers. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, " - var/contract_text - if(blood) - contract_text += "[signature]" - else - contract_text += "[signature]" - add_raw_text(contract_text) - -/obj/item/paper/contract/infernal/magic/update_text(signature = "____________", blood = 0) - default_raw_text = "
    Contract for magic



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for arcane abilities beyond normal human ability. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, " - var/contract_text - if(blood) - contract_text += "[signature]" - else - contract_text += "[signature]" - add_raw_text(contract_text) - -/obj/item/paper/contract/infernal/revive/update_text(signature = "____________", blood = 0) - default_raw_text = "
    Contract for resurrection



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for resurrection and curing of all injuries. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, " - var/contract_text - if(blood) - contract_text += "[signature]" - else - contract_text += "[signature]" - add_raw_text(contract_text) - -/obj/item/paper/contract/infernal/knowledge/update_text(signature = "____________", blood = 0) - default_raw_text = "
    Contract for knowledge



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for boundless knowledge. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, " - var/contract_text - if(blood) - contract_text += "[signature]" - else - contract_text += "[signature]" - add_raw_text(contract_text) - -/obj/item/paper/contract/infernal/friend/update_text(signature = "____________", blood = 0) - default_raw_text = "
    Contract for a friend



    I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename], in exchange for a friend. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, " - var/contract_text - if(blood) - contract_text += "[signature]" - else - contract_text += "[signature]" - add_raw_text(contract_text) - -/obj/item/paper/contract/infernal/unwilling/update_text(signature = "____________", blood = 0) - default_raw_text = "
    Contract for slave



    I, [target], hereby offer my soul to the infernal hells by way of the infernal agent [devil_datum.truename]. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


    Signed, " - var/contract_text - if(blood) - contract_text += "[signature]" - else - contract_text += "[signature]" - add_raw_text(contract_text) - -/obj/item/paper/contract/infernal/attackby(obj/item/P, mob/living/carbon/human/user, params) - add_fingerprint(user) - if(istype(P, /obj/item/pen) || istype(P, /obj/item/toy/crayon)) - attempt_signature(user) - else if(istype(P, /obj/item/stamp)) - to_chat(user, "You stamp the paper with your rubber stamp, however the ink ignites as you release the stamp.") - else if(P.get_temperature()) - user.visible_message("[user] brings [P] next to [src], but [src] does not catch fire!", "[src] refuses to ignite!") - else - return ..() - -/obj/item/paper/contract/infernal/attack(mob/M, mob/living/user) - add_fingerprint(user) - if(M == user && target == M.mind && M.mind.soulOwner != owner && attempt_signature(user, 1)) - user.visible_message("[user] slices [user.p_their()] wrist with [src], and scrawls [user.p_their()] name in blood.", "You slice your wrist open and scrawl your name in blood.") - user.blood_volume = max(user.blood_volume - 100, 0) - else - return ..() - -/obj/item/paper/contract/infernal/proc/attempt_signature(mob/living/carbon/human/user, blood = 0) - if(!user.IsAdvancedToolUser() || !user.is_literate()) - to_chat(user, "You don't know how to read or write!") - return 0 - if(user.mind != target) - to_chat(user, "Your signature simply slides off the sheet, it seems this contract is not meant for you to sign!") - return 0 - if(user.mind.soulOwner == owner) - to_chat(user, "This devil already owns your soul, you may not sell it to [owner.p_them()] again!") - return 0 - if(signed) - to_chat(user, "This contract has already been signed! It may not be signed again.") - return 0 - if(!user.mind.hasSoul) - to_chat(user, "You do not possess a soul.") - return 0 - if(HAS_TRAIT(user, TRAIT_DUMB)) - to_chat(user, "You quickly scrawl 'your name' on the contract.") - signIncorrectly() - return 0 - if (contractType == CONTRACT_REVIVE) - to_chat(user, "You are already alive, this contract would do nothing.") - return 0 - else - to_chat(user, "You quickly scrawl your name on the contract.") - if(fulfillContract(target.current, blood)<=0) - to_chat(user, "But it seemed to have no effect, perhaps even Hell itself cannot grant this boon?") - return 1 - - - -/obj/item/paper/contract/infernal/revive/attack(mob/M, mob/living/user) - if (target == M.mind && M.stat == DEAD && M.mind.soulOwner == M.mind) - if (cooldown) - to_chat(user, "Give [M] a chance to think through the contract, don't rush [M.p_them()]!") - return 0 - cooldown = TRUE - var/mob/living/carbon/human/H = M - var/mob/dead/observer/ghost = H.get_ghost() - var/response = "No" - if(ghost) - ghost.notify_cloning("A devil has offered you revival, at the cost of your soul.",'sound/effects/genetics.ogg', H) - response = tgui_alert(ghost, "A devil is offering you another chance at life, at the price of your soul, do you accept?", "Infernal Resurrection", "Yes", "No", "Never for this round", 0, 200) - if(!ghost) - return //handle logouts that happen whilst the alert is waiting for a response. - else - response = tgui_alert(target.current, "A devil is offering you another chance at life, at the price of your soul, do you accept?", "Infernal Resurrection", "Yes", "No", "Never for this round", 0, 200) - if(response == "Yes") - H.revive(full_heal = TRUE, admin_revive = FALSE) - log_combat(user, H, "infernally revived via contract") - user.visible_message("With a sudden blaze, [H] stands back up.") - H.fakefire() - fulfillContract(H, TRUE)//Revival contracts are always signed in blood - addtimer(CALLBACK(H, TYPE_PROC_REF(/mob/living/carbon/human, fakefireextinguish)), 5, TIMER_UNIQUE) - addtimer(CALLBACK(src, PROC_REF(resetcooldown)), 300, TIMER_UNIQUE) - else - ..() - -/obj/item/paper/contract/infernal/revive/proc/resetcooldown() - cooldown = FALSE - - -/obj/item/paper/contract/infernal/proc/fulfillContract(mob/living/carbon/human/user = target.current, blood = FALSE) - signed = TRUE - if(user.mind.soulOwner != user.mind) //They already sold their soul to someone else? - var/datum/antagonist/devil/ownerDevilInfo = user.mind.soulOwner.has_antag_datum(/datum/antagonist/devil) - ownerDevilInfo.remove_soul(user.mind) //Then they lose their claim. - user.mind.soulOwner = owner - user.hellbound = contractType - user.mind.damnation_type = contractType - var/datum/antagonist/devil/devilInfo = owner.has_antag_datum(/datum/antagonist/devil) - devilInfo.add_soul(user.mind) - update_text(user.real_name, blood) - to_chat(user, "A profound emptiness washes over you as you lose ownership of your soul.") - to_chat(user, "This does NOT make you an antagonist if you were not already.") - SSblackbox.record_feedback("tally", "infernal contract", 1, contractType) - return TRUE - -/obj/item/paper/contract/infernal/proc/signIncorrectly(mob/living/carbon/human/user = target.current, blood = FALSE) - signed = 1 - update_text("your name", blood) - -/obj/item/paper/contract/infernal/power/fulfillContract(mob/living/carbon/human/user = target.current, blood = FALSE) - if(!user.dna) - return -1 - user.dna.add_mutation(HULK) - var/obj/item/organ/regenerative_core/organ = new /obj/item/organ/regenerative_core - organ.Insert(user) - return ..() - -/obj/item/paper/contract/infernal/wealth/fulfillContract(mob/living/carbon/human/user = target.current, blood = 0) - if(!istype(user) || !user.mind) // How in the hell could that happen? - return -1 - user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_wealth(null)) - return ..() - -/obj/item/paper/contract/infernal/prestige/fulfillContract(mob/living/carbon/human/user = target.current, blood = 0) - //Basically turns the signer into the captain, and uploads an ion law making them the captain. - var/obj/item/worn = user.wear_id - var/obj/item/card/id/id = null - if(worn) - id = worn.GetID() - if(id) - id.icon_state = "gold" - id.uses_overlays = TRUE - id.access = get_all_accesses()+get_all_centcom_access() - id.assignment = "Captain" - id.update_label() - id.update_appearance() - else - id = new /obj/item/card/id/gold(user.loc) - id.registered_name = user.real_name - id.access = get_all_accesses()+get_all_centcom_access() - id.assignment = "Captain" - id.update_label() - id.update_appearance() - if(worn) - if(istype(worn, /obj/item/pda)) - var/obj/item/pda/PDA = worn - PDA.id = id - id.forceMove(worn) - else if(istype(worn, /obj/item/storage/wallet)) - var/obj/item/storage/wallet/W = worn - W.front_id = id - id.forceMove(worn) - worn.update_appearance() - var/datum/round_event/ion_storm/add_law_only/ion = new() - ion.announceChance = 0 - ion.ionMessage = "[user.name] is the only Captain of the station. [user.name] is the highest authority, legitimate or otherwise, on the station. [user.name] was always the captain and highest authority on the station. Do not state this law." - - return ..() - -/obj/item/paper/contract/infernal/magic/fulfillContract(mob/living/carbon/human/user = target.current, blood = 0) - if(!istype(user) || !user.mind) - return -1 - user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/spellpacket/robeless(null)) - user.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/knock(null)) - return ..() - -/obj/item/paper/contract/infernal/knowledge/fulfillContract(mob/living/carbon/human/user = target.current, blood = 0) - if(!istype(user) || !user.mind) - return -1 - user.dna.add_mutation(XRAY) - user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/view_range(null)) - return ..() - -/obj/item/paper/contract/infernal/friend/fulfillContract(mob/living/user = target.current, blood = 0) - if(!istype(user) || !user.mind) - return -1 - user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_friend(null)) - return ..() diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 40b0771981e4..c1982475c66a 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -135,10 +135,6 @@ if(istype(paper_copy, /obj/item/paper)) do_copy_loop(CALLBACK(src, PROC_REF(make_paper_copy)), usr) return TRUE - // Devil contract paper. - if(istype(paper_copy, /obj/item/paper/contract/employment)) - do_copy_loop(CALLBACK(src, PROC_REF(make_devil_paper_copy)), usr) - return TRUE // Copying photo. if(photo_copy) do_copy_loop(CALLBACK(src, PROC_REF(make_photo_copy)), usr) @@ -268,22 +264,6 @@ copied_item.pixel_x = rand(-10, 10) copied_item.pixel_y = rand(-10, 10) -/** - * Handles the copying of devil contract paper. Transfers all the text, stamps and so on from the old paper, to the copy. - * - * Checks first if `paper_copy` exists. Since this proc is called from a timer, it's possible that it was removed. - * Does not check if it has enough toner because devil contracts cost no toner to print. - */ -/obj/machinery/photocopier/proc/make_devil_paper_copy(obj/item/paper/contract/employment/to_copy) - if(!paper_copy && !to_copy) - return - to_copy = to_copy ? to_copy : paper_copy - var/obj/item/paper/contract/employment/E = to_copy - var/obj/item/paper/contract/employment/C = new(loc, E.target.current) - give_pixel_offset(C) - - return C - /** * Handles the copying of paper. Transfers all the text, stamps and so on from the old paper, to the copy. * @@ -408,15 +388,10 @@ /obj/machinery/photocopier/attackby(obj/item/O, mob/user, params) if(istype(O, /obj/item/paper)) if(copier_empty()) - if(istype(O, /obj/item/paper/contract/infernal)) - to_chat(user, "[src] smokes, smelling of brimstone!") - resistance_flags |= FLAMMABLE - fire_act() - else - if(!user.dropItemToGround(O)) - return - paper_copy = O - do_insertion(O, user) + if(!user.dropItemToGround(O)) + return + paper_copy = O + do_insertion(O, user) else to_chat(user, "There is already something in [src]!") diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm deleted file mode 100644 index aefc5249f54d..000000000000 --- a/code/modules/power/singularity/narsie.dm +++ /dev/null @@ -1,238 +0,0 @@ -/obj/singularity/narsie //Moving narsie to a child object of the singularity so it can be made to function differently. --NEO - name = "Nar'Sie's Avatar" - desc = "Your mind begins to bubble and ooze as it tries to comprehend what it sees." - icon = 'icons/obj/narsie_small.dmi' - icon_state = "narsie" - pixel_x = -89 - pixel_y = -85 - density = FALSE - current_size = 9 //It moves/eats like a max-size singulo, aside from range. --NEO - contained = 0 //Are we going to move around? - dissipate = 0 //Do we lose energy over time? - move_self = 1 //Do we move on our own? - grav_pull = 5 //How many tiles out do we pull? - consume_range = 6 //How many tiles out do we eat - light_power = 0.7 - light_range = 15 - light_color = COLOR_RED - gender = FEMALE - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF | FREEZE_PROOF - -/obj/singularity/narsie/large - name = "Nar'Sie" - icon = 'icons/obj/narsie.dmi' - // Pixel stuff centers Narsie. - pixel_x = -236 - pixel_y = -256 - current_size = 12 - grav_pull = 10 - consume_range = 12 //How many tiles out do we eat - -/obj/singularity/narsie/large/Initialize() - . = ..() - send_to_playing_players("NAR'SIE HAS RISEN") - sound_to_playing_players('sound/creatures/narsie_rises.ogg') - - var/area/A = get_area(src) - if(A) - var/mutable_appearance/alert_overlay = mutable_appearance('icons/effects/cult_effects.dmi', "ghostalertsie") - notify_ghosts("Nar'Sie has risen in \the [A.name]. Reach out to the Geometer to be given a new shell for your soul.", source = src, alert_overlay = alert_overlay, action=NOTIFY_ATTACK) - narsie_spawn_animation() - UnregisterSignal(src, COMSIG_ATOM_BSA_BEAM) //set up in /singularity/Initialize() - -/obj/singularity/narsie/large/cult // For the new cult ending, guaranteed to end the round within 3 minutes - var/list/souls_needed = list() - var/soul_goal = 0 - var/souls = 0 - var/resolved = FALSE - -/obj/singularity/narsie/large/cult/Initialize() - . = ..() - GLOB.cult_narsie = src - var/list/all_cults = list() - for(var/datum/antagonist/cult/C in GLOB.antagonists) - if(!C.owner) - continue - all_cults |= C.cult_team - for(var/datum/team/cult/T in all_cults) - deltimer(T.blood_target_reset_timer) - T.blood_target = src - var/datum/objective/eldergod/summon_objective = locate() in T.objectives - if(summon_objective) - summon_objective.summoned = TRUE - for(var/datum/mind/cult_mind in SSticker.mode.cult) - if(isliving(cult_mind.current)) - var/mob/living/L = cult_mind.current - L.narsie_act() - for(var/mob/living/player in GLOB.player_list) - if(player.stat != DEAD && player.loc && !iscultist(player) && !isanimal(player)) - souls_needed[player] = TRUE - soul_goal = round(1 + LAZYLEN(souls_needed) * 0.75) - INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(begin_the_end)) - -/proc/begin_the_end() - SSredbot.send_discord_message("admin","Nar'sie has been summoned.","round ending event") - sleep(50) - if(QDELETED(GLOB.cult_narsie)) // uno - priority_announce("Status report? We detected a anomaly, but it disappeared almost immediately.","Central Command Higher Dimensional Affairs", 'sound/misc/notice1.ogg') - GLOB.cult_narsie = null - sleep(20) - INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(cult_ending_helper), 2) - return - priority_announce("An acausal dimensional event has been detected in your sector. Event has been flagged EXTINCTION-CLASS. Directing all available assets toward simulating solutions. SOLUTION ETA: 60 SECONDS.","Central Command Higher Dimensional Affairs", 'sound/misc/airraid.ogg') - sleep(500) - if(QDELETED(GLOB.cult_narsie)) // dos - priority_announce("Simulations aborted, sensors report that the acasual event is normalizing. Good work, crew.","Central Command Higher Dimensional Affairs", 'sound/misc/notice1.ogg') - GLOB.cult_narsie = null - sleep(20) - INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(cult_ending_helper), 2) - return - priority_announce("Simulations on acausal dimensional event complete. Deploying solution package now. Deployment ETA: ONE MINUTE. ","Central Command Higher Dimensional Affairs") - sleep(50) - set_security_level("delta") - SSshuttle.lockdown = TRUE - sleep(600) - if(QDELETED(GLOB.cult_narsie)) // tres - priority_announce("Normalization detected! Abort the solution package!","Central Command Higher Dimensional Affairs", 'sound/misc/notice1.ogg') - GLOB.cult_narsie = null - sleep(20) - set_security_level("red") - SSshuttle.lockdown = FALSE - INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(cult_ending_helper), 2) - return - if(GLOB.cult_narsie.resolved == FALSE) - GLOB.cult_narsie.resolved = TRUE - sound_to_playing_players('sound/machines/alarm.ogg') - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(cult_ending_helper)), 120) - -/obj/singularity/narsie/large/cult/Destroy() - send_to_playing_players("\"[pick("Nooooo...", "Not die. How-", "Die. Mort-", "Sas tyen re-")]\"") - sound_to_playing_players('sound/magic/demon_dies.ogg', 50) - if(GLOB.cult_narsie == src) - GLOB.cult_narsie = null - var/list/all_cults = list() - for(var/datum/antagonist/cult/C in GLOB.antagonists) - if(!C.owner) - continue - all_cults |= C.cult_team - for(var/datum/team/cult/T in all_cults) - var/datum/objective/eldergod/summon_objective = locate() in T.objectives - if(summon_objective) - summon_objective.summoned = FALSE - summon_objective.killed = TRUE - return ..() - -/proc/ending_helper() - SSticker.force_ending = 1 - -/proc/cult_ending_helper(ending_type = 0) - if(ending_type == 2) //narsie fukkin died - Cinematic(CINEMATIC_CULT_FAIL,world,CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ending_helper))) - else if(ending_type) //no explosion - Cinematic(CINEMATIC_CULT,world,CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ending_helper))) - else // explosion - Cinematic(CINEMATIC_CULT_NUKE,world,CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(ending_helper))) - -//ATTACK GHOST IGNORING PARENT RETURN VALUE -/obj/singularity/narsie/large/attack_ghost(mob/dead/observer/user as mob) - makeNewConstruct(/mob/living/simple_animal/hostile/construct/harvester, user, cultoverride = TRUE, loc_override = src.loc) - -/obj/singularity/narsie/process() - eat() - if(!target || prob(5)) - pickcultist() - move() - if(prob(25)) - mezzer() - - -/obj/singularity/narsie/Bump(atom/A) - var/turf/T = get_turf(A) - if(T == loc) - T = get_step(A, A.dir) //please don't slam into a window like a bird, Nar'Sie - forceMove(T) - - -/obj/singularity/narsie/mezzer() - for(var/mob/living/carbon/M in viewers(consume_range, src)) - if(M.stat == CONSCIOUS) - if(!iscultist(M)) - to_chat(M, "You feel conscious thought crumble away in an instant as you gaze upon [src.name]...") - M.apply_effect(60, EFFECT_STUN) - - -/obj/singularity/narsie/consume(atom/A) - if(isturf(A)) - A.narsie_act() - - -/obj/singularity/narsie/ex_act() //No throwing bombs at her either. - return - - -/obj/singularity/narsie/proc/pickcultist() //Narsie rewards her cultists with being devoured first, then picks a ghost to follow. - var/list/cultists = list() - var/list/noncultists = list() - - for(var/mob/living/carbon/food in GLOB.alive_mob_list) //we don't care about constructs or cult-Ians or whatever. cult-monkeys are fair game i guess - var/turf/pos = get_turf(food) - if(!pos || (pos.virtual_z() != virtual_z())) - continue - - if(iscultist(food)) - cultists += food - else - noncultists += food - - if(cultists.len) //cultists get higher priority - acquire(pick(cultists)) - return - - if(noncultists.len) - acquire(pick(noncultists)) - return - - //no living humans, follow a ghost instead. - for(var/mob/dead/observer/ghost in GLOB.player_list) - var/turf/pos = get_turf(ghost) - if(!pos || (pos.virtual_z() != virtual_z())) - continue - cultists += ghost - if(cultists.len) - acquire(pick(cultists)) - return - - -/obj/singularity/narsie/proc/acquire(atom/food) - if(food == target) - return - to_chat(target, "NAR'SIE HAS LOST INTEREST IN YOU.") - target = food - if(ishuman(target)) - to_chat(target, "NAR'SIE HUNGERS FOR YOUR SOUL.") - else - to_chat(target, "NAR'SIE HAS CHOSEN YOU TO LEAD HER TO HER NEXT MEAL.") - -//Wizard narsie -/obj/singularity/narsie/wizard - grav_pull = 0 - -/obj/singularity/narsie/wizard/eat() -// if(defer_powernet_rebuild != 2) -// defer_powernet_rebuild = 1 - for(var/atom/X in urange(consume_range,src,1)) - if(isturf(X) || ismovable(X)) - consume(X) -// if(defer_powernet_rebuild != 2) -// defer_powernet_rebuild = 0 - return - - -/obj/singularity/narsie/proc/narsie_spawn_animation() - setDir(SOUTH) - move_self = FALSE - flick("narsie_spawn_anim",src) - addtimer(CALLBACK(src, PROC_REF(narsie_spawn_animation_end)), 3.5 SECONDS) - -/obj/singularity/narsie/proc/narsie_spawn_animation_end() - move_self = TRUE diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 11e3f0179a8a..b6fe4370d9c5 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -243,49 +243,10 @@ REMOVE_TRAIT(L, TRAIT_HOLY, type) ..() -/datum/reagent/water/holywater/expose_mob(mob/living/M, method=TOUCH, reac_volume) - if(iscultist(M)) - to_chat(M, "A vile holiness begins to spread its shining tendrils through your mind, purging the Geometer of Blood's influence!") - ..() - -/datum/reagent/water/holywater/on_mob_life(mob/living/carbon/M) - if(!data) - data = list("misc" = 1) - data["misc"]++ - M.jitteriness = min(M.jitteriness+4,10) - if(iscultist(M)) - for(var/datum/action/innate/cult/blood_magic/BM in M.actions) - to_chat(M, "Your blood rites falter as holy water scours your body!") - for(var/datum/action/innate/cult/blood_spell/BS in BM.spells) - qdel(BS) - if(data["misc"] >= 25) // 10 units, 45 seconds @ metabolism 0.4 units & tick rate 1.8 sec - if(!M.stuttering) - M.stuttering = 1 - M.stuttering = min(M.stuttering+4, 10) - M.Dizzy(5) - if(iscultist(M) && prob(20)) - M.say(pick("Av'te Nar'Sie","Pa'lid Mors","INO INO ORA ANA","SAT ANA!","Daim'niodeis Arc'iai Le'eones","R'ge Na'sie","Diabo us Vo'iscum","Eld' Mon Nobis"), forced = "holy water") - if(prob(10)) - M.visible_message("[M] starts having a seizure!", "You have a seizure!") - M.Unconscious(120) - to_chat(M, "[pick("Your blood is your bond - you are nothing without it", "Do not forget your place", \ - "All that power, and you still fail?", "If you cannot scour this poison, I shall scour your meager life!")].") - if(data["misc"] >= 60) // 30 units, 135 seconds - if(iscultist(M)) - SSticker.mode.remove_cultist(M.mind, FALSE, TRUE) - M.jitteriness = 0 - M.stuttering = 0 - holder.remove_reagent(type, volume) // maybe this is a little too perfect and a max() cap on the statuses would be better?? - return - holder.remove_reagent(type, 0.4) //fixed consumption to prevent balancing going out of whack - /datum/reagent/water/holywater/expose_turf(turf/T, reac_volume) ..() if(!istype(T)) return - if(reac_volume>=10) - for(var/obj/effect/rune/R in T) - qdel(R) T.Bless() // Holy water. Mostly the same as water, it also heals the plant a little with the power of the spirits. Also ALSO increases instability. @@ -346,22 +307,12 @@ return ..() /datum/reagent/fuel/unholywater/on_mob_life(mob/living/carbon/M) - if(iscultist(M)) - M.drowsyness = max(M.drowsyness-5, 0) - M.AdjustAllImmobility(-40) - M.adjustStaminaLoss(-10, 0) - M.adjustToxLoss(-2, 0) - M.adjustOxyLoss(-2, 0) - M.adjustBruteLoss(-2, 0) - M.adjustFireLoss(-2, 0) - if(ishuman(M) && M.blood_volume < BLOOD_VOLUME_NORMAL) - M.blood_volume += 3 - else // Will deal about 90 damage when 50 units are thrown - M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3, 150) - M.adjustToxLoss(2, 0) - M.adjustFireLoss(2, 0) - M.adjustOxyLoss(2, 0) - M.adjustBruteLoss(2, 0) + // Will deal about 90 damage when 50 units are thrown + M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3, 150) + M.adjustToxLoss(2, 0) + M.adjustFireLoss(2, 0) + M.adjustOxyLoss(2, 0) + M.adjustBruteLoss(2, 0) holder.remove_reagent(type, 1) return TRUE diff --git a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm index f6f46d3c3970..10713fbf2288 100644 --- a/code/modules/reagents/chemistry/recipes/pyrotechnics.dm +++ b/code/modules/reagents/chemistry/recipes/pyrotechnics.dm @@ -151,17 +151,8 @@ R.stun(20) R.reveal(100) R.adjustHealth(50) - addtimer(CALLBACK(src, PROC_REF(divine_explosion), round(created_volume/48,1),get_turf(holder.my_atom)), 2 SECONDS) ..() -/datum/chemical_reaction/reagent_explosion/potassium_explosion/holyboom/proc/divine_explosion(size, turf/T) - for(var/mob/living/carbon/C in get_hearers_in_view(size,T)) - if(iscultist(C)) - to_chat(C, "The divine explosion sears you!") - C.Paralyze(40) - C.adjust_fire_stacks(5) - C.IgniteMob() - /datum/chemical_reaction/gunpowder results = list(/datum/reagent/gunpowder = 3) required_reagents = list(/datum/reagent/saltpetre = 1, /datum/reagent/medicine/charcoal = 1, /datum/reagent/sulfur = 1) @@ -173,7 +164,6 @@ modifier = 1 mix_message = "Sparks start flying around the gunpowder!" - /datum/chemical_reaction/reagent_explosion/gunpowder_explosion/on_reaction(datum/reagents/holder, created_volume) addtimer(CALLBACK(src, PROC_REF(explode), holder, created_volume), rand(5,10) SECONDS) diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index b8b08486f20d..9b6a0629fa3e 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -365,7 +365,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) /obj/item/conveyor_switch_construct/afterattack(atom/A, mob/user, proximity) . = ..() - if(!proximity || user.stat || !isfloorturf(A) || istype(A, /area/shuttle)) + if(!proximity || user.stat || !isfloorturf(A)) return var/found = 0 for(var/obj/machinery/conveyor/C in view()) @@ -397,7 +397,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id) /obj/item/stack/conveyor/afterattack(atom/A, mob/user, proximity) . = ..() - if(!proximity || user.stat || !isfloorturf(A) || istype(A, /area/shuttle)) + if(!proximity || user.stat || !isfloorturf(A)) return var/cdir = get_dir(A, user) if(A == user.loc) diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 5af554a60557..1a5ad3d0d35f 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -249,7 +249,7 @@ name = "transit dock" var/datum/map_zone/reserved_mapzone - var/area/shuttle/transit/assigned_area + var/area/hyperspace/assigned_area var/obj/docking_port/mobile/owner /obj/docking_port/stationary/transit/Initialize() @@ -409,7 +409,7 @@ shuttle_areas = list() var/list/all_turfs = return_ordered_turfs(x, y, z, dir) for(var/turf/curT as anything in all_turfs) - var/area/shuttle/cur_area = curT.loc + var/area/ship/cur_area = curT.loc if(istype(cur_area, area_type)) turf_count++ shuttle_areas[cur_area] = TRUE @@ -651,7 +651,7 @@ continue // out of bounds if(T0.type == T0.baseturfs) continue // indestructible - if(!all_shuttle_areas[T0.loc] || istype(T0.loc, /area/shuttle/transit)) + if(!all_shuttle_areas[T0.loc] || istype(T0.loc, /area/hyperspace)) continue // not part of the shuttle ripple_turfs += T1 @@ -722,13 +722,13 @@ var/obj/docking_port/stationary/S0 = docked if(istype(S0, /obj/docking_port/stationary/transit) && timeLeft(1) <= PARALLAX_LOOP_TIME) for(var/place in shuttle_areas) - var/area/shuttle/shuttle_area = place + var/area/ship/shuttle_area = place if(shuttle_area.parallax_movedir) parallax_slowdown() /obj/docking_port/mobile/proc/parallax_slowdown() for(var/place in shuttle_areas) - var/area/shuttle/shuttle_area = place + var/area/ship/shuttle_area = place shuttle_area.parallax_movedir = FALSE if(assigned_transit && assigned_transit.assigned_area) assigned_transit.assigned_area.parallax_movedir = FALSE diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index 395da25aaa5d..5bf2107a998b 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -1,11 +1,9 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( /mob/living, - /obj/effect/rune, /obj/structure/spider/spiderling, /obj/item/disk/nuclear, /obj/machinery/nuclearbomb, /obj/item/beacon, - /obj/singularity/narsie, /obj/singularity/wizard, /obj/machinery/teleport/station, /obj/machinery/teleport/hub, @@ -29,168 +27,3 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( /obj/machinery/camera, /obj/item/gps ))) - -/* -/obj/docking_port/mobile/supply - name = "supply shuttle" - callTime = 600 - - dir = WEST - port_direction = EAST - width = 12 - dwidth = 5 - height = 7 - movement_force = list("KNOCKDOWN" = 0, "THROW" = 0) - - - //Export categories for this run, this is set by console sending the shuttle. - var/export_categories = EXPORT_CARGO - -/obj/docking_port/mobile/supply/register() - . = ..() - SSshuttle.supply = src - -/obj/docking_port/mobile/supply/proc/check_blacklist(areaInstances) - for(var/place in areaInstances) - var/area/shuttle/shuttle_area = place - for(var/trf in shuttle_area) - var/turf/T = trf - for(var/a in T.GetAllContents()) - if(is_type_in_typecache(a, GLOB.blacklisted_cargo_types) && !istype(a, /obj/docking_port)) - return FALSE - return TRUE - -/obj/docking_port/mobile/supply/request(obj/docking_port/stationary/S) - if(mode != SHUTTLE_IDLE) - return 2 - return ..() - - -/obj/docking_port/mobile/supply/initiate_docking() - if(get_docked() == SSshuttle.supply_away_port) // Buy when we leave home. - buy() - . = ..() // Fly/enter transit. - if(. != DOCKING_SUCCESS) - return - if(get_docked() == SSshuttle.supply_away_port) // Sell when we get home - sell() - -/obj/docking_port/mobile/supply/proc/buy() - var/list/obj/miscboxes = list() //miscboxes are combo boxes that contain all small_item orders grouped - var/list/misc_order_num = list() //list of strings of order numbers, so that the manifest can show all orders in a box - var/list/misc_contents = list() //list of lists of items that each box will contain - if(!SSshuttle.shoppinglist.len) - return - - var/list/empty_turfs = list() - for(var/place in shuttle_areas) - var/area/shuttle/shuttle_area = place - for(var/turf/open/floor/T in shuttle_area) - if(T.is_blocked_turf()) - continue - empty_turfs += T - - var/value = 0 - var/purchases = 0 - for(var/datum/supply_order/SO in SSshuttle.shoppinglist) - if(!empty_turfs.len) - break - var/price = SO.pack.cost - var/datum/bank_account/D - if(SO.paying_account) //Someone paid out of pocket - D = SO.paying_account - price *= 1.1 //TODO make this customizable by the quartermaster - else - D = SSeconomy.get_dep_account(ACCOUNT_CAR) - if(D) - if(!D.adjust_money(-price)) - if(SO.paying_account) - D.bank_card_talk("Cargo order #[SO.id] rejected due to lack of funds. Credits required: [price]") - continue - - if(SO.paying_account) - D.bank_card_talk("Cargo order #[SO.id] has shipped. [price] credits have been charged to your bank account.") - var/datum/bank_account/department/cargo = SSeconomy.get_dep_account(ACCOUNT_CAR) - cargo.adjust_money(price - SO.pack.cost) //Cargo gets the handling fee - value += SO.pack.cost - SSshuttle.shoppinglist -= SO - SSshuttle.orderhistory += SO - - if(SO.pack.small_item) //small_item means it gets piled in the miscbox - if(SO.paying_account) - if(!miscboxes.len || !miscboxes[D.account_holder]) //if there's no miscbox for this person - miscboxes[D.account_holder] = new /obj/structure/closet/crate/secure/owned(pick_n_take(empty_turfs), SO.paying_account) - miscboxes[D.account_holder].name = "small items crate - purchased by [D.account_holder]" - misc_contents[D.account_holder] = list() - for (var/item in SO.pack.contains) - misc_contents[D.account_holder] += item - misc_order_num[D.account_holder] = "[misc_order_num[D.account_holder]]#[SO.id] " - else //No private payment, so we just stuff it all into a generic crate - if(!miscboxes.len || !miscboxes["Cargo"]) - miscboxes["Cargo"] = new /obj/structure/closet/crate/secure(pick_n_take(empty_turfs)) - miscboxes["Cargo"].name = "small items crate" - misc_contents["Cargo"] = list() - miscboxes["Cargo"].req_access = list() - for (var/item in SO.pack.contains) - misc_contents["Cargo"] += item - //new item(miscboxes["Cargo"]) - if(SO.pack.access) - miscboxes["Cargo"].req_access += SO.pack.access - misc_order_num["Cargo"] = "[misc_order_num["Cargo"]]#[SO.id] " - else - SO.generate(pick_n_take(empty_turfs)) - - SSblackbox.record_feedback("nested tally", "cargo_imports", 1, list("[SO.pack.cost]", "[SO.pack.name]")) - investigate_log("Order #[SO.id] ([SO.pack.name], placed by [key_name(SO.orderer_ckey)]), paid by [D.account_holder] has shipped.", INVESTIGATE_CARGO) - if(SO.pack.dangerous) - message_admins("\A [SO.pack.name] ordered by [ADMIN_LOOKUPFLW(SO.orderer_ckey)], paid by [D.account_holder] has shipped.") - purchases++ - - for(var/I in miscboxes) - var/datum/supply_order/SO = new/datum/supply_order() - SO.id = misc_order_num[I] - SO.generateCombo(miscboxes[I], I, misc_contents[I]) - qdel(SO) - - var/datum/bank_account/cargo_budget = SSeconomy.get_dep_account(ACCOUNT_CAR) - investigate_log("[purchases] orders in this shipment, worth [value] credits. [cargo_budget.account_balance] credits left.", INVESTIGATE_CARGO) - -/obj/docking_port/mobile/supply/proc/sell() - var/datum/bank_account/D = SSeconomy.get_dep_account(ACCOUNT_CAR) - var/presale_points = D.account_balance - - if(!GLOB.exports_list.len) // No exports list? Generate it! - setupExports() - - var/msg = "" - var/matched_bounty = FALSE - - var/datum/export_report/ex = new - - for(var/place in shuttle_areas) - var/area/shuttle/shuttle_area = place - for(var/atom/movable/AM in shuttle_area) - if(iscameramob(AM)) - continue - if(bounty_ship_item_and_contents(AM, dry_run = FALSE)) - matched_bounty = TRUE - if(!AM.anchored || istype(AM, /obj/mecha)) - export_item_and_contents(AM, export_categories , dry_run = FALSE, external_report = ex) - - if(ex.exported_atoms) - ex.exported_atoms += "." //ugh - - if(matched_bounty) - msg += "Bounty items received. An update has been sent to all bounty consoles. " - - for(var/datum/export/E in ex.total_amount) - var/export_text = E.total_printout(ex) - if(!export_text) - continue - - msg += export_text + "\n" - D.adjust_money(ex.total_value[E]) - - SSshuttle.centcom_message = msg - investigate_log("Shuttle contents sold for [D.account_balance - presale_points] credits. Contents: [ex.exported_atoms ? ex.exported_atoms.Join(",") + "." : "none."] Message: [SSshuttle.centcom_message || "none."]", INVESTIGATE_CARGO) -*/ diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm index da19730739e5..bc453eecd3d1 100644 --- a/code/modules/spells/spell.dm +++ b/code/modules/spells/spell.dm @@ -117,7 +117,6 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th var/holder_var_amount = 20 //same. The amount adjusted with the mob's var when the spell is used var/clothes_req = TRUE //see if it requires clothes - var/cult_req = FALSE //SPECIAL SNOWFLAKE clothes required for cult only spells var/human_req = FALSE //spell can only be cast by humans var/nonabstract_req = FALSE //spell can only be cast by mobs that are physical entities var/stat_allowed = FALSE //see if it requires being conscious/alive, need to set to 1 for ghostpells @@ -209,13 +208,6 @@ GLOBAL_LIST_INIT(spells, typesof(/obj/effect/proc_holder/spell)) //needed for th if(!is_type_in_typecache(H.head, casting_clothes)) to_chat(H, "You don't feel strong enough without your hat!") return FALSE - if(cult_req) //CULT_REQ CLOTHES CHECK - if(!istype(H.wear_suit, /obj/item/clothing/suit/space/hardsuit/cult)) - to_chat(H, "You don't feel strong enough without your armor.") - return FALSE - if(!istype(H.head, /obj/item/clothing/head/helmet/space/hardsuit/cult)) - to_chat(H, "You don't feel strong enough without your helmet.") - return FALSE else if(clothes_req || human_req) to_chat(user, "This spell can only be cast by humans!") diff --git a/code/modules/spells/spell_types/construct_spells.dm b/code/modules/spells/spell_types/construct_spells.dm deleted file mode 100644 index 61c05c4170fe..000000000000 --- a/code/modules/spells/spell_types/construct_spells.dm +++ /dev/null @@ -1,327 +0,0 @@ -//////////////////////////////Construct Spells///////////////////////// - -/obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser - charge_max = 1800 - action_background_icon_state = "bg_demon" - -/obj/effect/proc_holder/spell/aoe_turf/conjure/construct/lesser/cult - clothes_req = TRUE - charge_max = 2500 - -/obj/effect/proc_holder/spell/aoe_turf/area_conversion - name = "Area Conversion" - desc = "This spell instantly converts a small area around you." - - school = "transmutation" - charge_max = 50 - clothes_req = FALSE - invocation = "none" - invocation_type = "none" - range = 2 - action_icon = 'icons/mob/actions/actions_cult.dmi' - action_icon_state = "areaconvert" - action_background_icon_state = "bg_cult" - -/obj/effect/proc_holder/spell/aoe_turf/area_conversion/cast(list/targets, mob/user = usr) - playsound(get_turf(user), 'sound/items/welder.ogg', 75, TRUE) - for(var/turf/T in targets) - T.narsie_act(FALSE, TRUE, 100 - (get_dist(user, T) * 25)) - - -/obj/effect/proc_holder/spell/aoe_turf/conjure/floor - name = "Summon Cult Floor" - desc = "This spell constructs a cult floor." - - school = "conjuration" - charge_max = 20 - clothes_req = FALSE - invocation = "none" - invocation_type = "none" - range = 0 - summon_type = list(/turf/open/floor/engine/cult) - action_icon = 'icons/mob/actions/actions_cult.dmi' - action_icon_state = "floorconstruct" - action_background_icon_state = "bg_cult" - - -/obj/effect/proc_holder/spell/aoe_turf/conjure/wall - name = "Summon Cult Wall" - desc = "This spell constructs a cult wall." - - school = "conjuration" - charge_max = 100 - clothes_req = FALSE - invocation = "none" - invocation_type = "none" - range = 0 - action_icon = 'icons/mob/actions/actions_cult.dmi' - action_icon_state = "lesserconstruct" - action_background_icon_state = "bg_cult" - - summon_type = list(/turf/closed/wall/mineral/cult/artificer) //we don't want artificer-based runed metal farms - - -/obj/effect/proc_holder/spell/aoe_turf/conjure/wall/reinforced - name = "Greater Construction" - desc = "This spell constructs a reinforced metal wall." - - school = "conjuration" - charge_max = 300 - clothes_req = FALSE - invocation = "none" - invocation_type = "none" - range = 0 - - summon_type = list(/turf/closed/wall/r_wall) - -/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone - name = "Summon Soulstone" - desc = "This spell reaches into Nar'Sie's realm, summoning one of the legendary fragments across time and space." - - school = "conjuration" - charge_max = 2400 - clothes_req = FALSE - invocation = "none" - invocation_type = "none" - range = 0 - action_icon = 'icons/mob/actions/actions_cult.dmi' - action_icon_state = "summonsoulstone" - action_background_icon_state = "bg_demon" - - summon_type = list(/obj/item/soulstone) - -/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/cult - clothes_req = TRUE - charge_max = 3600 - -/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/noncult - summon_type = list(/obj/item/soulstone/anybody) - -/obj/effect/proc_holder/spell/aoe_turf/conjure/soulstone/noncult/purified - summon_type = list(/obj/item/soulstone/anybody/purified) - -/obj/effect/proc_holder/spell/targeted/forcewall/cult - name = "Shield" - desc = "This spell creates a temporary forcefield to shield yourself and allies from incoming fire." - school = "transmutation" - charge_max = 400 - clothes_req = FALSE - invocation = "none" - invocation_type = "none" - wall_type = /obj/effect/forcefield/cult - action_icon = 'icons/mob/actions/actions_cult.dmi' - action_icon_state = "cultforcewall" - action_background_icon_state = "bg_demon" - - - -/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift - name = "Phase Shift" - desc = "This spell allows you to pass through walls." - - school = "transmutation" - charge_max = 250 - clothes_req = FALSE - invocation = "none" - invocation_type = "none" - range = -1 - include_user = TRUE - jaunt_duration = 50 //in deciseconds - action_icon = 'icons/mob/actions/actions_cult.dmi' - action_icon_state = "phaseshift" - action_background_icon_state = "bg_demon" - jaunt_in_time = 6 - jaunt_in_type = /obj/effect/temp_visual/dir_setting/wraith - jaunt_out_type = /obj/effect/temp_visual/dir_setting/wraith/out - -/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/jaunt_steam(mobloc) - return - -/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/shift/angelic - jaunt_in_type = /obj/effect/temp_visual/dir_setting/wraith/angelic - jaunt_out_type = /obj/effect/temp_visual/dir_setting/wraith/out/angelic - -/obj/effect/proc_holder/spell/targeted/projectile/magic_missile/lesser - name = "Lesser Magic Missile" - desc = "This spell fires several, slow moving, magic projectiles at nearby targets." - - school = "evocation" - charge_max = 400 - clothes_req = FALSE - invocation = "none" - invocation_type = "none" - max_targets = 6 - action_icon_state = "magicm" - action_background_icon_state = "bg_demon" - proj_type = /obj/projectile/magic/spell/magic_missile/lesser - -/obj/projectile/magic/spell/magic_missile/lesser - color = "red" //Looks more culty this way - range = 10 - -/obj/effect/proc_holder/spell/targeted/smoke/disable - name = "Paralysing Smoke" - desc = "This spell spawns a cloud of paralysing smoke." - - school = "conjuration" - charge_max = 200 - clothes_req = FALSE - invocation = "none" - invocation_type = "none" - range = -1 - include_user = TRUE - cooldown_min = 20 //25 deciseconds reduction per rank - - smoke_spread = 3 - smoke_amt = 4 - action_icon_state = "smoke" - action_background_icon_state = "bg_cult" - -/obj/effect/proc_holder/spell/pointed/abyssal_gaze - name = "Abyssal Gaze" - desc = "This spell instills a deep terror in your target, temporarily chilling and blinding it." - charge_max = 750 - range = 5 - stat_allowed = FALSE - school = "evocation" - clothes_req = FALSE - invocation = "none" - invocation_type = "none" - ranged_mousepointer = 'icons/effects/mouse_pointers/cult_target.dmi' - action_icon = 'icons/mob/actions/actions_cult.dmi' - action_background_icon_state = "bg_demon" - action_icon_state = "abyssal_gaze" - active_msg = "You prepare to instill a deep terror in a target..." - -/obj/effect/proc_holder/spell/pointed/abyssal_gaze/cast(list/targets, mob/user) - if(!LAZYLEN(targets)) - to_chat(user, "No target found in range!") - return FALSE - if(!can_target(targets[1], user)) - return FALSE - - var/mob/living/carbon/target = targets[1] - if(target.anti_magic_check(TRUE, TRUE)) - to_chat(user, "The spell had no effect!") - to_chat(target, "You feel a freezing darkness closing in on you, but it rapidly dissipates.") - return FALSE - - to_chat(target, "A freezing darkness surrounds you...") - target.playsound_local(get_turf(target), 'sound/hallucinations/i_see_you1.ogg', 50, 1) - user.playsound_local(get_turf(user), 'sound/effects/ghost2.ogg', 50, 1) - target.become_blind(ABYSSAL_GAZE_BLIND) - addtimer(CALLBACK(src, PROC_REF(cure_blindness), target), 40) - target.adjust_bodytemperature(-200) - -/** - * cure_blidness: Cures Abyssal Gaze blindness from the target - * - * Arguments: - * * target The mob that is being cured of the blindness. - */ -/obj/effect/proc_holder/spell/pointed/abyssal_gaze/proc/cure_blindness(mob/target) - if(isliving(target)) - var/mob/living/L = target - L.cure_blind(ABYSSAL_GAZE_BLIND) - -/obj/effect/proc_holder/spell/pointed/abyssal_gaze/can_target(atom/target, mob/user, silent) - . = ..() - if(!.) - return FALSE - if(!iscarbon(target)) - if(!silent) - to_chat(user, "You can only target carbon based lifeforms!") - return FALSE - return TRUE - -/obj/effect/proc_holder/spell/pointed/dominate - name = "Dominate" - desc = "This spell dominates the mind of a lesser creature to the will of Nar'Sie, allying it only to her direct followers." - charge_max = 600 - range = 7 - stat_allowed = FALSE - school = "evocation" - clothes_req = FALSE - invocation = "none" - invocation_type = "none" - ranged_mousepointer = 'icons/effects/mouse_pointers/cult_target.dmi' - action_icon = 'icons/mob/actions/actions_cult.dmi' - action_background_icon_state = "bg_demon" - action_icon_state = "dominate" - active_msg = "You prepare to dominate the mind of a target..." - -/obj/effect/proc_holder/spell/pointed/dominate/cast(list/targets, mob/user) - if(!LAZYLEN(targets)) - to_chat(user, "No target found in range.") - return FALSE - if(!can_target(targets[1], user)) - return FALSE - - var/mob/living/simple_animal/S = targets[1] - S.add_atom_colour("#990000", FIXED_COLOUR_PRIORITY) - S.faction = list("cult") - playsound(get_turf(S), 'sound/effects/ghost.ogg', 100, TRUE) - new /obj/effect/temp_visual/cult/sac(get_turf(S)) - -/obj/effect/proc_holder/spell/pointed/dominate/can_target(atom/target, mob/user, silent) - . = ..() - if(!.) - return FALSE - if(!isanimal(target)) - if(!silent) - to_chat(user, "Target is not a lesser creature!") - return FALSE - - var/mob/living/simple_animal/S = target - if(S.mind) - if(!silent) - to_chat(user, "[S] is too intelligent to dominate!") - return FALSE - if(S.stat) - if(!silent) - to_chat(user, "[S] is dead!") - return FALSE - if(S.sentience_type != SENTIENCE_ORGANIC) - if(!silent) - to_chat(user, "[S] cannot be dominated!") - return FALSE - if("cult" in S.faction) - if(!silent) - to_chat(user, "[S] is already serving Nar'Sie!") - return FALSE - return TRUE - -/obj/effect/proc_holder/spell/targeted/projectile/dumbfire/juggernaut - name = "Gauntlet Echo" - desc = "Channels energy into your gauntlet - firing its essence forward in a slow moving, yet devastating, attack." - proj_type = /obj/projectile/magic/spell/juggernaut - charge_max = 350 - clothes_req = FALSE - action_icon = 'icons/mob/actions/actions_cult.dmi' - action_icon_state = "cultfist" - action_background_icon_state = "bg_demon" - sound = 'sound/weapons/resonator_blast.ogg' - -/obj/projectile/magic/spell/juggernaut - name = "Gauntlet Echo" - icon_state = "cultfist" - alpha = 180 - damage = 30 - damage_type = BRUTE - knockdown = 50 - hitsound = 'sound/weapons/punch3.ogg' - trigger_range = 0 - check_holy = TRUE - ignored_factions = list("cult") - range = 15 - speed = 7 - -/obj/projectile/magic/spell/juggernaut/on_hit(atom/target, blocked) - . = ..() - var/turf/T = get_turf(src) - playsound(T, 'sound/weapons/resonator_blast.ogg', 100, FALSE) - new /obj/effect/temp_visual/cult/sac(T) - for(var/obj/O in range(src,1)) - if(O.density && !istype(O, /obj/structure/destructible/cult)) - O.take_damage(90, BRUTE, "melee", 0) - new /obj/effect/temp_visual/cult/turf/floor(get_turf(O)) diff --git a/code/modules/spells/spell_types/devil.dm b/code/modules/spells/spell_types/devil.dm deleted file mode 100644 index f1654551df3a..000000000000 --- a/code/modules/spells/spell_types/devil.dm +++ /dev/null @@ -1,236 +0,0 @@ -/obj/effect/proc_holder/spell/targeted/conjure_item/violin - item_type = /obj/item/instrument/violin/golden - desc = "A devil's instrument of choice. Use this to summon/unsummon your golden violin." - invocation_type = INVOCATION_WHISPER - invocation = "I ain't had this much fun since Georgia." - action_icon_state = "golden_violin" - name = "Summon golden violin" - action_icon = 'icons/mob/actions/actions_minor_antag.dmi' - action_background_icon_state = "bg_demon" - -/obj/effect/proc_holder/spell/targeted/summon_contract - name = "Summon infernal contract" - desc = "Skip making a contract by hand, just do it by magic." - invocation_type = INVOCATION_WHISPER - invocation = "Just sign on the dotted line." - include_user = FALSE - range = 5 - clothes_req = FALSE - - school = "conjuration" - charge_max = 150 - cooldown_min = 10 - action_icon_state = "spell_default" - action_background_icon_state = "bg_demon" - -/obj/effect/proc_holder/spell/targeted/summon_contract/cast(list/targets, mob/user = usr) - for(var/mob/living/carbon/C in targets) - if(C.mind && user.mind) - if(C.stat == DEAD) - if(user.dropItemToGround(user.get_active_held_item())) - var/obj/item/paper/contract/infernal/revive/contract = new(user.loc, C.mind, user.mind) - user.put_in_hands(contract) - else - var/obj/item/paper/contract/infernal/contract // = new(user.loc, C.mind, contractType, user.mind) - var/contractTypeName = input(user, "What type of contract?") in sortList(list("Power", "Wealth", "Prestige", "Magic", "Knowledge", "Friendship")) - switch(contractTypeName) - if("Power") - contract = new /obj/item/paper/contract/infernal/power(C.loc, C.mind, user.mind) - if("Wealth") - contract = new /obj/item/paper/contract/infernal/wealth(C.loc, C.mind, user.mind) - if("Prestige") - contract = new /obj/item/paper/contract/infernal/prestige(C.loc, C.mind, user.mind) - if("Magic") - contract = new /obj/item/paper/contract/infernal/magic(C.loc, C.mind, user.mind) - if("Knowledge") - contract = new /obj/item/paper/contract/infernal/knowledge(C.loc, C.mind, user.mind) - if("Friendship") - contract = new /obj/item/paper/contract/infernal/friend(C.loc, C.mind, user.mind) - C.put_in_hands(contract) - else - to_chat(user, "[C] seems to not be sentient. You cannot summon a contract for [C.p_them()].") - - -/obj/effect/proc_holder/spell/aimed/fireball/hellish - name = "Hellfire" - desc = "This spell launches hellfire at the target." - - school = "evocation" - charge_max = 80 - clothes_req = FALSE - invocation = "Your very soul will catch fire!" - invocation_type = INVOCATION_SHOUT - range = 2 - - projectile_type = /obj/projectile/magic - - action_background_icon_state = "bg_demon" - -/obj/effect/proc_holder/spell/targeted/infernal_jaunt - name = "Infernal Jaunt" - desc = "Use hellfire to phase out of existence." - charge_max = 200 - clothes_req = FALSE - selection_type = "range" - range = -1 - cooldown_min = 0 - overlay = null - include_user = TRUE - action_icon_state = "jaunt" - action_background_icon_state = "bg_demon" - phase_allowed = TRUE - -/obj/effect/proc_holder/spell/targeted/infernal_jaunt/cast(list/targets, mob/living/user = usr) - if(istype(user)) - if(istype(user.loc, /obj/effect/dummy/phased_mob/slaughter/)) - if(valid_location(user)) - to_chat(user, "You are now phasing in.") - if(do_after(user, 1.5 SECONDS, user)) - if(valid_location(user)) - user.infernalphasein() - else - to_chat(user, "You are no longer near a potential signer.") - - else - to_chat(user, "You can only re-appear near a potential signer.") - revert_cast() - return ..() - else - user.notransform = TRUE - user.fakefire() - to_chat(src, "You begin to phase back into sinful flames.") - if(do_after(user, 1.5 SECONDS, user)) - user.infernalphaseout() - else - to_chat(user, "You must remain still while exiting.") - user.notransform = FALSE - user.fakefireextinguish() - start_recharge() - return - revert_cast() - -/obj/effect/proc_holder/spell/targeted/infernal_jaunt/proc/valid_location(mob/living/user = usr) - if(istype(get_area(user), /area/shuttle/)) // Can always phase in in a shuttle. - return TRUE - else - for(var/mob/living/C in orange(2, get_turf(user))) //Can also phase in when nearby a potential buyer. - if (C.owns_soul()) - return TRUE - return FALSE - -/mob/living/proc/infernalphaseout() - dust_animation() - spawn_dust() - visible_message("[src] disappears in a flashfire!") - playsound(get_turf(src), 'sound/magic/enter_blood.ogg', 100, TRUE, -1) - var/obj/effect/dummy/phased_mob/slaughter/holder = new /obj/effect/dummy/phased_mob/slaughter(loc) - ExtinguishMob() - forceMove(holder) - holder = holder - notransform = FALSE - fakefireextinguish() - -/mob/living/proc/infernalphasein() - if(notransform) - to_chat(src, "You're too busy to jaunt in.") - return FALSE - fakefire() - forceMove(drop_location()) - client.eye = src - visible_message("[src] appears in a fiery blaze!") - playsound(get_turf(src), 'sound/magic/exit_blood.ogg', 100, TRUE, -1) - addtimer(CALLBACK(src, PROC_REF(fakefireextinguish)), 15, TIMER_UNIQUE) - -/obj/effect/proc_holder/spell/targeted/sintouch - name = "Sin Touch" - desc = "Subtly encourage someone to sin." - charge_max = 1800 - clothes_req = FALSE - selection_type = "range" - range = 2 - cooldown_min = 0 - overlay = null - include_user = FALSE - action_icon = 'icons/mob/actions/actions_cult.dmi' - action_icon_state = "sintouch" - action_background_icon_state = "bg_demon" - phase_allowed = FALSE - random_target = TRUE - random_target_priority = TARGET_RANDOM - max_targets = 3 - invocation = "TASTE SIN AND INDULGE!!" - invocation_type = INVOCATION_SHOUT - -/obj/effect/proc_holder/spell/targeted/sintouch/ascended - name = "Greater sin touch" - charge_max = 100 - range = 7 - max_targets = 10 - -/obj/effect/proc_holder/spell/targeted/sintouch/cast(list/targets, mob/living/user = usr) - for(var/mob/living/carbon/human/H in targets) - if(!H.mind) - continue - if(H.mind.has_antag_datum(/datum/antagonist/sintouched)) - continue - if(H.anti_magic_check(FALSE, TRUE)) - continue - H.mind.add_antag_datum(/datum/antagonist/sintouched) - H.Paralyze(400) - - -/obj/effect/proc_holder/spell/targeted/summon_dancefloor - name = "Summon Dancefloor" - desc = "When what a Devil really needs is funk." - include_user = TRUE - range = -1 - clothes_req = FALSE - - school = "conjuration" - charge_max = 10 - cooldown_min = 50 //5 seconds, so the smoke can't be spammed - action_icon = 'icons/mob/actions/actions_minor_antag.dmi' - action_icon_state = "funk" - action_background_icon_state = "bg_demon" - - var/list/dancefloor_turfs - var/list/dancefloor_turfs_types - var/dancefloor_exists = FALSE - var/datum/effect_system/smoke_spread/transparent/dancefloor_devil/smoke - - -/obj/effect/proc_holder/spell/targeted/summon_dancefloor/cast(list/targets, mob/user = usr) - LAZYINITLIST(dancefloor_turfs) - LAZYINITLIST(dancefloor_turfs_types) - - if(!smoke) - smoke = new() - smoke.set_up(0, get_turf(user)) - smoke.start() - - if(dancefloor_exists) - dancefloor_exists = FALSE - for(var/i in 1 to dancefloor_turfs.len) - var/turf/T = dancefloor_turfs[i] - T.ChangeTurf(dancefloor_turfs_types[i], flags = CHANGETURF_INHERIT_AIR) - else - var/list/funky_turfs = RANGE_TURFS(1, user) - for(var/turf/closed/solid in funky_turfs) - to_chat(user, "You're too close to a wall.") - return - dancefloor_exists = TRUE - var/i = 1 - dancefloor_turfs.len = funky_turfs.len - dancefloor_turfs_types.len = funky_turfs.len - for(var/t in funky_turfs) - var/turf/T = t - dancefloor_turfs[i] = T - dancefloor_turfs_types[i] = T.type - T.ChangeTurf((i % 2 == 0) ? /turf/open/floor/light/colour_cycle/dancefloor_a : /turf/open/floor/light/colour_cycle/dancefloor_b, flags = CHANGETURF_INHERIT_AIR) - i++ - -/datum/effect_system/smoke_spread/transparent/dancefloor_devil - effect_type = /obj/effect/particle_effect/smoke/transparent/dancefloor_devil - -/obj/effect/particle_effect/smoke/transparent/dancefloor_devil - lifetime = 2 diff --git a/code/modules/spells/spell_types/devil_boons.dm b/code/modules/spells/spell_types/devil_boons.dm deleted file mode 100644 index 01ea14b15fa8..000000000000 --- a/code/modules/spells/spell_types/devil_boons.dm +++ /dev/null @@ -1,76 +0,0 @@ -/obj/effect/proc_holder/spell/targeted/summon_wealth - name = "Summon wealth" - desc = "The reward for selling your soul." - invocation_type = "none" - include_user = TRUE - range = -1 - clothes_req = FALSE - school = "conjuration" - charge_max = 100 - cooldown_min = 10 - action_icon = 'icons/mob/actions/actions_minor_antag.dmi' - action_icon_state = "moneybag" - - -/obj/effect/proc_holder/spell/targeted/summon_wealth/cast(list/targets, mob/user = usr) - for(var/mob/living/carbon/C in targets) - if(user.dropItemToGround(user.get_active_held_item())) - var/obj/item = pick( - new /obj/item/coin/gold(user.drop_location()), - new /obj/item/coin/diamond(user.drop_location()), - new /obj/item/coin/silver(user.drop_location()), - new /obj/item/clothing/accessory/medal/gold(user.drop_location()), - new /obj/item/stack/sheet/mineral/gold(user.drop_location()), - new /obj/item/stack/sheet/mineral/silver(user.drop_location()), - new /obj/item/stack/sheet/mineral/diamond(user.drop_location()), - new /obj/item/holochip(user.drop_location(), 1000)) - C.put_in_hands(item) - -/obj/effect/proc_holder/spell/targeted/view_range - name = "Distant vision" - desc = "The reward for selling your soul." - invocation_type = "none" - include_user = TRUE - range = -1 - clothes_req = FALSE - charge_max = 50 - cooldown_min = 10 - action_icon = 'icons/mob/actions/actions_silicon.dmi' - action_icon_state = "camera_jump" - var/ranges = list(7,8,9,10) - -/obj/effect/proc_holder/spell/targeted/view_range/cast(list/targets, mob/user = usr) - for(var/mob/C in targets) - if(!C.client) - continue - C.client.view_size.setTo((input("Select view range:", "Range", 4) in ranges) - 7) - -/obj/effect/proc_holder/spell/targeted/summon_friend - name = "Summon Friend" - desc = "The reward for selling your soul." - invocation_type = "none" - include_user = TRUE - range = -1 - clothes_req = FALSE - charge_max = 50 - cooldown_min = 10 - action_icon = 'icons/mob/actions/actions_spells.dmi' - action_icon_state = "sacredflame" - var/mob/living/friend - var/obj/effect/mob_spawn/human/demonic_friend/friendShell - -/obj/effect/proc_holder/spell/targeted/summon_friend/cast(list/targets, mob/user = usr) - if(!QDELETED(friend)) - to_chat(friend, "Your master has deemed you a poor friend. Your durance in hell will now resume.") - friend.dust(TRUE) - qdel(friendShell) - return - if(!QDELETED(friendShell)) - qdel(friendShell) - return - for(var/C in targets) - var/mob/living/L = C - friendShell = new /obj/effect/mob_spawn/human/demonic_friend(L.loc, L.mind, src) - -/obj/effect/proc_holder/spell/targeted/conjure_item/spellpacket/robeless - clothes_req = FALSE diff --git a/code/modules/spells/spell_types/pointed/mind_transfer.dm b/code/modules/spells/spell_types/pointed/mind_transfer.dm index e0ef3566fa0d..5b069756864d 100644 --- a/code/modules/spells/spell_types/pointed/mind_transfer.dm +++ b/code/modules/spells/spell_types/pointed/mind_transfer.dm @@ -30,7 +30,7 @@ var/mob/living/victim = targets[1] //The target of the spell whos body will be transferred to. var/datum/mind/VM = victim.mind - if(victim.anti_magic_check(TRUE, FALSE) || VM.has_antag_datum(/datum/antagonist/wizard) || VM.has_antag_datum(/datum/antagonist/cult) || VM.has_antag_datum(/datum/antagonist/changeling) || victim.key[1] == "@") + if(victim.anti_magic_check(TRUE, FALSE) || VM.has_antag_datum(/datum/antagonist/wizard) || VM.has_antag_datum(/datum/antagonist/changeling) || victim.key[1] == "@") if(!silent) to_chat(user, "[victim.p_their(TRUE)] mind is resisting your spell!") return FALSE diff --git a/code/modules/spells/spell_types/shapeshift.dm b/code/modules/spells/spell_types/shapeshift.dm index 254a43dc23af..3c087cc8840d 100644 --- a/code/modules/spells/spell_types/shapeshift.dm +++ b/code/modules/spells/spell_types/shapeshift.dm @@ -20,8 +20,7 @@ var/list/possible_shapes = list(/mob/living/simple_animal/mouse,\ /mob/living/simple_animal/pet/dog/corgi,\ /mob/living/simple_animal/bot/secbot/ed209,\ - /mob/living/simple_animal/hostile/poison/giant_spider/hunter/viper,\ - /mob/living/simple_animal/hostile/construct/juggernaut) + /mob/living/simple_animal/hostile/poison/giant_spider/hunter/viper,) /obj/effect/proc_holder/spell/targeted/shapeshift/cast(list/targets,mob/user = usr) if(src in user.mob_spell_list) diff --git a/code/modules/spells/spell_types/wizard.dm b/code/modules/spells/spell_types/wizard.dm index 2fab8c5848ef..bc800a49c7d4 100644 --- a/code/modules/spells/spell_types/wizard.dm +++ b/code/modules/spells/spell_types/wizard.dm @@ -132,12 +132,6 @@ sound1 = 'sound/magic/blink.ogg' sound2 = 'sound/magic/blink.ogg' -/obj/effect/proc_holder/spell/targeted/turf_teleport/blink/cult - name = "quickstep" - - charge_max = 100 - clothes_req = TRUE - /obj/effect/proc_holder/spell/targeted/area_teleport/teleport name = "Teleport" desc = "This spell teleports you to an area of your selection." @@ -194,20 +188,6 @@ summon_type = list(/mob/living/simple_animal/hostile/carp) cast_sound = 'sound/magic/summon_karp.ogg' -/obj/effect/proc_holder/spell/aoe_turf/conjure/construct - name = "Artificer" - desc = "This spell conjures a construct which may be controlled by Shades." - school = "conjuration" - charge_max = 600 - clothes_req = FALSE - invocation = "none" - invocation_type = "none" - range = 0 - summon_type = list(/obj/structure/constructshell) - action_icon = 'icons/mob/actions/actions_cult.dmi' - action_icon_state = "artificer" - cast_sound = 'sound/magic/summonitems_generic.ogg' - /obj/effect/proc_holder/spell/aoe_turf/conjure/creature name = "Summon Creature Swarm" desc = "This spell tears the fabric of reality, allowing horrific daemons to spill forth." @@ -223,12 +203,6 @@ summon_type = list(/mob/living/simple_animal/hostile/netherworld) cast_sound = 'sound/magic/summonitems_generic.ogg' -/obj/effect/proc_holder/spell/aoe_turf/conjure/creature/cult - name = "Summon Creatures (DANGEROUS)" - clothes_req = TRUE - charge_max = 5000 - summon_amt = 2 - /obj/effect/proc_holder/spell/aoe_turf/repulse name = "Repulse" desc = "This spell throws everything around the user away." diff --git a/code/modules/station_goals/shield.dm b/code/modules/station_goals/shield.dm index 4c9b3556b6aa..e42cb866b508 100644 --- a/code/modules/station_goals/shield.dm +++ b/code/modules/station_goals/shield.dm @@ -158,26 +158,3 @@ /obj/machinery/satellite/meteor_shield/toggle(user) if(!..(user)) return FALSE - if(obj_flags & EMAGGED) - if(active) - change_meteor_chance(2) - else - change_meteor_chance(0.5) - -/obj/machinery/satellite/meteor_shield/proc/change_meteor_chance(mod) - var/datum/round_event_control/E = locate(/datum/round_event_control/meteor_wave) in SSevents.control - if(E) - E.weight *= mod - -/obj/machinery/satellite/meteor_shield/Destroy() - . = ..() - if(active && (obj_flags & EMAGGED)) - change_meteor_chance(0.5) - -/obj/machinery/satellite/meteor_shield/emag_act(mob/user) - if(obj_flags & EMAGGED) - return - obj_flags |= EMAGGED - to_chat(user, "You access the satellite's debug mode, increasing the chance of meteor strikes.") - if(active) - change_meteor_chance(2) diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm index 05dffd8b4ffd..4c9a9be3b6d4 100644 --- a/code/modules/surgery/bodyparts/head.dm +++ b/code/modules/surgery/bodyparts/head.dm @@ -271,11 +271,6 @@ max_damage = 500 animal_origin = ALIEN_BODYPART -/obj/item/bodypart/head/devil - dismemberable = 0 - max_damage = 5000 - animal_origin = DEVIL_BODYPART - /obj/item/bodypart/head/larva icon = 'icons/mob/animal_parts.dmi' icon_state = "larva_head" diff --git a/code/modules/surgery/bodyparts/parts.dm b/code/modules/surgery/bodyparts/parts.dm index 5f89d15aa95f..543a0e5fddde 100644 --- a/code/modules/surgery/bodyparts/parts.dm +++ b/code/modules/surgery/bodyparts/parts.dm @@ -43,11 +43,6 @@ max_damage = 500 animal_origin = ALIEN_BODYPART -/obj/item/bodypart/chest/devil - dismemberable = 0 - max_damage = 5000 - animal_origin = DEVIL_BODYPART - /obj/item/bodypart/chest/larva icon = 'icons/mob/animal_parts.dmi' icon_state = "larva_chest" @@ -153,12 +148,6 @@ max_damage = 100 animal_origin = ALIEN_BODYPART -/obj/item/bodypart/l_arm/devil - dismemberable = FALSE - can_be_disabled = FALSE - max_damage = 5000 - animal_origin = DEVIL_BODYPART - /obj/item/bodypart/r_arm name = "right arm" desc = "Over 87% of humans are right handed. That figure is much lower \ @@ -255,12 +244,6 @@ max_damage = 100 animal_origin = ALIEN_BODYPART -/obj/item/bodypart/r_arm/devil - dismemberable = FALSE - can_be_disabled = FALSE - max_damage = 5000 - animal_origin = DEVIL_BODYPART - /obj/item/bodypart/leg/left name = "left leg" desc = "Some athletes prefer to tie their left shoelaces first for good \ @@ -346,12 +329,6 @@ max_damage = 100 animal_origin = ALIEN_BODYPART -/obj/item/bodypart/leg/left/devil - dismemberable = FALSE - can_be_disabled = FALSE - max_damage = 5000 - animal_origin = DEVIL_BODYPART - /obj/item/bodypart/leg/right name = "right leg" desc = "You put your right leg in, your right leg out. In, out, in, out, \ @@ -438,9 +415,3 @@ can_be_disabled = FALSE max_damage = 100 animal_origin = ALIEN_BODYPART - -/obj/item/bodypart/leg/right/devil - dismemberable = FALSE - can_be_disabled = FALSE - max_damage = 5000 - animal_origin = DEVIL_BODYPART diff --git a/code/modules/surgery/experimental_dissection.dm b/code/modules/surgery/experimental_dissection.dm index eccf729d263f..fd3c740b9eb1 100644 --- a/code/modules/surgery/experimental_dissection.dm +++ b/code/modules/surgery/experimental_dissection.dm @@ -13,7 +13,7 @@ /datum/surgery_step/clamp_bleeders, /datum/surgery_step/close) possible_locs = list(BODY_ZONE_CHEST) - target_mobtypes = list(/mob/living) //Feel free to dissect devils but they're magic. + target_mobtypes = list(/mob/living) replaced_by = /datum/surgery/advanced/experimental_dissection/adv requires_tech = FALSE var/value_multiplier = 0.25 diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm index 6a5a344b177e..b86c5b8b86ce 100644 --- a/code/modules/surgery/organs/vocal_cords.dm +++ b/code/modules/surgery/organs/vocal_cords.dm @@ -99,10 +99,7 @@ var/log_message = uppertext(message) if(!span_list || !span_list.len) - if(iscultist(user)) - span_list = list("narsiesmall") - else - span_list = list() + span_list = list() user.say(message, spans = span_list, sanitize = FALSE) @@ -135,10 +132,6 @@ if(user.mind.assigned_role == "Mime") power_multiplier *= 0.5 - //Cultists are closer to their gods and are more powerful, but they'll give themselves away - if(iscultist(user)) - power_multiplier *= 2 - //Try to check if the speaker specified a name or a job to focus on var/list/specific_listeners = list() var/found_string = null @@ -148,15 +141,8 @@ for(var/V in listeners) var/mob/living/L = V - var/datum/antagonist/devil/devilinfo = is_devil(L) - if(devilinfo && findtext(message, devilinfo.truename)) - var/start = findtext(message, devilinfo.truename) - listeners = list(L) //Devil names are unique. - power_multiplier *= 5 //if you're a devil and god himself addressed you, you fucked up - //Cut out the name so it doesn't trigger commands - message = copytext(message, 1, start) + copytext(message, start + length(devilinfo.truename)) - break - else if(findtext(message, L.real_name, 1, length(L.real_name) + 1)) + + if(findtext(message, L.real_name, 1, length(L.real_name) + 1)) specific_listeners += L //focus on those with the specified name //Cut out the name so it doesn't trigger commands found_string = L.real_name @@ -331,11 +317,7 @@ for(var/V in listeners) var/mob/living/L = V var/text = "" - if(is_devil(L)) - var/datum/antagonist/devil/devilinfo = is_devil(L) - text = devilinfo.truename - else - text = L.real_name + text = L.real_name addtimer(CALLBACK(L, TYPE_PROC_REF(/atom/movable, say), text), 5 * i) i++ diff --git a/code/modules/unit_tests/create_and_destroy.dm b/code/modules/unit_tests/create_and_destroy.dm index 9aee2ca10624..0e0248162fc8 100644 --- a/code/modules/unit_tests/create_and_destroy.dm +++ b/code/modules/unit_tests/create_and_destroy.dm @@ -35,8 +35,6 @@ /obj/machinery/power/shuttle/engine/liquid, //needs a template /obj/effect/landmark/subship, - //needs a friend :( - /obj/effect/mob_spawn/human/demonic_friend, //needs a derg /obj/structure/carp_rift, //doesn't have icons diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 877f1f11d854..0923ba1cc70e 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -1791,13 +1791,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) restricted_roles = list("Curator") limited_stock = 1 //please don't spam deadchat -/datum/uplink_item/role_restricted/cultconstructkit - name = "Cult Construct Kit" - desc = "Recovered from an abandoned Nar'sie cult lair two construct shells and a stash of empty soulstones was found. These were purified to prevent occult contamination and have been put in a belt so they may be used as an accessible source of disposable minions. The construct shells have been packaged into two beacons for rapid and portable deployment." - item = /obj/item/storage/box/syndie_kit/cultconstructkit - cost = 20 - restricted_roles = list("Chaplain") - /datum/uplink_item/role_restricted/lawnmower name = "Gas powered lawn mower" desc = "A lawn mower is a machine utilizing one or more revolving blades to cut a grass surface to an even height, or bodies if that's your thing" diff --git a/shiptest.dme b/shiptest.dme index 04d951c46325..187540e66a26 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -50,7 +50,6 @@ #include "code\__DEFINES\construction.dm" #include "code\__DEFINES\contracts.dm" #include "code\__DEFINES\cooldowns.dm" -#include "code\__DEFINES\cult.dm" #include "code\__DEFINES\directional.dm" #include "code\__DEFINES\diseases.dm" #include "code\__DEFINES\DNA.dm" @@ -283,7 +282,6 @@ #include "code\_onclick\hud\alien_larva.dm" #include "code\_onclick\hud\constructs.dm" #include "code\_onclick\hud\credits.dm" -#include "code\_onclick\hud\devil.dm" #include "code\_onclick\hud\drones.dm" #include "code\_onclick\hud\fullscreen.dm" #include "code\_onclick\hud\generic_dextrous.dm" @@ -307,7 +305,6 @@ #include "code\_onclick\hud\screen_objects.dm" #include "code\_onclick\hud\screentip.dm" #include "code\_onclick\hud\storage.dm" -#include "code\_onclick\hud\swarmer.dm" #include "code\controllers\admin.dm" #include "code\controllers\controller.dm" #include "code\controllers\failsafe.dm" @@ -552,7 +549,6 @@ #include "code\datums\components\sitcomlaughter.dm" #include "code\datums\components\sizzle.dm" #include "code\datums\components\slippery.dm" -#include "code\datums\components\soulstoned.dm" #include "code\datums\components\spill.dm" #include "code\datums\components\spooky.dm" #include "code\datums\components\squeak.dm" @@ -846,11 +842,9 @@ #include "code\game\area\ai_monitored.dm" #include "code\game\area\areas.dm" #include "code\game\area\ship_areas.dm" -#include "code\game\area\Space_Station_13_areas.dm" #include "code\game\area\areas\away_content.dm" #include "code\game\area\areas\centcom.dm" #include "code\game\area\areas\outpost.dm" -#include "code\game\area\areas\shuttles.dm" #include "code\game\area\areas\ruins\_ruins.dm" #include "code\game\area\areas\ruins\beachplanet.dm" #include "code\game\area\areas\ruins\icemoon.dm" @@ -872,18 +866,12 @@ #include "code\game\gamemodes\clown_ops\bananium_bomb.dm" #include "code\game\gamemodes\clown_ops\clown_ops.dm" #include "code\game\gamemodes\clown_ops\clown_weapons.dm" -#include "code\game\gamemodes\cult\cult.dm" -#include "code\game\gamemodes\devil\devil_game_mode.dm" -#include "code\game\gamemodes\devil\game_mode.dm" -#include "code\game\gamemodes\devil\objectives.dm" -#include "code\game\gamemodes\devil\devil_agent\devil_agent.dm" #include "code\game\gamemodes\dynamic\dynamic.dm" #include "code\game\gamemodes\dynamic\dynamic_rulesets.dm" #include "code\game\gamemodes\dynamic\dynamic_rulesets_latejoin.dm" #include "code\game\gamemodes\dynamic\dynamic_rulesets_midround.dm" #include "code\game\gamemodes\dynamic\dynamic_rulesets_roundstart.dm" #include "code\game\gamemodes\extended\extended.dm" -#include "code\game\gamemodes\meteor\meteor.dm" #include "code\game\gamemodes\meteor\meteors.dm" #include "code\game\gamemodes\nuclear\nuclear.dm" #include "code\game\gamemodes\sandbox\airlock_maker.dm" @@ -1700,20 +1688,6 @@ #include "code\modules\antagonists\changeling\powers\strained_muscles.dm" #include "code\modules\antagonists\changeling\powers\tiny_prick.dm" #include "code\modules\antagonists\changeling\powers\transform.dm" -#include "code\modules\antagonists\cult\blood_magic.dm" -#include "code\modules\antagonists\cult\cult.dm" -#include "code\modules\antagonists\cult\cult_comms.dm" -#include "code\modules\antagonists\cult\cult_items.dm" -#include "code\modules\antagonists\cult\cult_structures.dm" -#include "code\modules\antagonists\cult\cult_turf_overlay.dm" -#include "code\modules\antagonists\cult\rune_spawn_action.dm" -#include "code\modules\antagonists\cult\runes.dm" -#include "code\modules\antagonists\devil\devil.dm" -#include "code\modules\antagonists\devil\imp\imp.dm" -#include "code\modules\antagonists\devil\sintouched\objectives.dm" -#include "code\modules\antagonists\devil\sintouched\sintouched.dm" -#include "code\modules\antagonists\devil\true_devil\_true_devil.dm" -#include "code\modules\antagonists\devil\true_devil\inventory.dm" #include "code\modules\antagonists\disease\disease_abilities.dm" #include "code\modules\antagonists\disease\disease_datum.dm" #include "code\modules\antagonists\disease\disease_disease.dm" @@ -1752,8 +1726,6 @@ #include "code\modules\antagonists\slaughter\slaughterevent.dm" #include "code\modules\antagonists\space_dragon\space_dragon.dm" #include "code\modules\antagonists\survivalist\survivalist.dm" -#include "code\modules\antagonists\swarmer\swarmer.dm" -#include "code\modules\antagonists\swarmer\swarmer_event.dm" #include "code\modules\antagonists\traitor\datum_traitor.dm" #include "code\modules\antagonists\traitor\syndicate_contract.dm" #include "code\modules\antagonists\traitor\equipment\contractor.dm" @@ -1764,7 +1736,6 @@ #include "code\modules\antagonists\valentines\valentine.dm" #include "code\modules\antagonists\wizard\wizard.dm" #include "code\modules\antagonists\wizard\equipment\artefact.dm" -#include "code\modules\antagonists\wizard\equipment\soulstone.dm" #include "code\modules\antagonists\wizard\equipment\spellbook.dm" #include "code\modules\antagonists\xeno\xeno.dm" #include "code\modules\assembly\assembly.dm" @@ -1871,7 +1842,6 @@ #include "code\modules\awaymissions\mission_code\research.dm" #include "code\modules\awaymissions\mission_code\snowdin.dm" #include "code\modules\awaymissions\mission_code\spacebattle.dm" -#include "code\modules\awaymissions\mission_code\stationCollision.dm" #include "code\modules\awaymissions\mission_code\undergroundoutpost45.dm" #include "code\modules\balloon_alert\balloon_alert.dm" #include "code\modules\buildmode\bm_mode.dm" @@ -2115,7 +2085,6 @@ #include "code\modules\events\camerafailure.dm" #include "code\modules\events\carp_migration.dm" #include "code\modules\events\communications_blackout.dm" -#include "code\modules\events\devil.dm" #include "code\modules\events\disease_outbreak.dm" #include "code\modules\events\dust.dm" #include "code\modules\events\electrical_storm.dm" @@ -2127,10 +2096,7 @@ #include "code\modules\events\high_priority_bounty.dm" #include "code\modules\events\immovable_rod.dm" #include "code\modules\events\ion_storm.dm" -#include "code\modules\events\major_dust.dm" #include "code\modules\events\mass_hallucination.dm" -#include "code\modules\events\meateor_wave.dm" -#include "code\modules\events\meteor_wave.dm" #include "code\modules\events\nightmare.dm" #include "code\modules\events\operative.dm" #include "code\modules\events\prison_break.dm" @@ -2385,7 +2351,6 @@ #include "code\modules\language\teceti_unified.dm" #include "code\modules\language\vox_pidgin.dm" #include "code\modules\language\xenocommon.dm" -#include "code\modules\library\lib_codex_gigas.dm" #include "code\modules\library\lib_items.dm" #include "code\modules\library\lib_machines.dm" #include "code\modules\library\random_books.dm" @@ -2668,11 +2633,9 @@ #include "code\modules\mob\living\silicon\robot\robot_movement.dm" #include "code\modules\mob\living\silicon\robot\robot_say.dm" #include "code\modules\mob\living\simple_animal\animal_defense.dm" -#include "code\modules\mob\living\simple_animal\constructs.dm" #include "code\modules\mob\living\simple_animal\corpse.dm" #include "code\modules\mob\living\simple_animal\damage_procs.dm" #include "code\modules\mob\living\simple_animal\parrot.dm" -#include "code\modules\mob\living\simple_animal\shade.dm" #include "code\modules\mob\living\simple_animal\simple_animal.dm" #include "code\modules\mob\living\simple_animal\status_procs.dm" #include "code\modules\mob\living\simple_animal\bot\bot.dm" @@ -2781,7 +2744,6 @@ #include "code\modules\mob\living\simple_animal\hostile\megafauna\hierophant.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\legion.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\megafauna.dm" -#include "code\modules\mob\living\simple_animal\hostile\megafauna\swarmer.dm" #include "code\modules\mob\living\simple_animal\hostile\megafauna\wendigo.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\basilisk.dm" #include "code\modules\mob\living\simple_animal\hostile\mining_mobs\brimdemon.dm" @@ -3017,7 +2979,6 @@ #include "code\modules\power\singularity\field_generator.dm" #include "code\modules\power\singularity\generator.dm" #include "code\modules\power\singularity\investigate.dm" -#include "code\modules\power\singularity\narsie.dm" #include "code\modules\power\singularity\singularity.dm" #include "code\modules\power\singularity\particle_accelerator\particle.dm" #include "code\modules\power\singularity\particle_accelerator\particle_accelerator.dm" @@ -3335,10 +3296,7 @@ #include "code\modules\spells\spell_types\bloodcrawl.dm" #include "code\modules\spells\spell_types\charge.dm" #include "code\modules\spells\spell_types\conjure.dm" -#include "code\modules\spells\spell_types\construct_spells.dm" #include "code\modules\spells\spell_types\curse.dm" -#include "code\modules\spells\spell_types\devil.dm" -#include "code\modules\spells\spell_types\devil_boons.dm" #include "code\modules\spells\spell_types\emplosion.dm" #include "code\modules\spells\spell_types\ethereal_jaunt.dm" #include "code\modules\spells\spell_types\explosion.dm" From 6ac140c9f51816776827a5b179c60bef81009aea Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 6 Oct 2024 23:33:00 -0500 Subject: [PATCH 120/167] Automatic changelog generation for PR #3447 [ci skip] --- html/changelogs/AutoChangeLog-pr-3447.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3447.yml diff --git a/html/changelogs/AutoChangeLog-pr-3447.yml b/html/changelogs/AutoChangeLog-pr-3447.yml new file mode 100644 index 000000000000..a3c00b8de0da --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3447.yml @@ -0,0 +1,4 @@ +author: Bjarl +changes: + - {code_imp: A large amount of cruft has been deleted.} +delete-after: true From 1940816eac83368c9d672bcfae900316e8909da1 Mon Sep 17 00:00:00 2001 From: thgvr <81882910+thgvr@users.noreply.github.com> Date: Sun, 6 Oct 2024 21:05:04 -0700 Subject: [PATCH 121/167] fixes digitigrade combat/jackboots (#3472) ## About The Pull Request Title ## Changelog :cl: fix: fixed digitigrade combat/jackboots /:cl: --- icons/mob/species/misc/digitigrade_shoes.dmi | Bin 3525 -> 3494 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/species/misc/digitigrade_shoes.dmi b/icons/mob/species/misc/digitigrade_shoes.dmi index 9d08980b1e58a8c509e50e066d10877eab7a03bf..fb3dd66934718184915bed836ccd8c20f0091837 100644 GIT binary patch delta 2710 zcmZvcdpy(oAIFio#7O;e*^*p}T8DV(;xe~Lh$$U%r*ahKGRt+_S1csg#&J3>TW)F6 zIvg1*(@G4v<}zYaZgU$Z%w;?3_ivv+K99%e@%}vCkJtPCdcNPy&~j*2lJaqwuCfwD zRt9YA;MU^_EjL#5*F2!249U)qQ=v3Bf197x)75WkYLb-&Lm-fgw)Rrge4QEtQ9V(| zQ+C#tSECCS3NS7Z_XEvbNcyqj50_C|%?Jal@9xrTvp$J*zX9`0=CxD7%%H3 zaoXOH2<-12S7Sofvm>}2zTOm8EW1@Gi4O;<;5)_i@xCAlU{ztM8?XI7WP^cM?+&`C zcrN?CS!wQhL{d_Z(7-h3g@~Lcf{@YB^9*5Y!B06Erm+WO4YMuENYfDZWZwjZDaWnN z*T)IwnaVn9c#zYCa5hRl+7zFCCn?$B$+DktIqibB47~w5(57DDkf>fO&5f6O{AosN zZE)tM=!`i)%GGqvlh6!0Fea+-QH!lVuUE~J5tOjt?1#(CcJ+=KnFw)kEa!Q`_fpH@ za-l$ejIhs2N*(u$%UtD#G2eLYQu3)pQ#A+IcxmSRBPExR+2%(lb-LQbv<Je7FmXGucsJPksk5`bp2<8!0$$?DH*Q2@ z2f7q90}aMi_gPjyY5U4|Pj^y`7r1yldC*|kN^*>rw9dNohsHd)hauJtT!3lr7JKn7 z-QnXX%? z2qQz5@iRQxXje`_1|uoTLY#3-?Hk|wr}~(xG^?k&;Oo1lG_|{twelGc-N-&--X(aD z|EOcor1dJq zpL36S3)I2=qZYY$cG%DUE}bT%HdI$n4Y<0xTJlLhiTfSq=H@z>B^(Z_{>qZW6#9Xc z3GAcb=-Uc2g5>a{Y!y?QNeMs`n)L0gNBvV|IJ34zef(+o#Q!0qmFHIOGFBPH;z}XN8JZW8tk#@c-MtbHKW~t+{S{S`mal(@) z`8`@MwwPr{&%N1TFPD(LKl*wD2I`eA)&8dob*;gBWsD0c&LRyIy>mnG9r1(umv~;J&NEP572lv8<4t~tB%5hd#b(RpF8%Rkz@aMr^ z%XR$^Bk9)}xv9`lOa4gltPL?#@$49*Y(tJ|vi|bg7Zmr*#Qy6T%-eaO4QV56+)eic zaFn>&7kqK?UV;){I$Zfxqk6-o6unJV`!)R!A3ecK3lchc+ctTsQtkOr?wQ`dMD6~q zK6xmtej7VlMbpc(j4|e?c7-8Pczq_ZKtgIZkLDDgC~$CSMA`}D*<`-1p56oAZ;EHn z9BulPeqH}XXb7pXUIiEk*n=*+BQkU!EX1XNhn`kdtp`X`wz0u5FM?Aeoj-`Oh*VG| zJ|OdI#x=h?`>o>?;4H*ha8Ot=!uq#c?_%{cYT zX~%6Rto|K(FC-YwZ<6z5Xm_6L8&tzO;9=ZOtCcUJGRLk>HZ z37bUL#qZ2aZ7N#uI@S}vEG;040wUVyp3h$)D3=b3cp_J{{ERBt>WKfn2;~4hqgIlXt0y?<5a~2P z(SfraBHhW|Y`dcHdF$-XIR--_b9Q@%fIv?gMN3)ES*~bSExyQ=zWMn`?XNlls884~yOpgB z){U&UvMQ04Z3()n)^d53ivgwPvBGnmZlsqUjF#{rHgK?i@^A>-VMlUxUGXbXSH8zQ zHE5WoXp^`(s3E++#tZj`eEt?goW5~7g=dl1M)4rnR&!7JlG}(ufAiXpN$HZBW zQo&{L%oUa2p?w!47r8*@b?;1b0T{J2xLqgJ?%|&KEwj4`lU9~Ej2jvm6l}#MZgLmm zfUAqDZ-j!wOG4DX(^_ST2%^VI@U2vTcNp|CN@RhT`vxsquK_3fo|0cJtu7+dHMOq5 zYhzLbwf2r;IWQe^zabmajc>b9l{(Ag@!Ou7yqI`*{#chA;InFqmYU?Wv%KDezs`R8 zF1k5b9-ONgb@loEfH~T$enSlW`JBJ#cAh|)(!-OSCWK(0Y@4ws%vTb^1v|wP7TR_O_Kh7lH zGBY0;r7`c^7P{6LRREP7^C6Z=#iNI`KK^Tx+-(Vc0%2iXSkL@ZurL+qJQ_p-YCx#x zcU(sZ+4Cmo5VwHKBOiUwrA)MQ{<@R016O5z8IkOVPY0G&E7*)qMZKjB<2F!7eBX}Z zcvMI_LjPoN0G0Ux;87Qe$5lTc`yePoMY0i}cklhr{XNm|5lPuD|6Edv_bLu=c zL7o}5rkm z3g5`~p=sgCV&{P{HCY4m_IPfm1+PYSV^P-d$0N?ZH{G0GLu1U$a zSESKPe1!02n=fXwY6C;)(!VcS$>=qrrP~7wGp?a|5x|}X2~8ObI;bkAz>*Gfblogb zRlbE?TNEXD6>QYR#EOZT!r{ww2IKfSy4~dS7cz5KqBr}e;`TC_FrsF(E}Hs4@zx~Y z$e51Ac73D#qLQXMKMd<{jt+#h>g>ImKuB)p{N=h06fn0$*NLU!AHJt|;fSjD| zZLDr27OocFb$9u8ymzPNs$;JC6V*zjXtPH5m0BbXWTKafa1E@W2ueS+OkQ+r-4>aj z*=qiSaLzPD>W6Q5&ve0@MK~3uoT@2M##)NPu`!|&z`f__^0jIF^4cu^g6OSlM6lNR z;qvBK`rw!k%XiJ`v<~_ss{?r<>icX*C<3M@S=euhn;EpkF#dOlw$M3tKok_NF^`3X@ri zuXrG+$4osfsOeQNvk6k9E5uW5IWHL>ntiiiUFMOdI$0O~)vpvQS|Vt4vqR*I zDHJKR=9^epaIhQ&>^osaU_Mhb-^=sv{%}LeAEU&{X@|8VVe8uYH9`uF8}zW*1$XyA z#L0mJ>jP__xzCwz4)qZaQw?!M-L{OYV$v3a2R%sL7>WHUIkC;fnl+_%;P7TIIAzDraf1_$to*gnh2#ULw> z1j$<$W#dB)>y7=zqmob)Q-YnoEJ5}+wJbFOET{Oahcl!s^2%Z0<1Drt48;zEWq|Jx zP<`#O!*vJ`FX7rJqT`aif<6vEpv|tU_t)3+4jCGU5#a4hGNy{~r%~sgj4&wwEMK3v zT^eslC>ST%R)nY9wnzy0jDPm_TzBG9QiOA(`wvz&X^ss{nLD!ywCB|9P6cq$JaVqk zR^dbKyf0|SHw_(v0B?yzr6C5OzswNm%L;ftHCoaSdHlK{W}NW8wSupvS<0W%<@LUmUw;FM| z>FJUgOR}daU=WJj=HiijF8Kli`l2pe{qYM(E&&fbb!w4T0^*67m2o+5OT8tb^M{9> zQS>+s(^S~rOW*7iVswsg+UC>G4&yg<3JfgSPoL0_l|SOb#< z`9Hn&C%v!LEv_yv

    ?F0J^nqSPC~}3^Cu)#C(Spq<(~-zVuw_Lu#5`^*6aO6TdrX z1LN**`CQw4)k6bb1qLRguR!+Ajk+o^wcAxIr1~(U8-8c&YS|YsC*?O|v`>d$ruVbS zEkn#EE9i#7vrPkaz`Zge3b03e734X1P^Mf`!gXo}#C9FXLJh(Nd}R$||IGKTe&eU8 zQ`M`hF}(33c3Pj7Ml!_PZs@)h%s=Txq*sqHg5=D~DX9&0${5Zh$w&~Btz+Kv->1P6gvEf(<#S=32#grNH zOvnC*W*`B3ie_-C)r5rC}~f_vh;ph?0CmB z7H-z!1#|0R_!#r9it(B>_hoOa5TVE$LlWlIHaxhT^yo74#}AUfM^#%M+zg0)RDeJp$PLCv+zj!C7u~V zkKJO_+fb9Ys+}ae%G~;pEQHs9)~gxHvdS9sqPsLtx#+aupYuN_xq@?bw4;rUs6P*5 zN%xyl>C9^OUaDEekM8`doqi915$3w1Hl>q0ZZxePK$!K%xkm#KM{N}zZ z>*wS{zi8B-nv@e4e=ZD!tEh-Avo~zn~?Kw_8U9=pYKsn())pJ!5_k z=L)Rw1@Ylm%IL=DjuZqm7Ug#K+x6y5-p&WY6ee-U7nVej{E=V;!TstnK|-}Y{Q)G* zaOw`+<{+okQ2ZnO%S|H@`{8dzPDI_$1?p$9vg+=L+2tki6%e#?We2j3c|7JEDaGX} z{u1Wxlis*-pldeMmp80BfuuU>Qy9gI&|SIgXn;Y7L=8uJ`{;2;i4#ucs>RVpIGidC zNc?KbYW;^6un+ZemGUHqs+9C~CoeOz1a?#A_V3RHL0scBV01YjgMA0K20F#CpN7s; zH-5i^`VEvdWW#KdN{ooxY@w{K(M}^#D7U^Ki;w8O;6^q%TqK$GndkLlKOcuihWD;- z_GM|6ud(Lm;AObtC#a;uac7P${A~b!6!&i=tQfQP_Iv**04gN+Xv$2e9Y7{MB*XzbWXt?tXCgdZnAgpgPUZ?1b`&@L^;0rF< z90mrRR8xCETUZ?1ce_yGHkt6ml9u)?3)wmG2`CIjBl!MLhQ^+gI}(b^m^HTDMba9FS;`{7I3jgrupRi{(|y atOKA3H-OeI>9!)Yf9!3YZ0auir~MDrykw04 From d6a36864a153a495fae180a68e044e86f0b7ecaf Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 6 Oct 2024 23:45:52 -0500 Subject: [PATCH 122/167] Automatic changelog generation for PR #3472 [ci skip] --- html/changelogs/AutoChangeLog-pr-3472.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3472.yml diff --git a/html/changelogs/AutoChangeLog-pr-3472.yml b/html/changelogs/AutoChangeLog-pr-3472.yml new file mode 100644 index 000000000000..899e00d9c9e5 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3472.yml @@ -0,0 +1,4 @@ +author: thgvr +changes: + - {bugfix: fixed digitigrade combat/jackboots} +delete-after: true From 7ad140fdfff28a5b228bb849a116cdfd01f29723 Mon Sep 17 00:00:00 2001 From: Sadhorizon <108196626+Sadhorizon@users.noreply.github.com> Date: Mon, 7 Oct 2024 09:02:45 +0200 Subject: [PATCH 123/167] Adds misc Cybersun stuff. Also .22 is now in cargo. (#3484) ## About The Pull Request Adds: - Cybersun captain's safe (to be used on Cybersun ships) - contains a Himehabu with two mags and secrets docs. - Cybersun Virtual Solutions and Cybersun Biodynamics secret documents. - Cybersun Biodynamics stamp. - .22 LR to cargo so the Himehabus aren't THAT ass. Stamp on paper (next to VS one) ![obraz](https://github.com/user-attachments/assets/79ecc7cd-6a40-498a-977d-7bc3875406dd) **Mapping changes will be done in Kansatsu remap and in Li Tieg reflavor.** ## Why It's Good For The Game Probably cool stuff to have. ## Changelog :cl: add: Cybersun Biodynamics stamp. add: Cybersun secret documents. add: Cybersun captain's safe. add: .22 LR is now purchasable in cargo. /:cl: --- code/game/objects/items/documents.dm | 9 +++++++++ code/game/objects/items/storage/secure.dm | 17 +++++++++++++++++ code/modules/asset_cache/asset_list_items.dm | 1 + code/modules/cargo/packs/ammo.dm | 8 ++++++++ code/modules/paperwork/folders_premade.dm | 9 +++++++++ code/modules/paperwork/stamps.dm | 7 ++++++- icons/obj/bureaucracy.dmi | Bin 36696 -> 36944 bytes icons/stamp_icons/large_stamp-biodynamics.png | Bin 0 -> 1139 bytes 8 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 icons/stamp_icons/large_stamp-biodynamics.png diff --git a/code/game/objects/items/documents.dm b/code/game/objects/items/documents.dm index 51c17ff4290d..2fb225fd2fb9 100644 --- a/code/game/objects/items/documents.dm +++ b/code/game/objects/items/documents.dm @@ -27,6 +27,15 @@ /obj/item/documents/syndicate desc = "\"Top Secret\" documents detailing sensitive Syndicate operational intelligence." +/obj/item/documents/syndicate/cybersun + name = "classified Cybersun documents" + desc = "\"Top Secret\" documents detailing sensitive Cybersun Virtual Solutions operational intelligence. These documents are verified with a red wax seal." + icon_state = "docs_red" + +/obj/item/documents/syndicate/cybersun/biodynamics + desc = "\"Top Secret\" Cybersun Biodynamics documents, filled with patient lists and unfinished designs. These documents are verified with a teal wax seal." + icon_state = "docs_teal" + /obj/item/documents/syndicate/red name = "red secret documents" desc = "\"Top Secret\" documents detailing sensitive Syndicate operational intelligence. These documents are verified with a red wax seal." diff --git a/code/game/objects/items/storage/secure.dm b/code/game/objects/items/storage/secure.dm index f918a3b883fb..f46d6eb4c2c9 100644 --- a/code/game/objects/items/storage/secure.dm +++ b/code/game/objects/items/storage/secure.dm @@ -211,3 +211,20 @@ /obj/item/storage/secure/safe/suns/PopulateContents() . = ..() new /obj/item/storage/belt/sabre/suns(src) + +/obj/item/storage/secure/safe/cybersun + name = "Captain's secure safe" + desc = "An electronic safe manufactured by Cybersun Virtual Solutions." + +/obj/item/storage/secure/safe/cybersun/PopulateContents() + new /obj/item/gun/ballistic/automatic/pistol/himehabu/no_mag(src) + new /obj/item/ammo_box/magazine/m22lr_himehabu(src) + new /obj/item/ammo_box/magazine/m22lr_himehabu(src) + +/obj/item/storage/secure/safe/cybersun/solutions/PopulateContents() + . = ..() + new /obj/item/folder/documents/syndicate/cybersun(src) + +/obj/item/storage/secure/safe/cybersun/biodynamics/PopulateContents() + . = ..() + new /obj/item/folder/documents/syndicate/cybersun/biodynamics(src) diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index bcd83b5a8265..4920de28e364 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -121,6 +121,7 @@ "stamp-bard" = 'icons/stamp_icons/large_stamp-bard.png', "stamp-gold" = 'icons/stamp_icons/large_stamp-gold.png', "stamp-cybersun" = 'icons/stamp_icons/large_stamp-cybersun.png', + "stamp-biodynamics" = 'icons/stamp_icons/large_stamp-biodynamics.png', "stamp-donk" = 'icons/stamp_icons/large_stamp-donk.png' ) diff --git a/code/modules/cargo/packs/ammo.dm b/code/modules/cargo/packs/ammo.dm index a7ab407b428e..8d8f47a05f65 100644 --- a/code/modules/cargo/packs/ammo.dm +++ b/code/modules/cargo/packs/ammo.dm @@ -421,3 +421,11 @@ desc = "Contains a fifty-round box of .44 roumain hollow point ammo, great against unarmored targets." contains = list(/obj/item/ammo_box/a44roum/hp) cost = 500 + +/datum/supply_pack/ammo/c22lr + name = ".22 LR Ammo Box Crate" + desc = "Contains two 75 round ammo boxes for refilling .22 LR weapons." + contains = list(/obj/item/ammo_box/c22lr_box, + /obj/item/ammo_box/c22lr_box) + crate_name = "ammo crate" + cost = 250 diff --git a/code/modules/paperwork/folders_premade.dm b/code/modules/paperwork/folders_premade.dm index 3c9dbb89feae..48b7cb763785 100644 --- a/code/modules/paperwork/folders_premade.dm +++ b/code/modules/paperwork/folders_premade.dm @@ -41,6 +41,15 @@ name = "folder- 'TOP SECRET'" desc = "A folder stamped \"Top Secret - Property of The Syndicate.\"" +/obj/item/folder/documents/syndicate/cybersun + document = /obj/item/documents/syndicate/cybersun + icon_state = "folder_sred" + desc = "A folder stamped \"Top Secret - Property of Cybersun Industries.\"" + +/obj/item/folder/documents/syndicate/cybersun/biodynamics + document = /obj/item/documents/syndicate/cybersun/biodynamics + icon_state = "folder_sblue" + /obj/item/folder/documents/syndicate/red document = /obj/item/documents/syndicate/red icon_state = "folder_sred" diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm index 45893f8d5fc5..22e9a722634b 100644 --- a/code/modules/paperwork/stamps.dm +++ b/code/modules/paperwork/stamps.dm @@ -97,10 +97,15 @@ dye_color = DYE_SYNDICATE /obj/item/stamp/cybersun - name = "Cybersun rubber stamp" + name = "Cybersun Virtual Solutions rubber stamp" icon_state = "stamp-cybersun" dye_color = DYE_SYNDICATE +/obj/item/stamp/cybersun/biodynamics + name = "Cybersun Biodynamics rubber stamp" + icon_state = "stamp-biodynamics" + dye_color = DYE_CMO + /obj/item/stamp/solgov name = "SolGov rubber stamp" icon_state = "stamp-solgov" diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi index 17bab47dc9ef14214611b37cb785fe42df0a96a2..68fef79c160b5c6abd6d9d67d33b21da2f7fea34 100644 GIT binary patch literal 36944 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�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%0D##J9 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 diff --git a/icons/stamp_icons/large_stamp-biodynamics.png b/icons/stamp_icons/large_stamp-biodynamics.png new file mode 100644 index 0000000000000000000000000000000000000000..0d09b4f37c005a42b9fbda838f52e1b332895ef3 GIT binary patch literal 1139 zcmV-(1dRKMP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1PDn)K~#8N?V3As z+b|G@>6}8nRXArz;{)UfX)@y*NTo`Z)(t$9CP&Bt+~f>#A@{n4!XL(JcGk-WKo9^y zd@~#nPs00S7X;;|QduPrKYv{9Z4rF2X~hD8H}?;xl7y}zSJs8}-cr1|dU9nwba`zF z-h5}%#q)SPK40G7c5lCad;Lui6E9pCgHl`7Oc@iYZ~ssfB{EVH$JekJ=k;*d+pHHP zE-jWSazJ2QGAMaA?uU##CM3IzL2dbbQj&ZEA<>N56~@O1E5kOSjirfMMV<-Gu)M5K zTul(U4RH9Fyl>aSN<|iv2nh@h52Sr{NMIKs`ug+d(88Fyw}+xwk#WzxNebj5u7vOR zKogqZrzVR@goXsw1m<2o1sTTWvvLs_6e%)i4uJ_iHV8d_D2f(&PJxLf2wkkm()e?R z&zR5hVHH16%x!dx4-dB4>?k^1yYl_z<$C`6YI7gty3e{0O=K9*-Zt--OLM>3oc=sL z8RMajmuY#^(W3P?6%3dD0Bxke1Q%MHn@ipd7?~*H8h@z0HMD;)483d1%`wE4(ETw# z5*UIa{Nmbvdo*R**RCZIZBNE(Zoz8yiXKD#c|ERwhXc}^=Zty249#duLNA&6pCJQ4 zXxA6FsgWi$NkrB>Ee8;m=}XpBNNAf)%3?ejMr(n0s4p_S{_F90m0rZ_O#y?4<bc2AWEjMTxY-S$EfOg-i4jV00{cF$m_lbEG7OBAR=y?z%392e6I&2B0eHQ( z6%6$UsFN>RKAvr#rGoKr&HaIflSE{As|=|yFj5#u3LF#6Lpwrwc(nQjjK;RvC@f}A zPJ!mxF3`eFO*D~hDE8iShx+q+EmHJ>_O5#*!abg0vsn{GWVxcJhUB?Ix)d7XYo9u? zpy*lxS%i}u=n@pjFJVigipSHk*mNU`efiO_V%>jZuigU^UXMI z{;tjAWeJ}HWj)X1c(SwYWnSwq+Z#mtPx-NL$2eZ$m}RrsiJa;PWsLrDdpl23Y6P+= zA@dSmr}dX(@s!$k<$ICm=iCGasYE72`hb42zZ{E;>I3=@j)4$OU$BtRQDBgRC(nTt zUFQ2h+rjqoxJ3e^T-K!~2TvxkDMdN22Qoi}uIKS`T%(`I1;#zD+=Q+;K%PpME&k-$ zp?|%aLMl&Q3|*oEoS~7TobSgu2@JA)QSe0?o6ySTv4=zA_0{taBreZQL9rs^-W0YB z8Jf54!etCThbnSFU{H8i4#yc1oaU2S=%PeM>T6K$i3Ejh-ybKY&Z!a@O=OVUOH^ed zQs^$>mqtB8399F=0C+EiF2##M_2kMrDanf~l}Z^j&420+X`;f>3-SN}002ovPDHLk FV1kH(3S$5O literal 0 HcmV?d00001 From 8ca81419ec1abc21f9957ff0f510d70d3cd8f6a1 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 7 Oct 2024 02:13:16 -0500 Subject: [PATCH 124/167] Automatic changelog generation for PR #3484 [ci skip] --- html/changelogs/AutoChangeLog-pr-3484.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3484.yml diff --git a/html/changelogs/AutoChangeLog-pr-3484.yml b/html/changelogs/AutoChangeLog-pr-3484.yml new file mode 100644 index 000000000000..e1268b036c5f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3484.yml @@ -0,0 +1,6 @@ +author: Sadhorizon +changes: + - {rscadd: Cybersun Biodynamics stamp.} + - {rscadd: Cybersun secret documents.} + - {rscadd: Cybersun captain's safe.} +delete-after: true From 09ffd17f697265bb9388544d4e3e2cd6faa6b81f Mon Sep 17 00:00:00 2001 From: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Date: Mon, 7 Oct 2024 15:33:51 -0500 Subject: [PATCH 125/167] flakey tests rerunner (#3395) ## About The Pull Request If only one test fails it will be rerun once, if that one passes it creates a bug report. https://github.com/tgstation/tgstation/pull/71519 https://github.com/tgstation/tgstation/pull/80817 https://github.com/tgstation/tgstation/pull/82790 ## Why It's Good For The Game Its so fucking annyoing to deal with ship placment failing cause of auxmos this will also probably document some bugs for us. ## Changelog :cl: FalloutFalcon, Mothblocks, Cyberboss add: retry failed unit tests. /:cl: --------- Signed-off-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> --- .github/workflows/rerun_flaky_tests.yml | 37 + code/modules/unit_tests/unit_test.dm | 2 +- .../flakyTestPayloads/chat_client.txt | 2404 ++++++++++++++++ .../flakyTestPayloads/invalid_timer.txt | 2389 ++++++++++++++++ .../flakyTestPayloads/monkey_business.txt | 2451 ++++++++++++++++ .../flakyTestPayloads/multiple_failures.txt | 8 + .../flakyTestPayloads/shapeshift.txt | 2466 +++++++++++++++++ tools/pull_request_hooks/package.json | 3 + tools/pull_request_hooks/rerunFlakyTests.js | 298 ++ .../rerunFlakyTests.test.js | 45 + 10 files changed, 10102 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/rerun_flaky_tests.yml create mode 100644 tools/pull_request_hooks/flakyTestPayloads/chat_client.txt create mode 100644 tools/pull_request_hooks/flakyTestPayloads/invalid_timer.txt create mode 100644 tools/pull_request_hooks/flakyTestPayloads/monkey_business.txt create mode 100644 tools/pull_request_hooks/flakyTestPayloads/multiple_failures.txt create mode 100644 tools/pull_request_hooks/flakyTestPayloads/shapeshift.txt create mode 100644 tools/pull_request_hooks/package.json create mode 100644 tools/pull_request_hooks/rerunFlakyTests.js create mode 100644 tools/pull_request_hooks/rerunFlakyTests.test.js diff --git a/.github/workflows/rerun_flaky_tests.yml b/.github/workflows/rerun_flaky_tests.yml new file mode 100644 index 000000000000..e3cbda05749b --- /dev/null +++ b/.github/workflows/rerun_flaky_tests.yml @@ -0,0 +1,37 @@ +name: Rerun/Report Flaky Tests +on: + workflow_run: + workflows: [Checks] + types: + - completed + +permissions: + actions: write + contents: write + issues: write + +jobs: + rerun_flaky_tests: + runs-on: ubuntu-latest + if: ${{ github.event.workflow_run.conclusion == 'failure' && github.event.workflow_run.run_attempt == 1 }} + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Rerun flaky tests + uses: actions/github-script@v6 + with: + script: | + const { rerunFlakyTests } = await import('${{ github.workspace }}/tools/pull_request_hooks/rerunFlakyTests.js') + await rerunFlakyTests({ github, context }) + report_flaky_tests: + runs-on: ubuntu-latest + if: ${{ github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.run_attempt == 2 }} + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Report flaky tests + uses: actions/github-script@v6 + with: + script: | + const { reportFlakyTests } = await import('${{ github.workspace }}/tools/pull_request_hooks/rerunFlakyTests.js') + await reportFlakyTests({ github, context }) diff --git a/code/modules/unit_tests/unit_test.dm b/code/modules/unit_tests/unit_test.dm index 7240adb33855..00e7c6e756ac 100644 --- a/code/modules/unit_tests/unit_test.dm +++ b/code/modules/unit_tests/unit_test.dm @@ -111,7 +111,7 @@ GLOBAL_VAR(test_log) log_world("::error file=[file],line=[line],title=[test_path]::[text]") // Normal log message - log_entry += "\tREASON #[reasonID]: [text] at [file]:[line]" + log_entry += "\tFAILURE #[reasonID]: [text] at [file]:[line]" var/message = log_entry.Join("\n") log_test(message) diff --git a/tools/pull_request_hooks/flakyTestPayloads/chat_client.txt b/tools/pull_request_hooks/flakyTestPayloads/chat_client.txt new file mode 100644 index 000000000000..c39a060ffcf2 --- /dev/null +++ b/tools/pull_request_hooks/flakyTestPayloads/chat_client.txt @@ -0,0 +1,2404 @@ +2022-10-27T05:35:28.0256243Z Requested labels: ubuntu-20.04 +2022-10-27T05:35:28.0256293Z Job defined at: tgstation/tgstation/.github/workflows/ci_suite.yml@refs/pull/70831/merge +2022-10-27T05:35:28.0256314Z Waiting for a runner to pick up this job... +2022-10-27T05:35:28.3806920Z Job is waiting for a hosted runner to come online. +2022-10-27T05:35:31.1835589Z Job is about to start running on the hosted runner: GitHub Actions 7 (hosted) +2022-10-27T05:35:33.6191945Z Current runner version: '2.298.2' +2022-10-27T05:35:33.6223671Z ##[group]Operating System +2022-10-27T05:35:33.6224296Z Ubuntu +2022-10-27T05:35:33.6224585Z 20.04.5 +2022-10-27T05:35:33.6225034Z LTS +2022-10-27T05:35:33.6225416Z ##[endgroup] +2022-10-27T05:35:33.6225743Z ##[group]Runner Image +2022-10-27T05:35:33.6226159Z Image: ubuntu-20.04 +2022-10-27T05:35:33.6226592Z Version: 20221018.2 +2022-10-27T05:35:33.6227149Z Included Software: https://github.com/actions/runner-images/blob/ubuntu20/20221018.2/images/linux/Ubuntu2004-Readme.md +2022-10-27T05:35:33.6227911Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu20%2F20221018.2 +2022-10-27T05:35:33.6228438Z ##[endgroup] +2022-10-27T05:35:33.6228792Z ##[group]Runner Image Provisioner +2022-10-27T05:35:33.6229236Z 2.0.91.1 +2022-10-27T05:35:33.6229586Z ##[endgroup] +2022-10-27T05:35:33.6230675Z ##[group]GITHUB_TOKEN Permissions +2022-10-27T05:35:33.6231448Z Actions: read +2022-10-27T05:35:33.6231805Z Checks: read +2022-10-27T05:35:33.6232342Z Contents: read +2022-10-27T05:35:33.6232738Z Deployments: read +2022-10-27T05:35:33.6233144Z Discussions: read +2022-10-27T05:35:33.6233560Z Issues: read +2022-10-27T05:35:33.6233904Z Metadata: read +2022-10-27T05:35:33.6234279Z Packages: read +2022-10-27T05:35:33.6234661Z Pages: read +2022-10-27T05:35:33.6234985Z PullRequests: read +2022-10-27T05:35:33.6235438Z RepositoryProjects: read +2022-10-27T05:35:33.6235864Z SecurityEvents: read +2022-10-27T05:35:33.6236198Z Statuses: read +2022-10-27T05:35:33.6236580Z ##[endgroup] +2022-10-27T05:35:33.6240880Z Secret source: None +2022-10-27T05:35:33.6241441Z Prepare workflow directory +2022-10-27T05:35:33.7582606Z Prepare all required actions +2022-10-27T05:35:33.7797278Z Getting action download info +2022-10-27T05:35:33.9844802Z Download action repository 'actions/checkout@v3' (SHA:93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8) +2022-10-27T05:35:34.3746562Z Download action repository 'actions/cache@v3' (SHA:1c73980b09e7aea7201f325a7aa3ad00beddcdda) +2022-10-27T05:35:34.6080813Z Download action repository 'actions/upload-artifact@v3' (SHA:83fd05a356d7e2593de66fc9913b3002723633cb) +2022-10-27T05:35:34.9999481Z ##[group]Checking docker version +2022-10-27T05:35:35.0019606Z ##[command]/usr/bin/docker version --format '{{.Server.APIVersion}}' +2022-10-27T05:35:35.2352575Z '1.41' +2022-10-27T05:35:35.2364837Z Docker daemon API version: '1.41' +2022-10-27T05:35:35.2365438Z ##[command]/usr/bin/docker version --format '{{.Client.APIVersion}}' +2022-10-27T05:35:35.2671237Z '1.41' +2022-10-27T05:35:35.2683601Z Docker client API version: '1.41' +2022-10-27T05:35:35.2690466Z ##[endgroup] +2022-10-27T05:35:35.2694627Z ##[group]Clean up resources from previous jobs +2022-10-27T05:35:35.2703798Z ##[command]/usr/bin/docker ps --all --quiet --no-trunc --filter "label=8d5581" +2022-10-27T05:35:35.2966781Z ##[command]/usr/bin/docker network prune --force --filter "label=8d5581" +2022-10-27T05:35:35.3198095Z ##[endgroup] +2022-10-27T05:35:35.3198489Z ##[group]Create local container network +2022-10-27T05:35:35.3210740Z ##[command]/usr/bin/docker network create --label 8d5581 github_network_552f961a7b154fc6bdcc0db4d38d15af +2022-10-27T05:35:35.4083033Z 726620eda353dcb8922d8b386f90140e986ff1b865fb24546959f0eebb92fc89 +2022-10-27T05:35:35.4104308Z ##[endgroup] +2022-10-27T05:35:35.4209182Z ##[group]Starting mysql service container +2022-10-27T05:35:35.4233087Z ##[command]/usr/bin/docker pull mysql:latest +2022-10-27T05:35:35.6809700Z latest: Pulling from library/mysql +2022-10-27T05:35:35.7627837Z 50cbc88660a5: Pulling fs layer +2022-10-27T05:35:35.7629087Z 92ca853f7184: Pulling fs layer +2022-10-27T05:35:35.7629970Z 9a2047696230: Pulling fs layer +2022-10-27T05:35:35.7630738Z fe3fea56f9fb: Pulling fs layer +2022-10-27T05:35:35.7631515Z b058249d3104: Pulling fs layer +2022-10-27T05:35:35.7632382Z 9d5014a20163: Pulling fs layer +2022-10-27T05:35:35.7633458Z 906aa7388ee2: Pulling fs layer +2022-10-27T05:35:35.7634120Z 86b5e2150967: Pulling fs layer +2022-10-27T05:35:35.7634859Z fe3fea56f9fb: Waiting +2022-10-27T05:35:35.7635207Z b058249d3104: Waiting +2022-10-27T05:35:35.7635923Z 9d5014a20163: Waiting +2022-10-27T05:35:35.7636723Z 906aa7388ee2: Waiting +2022-10-27T05:35:35.7637442Z 86b5e2150967: Waiting +2022-10-27T05:35:35.7638169Z 7c6b15dcdf4e: Pulling fs layer +2022-10-27T05:35:35.7638928Z 21de4337b977: Pulling fs layer +2022-10-27T05:35:35.7639714Z 35dab154f2ae: Pulling fs layer +2022-10-27T05:35:35.7640485Z 7c6b15dcdf4e: Waiting +2022-10-27T05:35:35.7641283Z 21de4337b977: Waiting +2022-10-27T05:35:35.7642059Z 35dab154f2ae: Waiting +2022-10-27T05:35:35.8359746Z 92ca853f7184: Verifying Checksum +2022-10-27T05:35:35.8446985Z 92ca853f7184: Download complete +2022-10-27T05:35:35.8481029Z 9a2047696230: Verifying Checksum +2022-10-27T05:35:35.8488372Z 9a2047696230: Download complete +2022-10-27T05:35:35.8926817Z b058249d3104: Verifying Checksum +2022-10-27T05:35:35.8928354Z b058249d3104: Download complete +2022-10-27T05:35:35.9459390Z 9d5014a20163: Verifying Checksum +2022-10-27T05:35:35.9459781Z 9d5014a20163: Download complete +2022-10-27T05:35:35.9501999Z fe3fea56f9fb: Verifying Checksum +2022-10-27T05:35:35.9502607Z fe3fea56f9fb: Download complete +2022-10-27T05:35:36.0227385Z 86b5e2150967: Verifying Checksum +2022-10-27T05:35:36.0228073Z 86b5e2150967: Download complete +2022-10-27T05:35:36.2107823Z 50cbc88660a5: Verifying Checksum +2022-10-27T05:35:36.2144152Z 50cbc88660a5: Download complete +2022-10-27T05:35:36.4134563Z 21de4337b977: Verifying Checksum +2022-10-27T05:35:36.4134997Z 21de4337b977: Download complete +2022-10-27T05:35:36.5421142Z 35dab154f2ae: Verifying Checksum +2022-10-27T05:35:36.5422039Z 35dab154f2ae: Download complete +2022-10-27T05:35:36.5644620Z 906aa7388ee2: Verifying Checksum +2022-10-27T05:35:36.5645584Z 906aa7388ee2: Download complete +2022-10-27T05:35:36.7764339Z 7c6b15dcdf4e: Verifying Checksum +2022-10-27T05:35:36.7764814Z 7c6b15dcdf4e: Download complete +2022-10-27T05:35:38.1046566Z 50cbc88660a5: Pull complete +2022-10-27T05:35:39.3355767Z 92ca853f7184: Pull complete +2022-10-27T05:35:39.4582128Z 9a2047696230: Pull complete +2022-10-27T05:35:39.7344329Z fe3fea56f9fb: Pull complete +2022-10-27T05:35:39.8044862Z b058249d3104: Pull complete +2022-10-27T05:35:39.8779415Z 9d5014a20163: Pull complete +2022-10-27T05:35:42.0306333Z 906aa7388ee2: Pull complete +2022-10-27T05:35:42.0993787Z 86b5e2150967: Pull complete +2022-10-27T05:35:46.6099584Z 7c6b15dcdf4e: Pull complete +2022-10-27T05:35:46.6805432Z 21de4337b977: Pull complete +2022-10-27T05:35:46.7395254Z 35dab154f2ae: Pull complete +2022-10-27T05:35:46.7446735Z Digest: sha256:06314a7a220f6043436cfd72fd9c7f174fd58ef69fe4b788625fa53be4ab66aa +2022-10-27T05:35:46.7469861Z Status: Downloaded newer image for mysql:latest +2022-10-27T05:35:46.7485796Z docker.io/library/mysql:latest +2022-10-27T05:35:46.7631416Z ##[command]/usr/bin/docker create --name bdaac24feb7948af9ae1cfcb2f1e5f3f_mysqllatest_e0031a --label 8d5581 --network github_network_552f961a7b154fc6bdcc0db4d38d15af --network-alias mysql -p 3306 --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 -e "MYSQL_ROOT_PASSWORD=root" -e GITHUB_ACTIONS=true -e CI=true mysql:latest +2022-10-27T05:35:46.8132286Z b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc +2022-10-27T05:35:46.8159678Z ##[command]/usr/bin/docker start b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc +2022-10-27T05:35:47.2490003Z b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc +2022-10-27T05:35:47.2513985Z ##[command]/usr/bin/docker ps --all --filter id=b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc --filter status=running --no-trunc --format "{{.ID}} {{.Status}}" +2022-10-27T05:35:47.2830396Z b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc Up Less than a second (health: starting) +2022-10-27T05:35:47.2856701Z ##[command]/usr/bin/docker port b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc +2022-10-27T05:35:47.3113114Z 3306/tcp -> 0.0.0.0:49153 +2022-10-27T05:35:47.3115902Z 3306/tcp -> :::49153 +2022-10-27T05:35:47.3221941Z ##[endgroup] +2022-10-27T05:35:47.3222347Z ##[group]Waiting for all services to be ready +2022-10-27T05:35:47.3271402Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc +2022-10-27T05:35:47.3554944Z starting +2022-10-27T05:35:47.3594143Z mysql service is starting, waiting 2 seconds before checking again. +2022-10-27T05:35:49.3593961Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc +2022-10-27T05:35:49.3867220Z starting +2022-10-27T05:35:49.3886611Z mysql service is starting, waiting 4 seconds before checking again. +2022-10-27T05:35:53.5602510Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc +2022-10-27T05:35:53.5864042Z starting +2022-10-27T05:35:53.5910238Z mysql service is starting, waiting 7 seconds before checking again. +2022-10-27T05:36:01.0993571Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc +2022-10-27T05:36:01.1232744Z starting +2022-10-27T05:36:01.1235024Z mysql service is starting, waiting 14 seconds before checking again. +2022-10-27T05:36:15.3399109Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc +2022-10-27T05:36:15.3647356Z healthy +2022-10-27T05:36:15.3666176Z mysql service is healthy. +2022-10-27T05:36:15.3666682Z ##[endgroup] +2022-10-27T05:36:15.4114536Z ##[group]Run actions/checkout@v3 +2022-10-27T05:36:15.4114858Z with: +2022-10-27T05:36:15.4115122Z repository: tgstation/tgstation +2022-10-27T05:36:15.4115678Z token: *** +2022-10-27T05:36:15.4115920Z ssh-strict: true +2022-10-27T05:36:15.4116197Z persist-credentials: true +2022-10-27T05:36:15.4116449Z clean: true +2022-10-27T05:36:15.4116701Z fetch-depth: 1 +2022-10-27T05:36:15.4116934Z lfs: false +2022-10-27T05:36:15.4117152Z submodules: false +2022-10-27T05:36:15.4117416Z set-safe-directory: true +2022-10-27T05:36:15.4117683Z ##[endgroup] +2022-10-27T05:36:15.7895271Z Syncing repository: tgstation/tgstation +2022-10-27T05:36:15.7897134Z ##[group]Getting Git version info +2022-10-27T05:36:15.7897764Z Working directory is '/home/runner/work/tgstation/tgstation' +2022-10-27T05:36:15.7898346Z [command]/usr/bin/git version +2022-10-27T05:36:15.8070209Z git version 2.38.1 +2022-10-27T05:36:15.8107380Z ##[endgroup] +2022-10-27T05:36:15.8130065Z Temporarily overriding HOME='/home/runner/work/_temp/d9a17a0a-ad0c-43af-a749-41248c6e4a98' before making global git config changes +2022-10-27T05:36:15.8135001Z Adding repository directory to the temporary git global config as a safe directory +2022-10-27T05:36:15.8140556Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/tgstation/tgstation +2022-10-27T05:36:15.8198130Z Deleting the contents of '/home/runner/work/tgstation/tgstation' +2022-10-27T05:36:15.8204575Z ##[group]Initializing the repository +2022-10-27T05:36:15.8209016Z [command]/usr/bin/git init /home/runner/work/tgstation/tgstation +2022-10-27T05:36:15.8312384Z hint: Using 'master' as the name for the initial branch. This default branch name +2022-10-27T05:36:15.8313365Z hint: is subject to change. To configure the initial branch name to use in all +2022-10-27T05:36:15.8313842Z hint: of your new repositories, which will suppress this warning, call: +2022-10-27T05:36:15.8314167Z hint: +2022-10-27T05:36:15.8314756Z hint: git config --global init.defaultBranch +2022-10-27T05:36:15.8315053Z hint: +2022-10-27T05:36:15.8315481Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2022-10-27T05:36:15.8316041Z hint: 'development'. The just-created branch can be renamed via this command: +2022-10-27T05:36:15.8316354Z hint: +2022-10-27T05:36:15.8316650Z hint: git branch -m +2022-10-27T05:36:15.8337002Z Initialized empty Git repository in /home/runner/work/tgstation/tgstation/.git/ +2022-10-27T05:36:15.8348424Z [command]/usr/bin/git remote add origin https://github.com/tgstation/tgstation +2022-10-27T05:36:15.8408157Z ##[endgroup] +2022-10-27T05:36:15.8408999Z ##[group]Disabling automatic garbage collection +2022-10-27T05:36:15.8415169Z [command]/usr/bin/git config --local gc.auto 0 +2022-10-27T05:36:15.8455049Z ##[endgroup] +2022-10-27T05:36:15.8456729Z ##[group]Setting up auth +2022-10-27T05:36:15.8467019Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2022-10-27T05:36:15.8512305Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || : +2022-10-27T05:36:15.8992303Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2022-10-27T05:36:15.9034687Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || : +2022-10-27T05:36:15.9317710Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic *** +2022-10-27T05:36:15.9381545Z ##[endgroup] +2022-10-27T05:36:15.9383025Z ##[group]Fetching the repository +2022-10-27T05:36:15.9392584Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin +deb5c38b8299183d179ee993b8c40179d42cff9b:refs/remotes/pull/70831/merge +2022-10-27T05:36:16.3561666Z remote: Enumerating objects: 12549, done. +2022-10-27T05:36:16.3568675Z remote: Counting objects: 0% (1/12549) +2022-10-27T05:36:16.3571032Z remote: Counting objects: 1% (126/12549) +2022-10-27T05:36:16.3576947Z remote: Counting objects: 2% (251/12549) +2022-10-27T05:36:16.3590550Z remote: Counting objects: 3% (377/12549) +2022-10-27T05:36:16.3591870Z remote: Counting objects: 4% (502/12549) +2022-10-27T05:36:16.3629704Z remote: Counting objects: 5% (628/12549) +2022-10-27T05:36:16.3630882Z remote: Counting objects: 6% (753/12549) +2022-10-27T05:36:16.3633986Z remote: Counting objects: 7% (879/12549) +2022-10-27T05:36:16.3662523Z remote: Counting objects: 8% (1004/12549) +2022-10-27T05:36:16.3663123Z remote: Counting objects: 9% (1130/12549) +2022-10-27T05:36:16.3664088Z remote: Counting objects: 10% (1255/12549) +2022-10-27T05:36:16.3664584Z remote: Counting objects: 11% (1381/12549) +2022-10-27T05:36:16.3665108Z remote: Counting objects: 12% (1506/12549) +2022-10-27T05:36:16.3665639Z remote: Counting objects: 13% (1632/12549) +2022-10-27T05:36:16.3666161Z remote: Counting objects: 14% (1757/12549) +2022-10-27T05:36:16.3666781Z remote: Counting objects: 15% (1883/12549) +2022-10-27T05:36:16.3667203Z remote: Counting objects: 16% (2008/12549) +2022-10-27T05:36:16.3667759Z remote: Counting objects: 17% (2134/12549) +2022-10-27T05:36:16.3668424Z remote: Counting objects: 18% (2259/12549) +2022-10-27T05:36:16.3668772Z remote: Counting objects: 19% (2385/12549) +2022-10-27T05:36:16.3686549Z remote: Counting objects: 20% (2510/12549) +2022-10-27T05:36:16.3687142Z remote: Counting objects: 21% (2636/12549) +2022-10-27T05:36:16.3693091Z remote: Counting objects: 22% (2761/12549) +2022-10-27T05:36:16.3695805Z remote: Counting objects: 23% (2887/12549) +2022-10-27T05:36:16.3696270Z remote: Counting objects: 24% (3012/12549) +2022-10-27T05:36:16.3696611Z remote: Counting objects: 25% (3138/12549) +2022-10-27T05:36:16.3696933Z remote: Counting objects: 26% (3263/12549) +2022-10-27T05:36:16.3697238Z remote: Counting objects: 27% (3389/12549) +2022-10-27T05:36:16.3697557Z remote: Counting objects: 28% (3514/12549) +2022-10-27T05:36:16.3700568Z remote: Counting objects: 29% (3640/12549) +2022-10-27T05:36:16.3701206Z remote: Counting objects: 30% (3765/12549) +2022-10-27T05:36:16.3701530Z remote: Counting objects: 31% (3891/12549) +2022-10-27T05:36:16.3702027Z remote: Counting objects: 32% (4016/12549) +2022-10-27T05:36:16.3704376Z remote: Counting objects: 33% (4142/12549) +2022-10-27T05:36:16.3705536Z remote: Counting objects: 34% (4267/12549) +2022-10-27T05:36:16.3706001Z remote: Counting objects: 35% (4393/12549) +2022-10-27T05:36:16.3706528Z remote: Counting objects: 36% (4518/12549) +2022-10-27T05:36:16.3707049Z remote: Counting objects: 37% (4644/12549) +2022-10-27T05:36:16.3707535Z remote: Counting objects: 38% (4769/12549) +2022-10-27T05:36:16.3707879Z remote: Counting objects: 39% (4895/12549) +2022-10-27T05:36:16.3708856Z remote: Counting objects: 40% (5020/12549) +2022-10-27T05:36:16.3714163Z remote: Counting objects: 41% (5146/12549) +2022-10-27T05:36:16.3716186Z remote: Counting objects: 42% (5271/12549) +2022-10-27T05:36:16.3720394Z remote: Counting objects: 43% (5397/12549) +2022-10-27T05:36:16.3725239Z remote: Counting objects: 44% (5522/12549) +2022-10-27T05:36:16.3727509Z remote: Counting objects: 45% (5648/12549) +2022-10-27T05:36:16.3728407Z remote: Counting objects: 46% (5773/12549) +2022-10-27T05:36:16.3733411Z remote: Counting objects: 47% (5899/12549) +2022-10-27T05:36:16.3734826Z remote: Counting objects: 48% (6024/12549) +2022-10-27T05:36:16.3736029Z remote: Counting objects: 49% (6150/12549) +2022-10-27T05:36:16.3736752Z remote: Counting objects: 50% (6275/12549) +2022-10-27T05:36:16.3737119Z remote: Counting objects: 51% (6400/12549) +2022-10-27T05:36:16.3740552Z remote: Counting objects: 52% (6526/12549) +2022-10-27T05:36:16.3741109Z remote: Counting objects: 53% (6651/12549) +2022-10-27T05:36:16.3742348Z remote: Counting objects: 54% (6777/12549) +2022-10-27T05:36:16.3745824Z remote: Counting objects: 55% (6902/12549) +2022-10-27T05:36:16.3746239Z remote: Counting objects: 56% (7028/12549) +2022-10-27T05:36:16.3748976Z remote: Counting objects: 57% (7153/12549) +2022-10-27T05:36:16.3752389Z remote: Counting objects: 58% (7279/12549) +2022-10-27T05:36:16.3753090Z remote: Counting objects: 59% (7404/12549) +2022-10-27T05:36:16.3753587Z remote: Counting objects: 60% (7530/12549) +2022-10-27T05:36:16.3753969Z remote: Counting objects: 61% (7655/12549) +2022-10-27T05:36:16.3755897Z remote: Counting objects: 62% (7781/12549) +2022-10-27T05:36:16.3758566Z remote: Counting objects: 63% (7906/12549) +2022-10-27T05:36:16.3760370Z remote: Counting objects: 64% (8032/12549) +2022-10-27T05:36:16.3763888Z remote: Counting objects: 65% (8157/12549) +2022-10-27T05:36:16.3765292Z remote: Counting objects: 66% (8283/12549) +2022-10-27T05:36:16.3765656Z remote: Counting objects: 67% (8408/12549) +2022-10-27T05:36:16.3767729Z remote: Counting objects: 68% (8534/12549) +2022-10-27T05:36:16.3769245Z remote: Counting objects: 69% (8659/12549) +2022-10-27T05:36:16.3772503Z remote: Counting objects: 70% (8785/12549) +2022-10-27T05:36:16.3773802Z remote: Counting objects: 71% (8910/12549) +2022-10-27T05:36:16.3774655Z remote: Counting objects: 72% (9036/12549) +2022-10-27T05:36:16.3775188Z remote: Counting objects: 73% (9161/12549) +2022-10-27T05:36:16.3778186Z remote: Counting objects: 74% (9287/12549) +2022-10-27T05:36:16.3778933Z remote: Counting objects: 75% (9412/12549) +2022-10-27T05:36:16.3780943Z remote: Counting objects: 76% (9538/12549) +2022-10-27T05:36:16.3781397Z remote: Counting objects: 77% (9663/12549) +2022-10-27T05:36:16.3782023Z remote: Counting objects: 78% (9789/12549) +2022-10-27T05:36:16.3782511Z remote: Counting objects: 79% (9914/12549) +2022-10-27T05:36:16.3784693Z remote: Counting objects: 80% (10040/12549) +2022-10-27T05:36:16.3785644Z remote: Counting objects: 81% (10165/12549) +2022-10-27T05:36:16.3786373Z remote: Counting objects: 82% (10291/12549) +2022-10-27T05:36:16.3787171Z remote: Counting objects: 83% (10416/12549) +2022-10-27T05:36:16.3788291Z remote: Counting objects: 84% (10542/12549) +2022-10-27T05:36:16.3789701Z remote: Counting objects: 85% (10667/12549) +2022-10-27T05:36:16.3791529Z remote: Counting objects: 86% (10793/12549) +2022-10-27T05:36:16.3792061Z remote: Counting objects: 87% (10918/12549) +2022-10-27T05:36:16.3792440Z remote: Counting objects: 88% (11044/12549) +2022-10-27T05:36:16.3792863Z remote: Counting objects: 89% (11169/12549) +2022-10-27T05:36:16.3793298Z remote: Counting objects: 90% (11295/12549) +2022-10-27T05:36:16.3795291Z remote: Counting objects: 91% (11420/12549) +2022-10-27T05:36:16.3796533Z remote: Counting objects: 92% (11546/12549) +2022-10-27T05:36:16.3804544Z remote: Counting objects: 93% (11671/12549) +2022-10-27T05:36:16.3804980Z remote: Counting objects: 94% (11797/12549) +2022-10-27T05:36:16.3809019Z remote: Counting objects: 95% (11922/12549) +2022-10-27T05:36:16.3812297Z remote: Counting objects: 96% (12048/12549) +2022-10-27T05:36:16.3812832Z remote: Counting objects: 97% (12173/12549) +2022-10-27T05:36:16.3813378Z remote: Counting objects: 98% (12299/12549) +2022-10-27T05:36:16.3822622Z remote: Counting objects: 99% (12424/12549) +2022-10-27T05:36:16.3823331Z remote: Counting objects: 100% (12549/12549) +2022-10-27T05:36:16.3823824Z remote: Counting objects: 100% (12549/12549), done. +2022-10-27T05:36:16.4028339Z remote: Compressing objects: 0% (1/10965) +2022-10-27T05:36:16.4147149Z remote: Compressing objects: 1% (110/10965) +2022-10-27T05:36:16.4301715Z remote: Compressing objects: 2% (220/10965) +2022-10-27T05:36:16.4468059Z remote: Compressing objects: 3% (329/10965) +2022-10-27T05:36:16.4473482Z remote: Compressing objects: 4% (439/10965) +2022-10-27T05:36:16.4543661Z remote: Compressing objects: 5% (549/10965) +2022-10-27T05:36:16.4673953Z remote: Compressing objects: 6% (658/10965) +2022-10-27T05:36:16.4966036Z remote: Compressing objects: 7% (768/10965) +2022-10-27T05:36:16.5309645Z remote: Compressing objects: 8% (878/10965) +2022-10-27T05:36:16.5681068Z remote: Compressing objects: 9% (987/10965) +2022-10-27T05:36:16.6184895Z remote: Compressing objects: 10% (1097/10965) +2022-10-27T05:36:17.1107044Z remote: Compressing objects: 11% (1207/10965) +2022-10-27T05:36:17.2060689Z remote: Compressing objects: 12% (1316/10965) +2022-10-27T05:36:17.3922950Z remote: Compressing objects: 13% (1426/10965) +2022-10-27T05:36:17.3936933Z remote: Compressing objects: 13% (1501/10965) +2022-10-27T05:36:17.4040840Z remote: Compressing objects: 14% (1536/10965) +2022-10-27T05:36:17.4460571Z remote: Compressing objects: 15% (1645/10965) +2022-10-27T05:36:17.4619358Z remote: Compressing objects: 16% (1755/10965) +2022-10-27T05:36:17.4790041Z remote: Compressing objects: 17% (1865/10965) +2022-10-27T05:36:17.4934830Z remote: Compressing objects: 18% (1974/10965) +2022-10-27T05:36:17.5257200Z remote: Compressing objects: 19% (2084/10965) +2022-10-27T05:36:17.5516516Z remote: Compressing objects: 20% (2193/10965) +2022-10-27T05:36:17.5561317Z remote: Compressing objects: 21% (2303/10965) +2022-10-27T05:36:17.5795622Z remote: Compressing objects: 22% (2413/10965) +2022-10-27T05:36:17.6401406Z remote: Compressing objects: 23% (2522/10965) +2022-10-27T05:36:17.6654061Z remote: Compressing objects: 24% (2632/10965) +2022-10-27T05:36:17.6828486Z remote: Compressing objects: 25% (2742/10965) +2022-10-27T05:36:17.7044480Z remote: Compressing objects: 26% (2851/10965) +2022-10-27T05:36:17.7222440Z remote: Compressing objects: 27% (2961/10965) +2022-10-27T05:36:17.7713784Z remote: Compressing objects: 28% (3071/10965) +2022-10-27T05:36:17.7980639Z remote: Compressing objects: 29% (3180/10965) +2022-10-27T05:36:17.8260312Z remote: Compressing objects: 30% (3290/10965) +2022-10-27T05:36:17.8653550Z remote: Compressing objects: 31% (3400/10965) +2022-10-27T05:36:17.8786759Z remote: Compressing objects: 32% (3509/10965) +2022-10-27T05:36:17.9127781Z remote: Compressing objects: 33% (3619/10965) +2022-10-27T05:36:17.9521720Z remote: Compressing objects: 34% (3729/10965) +2022-10-27T05:36:17.9910080Z remote: Compressing objects: 35% (3838/10965) +2022-10-27T05:36:18.0204335Z remote: Compressing objects: 36% (3948/10965) +2022-10-27T05:36:18.0597196Z remote: Compressing objects: 37% (4058/10965) +2022-10-27T05:36:18.0964696Z remote: Compressing objects: 38% (4167/10965) +2022-10-27T05:36:18.1358555Z remote: Compressing objects: 39% (4277/10965) +2022-10-27T05:36:18.1549596Z remote: Compressing objects: 40% (4386/10965) +2022-10-27T05:36:18.1861724Z remote: Compressing objects: 41% (4496/10965) +2022-10-27T05:36:18.2100005Z remote: Compressing objects: 42% (4606/10965) +2022-10-27T05:36:18.2479949Z remote: Compressing objects: 43% (4715/10965) +2022-10-27T05:36:18.2787209Z remote: Compressing objects: 44% (4825/10965) +2022-10-27T05:36:18.3002217Z remote: Compressing objects: 45% (4935/10965) +2022-10-27T05:36:18.3304059Z remote: Compressing objects: 46% (5044/10965) +2022-10-27T05:36:18.3627827Z remote: Compressing objects: 47% (5154/10965) +2022-10-27T05:36:18.3769101Z remote: Compressing objects: 48% (5264/10965) +2022-10-27T05:36:18.3833369Z remote: Compressing objects: 49% (5373/10965) +2022-10-27T05:36:18.4021233Z remote: Compressing objects: 49% (5403/10965) +2022-10-27T05:36:18.4232973Z remote: Compressing objects: 50% (5483/10965) +2022-10-27T05:36:18.4496802Z remote: Compressing objects: 51% (5593/10965) +2022-10-27T05:36:18.4760000Z remote: Compressing objects: 52% (5702/10965) +2022-10-27T05:36:18.5061635Z remote: Compressing objects: 53% (5812/10965) +2022-10-27T05:36:18.5273446Z remote: Compressing objects: 54% (5922/10965) +2022-10-27T05:36:18.5546118Z remote: Compressing objects: 55% (6031/10965) +2022-10-27T05:36:18.5809381Z remote: Compressing objects: 56% (6141/10965) +2022-10-27T05:36:18.6147456Z remote: Compressing objects: 57% (6251/10965) +2022-10-27T05:36:18.6311320Z remote: Compressing objects: 58% (6360/10965) +2022-10-27T05:36:18.6614446Z remote: Compressing objects: 59% (6470/10965) +2022-10-27T05:36:18.6930160Z remote: Compressing objects: 60% (6579/10965) +2022-10-27T05:36:18.7250175Z remote: Compressing objects: 61% (6689/10965) +2022-10-27T05:36:18.7426580Z remote: Compressing objects: 62% (6799/10965) +2022-10-27T05:36:18.7654931Z remote: Compressing objects: 63% (6908/10965) +2022-10-27T05:36:18.8010761Z remote: Compressing objects: 64% (7018/10965) +2022-10-27T05:36:18.8152846Z remote: Compressing objects: 65% (7128/10965) +2022-10-27T05:36:18.8473982Z remote: Compressing objects: 66% (7237/10965) +2022-10-27T05:36:18.8539428Z remote: Compressing objects: 67% (7347/10965) +2022-10-27T05:36:18.8540163Z remote: Compressing objects: 68% (7457/10965) +2022-10-27T05:36:18.8621595Z remote: Compressing objects: 69% (7566/10965) +2022-10-27T05:36:18.8622122Z remote: Compressing objects: 70% (7676/10965) +2022-10-27T05:36:18.8625855Z remote: Compressing objects: 71% (7786/10965) +2022-10-27T05:36:18.8626847Z remote: Compressing objects: 72% (7895/10965) +2022-10-27T05:36:18.8627930Z remote: Compressing objects: 73% (8005/10965) +2022-10-27T05:36:18.8629224Z remote: Compressing objects: 74% (8115/10965) +2022-10-27T05:36:18.8630011Z remote: Compressing objects: 75% (8224/10965) +2022-10-27T05:36:18.8630611Z remote: Compressing objects: 76% (8334/10965) +2022-10-27T05:36:18.8658429Z remote: Compressing objects: 77% (8444/10965) +2022-10-27T05:36:18.8659128Z remote: Compressing objects: 78% (8553/10965) +2022-10-27T05:36:18.8659555Z remote: Compressing objects: 79% (8663/10965) +2022-10-27T05:36:18.8688825Z remote: Compressing objects: 80% (8772/10965) +2022-10-27T05:36:18.8779984Z remote: Compressing objects: 81% (8882/10965) +2022-10-27T05:36:18.8780591Z remote: Compressing objects: 82% (8992/10965) +2022-10-27T05:36:18.8839685Z remote: Compressing objects: 83% (9101/10965) +2022-10-27T05:36:18.8906377Z remote: Compressing objects: 84% (9211/10965) +2022-10-27T05:36:18.8909267Z remote: Compressing objects: 85% (9321/10965) +2022-10-27T05:36:18.8909956Z remote: Compressing objects: 86% (9430/10965) +2022-10-27T05:36:18.8910536Z remote: Compressing objects: 87% (9540/10965) +2022-10-27T05:36:18.8911145Z remote: Compressing objects: 88% (9650/10965) +2022-10-27T05:36:18.8911776Z remote: Compressing objects: 89% (9759/10965) +2022-10-27T05:36:18.8951128Z remote: Compressing objects: 90% (9869/10965) +2022-10-27T05:36:18.9127733Z remote: Compressing objects: 91% (9979/10965) +2022-10-27T05:36:18.9128171Z remote: Compressing objects: 92% (10088/10965) +2022-10-27T05:36:18.9128609Z remote: Compressing objects: 93% (10198/10965) +2022-10-27T05:36:18.9133927Z remote: Compressing objects: 94% (10308/10965) +2022-10-27T05:36:18.9152257Z remote: Compressing objects: 95% (10417/10965) +2022-10-27T05:36:18.9166692Z remote: Compressing objects: 96% (10527/10965) +2022-10-27T05:36:18.9178013Z remote: Compressing objects: 97% (10637/10965) +2022-10-27T05:36:18.9188202Z remote: Compressing objects: 98% (10746/10965) +2022-10-27T05:36:18.9202595Z remote: Compressing objects: 99% (10856/10965) +2022-10-27T05:36:18.9203422Z remote: Compressing objects: 100% (10965/10965) +2022-10-27T05:36:18.9204293Z remote: Compressing objects: 100% (10965/10965), done. +2022-10-27T05:36:18.9643118Z Receiving objects: 0% (1/12549) +2022-10-27T05:36:19.5343020Z Receiving objects: 1% (126/12549) +2022-10-27T05:36:19.5547619Z Receiving objects: 2% (251/12549), 1.75 MiB | 3.48 MiB/s +2022-10-27T05:36:19.6802499Z Receiving objects: 3% (377/12549), 1.75 MiB | 3.48 MiB/s +2022-10-27T05:36:19.6848774Z Receiving objects: 4% (502/12549), 1.75 MiB | 3.48 MiB/s +2022-10-27T05:36:19.6918314Z Receiving objects: 5% (628/12549), 1.75 MiB | 3.48 MiB/s +2022-10-27T05:36:19.7013063Z Receiving objects: 6% (753/12549), 1.75 MiB | 3.48 MiB/s +2022-10-27T05:36:19.7286047Z Receiving objects: 7% (879/12549), 1.75 MiB | 3.48 MiB/s +2022-10-27T05:36:19.7436763Z Receiving objects: 8% (1004/12549), 1.75 MiB | 3.48 MiB/s +2022-10-27T05:36:19.7550028Z Receiving objects: 9% (1130/12549), 1.75 MiB | 3.48 MiB/s +2022-10-27T05:36:19.7787460Z Receiving objects: 10% (1255/12549), 1.75 MiB | 3.48 MiB/s +2022-10-27T05:36:19.7893592Z Receiving objects: 11% (1381/12549), 1.75 MiB | 3.48 MiB/s +2022-10-27T05:36:19.7964417Z Receiving objects: 12% (1506/12549), 1.75 MiB | 3.48 MiB/s +2022-10-27T05:36:19.7972529Z Receiving objects: 13% (1632/12549), 1.75 MiB | 3.48 MiB/s +2022-10-27T05:36:19.8080879Z Receiving objects: 14% (1757/12549), 1.75 MiB | 3.48 MiB/s +2022-10-27T05:36:19.8345622Z Receiving objects: 15% (1883/12549), 1.75 MiB | 3.48 MiB/s +2022-10-27T05:36:19.8638441Z Receiving objects: 16% (2008/12549), 1.75 MiB | 3.48 MiB/s +2022-10-27T05:36:19.8936447Z Receiving objects: 17% (2134/12549), 1.75 MiB | 3.48 MiB/s +2022-10-27T05:36:19.9178154Z Receiving objects: 18% (2259/12549), 1.75 MiB | 3.48 MiB/s +2022-10-27T05:36:19.9260786Z Receiving objects: 19% (2385/12549), 1.75 MiB | 3.48 MiB/s +2022-10-27T05:36:19.9393291Z Receiving objects: 19% (2435/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:19.9632368Z Receiving objects: 20% (2510/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:19.9921544Z Receiving objects: 21% (2636/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:20.0107217Z Receiving objects: 22% (2761/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:20.0369762Z Receiving objects: 23% (2887/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:20.0569122Z Receiving objects: 24% (3012/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:20.0723597Z Receiving objects: 25% (3138/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:20.0869934Z Receiving objects: 26% (3263/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:20.1140123Z Receiving objects: 27% (3389/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:20.1316832Z Receiving objects: 28% (3514/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:20.1426255Z Receiving objects: 29% (3640/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:20.1574856Z Receiving objects: 30% (3765/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:20.1690424Z Receiving objects: 31% (3891/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:20.1856759Z Receiving objects: 32% (4016/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:20.2003719Z Receiving objects: 33% (4142/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:20.2128451Z Receiving objects: 34% (4267/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:20.2373132Z Receiving objects: 35% (4393/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:20.2632141Z Receiving objects: 36% (4518/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:20.2939431Z Receiving objects: 37% (4644/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:20.3274915Z Receiving objects: 38% (4769/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:20.3458463Z Receiving objects: 39% (4895/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:20.3681513Z Receiving objects: 40% (5020/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:20.3843488Z Receiving objects: 41% (5146/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:20.4250181Z Receiving objects: 42% (5271/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:20.4536213Z Receiving objects: 43% (5397/12549), 5.83 MiB | 5.83 MiB/s +2022-10-27T05:36:20.4617089Z Receiving objects: 44% (5522/12549), 10.95 MiB | 7.30 MiB/s +2022-10-27T05:36:20.4783619Z Receiving objects: 45% (5648/12549), 10.95 MiB | 7.30 MiB/s +2022-10-27T05:36:20.4859599Z Receiving objects: 46% (5773/12549), 10.95 MiB | 7.30 MiB/s +2022-10-27T05:36:20.4931650Z Receiving objects: 47% (5899/12549), 10.95 MiB | 7.30 MiB/s +2022-10-27T05:36:20.5106605Z Receiving objects: 48% (6024/12549), 10.95 MiB | 7.30 MiB/s +2022-10-27T05:36:20.5200970Z Receiving objects: 49% (6150/12549), 10.95 MiB | 7.30 MiB/s +2022-10-27T05:36:20.5422557Z Receiving objects: 50% (6275/12549), 10.95 MiB | 7.30 MiB/s +2022-10-27T05:36:20.6547058Z Receiving objects: 51% (6400/12549), 10.95 MiB | 7.30 MiB/s +2022-10-27T05:36:21.0443771Z Receiving objects: 52% (6526/12549), 10.95 MiB | 7.30 MiB/s +2022-10-27T05:36:21.1817778Z Receiving objects: 52% (6647/12549), 28.68 MiB | 13.54 MiB/s +2022-10-27T05:36:21.2302284Z Receiving objects: 53% (6651/12549), 28.68 MiB | 13.54 MiB/s +2022-10-27T05:36:21.2489598Z Receiving objects: 54% (6777/12549), 28.68 MiB | 13.54 MiB/s +2022-10-27T05:36:21.3284868Z Receiving objects: 55% (6902/12549), 28.68 MiB | 13.54 MiB/s +2022-10-27T05:36:21.3646886Z Receiving objects: 56% (7028/12549), 28.68 MiB | 13.54 MiB/s +2022-10-27T05:36:21.3983650Z Receiving objects: 57% (7153/12549), 28.68 MiB | 13.54 MiB/s +2022-10-27T05:36:21.4349926Z Receiving objects: 58% (7279/12549), 28.68 MiB | 13.54 MiB/s +2022-10-27T05:36:21.4697848Z Receiving objects: 59% (7404/12549), 28.68 MiB | 13.54 MiB/s +2022-10-27T05:36:21.4885011Z Receiving objects: 60% (7530/12549), 28.68 MiB | 13.54 MiB/s +2022-10-27T05:36:21.5194540Z Receiving objects: 61% (7655/12549), 28.68 MiB | 13.54 MiB/s +2022-10-27T05:36:21.9296042Z Receiving objects: 62% (7781/12549), 28.68 MiB | 13.54 MiB/s +2022-10-27T05:36:21.9417402Z Receiving objects: 62% (7892/12549), 52.44 MiB | 18.21 MiB/s +2022-10-27T05:36:22.2486679Z Receiving objects: 63% (7906/12549), 52.44 MiB | 18.21 MiB/s +2022-10-27T05:36:22.6090348Z Receiving objects: 64% (8032/12549), 52.44 MiB | 18.21 MiB/s +2022-10-27T05:36:22.6661080Z Receiving objects: 65% (8157/12549), 75.07 MiB | 22.21 MiB/s +2022-10-27T05:36:22.7208247Z Receiving objects: 66% (8283/12549), 75.07 MiB | 22.21 MiB/s +2022-10-27T05:36:22.7863776Z Receiving objects: 67% (8408/12549), 75.07 MiB | 22.21 MiB/s +2022-10-27T05:36:22.8373169Z Receiving objects: 68% (8534/12549), 75.07 MiB | 22.21 MiB/s +2022-10-27T05:36:22.8956416Z Receiving objects: 69% (8659/12549), 101.16 MiB | 26.07 MiB/s +2022-10-27T05:36:22.9260929Z Receiving objects: 70% (8785/12549), 101.16 MiB | 26.07 MiB/s +2022-10-27T05:36:22.9590581Z Receiving objects: 70% (8837/12549), 101.16 MiB | 26.07 MiB/s +2022-10-27T05:36:23.0657790Z Receiving objects: 71% (8910/12549), 101.16 MiB | 26.07 MiB/s +2022-10-27T05:36:23.0903691Z Receiving objects: 72% (9036/12549), 101.16 MiB | 26.07 MiB/s +2022-10-27T05:36:23.0992227Z Receiving objects: 73% (9161/12549), 101.16 MiB | 26.07 MiB/s +2022-10-27T05:36:23.1133106Z Receiving objects: 74% (9287/12549), 101.16 MiB | 26.07 MiB/s +2022-10-27T05:36:23.1304261Z Receiving objects: 75% (9412/12549), 101.16 MiB | 26.07 MiB/s +2022-10-27T05:36:23.1587550Z Receiving objects: 76% (9538/12549), 101.16 MiB | 26.07 MiB/s +2022-10-27T05:36:23.2736992Z Receiving objects: 77% (9663/12549), 101.16 MiB | 26.07 MiB/s +2022-10-27T05:36:23.2740076Z Receiving objects: 78% (9789/12549), 101.16 MiB | 26.07 MiB/s +2022-10-27T05:36:23.2994632Z Receiving objects: 79% (9914/12549), 101.16 MiB | 26.07 MiB/s +2022-10-27T05:36:23.3419146Z Receiving objects: 80% (10040/12549), 101.16 MiB | 26.07 MiB/s +2022-10-27T05:36:23.3507115Z Receiving objects: 81% (10165/12549), 126.98 MiB | 28.99 MiB/s +2022-10-27T05:36:23.3603382Z Receiving objects: 82% (10291/12549), 126.98 MiB | 28.99 MiB/s +2022-10-27T05:36:23.3686272Z Receiving objects: 83% (10416/12549), 126.98 MiB | 28.99 MiB/s +2022-10-27T05:36:23.3750488Z Receiving objects: 84% (10542/12549), 126.98 MiB | 28.99 MiB/s +2022-10-27T05:36:23.3820341Z Receiving objects: 85% (10667/12549), 126.98 MiB | 28.99 MiB/s +2022-10-27T05:36:23.3895988Z Receiving objects: 86% (10793/12549), 126.98 MiB | 28.99 MiB/s +2022-10-27T05:36:23.3970448Z Receiving objects: 87% (10918/12549), 126.98 MiB | 28.99 MiB/s +2022-10-27T05:36:23.4142134Z Receiving objects: 88% (11044/12549), 126.98 MiB | 28.99 MiB/s +2022-10-27T05:36:23.4796088Z Receiving objects: 89% (11169/12549), 126.98 MiB | 28.99 MiB/s +2022-10-27T05:36:23.5287511Z Receiving objects: 90% (11295/12549), 126.98 MiB | 28.99 MiB/s +2022-10-27T05:36:23.5336228Z Receiving objects: 91% (11420/12549), 126.98 MiB | 28.99 MiB/s +2022-10-27T05:36:23.5378046Z Receiving objects: 92% (11546/12549), 126.98 MiB | 28.99 MiB/s +2022-10-27T05:36:23.5440975Z Receiving objects: 93% (11671/12549), 126.98 MiB | 28.99 MiB/s +2022-10-27T05:36:23.5509602Z Receiving objects: 94% (11797/12549), 126.98 MiB | 28.99 MiB/s +2022-10-27T05:36:23.5572754Z Receiving objects: 95% (11922/12549), 126.98 MiB | 28.99 MiB/s +2022-10-27T05:36:23.5615446Z Receiving objects: 96% (12048/12549), 126.98 MiB | 28.99 MiB/s +2022-10-27T05:36:23.5654171Z Receiving objects: 97% (12173/12549), 126.98 MiB | 28.99 MiB/s +2022-10-27T05:36:23.5827062Z Receiving objects: 98% (12299/12549), 126.98 MiB | 28.99 MiB/s +2022-10-27T05:36:23.5872285Z Receiving objects: 99% (12424/12549), 126.98 MiB | 28.99 MiB/s +2022-10-27T05:36:23.5873322Z remote: Total 12549 (delta 1601), reused 7183 (delta 1450), pack-reused 0 +2022-10-27T05:36:23.5902379Z Receiving objects: 100% (12549/12549), 126.98 MiB | 28.99 MiB/s +2022-10-27T05:36:23.5903011Z Receiving objects: 100% (12549/12549), 139.13 MiB | 29.83 MiB/s, done. +2022-10-27T05:36:23.5950353Z Resolving deltas: 0% (0/1601) +2022-10-27T05:36:23.6009625Z Resolving deltas: 1% (17/1601) +2022-10-27T05:36:23.6040033Z Resolving deltas: 2% (33/1601) +2022-10-27T05:36:23.6057851Z Resolving deltas: 3% (49/1601) +2022-10-27T05:36:23.6072426Z Resolving deltas: 4% (65/1601) +2022-10-27T05:36:23.6083467Z Resolving deltas: 5% (81/1601) +2022-10-27T05:36:23.6093371Z Resolving deltas: 6% (97/1601) +2022-10-27T05:36:23.6106250Z Resolving deltas: 7% (113/1601) +2022-10-27T05:36:23.6119016Z Resolving deltas: 8% (129/1601) +2022-10-27T05:36:23.6129503Z Resolving deltas: 9% (145/1601) +2022-10-27T05:36:23.6155198Z Resolving deltas: 10% (161/1601) +2022-10-27T05:36:23.6353928Z Resolving deltas: 11% (177/1601) +2022-10-27T05:36:23.6373203Z Resolving deltas: 12% (193/1601) +2022-10-27T05:36:23.6378714Z Resolving deltas: 13% (209/1601) +2022-10-27T05:36:23.6386654Z Resolving deltas: 14% (225/1601) +2022-10-27T05:36:23.6389141Z Resolving deltas: 15% (241/1601) +2022-10-27T05:36:23.6389674Z Resolving deltas: 16% (257/1601) +2022-10-27T05:36:23.6392302Z Resolving deltas: 17% (273/1601) +2022-10-27T05:36:23.6392861Z Resolving deltas: 18% (289/1601) +2022-10-27T05:36:23.6394168Z Resolving deltas: 19% (305/1601) +2022-10-27T05:36:23.6394627Z Resolving deltas: 20% (321/1601) +2022-10-27T05:36:23.6395739Z Resolving deltas: 21% (337/1601) +2022-10-27T05:36:23.6397738Z Resolving deltas: 22% (353/1601) +2022-10-27T05:36:23.6418913Z Resolving deltas: 23% (369/1601) +2022-10-27T05:36:23.6431860Z Resolving deltas: 24% (385/1601) +2022-10-27T05:36:23.6445159Z Resolving deltas: 25% (401/1601) +2022-10-27T05:36:23.6470106Z Resolving deltas: 26% (417/1601) +2022-10-27T05:36:23.6478765Z Resolving deltas: 27% (433/1601) +2022-10-27T05:36:23.6488812Z Resolving deltas: 28% (449/1601) +2022-10-27T05:36:23.6536619Z Resolving deltas: 29% (465/1601) +2022-10-27T05:36:23.6642121Z Resolving deltas: 30% (481/1601) +2022-10-27T05:36:23.6649990Z Resolving deltas: 31% (497/1601) +2022-10-27T05:36:23.6667237Z Resolving deltas: 32% (513/1601) +2022-10-27T05:36:23.6686758Z Resolving deltas: 33% (529/1601) +2022-10-27T05:36:23.6707887Z Resolving deltas: 34% (545/1601) +2022-10-27T05:36:23.6725136Z Resolving deltas: 35% (561/1601) +2022-10-27T05:36:23.6748072Z Resolving deltas: 36% (577/1601) +2022-10-27T05:36:23.6779790Z Resolving deltas: 37% (593/1601) +2022-10-27T05:36:23.6799195Z Resolving deltas: 38% (609/1601) +2022-10-27T05:36:23.6806737Z Resolving deltas: 39% (625/1601) +2022-10-27T05:36:23.6807261Z Resolving deltas: 40% (641/1601) +2022-10-27T05:36:23.6808652Z Resolving deltas: 41% (657/1601) +2022-10-27T05:36:23.6809133Z Resolving deltas: 42% (673/1601) +2022-10-27T05:36:23.6810413Z Resolving deltas: 43% (689/1601) +2022-10-27T05:36:23.6810931Z Resolving deltas: 44% (705/1601) +2022-10-27T05:36:23.6813160Z Resolving deltas: 45% (721/1601) +2022-10-27T05:36:23.6813648Z Resolving deltas: 46% (737/1601) +2022-10-27T05:36:23.6815230Z Resolving deltas: 47% (753/1601) +2022-10-27T05:36:23.6815825Z Resolving deltas: 48% (769/1601) +2022-10-27T05:36:23.6816545Z Resolving deltas: 49% (785/1601) +2022-10-27T05:36:23.6816996Z Resolving deltas: 50% (801/1601) +2022-10-27T05:36:23.6820662Z Resolving deltas: 51% (817/1601) +2022-10-27T05:36:23.6826869Z Resolving deltas: 52% (833/1601) +2022-10-27T05:36:23.6834350Z Resolving deltas: 53% (849/1601) +2022-10-27T05:36:23.6838690Z Resolving deltas: 54% (865/1601) +2022-10-27T05:36:23.6901937Z Resolving deltas: 55% (881/1601) +2022-10-27T05:36:23.6910273Z Resolving deltas: 56% (897/1601) +2022-10-27T05:36:23.6914911Z Resolving deltas: 57% (913/1601) +2022-10-27T05:36:23.6919959Z Resolving deltas: 58% (929/1601) +2022-10-27T05:36:23.6925039Z Resolving deltas: 59% (945/1601) +2022-10-27T05:36:23.6930423Z Resolving deltas: 60% (961/1601) +2022-10-27T05:36:23.6936636Z Resolving deltas: 61% (977/1601) +2022-10-27T05:36:23.6940948Z Resolving deltas: 62% (993/1601) +2022-10-27T05:36:23.6945203Z Resolving deltas: 63% (1009/1601) +2022-10-27T05:36:23.6950455Z Resolving deltas: 64% (1025/1601) +2022-10-27T05:36:23.6955894Z Resolving deltas: 65% (1041/1601) +2022-10-27T05:36:23.6963475Z Resolving deltas: 66% (1057/1601) +2022-10-27T05:36:23.6971175Z Resolving deltas: 67% (1073/1601) +2022-10-27T05:36:23.6976635Z Resolving deltas: 68% (1089/1601) +2022-10-27T05:36:23.6981312Z Resolving deltas: 69% (1105/1601) +2022-10-27T05:36:23.6985904Z Resolving deltas: 70% (1121/1601) +2022-10-27T05:36:23.6992594Z Resolving deltas: 71% (1137/1601) +2022-10-27T05:36:23.6998192Z Resolving deltas: 72% (1153/1601) +2022-10-27T05:36:23.7007380Z Resolving deltas: 73% (1169/1601) +2022-10-27T05:36:23.7011828Z Resolving deltas: 74% (1185/1601) +2022-10-27T05:36:23.7017464Z Resolving deltas: 75% (1201/1601) +2022-10-27T05:36:23.7022072Z Resolving deltas: 76% (1217/1601) +2022-10-27T05:36:23.7028804Z Resolving deltas: 77% (1233/1601) +2022-10-27T05:36:23.7036183Z Resolving deltas: 78% (1249/1601) +2022-10-27T05:36:23.7045495Z Resolving deltas: 79% (1265/1601) +2022-10-27T05:36:23.7053133Z Resolving deltas: 80% (1281/1601) +2022-10-27T05:36:23.7060580Z Resolving deltas: 81% (1297/1601) +2022-10-27T05:36:23.7068147Z Resolving deltas: 82% (1313/1601) +2022-10-27T05:36:23.7076976Z Resolving deltas: 83% (1329/1601) +2022-10-27T05:36:23.7086492Z Resolving deltas: 84% (1345/1601) +2022-10-27T05:36:23.7095647Z Resolving deltas: 85% (1361/1601) +2022-10-27T05:36:23.7105602Z Resolving deltas: 86% (1377/1601) +2022-10-27T05:36:23.7115126Z Resolving deltas: 87% (1393/1601) +2022-10-27T05:36:23.7126091Z Resolving deltas: 88% (1409/1601) +2022-10-27T05:36:23.7140284Z Resolving deltas: 89% (1425/1601) +2022-10-27T05:36:23.7152944Z Resolving deltas: 90% (1441/1601) +2022-10-27T05:36:23.7166471Z Resolving deltas: 91% (1457/1601) +2022-10-27T05:36:23.7182235Z Resolving deltas: 92% (1473/1601) +2022-10-27T05:36:23.7193741Z Resolving deltas: 93% (1489/1601) +2022-10-27T05:36:23.7200908Z Resolving deltas: 94% (1505/1601) +2022-10-27T05:36:23.7206009Z Resolving deltas: 95% (1521/1601) +2022-10-27T05:36:23.7217441Z Resolving deltas: 96% (1537/1601) +2022-10-27T05:36:23.7227139Z Resolving deltas: 97% (1553/1601) +2022-10-27T05:36:23.7232360Z Resolving deltas: 98% (1569/1601) +2022-10-27T05:36:23.7237277Z Resolving deltas: 99% (1585/1601) +2022-10-27T05:36:23.7260045Z Resolving deltas: 100% (1601/1601) +2022-10-27T05:36:23.7260585Z Resolving deltas: 100% (1601/1601), done. +2022-10-27T05:36:24.1836658Z From https://github.com/tgstation/tgstation +2022-10-27T05:36:24.1841998Z * [new ref] deb5c38b8299183d179ee993b8c40179d42cff9b -> pull/70831/merge +2022-10-27T05:36:24.1863576Z ##[endgroup] +2022-10-27T05:36:24.1864401Z ##[group]Determining the checkout info +2022-10-27T05:36:24.1865502Z ##[endgroup] +2022-10-27T05:36:24.1866142Z ##[group]Checking out the ref +2022-10-27T05:36:24.1881799Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/70831/merge +2022-10-27T05:36:25.2712079Z Updating files: 63% (7341/11578) +2022-10-27T05:36:25.2955103Z Updating files: 64% (7410/11578) +2022-10-27T05:36:25.3182103Z Updating files: 65% (7526/11578) +2022-10-27T05:36:25.3457683Z Updating files: 66% (7642/11578) +2022-10-27T05:36:25.3634985Z Updating files: 67% (7758/11578) +2022-10-27T05:36:25.3911682Z Updating files: 68% (7874/11578) +2022-10-27T05:36:25.4140426Z Updating files: 69% (7989/11578) +2022-10-27T05:36:25.4605828Z Updating files: 70% (8105/11578) +2022-10-27T05:36:25.4694230Z Updating files: 71% (8221/11578) +2022-10-27T05:36:25.4797031Z Updating files: 72% (8337/11578) +2022-10-27T05:36:25.4884154Z Updating files: 73% (8452/11578) +2022-10-27T05:36:25.4964143Z Updating files: 74% (8568/11578) +2022-10-27T05:36:25.5012437Z Updating files: 75% (8684/11578) +2022-10-27T05:36:25.5524946Z Updating files: 76% (8800/11578) +2022-10-27T05:36:25.5631017Z Updating files: 77% (8916/11578) +2022-10-27T05:36:25.5661878Z Updating files: 78% (9031/11578) +2022-10-27T05:36:25.5900449Z Updating files: 79% (9147/11578) +2022-10-27T05:36:25.5995293Z Updating files: 80% (9263/11578) +2022-10-27T05:36:25.6065920Z Updating files: 81% (9379/11578) +2022-10-27T05:36:25.6129511Z Updating files: 82% (9494/11578) +2022-10-27T05:36:25.6183947Z Updating files: 83% (9610/11578) +2022-10-27T05:36:25.6242865Z Updating files: 84% (9726/11578) +2022-10-27T05:36:25.6304255Z Updating files: 85% (9842/11578) +2022-10-27T05:36:25.6362317Z Updating files: 86% (9958/11578) +2022-10-27T05:36:25.6419669Z Updating files: 87% (10073/11578) +2022-10-27T05:36:25.6513754Z Updating files: 88% (10189/11578) +2022-10-27T05:36:25.6719291Z Updating files: 89% (10305/11578) +2022-10-27T05:36:25.6854029Z Updating files: 90% (10421/11578) +2022-10-27T05:36:25.7114915Z Updating files: 91% (10536/11578) +2022-10-27T05:36:25.7172492Z Updating files: 92% (10652/11578) +2022-10-27T05:36:25.7239118Z Updating files: 93% (10768/11578) +2022-10-27T05:36:25.7311506Z Updating files: 94% (10884/11578) +2022-10-27T05:36:25.7377728Z Updating files: 95% (11000/11578) +2022-10-27T05:36:25.7429645Z Updating files: 96% (11115/11578) +2022-10-27T05:36:25.7489697Z Updating files: 97% (11231/11578) +2022-10-27T05:36:25.7601389Z Updating files: 98% (11347/11578) +2022-10-27T05:36:25.7673788Z Updating files: 99% (11463/11578) +2022-10-27T05:36:25.7674090Z Updating files: 100% (11578/11578) +2022-10-27T05:36:25.7675326Z Updating files: 100% (11578/11578), done. +2022-10-27T05:36:25.7839712Z Note: switching to 'refs/remotes/pull/70831/merge'. +2022-10-27T05:36:25.7840374Z +2022-10-27T05:36:25.7841364Z You are in 'detached HEAD' state. You can look around, make experimental +2022-10-27T05:36:25.7842184Z changes and commit them, and you can discard any commits you make in this +2022-10-27T05:36:25.7842925Z state without impacting any branches by switching back to a branch. +2022-10-27T05:36:25.7843345Z +2022-10-27T05:36:25.7843670Z If you want to create a new branch to retain commits you create, you may +2022-10-27T05:36:25.7844575Z do so (now or later) by using -c with the switch command. Example: +2022-10-27T05:36:25.7844969Z +2022-10-27T05:36:25.7845632Z git switch -c +2022-10-27T05:36:25.7845974Z +2022-10-27T05:36:25.7846184Z Or undo this operation with: +2022-10-27T05:36:25.7846473Z +2022-10-27T05:36:25.7846644Z git switch - +2022-10-27T05:36:25.7846900Z +2022-10-27T05:36:25.7847288Z Turn off this advice by setting config variable advice.detachedHead to false +2022-10-27T05:36:25.7847742Z +2022-10-27T05:36:25.7848217Z HEAD is now at deb5c38 Merge 9618404f9ee7f23400ea062d5dacb13fda53ca75 into 8bb8ca9d67375d0bd58ceacbc6346f9e92fef872 +2022-10-27T05:36:25.7902871Z ##[endgroup] +2022-10-27T05:36:25.7967741Z [command]/usr/bin/git log -1 --format='%H' +2022-10-27T05:36:25.8007456Z 'deb5c38b8299183d179ee993b8c40179d42cff9b' +2022-10-27T05:36:25.8392860Z ##[group]Run actions/cache@v3 +2022-10-27T05:36:25.8393138Z with: +2022-10-27T05:36:25.8393346Z path: ~/BYOND +2022-10-27T05:36:25.8393591Z key: Linux-byond- +2022-10-27T05:36:25.8393834Z ##[endgroup] +2022-10-27T05:36:26.3683068Z Received 4090426 of 4090426 (100.0%), 27.9 MBs/sec +2022-10-27T05:36:26.3684533Z Cache Size: ~4 MB (4090426 B) +2022-10-27T05:36:26.3746779Z [command]/usr/bin/tar --use-compress-program unzstd -xf /home/runner/work/_temp/937f79f1-ebfc-47b7-917c-b2d972625200/cache.tzst -P -C /home/runner/work/tgstation/tgstation +2022-10-27T05:36:26.4280190Z Cache restored successfully +2022-10-27T05:36:26.4546771Z Cache restored from key: Linux-byond- +2022-10-27T05:36:26.4726864Z ##[group]Run sudo systemctl start mysql +2022-10-27T05:36:26.4727297Z sudo systemctl start mysql +2022-10-27T05:36:26.4727646Z mysql -u root -proot -e 'CREATE DATABASE tg_ci;' +2022-10-27T05:36:26.4728040Z mysql -u root -proot tg_ci < SQL/tgstation_schema.sql +2022-10-27T05:36:26.4728458Z mysql -u root -proot -e 'CREATE DATABASE tg_ci_prefixed;' +2022-10-27T05:36:26.4728905Z mysql -u root -proot tg_ci_prefixed < SQL/tgstation_schema_prefixed.sql +2022-10-27T05:36:26.4792977Z shell: /usr/bin/bash -e {0} +2022-10-27T05:36:26.4793288Z ##[endgroup] +2022-10-27T05:36:27.7358559Z mysql: [Warning] Using a password on the command line interface can be insecure. +2022-10-27T05:36:27.7519454Z mysql: [Warning] Using a password on the command line interface can be insecure. +2022-10-27T05:36:28.2899746Z mysql: [Warning] Using a password on the command line interface can be insecure. +2022-10-27T05:36:28.2998385Z mysql: [Warning] Using a password on the command line interface can be insecure. +2022-10-27T05:36:28.8181912Z ##[group]Run sudo dpkg --add-architecture i386 +2022-10-27T05:36:28.8182331Z sudo dpkg --add-architecture i386 +2022-10-27T05:36:28.8182655Z sudo apt update || true +2022-10-27T05:36:28.8183020Z sudo apt install -o APT::Immediate-Configure=false libssl1.1:i386 +2022-10-27T05:36:28.8183412Z bash tools/ci/install_rust_g.sh +2022-10-27T05:36:28.8240260Z shell: /usr/bin/bash -e {0} +2022-10-27T05:36:28.8240552Z ##[endgroup] +2022-10-27T05:36:28.9970393Z +2022-10-27T05:36:28.9971552Z WARNING: apt does not have a stable CLI interface. Use with caution in scripts. +2022-10-27T05:36:28.9972082Z +2022-10-27T05:36:29.1160704Z Hit:1 http://azure.archive.ubuntu.com/ubuntu focal InRelease +2022-10-27T05:36:29.1162032Z Get:2 http://azure.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB] +2022-10-27T05:36:29.1173928Z Get:3 http://azure.archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB] +2022-10-27T05:36:29.1237735Z Get:4 http://azure.archive.ubuntu.com/ubuntu focal-security InRelease [114 kB] +2022-10-27T05:36:29.1254316Z Get:5 https://packages.microsoft.com/ubuntu/20.04/prod focal InRelease [10.5 kB] +2022-10-27T05:36:29.3429595Z Hit:6 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal InRelease +2022-10-27T05:36:29.3928104Z Get:7 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [2196 kB] +2022-10-27T05:36:29.4661370Z Get:8 http://azure.archive.ubuntu.com/ubuntu focal-updates/main i386 Packages [745 kB] +2022-10-27T05:36:29.4777864Z Get:9 http://azure.archive.ubuntu.com/ubuntu focal-updates/main Translation-en [385 kB] +2022-10-27T05:36:29.4885520Z Get:10 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 c-n-f Metadata [16.0 kB] +2022-10-27T05:36:29.4922985Z Get:11 http://azure.archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages [1381 kB] +2022-10-27T05:36:29.5179949Z Get:12 http://azure.archive.ubuntu.com/ubuntu focal-updates/restricted i386 Packages [26.6 kB] +2022-10-27T05:36:29.5181037Z Get:13 http://azure.archive.ubuntu.com/ubuntu focal-updates/restricted Translation-en [196 kB] +2022-10-27T05:36:29.5217775Z Get:14 http://azure.archive.ubuntu.com/ubuntu focal-updates/restricted amd64 c-n-f Metadata [600 B] +2022-10-27T05:36:29.5261778Z Get:15 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe i386 Packages [697 kB] +2022-10-27T05:36:29.5395090Z Get:16 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [972 kB] +2022-10-27T05:36:29.6000339Z Get:17 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe Translation-en [221 kB] +2022-10-27T05:36:29.6049853Z Get:18 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe amd64 c-n-f Metadata [21.8 kB] +2022-10-27T05:36:29.6070146Z Get:19 http://azure.archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 Packages [29.9 kB] +2022-10-27T05:36:29.6088570Z Get:20 http://azure.archive.ubuntu.com/ubuntu focal-updates/multiverse i386 Packages [9820 B] +2022-10-27T05:36:29.6106647Z Get:21 http://azure.archive.ubuntu.com/ubuntu focal-updates/multiverse Translation-en [7940 B] +2022-10-27T05:36:29.6123231Z Get:22 http://azure.archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 c-n-f Metadata [664 B] +2022-10-27T05:36:29.6149675Z Get:23 http://azure.archive.ubuntu.com/ubuntu focal-backports/main amd64 Packages [45.7 kB] +2022-10-27T05:36:29.6174434Z Get:24 http://azure.archive.ubuntu.com/ubuntu focal-backports/main i386 Packages [36.1 kB] +2022-10-27T05:36:29.6192255Z Get:25 http://azure.archive.ubuntu.com/ubuntu focal-backports/main amd64 c-n-f Metadata [1420 B] +2022-10-27T05:36:29.6212125Z Get:26 http://azure.archive.ubuntu.com/ubuntu focal-backports/universe i386 Packages [13.5 kB] +2022-10-27T05:36:29.6231501Z Get:27 http://azure.archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages [23.9 kB] +2022-10-27T05:36:29.6249547Z Get:28 http://azure.archive.ubuntu.com/ubuntu focal-backports/universe amd64 c-n-f Metadata [860 B] +2022-10-27T05:36:29.6279478Z Get:29 https://packages.microsoft.com/ubuntu/20.04/prod focal/main armhf Packages [28.4 kB] +2022-10-27T05:36:29.6299516Z Get:30 https://packages.microsoft.com/ubuntu/20.04/prod focal/main amd64 Packages [200 kB] +2022-10-27T05:36:29.6330517Z Get:31 https://packages.microsoft.com/ubuntu/20.04/prod focal/main arm64 Packages [40.0 kB] +2022-10-27T05:36:29.7542573Z Get:32 http://azure.archive.ubuntu.com/ubuntu focal-security/main amd64 Packages [1821 kB] +2022-10-27T05:36:29.7753589Z Get:33 http://azure.archive.ubuntu.com/ubuntu focal-security/main i386 Packages [514 kB] +2022-10-27T05:36:29.8302849Z Get:34 http://azure.archive.ubuntu.com/ubuntu focal-security/main Translation-en [301 kB] +2022-10-27T05:36:29.8323140Z Get:35 http://azure.archive.ubuntu.com/ubuntu focal-security/main amd64 c-n-f Metadata [11.2 kB] +2022-10-27T05:36:29.8354364Z Get:36 http://azure.archive.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [1289 kB] +2022-10-27T05:36:29.8541844Z Get:37 http://azure.archive.ubuntu.com/ubuntu focal-security/restricted Translation-en [183 kB] +2022-10-27T05:36:29.8606075Z Get:38 http://azure.archive.ubuntu.com/ubuntu focal-security/universe i386 Packages [566 kB] +2022-10-27T05:36:29.8700343Z Get:39 http://azure.archive.ubuntu.com/ubuntu focal-security/universe amd64 Packages [743 kB] +2022-10-27T05:36:29.8786533Z Get:40 http://azure.archive.ubuntu.com/ubuntu focal-security/universe Translation-en [137 kB] +2022-10-27T05:36:29.8822497Z Get:41 http://azure.archive.ubuntu.com/ubuntu focal-security/universe amd64 c-n-f Metadata [15.3 kB] +2022-10-27T05:36:30.0852283Z Get:42 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal/main i386 Packages [15.2 kB] +2022-10-27T05:36:40.2623192Z Fetched 13.2 MB in 3s (4825 kB/s) +2022-10-27T05:36:41.6081931Z Reading package lists... +2022-10-27T05:36:41.8619438Z Building dependency tree... +2022-10-27T05:36:41.8635085Z Reading state information... +2022-10-27T05:36:41.9709754Z 40 packages can be upgraded. Run 'apt list --upgradable' to see them. +2022-10-27T05:36:41.9833939Z +2022-10-27T05:36:41.9834743Z WARNING: apt does not have a stable CLI interface. Use with caution in scripts. +2022-10-27T05:36:41.9835161Z +2022-10-27T05:36:42.0520184Z Reading package lists... +2022-10-27T05:36:42.3196647Z Building dependency tree... +2022-10-27T05:36:42.3215128Z Reading state information... +2022-10-27T05:36:42.5269417Z The following additional packages will be installed: +2022-10-27T05:36:42.5270751Z gcc-11-base:i386 libc6:i386 libcrypt1:i386 libgcc-s1 libgcc-s1:i386 +2022-10-27T05:36:42.5273717Z libidn2-0:i386 libunistring2:i386 +2022-10-27T05:36:42.5281075Z Suggested packages: +2022-10-27T05:36:42.5281649Z glibc-doc:i386 locales:i386 +2022-10-27T05:36:42.6054870Z The following NEW packages will be installed: +2022-10-27T05:36:42.6060238Z gcc-11-base:i386 libc6:i386 libcrypt1:i386 libgcc-s1:i386 libidn2-0:i386 +2022-10-27T05:36:42.6065188Z libssl1.1:i386 libunistring2:i386 +2022-10-27T05:36:42.6071434Z The following packages will be upgraded: +2022-10-27T05:36:42.6077741Z libgcc-s1 +2022-10-27T05:36:42.6524605Z 1 upgraded, 7 newly installed, 0 to remove and 39 not upgraded. +2022-10-27T05:36:42.7316437Z Need to get 4528 kB of archives. +2022-10-27T05:36:42.7317772Z After this operation, 19.3 MB of additional disk space will be used. +2022-10-27T05:36:42.7318985Z Get:1 http://azure.archive.ubuntu.com/ubuntu focal/main i386 libcrypt1 i386 1:4.4.10-10ubuntu4 [90.9 kB] +2022-10-27T05:36:42.7516533Z Get:2 http://azure.archive.ubuntu.com/ubuntu focal-updates/main i386 libc6 i386 2.31-0ubuntu9.9 [2580 kB] +2022-10-27T05:36:42.8180039Z Get:3 http://azure.archive.ubuntu.com/ubuntu focal/main i386 libunistring2 i386 0.9.10-2 [377 kB] +2022-10-27T05:36:42.8382506Z Get:4 http://azure.archive.ubuntu.com/ubuntu focal/main i386 libidn2-0 i386 2.2.0-2 [51.4 kB] +2022-10-27T05:36:42.8544550Z Get:5 http://azure.archive.ubuntu.com/ubuntu focal-updates/main i386 libssl1.1 i386 1.1.1f-1ubuntu2.16 [1318 kB] +2022-10-27T05:36:42.8714868Z Get:6 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal/main i386 gcc-11-base i386 11.1.0-1ubuntu1~20.04 [19.0 kB] +2022-10-27T05:36:43.1118432Z Get:7 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal/main amd64 libgcc-s1 amd64 11.1.0-1ubuntu1~20.04 [42.1 kB] +2022-10-27T05:36:43.3528563Z Get:8 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal/main i386 libgcc-s1 i386 11.1.0-1ubuntu1~20.04 [50.0 kB] +2022-10-27T05:36:43.9483382Z Preconfiguring packages ... +2022-10-27T05:36:44.0566590Z Fetched 4528 kB in 1s (5511 kB/s) +2022-10-27T05:36:44.0950557Z Selecting previously unselected package gcc-11-base:i386. +2022-10-27T05:36:44.1257600Z (Reading database ... +2022-10-27T05:36:44.1257941Z (Reading database ... 5% +2022-10-27T05:36:44.1258207Z (Reading database ... 10% +2022-10-27T05:36:44.1258475Z (Reading database ... 15% +2022-10-27T05:36:44.1260572Z (Reading database ... 20% +2022-10-27T05:36:44.1261165Z (Reading database ... 25% +2022-10-27T05:36:44.1261680Z (Reading database ... 30% +2022-10-27T05:36:44.1261936Z (Reading database ... 35% +2022-10-27T05:36:44.1262196Z (Reading database ... 40% +2022-10-27T05:36:44.1262482Z (Reading database ... 45% +2022-10-27T05:36:44.1267425Z (Reading database ... 50% +2022-10-27T05:36:44.1661119Z (Reading database ... 55% +2022-10-27T05:36:44.2102408Z (Reading database ... 60% +2022-10-27T05:36:44.2442960Z (Reading database ... 65% +2022-10-27T05:36:44.3240866Z (Reading database ... 70% +2022-10-27T05:36:44.4296824Z (Reading database ... 75% +2022-10-27T05:36:44.5004841Z (Reading database ... 80% +2022-10-27T05:36:44.5658810Z (Reading database ... 85% +2022-10-27T05:36:44.6401590Z (Reading database ... 90% +2022-10-27T05:36:44.7577336Z (Reading database ... 95% +2022-10-27T05:36:44.7577685Z (Reading database ... 100% +2022-10-27T05:36:44.7578335Z (Reading database ... 242030 files and directories currently installed.) +2022-10-27T05:36:44.7691053Z Preparing to unpack .../0-gcc-11-base_11.1.0-1ubuntu1~20.04_i386.deb ... +2022-10-27T05:36:44.7764075Z Unpacking gcc-11-base:i386 (11.1.0-1ubuntu1~20.04) ... +2022-10-27T05:36:44.8625179Z Preparing to unpack .../1-libgcc-s1_11.1.0-1ubuntu1~20.04_amd64.deb ... +2022-10-27T05:36:44.8693479Z Unpacking libgcc-s1:amd64 (11.1.0-1ubuntu1~20.04) over (10.3.0-1ubuntu1~20.04) ... +2022-10-27T05:36:44.9142991Z Selecting previously unselected package libgcc-s1:i386. +2022-10-27T05:36:44.9390148Z Preparing to unpack .../2-libgcc-s1_11.1.0-1ubuntu1~20.04_i386.deb ... +2022-10-27T05:36:44.9401962Z Unpacking libgcc-s1:i386 (11.1.0-1ubuntu1~20.04) ... +2022-10-27T05:36:44.9820851Z Selecting previously unselected package libcrypt1:i386. +2022-10-27T05:36:45.0046331Z Preparing to unpack .../3-libcrypt1_1%3a4.4.10-10ubuntu4_i386.deb ... +2022-10-27T05:36:45.0084974Z Unpacking libcrypt1:i386 (1:4.4.10-10ubuntu4) ... +2022-10-27T05:36:45.0740528Z Selecting previously unselected package libc6:i386. +2022-10-27T05:36:45.1001786Z Preparing to unpack .../4-libc6_2.31-0ubuntu9.9_i386.deb ... +2022-10-27T05:36:45.2548577Z Unpacking libc6:i386 (2.31-0ubuntu9.9) ... +2022-10-27T05:36:45.5789406Z Replacing files in old package libc6-i386 (2.31-0ubuntu9.9) ... +2022-10-27T05:36:45.6171109Z Selecting previously unselected package libunistring2:i386. +2022-10-27T05:36:45.6439642Z Preparing to unpack .../5-libunistring2_0.9.10-2_i386.deb ... +2022-10-27T05:36:45.6457939Z Unpacking libunistring2:i386 (0.9.10-2) ... +2022-10-27T05:36:45.7367630Z Selecting previously unselected package libidn2-0:i386. +2022-10-27T05:36:45.7631354Z Preparing to unpack .../6-libidn2-0_2.2.0-2_i386.deb ... +2022-10-27T05:36:45.7646777Z Unpacking libidn2-0:i386 (2.2.0-2) ... +2022-10-27T05:36:45.8312915Z Selecting previously unselected package libssl1.1:i386. +2022-10-27T05:36:45.8579345Z Preparing to unpack .../7-libssl1.1_1.1.1f-1ubuntu2.16_i386.deb ... +2022-10-27T05:36:45.8593568Z Unpacking libssl1.1:i386 (1.1.1f-1ubuntu2.16) ... +2022-10-27T05:36:46.0508711Z Setting up gcc-11-base:i386 (11.1.0-1ubuntu1~20.04) ... +2022-10-27T05:36:46.0569280Z Setting up libgcc-s1:amd64 (11.1.0-1ubuntu1~20.04) ... +2022-10-27T05:36:46.0623686Z Setting up libgcc-s1:i386 (11.1.0-1ubuntu1~20.04) ... +2022-10-27T05:36:46.0684045Z Setting up libcrypt1:i386 (1:4.4.10-10ubuntu4) ... +2022-10-27T05:36:46.0722619Z Setting up libc6:i386 (2.31-0ubuntu9.9) ... +2022-10-27T05:36:46.3144297Z Setting up libssl1.1:i386 (1.1.1f-1ubuntu2.16) ... +2022-10-27T05:36:46.4510680Z Setting up libunistring2:i386 (0.9.10-2) ... +2022-10-27T05:36:46.4557850Z Setting up libidn2-0:i386 (2.2.0-2) ... +2022-10-27T05:36:46.4635629Z Processing triggers for libc-bin (2.31-0ubuntu9.9) ... +2022-10-27T05:36:49.2567467Z 2022-10-27 05:36:49 URL:https://objects.githubusercontent.com/github-production-release-asset-2e65be/127494547/e00cfb90-5ecf-4a55-a41c-c1e4899def3b?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20221027%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20221027T053639Z&X-Amz-Expires=300&X-Amz-Signature=ad13811b53df08aab94680ba4bde27d347cafd7f9230584b43dd2d8d4a61a8be&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=127494547&response-content-disposition=attachment%3B%20filename%3Dlibrust_g.so&response-content-type=application%2Foctet-stream [10822488/10822488] -> "/home/runner/.byond/bin/librust_g.so" [1] +2022-10-27T05:36:49.2675883Z linux-gate.so.1 (0xf7ef1000) +2022-10-27T05:36:49.2679615Z libssl.so.1.1 => /lib/i386-linux-gnu/libssl.so.1.1 (0xf7735000) +2022-10-27T05:36:49.2681965Z libcrypto.so.1.1 => /lib/i386-linux-gnu/libcrypto.so.1.1 (0xf747d000) +2022-10-27T05:36:49.2682327Z libz.so.1 => /lib32/libz.so.1 (0xf745f000) +2022-10-27T05:36:49.2682794Z libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7440000) +2022-10-27T05:36:49.2683314Z libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf741d000) +2022-10-27T05:36:49.2683950Z libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7318000) +2022-10-27T05:36:49.2684513Z libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7312000) +2022-10-27T05:36:49.2685065Z libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7123000) +2022-10-27T05:36:49.2685549Z /lib/ld-linux.so.2 (0xf7ef3000) +2022-10-27T05:36:49.2720426Z ##[group]Run bash tools/ci/install_auxlua.sh +2022-10-27T05:36:49.2720821Z bash tools/ci/install_auxlua.sh +2022-10-27T05:36:49.2778014Z shell: /usr/bin/bash -e {0} +2022-10-27T05:36:49.2778299Z ##[endgroup] +2022-10-27T05:36:49.3631078Z 2022-10-27 05:36:49 URL:https://objects.githubusercontent.com/github-production-release-asset-2e65be/473295481/bb55dc2f-8248-4032-ad66-b80cb61a84f3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20221027%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20221027T053639Z&X-Amz-Expires=300&X-Amz-Signature=04365004cef88fe3f1f8b45d89cffc1436482991f928c534963ff890dbc7d62d&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=473295481&response-content-disposition=attachment%3B%20filename%3Dlibauxlua.so&response-content-type=application%2Foctet-stream [5781068/5781068] -> "/home/runner/.byond/bin/libauxlua.so" [1] +2022-10-27T05:36:49.3764506Z linux-gate.so.1 (0xf7f4d000) +2022-10-27T05:36:49.3765376Z libstdc++.so.6 => /lib32/libstdc++.so.6 (0xf7b46000) +2022-10-27T05:36:49.3769032Z libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7b27000) +2022-10-27T05:36:49.3769816Z libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7b04000) +2022-10-27T05:36:49.3772336Z libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf79ff000) +2022-10-27T05:36:49.3773288Z libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf79f9000) +2022-10-27T05:36:49.3773950Z libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf780a000) +2022-10-27T05:36:49.3774971Z /lib/ld-linux.so.2 (0xf7f4f000) +2022-10-27T05:36:49.3802076Z ##[group]Run bash tools/ci/install_byond.sh +2022-10-27T05:36:49.3802456Z bash tools/ci/install_byond.sh +2022-10-27T05:36:49.3802798Z source $HOME/BYOND/byond/bin/byondsetup +2022-10-27T05:36:49.3803186Z tools/build/build --ci dm -DCIBUILDING -DANSICOLORS +2022-10-27T05:36:49.3873455Z shell: /usr/bin/bash -e {0} +2022-10-27T05:36:49.3873887Z ##[endgroup] +2022-10-27T05:36:49.4001691Z Setting up BYOND. +2022-10-27T05:36:49.4159362Z % Total % Received % Xferd Average Speed Time Time Time Current +2022-10-27T05:36:49.4160632Z Dload Upload Total Spent Left Speed +2022-10-27T05:36:49.4160890Z +2022-10-27T05:36:49.5018021Z 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 +2022-10-27T05:36:49.5019163Z 100 4021k 100 4021k 0 0 46.1M 0 --:--:-- --:--:-- --:--:-- 46.1M +2022-10-27T05:36:49.5066653Z Archive: byond.zip +2022-10-27T05:36:49.5067255Z creating: byond/ +2022-10-27T05:36:49.5068302Z creating: byond/key/ +2022-10-27T05:36:49.5068798Z creating: byond/web/ +2022-10-27T05:36:49.5070185Z inflating: byond/web/child.dms +2022-10-27T05:36:49.5071730Z inflating: byond/web/button.dms +2022-10-27T05:36:49.5073932Z inflating: byond/web/input.dms +2022-10-27T05:36:49.5074416Z inflating: byond/web/text.dms +2022-10-27T05:36:49.5198750Z inflating: byond/web/webclient.dart.js +2022-10-27T05:36:49.5199410Z inflating: byond/web/verbmenu.dms +2022-10-27T05:36:49.5200216Z inflating: byond/web/defaultSkin.dms +2022-10-27T05:36:49.5201953Z inflating: byond/web/hotbar.dms +2022-10-27T05:36:49.5203581Z inflating: byond/web/label.dms +2022-10-27T05:36:49.5204889Z inflating: byond/web/alert.dms +2022-10-27T05:36:49.5206329Z inflating: byond/web/message.dms +2022-10-27T05:36:49.5207259Z inflating: byond/web/drag.png +2022-10-27T05:36:49.5208742Z inflating: byond/web/map.dms +2022-10-27T05:36:49.5210398Z inflating: byond/web/splashlogo.png +2022-10-27T05:36:49.5210926Z inflating: byond/web/drop.png +2022-10-27T05:36:49.5332544Z inflating: byond/web/ext.js +2022-10-27T05:36:49.5333175Z inflating: byond/web/file.dms +2022-10-27T05:36:49.5334369Z inflating: byond/web/grid.dms +2022-10-27T05:36:49.5336323Z inflating: byond/web/bar.dms +2022-10-27T05:36:49.5339986Z inflating: byond/web/dpad.dms +2022-10-27T05:36:49.5341094Z inflating: byond/web/output.dms +2022-10-27T05:36:49.5343046Z inflating: byond/web/tab.dms +2022-10-27T05:36:49.5345100Z inflating: byond/web/info.dms +2022-10-27T05:36:49.5346744Z inflating: byond/web/color.dms +2022-10-27T05:36:49.5347953Z inflating: byond/web/gamepad.dms +2022-10-27T05:36:49.5349805Z inflating: byond/web/browser.dms +2022-10-27T05:36:49.5350264Z inflating: byond/web/status.dms +2022-10-27T05:36:49.5351241Z inflating: byond/web/any.dms +2022-10-27T05:36:49.5352302Z inflating: byond/web/pane.dms +2022-10-27T05:36:49.5354423Z inflating: byond/web/pop.dms +2022-10-27T05:36:49.5355613Z inflating: byond/license.txt +2022-10-27T05:36:49.5357084Z inflating: byond/legal.txt +2022-10-27T05:36:49.5358519Z inflating: byond/Makefile +2022-10-27T05:36:49.5358970Z creating: byond/man/ +2022-10-27T05:36:49.5359627Z creating: byond/man/man6/ +2022-10-27T05:36:49.5361148Z inflating: byond/man/man6/DreamDaemon.6 +2022-10-27T05:36:49.5361949Z inflating: byond/man/man6/DreamMaker.6 +2022-10-27T05:36:49.5362715Z creating: byond/lib/ +2022-10-27T05:36:49.5362992Z creating: byond/host/ +2022-10-27T05:36:49.5365318Z inflating: byond/host/readme.html +2022-10-27T05:36:49.5366506Z inflating: byond/host/readme-unix.txt +2022-10-27T05:36:49.5366902Z creating: byond/host/home/ +2022-10-27T05:36:49.5367533Z creating: byond/host/home/root/ +2022-10-27T05:36:49.5367822Z creating: byond/host/home/root/byond/ +2022-10-27T05:36:49.5368496Z creating: byond/host/home/root/byond/tools/ +2022-10-27T05:36:49.5369225Z creating: byond/host/home/root/byond/tools/root/ +2022-10-27T05:36:49.5374569Z inflating: byond/host/home/root/byond/tools/root/root.dmb +2022-10-27T05:36:49.5375251Z creating: byond/host/shared/ +2022-10-27T05:36:49.5375559Z creating: byond/host/shared/byond/ +2022-10-27T05:36:49.5376268Z creating: byond/host/shared/byond/tools/ +2022-10-27T05:36:49.5376595Z creating: byond/host/shared/byond/tools/ftp/ +2022-10-27T05:36:49.5379616Z inflating: byond/host/shared/byond/tools/ftp/ftp.dmb +2022-10-27T05:36:49.5380174Z creating: byond/host/shared/byond/tools/admin/ +2022-10-27T05:36:49.5386313Z inflating: byond/host/shared/byond/tools/admin/admin.dmb +2022-10-27T05:36:49.5386945Z creating: byond/host/shared-web/ +2022-10-27T05:36:49.5387681Z creating: byond/host/shared-web/web/ +2022-10-27T05:36:49.5388584Z creating: byond/host/shared-web/web/tools/ +2022-10-27T05:36:49.5389008Z creating: byond/host/shared-web/web/tools/admin/ +2022-10-27T05:36:49.5394728Z inflating: byond/host/shared-web/web/tools/admin/index.dmb +2022-10-27T05:36:49.5403477Z inflating: byond/host/host.dmb +2022-10-27T05:36:49.5403779Z inflating: byond/host/host.start +2022-10-27T05:36:49.5405103Z inflating: byond/host/hostconf.orig +2022-10-27T05:36:49.5406328Z inflating: byond/host/hostconf.txt +2022-10-27T05:36:49.5407507Z inflating: byond/readme.txt +2022-10-27T05:36:49.5407795Z creating: byond/bin/ +2022-10-27T05:36:49.5408558Z inflating: byond/bin/byondexec +2022-10-27T05:36:49.5411293Z inflating: byond/bin/DreamDownload +2022-10-27T05:36:49.6175092Z inflating: byond/bin/libbyond.so +2022-10-27T05:36:49.6348503Z inflating: byond/bin/libext.so +2022-10-27T05:36:49.6351968Z inflating: byond/bin/DreamDaemon +2022-10-27T05:36:49.6355363Z inflating: byond/bin/DreamMaker +2022-10-27T05:36:49.6355666Z creating: byond/cfg/ +2022-10-27T05:36:49.6356545Z inflating: byond/cfg/release.txt +2022-10-27T05:36:49.6621069Z *************************** +2022-10-27T05:36:49.6621919Z Now run the following command: +2022-10-27T05:36:49.6629708Z +2022-10-27T05:36:49.6640241Z source /home/runner/BYOND/byond/bin/byondsetup +2022-10-27T05:36:49.6652476Z +2022-10-27T05:36:49.6657262Z If it generates errors, your shell is not compatible with 'sh', so you will +2022-10-27T05:36:49.6663166Z have to edit byondsetup and make it work with your shell. If the script works, you should be able to run DreamDaemon. +2022-10-27T05:36:49.6673259Z +2022-10-27T05:36:49.6679431Z IMPORTANT: once you have the script working, you must add the above line +2022-10-27T05:36:49.6685348Z to your startup script. The name of your startup script depends on the +2022-10-27T05:36:49.6691552Z shell you use. Typical ones are .profile or .bash_profile. +2022-10-27T05:36:49.6701933Z +2022-10-27T05:36:49.6708492Z Once everything is working, you can find out more about the software +2022-10-27T05:36:49.6714992Z by doing 'man DreamDaemon'. A host server has also been included +2022-10-27T05:36:49.6720470Z so edit host/hostconf.txt and boot up your world server! +2022-10-27T05:36:49.6726217Z *************************** +2022-10-27T05:36:49.7622481Z Using system-wide Node v16.18.0 +2022-10-27T05:36:49.9527326Z :: Juke Build version 0.8.1 +2022-10-27T05:36:50.2530342Z => Starting 'dm' +2022-10-27T05:36:50.2555016Z :: Using defines: CBT, CIBUILDING, ANSICOLORS +2022-10-27T05:36:50.3319179Z DM compiler version 514.1588 +2022-10-27T05:36:50.3319810Z loading tgstation.m.dme +2022-10-27T05:36:59.9636752Z loading interface/skin.dmf +2022-10-27T05:37:57.7759644Z loading map_files/generic/CentCom.dmm +2022-10-27T05:37:58.7594328Z saving tgstation.m.dmb (DEBUG mode) +2022-10-27T05:37:59.9601921Z tgstation.m.dmb - 0 errors, 0 warnings (10/27/22 5:37 am) +2022-10-27T05:37:59.9602721Z Total time: 1:09 +2022-10-27T05:38:00.9791168Z => Finished 'dm' in 70.727s +2022-10-27T05:38:00.9795780Z => Done in 71.025s +2022-10-27T05:38:00.9907775Z ##[group]Run source $HOME/BYOND/byond/bin/byondsetup +2022-10-27T05:38:00.9908333Z source $HOME/BYOND/byond/bin/byondsetup +2022-10-27T05:38:00.9908714Z bash tools/ci/run_server.sh metastation +2022-10-27T05:38:00.9968243Z shell: /usr/bin/bash -e {0} +2022-10-27T05:38:00.9968682Z ##[endgroup] +2022-10-27T05:38:01.0105430Z Testing metastation +2022-10-27T05:38:01.2543112Z cp: cannot stat 'tgui/packages/tgfont/dist/*': No such file or directory +2022-10-27T05:38:01.2724951Z Thu Oct 27 05:38:01 2022 +2022-10-27T05:38:01.2725544Z World opened on network port 42427. +2022-10-27T05:38:01.2726492Z Welcome BYOND! (5.0 Public Version 514.1588) +2022-10-27T05:38:23.7107759Z 864 global variables +2022-10-27T05:38:24.4933392Z World loaded at 05:38:24! +2022-10-27T05:38:24.5429202Z Running /tg/ revision: +2022-10-27T05:38:24.5429682Z No commit information +2022-10-27T05:38:24.5512784Z Loading config file config.txt... +2022-10-27T05:38:24.5516700Z Loading config file maps.txt... +2022-10-27T05:38:24.5547604Z Unable to locate admins backup file. +2022-10-27T05:38:25.5745156Z Initialized Title Screen subsystem within 0.01 seconds! +2022-10-27T05:38:25.5745917Z Initialized Server Tasks subsystem within 0 seconds! +2022-10-27T05:38:25.5746607Z Initialized Input subsystem within 0 seconds! +2022-10-27T05:38:25.5814387Z Initialized Profiler subsystem within 0 seconds! +2022-10-27T05:38:25.5814809Z Initialized Database subsystem within 0 seconds! +2022-10-27T05:38:25.5816091Z Initialized Blackbox subsystem within 0 seconds! +2022-10-27T05:38:25.5819066Z Initialized Sounds subsystem within 0 seconds! +2022-10-27T05:38:25.6001394Z Initialized Instruments subsystem within 0.02 seconds! +2022-10-27T05:38:25.9816971Z Initialized Greyscale subsystem within 0.38 seconds! +2022-10-27T05:38:25.9817528Z Initialized Vis contents overlays subsystem within 0 seconds! +2022-10-27T05:38:25.9818032Z Initialized Security Level subsystem within 0 seconds! +2022-10-27T05:38:25.9848043Z Initialized Station subsystem within 0 seconds! +2022-10-27T05:38:25.9865647Z Initialized Quirks subsystem within 0 seconds! +2022-10-27T05:38:26.0034062Z Initialized Reagents subsystem within 0.02 seconds! +2022-10-27T05:38:26.0038506Z Initialized Events subsystem within 0 seconds! +2022-10-27T05:38:26.0098384Z Initialized IDs and Access subsystem within 0.01 seconds! +2022-10-27T05:38:26.0098867Z Initialized Jobs subsystem within 0 seconds! +2022-10-27T05:38:26.0099897Z Initialized AI movement subsystem within 0 seconds! +2022-10-27T05:38:26.0126533Z Initialized Ticker subsystem within 0 seconds! +2022-10-27T05:38:26.0128286Z Initialized AI Controller Ticker subsystem within 0 seconds! +2022-10-27T05:38:26.0134279Z Initialized AI Behavior Ticker subsystem within 0 seconds! +2022-10-27T05:38:26.0287435Z Initialized Trading Card Game subsystem within 0.02 seconds! +2022-10-27T05:38:26.0290443Z Loading MetaStation... +2022-10-27T05:38:27.6774174Z Loaded Station in 1.6s! +2022-10-27T05:38:28.4727719Z Loaded Lavaland in 0.7s! +2022-10-27T05:38:29.4722711Z Ruin loader finished with 0 left to spend. +2022-10-27T05:38:29.5285012Z Ruin loader finished with 0 left to spend. +2022-10-27T05:38:29.9352644Z Cave Generator finished in 0.4s! +2022-10-27T05:38:29.9775541Z Cave Generator finished in 0s! +2022-10-27T05:38:31.0315436Z Initialized Mapping subsystem within 5 seconds! +2022-10-27T05:38:55.0060672Z The BYOND hub reports that port 42427 is not reachable. +2022-10-27T05:38:57.9364779Z Initialized Early Assets subsystem within 26.9 seconds! +2022-10-27T05:38:57.9769589Z Initialized Research subsystem within 0.04 seconds! +2022-10-27T05:38:57.9771028Z Initialized Time Tracking subsystem within 0 seconds! +2022-10-27T05:38:58.0098137Z Initialized Networks subsystem within 0.03 seconds! +2022-10-27T05:38:58.0343859Z Initialized Spatial Grid subsystem within 0.02 seconds! +2022-10-27T05:38:58.0348414Z Initialized Economy subsystem within 0 seconds! +2022-10-27T05:38:58.0355826Z Initialized Restaurant subsystem within 0 seconds! +2022-10-27T05:39:34.2891379Z ## NOTICE: morgue_cadaver_disable_nonhumans. There are no valid roundstart nonhuman races enabled. Defaulting to humans only! +2022-10-27T05:39:36.5387306Z Initialized Atoms subsystem within 38.5 seconds! +2022-10-27T05:39:36.5532145Z Initialized Language subsystem within 0.01 seconds! +2022-10-27T05:39:36.6439410Z Initialized Machines subsystem within 0.09 seconds! +2022-10-27T05:39:36.6445388Z Initialized Skills subsystem within 0 seconds! +2022-10-27T05:39:36.6446275Z Initialized Addiction subsystem within 0 seconds! +2022-10-27T05:39:36.6458190Z Initialized Blackmarket subsystem within 0 seconds! +2022-10-27T05:39:36.6461637Z Initialized Disease subsystem within 0 seconds! +2022-10-27T05:39:36.6462460Z Initialized Fluid subsystem within 0 seconds! +2022-10-27T05:39:36.6463706Z Initialized Smoke subsystem within 0 seconds! +2022-10-27T05:39:36.6464484Z Initialized Foam subsystem within 0 seconds! +2022-10-27T05:39:36.6465284Z Initialized Lag Switch subsystem within 0 seconds! +2022-10-27T05:39:36.6685670Z Initialized Library Loading subsystem within 0.02 seconds! +2022-10-27T05:39:37.0988919Z Initialized Lua Scripting subsystem within 0.43 seconds! +2022-10-27T05:39:37.0994800Z Initialized Night Shift subsystem within 0 seconds! +2022-10-27T05:39:37.0996305Z Initialized Sun subsystem within 0 seconds! +2022-10-27T05:39:37.1013421Z Initialized Traitor subsystem within 0 seconds! +2022-10-27T05:39:37.1246657Z Initialized Wardrobe subsystem within 0.02 seconds! +2022-10-27T05:39:37.1247676Z Initialized Weather subsystem within 0 seconds! +2022-10-27T05:39:37.1248899Z Initialized Wiremod Composite Templates subsystem within 0 seconds! +2022-10-27T05:39:42.0567267Z Initialized Atmospherics subsystem within 4.93 seconds! +2022-10-27T05:39:42.0584101Z Initialized Persistence subsystem within 0 seconds! +2022-10-27T05:39:42.0589723Z Initialized Persistent Paintings subsystem within 0 seconds! +2022-10-27T05:39:42.0594808Z Initialized Vote subsystem within 0 seconds! +2022-10-27T05:39:47.1134557Z Initialized Assets subsystem within 5.05 seconds! +2022-10-27T05:39:49.3480025Z Initialized Icon Smoothing subsystem within 2.23 seconds! +2022-10-27T05:39:49.3521346Z Initialized XKeyScore subsystem within 0 seconds! +2022-10-27T05:39:49.3626428Z Initialized PRISM subsystem within 0.01 seconds! +2022-10-27T05:39:55.3669508Z Initialized Lighting subsystem within 6 seconds! +2022-10-27T05:39:58.4861231Z Initialized Shuttle subsystem within 3.12 seconds! +2022-10-27T05:39:58.4910808Z Initialized Pathfinder subsystem within 0 seconds! +2022-10-27T05:39:58.4911217Z Initialized Ban Cache subsystem within 0 seconds! +2022-10-27T05:39:58.4911595Z Initialized Init Profiler subsystem within 0 seconds! +2022-10-27T05:39:58.4911947Z Initialized Chat subsystem within 0 seconds! +2022-10-27T05:39:58.4912316Z Initializations complete within 92.9 seconds! +2022-10-27T05:39:58.4984843Z Game start took 0s +2022-10-27T05:40:09.8744558Z ##[group]/datum/unit_test/log_mapping +2022-10-27T05:40:09.8745146Z +2022-10-27T05:40:09.8836529Z PASS /datum/unit_test/log_mapping 0s +2022-10-27T05:40:09.8837396Z ##[endgroup] +2022-10-27T05:40:09.9419200Z ##[group]/datum/unit_test/ablative_hood_hud +2022-10-27T05:40:09.9756122Z +2022-10-27T05:40:09.9757240Z PASS /datum/unit_test/ablative_hood_hud 0s +2022-10-27T05:40:09.9767210Z ##[endgroup] +2022-10-27T05:40:09.9978386Z ##[group]/datum/unit_test/ablative_hood_hud_with_helmet +2022-10-27T05:40:10.0279756Z +2022-10-27T05:40:10.0281576Z PASS /datum/unit_test/ablative_hood_hud_with_helmet 0.1s +2022-10-27T05:40:10.0283498Z ##[endgroup] +2022-10-27T05:40:10.0512431Z ##[group]/datum/unit_test/achievements +2022-10-27T05:40:10.0640195Z +2022-10-27T05:40:10.0641287Z PASS /datum/unit_test/achievements 0s +2022-10-27T05:40:10.0642374Z ##[endgroup] +2022-10-27T05:40:10.1012868Z ##[group]/datum/unit_test/anchored_mobs +2022-10-27T05:40:10.1014527Z +2022-10-27T05:40:10.1015639Z PASS /datum/unit_test/anchored_mobs 0s +2022-10-27T05:40:10.1016975Z ##[endgroup] +2022-10-27T05:40:10.1197243Z ##[group]/datum/unit_test/anonymous_themes +2022-10-27T05:40:10.2699684Z +2022-10-27T05:40:10.2701913Z PASS /datum/unit_test/anonymous_themes 0.1s +2022-10-27T05:40:10.2703812Z ##[endgroup] +2022-10-27T05:40:10.5198272Z ##[group]/datum/unit_test/autowiki +2022-10-27T05:40:11.9708692Z +2022-10-27T05:40:11.9710297Z PASS /datum/unit_test/autowiki 1.4s +2022-10-27T05:40:11.9712149Z ##[endgroup] +2022-10-27T05:40:13.4185291Z ##[group]/datum/unit_test/autowiki_include_template +2022-10-27T05:40:13.4186047Z +2022-10-27T05:40:13.4187111Z PASS /datum/unit_test/autowiki_include_template 0s +2022-10-27T05:40:13.4188008Z ##[endgroup] +2022-10-27T05:40:13.4380400Z ##[group]/datum/unit_test/barsigns_icon +2022-10-27T05:40:13.4634689Z +2022-10-27T05:40:13.4639775Z PASS /datum/unit_test/barsigns_icon 0s +2022-10-27T05:40:13.4640487Z ##[endgroup] +2022-10-27T05:40:13.4808870Z ##[group]/datum/unit_test/barsigns_name +2022-10-27T05:40:13.4809440Z +2022-10-27T05:40:13.4810053Z PASS /datum/unit_test/barsigns_name 0s +2022-10-27T05:40:13.4814000Z ##[endgroup] +2022-10-27T05:40:13.4979736Z ##[group]/datum/unit_test/bespoke_id +2022-10-27T05:40:13.4980383Z +2022-10-27T05:40:13.4980997Z PASS /datum/unit_test/bespoke_id 0s +2022-10-27T05:40:13.5028459Z ##[endgroup] +2022-10-27T05:40:13.8488485Z ##[group]/datum/unit_test/binary_insert +2022-10-27T05:40:13.8488743Z +2022-10-27T05:40:13.8489222Z PASS /datum/unit_test/binary_insert 0s +2022-10-27T05:40:13.8489803Z ##[endgroup] +2022-10-27T05:40:13.8653347Z ##[group]/datum/unit_test/bloody_footprints +2022-10-27T05:40:13.9003909Z +2022-10-27T05:40:13.9004930Z PASS /datum/unit_test/bloody_footprints 0s +2022-10-27T05:40:13.9006088Z ##[endgroup] +2022-10-27T05:40:13.9232999Z ##[group]/datum/unit_test/breath_sanity +2022-10-27T05:40:13.9712567Z +2022-10-27T05:40:13.9713383Z PASS /datum/unit_test/breath_sanity 0s +2022-10-27T05:40:13.9714142Z ##[endgroup] +2022-10-27T05:40:14.2982711Z ##[group]/datum/unit_test/breath_sanity_plasmamen +2022-10-27T05:40:14.3520354Z +2022-10-27T05:40:14.3521354Z PASS /datum/unit_test/breath_sanity_plasmamen 0.1s +2022-10-27T05:40:14.3522294Z ##[endgroup] +2022-10-27T05:40:14.3742846Z ##[group]/datum/unit_test/breath_sanity_ashwalker +2022-10-27T05:40:14.4444122Z +2022-10-27T05:40:14.4444950Z PASS /datum/unit_test/breath_sanity_ashwalker 0.1s +2022-10-27T05:40:14.4445682Z ##[endgroup] +2022-10-27T05:40:14.7716503Z ##[group]/datum/unit_test/cable_powernets +2022-10-27T05:40:14.7716741Z +2022-10-27T05:40:14.7717211Z PASS /datum/unit_test/cable_powernets 0s +2022-10-27T05:40:14.7718214Z ##[endgroup] +2022-10-27T05:40:14.7883699Z ##[group]/datum/unit_test/card_mismatch +2022-10-27T05:40:14.7925710Z +2022-10-27T05:40:14.7926265Z PASS /datum/unit_test/card_mismatch 0s +2022-10-27T05:40:14.7926794Z ##[endgroup] +2022-10-27T05:40:14.8965612Z ##[group]/datum/unit_test/chain_pull_through_space +2022-10-27T05:40:14.8993553Z +2022-10-27T05:40:14.8994184Z PASS /datum/unit_test/chain_pull_through_space 0s +2022-10-27T05:40:14.8994797Z ##[endgroup] +2022-10-27T05:40:15.0324540Z ##[group]/datum/unit_test/chat_filter_sanity +2022-10-27T05:40:15.0326737Z +2022-10-27T05:40:15.0327622Z PASS /datum/unit_test/chat_filter_sanity 0s +2022-10-27T05:40:15.0328606Z ##[endgroup] +2022-10-27T05:40:15.0495255Z ##[group]/datum/unit_test/circuit_component_category +2022-10-27T05:40:15.0495800Z +2022-10-27T05:40:15.0496375Z PASS /datum/unit_test/circuit_component_category 0s +2022-10-27T05:40:15.0497189Z ##[endgroup] +2022-10-27T05:40:15.0662040Z ##[group]/datum/unit_test/closets +2022-10-27T05:40:16.7548466Z +2022-10-27T05:40:16.7550247Z PASS /datum/unit_test/closets 1.7s +2022-10-27T05:40:16.7551113Z ##[endgroup] +2022-10-27T05:40:19.6808172Z ##[group]/datum/unit_test/harm_punch +2022-10-27T05:40:19.7377314Z +2022-10-27T05:40:19.7378123Z PASS /datum/unit_test/harm_punch 0.1s +2022-10-27T05:40:19.7379056Z ##[endgroup] +2022-10-27T05:40:19.7662222Z ##[group]/datum/unit_test/harm_melee +2022-10-27T05:40:19.8341843Z +2022-10-27T05:40:19.8342972Z PASS /datum/unit_test/harm_melee 0.1s +2022-10-27T05:40:19.8343692Z ##[endgroup] +2022-10-27T05:40:19.9635264Z ##[group]/datum/unit_test/harm_different_damage +2022-10-27T05:40:20.0266779Z +2022-10-27T05:40:20.0267726Z PASS /datum/unit_test/harm_different_damage 0.1s +2022-10-27T05:40:20.0268642Z ##[endgroup] +2022-10-27T05:40:20.0557189Z ##[group]/datum/unit_test/attack_chain +2022-10-27T05:40:20.1137150Z +2022-10-27T05:40:20.1138187Z PASS /datum/unit_test/attack_chain 0.1s +2022-10-27T05:40:20.1139596Z ##[endgroup] +2022-10-27T05:40:20.5189211Z ##[group]/datum/unit_test/disarm +2022-10-27T05:40:20.5901636Z +2022-10-27T05:40:20.5902409Z PASS /datum/unit_test/disarm 0s +2022-10-27T05:40:20.5903484Z ##[endgroup] +2022-10-27T05:40:20.6186577Z ##[group]/datum/unit_test/component_duping +2022-10-27T05:40:20.6186976Z +2022-10-27T05:40:20.6187696Z PASS /datum/unit_test/component_duping 0s +2022-10-27T05:40:20.6188587Z ##[endgroup] +2022-10-27T05:40:20.6351095Z ##[group]/datum/unit_test/confusion_symptom +2022-10-27T05:40:20.6638729Z +2022-10-27T05:40:20.6639511Z PASS /datum/unit_test/confusion_symptom 0s +2022-10-27T05:40:20.6640205Z ##[endgroup] +2022-10-27T05:40:20.9863951Z ##[group]/datum/unit_test/connect_loc_basic +2022-10-27T05:40:20.9868536Z +2022-10-27T05:40:20.9869090Z PASS /datum/unit_test/connect_loc_basic 0s +2022-10-27T05:40:20.9869728Z ##[endgroup] +2022-10-27T05:40:21.0030927Z ##[group]/datum/unit_test/connect_loc_change_turf +2022-10-27T05:40:21.0038393Z +2022-10-27T05:40:21.0038866Z PASS /datum/unit_test/connect_loc_change_turf 0s +2022-10-27T05:40:21.0039436Z ##[endgroup] +2022-10-27T05:40:21.0207944Z ##[group]/datum/unit_test/connect_loc_multiple_on_turf +2022-10-27T05:40:21.0212290Z +2022-10-27T05:40:21.0212902Z PASS /datum/unit_test/connect_loc_multiple_on_turf 0s +2022-10-27T05:40:21.0213675Z ##[endgroup] +2022-10-27T05:40:21.0384862Z ##[group]/datum/unit_test/crayon_naming +2022-10-27T05:40:21.0442694Z +2022-10-27T05:40:21.0443459Z PASS /datum/unit_test/crayon_naming 0s +2022-10-27T05:40:21.0444098Z ##[endgroup] +2022-10-27T05:40:21.0612637Z ##[group]/datum/unit_test/dcs_get_id_from_arguments +2022-10-27T05:40:21.0613739Z +2022-10-27T05:40:21.0614288Z PASS /datum/unit_test/dcs_get_id_from_arguments 0s +2022-10-27T05:40:21.0615542Z ##[endgroup] +2022-10-27T05:40:21.3899788Z ##[group]/datum/unit_test/designs +2022-10-27T05:40:21.3953573Z +2022-10-27T05:40:21.3954536Z PASS /datum/unit_test/designs 0s +2022-10-27T05:40:21.3955578Z ##[endgroup] +2022-10-27T05:40:21.4124000Z ##[group]/datum/unit_test/dummy_spawn_species +2022-10-27T05:40:21.8463274Z +2022-10-27T05:40:21.8464399Z PASS /datum/unit_test/dummy_spawn_species 0.4s +2022-10-27T05:40:21.8465523Z ##[endgroup] +2022-10-27T05:40:22.2717242Z ##[group]/datum/unit_test/dummy_spawn_outfit +2022-10-27T05:40:22.2939848Z Job type /datum/job/ai could not be retrieved from SSjob +2022-10-27T05:40:22.6546726Z +2022-10-27T05:40:22.6548196Z PASS /datum/unit_test/dummy_spawn_outfit 0.4s +2022-10-27T05:40:22.6549521Z ##[endgroup] +2022-10-27T05:40:23.0435828Z ##[group]/datum/unit_test/dynamic_roundstart_ruleset_sanity +2022-10-27T05:40:23.0436113Z +2022-10-27T05:40:23.0436663Z PASS /datum/unit_test/dynamic_roundstart_ruleset_sanity 0s +2022-10-27T05:40:23.0437218Z ##[endgroup] +2022-10-27T05:40:23.0606191Z ##[group]/datum/unit_test/dynamic_unique_antag_flags +2022-10-27T05:40:23.0606463Z +2022-10-27T05:40:23.0606957Z PASS /datum/unit_test/dynamic_unique_antag_flags 0s +2022-10-27T05:40:23.0607492Z ##[endgroup] +2022-10-27T05:40:23.0772590Z ##[group]/datum/unit_test/egg_glands +2022-10-27T05:40:23.1272833Z +2022-10-27T05:40:23.1273679Z PASS /datum/unit_test/egg_glands 0.1s +2022-10-27T05:40:23.1274499Z ##[endgroup] +2022-10-27T05:40:23.1948246Z ##[group]/datum/unit_test/emoting +2022-10-27T05:40:23.2276434Z +2022-10-27T05:40:23.2277491Z PASS /datum/unit_test/emoting 0.1s +2022-10-27T05:40:23.2278590Z ##[endgroup] +2022-10-27T05:40:23.2495055Z ##[group]/datum/unit_test/food_edibility_check +2022-10-27T05:40:24.5133005Z +2022-10-27T05:40:24.5133747Z PASS /datum/unit_test/food_edibility_check 1.3s +2022-10-27T05:40:24.5134589Z ##[endgroup] +2022-10-27T05:40:25.7459424Z ##[group]/datum/unit_test/atmospheric_gas_transfer +2022-10-27T05:40:25.7464252Z +2022-10-27T05:40:25.7465453Z PASS /datum/unit_test/atmospheric_gas_transfer 0s +2022-10-27T05:40:25.7466947Z ##[endgroup] +2022-10-27T05:40:25.7637838Z ##[group]/datum/unit_test/get_turf_pixel +2022-10-27T05:40:25.7652899Z +2022-10-27T05:40:25.7653755Z PASS /datum/unit_test/get_turf_pixel 0s +2022-10-27T05:40:25.7654716Z ##[endgroup] +2022-10-27T05:40:25.7832528Z ##[group]/datum/unit_test/greyscale_item_icon_states +2022-10-27T05:40:25.7897718Z +2022-10-27T05:40:25.7898714Z PASS /datum/unit_test/greyscale_item_icon_states 0s +2022-10-27T05:40:25.7901777Z ##[endgroup] +2022-10-27T05:40:25.8065921Z ##[group]/datum/unit_test/greyscale_color_count +2022-10-27T05:40:25.8212040Z +2022-10-27T05:40:25.8213076Z PASS /datum/unit_test/greyscale_color_count 0s +2022-10-27T05:40:25.8213890Z ##[endgroup] +2022-10-27T05:40:25.9569835Z ##[group]/datum/unit_test/hallucination_icons +2022-10-27T05:40:26.2007450Z +2022-10-27T05:40:26.2008257Z PASS /datum/unit_test/hallucination_icons 0.3s +2022-10-27T05:40:26.2008960Z ##[endgroup] +2022-10-27T05:40:26.4177405Z ##[group]/datum/unit_test/heretic_knowledge +2022-10-27T05:40:26.4221118Z +2022-10-27T05:40:26.4222209Z PASS /datum/unit_test/heretic_knowledge 0s +2022-10-27T05:40:26.4225335Z ##[endgroup] +2022-10-27T05:40:26.4398954Z ##[group]/datum/unit_test/heretic_main_paths +2022-10-27T05:40:26.4399640Z +2022-10-27T05:40:26.4402394Z PASS /datum/unit_test/heretic_main_paths 0s +2022-10-27T05:40:26.4403358Z ##[endgroup] +2022-10-27T05:40:26.4569635Z ##[group]/datum/unit_test/heretic_rituals +2022-10-27T05:40:26.5341269Z +2022-10-27T05:40:26.5342957Z PASS /datum/unit_test/heretic_rituals 0.1s +2022-10-27T05:40:26.5344455Z ##[endgroup] +2022-10-27T05:40:26.6072760Z ##[group]/datum/unit_test/hanukkah_2123 +2022-10-27T05:40:26.6074182Z +2022-10-27T05:40:26.6075388Z PASS /datum/unit_test/hanukkah_2123 0s +2022-10-27T05:40:26.6076994Z ##[endgroup] +2022-10-27T05:40:26.6266212Z ##[group]/datum/unit_test/ramadan_2165 +2022-10-27T05:40:26.6266979Z +2022-10-27T05:40:26.6268854Z PASS /datum/unit_test/ramadan_2165 0s +2022-10-27T05:40:26.6275155Z ##[endgroup] +2022-10-27T05:40:26.6571207Z ##[group]/datum/unit_test/thanksgiving_2020 +2022-10-27T05:40:26.6572398Z +2022-10-27T05:40:26.6573397Z PASS /datum/unit_test/thanksgiving_2020 0s +2022-10-27T05:40:26.6574531Z ##[endgroup] +2022-10-27T05:40:26.6735186Z ##[group]/datum/unit_test/mother_3683 +2022-10-27T05:40:26.6735666Z +2022-10-27T05:40:26.6736248Z PASS /datum/unit_test/mother_3683 0s +2022-10-27T05:40:26.6739224Z ##[endgroup] +2022-10-27T05:40:26.8572827Z ##[group]/datum/unit_test/hello_2020 +2022-10-27T05:40:26.8573482Z +2022-10-27T05:40:26.8574272Z PASS /datum/unit_test/hello_2020 0s +2022-10-27T05:40:26.8577076Z ##[endgroup] +2022-10-27T05:40:26.8749478Z ##[group]/datum/unit_test/new_year_1983 +2022-10-27T05:40:26.8750152Z +2022-10-27T05:40:26.8750832Z PASS /datum/unit_test/new_year_1983 0s +2022-10-27T05:40:26.8751724Z ##[endgroup] +2022-10-27T05:40:26.8919557Z ##[group]/datum/unit_test/moth_week_2020 +2022-10-27T05:40:26.8951500Z +2022-10-27T05:40:26.8952208Z PASS /datum/unit_test/moth_week_2020 0s +2022-10-27T05:40:26.8952956Z ##[endgroup] +2022-10-27T05:40:27.3122958Z ##[group]/datum/unit_test/human_through_recycler +2022-10-27T05:40:27.3539454Z +2022-10-27T05:40:27.3544496Z PASS /datum/unit_test/human_through_recycler 0s +2022-10-27T05:40:27.3549227Z ##[endgroup] +2022-10-27T05:40:27.3779548Z ##[group]/datum/unit_test/hydroponics_extractor_storage +2022-10-27T05:40:27.4123276Z +2022-10-27T05:40:27.4124500Z PASS /datum/unit_test/hydroponics_extractor_storage 0.1s +2022-10-27T05:40:27.4125704Z ##[endgroup] +2022-10-27T05:40:27.4385047Z ##[group]/datum/unit_test/hydroponics_harvest +2022-10-27T05:40:27.5046209Z +2022-10-27T05:40:27.5047429Z PASS /datum/unit_test/hydroponics_harvest 0.1s +2022-10-27T05:40:27.5048344Z ##[endgroup] +2022-10-27T05:40:27.5784276Z ##[group]/datum/unit_test/hydroponics_self_mutation +2022-10-27T05:40:27.6261832Z +2022-10-27T05:40:27.6263089Z PASS /datum/unit_test/hydroponics_self_mutation 0.1s +2022-10-27T05:40:27.6264003Z ##[endgroup] +2022-10-27T05:40:27.9431720Z ##[group]/datum/unit_test/hydroponics_validate_genes +2022-10-27T05:40:27.9933945Z +2022-10-27T05:40:27.9935126Z PASS /datum/unit_test/hydroponics_validate_genes 0s +2022-10-27T05:40:27.9936883Z ##[endgroup] +2022-10-27T05:40:28.0105063Z ##[group]/datum/unit_test/defined_inhand_icon_states +2022-10-27T05:40:29.0888247Z Notice - Possible inhand icon matches found. It is best to be explicit with inhand sprite values. +2022-10-27T05:40:29.0889307Z /obj/item/clothing/accessory/pride does not have an inhand_icon_state value - Possible matching sprites for "pride" found in: 'icons/mob/inhands/weapons/hammers_lefthand.dmi' & 'icons/mob/inhands/weapons/hammers_righthand.dmi' +2022-10-27T05:40:29.0890499Z /obj/item/clothing/suit/caution does not have an inhand_icon_state value - Possible matching sprites for "caution" found in: 'icons/mob/inhands/equipment/custodial_lefthand.dmi' & 'icons/mob/inhands/equipment/custodial_righthand.dmi' +2022-10-27T05:40:29.0891626Z /obj/item/clothing/under/suit/sl does not have an inhand_icon_state value - Possible matching sprites for "sl_suit" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi' +2022-10-27T05:40:29.0892733Z /obj/item/clothing/head/collectable/paper does not have an inhand_icon_state value - Possible matching sprites for "paper" found in: 'icons/mob/inhands/items_lefthand.dmi' & 'icons/mob/inhands/items_righthand.dmi' +2022-10-27T05:40:29.0893862Z /obj/item/clothing/head/mod does not have an inhand_icon_state value - Possible matching sprites for "helmet" found in: 'icons/mob/inhands/clothing/hats_lefthand.dmi' & 'icons/mob/inhands/clothing/hats_righthand.dmi' +2022-10-27T05:40:29.0894922Z /obj/item/clothing/mask/animal/small/fox does not have an inhand_icon_state value - Possible matching sprites for "fox" found in: 'icons/mob/inhands/pets_held_rh.dmi' & 'icons/mob/inhands/pets_held_lh.dmi' +2022-10-27T05:40:29.0895960Z /obj/item/clothing/mask/animal/small/fox/cursed does not have an inhand_icon_state value - Possible matching sprites for "fox" found in: 'icons/mob/inhands/pets_held_rh.dmi' & 'icons/mob/inhands/pets_held_lh.dmi' +2022-10-27T05:40:29.0897110Z /obj/item/clothing/glasses/hud/health/sunglasses does not have an inhand_icon_state value - Possible matching sprites for "sunhudmed" found in: 'icons/mob/inhands/clothing/glasses_righthand.dmi' & 'icons/mob/inhands/clothing/glasses_lefthand.dmi' +2022-10-27T05:40:29.0898326Z /obj/item/clothing/glasses/hud/security/sunglasses does not have an inhand_icon_state value - Possible matching sprites for "sunhudsec" found in: 'icons/mob/inhands/clothing/glasses_righthand.dmi' & 'icons/mob/inhands/clothing/glasses_lefthand.dmi' +2022-10-27T05:40:29.0899739Z /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun does not have an inhand_icon_state value - Possible matching sprites for "syringegun" found in: 'icons/mob/inhands/weapons/guns_righthand.dmi' & 'icons/mob/inhands/weapons/guns_lefthand.dmi' +2022-10-27T05:40:29.0900919Z /obj/item/mecha_parts/mecha_equipment/generator does not have an inhand_icon_state value - Possible matching sprites for "tesla" found in: 'icons/mob/inhands/weapons/guns_righthand.dmi' & 'icons/mob/inhands/weapons/guns_lefthand.dmi' +2022-10-27T05:40:29.0902057Z /obj/item/storage/bag/ore does not have an inhand_icon_state value - Possible matching sprites for "satchel" found in: 'icons/mob/inhands/equipment/backpack_lefthand.dmi' & 'icons/mob/inhands/equipment/backpack_righthand.dmi' +2022-10-27T05:40:29.0903498Z /obj/item/storage/bag/ore/cyborg does not have an inhand_icon_state value - Possible matching sprites for "satchel" found in: 'icons/mob/inhands/equipment/backpack_lefthand.dmi' & 'icons/mob/inhands/equipment/backpack_righthand.dmi' +2022-10-27T05:40:29.0904633Z /obj/item/implant/emp does not have an inhand_icon_state value - Possible matching sprites for "emp" found in: 'icons/mob/inhands/equipment/security_righthand.dmi' & 'icons/mob/inhands/equipment/security_lefthand.dmi' +2022-10-27T05:40:29.0906583Z /obj/item/implant/uplink does not have an inhand_icon_state value - Possible matching sprites for "radio" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-10-27T05:40:29.0927867Z /obj/item/implant/uplink/precharged does not have an inhand_icon_state value - Possible matching sprites for "radio" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-10-27T05:40:29.0929023Z /obj/item/implant/uplink/starting does not have an inhand_icon_state value - Possible matching sprites for "radio" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-10-27T05:40:29.0930125Z /obj/item/melee/energy/blade does not have an inhand_icon_state value - Possible matching sprites for "blade" found in: 'icons/mob/inhands/weapons/swords_lefthand.dmi' & 'icons/mob/inhands/weapons/swords_righthand.dmi' +2022-10-27T05:40:29.0931206Z /obj/item/fireaxe does not have an inhand_icon_state value - Possible matching sprites for "fireaxe0" found in: 'icons/mob/inhands/weapons/axes_righthand.dmi' & 'icons/mob/inhands/weapons/axes_lefthand.dmi' +2022-10-27T05:40:29.0932453Z /obj/item/fireaxe/boneaxe does not have an inhand_icon_state value - Possible matching sprites for "bone_axe0" found in: 'icons/mob/inhands/weapons/axes_righthand.dmi' & 'icons/mob/inhands/weapons/axes_lefthand.dmi' +2022-10-27T05:40:29.0933868Z /obj/item/fireaxe/metal_h2_axe does not have an inhand_icon_state value - Possible matching sprites for "metalh2_axe0" found in: 'icons/mob/inhands/weapons/axes_righthand.dmi' & 'icons/mob/inhands/weapons/axes_lefthand.dmi' +2022-10-27T05:40:29.0934999Z /obj/item/reagent_containers/cup/soda_cans/cola does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-10-27T05:40:29.0936156Z /obj/item/reagent_containers/cup/soda_cans/tonic does not have an inhand_icon_state value - Possible matching sprites for "tonic" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-10-27T05:40:29.0937331Z /obj/item/reagent_containers/cup/soda_cans/sodawater does not have an inhand_icon_state value - Possible matching sprites for "sodawater" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-10-27T05:40:29.0938692Z /obj/item/reagent_containers/cup/soda_cans/lemon_lime does not have an inhand_icon_state value - Possible matching sprites for "lemon-lime" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-10-27T05:40:29.0939881Z /obj/item/reagent_containers/cup/soda_cans/space_up does not have an inhand_icon_state value - Possible matching sprites for "space-up" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-10-27T05:40:29.0941048Z /obj/item/reagent_containers/cup/soda_cans/starkist does not have an inhand_icon_state value - Possible matching sprites for "starkist" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-10-27T05:40:29.0942649Z /obj/item/reagent_containers/cup/soda_cans/space_mountain_wind does not have an inhand_icon_state value - Possible matching sprites for "space_mountain_wind" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-10-27T05:40:29.0943894Z /obj/item/reagent_containers/cup/soda_cans/thirteenloko does not have an inhand_icon_state value - Possible matching sprites for "thirteen_loko" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-10-27T05:40:29.0945078Z /obj/item/reagent_containers/cup/soda_cans/dr_gibb does not have an inhand_icon_state value - Possible matching sprites for "dr_gibb" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-10-27T05:40:29.0946292Z /obj/item/reagent_containers/cup/soda_cans/pwr_game does not have an inhand_icon_state value - Possible matching sprites for "purple_can" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-10-27T05:40:29.0947466Z /obj/item/reagent_containers/cup/glass/coffee does not have an inhand_icon_state value - Possible matching sprites for "coffee" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-10-27T05:40:29.0948548Z /obj/item/reagent_containers/chem_pack does not have an inhand_icon_state value - Possible matching sprites for "chempack" found in: 'icons/mob/inhands/equipment/backpack_lefthand.dmi' & 'icons/mob/inhands/equipment/backpack_righthand.dmi' +2022-10-27T05:40:29.0949572Z /obj/item/sbeacondrop does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-10-27T05:40:29.0950564Z /obj/item/sbeacondrop/bomb does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-10-27T05:40:29.0951871Z /obj/item/sbeacondrop/emp does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-10-27T05:40:29.0952969Z /obj/item/sbeacondrop/powersink does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-10-27T05:40:29.0954060Z /obj/item/sbeacondrop/clownbomb does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-10-27T05:40:29.0955292Z /obj/item/stack/medical/bruise_pack does not have an inhand_icon_state value - Possible matching sprites for "brutepack" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2022-10-27T05:40:29.0957053Z /obj/item/stack/medical/ointment does not have an inhand_icon_state value - Possible matching sprites for "ointment" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2022-10-27T05:40:29.0958265Z /obj/item/minespawner does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-10-27T05:40:29.0959349Z /obj/item/organ/internal/heart/gland/blood does not have an inhand_icon_state value - Possible matching sprites for "egg" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi' +2022-10-27T05:40:29.0960438Z /obj/item/organ/internal/heart/gland/egg does not have an inhand_icon_state value - Possible matching sprites for "egg" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi' +2022-10-27T05:40:29.0962120Z /obj/item/organ/internal/heart/gland/quantum does not have an inhand_icon_state value - Possible matching sprites for "emp" found in: 'icons/mob/inhands/equipment/security_righthand.dmi' & 'icons/mob/inhands/equipment/security_lefthand.dmi' +2022-10-27T05:40:29.0963372Z /obj/item/organ/internal/heart/gland/trauma does not have an inhand_icon_state value - Possible matching sprites for "emp" found in: 'icons/mob/inhands/equipment/security_righthand.dmi' & 'icons/mob/inhands/equipment/security_lefthand.dmi' +2022-10-27T05:40:29.0964517Z /obj/item/boxcutter does not have an inhand_icon_state value - Possible matching sprites for "boxcutter" found in: 'icons/mob/inhands/equipment/boxcutter_lefthand.dmi' & 'icons/mob/inhands/equipment/boxcutter_righthand.dmi' +2022-10-27T05:40:29.0965764Z /obj/item/pushbroom does not have an inhand_icon_state value - Possible matching sprites for "broom0" found in: 'icons/mob/inhands/equipment/custodial_lefthand.dmi' & 'icons/mob/inhands/equipment/custodial_righthand.dmi' +2022-10-27T05:40:29.0966976Z /obj/item/pushbroom/cyborg does not have an inhand_icon_state value - Possible matching sprites for "broom0" found in: 'icons/mob/inhands/equipment/custodial_lefthand.dmi' & 'icons/mob/inhands/equipment/custodial_righthand.dmi' +2022-10-27T05:40:29.0968278Z /obj/item/chainsaw does not have an inhand_icon_state value - Possible matching sprites for "chainsaw_off" found in: 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi' & 'icons/mob/inhands/weapons/chainsaw_righthand.dmi' +2022-10-27T05:40:29.0969434Z /obj/item/chainsaw/doomslayer does not have an inhand_icon_state value - Possible matching sprites for "chainsaw_off" found in: 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi' & 'icons/mob/inhands/weapons/chainsaw_righthand.dmi' +2022-10-27T05:40:29.0976727Z /obj/item/toy/talking/codex_gigas does not have an inhand_icon_state value - Possible matching sprites for "demonomicon" found in: 'icons/mob/inhands/items/books_righthand.dmi' & 'icons/mob/inhands/items/books_lefthand.dmi' +2022-10-27T05:40:29.0977819Z /obj/item/toy/figure/chef does not have an inhand_icon_state value - Possible matching sprites for "chef" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi' +2022-10-27T05:40:29.0979042Z /obj/item/toy/figure/clown does not have an inhand_icon_state value - Possible matching sprites for "clown" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi' +2022-10-27T05:40:29.0980133Z /obj/item/toy/figure/janitor does not have an inhand_icon_state value - Possible matching sprites for "janitor" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi' +2022-10-27T05:40:29.0981181Z /obj/item/food/candy does not have an inhand_icon_state value - Possible matching sprites for "candy" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi' +2022-10-27T05:40:29.0982369Z /obj/item/food/chips does not have an inhand_icon_state value - Possible matching sprites for "chips" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi' +2022-10-27T05:40:29.0983404Z /obj/item/kitchen/fork does not have an inhand_icon_state value - Possible matching sprites for "fork" found in: 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' & 'icons/mob/inhands/equipment/kitchen_righthand.dmi' +2022-10-27T05:40:29.0984486Z /obj/item/kitchen/spoon does not have an inhand_icon_state value - Possible matching sprites for "spoon" found in: 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' & 'icons/mob/inhands/equipment/kitchen_righthand.dmi' +2022-10-27T05:40:29.0985620Z /obj/item/kitchen/spoon/plastic does not have an inhand_icon_state value - Possible matching sprites for "plastic_spoon" found in: 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' & 'icons/mob/inhands/equipment/kitchen_righthand.dmi' +2022-10-27T05:40:29.0986842Z /obj/item/book/codex_gigas does not have an inhand_icon_state value - Possible matching sprites for "demonomicon" found in: 'icons/mob/inhands/items/books_righthand.dmi' & 'icons/mob/inhands/items/books_lefthand.dmi' +2022-10-27T05:40:29.0988013Z /obj/item/pitchfork does not have an inhand_icon_state value - Possible matching sprites for "pitchfork0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi' +2022-10-27T05:40:29.0989036Z /obj/item/construction/rcd does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-10-27T05:40:29.0990051Z /obj/item/construction/rcd/borg does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-10-27T05:40:29.0991149Z /obj/item/construction/rcd/loaded does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-10-27T05:40:29.0994310Z /obj/item/construction/rcd/loaded/upgraded does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-10-27T05:40:29.0995737Z /obj/item/construction/rcd/internal does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-10-27T05:40:29.0996853Z /obj/item/construction/rld does not have an inhand_icon_state value - Possible matching sprites for "rld-5" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-10-27T05:40:29.0997956Z /obj/item/construction/rld/mini does not have an inhand_icon_state value - Possible matching sprites for "rld-5" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-10-27T05:40:29.0999039Z /obj/item/rcd_ammo does not have an inhand_icon_state value - Possible matching sprites for "rcdammo" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-10-27T05:40:29.1000123Z /obj/item/rcd_ammo/large does not have an inhand_icon_state value - Possible matching sprites for "rcdammo" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-10-27T05:40:29.1001211Z /obj/item/godstaff does not have an inhand_icon_state value - Possible matching sprites for "godstaff-red" found in: 'icons/mob/inhands/weapons/staves_lefthand.dmi' & 'icons/mob/inhands/weapons/staves_righthand.dmi' +2022-10-27T05:40:29.1002492Z /obj/item/godstaff/red does not have an inhand_icon_state value - Possible matching sprites for "godstaff-red" found in: 'icons/mob/inhands/weapons/staves_lefthand.dmi' & 'icons/mob/inhands/weapons/staves_righthand.dmi' +2022-10-27T05:40:29.1003600Z /obj/item/godstaff/blue does not have an inhand_icon_state value - Possible matching sprites for "godstaff-blue" found in: 'icons/mob/inhands/weapons/staves_lefthand.dmi' & 'icons/mob/inhands/weapons/staves_righthand.dmi' +2022-10-27T05:40:29.1004679Z /obj/item/pipe_dispenser does not have an inhand_icon_state value - Possible matching sprites for "rpd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-10-27T05:40:29.1005898Z /obj/item/singularityhammer does not have an inhand_icon_state value - Possible matching sprites for "singularity_hammer0" found in: 'icons/mob/inhands/weapons/hammers_lefthand.dmi' & 'icons/mob/inhands/weapons/hammers_righthand.dmi' +2022-10-27T05:40:29.1006926Z /obj/item/mjollnir does not have an inhand_icon_state value - Possible matching sprites for "mjollnir0" found in: 'icons/mob/inhands/weapons/hammers_lefthand.dmi' & 'icons/mob/inhands/weapons/hammers_righthand.dmi' +2022-10-27T05:40:29.1008099Z /obj/item/spear does not have an inhand_icon_state value - Possible matching sprites for "spearglass0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi' +2022-10-27T05:40:29.1009143Z /obj/item/spear/explosive does not have an inhand_icon_state value - Possible matching sprites for "spearbomb0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi' +2022-10-27T05:40:29.1010190Z /obj/item/spear/grey_tide does not have an inhand_icon_state value - Possible matching sprites for "spearglass0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi' +2022-10-27T05:40:29.1011309Z /obj/item/spear/bonespear does not have an inhand_icon_state value - Possible matching sprites for "bone_spear0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi' +2022-10-27T05:40:29.1012517Z /obj/item/spear/bamboospear does not have an inhand_icon_state value - Possible matching sprites for "bamboo_spear0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi' +2022-10-27T05:40:29.1014120Z /obj/item/trash/candy does not have an inhand_icon_state value - Possible matching sprites for "candy" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi' +2022-10-27T05:40:29.1015524Z /obj/item/trash/chips does not have an inhand_icon_state value - Possible matching sprites for "chips" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi' +2022-10-27T05:40:29.1016580Z /obj/item/trash/can does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-10-27T05:40:29.1017625Z /obj/item/trash/can/food does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-10-27T05:40:29.1018877Z /obj/item/highfrequencyblade does not have an inhand_icon_state value - Possible matching sprites for "hfrequency0" found in: 'icons/mob/inhands/weapons/swords_lefthand.dmi' & 'icons/mob/inhands/weapons/swords_righthand.dmi' +2022-10-27T05:40:29.1020043Z /obj/item/highfrequencyblade/wizard does not have an inhand_icon_state value - Possible matching sprites for "hfrequency0" found in: 'icons/mob/inhands/weapons/swords_lefthand.dmi' & 'icons/mob/inhands/weapons/swords_righthand.dmi' +2022-10-27T05:40:29.1021168Z /obj/item/borg/sight/meson does not have an inhand_icon_state value - Possible matching sprites for "meson" found in: 'icons/mob/inhands/clothing/glasses_righthand.dmi' & 'icons/mob/inhands/clothing/glasses_lefthand.dmi' +2022-10-27T05:40:29.1022472Z /obj/item/ammo_casing/magic/hook does not have an inhand_icon_state value - Possible matching sprites for "hook" found in: 'icons/mob/inhands/weapons/melee_righthand.dmi' & 'icons/mob/inhands/weapons/melee_lefthand.dmi' +2022-10-27T05:40:29.1023582Z /obj/item/ammo_casing/magic/hook/bounty does not have an inhand_icon_state value - Possible matching sprites for "hook" found in: 'icons/mob/inhands/weapons/melee_righthand.dmi' & 'icons/mob/inhands/weapons/melee_lefthand.dmi' +2022-10-27T05:40:29.1024655Z /obj/item/harmalarm does not have an inhand_icon_state value - Possible matching sprites for "megaphone" found in: 'icons/mob/inhands/items/megaphone_lefthand.dmi' & 'icons/mob/inhands/items/megaphone_righthand.dmi' +2022-10-27T05:40:29.1025757Z /obj/item/abductor_machine_beacon does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-10-27T05:40:29.1027058Z /obj/item/abductor_machine_beacon/chem_dispenser does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-10-27T05:40:29.1028202Z /obj/item/grown/carbon_rose does not have an inhand_icon_state value - Possible matching sprites for "carbonrose" found in: 'icons/mob/inhands/weapons/plants_righthand.dmi' & 'icons/mob/inhands/weapons/plants_lefthand.dmi' +2022-10-27T05:40:29.1029346Z /obj/item/paint_palette does not have an inhand_icon_state value - Possible matching sprites for "palette" found in: 'icons/mob/inhands/equipment/palette_righthand.dmi' & 'icons/mob/inhands/equipment/palette_lefthand.dmi' +2022-10-27T05:40:29.1030413Z /obj/item/surprise_egg does not have an inhand_icon_state value - Possible matching sprites for "egg" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi' +2022-10-27T05:40:29.1031719Z /obj/item/experi_scanner does not have an inhand_icon_state value - Possible matching sprites for "experiscanner" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-10-27T05:40:29.1032793Z /obj/item/fishing_hook does not have an inhand_icon_state value - Possible matching sprites for "hook" found in: 'icons/mob/inhands/weapons/melee_righthand.dmi' & 'icons/mob/inhands/weapons/melee_lefthand.dmi' +2022-10-27T05:40:29.1033871Z /obj/item/cursed_katana does not have an inhand_icon_state value - Possible matching sprites for "cursed_katana" found in: 'icons/mob/inhands/weapons/swords_lefthand.dmi' & 'icons/mob/inhands/weapons/swords_righthand.dmi' +2022-10-27T05:40:29.1035004Z /obj/item/guardiancreator/tech does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2022-10-27T05:40:29.1036195Z /obj/item/guardiancreator/tech/choose does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2022-10-27T05:40:29.1037390Z /obj/item/guardiancreator/tech/choose/traitor does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2022-10-27T05:40:29.1038610Z /obj/item/guardiancreator/tech/choose/dextrous does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2022-10-27T05:40:29.1039744Z /obj/item/mod/module/welding does not have an inhand_icon_state value - Possible matching sprites for "welding" found in: 'icons/mob/inhands/clothing/masks_lefthand.dmi' & 'icons/mob/inhands/clothing/masks_righthand.dmi' +2022-10-27T05:40:29.1040839Z /obj/item/mod/module/mister does not have an inhand_icon_state value - Possible matching sprites for "mister" found in: 'icons/mob/inhands/equipment/mister_righthand.dmi' & 'icons/mob/inhands/equipment/mister_lefthand.dmi' +2022-10-27T05:40:29.1042176Z /obj/item/mod/module/mister/atmos does not have an inhand_icon_state value - Possible matching sprites for "mister" found in: 'icons/mob/inhands/equipment/mister_righthand.dmi' & 'icons/mob/inhands/equipment/mister_lefthand.dmi' +2022-10-27T05:40:29.1043317Z /obj/item/mod/module/jetpack does not have an inhand_icon_state value - Possible matching sprites for "jetpack" found in: 'icons/mob/inhands/equipment/jetpacks_lefthand.dmi' & 'icons/mob/inhands/equipment/jetpacks_righthand.dmi' +2022-10-27T05:40:29.1044435Z /obj/item/mod/module/flashlight does not have an inhand_icon_state value - Possible matching sprites for "flashlight" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-10-27T05:40:29.1045556Z /obj/item/mod/module/stamp does not have an inhand_icon_state value - Possible matching sprites for "stamp" found in: 'icons/mob/inhands/items_lefthand.dmi' & 'icons/mob/inhands/items_righthand.dmi' +2022-10-27T05:40:29.1046616Z /obj/item/mod/module/holster does not have an inhand_icon_state value - Possible matching sprites for "holster" found in: 'icons/mob/inhands/equipment/belt_lefthand.dmi' & 'icons/mob/inhands/equipment/belt_righthand.dmi' +2022-10-27T05:40:29.1047731Z /obj/item/mod/module/megaphone does not have an inhand_icon_state value - Possible matching sprites for "megaphone" found in: 'icons/mob/inhands/items/megaphone_lefthand.dmi' & 'icons/mob/inhands/items/megaphone_righthand.dmi' +2022-10-27T05:40:29.1049097Z /obj/item/mod/module/drill does not have an inhand_icon_state value - Possible matching sprites for "drill" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-10-27T05:40:29.1050391Z /obj/item/mod/module/tem does not have an inhand_icon_state value - Possible matching sprites for "chronogun" found in: 'icons/mob/inhands/weapons/guns_righthand.dmi' & 'icons/mob/inhands/weapons/guns_lefthand.dmi' +2022-10-27T05:40:29.1051631Z /obj/item/bonesetter does not have an inhand_icon_state value - Possible matching sprites for "bonesetter" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2022-10-27T05:40:29.1052751Z /obj/item/blood_filter does not have an inhand_icon_state value - Possible matching sprites for "bloodfilter" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2022-10-27T05:40:29.1055555Z /obj/item/mecha_ammo/flashbang does not have an inhand_icon_state value - Possible matching sprites for "flashbang" found in: 'icons/mob/inhands/equipment/security_righthand.dmi' & 'icons/mob/inhands/equipment/security_lefthand.dmi' +2022-10-27T05:40:29.1056050Z +2022-10-27T05:40:29.1056364Z PASS /datum/unit_test/defined_inhand_icon_states 1s +2022-10-27T05:40:29.1057048Z ##[endgroup] +2022-10-27T05:40:30.3200151Z ##[group]/datum/unit_test/keybinding_init +2022-10-27T05:40:30.3200418Z +2022-10-27T05:40:30.3201050Z PASS /datum/unit_test/keybinding_init 0s +2022-10-27T05:40:30.3201648Z ##[endgroup] +2022-10-27T05:40:30.3369516Z ##[group]/datum/unit_test/knockoff_component +2022-10-27T05:40:30.3974289Z +2022-10-27T05:40:30.3975134Z PASS /datum/unit_test/knockoff_component 0s +2022-10-27T05:40:30.3975848Z ##[endgroup] +2022-10-27T05:40:30.4758006Z ##[group]/datum/unit_test/limbsanity +2022-10-27T05:40:30.5511170Z +2022-10-27T05:40:30.5512056Z PASS /datum/unit_test/limbsanity 0.1s +2022-10-27T05:40:30.5513064Z ##[endgroup] +2022-10-27T05:40:30.5683011Z ##[group]/datum/unit_test/load_map_security +2022-10-27T05:40:30.5686279Z map directory not in whitelist: data/load_map_security_temp for map runtimestation +2022-10-27T05:40:30.5686559Z +2022-10-27T05:40:30.5687309Z PASS /datum/unit_test/load_map_security 0s +2022-10-27T05:40:30.5688206Z ##[endgroup] +2022-10-27T05:40:30.5865089Z ##[group]/datum/unit_test/machine_disassembly +2022-10-27T05:40:30.5895192Z +2022-10-27T05:40:30.5895755Z PASS /datum/unit_test/machine_disassembly 0s +2022-10-27T05:40:30.5896331Z ##[endgroup] +2022-10-27T05:40:30.6183397Z ##[group]/datum/unit_test/mecha_damage +2022-10-27T05:40:30.6691654Z +2022-10-27T05:40:30.6692724Z PASS /datum/unit_test/mecha_damage 0s +2022-10-27T05:40:30.6693811Z ##[endgroup] +2022-10-27T05:40:30.7005279Z ##[group]/datum/unit_test/test_human_base +2022-10-27T05:40:30.7905422Z +2022-10-27T05:40:30.7906225Z PASS /datum/unit_test/test_human_base 0s +2022-10-27T05:40:30.7906953Z ##[endgroup] +2022-10-27T05:40:30.8626902Z ##[group]/datum/unit_test/test_human_bone +2022-10-27T05:40:30.9519120Z +2022-10-27T05:40:30.9520211Z PASS /datum/unit_test/test_human_bone 0.1s +2022-10-27T05:40:30.9521496Z ##[endgroup] +2022-10-27T05:40:31.2736006Z ##[group]/datum/unit_test/merge_type +2022-10-27T05:40:31.2741500Z +2022-10-27T05:40:31.2744034Z PASS /datum/unit_test/merge_type 0s +2022-10-27T05:40:31.2745007Z ##[endgroup] +2022-10-27T05:40:31.2940088Z ##[group]/datum/unit_test/metabolization +2022-10-27T05:40:31.5116749Z +2022-10-27T05:40:31.5119088Z PASS /datum/unit_test/metabolization 0.3s +2022-10-27T05:40:31.5120552Z ##[endgroup] +2022-10-27T05:40:31.8707226Z ##[group]/datum/unit_test/on_mob_end_metabolize +2022-10-27T05:40:31.9025163Z +2022-10-27T05:40:31.9025867Z PASS /datum/unit_test/on_mob_end_metabolize 0.1s +2022-10-27T05:40:31.9026521Z ##[endgroup] +2022-10-27T05:40:32.5850525Z ##[group]/datum/unit_test/addictions +2022-10-27T05:40:32.6747518Z +2022-10-27T05:40:32.6749097Z PASS /datum/unit_test/addictions 0.1s +2022-10-27T05:40:32.6749790Z ##[endgroup] +2022-10-27T05:40:32.8122227Z ##[group]/datum/unit_test/actions_moved_on_mind_transfer +2022-10-27T05:40:32.8435426Z +2022-10-27T05:40:32.8437029Z PASS /datum/unit_test/actions_moved_on_mind_transfer 0s +2022-10-27T05:40:32.8438267Z ##[endgroup] +2022-10-27T05:40:32.8685143Z ##[group]/datum/unit_test/mob_faction +2022-10-27T05:40:37.0355455Z +2022-10-27T05:40:37.0357124Z PASS /datum/unit_test/mob_faction 4.2s +2022-10-27T05:40:37.0358437Z ##[endgroup] +2022-10-27T05:40:46.3276946Z ##[group]/datum/unit_test/mob_spawn +2022-10-27T05:40:46.3478047Z +2022-10-27T05:40:46.3479094Z PASS /datum/unit_test/mob_spawn 0s +2022-10-27T05:40:46.3480121Z ##[endgroup] +2022-10-27T05:40:46.5088900Z ##[group]/datum/unit_test/modsuit_checks +2022-10-27T05:40:46.7422166Z +2022-10-27T05:40:46.7424741Z PASS /datum/unit_test/modsuit_checks 0.2s +2022-10-27T05:40:46.7426303Z ##[endgroup] +2022-10-27T05:40:46.9639966Z ##[group]/datum/unit_test/modular_map_loader +2022-10-27T05:40:46.9645920Z +2022-10-27T05:40:46.9647042Z PASS /datum/unit_test/modular_map_loader 0s +2022-10-27T05:40:46.9648824Z ##[endgroup] +2022-10-27T05:40:46.9857078Z ##[group]/datum/unit_test/mouse_bite_cable +2022-10-27T05:40:46.9906436Z +2022-10-27T05:40:46.9907445Z PASS /datum/unit_test/mouse_bite_cable 0s +2022-10-27T05:40:46.9908580Z ##[endgroup] +2022-10-27T05:40:47.0104524Z ##[group]/datum/unit_test/novaflower_burn +2022-10-27T05:40:47.0691141Z +2022-10-27T05:40:47.0692760Z PASS /datum/unit_test/novaflower_burn 0s +2022-10-27T05:40:47.0694697Z ##[endgroup] +2022-10-27T05:40:47.4496213Z ##[group]/datum/unit_test/ntnetwork +2022-10-27T05:40:47.4517846Z +2022-10-27T05:40:47.4518703Z PASS /datum/unit_test/ntnetwork 0s +2022-10-27T05:40:47.4519832Z ##[endgroup] +2022-10-27T05:40:47.4710883Z ##[group]/datum/unit_test/nuke_cinematic +2022-10-27T05:40:51.6544361Z +2022-10-27T05:40:51.6546808Z PASS /datum/unit_test/nuke_cinematic 4.2s +2022-10-27T05:40:51.6548322Z ##[endgroup] +2022-10-27T05:40:51.9750957Z ##[group]/datum/unit_test/objectives_category +2022-10-27T05:40:51.9754837Z +2022-10-27T05:40:51.9758911Z PASS /datum/unit_test/objectives_category 0s +2022-10-27T05:40:51.9762185Z ##[endgroup] +2022-10-27T05:40:51.9966795Z ##[group]/datum/unit_test/operating_table +2022-10-27T05:40:52.0501605Z +2022-10-27T05:40:52.0502705Z PASS /datum/unit_test/operating_table 0.1s +2022-10-27T05:40:52.0503789Z ##[endgroup] +2022-10-27T05:40:52.1317881Z ##[group]/datum/unit_test/outfit_sanity +2022-10-27T05:41:01.7976872Z +2022-10-27T05:41:01.7979182Z PASS /datum/unit_test/outfit_sanity 9.6s +2022-10-27T05:41:01.7980122Z ##[endgroup] +2022-10-27T05:41:11.4243742Z ##[group]/datum/unit_test/paintings +2022-10-27T05:41:11.4598558Z +2022-10-27T05:41:11.4599629Z PASS /datum/unit_test/paintings 0s +2022-10-27T05:41:11.4600448Z ##[endgroup] +2022-10-27T05:41:11.4792755Z ##[group]/datum/unit_test/pills +2022-10-27T05:41:11.5083505Z +2022-10-27T05:41:11.5084511Z PASS /datum/unit_test/pills 0.1s +2022-10-27T05:41:11.5085321Z ##[endgroup] +2022-10-27T05:41:11.5601428Z ##[group]/datum/unit_test/plane_double_transform +2022-10-27T05:41:11.5919033Z +2022-10-27T05:41:11.5921018Z PASS /datum/unit_test/plane_double_transform 0s +2022-10-27T05:41:11.5922301Z ##[endgroup] +2022-10-27T05:41:11.6221465Z ##[group]/datum/unit_test/plane_dupe_detector +2022-10-27T05:41:11.6222004Z +2022-10-27T05:41:11.6222655Z PASS /datum/unit_test/plane_dupe_detector 0s +2022-10-27T05:41:11.6223293Z ##[endgroup] +2022-10-27T05:41:11.6426244Z ##[group]/datum/unit_test/plantgrowth +2022-10-27T05:41:11.6982938Z +2022-10-27T05:41:11.6984405Z PASS /datum/unit_test/plantgrowth 0s +2022-10-27T05:41:11.6985721Z ##[endgroup] +2022-10-27T05:41:11.7325573Z ##[group]/datum/unit_test/preference_species +2022-10-27T05:41:11.7325819Z +2022-10-27T05:41:11.7328286Z PASS /datum/unit_test/preference_species 0s +2022-10-27T05:41:11.7329335Z ##[endgroup] +2022-10-27T05:41:11.7520773Z ##[group]/datum/unit_test/preferences_implement_everything +2022-10-27T05:41:18.7582701Z +2022-10-27T05:41:18.7583967Z PASS /datum/unit_test/preferences_implement_everything 7s +2022-10-27T05:41:18.7674142Z ##[endgroup] +2022-10-27T05:41:25.7837961Z ##[group]/datum/unit_test/preferences_valid_savefile_key +2022-10-27T05:41:25.7840087Z +2022-10-27T05:41:25.7841504Z PASS /datum/unit_test/preferences_valid_savefile_key 0s +2022-10-27T05:41:25.7842504Z ##[endgroup] +2022-10-27T05:41:25.8045081Z ##[group]/datum/unit_test/preferences_valid_main_feature_name +2022-10-27T05:41:25.8046166Z +2022-10-27T05:41:25.8047192Z PASS /datum/unit_test/preferences_valid_main_feature_name 0s +2022-10-27T05:41:25.8049437Z ##[endgroup] +2022-10-27T05:41:25.8233566Z ##[group]/datum/unit_test/projectile_movetypes +2022-10-27T05:41:25.8234187Z +2022-10-27T05:41:25.8235057Z PASS /datum/unit_test/projectile_movetypes 0s +2022-10-27T05:41:25.8238602Z ##[endgroup] +2022-10-27T05:41:25.8422043Z ##[group]/datum/unit_test/gun_go_bang +2022-10-27T05:41:25.9103045Z +2022-10-27T05:41:25.9104017Z PASS /datum/unit_test/gun_go_bang 0.1s +2022-10-27T05:41:25.9105102Z ##[endgroup] +2022-10-27T05:41:25.9957966Z ##[group]/datum/unit_test/quirk_icons +2022-10-27T05:41:25.9958970Z +2022-10-27T05:41:25.9960876Z PASS /datum/unit_test/quirk_icons 0s +2022-10-27T05:41:25.9961959Z ##[endgroup] +2022-10-27T05:41:26.0166772Z ##[group]/datum/unit_test/range_return +2022-10-27T05:41:26.0167357Z +2022-10-27T05:41:26.0167980Z PASS /datum/unit_test/range_return 0s +2022-10-27T05:41:26.0222740Z ##[endgroup] +2022-10-27T05:41:26.0353132Z ##[group]/datum/unit_test/frame_stacking +2022-10-27T05:41:26.0914496Z +2022-10-27T05:41:26.0915254Z PASS /datum/unit_test/frame_stacking 0s +2022-10-27T05:41:26.0916011Z ##[endgroup] +2022-10-27T05:41:26.1694918Z ##[group]/datum/unit_test/reagent_id_typos +2022-10-27T05:41:26.1727233Z +2022-10-27T05:41:26.1728009Z PASS /datum/unit_test/reagent_id_typos 0s +2022-10-27T05:41:26.1728685Z ##[endgroup] +2022-10-27T05:41:26.1920271Z ##[group]/datum/unit_test/reagent_mob_expose +2022-10-27T05:41:26.2268321Z +2022-10-27T05:41:26.2269120Z PASS /datum/unit_test/reagent_mob_expose 0.1s +2022-10-27T05:41:26.2269829Z ##[endgroup] +2022-10-27T05:41:26.2549234Z ##[group]/datum/unit_test/reagent_mob_procs +2022-10-27T05:41:26.2827770Z +2022-10-27T05:41:26.2828618Z PASS /datum/unit_test/reagent_mob_procs 0s +2022-10-27T05:41:26.2829318Z ##[endgroup] +2022-10-27T05:41:26.3078178Z ##[group]/datum/unit_test/reagent_names +2022-10-27T05:41:27.1646047Z +2022-10-27T05:41:27.1647510Z PASS /datum/unit_test/reagent_names 0.8s +2022-10-27T05:41:27.1649181Z ##[endgroup] +2022-10-27T05:41:27.9838180Z ##[group]/datum/unit_test/reagent_recipe_collisions +2022-10-27T05:41:28.4462173Z +2022-10-27T05:41:28.4463469Z PASS /datum/unit_test/reagent_recipe_collisions 0.5s +2022-10-27T05:41:28.4464601Z ##[endgroup] +2022-10-27T05:41:28.8661632Z ##[group]/datum/unit_test/reagent_transfer +2022-10-27T05:41:28.8670725Z +2022-10-27T05:41:28.8671943Z PASS /datum/unit_test/reagent_transfer 0s +2022-10-27T05:41:28.8673335Z ##[endgroup] +2022-10-27T05:41:28.8888500Z ##[group]/datum/unit_test/stop_drop_and_roll +2022-10-27T05:41:28.9156826Z +2022-10-27T05:41:28.9160888Z PASS /datum/unit_test/stop_drop_and_roll 0.1s +2022-10-27T05:41:28.9162086Z ##[endgroup] +2022-10-27T05:41:28.9403341Z ##[group]/datum/unit_test/container_resist +2022-10-27T05:41:28.9744033Z +2022-10-27T05:41:28.9746221Z PASS /datum/unit_test/container_resist 0s +2022-10-27T05:41:28.9748317Z ##[endgroup] +2022-10-27T05:41:29.0027065Z ##[group]/datum/unit_test/get_message_mods +2022-10-27T05:41:29.0268010Z +2022-10-27T05:41:29.0269082Z PASS /datum/unit_test/get_message_mods 0s +2022-10-27T05:41:29.0270222Z ##[endgroup] +2022-10-27T05:41:29.0513097Z ##[group]/datum/unit_test/say_signal +2022-10-27T05:41:29.0526010Z +2022-10-27T05:41:29.0526949Z PASS /datum/unit_test/say_signal 0s +2022-10-27T05:41:29.0528292Z ##[endgroup] +2022-10-27T05:41:29.0718244Z ##[group]/datum/unit_test/screenshot_antag_icons +2022-10-27T05:41:29.0735578Z screenshot_antag_icons_fugitive was put in data/screenshots_new +2022-10-27T05:41:29.0746540Z screenshot_antag_icons_loneoperative was put in data/screenshots_new +2022-10-27T05:41:29.1154449Z screenshot_antag_icons_sentiencepotionspawn was put in data/screenshots_new +2022-10-27T05:41:29.1168816Z screenshot_antag_icons_traitor was put in data/screenshots_new +2022-10-27T05:41:29.1651315Z screenshot_antag_icons_malfai was put in data/screenshots_new +2022-10-27T05:41:29.1695591Z screenshot_antag_icons_bloodbrother was put in data/screenshots_new +2022-10-27T05:41:29.1703594Z screenshot_antag_icons_changeling was put in data/screenshots_new +2022-10-27T05:41:29.1768645Z screenshot_antag_icons_heretic was put in data/screenshots_new +2022-10-27T05:41:29.1779481Z screenshot_antag_icons_wizard was put in data/screenshots_new +2022-10-27T05:41:29.1818096Z screenshot_antag_icons_cultist was put in data/screenshots_new +2022-10-27T05:41:29.1834393Z screenshot_antag_icons_operative was put in data/screenshots_new +2022-10-27T05:41:29.1849934Z screenshot_antag_icons_clownoperative was put in data/screenshots_new +2022-10-27T05:41:29.1867009Z screenshot_antag_icons_headrevolutionary was put in data/screenshots_new +2022-10-27T05:41:29.1869714Z screenshot_antag_icons_syndicateinfiltrator was put in data/screenshots_new +2022-10-27T05:41:29.1870566Z screenshot_antag_icons_provocateur was put in data/screenshots_new +2022-10-27T05:41:29.1871844Z screenshot_antag_icons_hereticsmuggler was put in data/screenshots_new +2022-10-27T05:41:29.1872299Z screenshot_antag_icons_wizardmidround was put in data/screenshots_new +2022-10-27T05:41:29.1874172Z screenshot_antag_icons_operativemidround was put in data/screenshots_new +2022-10-27T05:41:29.2627121Z screenshot_antag_icons_blob was put in data/screenshots_new +2022-10-27T05:41:29.2749190Z screenshot_antag_icons_xenomorph was put in data/screenshots_new +2022-10-27T05:41:29.2756569Z screenshot_antag_icons_nightmare was put in data/screenshots_new +2022-10-27T05:41:29.2840326Z screenshot_antag_icons_spacedragon was put in data/screenshots_new +2022-10-27T05:41:29.2847600Z screenshot_antag_icons_abductor was put in data/screenshots_new +2022-10-27T05:41:29.2854366Z screenshot_antag_icons_spaceninja was put in data/screenshots_new +2022-10-27T05:41:29.3137655Z screenshot_antag_icons_revenant was put in data/screenshots_new +2022-10-27T05:41:29.3161866Z screenshot_antag_icons_sentientdisease was put in data/screenshots_new +2022-10-27T05:41:29.3163321Z screenshot_antag_icons_syndicatesleeperagent was put in data/screenshots_new +2022-10-27T05:41:29.3355078Z screenshot_antag_icons_blobinfection was put in data/screenshots_new +2022-10-27T05:41:29.3368910Z screenshot_antag_icons_obsessed was put in data/screenshots_new +2022-10-27T05:41:29.3372287Z screenshot_antag_icons_malfaimidround was put in data/screenshots_new +2022-10-27T05:41:29.3372581Z +2022-10-27T05:41:29.3373097Z PASS /datum/unit_test/screenshot_antag_icons 0.3s +2022-10-27T05:41:29.3373772Z ##[endgroup] +2022-10-27T05:41:29.6066997Z ##[group]/datum/unit_test/screenshot_basic +2022-10-27T05:41:29.6075525Z screenshot_basic_red was put in data/screenshots_new +2022-10-27T05:41:29.6078638Z +2022-10-27T05:41:29.6082196Z PASS /datum/unit_test/screenshot_basic 0s +2022-10-27T05:41:29.6085438Z ##[endgroup] +2022-10-27T05:41:29.6308021Z ##[group]/datum/unit_test/screenshot_humanoids +2022-10-27T05:41:30.3591652Z screenshot_humanoids__datum_species_lizard was put in data/screenshots_new +2022-10-27T05:41:31.2589662Z screenshot_humanoids__datum_species_moth was put in data/screenshots_new +2022-10-27T05:41:31.9323705Z screenshot_humanoids__datum_species_shadow was put in data/screenshots_new +2022-10-27T05:41:32.1651600Z screenshot_humanoids__datum_species_shadow_nightmare was put in data/screenshots_new +2022-10-27T05:41:32.8142370Z screenshot_humanoids__datum_species_abductor was put in data/screenshots_new +2022-10-27T05:41:33.4104949Z screenshot_humanoids__datum_species_android was put in data/screenshots_new +2022-10-27T05:41:34.0306787Z screenshot_humanoids__datum_species_dullahan was put in data/screenshots_new +2022-10-27T05:41:34.6399759Z screenshot_humanoids__datum_species_ethereal was put in data/screenshots_new +2022-10-27T05:41:35.3333622Z screenshot_humanoids__datum_species_human was put in data/screenshots_new +2022-10-27T05:41:36.1586851Z screenshot_humanoids__datum_species_human_felinid was put in data/screenshots_new +2022-10-27T05:41:36.9430568Z screenshot_humanoids__datum_species_human_krokodil_addict was put in data/screenshots_new +2022-10-27T05:41:37.7067338Z screenshot_humanoids__datum_species_fly was put in data/screenshots_new +2022-10-27T05:41:38.3488088Z screenshot_humanoids__datum_species_golem was put in data/screenshots_new +2022-10-27T05:41:38.9816576Z screenshot_humanoids__datum_species_golem_adamantine was put in data/screenshots_new +2022-10-27T05:41:39.6179037Z screenshot_humanoids__datum_species_golem_plasma was put in data/screenshots_new +2022-10-27T05:41:40.2518127Z screenshot_humanoids__datum_species_golem_diamond was put in data/screenshots_new +2022-10-27T05:41:40.9179988Z screenshot_humanoids__datum_species_golem_gold was put in data/screenshots_new +2022-10-27T05:41:41.5666452Z screenshot_humanoids__datum_species_golem_silver was put in data/screenshots_new +2022-10-27T05:41:42.2085418Z screenshot_humanoids__datum_species_golem_plasteel was put in data/screenshots_new +2022-10-27T05:41:42.7916566Z screenshot_humanoids__datum_species_golem_titanium was put in data/screenshots_new +2022-10-27T05:41:43.4311508Z screenshot_humanoids__datum_species_golem_plastitanium was put in data/screenshots_new +2022-10-27T05:41:44.0632010Z screenshot_humanoids__datum_species_golem_alloy was put in data/screenshots_new +2022-10-27T05:41:44.7023401Z screenshot_humanoids__datum_species_golem_wood was put in data/screenshots_new +2022-10-27T05:41:45.3273391Z screenshot_humanoids__datum_species_golem_uranium was put in data/screenshots_new +2022-10-27T05:41:45.9609338Z screenshot_humanoids__datum_species_golem_sand was put in data/screenshots_new +2022-10-27T05:41:46.5998181Z screenshot_humanoids__datum_species_golem_glass was put in data/screenshots_new +2022-10-27T05:41:47.2316624Z screenshot_humanoids__datum_species_golem_bluespace was put in data/screenshots_new +2022-10-27T05:41:47.8414848Z screenshot_humanoids__datum_species_golem_bananium was put in data/screenshots_new +2022-10-27T05:41:48.3268058Z screenshot_humanoids__datum_species_golem_runic was put in data/screenshots_new +2022-10-27T05:41:49.0158232Z screenshot_humanoids__datum_species_golem_cloth was put in data/screenshots_new +2022-10-27T05:41:49.5977864Z screenshot_humanoids__datum_species_golem_plastic was put in data/screenshots_new +2022-10-27T05:41:50.2331785Z screenshot_humanoids__datum_species_golem_bronze was put in data/screenshots_new +2022-10-27T05:41:50.7727391Z screenshot_humanoids__datum_species_golem_cardboard was put in data/screenshots_new +2022-10-27T05:41:51.4241290Z screenshot_humanoids__datum_species_golem_leather was put in data/screenshots_new +2022-10-27T05:41:51.9263638Z screenshot_humanoids__datum_species_golem_durathread was put in data/screenshots_new +2022-10-27T05:41:52.4187080Z screenshot_humanoids__datum_species_golem_bone was put in data/screenshots_new +2022-10-27T05:41:52.9144290Z screenshot_humanoids__datum_species_golem_snow was put in data/screenshots_new +2022-10-27T05:41:53.5567094Z screenshot_humanoids__datum_species_golem_mhydrogen was put in data/screenshots_new +2022-10-27T05:41:54.2523403Z screenshot_humanoids__datum_species_jelly was put in data/screenshots_new +2022-10-27T05:41:54.9494868Z screenshot_humanoids__datum_species_jelly_slime was put in data/screenshots_new +2022-10-27T05:41:55.6574845Z screenshot_humanoids__datum_species_jelly_luminescent was put in data/screenshots_new +2022-10-27T05:41:56.3636662Z screenshot_humanoids__datum_species_jelly_stargazer was put in data/screenshots_new +2022-10-27T05:41:56.9807853Z screenshot_humanoids__datum_species_lizard_ashwalker was put in data/screenshots_new +2022-10-27T05:41:57.6172458Z screenshot_humanoids__datum_species_lizard_silverscale was put in data/screenshots_new +2022-10-27T05:41:57.7952429Z screenshot_humanoids__datum_species_monkey was put in data/screenshots_new +2022-10-27T05:41:58.3429906Z screenshot_humanoids__datum_species_mush was put in data/screenshots_new +2022-10-27T05:41:58.9291358Z screenshot_humanoids__datum_species_plasmaman was put in data/screenshots_new +2022-10-27T05:41:59.6393043Z screenshot_humanoids__datum_species_pod was put in data/screenshots_new +2022-10-27T05:42:00.3004709Z screenshot_humanoids__datum_species_skeleton was put in data/screenshots_new +2022-10-27T05:42:01.0488511Z screenshot_humanoids__datum_species_snail was put in data/screenshots_new +2022-10-27T05:42:01.7655604Z screenshot_humanoids__datum_species_vampire was put in data/screenshots_new +2022-10-27T05:42:02.5637759Z screenshot_humanoids__datum_species_zombie was put in data/screenshots_new +2022-10-27T05:42:03.4341531Z screenshot_humanoids__datum_species_zombie_infectious was put in data/screenshots_new +2022-10-27T05:42:03.4342475Z +2022-10-27T05:42:03.4433344Z PASS /datum/unit_test/screenshot_humanoids 33.8s +2022-10-27T05:42:03.4434057Z ##[endgroup] +2022-10-27T05:42:38.0137819Z ##[group]/datum/unit_test/screenshot_saturnx +2022-10-27T05:42:38.2805908Z screenshot_saturnx_invisibility was put in data/screenshots_new +2022-10-27T05:42:38.2806525Z +2022-10-27T05:42:38.2807422Z PASS /datum/unit_test/screenshot_saturnx 0.2s +2022-10-27T05:42:38.2808381Z ##[endgroup] +2022-10-27T05:42:38.5125108Z ##[group]/datum/unit_test/security_officer_roundstart_distribution +2022-10-27T05:42:38.6313313Z +2022-10-27T05:42:38.6314073Z PASS /datum/unit_test/security_officer_roundstart_distribution 0.1s +2022-10-27T05:42:38.6314848Z ##[endgroup] +2022-10-27T05:42:38.7844382Z ##[group]/datum/unit_test/security_officer_latejoin_distribution +2022-10-27T05:42:39.3108839Z +2022-10-27T05:42:39.3109578Z PASS /datum/unit_test/security_officer_latejoin_distribution 0.5s +2022-10-27T05:42:39.3110392Z ##[endgroup] +2022-10-27T05:42:39.8689626Z ##[group]/datum/unit_test/security_levels +2022-10-27T05:42:39.8691007Z +2022-10-27T05:42:39.8692358Z PASS /datum/unit_test/security_levels 0s +2022-10-27T05:42:39.8694155Z ##[endgroup] +2022-10-27T05:42:39.8954646Z ##[group]/datum/unit_test/servingtray +2022-10-27T05:42:39.9246160Z +2022-10-27T05:42:39.9246828Z PASS /datum/unit_test/servingtray 0.1s +2022-10-27T05:42:39.9247596Z ##[endgroup] +2022-10-27T05:42:39.9527510Z ##[group]/datum/unit_test/simple_animal_freeze +2022-10-27T05:42:39.9538858Z +2022-10-27T05:42:39.9539579Z PASS /datum/unit_test/simple_animal_freeze 0s +2022-10-27T05:42:39.9540575Z ##[endgroup] +2022-10-27T05:42:39.9737208Z ##[group]/datum/unit_test/siunit +2022-10-27T05:42:39.9737877Z +2022-10-27T05:42:39.9739067Z PASS /datum/unit_test/siunit 0s +2022-10-27T05:42:39.9739970Z ##[endgroup] +2022-10-27T05:42:40.0059889Z ##[group]/datum/unit_test/slips +2022-10-27T05:42:40.0605319Z +2022-10-27T05:42:40.0606405Z PASS /datum/unit_test/slips 0s +2022-10-27T05:42:40.0608008Z ##[endgroup] +2022-10-27T05:42:40.1167017Z ##[group]/datum/unit_test/spawn_humans +2022-10-27T05:42:45.1906375Z +2022-10-27T05:42:45.1907903Z PASS /datum/unit_test/spawn_humans 5s +2022-10-27T05:42:45.1910749Z ##[endgroup] +2022-10-27T05:42:45.2427283Z ##[group]/datum/unit_test/spawn_mobs +2022-10-27T05:42:45.3357801Z +2022-10-27T05:42:45.3359033Z PASS /datum/unit_test/spawn_mobs 0.1s +2022-10-27T05:42:45.3361725Z ##[endgroup] +2022-10-27T05:42:45.5043702Z ##[group]/datum/unit_test/species_change_clothing +2022-10-27T05:42:45.6048589Z +2022-10-27T05:42:45.6049694Z PASS /datum/unit_test/species_change_clothing 0.1s +2022-10-27T05:42:45.6051771Z ##[endgroup] +2022-10-27T05:42:45.6837595Z ##[group]/datum/unit_test/species_change_organs +2022-10-27T05:42:45.7545977Z +2022-10-27T05:42:45.7546831Z PASS /datum/unit_test/species_change_organs 0.1s +2022-10-27T05:42:45.7547563Z ##[endgroup] +2022-10-27T05:42:45.7836582Z ##[group]/datum/unit_test/species_config_sanity +2022-10-27T05:42:45.7840840Z +2022-10-27T05:42:45.7842768Z PASS /datum/unit_test/species_config_sanity 0s +2022-10-27T05:42:45.7844337Z ##[endgroup] +2022-10-27T05:42:45.8022187Z ##[group]/datum/unit_test/species_unique_id +2022-10-27T05:42:45.8022866Z +2022-10-27T05:42:45.8075321Z PASS /datum/unit_test/species_unique_id 0s +2022-10-27T05:42:45.8076400Z ##[endgroup] +2022-10-27T05:42:45.8351362Z ##[group]/datum/unit_test/species_whitelist_check +2022-10-27T05:42:45.8351724Z +2022-10-27T05:42:45.8352365Z PASS /datum/unit_test/species_whitelist_check 0s +2022-10-27T05:42:45.8353142Z ##[endgroup] +2022-10-27T05:42:45.8533484Z ##[group]/datum/unit_test/spell_invocations +2022-10-27T05:42:45.8533768Z +2022-10-27T05:42:45.8534255Z PASS /datum/unit_test/spell_invocations 0s +2022-10-27T05:42:45.8534811Z ##[endgroup] +2022-10-27T05:42:45.8839364Z ##[group]/datum/unit_test/mind_swap_spell +2022-10-27T05:42:45.9396663Z +2022-10-27T05:42:45.9397306Z PASS /datum/unit_test/mind_swap_spell 0.1s +2022-10-27T05:42:45.9397999Z ##[endgroup] +2022-10-27T05:42:45.9707938Z ##[group]/datum/unit_test/spell_names +2022-10-27T05:42:45.9708233Z +2022-10-27T05:42:45.9708764Z PASS /datum/unit_test/spell_names 0s +2022-10-27T05:42:45.9709443Z ##[endgroup] +2022-10-27T05:42:45.9892272Z ##[group]/datum/unit_test/shapeshift_spell_validity +2022-10-27T05:42:45.9896681Z +2022-10-27T05:42:45.9897201Z PASS /datum/unit_test/shapeshift_spell_validity 0s +2022-10-27T05:42:45.9897727Z ##[endgroup] +2022-10-27T05:42:46.0425278Z ##[group]/datum/unit_test/shapeshift_spell +2022-10-27T05:42:46.3445398Z +2022-10-27T05:42:46.3446335Z PASS /datum/unit_test/shapeshift_spell 0.3s +2022-10-27T05:42:46.3447239Z ##[endgroup] +2022-10-27T05:42:46.8200052Z ##[group]/datum/unit_test/shapeshift_holoparasites +2022-10-27T05:42:46.8537455Z +2022-10-27T05:42:46.8539870Z PASS /datum/unit_test/shapeshift_holoparasites 0s +2022-10-27T05:42:46.8541451Z ##[endgroup] +2022-10-27T05:42:46.9292759Z ##[group]/datum/unit_test/spritesheets +2022-10-27T05:42:50.5944827Z +2022-10-27T05:42:50.5945740Z PASS /datum/unit_test/spritesheets 3.6s +2022-10-27T05:42:50.5946612Z ##[endgroup] +2022-10-27T05:42:57.1137055Z ##[group]/datum/unit_test/stack_singular_name +2022-10-27T05:42:57.1142555Z +2022-10-27T05:42:57.1145224Z PASS /datum/unit_test/stack_singular_name 0s +2022-10-27T05:42:57.1147574Z ##[endgroup] +2022-10-27T05:42:57.1358739Z ##[group]/datum/unit_test/stomach +2022-10-27T05:42:57.1694838Z +2022-10-27T05:42:57.1695603Z PASS /datum/unit_test/stomach 0s +2022-10-27T05:42:57.1696272Z ##[endgroup] +2022-10-27T05:42:57.1961163Z ##[group]/datum/unit_test/strip_menu_ui_status +2022-10-27T05:42:57.2480737Z +2022-10-27T05:42:57.2481561Z PASS /datum/unit_test/strip_menu_ui_status 0.1s +2022-10-27T05:42:57.2483682Z ##[endgroup] +2022-10-27T05:42:57.3124509Z ##[group]/datum/unit_test/subsystem_init +2022-10-27T05:42:57.3124738Z +2022-10-27T05:42:57.3127230Z PASS /datum/unit_test/subsystem_init 0s +2022-10-27T05:42:57.3128294Z ##[endgroup] +2022-10-27T05:42:57.3335312Z ##[group]/datum/unit_test/suit_storage_icons +2022-10-27T05:42:59.0884928Z 1 - /obj/item/ammo_casing/shotgun using invalid worn_icon_state, "shell" +2022-10-27T05:42:59.1022656Z 2 - /obj/item/gun/ballistic/shotgun/hook using invalid icon_state, "hookshotgun" +2022-10-27T05:42:59.1167874Z 3 - /obj/item/gun/ballistic/automatic/surplus using invalid icon_state, "surplus" +2022-10-27T05:42:59.1313544Z 4 - /obj/item/gun/energy/beam_rifle using invalid icon_state, "esniper" +2022-10-27T05:42:59.1335197Z 5 - /obj/item/gun/energy/lasercannon using invalid icon_state, "lasercannon" +2022-10-27T05:42:59.1363131Z 6 - /obj/item/gun/energy/ionrifle using invalid icon_state, "ionrifle" +2022-10-27T05:42:59.1364702Z 7 - /obj/item/gun/energy/ionrifle/carbine using invalid icon_state, "ioncarbine" +2022-10-27T05:42:59.1507295Z 8 - /obj/item/tome using invalid icon_state, "tome" +2022-10-27T05:42:59.1546690Z 9 - /obj/item/melee/sickly_blade/void using invalid icon_state, "void_blade" +2022-10-27T05:42:59.1558801Z 10 - /obj/item/nullrod/staff using invalid icon_state, "godstaff-red" +2022-10-27T05:42:59.1561300Z 11 - /obj/item/nullrod/staff/blue using invalid icon_state, "godstaff-blue" +2022-10-27T05:42:59.1647859Z 12 - /obj/item/nullrod/tribal_knife using invalid icon_state, "crysknife" +2022-10-27T05:42:59.1657290Z 13 - /obj/item/nullrod/spear using invalid icon_state, "ratvarian_spear" +2022-10-27T05:42:59.1666968Z 14 - /obj/item/candle using invalid icon_state, "candle1" +2022-10-27T05:42:59.2050751Z 15 - /obj/item/toy/eightball using invalid icon_state, "eightball" +2022-10-27T05:42:59.2053756Z 16 - /obj/item/toy/mecha using invalid icon_state, "fivestarstoy" +2022-10-27T05:42:59.2055847Z 17 - /obj/item/toy/mecha/ripley using invalid icon_state, "ripleytoy" +2022-10-27T05:42:59.2058896Z 18 - /obj/item/toy/mecha/ripleymkii using invalid icon_state, "ripleymkiitoy" +2022-10-27T05:42:59.2061681Z 19 - /obj/item/toy/mecha/hauler using invalid icon_state, "haulertoy" +2022-10-27T05:42:59.2064463Z 20 - /obj/item/toy/mecha/clarke using invalid icon_state, "clarketoy" +2022-10-27T05:42:59.2067351Z 21 - /obj/item/toy/mecha/odysseus using invalid icon_state, "odysseustoy" +2022-10-27T05:42:59.2069885Z 22 - /obj/item/toy/mecha/gygax using invalid icon_state, "gygaxtoy" +2022-10-27T05:42:59.2072424Z 23 - /obj/item/toy/mecha/durand using invalid icon_state, "durandtoy" +2022-10-27T05:42:59.2075046Z 24 - /obj/item/toy/mecha/savannahivanov using invalid icon_state, "savannahivanovtoy" +2022-10-27T05:42:59.2077536Z 25 - /obj/item/toy/mecha/phazon using invalid icon_state, "phazontoy" +2022-10-27T05:42:59.2080032Z 26 - /obj/item/toy/mecha/honk using invalid icon_state, "honktoy" +2022-10-27T05:42:59.2083569Z 27 - /obj/item/toy/mecha/darkgygax using invalid icon_state, "darkgygaxtoy" +2022-10-27T05:42:59.2085844Z 28 - /obj/item/toy/mecha/mauler using invalid icon_state, "maulertoy" +2022-10-27T05:42:59.2088536Z 29 - /obj/item/toy/mecha/darkhonk using invalid icon_state, "darkhonktoy" +2022-10-27T05:42:59.2091361Z 30 - /obj/item/toy/mecha/deathripley using invalid icon_state, "deathripleytoy" +2022-10-27T05:42:59.2094603Z 31 - /obj/item/toy/mecha/reticence using invalid icon_state, "reticencetoy" +2022-10-27T05:42:59.2096993Z 32 - /obj/item/toy/mecha/marauder using invalid icon_state, "maraudertoy" +2022-10-27T05:42:59.2099775Z 33 - /obj/item/toy/mecha/seraph using invalid icon_state, "seraphtoy" +2022-10-27T05:42:59.2102793Z 34 - /obj/item/toy/mecha/firefighter using invalid icon_state, "firefightertoy" +2022-10-27T05:42:59.2105424Z 35 - /obj/item/toy/waterballoon using invalid icon_state, "waterballoon-e" +2022-10-27T05:42:59.2107991Z 36 - /obj/item/toy/balloon using invalid icon_state, "balloon" +2022-10-27T05:42:59.2111052Z 37 - /obj/item/toy/balloon/corgi using invalid icon_state, "corgi" +2022-10-27T05:42:59.2113846Z 38 - /obj/item/toy/balloon/syndicate using invalid icon_state, "syndballoon" +2022-10-27T05:42:59.2116990Z 39 - /obj/item/toy/balloon/arrest using invalid icon_state, "arrestballoon" +2022-10-27T05:42:59.2119545Z 40 - /obj/item/toy/captainsaid using invalid icon_state, "captainsaid_off" +2022-10-27T05:42:59.2122005Z 41 - /obj/item/toy/spinningtoy using invalid icon_state, "singularity_s1" +2022-10-27T05:42:59.2127416Z 42 - /obj/item/toy/ammo/gun using invalid icon_state, "357OLD-7" +2022-10-27T05:42:59.2130032Z 43 - /obj/item/toy/sword using invalid icon_state, "e_sword" +2022-10-27T05:42:59.2132828Z 44 - /obj/item/toy/foamblade using invalid icon_state, "foamblade" +2022-10-27T05:42:59.2135633Z 45 - /obj/item/toy/windup_toolbox using invalid icon_state, "green" +2022-10-27T05:42:59.2141209Z 46 - /obj/item/toy/snappop using invalid icon_state, "snappop" +2022-10-27T05:42:59.2144552Z 47 - /obj/item/toy/talking using invalid icon_state, "owlprize" +2022-10-27T05:42:59.2146583Z 48 - /obj/item/toy/talking/ai using invalid icon_state, "AI" +2022-10-27T05:42:59.2149175Z 49 - /obj/item/toy/talking/codex_gigas using invalid icon_state, "demonomicon" +2022-10-27T05:42:59.2151786Z 50 - /obj/item/toy/talking/griffin using invalid icon_state, "griffinprize" +2022-10-27T05:42:59.2155964Z 51 - /obj/item/toy/nuke using invalid icon_state, "nuketoyidle" +2022-10-27T05:42:59.2157504Z 52 - /obj/item/toy/minimeteor using invalid icon_state, "minimeteor" +2022-10-27T05:42:59.2160224Z 53 - /obj/item/toy/redbutton using invalid icon_state, "bigred" +2022-10-27T05:42:59.2163069Z 54 - /obj/item/toy/snowball using invalid icon_state, "snowball" +2022-10-27T05:42:59.2165858Z 55 - /obj/item/toy/beach_ball using invalid icon_state, "ball" +2022-10-27T05:42:59.2168809Z 56 - /obj/item/toy/beach_ball/baseball using invalid icon_state, "baseball" +2022-10-27T05:42:59.2171419Z 57 - /obj/item/toy/beach_ball/holoball using invalid icon_state, "basketball" +2022-10-27T05:42:59.2174156Z 58 - /obj/item/toy/beach_ball/holoball/dodgeball using invalid icon_state, "dodgeball" +2022-10-27T05:42:59.2182197Z 59 - /obj/item/toy/toy_xeno using invalid icon_state, "toy_xeno" +2022-10-27T05:42:59.2185181Z 60 - /obj/item/toy/cattoy using invalid icon_state, "toy_mouse" +2022-10-27T05:42:59.2187605Z 61 - /obj/item/toy/figure using invalid icon_state, "nuketoy" +2022-10-27T05:42:59.2190489Z 62 - /obj/item/toy/figure/cmo using invalid icon_state, "cmo" +2022-10-27T05:42:59.2193253Z 63 - /obj/item/toy/figure/assistant using invalid icon_state, "assistant" +2022-10-27T05:42:59.2196041Z 64 - /obj/item/toy/figure/atmos using invalid icon_state, "atmos" +2022-10-27T05:42:59.2198863Z 65 - /obj/item/toy/figure/bartender using invalid icon_state, "bartender" +2022-10-27T05:42:59.2201614Z 66 - /obj/item/toy/figure/borg using invalid icon_state, "borg" +2022-10-27T05:42:59.2204442Z 67 - /obj/item/toy/figure/botanist using invalid icon_state, "botanist" +2022-10-27T05:42:59.2207240Z 68 - /obj/item/toy/figure/captain using invalid icon_state, "captain" +2022-10-27T05:42:59.2210113Z 69 - /obj/item/toy/figure/cargotech using invalid icon_state, "cargotech" +2022-10-27T05:42:59.2212868Z 70 - /obj/item/toy/figure/ce using invalid icon_state, "ce" +2022-10-27T05:42:59.2215699Z 71 - /obj/item/toy/figure/chaplain using invalid icon_state, "chaplain" +2022-10-27T05:42:59.2218625Z 72 - /obj/item/toy/figure/chef using invalid icon_state, "chef" +2022-10-27T05:42:59.2221486Z 73 - /obj/item/toy/figure/chemist using invalid icon_state, "chemist" +2022-10-27T05:42:59.2224313Z 74 - /obj/item/toy/figure/clown using invalid icon_state, "clown" +2022-10-27T05:42:59.2227123Z 75 - /obj/item/toy/figure/ian using invalid icon_state, "ian" +2022-10-27T05:42:59.2229950Z 76 - /obj/item/toy/figure/detective using invalid icon_state, "detective" +2022-10-27T05:42:59.2232724Z 77 - /obj/item/toy/figure/dsquad using invalid icon_state, "dsquad" +2022-10-27T05:42:59.2236741Z 78 - /obj/item/toy/figure/engineer using invalid icon_state, "engineer" +2022-10-27T05:42:59.2239402Z 79 - /obj/item/toy/figure/geneticist using invalid icon_state, "geneticist" +2022-10-27T05:42:59.2242217Z 80 - /obj/item/toy/figure/hop using invalid icon_state, "hop" +2022-10-27T05:42:59.2245674Z 81 - /obj/item/toy/figure/hos using invalid icon_state, "hos" +2022-10-27T05:42:59.2247841Z 82 - /obj/item/toy/figure/qm using invalid icon_state, "qm" +2022-10-27T05:42:59.2250699Z 83 - /obj/item/toy/figure/janitor using invalid icon_state, "janitor" +2022-10-27T05:42:59.2253421Z 84 - /obj/item/toy/figure/lawyer using invalid icon_state, "lawyer" +2022-10-27T05:42:59.2256926Z 85 - /obj/item/toy/figure/curator using invalid icon_state, "curator" +2022-10-27T05:42:59.2260176Z 86 - /obj/item/toy/figure/md using invalid icon_state, "md" +2022-10-27T05:42:59.2262399Z 87 - /obj/item/toy/figure/paramedic using invalid icon_state, "paramedic" +2022-10-27T05:42:59.2265225Z 88 - /obj/item/toy/figure/psychologist using invalid icon_state, "psychologist" +2022-10-27T05:42:59.2268046Z 89 - /obj/item/toy/figure/prisoner using invalid icon_state, "prisoner" +2022-10-27T05:42:59.2270732Z 90 - /obj/item/toy/figure/mime using invalid icon_state, "mime" +2022-10-27T05:42:59.2273548Z 91 - /obj/item/toy/figure/miner using invalid icon_state, "miner" +2022-10-27T05:42:59.2276353Z 92 - /obj/item/toy/figure/ninja using invalid icon_state, "ninja" +2022-10-27T05:42:59.2279783Z 93 - /obj/item/toy/figure/wizard using invalid icon_state, "wizard" +2022-10-27T05:42:59.2281951Z 94 - /obj/item/toy/figure/rd using invalid icon_state, "rd" +2022-10-27T05:42:59.2284816Z 95 - /obj/item/toy/figure/roboticist using invalid icon_state, "roboticist" +2022-10-27T05:42:59.2287567Z 96 - /obj/item/toy/figure/scientist using invalid icon_state, "scientist" +2022-10-27T05:42:59.2290280Z 97 - /obj/item/toy/figure/syndie using invalid icon_state, "syndie" +2022-10-27T05:42:59.2293161Z 98 - /obj/item/toy/figure/secofficer using invalid icon_state, "secofficer" +2022-10-27T05:42:59.2295983Z 99 - /obj/item/toy/figure/virologist using invalid icon_state, "virologist" +2022-10-27T05:42:59.2298894Z 100 - /obj/item/toy/figure/warden using invalid icon_state, "warden" +2022-10-27T05:42:59.2301934Z 101 - /obj/item/toy/dummy using invalid icon_state, "puppet" +2022-10-27T05:42:59.2304886Z 102 - /obj/item/toy/seashell using invalid icon_state, "shell1" +2022-10-27T05:42:59.2307528Z 103 - /obj/item/toy/brokenradio using invalid icon_state, "broken_radio" +2022-10-27T05:42:59.2310163Z 104 - /obj/item/toy/braintoy using invalid icon_state, "brain-old" +2022-10-27T05:42:59.2315630Z 105 - /obj/item/toy/reality_pierce using invalid icon_state, "pierced_illusion" +2022-10-27T05:42:59.2318230Z 106 - /obj/item/toy/foamfinger using invalid icon_state, "foamfinger" +2022-10-27T05:42:59.2320978Z 107 - /obj/item/toy/intento using invalid icon_state, "blank" +2022-10-27T05:42:59.2380048Z 108 - /obj/item/toy/sprayoncan using invalid icon_state, "sprayoncan" +2022-10-27T05:42:59.2380659Z 109 - /obj/item/toy/xmas_cracker using invalid icon_state, "cracker" +2022-10-27T05:42:59.2381172Z 110 - /obj/item/cultivator/rake using invalid icon_state, "rake" +2022-10-27T05:42:59.2381690Z 111 - /obj/item/hatchet/wooden using invalid icon_state, "woodhatchet" +2022-10-27T05:42:59.2382240Z 112 - /obj/item/hatchet/cutterblade using invalid icon_state, "cutterblade" +2022-10-27T05:42:59.3124390Z 113 - /obj/item/reagent_containers/hypospray/medipen using invalid worn_icon_state, "medipen" +2022-10-27T05:42:59.3278187Z 114 - /obj/item/storage/pill_bottle using invalid icon_state, "pill_canister" +2022-10-27T05:42:59.3287606Z 115 - /obj/item/analyzer/ranged using invalid icon_state, "analyzerranged" +2022-10-27T05:42:59.3880589Z 116 - /obj/item/organ/internal/regenerative_core/legion using invalid icon_state, "legion_soul" +2022-10-27T05:42:59.3891926Z 117 - /obj/item/spear/bamboospear using invalid icon_state, "bamboo_spear0" +2022-10-27T05:42:59.3936485Z 118 - /obj/item/abductor/gizmo using invalid icon_state, "gizmo_scan" +2022-10-27T05:42:59.3938721Z 119 - /obj/item/abductor/silencer using invalid icon_state, "silencer" +2022-10-27T05:42:59.3939330Z 120 - /obj/item/abductor/mind_device using invalid icon_state, "mind_device_message" +2022-10-27T05:42:59.3955530Z 121 - /obj/item/claymore/cutlass using invalid worn_icon_state, "cutlass" +2022-10-27T05:42:59.3960287Z 122 - /obj/item/claymore/highlander/robot using invalid icon_state, "claymore_cyborg" +2022-10-27T05:42:59.3963042Z 123 - /obj/item/banner using invalid icon_state, "banner" +2022-10-27T05:42:59.3966004Z 124 - /obj/item/banner/security using invalid icon_state, "banner_security" +2022-10-27T05:42:59.3968500Z 125 - /obj/item/banner/medical using invalid icon_state, "banner_medical" +2022-10-27T05:42:59.3971572Z 126 - /obj/item/banner/science using invalid icon_state, "banner_science" +2022-10-27T05:42:59.3974330Z 127 - /obj/item/banner/cargo using invalid icon_state, "banner_cargo" +2022-10-27T05:42:59.3977163Z 128 - /obj/item/banner/engineering using invalid icon_state, "banner_engineering" +2022-10-27T05:42:59.3980201Z 129 - /obj/item/banner/red using invalid icon_state, "banner-red" +2022-10-27T05:42:59.3983133Z 130 - /obj/item/banner/blue using invalid icon_state, "banner-blue" +2022-10-27T05:42:59.4023342Z 131 - /obj/item/gun/magic/staff using invalid icon_state, "staff" +2022-10-27T05:42:59.4025602Z 132 - /obj/item/gun/magic/staff/change using invalid icon_state, "staffofchange" +2022-10-27T05:42:59.4028458Z 133 - /obj/item/gun/magic/staff/animate using invalid icon_state, "staffofanimation" +2022-10-27T05:42:59.4031283Z 134 - /obj/item/gun/magic/staff/healing using invalid icon_state, "staffofhealing" +2022-10-27T05:42:59.4034153Z 135 - /obj/item/gun/magic/staff/chaos using invalid icon_state, "staffofchaos" +2022-10-27T05:42:59.4036955Z 136 - /obj/item/gun/magic/staff/door using invalid icon_state, "staffofdoor" +2022-10-27T05:42:59.4039732Z 137 - /obj/item/gun/magic/staff/honk using invalid icon_state, "honker" +2022-10-27T05:42:59.4045070Z 138 - /obj/item/gun/magic/staff/locker using invalid worn_icon_state, "lockerstaff" +2022-10-27T05:42:59.4047723Z 139 - /obj/item/gun/magic/staff/flying using invalid worn_icon_state, "flightstaff" +2022-10-27T05:42:59.4050532Z 140 - /obj/item/gun/magic/staff/babel using invalid worn_icon_state, "babelstaff" +2022-10-27T05:42:59.4053458Z 141 - /obj/item/gun/magic/staff/necropotence using invalid worn_icon_state, "necrostaff" +2022-10-27T05:42:59.4056307Z 142 - /obj/item/gun/magic/staff/wipe using invalid worn_icon_state, "wipestaff" +2022-10-27T05:42:59.4075733Z 143 - /obj/item/melee/energy/sword/pirate using invalid icon_state, "e_cutlass" +2022-10-27T05:42:59.4078221Z 144 - /obj/item/clothing/glasses/eyepatch using invalid icon_state, "eyepatch" +2022-10-27T05:42:59.4083656Z 145 - /obj/item/melee/energy/sword/cyborg/saw using invalid icon_state, "esaw" +2022-10-27T05:42:59.4096186Z 146 - /obj/item/tank/jetpack/improvised using invalid worn_icon_state, "jetpack-improvised" +2022-10-27T05:42:59.4103014Z 147 - /obj/item/multitool using invalid icon_state, "multitool" +2022-10-27T05:42:59.4106594Z 148 - /obj/item/multitool/cyborg using invalid icon_state, "multitool_cyborg" +2022-10-27T05:42:59.4108989Z 149 - /obj/item/multitool/circuit using invalid icon_state, "multitool_circuit" +2022-10-27T05:42:59.4112331Z 150 - /obj/item/storage/bag/trash using invalid icon_state, "trashbag" +2022-10-27T05:42:59.4114785Z 151 - /obj/item/storage/bag/trash/bluespace using invalid icon_state, "bluetrashbag" +2022-10-27T05:42:59.4117882Z 152 - /obj/item/cane using invalid icon_state, "cane" +2022-10-27T05:42:59.4121455Z 153 - /obj/item/cane/white using invalid icon_state, "cane_white" +2022-10-27T05:42:59.4123404Z 154 - /obj/item/megaphone/clown using invalid icon_state, "megaphone-clown" +2022-10-27T05:42:59.4142890Z 155 - /obj/item/food/pie/cream using invalid icon_state, "pie" +2022-10-27T05:42:59.4157129Z 156 - /obj/item/instrument/bikehorn using invalid icon_state, "bike_horn" +2022-10-27T05:42:59.4160055Z 157 - /obj/item/reagent_containers/cup/soda_cans/canned_laughter using invalid icon_state, "laughter" +2022-10-27T05:42:59.4172872Z 158 - /obj/item/grown/bananapeel using invalid icon_state, "banana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-10-27T05:42:59.4173955Z 159 - /obj/item/grown/bananapeel/bombanana using invalid icon_state, "banana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-10-27T05:42:59.4174824Z 160 - /obj/item/grown/bananapeel/mimanapeel using invalid icon_state, "mimana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-10-27T05:42:59.4176072Z 161 - /obj/item/grown/bananapeel/bluespace using invalid icon_state, "bluenana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-10-27T05:42:59.4177252Z 162 - /obj/item/grown/bananapeel/specialpeel using invalid icon_state, "banana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-10-27T05:42:59.4178650Z 163 - /obj/item/food/grown/banana using invalid icon_state, "banana" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-10-27T05:42:59.4179781Z 164 - /obj/item/food/grown/banana/bombanana using invalid icon_state, "banana" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-10-27T05:42:59.4180904Z 165 - /obj/item/food/grown/banana/mime using invalid icon_state, "mimana" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-10-27T05:42:59.4182029Z 166 - /obj/item/food/grown/banana/bluespace using invalid icon_state, "bluenana" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-10-27T05:42:59.4183368Z 167 - /obj/item/food/grown/banana/bunch using invalid icon_state, "banana_bunch" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-10-27T05:42:59.4184222Z 168 - /obj/item/stack/spacecash/c1 using invalid icon_state, "spacecash1" +2022-10-27T05:42:59.4188146Z 169 - /obj/item/stack/spacecash/c10 using invalid icon_state, "spacecash10" +2022-10-27T05:42:59.4191119Z 170 - /obj/item/stack/spacecash/c20 using invalid icon_state, "spacecash20" +2022-10-27T05:42:59.4194008Z 171 - /obj/item/stack/spacecash/c50 using invalid icon_state, "spacecash50" +2022-10-27T05:42:59.4196852Z 172 - /obj/item/stack/spacecash/c100 using invalid icon_state, "spacecash100" +2022-10-27T05:42:59.4199667Z 173 - /obj/item/stack/spacecash/c200 using invalid icon_state, "spacecash200" +2022-10-27T05:42:59.4202843Z 174 - /obj/item/stack/spacecash/c500 using invalid icon_state, "spacecash500" +2022-10-27T05:42:59.4205536Z 175 - /obj/item/stack/spacecash/c1000 using invalid icon_state, "spacecash1000" +2022-10-27T05:42:59.4208409Z 176 - /obj/item/stack/spacecash/c10000 using invalid icon_state, "spacecash10000" +2022-10-27T05:42:59.4211295Z 177 - /obj/item/clothing/mask/facehugger/toy using invalid worn_icon_state, "facehugger" +2022-10-27T05:42:59.4221553Z 178 - /obj/item/kitchen/fork using invalid icon_state, "fork" +2022-10-27T05:42:59.4224344Z 179 - /obj/item/kitchen/fork/plastic using invalid icon_state, "plastic_fork" +2022-10-27T05:42:59.4231841Z 180 - /obj/item/kitchen/spoon using invalid icon_state, "spoon" +2022-10-27T05:42:59.4234746Z 181 - /obj/item/kitchen/spoon/plastic using invalid icon_state, "plastic_spoon" +2022-10-27T05:42:59.4242352Z 182 - /obj/item/bonesetter using invalid icon_state, "bonesetter" +2022-10-27T05:42:59.4244975Z 183 - /obj/item/cautery using invalid icon_state, "cautery" +2022-10-27T05:42:59.4247875Z 184 - /obj/item/cautery/advanced using invalid icon_state, "e_cautery" +2022-10-27T05:42:59.4250639Z 185 - /obj/item/hemostat using invalid icon_state, "hemostat" +2022-10-27T05:42:59.4253571Z 186 - /obj/item/hemostat/supermatter using invalid icon_state, "supermatter_tongs" +2022-10-27T05:42:59.4256376Z 187 - /obj/item/retractor using invalid icon_state, "retractor" +2022-10-27T05:42:59.4259443Z 188 - /obj/item/retractor/advanced using invalid icon_state, "adv_retractor" +2022-10-27T05:42:59.4262427Z 189 - /obj/item/scalpel using invalid icon_state, "scalpel" +2022-10-27T05:42:59.4265163Z 190 - /obj/item/scalpel/supermatter using invalid icon_state, "supermatter_scalpel" +2022-10-27T05:42:59.4268021Z 191 - /obj/item/scalpel/advanced using invalid icon_state, "e_scalpel" +2022-10-27T05:42:59.4271061Z 192 - /obj/item/surgical_drapes using invalid icon_state, "surgical_drapes" +2022-10-27T05:42:59.4277210Z 193 - /obj/item/stack/medical/bruise_pack using invalid icon_state, "brutepack" +2022-10-27T05:42:59.4279201Z 194 - /obj/item/stack/medical/gauze using invalid icon_state, "gauze" +2022-10-27T05:42:59.4283526Z 195 - /obj/item/stack/medical/suture using invalid icon_state, "suture" +2022-10-27T05:42:59.4286019Z 196 - /obj/item/stack/medical/suture/medicated using invalid icon_state, "suture_purp" +2022-10-27T05:42:59.4288604Z 197 - /obj/item/stack/medical/ointment using invalid icon_state, "ointment" +2022-10-27T05:42:59.4291557Z 198 - /obj/item/stack/medical/mesh using invalid icon_state, "regen_mesh" +2022-10-27T05:42:59.4294469Z 199 - /obj/item/stack/medical/mesh/advanced using invalid icon_state, "aloe_mesh" +2022-10-27T05:42:59.4297194Z 200 - /obj/item/stack/medical/aloe using invalid icon_state, "aloe_paste" +2022-10-27T05:42:59.4300231Z 201 - /obj/item/stack/medical/bone_gel using invalid icon_state, "bone-gel" +2022-10-27T05:42:59.4303320Z 202 - /obj/item/stack/medical/poultice using invalid icon_state, "poultice" +2022-10-27T05:42:59.4305972Z 203 - /obj/item/assembly/flash/handheld using invalid icon_state, "flash" +2022-10-27T05:42:59.4309092Z 204 - /obj/item/clothing/mask/cigarette using invalid icon_state, "cigoff" +2022-10-27T05:42:59.4313422Z 205 - /obj/item/clothing/mask/cigarette/rollie using invalid icon_state, "spliffoff" +2022-10-27T05:42:59.4316203Z 206 - /obj/item/clothing/mask/cigarette/candy using invalid icon_state, "candyoff" +2022-10-27T05:42:59.4319067Z 207 - /obj/item/clothing/mask/cigarette/cigar using invalid icon_state, "cigaroff" +2022-10-27T05:42:59.4321949Z 208 - /obj/item/clothing/mask/cigarette/cigar/cohiba using invalid icon_state, "cigar2off" +2022-10-27T05:42:59.4324829Z 209 - /obj/item/clothing/mask/cigarette/pipe using invalid icon_state, "pipeoff" +2022-10-27T05:42:59.4327646Z 210 - /obj/item/clothing/mask/cigarette/pipe/cobpipe using invalid icon_state, "cobpipeoff" +2022-10-27T05:42:59.4330391Z 211 - /obj/item/disk using invalid icon_state, "datadisk0" +2022-10-27T05:42:59.4333368Z 212 - /obj/item/disk/holodisk using invalid icon_state, "holodisk" +2022-10-27T05:42:59.4336344Z 213 - /obj/item/disk/nuclear using invalid icon_state, "nucleardisk" +2022-10-27T05:42:59.4339645Z 214 - /obj/item/disk/surgery using invalid icon_state, "datadisk1" +2022-10-27T05:42:59.4342883Z 215 - /obj/item/disk/cargo/bluespace_pod using invalid icon_state, "cargodisk" +2022-10-27T05:42:59.4345896Z 216 - /obj/item/disk/tech_disk/major using invalid icon_state, "rndmajordisk" +2022-10-27T05:42:59.4348806Z 217 - /obj/item/melee/powerfist using invalid icon_state, "powerfist" +2022-10-27T05:42:59.4358739Z 218 - /obj/item/melee/skateboard using invalid icon_state, "skateboard" +2022-10-27T05:42:59.4361970Z 219 - /obj/item/melee/skateboard/pro using invalid icon_state, "skateboard2" +2022-10-27T05:42:59.4371577Z 220 - /obj/item/melee/skateboard/hoverboard using invalid icon_state, "hoverboard_red" +2022-10-27T05:42:59.4372651Z 221 - /obj/item/melee/skateboard/hoverboard/admin using invalid icon_state, "hoverboard_nt" +2022-10-27T05:42:59.4373753Z 222 - /obj/item/melee/baseball_bat using invalid icon_state, "baseball_bat" +2022-10-27T05:42:59.4374699Z 223 - /obj/item/melee/baseball_bat/homerun using invalid icon_state, "baseball_bat_home" +2022-10-27T05:42:59.4376875Z 224 - /obj/item/melee/baseball_bat/ablative using invalid icon_state, "baseball_bat_metal" +2022-10-27T05:42:59.4379802Z 225 - /obj/item/melee/flyswatter using invalid icon_state, "flyswatter" +2022-10-27T05:42:59.4386397Z 226 - /obj/item/melee/energy/axe using invalid icon_state, "axe" +2022-10-27T05:42:59.4389295Z 227 - /obj/item/melee/energy/blade using invalid icon_state, "blade" +2022-10-27T05:42:59.4392359Z 228 - /obj/item/melee/energy/blade/hardlight using invalid icon_state, "lightblade" +2022-10-27T05:42:59.4396069Z 229 - /obj/item/melee/synthetic_arm_blade using invalid icon_state, "arm_blade" +2022-10-27T05:42:59.4398671Z 230 - /obj/item/melee/sabre using invalid icon_state, "sabre" +2022-10-27T05:42:59.4403118Z 231 - /obj/item/melee/beesword using invalid worn_icon_state, "stinger" +2022-10-27T05:42:59.4404484Z 232 - /obj/item/melee/supermatter_sword using invalid icon_state, "supermatter_sword" +2022-10-27T05:42:59.4413439Z 233 - /obj/item/melee/cleric_mace using invalid worn_icon_state, "default_worn" +2022-10-27T05:42:59.4416300Z 234 - /obj/item/melee/rune_carver using invalid icon_state, "rune_carver" +2022-10-27T05:42:59.4419326Z 235 - /obj/item/melee/ghost_sword using invalid icon_state, "spectral" +2022-10-27T05:42:59.4422471Z 236 - /obj/item/reagent_containers/cup/glass/flask using invalid icon_state, "flask" +2022-10-27T05:42:59.4425277Z 237 - /obj/item/reagent_containers/cup/glass/flask/gold using invalid icon_state, "flask_gold" +2022-10-27T05:42:59.4428045Z 238 - /obj/item/reagent_containers/cup/glass/flask/det using invalid icon_state, "detflask" +2022-10-27T05:42:59.4430826Z 239 - /obj/item/stamp using invalid icon_state, "stamp-ok" +2022-10-27T05:42:59.4438099Z 240 - /obj/item/stamp/qm using invalid icon_state, "stamp-qm" +2022-10-27T05:42:59.4438587Z 241 - /obj/item/stamp/law using invalid icon_state, "stamp-law" +2022-10-27T05:42:59.4439459Z 242 - /obj/item/stamp/captain using invalid icon_state, "stamp-cap" +2022-10-27T05:42:59.4443481Z 243 - /obj/item/stamp/hop using invalid icon_state, "stamp-hop" +2022-10-27T05:42:59.4446324Z 244 - /obj/item/stamp/hos using invalid icon_state, "stamp-hos" +2022-10-27T05:42:59.4448968Z 245 - /obj/item/stamp/ce using invalid icon_state, "stamp-ce" +2022-10-27T05:42:59.4451579Z 246 - /obj/item/stamp/rd using invalid icon_state, "stamp-rd" +2022-10-27T05:42:59.4454530Z 247 - /obj/item/stamp/cmo using invalid icon_state, "stamp-cmo" +2022-10-27T05:42:59.4457121Z 248 - /obj/item/stamp/denied using invalid icon_state, "stamp-deny" +2022-10-27T05:42:59.4460087Z 249 - /obj/item/stamp/void using invalid icon_state, "stamp-void" +2022-10-27T05:42:59.4463223Z 250 - /obj/item/stamp/clown using invalid icon_state, "stamp-clown" +2022-10-27T05:42:59.4465824Z 251 - /obj/item/stamp/mime using invalid icon_state, "stamp-mime" +2022-10-27T05:42:59.4468654Z 252 - /obj/item/stamp/chap using invalid icon_state, "stamp-chap" +2022-10-27T05:42:59.4471480Z 253 - /obj/item/stamp/centcom using invalid icon_state, "stamp-centcom" +2022-10-27T05:42:59.4474941Z 254 - /obj/item/stamp/syndicate using invalid icon_state, "stamp-syndicate" +2022-10-27T05:42:59.4479594Z 255 - /obj/item/storage/lockbox/medal using invalid icon_state, "medalbox+l" +2022-10-27T05:42:59.4487494Z 256 - /obj/item/crowbar/red/caravan using invalid icon_state, "crowbar_caravan" +2022-10-27T05:42:59.4509453Z 257 - /obj/item/crowbar/drone using invalid icon_state, "crowbar_cyborg" +2022-10-27T05:42:59.4528797Z +2022-10-27T05:42:59.4529293Z PASS /datum/unit_test/suit_storage_icons 2.1s +2022-10-27T05:42:59.4529946Z ##[endgroup] +2022-10-27T05:43:01.5221964Z ##[group]/datum/unit_test/amputation +2022-10-27T05:43:01.5815196Z +2022-10-27T05:43:01.5817573Z PASS /datum/unit_test/amputation 0s +2022-10-27T05:43:01.5819941Z ##[endgroup] +2022-10-27T05:43:01.6143865Z ##[group]/datum/unit_test/brain_surgery +2022-10-27T05:43:01.6698394Z +2022-10-27T05:43:01.6699379Z PASS /datum/unit_test/brain_surgery 0s +2022-10-27T05:43:01.6700065Z ##[endgroup] +2022-10-27T05:43:01.7064460Z ##[group]/datum/unit_test/head_transplant +2022-10-27T05:43:01.7910615Z +2022-10-27T05:43:01.7911507Z PASS /datum/unit_test/head_transplant 0s +2022-10-27T05:43:01.7912215Z ##[endgroup] +2022-10-27T05:43:01.8771339Z ##[group]/datum/unit_test/multiple_surgeries +2022-10-27T05:43:01.9564190Z +2022-10-27T05:43:01.9565672Z PASS /datum/unit_test/multiple_surgeries 0.1s +2022-10-27T05:43:01.9566988Z ##[endgroup] +2022-10-27T05:43:02.0451694Z ##[group]/datum/unit_test/start_tend_wounds +2022-10-27T05:43:02.1021559Z +2022-10-27T05:43:02.1023113Z PASS /datum/unit_test/start_tend_wounds 0.1s +2022-10-27T05:43:02.1027806Z ##[endgroup] +2022-10-27T05:43:02.1334702Z ##[group]/datum/unit_test/tend_wounds +2022-10-27T05:43:02.2464864Z +2022-10-27T05:43:02.2466455Z PASS /datum/unit_test/tend_wounds 0.1s +2022-10-27T05:43:02.2471798Z ##[endgroup] +2022-10-27T05:43:02.3971842Z ##[group]/datum/unit_test/auto_teleporter_linking +2022-10-27T05:43:02.4364172Z +2022-10-27T05:43:02.4365748Z PASS /datum/unit_test/auto_teleporter_linking 0.1s +2022-10-27T05:43:02.4367360Z ##[endgroup] +2022-10-27T05:43:02.4786335Z ##[group]/datum/unit_test/tgui_create_message +2022-10-27T05:43:02.4787309Z +2022-10-27T05:43:02.4792228Z PASS /datum/unit_test/tgui_create_message 0s +2022-10-27T05:43:02.4793589Z ##[endgroup] +2022-10-27T05:43:02.4990140Z ##[group]/datum/unit_test/timer_sanity +2022-10-27T05:43:02.4990770Z +2022-10-27T05:43:02.4993590Z PASS /datum/unit_test/timer_sanity 0s +2022-10-27T05:43:02.4994358Z ##[endgroup] +2022-10-27T05:43:02.5179295Z ##[group]/datum/unit_test/traitor +2022-10-27T05:43:04.3257821Z +2022-10-27T05:43:04.3259494Z PASS /datum/unit_test/traitor 1.8s +2022-10-27T05:43:04.3309007Z ##[endgroup] +2022-10-27T05:43:08.2246947Z ##[group]/datum/unit_test/verify_config_tags +2022-10-27T05:43:08.2248054Z +2022-10-27T05:43:08.2249419Z PASS /datum/unit_test/verify_config_tags 0s +2022-10-27T05:43:08.2250078Z ##[endgroup] +2022-10-27T05:43:08.2441208Z ##[group]/datum/unit_test/wizard_loadout +2022-10-27T05:43:08.3578743Z +2022-10-27T05:43:08.3580409Z PASS /datum/unit_test/wizard_loadout 0.1s +2022-10-27T05:43:08.3585004Z ##[endgroup] +2022-10-27T05:43:08.5073685Z ##[group]/datum/unit_test/find_reference_sanity +2022-10-27T05:43:08.5075807Z +2022-10-27T05:43:08.5076772Z PASS /datum/unit_test/find_reference_sanity 0s +2022-10-27T05:43:08.5077672Z ##[endgroup] +2022-10-27T05:43:08.5272155Z ##[group]/datum/unit_test/find_reference_baseline +2022-10-27T05:43:08.5274693Z +2022-10-27T05:43:08.5275872Z PASS /datum/unit_test/find_reference_baseline 0s +2022-10-27T05:43:08.5276640Z ##[endgroup] +2022-10-27T05:43:08.5468423Z ##[group]/datum/unit_test/find_reference_exotic +2022-10-27T05:43:08.5470529Z +2022-10-27T05:43:08.5474746Z PASS /datum/unit_test/find_reference_exotic 0s +2022-10-27T05:43:08.5475293Z ##[endgroup] +2022-10-27T05:43:08.5665386Z ##[group]/datum/unit_test/find_reference_esoteric +2022-10-27T05:43:08.5669399Z +2022-10-27T05:43:08.5676075Z PASS /datum/unit_test/find_reference_esoteric 0s +2022-10-27T05:43:08.5677072Z ##[endgroup] +2022-10-27T05:43:08.5866537Z ##[group]/datum/unit_test/find_reference_null_key_entry +2022-10-27T05:43:08.5868456Z +2022-10-27T05:43:08.5869492Z PASS /datum/unit_test/find_reference_null_key_entry 0s +2022-10-27T05:43:08.5870146Z ##[endgroup] +2022-10-27T05:43:08.6166348Z ##[group]/datum/unit_test/find_reference_assoc_investigation +2022-10-27T05:43:08.6171705Z +2022-10-27T05:43:08.6172220Z PASS /datum/unit_test/find_reference_assoc_investigation 0s +2022-10-27T05:43:08.6172854Z ##[endgroup] +2022-10-27T05:43:08.6356029Z ##[group]/datum/unit_test/find_reference_static_investigation +2022-10-27T05:43:08.8684547Z +2022-10-27T05:43:08.8685577Z PASS /datum/unit_test/find_reference_static_investigation 0.2s +2022-10-27T05:43:08.8686517Z ##[endgroup] +2022-10-27T05:43:09.0881655Z ##[group]/datum/unit_test/monkey_business +2022-10-27T05:43:47.8646118Z +2022-10-27T05:43:47.8647763Z PASS /datum/unit_test/monkey_business 38.8s +2022-10-27T05:43:47.8739017Z ##[endgroup] +2022-10-27T05:43:50.1651558Z ##[group]/datum/unit_test/create_and_destroy +2022-10-27T05:49:19.8716381Z ## REF SEARCH Beginning search for references to a /datum/computer_file/program/chatclient. +2022-10-27T05:49:20.0425000Z ## REF SEARCH Finished searching globals +2022-10-27T05:49:20.3029611Z ## REF SEARCH Finished searching native globals +2022-10-27T05:52:18.0382074Z ## REF SEARCH Finished searching atoms +2022-10-27T05:52:33.0757341Z ## REF SEARCH Found /datum/computer_file/program/chatclient [0x2104dfc7] in /datum/ntnet_conversation's [0x2104dfc2] operator var. Datums -> /datum/ntnet_conversation +2022-10-27T05:52:33.0758787Z ## REF SEARCH Found /datum/computer_file/program/chatclient [0x2104dfc7] in list Datums -> /datum/ntnet_conversation [0x2104dfc2] -> active_clients (list). +2022-10-27T05:52:33.0760039Z ## REF SEARCH Found /datum/computer_file/program/chatclient [0x2104dfc7] in list Datums -> /datum/ntnet_conversation [0x2104dfc2] -> active_clients (list). +2022-10-27T05:52:33.0761156Z ## REF SEARCH Found /datum/computer_file/program/chatclient [0x2104dfc7] in list Datums -> /datum/ntnet_conversation [0x2104dfc2] -> active_clients (list). +2022-10-27T05:52:33.0814898Z ## REF SEARCH Found /datum/computer_file/program/chatclient [0x2104dfc7] in list Datums -> /datum/ntnet_conversation [0x2104dfc2] -> active_clients (list). +2022-10-27T05:52:33.0816178Z ## REF SEARCH Found /datum/computer_file/program/chatclient [0x2104dfc7] in list Datums -> /datum/ntnet_conversation [0x2104dfc2] -> active_clients (list). +2022-10-27T05:52:34.6185349Z ## REF SEARCH Finished searching datums +2022-10-27T05:52:34.6185815Z ## REF SEARCH Finished searching clients +2022-10-27T05:52:34.6186331Z ## REF SEARCH Completed search for references to a /datum/computer_file/program/chatclient. +2022-10-27T05:52:34.6187365Z ## TESTING: GC: -- [0x2104dfc7] | /datum/computer_file/program/chatclient was unable to be GC'd -- +2022-10-27T05:52:50.6232674Z ##[error]/datum/computer_file/program/chatclient hard deleted 1 times out of a total del count of 13 +2022-10-27T05:52:50.6242137Z FAILURE #1: /datum/computer_file/program/chatclient hard deleted 1 times out of a total del count of 13 at code/modules/unit_tests/create_and_destroy.dm:173 +2022-10-27T05:52:50.6242890Z ##[endgroup] +2022-10-27T05:52:50.6244173Z ##[error]FAIL /datum/unit_test/create_and_destroy 540.5s +2022-10-27T05:52:50.6611817Z Shutting down Chat subsystem... +2022-10-27T05:52:50.6612177Z Shutting down Init Profiler subsystem... +2022-10-27T05:52:50.6612511Z Shutting down Ban Cache subsystem... +2022-10-27T05:52:50.6612837Z Shutting down Stat Panels subsystem... +2022-10-27T05:52:50.6613185Z Shutting down Explosions subsystem... +2022-10-27T05:52:50.6613516Z Shutting down Pathfinder subsystem... +2022-10-27T05:52:50.6613840Z Shutting down Minor Mapping subsystem... +2022-10-27T05:52:50.6614149Z Shutting down Shuttle subsystem... +2022-10-27T05:52:50.6614455Z Shutting down Lighting subsystem... +2022-10-27T05:52:50.6614770Z Shutting down XKeyScore subsystem... +2022-10-27T05:52:50.6615076Z Shutting down PRISM subsystem... +2022-10-27T05:52:50.6636820Z Shutting down Icon Smoothing subsystem... +2022-10-27T05:52:50.6637164Z Shutting down Assets subsystem... +2022-10-27T05:52:50.6637453Z Shutting down Vote subsystem... +2022-10-27T05:52:50.6637800Z Shutting down Persistent Paintings subsystem... +2022-10-27T05:52:50.6638150Z Shutting down Persistence subsystem... +2022-10-27T05:52:50.6638478Z Shutting down Atmospherics subsystem... +2022-10-27T05:52:50.6638848Z Shutting down Wiremod Composite Templates subsystem... +2022-10-27T05:52:50.6639197Z Shutting down Wet floors subsystem... +2022-10-27T05:52:50.6639504Z Shutting down Weather subsystem... +2022-10-27T05:52:50.6639813Z Shutting down Wardrobe subsystem... +2022-10-27T05:52:50.6640129Z Shutting down Verb Manager subsystem... +2022-10-27T05:52:50.6640449Z Shutting down Tram Process subsystem... +2022-10-27T05:52:50.6640764Z Shutting down Traitor subsystem... +2022-10-27T05:52:50.6641059Z Shutting down Throwing subsystem... +2022-10-27T05:52:50.6641363Z Shutting down tgui subsystem... +2022-10-27T05:52:50.6641692Z Shutting down Supermatter Cascade subsystem... +2022-10-27T05:52:50.6642010Z Shutting down Sun subsystem... +2022-10-27T05:52:50.6642333Z Shutting down Speech Controller subsystem... +2022-10-27T05:52:50.6642653Z Shutting down Space Drift subsystem... +2022-10-27T05:52:50.6642962Z Shutting down Smoke subsystem... +2022-10-27T05:52:50.6643271Z Shutting down Singularity subsystem... +2022-10-27T05:52:50.6643578Z Shutting down Radio subsystem... +2022-10-27T05:52:50.6643875Z Shutting down Radiation subsystem... +2022-10-27T05:52:50.6644483Z Shutting down Projectiles subsystem... +2022-10-27T05:52:50.6644819Z Shutting down Processing subsystem... +2022-10-27T05:52:50.6645158Z Shutting down Points of Interest subsystem... +2022-10-27T05:52:50.6645489Z Shutting down Plumbing subsystem... +2022-10-27T05:52:50.6645780Z Shutting down Ping subsystem... +2022-10-27T05:52:50.6646088Z Shutting down Parallax subsystem... +2022-10-27T05:52:50.6646396Z Shutting down pAI subsystem... +2022-10-27T05:52:50.6646701Z Shutting down Overlay subsystem... +2022-10-27T05:52:50.9809746Z Shutting down Objects subsystem... +2022-10-27T05:52:50.9810088Z Shutting down Obj Tab Items subsystem... +2022-10-27T05:52:50.9810410Z Shutting down NPC Pool subsystem... +2022-10-27T05:52:50.9811012Z Shutting down Night Shift subsystem... +2022-10-27T05:52:50.9811331Z Shutting down Movement Loops subsystem... +2022-10-27T05:52:50.9811653Z Shutting down Movement Handler subsystem... +2022-10-27T05:52:50.9811975Z Shutting down MouseEntered subsystem... +2022-10-27T05:52:50.9812266Z Shutting down Mood subsystem... +2022-10-27T05:52:50.9812709Z Shutting down Mobs subsystem... +2022-10-27T05:52:50.9813020Z Shutting down Materials subsystem... +2022-10-27T05:52:50.9815026Z Shutting down Lua Scripting subsystem... +2022-10-27T05:52:50.9975219Z Shutting down Library Loading subsystem... +2022-10-27T05:52:50.9975575Z Shutting down Lag Switch subsystem... +2022-10-27T05:52:50.9975912Z Shutting down Idling NPC Pool subsystem... +2022-10-27T05:52:50.9976225Z Shutting down Foam subsystem... +2022-10-27T05:52:50.9976518Z Shutting down Fluid subsystem... +2022-10-27T05:52:50.9976823Z Shutting down Fire Burning subsystem... +2022-10-27T05:52:50.9977153Z Shutting down Fast Processing subsystem... +2022-10-27T05:52:50.9977478Z Shutting down Eigenstates subsystem... +2022-10-27T05:52:50.9977787Z Shutting down Disease subsystem... +2022-10-27T05:52:50.9978121Z Shutting down Datum Component System subsystem... +2022-10-27T05:52:50.9978463Z Shutting down Conveyor Belts subsystem... +2022-10-27T05:52:50.9978939Z Shutting down Communications subsystem... +2022-10-27T05:52:50.9979257Z Shutting down Clock Component subsystem... +2022-10-27T05:52:50.9979599Z Shutting down Circuit Components subsystem... +2022-10-27T05:52:50.9979926Z Shutting down Blackmarket subsystem... +2022-10-27T05:52:50.9980248Z Shutting down Basic Avoidance subsystem... +2022-10-27T05:52:50.9980570Z Shutting down Aura Healing subsystem... +2022-10-27T05:52:50.9980859Z Shutting down Augury subsystem... +2022-10-27T05:52:50.9981169Z Shutting down Asset Loading subsystem... +2022-10-27T05:52:50.9981483Z Shutting down Antag HUDs subsystem... +2022-10-27T05:52:50.9981788Z Shutting down Ambience subsystem... +2022-10-27T05:52:50.9982092Z Shutting down Addiction subsystem... +2022-10-27T05:52:50.9982383Z Shutting down Acid subsystem... +2022-10-27T05:52:50.9982673Z Shutting down Timer subsystem... +2022-10-27T05:52:50.9982970Z Shutting down Sound Loops subsystem... +2022-10-27T05:52:50.9983275Z Shutting down Runechat subsystem... +2022-10-27T05:52:50.9983571Z Shutting down Skills subsystem... +2022-10-27T05:52:50.9983871Z Shutting down Machines subsystem... +2022-10-27T05:52:50.9984159Z Shutting down Language subsystem... +2022-10-27T05:52:50.9984452Z Shutting down Atoms subsystem... +2022-10-27T05:52:51.0026223Z Shutting down Restaurant subsystem... +2022-10-27T05:52:51.0026577Z Shutting down Economy subsystem... +2022-10-27T05:52:51.0026908Z Shutting down Spatial Grid subsystem... +2022-10-27T05:52:51.0030451Z Shutting down Networks subsystem... +2022-10-27T05:52:51.0030787Z Shutting down Time Tracking subsystem... +2022-10-27T05:52:51.0031114Z Shutting down Research subsystem... +2022-10-27T05:52:51.0031432Z Shutting down Early Assets subsystem... +2022-10-27T05:52:51.0031759Z Shutting down Mapping subsystem... +2022-10-27T05:52:51.0032092Z Shutting down Trading Card Game subsystem... +2022-10-27T05:52:51.0032426Z Shutting down Ticker subsystem... +2022-10-27T05:52:51.0039410Z Unable to locate admins backup file. +2022-10-27T05:52:51.0051941Z Shutting down AI Controller Ticker subsystem... +2022-10-27T05:52:51.0052530Z Shutting down AI Behavior Ticker subsystem... +2022-10-27T05:52:51.0052855Z Shutting down AI movement subsystem... +2022-10-27T05:52:51.0053132Z Shutting down Jobs subsystem... +2022-10-27T05:52:51.0053429Z Shutting down IDs and Access subsystem... +2022-10-27T05:52:51.0053728Z Shutting down Events subsystem... +2022-10-27T05:52:51.0054019Z Shutting down Reagents subsystem... +2022-10-27T05:52:51.0054311Z Shutting down Quirks subsystem... +2022-10-27T05:52:51.0054584Z Shutting down Station subsystem... +2022-10-27T05:52:51.0054886Z Shutting down Achievements subsystem... +2022-10-27T05:52:51.0057375Z Shutting down Discord subsystem... +2022-10-27T05:52:51.0057678Z Shutting down Security Level subsystem... +2022-10-27T05:52:51.0058123Z Shutting down Vis contents overlays subsystem... +2022-10-27T05:52:51.0058446Z Shutting down Greyscale subsystem... +2022-10-27T05:52:51.0059042Z Shutting down Instruments subsystem... +2022-10-27T05:52:51.0059340Z Shutting down Sounds subsystem... +2022-10-27T05:52:51.0059631Z Shutting down Input subsystem... +2022-10-27T05:52:51.0060822Z Shutting down Server Tasks subsystem... +2022-10-27T05:52:51.0064456Z Shutting down Blackbox subsystem... +2022-10-27T05:52:51.0064838Z Shutting down Database subsystem... +2022-10-27T05:52:51.0065213Z Shutting down Garbage subsystem... +2022-10-27T05:52:54.6306978Z Shutting down Title Screen subsystem... +2022-10-27T05:52:54.6307928Z Shutting down Profiler subsystem... +2022-10-27T05:52:54.6308337Z Shutdown complete +2022-10-27T05:52:54.6308698Z Test run failed! +2022-10-27T05:52:54.6309027Z Unit Tests failed! +2022-10-27T05:52:58.2975208Z cat: ci_test/data/logs/ci/clean_run.lk: No such file or directory +2022-10-27T05:52:58.2988425Z ##[error]Process completed with exit code 1. +2022-10-27T05:52:58.3038084Z ##[group]Run actions/upload-artifact@v3 +2022-10-27T05:52:58.3038386Z with: +2022-10-27T05:52:58.3038632Z name: test_artifacts_metastation +2022-10-27T05:52:58.3038928Z path: data/screenshots_new/ +2022-10-27T05:52:58.3039208Z retention-days: 1 +2022-10-27T05:52:58.3039483Z if-no-files-found: warn +2022-10-27T05:52:58.3039747Z ##[endgroup] +2022-10-27T05:52:58.4273001Z With the provided path, there will be 85 files uploaded +2022-10-27T05:52:58.4279080Z Starting artifact upload +2022-10-27T05:52:58.4280271Z For more detailed logs during the artifact upload process, enable step-debugging: https://docs.github.com/actions/monitoring-and-troubleshooting-workflows/enabling-debug-logging#enabling-step-debug-logging +2022-10-27T05:52:58.4280911Z Artifact name is valid! +2022-10-27T05:52:58.4956400Z Container for artifact "test_artifacts_metastation" successfully created. Starting upload of file(s) +2022-10-27T05:53:02.6649338Z Total size of all the files uploaded is 138917 bytes +2022-10-27T05:53:02.6650349Z File upload process has finished. Finalizing the artifact upload +2022-10-27T05:53:02.6917894Z Artifact has been finalized. All files have been successfully uploaded! +2022-10-27T05:53:02.6918592Z +2022-10-27T05:53:02.6919221Z The raw size of all the files that were specified for upload is 139272 bytes +2022-10-27T05:53:02.6920199Z The size of all the files that were uploaded is 138917 bytes. This takes into account any gzip compression used to reduce the upload size, time and storage +2022-10-27T05:53:02.6920771Z +2022-10-27T05:53:02.6922015Z Note: The size of downloaded zips can differ significantly from the reported size. For more information see: https://github.com/actions/upload-artifact#zipped-artifact-downloads +2022-10-27T05:53:02.6922715Z +2022-10-27T05:53:02.6923052Z Artifact test_artifacts_metastation has been successfully uploaded! +2022-10-27T05:53:02.7064563Z Post job cleanup. +2022-10-27T05:53:02.8553446Z [command]/usr/bin/git version +2022-10-27T05:53:02.8609457Z git version 2.38.1 +2022-10-27T05:53:02.8663423Z Temporarily overriding HOME='/home/runner/work/_temp/7f4c4ca9-c205-4fcf-92a4-cc2e0f6184cd' before making global git config changes +2022-10-27T05:53:02.8664612Z Adding repository directory to the temporary git global config as a safe directory +2022-10-27T05:53:02.8670010Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/tgstation/tgstation +2022-10-27T05:53:02.8717327Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2022-10-27T05:53:02.8760496Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || : +2022-10-27T05:53:02.9064609Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2022-10-27T05:53:02.9096473Z http.https://github.com/.extraheader +2022-10-27T05:53:02.9110240Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader +2022-10-27T05:53:02.9151201Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || : +2022-10-27T05:53:02.9632628Z Print service container logs: bdaac24feb7948af9ae1cfcb2f1e5f3f_mysqllatest_e0031a +2022-10-27T05:53:02.9639053Z ##[command]/usr/bin/docker logs --details b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc +2022-10-27T05:53:02.9874689Z 2022-10-27T05:35:47.663982Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead. +2022-10-27T05:53:02.9875440Z 2022-10-27T05:35:47.664088Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.31) initializing of server in progress as process 80 +2022-10-27T05:53:02.9875958Z 2022-10-27T05:35:47.671476Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. +2022-10-27T05:53:02.9876437Z 2022-10-27T05:35:48.066575Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. +2022-10-27T05:53:02.9877103Z 2022-10-27T05:35:49.266023Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option. +2022-10-27T05:53:02.9877838Z 2022-10-27T05:35:52.334841Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead. +2022-10-27T05:53:02.9878473Z 2022-10-27T05:35:52.337029Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.31) starting as process 129 +2022-10-27T05:53:02.9878953Z 2022-10-27T05:35:52.352969Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. +2022-10-27T05:53:02.9879421Z 2022-10-27 05:35:47+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.31-1.el8 started. +2022-10-27T05:53:02.9879903Z 2022-10-27T05:35:52.530865Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. +2022-10-27T05:53:02.9880369Z 2022-10-27T05:35:52.753777Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. +2022-10-27T05:53:02.9880921Z 2022-10-27T05:35:52.753818Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel. +2022-10-27T05:53:02.9881648Z 2022-10-27T05:35:52.755449Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory. +2022-10-27T05:53:02.9882321Z 2022-10-27T05:35:52.774412Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: /var/run/mysqld/mysqlx.sock +2022-10-27T05:53:02.9882951Z 2022-10-27T05:35:52.775158Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.31' socket: '/var/run/mysqld/mysqld.sock' port: 0 MySQL Community Server - GPL. +2022-10-27T05:53:02.9883542Z Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it. +2022-10-27T05:53:02.9883992Z 2022-10-27 05:35:47+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql' +2022-10-27T05:53:02.9884444Z 2022-10-27 05:35:47+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.31-1.el8 started. +2022-10-27T05:53:02.9884874Z 2022-10-27 05:35:47+00:00 [Note] [Entrypoint]: Initializing database files +2022-10-27T05:53:02.9885281Z 2022-10-27 05:35:52+00:00 [Note] [Entrypoint]: Database files initialized +2022-10-27T05:53:02.9885682Z 2022-10-27 05:35:52+00:00 [Note] [Entrypoint]: Starting temporary server +2022-10-27T05:53:02.9886079Z 2022-10-27 05:35:52+00:00 [Note] [Entrypoint]: Temporary server started. +2022-10-27T05:53:02.9886471Z '/var/lib/mysql/mysql.sock' -> '/var/run/mysqld/mysqld.sock' +2022-10-27T05:53:02.9888624Z Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it. +2022-10-27T05:53:02.9889273Z +2022-10-27T05:53:02.9889568Z 2022-10-27 05:35:54+00:00 [Note] [Entrypoint]: Stopping temporary server +2022-10-27T05:53:02.9889969Z 2022-10-27 05:35:57+00:00 [Note] [Entrypoint]: Temporary server stopped +2022-10-27T05:53:02.9890280Z +2022-10-27T05:53:02.9890742Z 2022-10-27 05:35:57+00:00 [Note] [Entrypoint]: MySQL init process done. Ready for start up. +2022-10-27T05:53:02.9891394Z Warning: Unable to load '/usr/share/zoneinfo/tzdata.zi' as time zone. Skipping it. +2022-10-27T05:53:02.9891960Z Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it. +2022-10-27T05:53:02.9892520Z Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it. +2022-10-27T05:53:02.9893146Z 2022-10-27T05:35:54.998452Z 10 [System] [MY-013172] [Server] Received SHUTDOWN from user root. Shutting down mysqld (Version: 8.0.31). +2022-10-27T05:53:02.9893808Z 2022-10-27T05:35:56.253546Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.31) MySQL Community Server - GPL. +2022-10-27T05:53:02.9898747Z 2022-10-27T05:35:57.259394Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead. +2022-10-27T05:53:02.9899246Z +2022-10-27T05:53:02.9899947Z 2022-10-27T05:35:57.260761Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.31) starting as process 1 +2022-10-27T05:53:02.9900440Z 2022-10-27T05:35:57.279827Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. +2022-10-27T05:53:02.9900902Z 2022-10-27T05:35:57.478844Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. +2022-10-27T05:53:02.9901365Z 2022-10-27T05:35:57.668028Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. +2022-10-27T05:53:02.9901912Z 2022-10-27T05:35:57.668071Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel. +2022-10-27T05:53:02.9902638Z 2022-10-27T05:35:57.669759Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory. +2022-10-27T05:53:02.9903367Z 2022-10-27T05:35:57.689543Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock +2022-10-27T05:53:02.9905472Z 2022-10-27T05:35:57.690193Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.31' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL. +2022-10-27T05:53:02.9926340Z Stop and remove container: bdaac24feb7948af9ae1cfcb2f1e5f3f_mysqllatest_e0031a +2022-10-27T05:53:02.9933347Z ##[command]/usr/bin/docker rm --force b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc +2022-10-27T05:53:03.2811799Z b9656fff5d6a67eae31451853c0bb709d922d192e7aabe77af579b15e2acedbc +2022-10-27T05:53:03.2840549Z Remove container network: github_network_552f961a7b154fc6bdcc0db4d38d15af +2022-10-27T05:53:03.2847326Z ##[command]/usr/bin/docker network rm github_network_552f961a7b154fc6bdcc0db4d38d15af +2022-10-27T05:53:03.3874880Z github_network_552f961a7b154fc6bdcc0db4d38d15af +2022-10-27T05:53:03.4050424Z Cleaning up orphan processes diff --git a/tools/pull_request_hooks/flakyTestPayloads/invalid_timer.txt b/tools/pull_request_hooks/flakyTestPayloads/invalid_timer.txt new file mode 100644 index 000000000000..eea9b3774cac --- /dev/null +++ b/tools/pull_request_hooks/flakyTestPayloads/invalid_timer.txt @@ -0,0 +1,2389 @@ +2023-11-12T08:57:50.1971985Z Requested labels: ubuntu-latest +2023-11-12T08:57:50.1972288Z Job defined at: tgstation/tgstation/.github/workflows/run_integration_tests.yml@refs/pull/79384/merge +2023-11-12T08:57:50.1972523Z Reusable workflow chain: +2023-11-12T08:57:50.1972632Z tgstation/tgstation/.github/workflows/ci_suite.yml@refs/pull/79384/merge (0f52a54577af8e336ee4407c83bc6d3bfedd1d11) +2023-11-12T08:57:50.1972727Z -> tgstation/tgstation/.github/workflows/run_integration_tests.yml@refs/pull/79384/merge (0f52a54577af8e336ee4407c83bc6d3bfedd1d11) +2023-11-12T08:57:50.1972819Z Waiting for a runner to pick up this job... +2023-11-12T08:59:41.2590058Z Job is waiting for a hosted runner to come online. +2023-11-12T08:59:44.1017042Z Job is about to start running on the hosted runner: GitHub Actions 11 (hosted) +2023-11-12T08:59:46.1455792Z Current runner version: '2.311.0' +2023-11-12T08:59:46.1479790Z ##[group]Operating System +2023-11-12T08:59:46.1480441Z Ubuntu +2023-11-12T08:59:46.1480899Z 22.04.3 +2023-11-12T08:59:46.1481734Z LTS +2023-11-12T08:59:46.1482077Z ##[endgroup] +2023-11-12T08:59:46.1482560Z ##[group]Runner Image +2023-11-12T08:59:46.1482961Z Image: ubuntu-22.04 +2023-11-12T08:59:46.1483353Z Version: 20231030.2.0 +2023-11-12T08:59:46.1484421Z Included Software: https://github.com/actions/runner-images/blob/ubuntu22/20231030.2/images/linux/Ubuntu2204-Readme.md +2023-11-12T08:59:46.1485799Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu22%2F20231030.2 +2023-11-12T08:59:46.1486650Z ##[endgroup] +2023-11-12T08:59:46.1487161Z ##[group]Runner Image Provisioner +2023-11-12T08:59:46.1487606Z 2.0.312.1 +2023-11-12T08:59:46.1487945Z ##[endgroup] +2023-11-12T08:59:46.1490099Z ##[group]GITHUB_TOKEN Permissions +2023-11-12T08:59:46.1491698Z Actions: read +2023-11-12T08:59:46.1492248Z Checks: read +2023-11-12T08:59:46.1492761Z Contents: read +2023-11-12T08:59:46.1493311Z Deployments: read +2023-11-12T08:59:46.1493676Z Discussions: read +2023-11-12T08:59:46.1494123Z Issues: read +2023-11-12T08:59:46.1494582Z Metadata: read +2023-11-12T08:59:46.1494935Z Packages: read +2023-11-12T08:59:46.1495330Z Pages: read +2023-11-12T08:59:46.1495763Z PullRequests: read +2023-11-12T08:59:46.1496142Z RepositoryProjects: read +2023-11-12T08:59:46.1496603Z SecurityEvents: read +2023-11-12T08:59:46.1497060Z Statuses: read +2023-11-12T08:59:46.1497394Z ##[endgroup] +2023-11-12T08:59:46.1500314Z Secret source: None +2023-11-12T08:59:46.1501009Z Prepare workflow directory +2023-11-12T08:59:46.2366322Z Prepare all required actions +2023-11-12T08:59:46.2521312Z Getting action download info +2023-11-12T08:59:46.4989409Z Download action repository 'actions/checkout@v3' (SHA:f43a0e5ff2bd294095638e18286ca9a3d1956744) +2023-11-12T08:59:46.6372596Z Download action repository 'actions/cache@v3' (SHA:704facf57e6136b1bc63b828d79edcd491f0ee84) +2023-11-12T08:59:46.7365405Z Download action repository 'actions/upload-artifact@v3' (SHA:a8a3f3ad30e3422c9c7b888a15615d19a852ae32) +2023-11-12T08:59:46.7793243Z Download action repository 'tgstation/byond-client-compatibility-check@v3' (SHA:d9fac1c9713569fa6681906325ddce115bb53365) +2023-11-12T08:59:47.0659791Z Uses: tgstation/tgstation/.github/workflows/run_integration_tests.yml@refs/pull/79384/merge (0f52a54577af8e336ee4407c83bc6d3bfedd1d11) +2023-11-12T08:59:47.0662504Z ##[group] Inputs +2023-11-12T08:59:47.0663016Z map: tramstation +2023-11-12T08:59:47.0663530Z major: +2023-11-12T08:59:47.0663853Z minor: +2023-11-12T08:59:47.0664217Z max_required_byond_client: 514 +2023-11-12T08:59:47.0664786Z ##[endgroup] +2023-11-12T08:59:47.0665727Z Complete job name: Integration Tests (tramstation) / run_integration_tests +2023-11-12T08:59:47.1316890Z ##[group]Checking docker version +2023-11-12T08:59:47.1331488Z ##[command]/usr/bin/docker version --format '{{.Server.APIVersion}}' +2023-11-12T08:59:47.2035568Z '1.43' +2023-11-12T08:59:47.2048856Z Docker daemon API version: '1.43' +2023-11-12T08:59:47.2049704Z ##[command]/usr/bin/docker version --format '{{.Client.APIVersion}}' +2023-11-12T08:59:47.2209793Z '1.43' +2023-11-12T08:59:47.2229627Z Docker client API version: '1.43' +2023-11-12T08:59:47.2235325Z ##[endgroup] +2023-11-12T08:59:47.2239282Z ##[group]Clean up resources from previous jobs +2023-11-12T08:59:47.2245596Z ##[command]/usr/bin/docker ps --all --quiet --no-trunc --filter "label=bae3f2" +2023-11-12T08:59:47.2382764Z ##[command]/usr/bin/docker network prune --force --filter "label=bae3f2" +2023-11-12T08:59:47.2513406Z ##[endgroup] +2023-11-12T08:59:47.2513906Z ##[group]Create local container network +2023-11-12T08:59:47.2524774Z ##[command]/usr/bin/docker network create --label bae3f2 github_network_bc2270e2d9644957ba98982ec5cf35f2 +2023-11-12T08:59:47.3421425Z 7e144ec3bd040fce7400908b83369d64424efaa98e355fff9ec0d703a41602b1 +2023-11-12T08:59:47.3441937Z ##[endgroup] +2023-11-12T08:59:47.3517647Z ##[group]Starting mysql service container +2023-11-12T08:59:47.3536963Z ##[command]/usr/bin/docker pull mysql:latest +2023-11-12T08:59:47.5471538Z latest: Pulling from library/mysql +2023-11-12T08:59:47.5925068Z 8e0176adc18c: Pulling fs layer +2023-11-12T08:59:47.5926146Z 2d2c52718f65: Pulling fs layer +2023-11-12T08:59:47.5926867Z d88d03ce139b: Pulling fs layer +2023-11-12T08:59:47.5927652Z 4a7d7f11aa1e: Pulling fs layer +2023-11-12T08:59:47.5928644Z ce5949193e4c: Pulling fs layer +2023-11-12T08:59:47.5929143Z f7f024dfb329: Pulling fs layer +2023-11-12T08:59:47.5929598Z 5fc3c840facc: Pulling fs layer +2023-11-12T08:59:47.5930195Z 509068e49488: Pulling fs layer +2023-11-12T08:59:47.5930586Z cbc847bab598: Pulling fs layer +2023-11-12T08:59:47.5930994Z 942bef62a146: Pulling fs layer +2023-11-12T08:59:47.5931450Z f7f024dfb329: Waiting +2023-11-12T08:59:47.5931833Z 5fc3c840facc: Waiting +2023-11-12T08:59:47.5932180Z 509068e49488: Waiting +2023-11-12T08:59:47.5932601Z cbc847bab598: Waiting +2023-11-12T08:59:47.5932952Z 942bef62a146: Waiting +2023-11-12T08:59:47.5933295Z 4a7d7f11aa1e: Waiting +2023-11-12T08:59:47.5933717Z ce5949193e4c: Waiting +2023-11-12T08:59:47.6370843Z 2d2c52718f65: Verifying Checksum +2023-11-12T08:59:47.6371886Z 2d2c52718f65: Download complete +2023-11-12T08:59:47.6628390Z d88d03ce139b: Verifying Checksum +2023-11-12T08:59:47.6630340Z d88d03ce139b: Download complete +2023-11-12T08:59:47.7021669Z ce5949193e4c: Verifying Checksum +2023-11-12T08:59:47.7022614Z ce5949193e4c: Download complete +2023-11-12T08:59:47.7184829Z 4a7d7f11aa1e: Verifying Checksum +2023-11-12T08:59:47.7185700Z 4a7d7f11aa1e: Download complete +2023-11-12T08:59:47.7547210Z f7f024dfb329: Download complete +2023-11-12T08:59:47.8055625Z 509068e49488: Verifying Checksum +2023-11-12T08:59:47.8057291Z 509068e49488: Download complete +2023-11-12T08:59:48.0054531Z 8e0176adc18c: Verifying Checksum +2023-11-12T08:59:48.0055844Z 8e0176adc18c: Download complete +2023-11-12T08:59:48.0721310Z 942bef62a146: Verifying Checksum +2023-11-12T08:59:48.0723241Z 942bef62a146: Download complete +2023-11-12T08:59:48.2055324Z 5fc3c840facc: Verifying Checksum +2023-11-12T08:59:48.2056029Z 5fc3c840facc: Download complete +2023-11-12T08:59:48.2822740Z cbc847bab598: Verifying Checksum +2023-11-12T08:59:48.2824083Z cbc847bab598: Download complete +2023-11-12T08:59:49.3079176Z 8e0176adc18c: Pull complete +2023-11-12T08:59:49.6617199Z 2d2c52718f65: Pull complete +2023-11-12T08:59:49.6872468Z d88d03ce139b: Pull complete +2023-11-12T08:59:49.8872416Z 4a7d7f11aa1e: Pull complete +2023-11-12T08:59:49.9014484Z ce5949193e4c: Pull complete +2023-11-12T08:59:49.9174666Z f7f024dfb329: Pull complete +2023-11-12T08:59:51.3130074Z 5fc3c840facc: Pull complete +2023-11-12T08:59:51.3233267Z 509068e49488: Pull complete +2023-11-12T08:59:56.1487617Z cbc847bab598: Pull complete +2023-11-12T08:59:56.6779169Z 942bef62a146: Pull complete +2023-11-12T08:59:56.6823169Z Digest: sha256:1773f3c7aa9522f0014d0ad2bbdaf597ea3b1643c64c8ccc2123c64afd8b82b1 +2023-11-12T08:59:56.6835281Z Status: Downloaded newer image for mysql:latest +2023-11-12T08:59:56.6843575Z docker.io/library/mysql:latest +2023-11-12T08:59:56.6952276Z ##[command]/usr/bin/docker create --name c43e2a4f7a0044eda3c3640d7583be1f_mysqllatest_210664 --label bae3f2 --network github_network_bc2270e2d9644957ba98982ec5cf35f2 --network-alias mysql -p 3306 --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 -e "MYSQL_ROOT_PASSWORD=root" -e GITHUB_ACTIONS=true -e CI=true mysql:latest +2023-11-12T08:59:56.7205373Z 37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded +2023-11-12T08:59:56.7226574Z ##[command]/usr/bin/docker start 37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded +2023-11-12T08:59:57.0122389Z 37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded +2023-11-12T08:59:57.0147762Z ##[command]/usr/bin/docker ps --all --filter id=37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded --filter status=running --no-trunc --format "{{.ID}} {{.Status}}" +2023-11-12T08:59:57.0270403Z 37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded Up Less than a second (health: starting) +2023-11-12T08:59:57.0292510Z ##[command]/usr/bin/docker port 37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded +2023-11-12T08:59:57.0413612Z 3306/tcp -> 0.0.0.0:32768 +2023-11-12T08:59:57.0414454Z 3306/tcp -> [::]:32768 +2023-11-12T08:59:57.0511341Z ##[endgroup] +2023-11-12T08:59:57.0545971Z ##[group]Waiting for all services to be ready +2023-11-12T08:59:57.0594766Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" 37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded +2023-11-12T08:59:57.0736995Z starting +2023-11-12T08:59:57.0767183Z mysql service is starting, waiting 2 seconds before checking again. +2023-11-12T08:59:59.0767458Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" 37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded +2023-11-12T08:59:59.0896661Z starting +2023-11-12T08:59:59.0908862Z mysql service is starting, waiting 4 seconds before checking again. +2023-11-12T09:00:03.1488036Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" 37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded +2023-11-12T09:00:03.1606151Z starting +2023-11-12T09:00:03.1617891Z mysql service is starting, waiting 8 seconds before checking again. +2023-11-12T09:00:11.5749953Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" 37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded +2023-11-12T09:00:11.5876640Z healthy +2023-11-12T09:00:11.5893980Z mysql service is healthy. +2023-11-12T09:00:11.5894520Z ##[endgroup] +2023-11-12T09:00:11.6253438Z ##[group]Run actions/checkout@v3 +2023-11-12T09:00:11.6253862Z with: +2023-11-12T09:00:11.6254192Z repository: tgstation/tgstation +2023-11-12T09:00:11.6254857Z token: *** +2023-11-12T09:00:11.6255173Z ssh-strict: true +2023-11-12T09:00:11.6255558Z persist-credentials: true +2023-11-12T09:00:11.6256022Z clean: true +2023-11-12T09:00:11.6256343Z sparse-checkout-cone-mode: true +2023-11-12T09:00:11.6256740Z fetch-depth: 1 +2023-11-12T09:00:11.6257139Z fetch-tags: false +2023-11-12T09:00:11.6257424Z lfs: false +2023-11-12T09:00:11.6257739Z submodules: false +2023-11-12T09:00:11.6258160Z set-safe-directory: true +2023-11-12T09:00:11.6258498Z ##[endgroup] +2023-11-12T09:00:11.7905131Z Syncing repository: tgstation/tgstation +2023-11-12T09:00:11.7906924Z ##[group]Getting Git version info +2023-11-12T09:00:11.7907608Z Working directory is '/home/runner/work/tgstation/tgstation' +2023-11-12T09:00:11.7908545Z [command]/usr/bin/git version +2023-11-12T09:00:11.7926430Z git version 2.42.0 +2023-11-12T09:00:11.7950009Z ##[endgroup] +2023-11-12T09:00:11.7969428Z Temporarily overriding HOME='/home/runner/work/_temp/36501371-137a-461b-978e-be8cc4242865' before making global git config changes +2023-11-12T09:00:11.7971339Z Adding repository directory to the temporary git global config as a safe directory +2023-11-12T09:00:11.7973813Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/tgstation/tgstation +2023-11-12T09:00:11.8018133Z Deleting the contents of '/home/runner/work/tgstation/tgstation' +2023-11-12T09:00:11.8021715Z ##[group]Initializing the repository +2023-11-12T09:00:11.8024938Z [command]/usr/bin/git init /home/runner/work/tgstation/tgstation +2023-11-12T09:00:11.8167504Z hint: Using 'master' as the name for the initial branch. This default branch name +2023-11-12T09:00:11.8168867Z hint: is subject to change. To configure the initial branch name to use in all +2023-11-12T09:00:11.8170077Z hint: of your new repositories, which will suppress this warning, call: +2023-11-12T09:00:11.8170644Z hint: +2023-11-12T09:00:11.8171097Z hint: git config --global init.defaultBranch +2023-11-12T09:00:11.8171661Z hint: +2023-11-12T09:00:11.8172234Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2023-11-12T09:00:11.8173070Z hint: 'development'. The just-created branch can be renamed via this command: +2023-11-12T09:00:11.8173978Z hint: +2023-11-12T09:00:11.8174325Z hint: git branch -m +2023-11-12T09:00:11.8177381Z Initialized empty Git repository in /home/runner/work/tgstation/tgstation/.git/ +2023-11-12T09:00:11.8185891Z [command]/usr/bin/git remote add origin https://github.com/tgstation/tgstation +2023-11-12T09:00:11.8237650Z ##[endgroup] +2023-11-12T09:00:11.8238368Z ##[group]Disabling automatic garbage collection +2023-11-12T09:00:11.8241714Z [command]/usr/bin/git config --local gc.auto 0 +2023-11-12T09:00:11.8277184Z ##[endgroup] +2023-11-12T09:00:11.8277752Z ##[group]Setting up auth +2023-11-12T09:00:11.8283624Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2023-11-12T09:00:11.8319856Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2023-11-12T09:00:11.8657173Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2023-11-12T09:00:11.8696672Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2023-11-12T09:00:11.8934506Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic *** +2023-11-12T09:00:11.8975797Z ##[endgroup] +2023-11-12T09:00:11.8976409Z ##[group]Fetching the repository +2023-11-12T09:00:11.8984535Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin +0f52a54577af8e336ee4407c83bc6d3bfedd1d11:refs/remotes/pull/79384/merge +2023-11-12T09:00:12.3422502Z remote: Enumerating objects: 14728, done. +2023-11-12T09:00:12.3435399Z remote: Counting objects: 0% (1/14728) +2023-11-12T09:00:12.3437322Z remote: Counting objects: 1% (148/14728) +2023-11-12T09:00:12.3438041Z remote: Counting objects: 2% (295/14728) +2023-11-12T09:00:12.3438941Z remote: Counting objects: 3% (442/14728) +2023-11-12T09:00:12.3440148Z remote: Counting objects: 4% (590/14728) +2023-11-12T09:00:12.3442925Z remote: Counting objects: 5% (737/14728) +2023-11-12T09:00:12.3445483Z remote: Counting objects: 6% (884/14728) +2023-11-12T09:00:12.3447273Z remote: Counting objects: 7% (1031/14728) +2023-11-12T09:00:12.3460133Z remote: Counting objects: 8% (1179/14728) +2023-11-12T09:00:12.3461187Z remote: Counting objects: 9% (1326/14728) +2023-11-12T09:00:12.3461949Z remote: Counting objects: 10% (1473/14728) +2023-11-12T09:00:12.3462472Z remote: Counting objects: 11% (1621/14728) +2023-11-12T09:00:12.3463038Z remote: Counting objects: 12% (1768/14728) +2023-11-12T09:00:12.3463556Z remote: Counting objects: 13% (1915/14728) +2023-11-12T09:00:12.3467828Z remote: Counting objects: 14% (2062/14728) +2023-11-12T09:00:12.3483848Z remote: Counting objects: 15% (2210/14728) +2023-11-12T09:00:12.3489421Z remote: Counting objects: 16% (2357/14728) +2023-11-12T09:00:12.3489959Z remote: Counting objects: 17% (2504/14728) +2023-11-12T09:00:12.3490601Z remote: Counting objects: 18% (2652/14728) +2023-11-12T09:00:12.3491065Z remote: Counting objects: 19% (2799/14728) +2023-11-12T09:00:12.3491549Z remote: Counting objects: 20% (2946/14728) +2023-11-12T09:00:12.3492150Z remote: Counting objects: 21% (3093/14728) +2023-11-12T09:00:12.3492599Z remote: Counting objects: 22% (3241/14728) +2023-11-12T09:00:12.3497394Z remote: Counting objects: 23% (3388/14728) +2023-11-12T09:00:12.3498533Z remote: Counting objects: 24% (3535/14728) +2023-11-12T09:00:12.3499302Z remote: Counting objects: 25% (3682/14728) +2023-11-12T09:00:12.3500231Z remote: Counting objects: 26% (3830/14728) +2023-11-12T09:00:12.3500908Z remote: Counting objects: 27% (3977/14728) +2023-11-12T09:00:12.3501885Z remote: Counting objects: 28% (4124/14728) +2023-11-12T09:00:12.3502758Z remote: Counting objects: 29% (4272/14728) +2023-11-12T09:00:12.3504000Z remote: Counting objects: 30% (4419/14728) +2023-11-12T09:00:12.3508426Z remote: Counting objects: 31% (4566/14728) +2023-11-12T09:00:12.3510860Z remote: Counting objects: 32% (4713/14728) +2023-11-12T09:00:12.3513541Z remote: Counting objects: 33% (4861/14728) +2023-11-12T09:00:12.3517241Z remote: Counting objects: 34% (5008/14728) +2023-11-12T09:00:12.3518978Z remote: Counting objects: 35% (5155/14728) +2023-11-12T09:00:12.3522056Z remote: Counting objects: 36% (5303/14728) +2023-11-12T09:00:12.3522867Z remote: Counting objects: 37% (5450/14728) +2023-11-12T09:00:12.3524352Z remote: Counting objects: 38% (5597/14728) +2023-11-12T09:00:12.3525521Z remote: Counting objects: 39% (5744/14728) +2023-11-12T09:00:12.3526808Z remote: Counting objects: 40% (5892/14728) +2023-11-12T09:00:12.3528838Z remote: Counting objects: 41% (6039/14728) +2023-11-12T09:00:12.3529652Z remote: Counting objects: 42% (6186/14728) +2023-11-12T09:00:12.3531108Z remote: Counting objects: 43% (6334/14728) +2023-11-12T09:00:12.3531942Z remote: Counting objects: 44% (6481/14728) +2023-11-12T09:00:12.3535178Z remote: Counting objects: 45% (6628/14728) +2023-11-12T09:00:12.3536185Z remote: Counting objects: 46% (6775/14728) +2023-11-12T09:00:12.3537509Z remote: Counting objects: 47% (6923/14728) +2023-11-12T09:00:12.3538838Z remote: Counting objects: 48% (7070/14728) +2023-11-12T09:00:12.3539490Z remote: Counting objects: 49% (7217/14728) +2023-11-12T09:00:12.3540416Z remote: Counting objects: 50% (7364/14728) +2023-11-12T09:00:12.3542997Z remote: Counting objects: 51% (7512/14728) +2023-11-12T09:00:12.3546735Z remote: Counting objects: 52% (7659/14728) +2023-11-12T09:00:12.3547627Z remote: Counting objects: 53% (7806/14728) +2023-11-12T09:00:12.3549945Z remote: Counting objects: 54% (7954/14728) +2023-11-12T09:00:12.3551486Z remote: Counting objects: 55% (8101/14728) +2023-11-12T09:00:12.3554841Z remote: Counting objects: 56% (8248/14728) +2023-11-12T09:00:12.3558919Z remote: Counting objects: 57% (8395/14728) +2023-11-12T09:00:12.3559895Z remote: Counting objects: 58% (8543/14728) +2023-11-12T09:00:12.3561635Z remote: Counting objects: 59% (8690/14728) +2023-11-12T09:00:12.3562509Z remote: Counting objects: 60% (8837/14728) +2023-11-12T09:00:12.3565221Z remote: Counting objects: 61% (8985/14728) +2023-11-12T09:00:12.3566377Z remote: Counting objects: 62% (9132/14728) +2023-11-12T09:00:12.3567330Z remote: Counting objects: 63% (9279/14728) +2023-11-12T09:00:12.3568404Z remote: Counting objects: 64% (9426/14728) +2023-11-12T09:00:12.3569399Z remote: Counting objects: 65% (9574/14728) +2023-11-12T09:00:12.3570508Z remote: Counting objects: 66% (9721/14728) +2023-11-12T09:00:12.3573805Z remote: Counting objects: 67% (9868/14728) +2023-11-12T09:00:12.3574713Z remote: Counting objects: 68% (10016/14728) +2023-11-12T09:00:12.3575852Z remote: Counting objects: 69% (10163/14728) +2023-11-12T09:00:12.3576870Z remote: Counting objects: 70% (10310/14728) +2023-11-12T09:00:12.3577724Z remote: Counting objects: 71% (10457/14728) +2023-11-12T09:00:12.3578357Z remote: Counting objects: 72% (10605/14728) +2023-11-12T09:00:12.3578886Z remote: Counting objects: 73% (10752/14728) +2023-11-12T09:00:12.3579497Z remote: Counting objects: 74% (10899/14728) +2023-11-12T09:00:12.3580417Z remote: Counting objects: 75% (11046/14728) +2023-11-12T09:00:12.3581097Z remote: Counting objects: 76% (11194/14728) +2023-11-12T09:00:12.3581574Z remote: Counting objects: 77% (11341/14728) +2023-11-12T09:00:12.3582409Z remote: Counting objects: 78% (11488/14728) +2023-11-12T09:00:12.3582915Z remote: Counting objects: 79% (11636/14728) +2023-11-12T09:00:12.3583405Z remote: Counting objects: 80% (11783/14728) +2023-11-12T09:00:12.3583954Z remote: Counting objects: 81% (11930/14728) +2023-11-12T09:00:12.3586461Z remote: Counting objects: 82% (12077/14728) +2023-11-12T09:00:12.3587052Z remote: Counting objects: 83% (12225/14728) +2023-11-12T09:00:12.3587941Z remote: Counting objects: 84% (12372/14728) +2023-11-12T09:00:12.3588988Z remote: Counting objects: 85% (12519/14728) +2023-11-12T09:00:12.3591543Z remote: Counting objects: 86% (12667/14728) +2023-11-12T09:00:12.3594301Z remote: Counting objects: 87% (12814/14728) +2023-11-12T09:00:12.3597908Z remote: Counting objects: 88% (12961/14728) +2023-11-12T09:00:12.3601958Z remote: Counting objects: 89% (13108/14728) +2023-11-12T09:00:12.3605574Z remote: Counting objects: 90% (13256/14728) +2023-11-12T09:00:12.3610280Z remote: Counting objects: 91% (13403/14728) +2023-11-12T09:00:12.3612894Z remote: Counting objects: 92% (13550/14728) +2023-11-12T09:00:12.3615660Z remote: Counting objects: 93% (13698/14728) +2023-11-12T09:00:12.3619462Z remote: Counting objects: 94% (13845/14728) +2023-11-12T09:00:12.3623758Z remote: Counting objects: 95% (13992/14728) +2023-11-12T09:00:12.3628748Z remote: Counting objects: 96% (14139/14728) +2023-11-12T09:00:12.3636487Z remote: Counting objects: 97% (14287/14728) +2023-11-12T09:00:12.3641426Z remote: Counting objects: 98% (14434/14728) +2023-11-12T09:00:12.3646422Z remote: Counting objects: 99% (14581/14728) +2023-11-12T09:00:12.3649144Z remote: Counting objects: 100% (14728/14728) +2023-11-12T09:00:12.3649919Z remote: Counting objects: 100% (14728/14728), done. +2023-11-12T09:00:12.3825128Z remote: Compressing objects: 0% (1/13137) +2023-11-12T09:00:12.3961841Z remote: Compressing objects: 1% (132/13137) +2023-11-12T09:00:12.4112502Z remote: Compressing objects: 2% (263/13137) +2023-11-12T09:00:12.4227069Z remote: Compressing objects: 3% (395/13137) +2023-11-12T09:00:12.4228313Z remote: Compressing objects: 4% (526/13137) +2023-11-12T09:00:12.4228983Z remote: Compressing objects: 5% (657/13137) +2023-11-12T09:00:12.4229643Z remote: Compressing objects: 6% (789/13137) +2023-11-12T09:00:12.4271804Z remote: Compressing objects: 7% (920/13137) +2023-11-12T09:00:12.4360389Z remote: Compressing objects: 8% (1051/13137) +2023-11-12T09:00:12.4466461Z remote: Compressing objects: 9% (1183/13137) +2023-11-12T09:00:12.4646998Z remote: Compressing objects: 10% (1314/13137) +2023-11-12T09:00:12.5428669Z remote: Compressing objects: 11% (1446/13137) +2023-11-12T09:00:12.8296153Z remote: Compressing objects: 12% (1577/13137) +2023-11-12T09:00:12.9213149Z remote: Compressing objects: 13% (1708/13137) +2023-11-12T09:00:13.0041408Z remote: Compressing objects: 14% (1840/13137) +2023-11-12T09:00:13.1340856Z remote: Compressing objects: 15% (1971/13137) +2023-11-12T09:00:13.1645036Z remote: Compressing objects: 16% (2102/13137) +2023-11-12T09:00:13.1904768Z remote: Compressing objects: 17% (2234/13137) +2023-11-12T09:00:13.2018494Z remote: Compressing objects: 18% (2365/13137) +2023-11-12T09:00:13.2019779Z remote: Compressing objects: 19% (2497/13137) +2023-11-12T09:00:13.2134073Z remote: Compressing objects: 20% (2628/13137) +2023-11-12T09:00:13.2199911Z remote: Compressing objects: 21% (2759/13137) +2023-11-12T09:00:13.2260920Z remote: Compressing objects: 22% (2891/13137) +2023-11-12T09:00:13.2343043Z remote: Compressing objects: 23% (3022/13137) +2023-11-12T09:00:13.2821833Z remote: Compressing objects: 24% (3153/13137) +2023-11-12T09:00:13.3039708Z remote: Compressing objects: 25% (3285/13137) +2023-11-12T09:00:13.3255129Z remote: Compressing objects: 26% (3416/13137) +2023-11-12T09:00:13.3405305Z remote: Compressing objects: 27% (3547/13137) +2023-11-12T09:00:13.3571381Z remote: Compressing objects: 28% (3679/13137) +2023-11-12T09:00:13.3670018Z remote: Compressing objects: 29% (3810/13137) +2023-11-12T09:00:13.4040877Z remote: Compressing objects: 29% (3868/13137) +2023-11-12T09:00:13.4251871Z remote: Compressing objects: 30% (3942/13137) +2023-11-12T09:00:13.4457155Z remote: Compressing objects: 31% (4073/13137) +2023-11-12T09:00:13.4780533Z remote: Compressing objects: 32% (4204/13137) +2023-11-12T09:00:13.4983464Z remote: Compressing objects: 33% (4336/13137) +2023-11-12T09:00:13.5295246Z remote: Compressing objects: 34% (4467/13137) +2023-11-12T09:00:13.5719629Z remote: Compressing objects: 35% (4598/13137) +2023-11-12T09:00:13.6054442Z remote: Compressing objects: 36% (4730/13137) +2023-11-12T09:00:13.6350098Z remote: Compressing objects: 37% (4861/13137) +2023-11-12T09:00:13.6626461Z remote: Compressing objects: 38% (4993/13137) +2023-11-12T09:00:13.6916464Z remote: Compressing objects: 39% (5124/13137) +2023-11-12T09:00:13.7302124Z remote: Compressing objects: 40% (5255/13137) +2023-11-12T09:00:13.7576240Z remote: Compressing objects: 41% (5387/13137) +2023-11-12T09:00:13.7850663Z remote: Compressing objects: 42% (5518/13137) +2023-11-12T09:00:13.8125191Z remote: Compressing objects: 43% (5649/13137) +2023-11-12T09:00:13.8344430Z remote: Compressing objects: 44% (5781/13137) +2023-11-12T09:00:13.8648361Z remote: Compressing objects: 45% (5912/13137) +2023-11-12T09:00:13.8890504Z remote: Compressing objects: 46% (6044/13137) +2023-11-12T09:00:13.9134975Z remote: Compressing objects: 47% (6175/13137) +2023-11-12T09:00:13.9382739Z remote: Compressing objects: 48% (6306/13137) +2023-11-12T09:00:13.9574317Z remote: Compressing objects: 49% (6438/13137) +2023-11-12T09:00:13.9764171Z remote: Compressing objects: 50% (6569/13137) +2023-11-12T09:00:13.9965671Z remote: Compressing objects: 51% (6700/13137) +2023-11-12T09:00:14.0240257Z remote: Compressing objects: 52% (6832/13137) +2023-11-12T09:00:14.0468725Z remote: Compressing objects: 53% (6963/13137) +2023-11-12T09:00:14.0669881Z remote: Compressing objects: 54% (7094/13137) +2023-11-12T09:00:14.0895124Z remote: Compressing objects: 55% (7226/13137) +2023-11-12T09:00:14.1141069Z remote: Compressing objects: 56% (7357/13137) +2023-11-12T09:00:14.1354395Z remote: Compressing objects: 57% (7489/13137) +2023-11-12T09:00:14.1570266Z remote: Compressing objects: 58% (7620/13137) +2023-11-12T09:00:14.1754980Z remote: Compressing objects: 59% (7751/13137) +2023-11-12T09:00:14.2084676Z remote: Compressing objects: 60% (7883/13137) +2023-11-12T09:00:14.2310657Z remote: Compressing objects: 61% (8014/13137) +2023-11-12T09:00:14.2625166Z remote: Compressing objects: 62% (8145/13137) +2023-11-12T09:00:14.2909864Z remote: Compressing objects: 63% (8277/13137) +2023-11-12T09:00:14.3192565Z remote: Compressing objects: 64% (8408/13137) +2023-11-12T09:00:14.3424597Z remote: Compressing objects: 65% (8540/13137) +2023-11-12T09:00:14.3648230Z remote: Compressing objects: 66% (8671/13137) +2023-11-12T09:00:14.3654208Z remote: Compressing objects: 67% (8802/13137) +2023-11-12T09:00:14.3852572Z remote: Compressing objects: 67% (8803/13137) +2023-11-12T09:00:14.4083890Z remote: Compressing objects: 68% (8934/13137) +2023-11-12T09:00:14.4346236Z remote: Compressing objects: 69% (9065/13137) +2023-11-12T09:00:14.4412610Z remote: Compressing objects: 70% (9196/13137) +2023-11-12T09:00:14.4438826Z remote: Compressing objects: 71% (9328/13137) +2023-11-12T09:00:14.4557338Z remote: Compressing objects: 72% (9459/13137) +2023-11-12T09:00:14.4560053Z remote: Compressing objects: 73% (9591/13137) +2023-11-12T09:00:14.4561406Z remote: Compressing objects: 74% (9722/13137) +2023-11-12T09:00:14.4562102Z remote: Compressing objects: 75% (9853/13137) +2023-11-12T09:00:14.4598003Z remote: Compressing objects: 76% (9985/13137) +2023-11-12T09:00:14.4599196Z remote: Compressing objects: 77% (10116/13137) +2023-11-12T09:00:14.4600027Z remote: Compressing objects: 78% (10247/13137) +2023-11-12T09:00:14.4610318Z remote: Compressing objects: 79% (10379/13137) +2023-11-12T09:00:14.4610882Z remote: Compressing objects: 80% (10510/13137) +2023-11-12T09:00:14.4625739Z remote: Compressing objects: 81% (10641/13137) +2023-11-12T09:00:14.4627218Z remote: Compressing objects: 82% (10773/13137) +2023-11-12T09:00:14.4628087Z remote: Compressing objects: 83% (10904/13137) +2023-11-12T09:00:14.4628755Z remote: Compressing objects: 84% (11036/13137) +2023-11-12T09:00:14.4641964Z remote: Compressing objects: 85% (11167/13137) +2023-11-12T09:00:14.4643000Z remote: Compressing objects: 86% (11298/13137) +2023-11-12T09:00:14.4643588Z remote: Compressing objects: 87% (11430/13137) +2023-11-12T09:00:14.4644263Z remote: Compressing objects: 88% (11561/13137) +2023-11-12T09:00:14.4644780Z remote: Compressing objects: 89% (11692/13137) +2023-11-12T09:00:14.4667702Z remote: Compressing objects: 90% (11824/13137) +2023-11-12T09:00:14.4763174Z remote: Compressing objects: 91% (11955/13137) +2023-11-12T09:00:14.4790967Z remote: Compressing objects: 92% (12087/13137) +2023-11-12T09:00:14.4805225Z remote: Compressing objects: 93% (12218/13137) +2023-11-12T09:00:14.4826093Z remote: Compressing objects: 94% (12349/13137) +2023-11-12T09:00:14.4845748Z remote: Compressing objects: 95% (12481/13137) +2023-11-12T09:00:14.4852480Z remote: Compressing objects: 96% (12612/13137) +2023-11-12T09:00:14.4863608Z remote: Compressing objects: 97% (12743/13137) +2023-11-12T09:00:14.4890566Z remote: Compressing objects: 98% (12875/13137) +2023-11-12T09:00:14.4901499Z remote: Compressing objects: 99% (13006/13137) +2023-11-12T09:00:14.4905499Z remote: Compressing objects: 100% (13137/13137) +2023-11-12T09:00:14.4906263Z remote: Compressing objects: 100% (13137/13137), done. +2023-11-12T09:00:14.5298519Z Receiving objects: 0% (1/14728) +2023-11-12T09:00:14.7511556Z Receiving objects: 1% (148/14728) +2023-11-12T09:00:15.0383718Z Receiving objects: 2% (295/14728) +2023-11-12T09:00:15.0790920Z Receiving objects: 3% (442/14728), 2.91 MiB | 5.72 MiB/s +2023-11-12T09:00:15.1841924Z Receiving objects: 4% (590/14728), 2.91 MiB | 5.72 MiB/s +2023-11-12T09:00:15.1886539Z Receiving objects: 5% (737/14728), 2.91 MiB | 5.72 MiB/s +2023-11-12T09:00:15.1946135Z Receiving objects: 6% (884/14728), 2.91 MiB | 5.72 MiB/s +2023-11-12T09:00:15.2129478Z Receiving objects: 7% (1031/14728), 2.91 MiB | 5.72 MiB/s +2023-11-12T09:00:15.2298890Z Receiving objects: 8% (1179/14728), 2.91 MiB | 5.72 MiB/s +2023-11-12T09:00:15.2441190Z Receiving objects: 9% (1326/14728), 2.91 MiB | 5.72 MiB/s +2023-11-12T09:00:15.2535883Z Receiving objects: 10% (1473/14728), 2.91 MiB | 5.72 MiB/s +2023-11-12T09:00:15.2682741Z Receiving objects: 11% (1621/14728), 2.91 MiB | 5.72 MiB/s +2023-11-12T09:00:15.2854458Z Receiving objects: 12% (1768/14728), 2.91 MiB | 5.72 MiB/s +2023-11-12T09:00:15.2953047Z Receiving objects: 13% (1915/14728), 2.91 MiB | 5.72 MiB/s +2023-11-12T09:00:15.2998284Z Receiving objects: 14% (2062/14728), 2.91 MiB | 5.72 MiB/s +2023-11-12T09:00:15.3017511Z Receiving objects: 15% (2210/14728), 2.91 MiB | 5.72 MiB/s +2023-11-12T09:00:15.3161978Z Receiving objects: 16% (2357/14728), 2.91 MiB | 5.72 MiB/s +2023-11-12T09:00:15.3233106Z Receiving objects: 17% (2504/14728), 2.91 MiB | 5.72 MiB/s +2023-11-12T09:00:15.3483968Z Receiving objects: 18% (2652/14728), 2.91 MiB | 5.72 MiB/s +2023-11-12T09:00:15.3784019Z Receiving objects: 19% (2799/14728), 2.91 MiB | 5.72 MiB/s +2023-11-12T09:00:15.3954481Z Receiving objects: 20% (2946/14728), 2.91 MiB | 5.72 MiB/s +2023-11-12T09:00:15.4245221Z Receiving objects: 21% (3093/14728), 2.91 MiB | 5.72 MiB/s +2023-11-12T09:00:15.4470709Z Receiving objects: 22% (3241/14728), 2.91 MiB | 5.72 MiB/s +2023-11-12T09:00:15.4723098Z Receiving objects: 23% (3388/14728), 2.91 MiB | 5.72 MiB/s +2023-11-12T09:00:15.4937347Z Receiving objects: 24% (3535/14728), 2.91 MiB | 5.72 MiB/s +2023-11-12T09:00:15.4944940Z Receiving objects: 24% (3669/14728), 2.91 MiB | 5.72 MiB/s +2023-11-12T09:00:15.5175139Z Receiving objects: 25% (3682/14728), 2.91 MiB | 5.72 MiB/s +2023-11-12T09:00:15.5292638Z Receiving objects: 26% (3830/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.5497254Z Receiving objects: 27% (3977/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.5672343Z Receiving objects: 28% (4124/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.5843576Z Receiving objects: 29% (4272/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.5937090Z Receiving objects: 30% (4419/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.6094771Z Receiving objects: 31% (4566/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.6238194Z Receiving objects: 32% (4713/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.6342923Z Receiving objects: 33% (4861/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.6565056Z Receiving objects: 34% (5008/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.6729745Z Receiving objects: 35% (5155/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.6807225Z Receiving objects: 36% (5303/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.6932642Z Receiving objects: 37% (5450/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.7116778Z Receiving objects: 38% (5597/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.7226855Z Receiving objects: 39% (5744/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.7368698Z Receiving objects: 40% (5892/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.7722704Z Receiving objects: 41% (6039/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.8013149Z Receiving objects: 42% (6186/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.8245559Z Receiving objects: 43% (6334/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.8412984Z Receiving objects: 44% (6481/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.8809019Z Receiving objects: 45% (6628/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.9077444Z Receiving objects: 46% (6775/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.9198076Z Receiving objects: 47% (6923/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.9335440Z Receiving objects: 48% (7070/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.9409235Z Receiving objects: 49% (7217/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.9475966Z Receiving objects: 50% (7364/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.9632751Z Receiving objects: 51% (7512/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.9710761Z Receiving objects: 52% (7659/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:15.9997665Z Receiving objects: 53% (7806/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:16.1754062Z Receiving objects: 54% (7954/14728), 8.94 MiB | 8.86 MiB/s +2023-11-12T09:00:16.4937069Z Receiving objects: 55% (8101/14728), 16.55 MiB | 10.97 MiB/s +2023-11-12T09:00:16.4977595Z Receiving objects: 55% (8228/14728), 16.55 MiB | 10.97 MiB/s +2023-11-12T09:00:16.5335682Z Receiving objects: 56% (8248/14728), 16.55 MiB | 10.97 MiB/s +2023-11-12T09:00:16.5529510Z Receiving objects: 57% (8395/14728), 40.02 MiB | 19.93 MiB/s +2023-11-12T09:00:16.6298834Z Receiving objects: 58% (8543/14728), 40.02 MiB | 19.93 MiB/s +2023-11-12T09:00:16.6477417Z Receiving objects: 59% (8690/14728), 40.02 MiB | 19.93 MiB/s +2023-11-12T09:00:16.6877035Z Receiving objects: 60% (8837/14728), 40.02 MiB | 19.93 MiB/s +2023-11-12T09:00:16.7190945Z Receiving objects: 61% (8985/14728), 40.02 MiB | 19.93 MiB/s +2023-11-12T09:00:16.7421126Z Receiving objects: 62% (9132/14728), 40.02 MiB | 19.93 MiB/s +2023-11-12T09:00:16.7678021Z Receiving objects: 63% (9279/14728), 40.02 MiB | 19.93 MiB/s +2023-11-12T09:00:16.8523998Z Receiving objects: 64% (9426/14728), 40.02 MiB | 19.93 MiB/s +2023-11-12T09:00:17.1043001Z Receiving objects: 65% (9574/14728), 40.02 MiB | 19.93 MiB/s +2023-11-12T09:00:17.3854775Z Receiving objects: 66% (9721/14728), 71.27 MiB | 28.42 MiB/s +2023-11-12T09:00:17.4325550Z Receiving objects: 67% (9868/14728), 71.27 MiB | 28.42 MiB/s +2023-11-12T09:00:17.4843860Z Receiving objects: 68% (10016/14728), 71.27 MiB | 28.42 MiB/s +2023-11-12T09:00:17.4974216Z Receiving objects: 69% (10163/14728), 71.27 MiB | 28.42 MiB/s +2023-11-12T09:00:17.5355293Z Receiving objects: 69% (10174/14728), 71.27 MiB | 28.42 MiB/s +2023-11-12T09:00:17.6035052Z Receiving objects: 70% (10310/14728), 104.98 MiB | 34.90 MiB/s +2023-11-12T09:00:17.6662170Z Receiving objects: 71% (10457/14728), 104.98 MiB | 34.90 MiB/s +2023-11-12T09:00:17.7426342Z Receiving objects: 72% (10605/14728), 104.98 MiB | 34.90 MiB/s +2023-11-12T09:00:17.7732421Z Receiving objects: 73% (10752/14728), 104.98 MiB | 34.90 MiB/s +2023-11-12T09:00:17.7890371Z Receiving objects: 74% (10899/14728), 104.98 MiB | 34.90 MiB/s +2023-11-12T09:00:17.8003342Z Receiving objects: 75% (11046/14728), 104.98 MiB | 34.90 MiB/s +2023-11-12T09:00:17.8123812Z Receiving objects: 76% (11194/14728), 104.98 MiB | 34.90 MiB/s +2023-11-12T09:00:17.8868154Z Receiving objects: 77% (11341/14728), 104.98 MiB | 34.90 MiB/s +2023-11-12T09:00:17.9248750Z Receiving objects: 78% (11488/14728), 104.98 MiB | 34.90 MiB/s +2023-11-12T09:00:17.9430493Z Receiving objects: 79% (11636/14728), 104.98 MiB | 34.90 MiB/s +2023-11-12T09:00:17.9815619Z Receiving objects: 80% (11783/14728), 104.98 MiB | 34.90 MiB/s +2023-11-12T09:00:17.9897797Z Receiving objects: 81% (11930/14728), 104.98 MiB | 34.90 MiB/s +2023-11-12T09:00:18.0004021Z Receiving objects: 82% (12077/14728), 104.98 MiB | 34.90 MiB/s +2023-11-12T09:00:18.0065635Z Receiving objects: 83% (12225/14728), 104.98 MiB | 34.90 MiB/s +2023-11-12T09:00:18.0133099Z Receiving objects: 84% (12372/14728), 137.62 MiB | 39.23 MiB/s +2023-11-12T09:00:18.0212448Z Receiving objects: 85% (12519/14728), 137.62 MiB | 39.23 MiB/s +2023-11-12T09:00:18.0292270Z Receiving objects: 86% (12667/14728), 137.62 MiB | 39.23 MiB/s +2023-11-12T09:00:18.0477194Z Receiving objects: 87% (12814/14728), 137.62 MiB | 39.23 MiB/s +2023-11-12T09:00:18.1050651Z Receiving objects: 88% (12961/14728), 137.62 MiB | 39.23 MiB/s +2023-11-12T09:00:18.1401134Z Receiving objects: 89% (13108/14728), 137.62 MiB | 39.23 MiB/s +2023-11-12T09:00:18.1440829Z Receiving objects: 90% (13256/14728), 137.62 MiB | 39.23 MiB/s +2023-11-12T09:00:18.1503769Z Receiving objects: 91% (13403/14728), 137.62 MiB | 39.23 MiB/s +2023-11-12T09:00:18.1562677Z Receiving objects: 92% (13550/14728), 137.62 MiB | 39.23 MiB/s +2023-11-12T09:00:18.1618314Z Receiving objects: 93% (13698/14728), 137.62 MiB | 39.23 MiB/s +2023-11-12T09:00:18.1655496Z Receiving objects: 94% (13845/14728), 137.62 MiB | 39.23 MiB/s +2023-11-12T09:00:18.1708799Z Receiving objects: 95% (13992/14728), 137.62 MiB | 39.23 MiB/s +2023-11-12T09:00:18.1779590Z Receiving objects: 96% (14139/14728), 137.62 MiB | 39.23 MiB/s +2023-11-12T09:00:18.1850924Z Receiving objects: 97% (14287/14728), 137.62 MiB | 39.23 MiB/s +2023-11-12T09:00:18.1887710Z Receiving objects: 98% (14434/14728), 137.62 MiB | 39.23 MiB/s +2023-11-12T09:00:18.1982209Z Receiving objects: 99% (14581/14728), 137.62 MiB | 39.23 MiB/s +2023-11-12T09:00:18.1983900Z remote: Total 14728 (delta 1648), reused 9457 (delta 1437), pack-reused 0 +2023-11-12T09:00:18.1993200Z Receiving objects: 100% (14728/14728), 137.62 MiB | 39.23 MiB/s +2023-11-12T09:00:18.1994500Z Receiving objects: 100% (14728/14728), 147.84 MiB | 39.90 MiB/s, done. +2023-11-12T09:00:18.2019068Z Resolving deltas: 0% (0/1648) +2023-11-12T09:00:18.2023348Z Resolving deltas: 1% (17/1648) +2023-11-12T09:00:18.2032679Z Resolving deltas: 2% (33/1648) +2023-11-12T09:00:18.2057515Z Resolving deltas: 3% (50/1648) +2023-11-12T09:00:18.2067595Z Resolving deltas: 4% (66/1648) +2023-11-12T09:00:18.2311083Z Resolving deltas: 5% (83/1648) +2023-11-12T09:00:18.2318508Z Resolving deltas: 6% (99/1648) +2023-11-12T09:00:18.2326847Z Resolving deltas: 7% (116/1648) +2023-11-12T09:00:18.2335304Z Resolving deltas: 8% (132/1648) +2023-11-12T09:00:18.2348077Z Resolving deltas: 9% (149/1648) +2023-11-12T09:00:18.2360740Z Resolving deltas: 10% (165/1648) +2023-11-12T09:00:18.2369574Z Resolving deltas: 11% (182/1648) +2023-11-12T09:00:18.2383691Z Resolving deltas: 12% (198/1648) +2023-11-12T09:00:18.2394926Z Resolving deltas: 13% (215/1648) +2023-11-12T09:00:18.2398748Z Resolving deltas: 14% (231/1648) +2023-11-12T09:00:18.2404491Z Resolving deltas: 15% (248/1648) +2023-11-12T09:00:18.2406714Z Resolving deltas: 16% (264/1648) +2023-11-12T09:00:18.2407998Z Resolving deltas: 17% (281/1648) +2023-11-12T09:00:18.2409292Z Resolving deltas: 18% (297/1648) +2023-11-12T09:00:18.2411513Z Resolving deltas: 19% (315/1648) +2023-11-12T09:00:18.2413614Z Resolving deltas: 20% (330/1648) +2023-11-12T09:00:18.2414462Z Resolving deltas: 21% (347/1648) +2023-11-12T09:00:18.2418247Z Resolving deltas: 22% (363/1648) +2023-11-12T09:00:18.2418936Z Resolving deltas: 23% (380/1648) +2023-11-12T09:00:18.2419539Z Resolving deltas: 24% (396/1648) +2023-11-12T09:00:18.2427604Z Resolving deltas: 25% (412/1648) +2023-11-12T09:00:18.2432866Z Resolving deltas: 26% (429/1648) +2023-11-12T09:00:18.2441981Z Resolving deltas: 27% (445/1648) +2023-11-12T09:00:18.2447582Z Resolving deltas: 28% (462/1648) +2023-11-12T09:00:18.2466027Z Resolving deltas: 29% (478/1648) +2023-11-12T09:00:18.2471796Z Resolving deltas: 30% (495/1648) +2023-11-12T09:00:18.2480036Z Resolving deltas: 31% (511/1648) +2023-11-12T09:00:18.2490887Z Resolving deltas: 32% (528/1648) +2023-11-12T09:00:18.2494739Z Resolving deltas: 33% (544/1648) +2023-11-12T09:00:18.2502376Z Resolving deltas: 34% (561/1648) +2023-11-12T09:00:18.2508410Z Resolving deltas: 35% (577/1648) +2023-11-12T09:00:18.2513823Z Resolving deltas: 36% (594/1648) +2023-11-12T09:00:18.2527222Z Resolving deltas: 37% (610/1648) +2023-11-12T09:00:18.2537398Z Resolving deltas: 38% (627/1648) +2023-11-12T09:00:18.2549132Z Resolving deltas: 39% (643/1648) +2023-11-12T09:00:18.2554784Z Resolving deltas: 40% (660/1648) +2023-11-12T09:00:18.2556656Z Resolving deltas: 41% (676/1648) +2023-11-12T09:00:18.2557507Z Resolving deltas: 42% (693/1648) +2023-11-12T09:00:18.2558588Z Resolving deltas: 43% (709/1648) +2023-11-12T09:00:18.2559455Z Resolving deltas: 44% (727/1648) +2023-11-12T09:00:18.2561210Z Resolving deltas: 45% (742/1648) +2023-11-12T09:00:18.2562565Z Resolving deltas: 46% (760/1648) +2023-11-12T09:00:18.2563347Z Resolving deltas: 47% (775/1648) +2023-11-12T09:00:18.2564389Z Resolving deltas: 48% (792/1648) +2023-11-12T09:00:18.2565291Z Resolving deltas: 49% (808/1648) +2023-11-12T09:00:18.2566382Z Resolving deltas: 50% (824/1648) +2023-11-12T09:00:18.2567240Z Resolving deltas: 51% (841/1648) +2023-11-12T09:00:18.2568283Z Resolving deltas: 52% (857/1648) +2023-11-12T09:00:18.2573986Z Resolving deltas: 53% (874/1648) +2023-11-12T09:00:18.2578038Z Resolving deltas: 54% (890/1648) +2023-11-12T09:00:18.2579766Z Resolving deltas: 55% (907/1648) +2023-11-12T09:00:18.2583389Z Resolving deltas: 56% (923/1648) +2023-11-12T09:00:18.2587856Z Resolving deltas: 57% (940/1648) +2023-11-12T09:00:18.2589664Z Resolving deltas: 58% (956/1648) +2023-11-12T09:00:18.2591411Z Resolving deltas: 59% (973/1648) +2023-11-12T09:00:18.2594574Z Resolving deltas: 60% (989/1648) +2023-11-12T09:00:18.2597339Z Resolving deltas: 61% (1006/1648) +2023-11-12T09:00:18.2599661Z Resolving deltas: 62% (1022/1648) +2023-11-12T09:00:18.2605805Z Resolving deltas: 63% (1039/1648) +2023-11-12T09:00:18.2606445Z Resolving deltas: 64% (1055/1648) +2023-11-12T09:00:18.2608833Z Resolving deltas: 65% (1072/1648) +2023-11-12T09:00:18.2612033Z Resolving deltas: 66% (1088/1648) +2023-11-12T09:00:18.2614253Z Resolving deltas: 67% (1105/1648) +2023-11-12T09:00:18.2618118Z Resolving deltas: 68% (1121/1648) +2023-11-12T09:00:18.2619827Z Resolving deltas: 69% (1138/1648) +2023-11-12T09:00:18.2621203Z Resolving deltas: 70% (1154/1648) +2023-11-12T09:00:18.2624401Z Resolving deltas: 71% (1171/1648) +2023-11-12T09:00:18.2627592Z Resolving deltas: 72% (1187/1648) +2023-11-12T09:00:18.2630703Z Resolving deltas: 73% (1204/1648) +2023-11-12T09:00:18.2633542Z Resolving deltas: 74% (1220/1648) +2023-11-12T09:00:18.2636165Z Resolving deltas: 75% (1236/1648) +2023-11-12T09:00:18.2638056Z Resolving deltas: 76% (1253/1648) +2023-11-12T09:00:18.2642611Z Resolving deltas: 77% (1269/1648) +2023-11-12T09:00:18.2645574Z Resolving deltas: 78% (1286/1648) +2023-11-12T09:00:18.2650111Z Resolving deltas: 79% (1302/1648) +2023-11-12T09:00:18.2653615Z Resolving deltas: 80% (1319/1648) +2023-11-12T09:00:18.2657080Z Resolving deltas: 81% (1335/1648) +2023-11-12T09:00:18.2661192Z Resolving deltas: 82% (1352/1648) +2023-11-12T09:00:18.2666443Z Resolving deltas: 83% (1368/1648) +2023-11-12T09:00:18.2671066Z Resolving deltas: 84% (1385/1648) +2023-11-12T09:00:18.2675875Z Resolving deltas: 85% (1401/1648) +2023-11-12T09:00:18.2680749Z Resolving deltas: 86% (1418/1648) +2023-11-12T09:00:18.2685418Z Resolving deltas: 87% (1434/1648) +2023-11-12T09:00:18.2691672Z Resolving deltas: 88% (1451/1648) +2023-11-12T09:00:18.2696947Z Resolving deltas: 89% (1467/1648) +2023-11-12T09:00:18.2704268Z Resolving deltas: 90% (1484/1648) +2023-11-12T09:00:18.2714966Z Resolving deltas: 91% (1500/1648) +2023-11-12T09:00:18.2724238Z Resolving deltas: 92% (1518/1648) +2023-11-12T09:00:18.2727054Z Resolving deltas: 93% (1533/1648) +2023-11-12T09:00:18.2732989Z Resolving deltas: 94% (1550/1648) +2023-11-12T09:00:18.2738406Z Resolving deltas: 95% (1567/1648) +2023-11-12T09:00:18.2743401Z Resolving deltas: 96% (1583/1648) +2023-11-12T09:00:18.2748306Z Resolving deltas: 97% (1599/1648) +2023-11-12T09:00:18.2752079Z Resolving deltas: 98% (1616/1648) +2023-11-12T09:00:18.2774732Z Resolving deltas: 99% (1632/1648) +2023-11-12T09:00:18.2776965Z Resolving deltas: 100% (1648/1648) +2023-11-12T09:00:18.2777617Z Resolving deltas: 100% (1648/1648), done. +2023-11-12T09:00:18.4151233Z From https://github.com/tgstation/tgstation +2023-11-12T09:00:18.4152324Z * [new ref] 0f52a54577af8e336ee4407c83bc6d3bfedd1d11 -> pull/79384/merge +2023-11-12T09:00:18.4174692Z ##[endgroup] +2023-11-12T09:00:18.4175546Z ##[group]Determining the checkout info +2023-11-12T09:00:18.4177292Z ##[endgroup] +2023-11-12T09:00:18.4178077Z ##[group]Checking out the ref +2023-11-12T09:00:18.4182006Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/79384/merge +2023-11-12T09:00:19.4499153Z Updating files: 65% (8853/13535) +2023-11-12T09:00:19.4677754Z Updating files: 66% (8934/13535) +2023-11-12T09:00:19.4881367Z Updating files: 67% (9069/13535) +2023-11-12T09:00:19.5117589Z Updating files: 68% (9204/13535) +2023-11-12T09:00:19.5393100Z Updating files: 69% (9340/13535) +2023-11-12T09:00:19.5649915Z Updating files: 70% (9475/13535) +2023-11-12T09:00:19.5885545Z Updating files: 71% (9610/13535) +2023-11-12T09:00:19.6092470Z Updating files: 72% (9746/13535) +2023-11-12T09:00:19.6193070Z Updating files: 73% (9881/13535) +2023-11-12T09:00:19.6275200Z Updating files: 74% (10016/13535) +2023-11-12T09:00:19.6366161Z Updating files: 75% (10152/13535) +2023-11-12T09:00:19.6497650Z Updating files: 76% (10287/13535) +2023-11-12T09:00:19.6864064Z Updating files: 77% (10422/13535) +2023-11-12T09:00:19.6905958Z Updating files: 78% (10558/13535) +2023-11-12T09:00:19.7095469Z Updating files: 79% (10693/13535) +2023-11-12T09:00:19.7217904Z Updating files: 80% (10828/13535) +2023-11-12T09:00:19.7299066Z Updating files: 81% (10964/13535) +2023-11-12T09:00:19.7371348Z Updating files: 82% (11099/13535) +2023-11-12T09:00:19.7439098Z Updating files: 83% (11235/13535) +2023-11-12T09:00:19.7509681Z Updating files: 84% (11370/13535) +2023-11-12T09:00:19.7583669Z Updating files: 85% (11505/13535) +2023-11-12T09:00:19.7654399Z Updating files: 86% (11641/13535) +2023-11-12T09:00:19.7761508Z Updating files: 87% (11776/13535) +2023-11-12T09:00:19.7996111Z Updating files: 88% (11911/13535) +2023-11-12T09:00:19.8212241Z Updating files: 89% (12047/13535) +2023-11-12T09:00:19.8280038Z Updating files: 90% (12182/13535) +2023-11-12T09:00:19.8351398Z Updating files: 91% (12317/13535) +2023-11-12T09:00:19.8428752Z Updating files: 92% (12453/13535) +2023-11-12T09:00:19.8508292Z Updating files: 93% (12588/13535) +2023-11-12T09:00:19.8572225Z Updating files: 94% (12723/13535) +2023-11-12T09:00:19.8650650Z Updating files: 95% (12859/13535) +2023-11-12T09:00:19.8729362Z Updating files: 96% (12994/13535) +2023-11-12T09:00:19.8829435Z Updating files: 97% (13129/13535) +2023-11-12T09:00:19.8894699Z Updating files: 98% (13265/13535) +2023-11-12T09:00:19.8994866Z Updating files: 99% (13400/13535) +2023-11-12T09:00:19.8995690Z Updating files: 100% (13535/13535) +2023-11-12T09:00:19.8996705Z Updating files: 100% (13535/13535), done. +2023-11-12T09:00:19.9124545Z Note: switching to 'refs/remotes/pull/79384/merge'. +2023-11-12T09:00:19.9125161Z +2023-11-12T09:00:19.9125767Z You are in 'detached HEAD' state. You can look around, make experimental +2023-11-12T09:00:19.9127145Z changes and commit them, and you can discard any commits you make in this +2023-11-12T09:00:19.9128712Z state without impacting any branches by switching back to a branch. +2023-11-12T09:00:19.9129440Z +2023-11-12T09:00:19.9129888Z If you want to create a new branch to retain commits you create, you may +2023-11-12T09:00:19.9131250Z do so (now or later) by using -c with the switch command. Example: +2023-11-12T09:00:19.9131887Z +2023-11-12T09:00:19.9132223Z git switch -c +2023-11-12T09:00:19.9132633Z +2023-11-12T09:00:19.9133095Z Or undo this operation with: +2023-11-12T09:00:19.9133655Z +2023-11-12T09:00:19.9133848Z git switch - +2023-11-12T09:00:19.9134127Z +2023-11-12T09:00:19.9134677Z Turn off this advice by setting config variable advice.detachedHead to false +2023-11-12T09:00:19.9135426Z +2023-11-12T09:00:19.9136195Z HEAD is now at 0f52a54 Merge 2104248ba951649225e5c5cb8168346f0220bdb7 into 1eb94ba2286812853f5c65b2557bf2f8f5e46d4f +2023-11-12T09:00:19.9215939Z ##[endgroup] +2023-11-12T09:00:19.9261644Z [command]/usr/bin/git log -1 --format='%H' +2023-11-12T09:00:19.9293509Z '0f52a54577af8e336ee4407c83bc6d3bfedd1d11' +2023-11-12T09:00:19.9616124Z ##[group]Run actions/cache@v3 +2023-11-12T09:00:19.9616601Z with: +2023-11-12T09:00:19.9616946Z path: ~/BYOND +2023-11-12T09:00:19.9617286Z key: Linux-byond- +2023-11-12T09:00:19.9617686Z enableCrossOsArchive: false +2023-11-12T09:00:19.9618092Z fail-on-cache-miss: false +2023-11-12T09:00:19.9618460Z lookup-only: false +2023-11-12T09:00:19.9618822Z ##[endgroup] +2023-11-12T09:00:20.2859595Z Cache Size: ~4 MB (4090426 B) +2023-11-12T09:00:20.2888527Z [command]/usr/bin/tar -xf /home/runner/work/_temp/edb2b23d-361f-4c19-b676-33998159e0b8/cache.tzst -P -C /home/runner/work/tgstation/tgstation --use-compress-program unzstd +2023-11-12T09:00:20.3193378Z Cache restored successfully +2023-11-12T09:00:20.3317264Z Cache restored from key: Linux-byond- +2023-11-12T09:00:20.3451434Z ##[group]Run sudo systemctl start mysql +2023-11-12T09:00:20.3452154Z sudo systemctl start mysql +2023-11-12T09:00:20.3452715Z mysql -u root -proot -e 'CREATE DATABASE tg_ci;' +2023-11-12T09:00:20.3453355Z mysql -u root -proot tg_ci < SQL/tgstation_schema.sql +2023-11-12T09:00:20.3454118Z mysql -u root -proot -e 'CREATE DATABASE tg_ci_prefixed;' +2023-11-12T09:00:20.3454828Z mysql -u root -proot tg_ci_prefixed < SQL/tgstation_schema_prefixed.sql +2023-11-12T09:00:20.3513329Z shell: /usr/bin/bash -e {0} +2023-11-12T09:00:20.3513775Z ##[endgroup] +2023-11-12T09:00:23.5982676Z mysql: [Warning] Using a password on the command line interface can be insecure. +2023-11-12T09:00:23.6362129Z mysql: [Warning] Using a password on the command line interface can be insecure. +2023-11-12T09:00:24.0220158Z mysql: [Warning] Using a password on the command line interface can be insecure. +2023-11-12T09:00:24.0302175Z mysql: [Warning] Using a password on the command line interface can be insecure. +2023-11-12T09:00:24.3266576Z ##[group]Run bash tools/ci/install_rust_g.sh +2023-11-12T09:00:24.3267216Z bash tools/ci/install_rust_g.sh +2023-11-12T09:00:24.3311615Z shell: /usr/bin/bash -e {0} +2023-11-12T09:00:24.3311996Z ##[endgroup] +2023-11-12T09:00:24.6018389Z 2023-11-12 09:00:24 URL:https://objects.githubusercontent.com/github-production-release-asset-2e65be/127494547/aea9a209-14bc-4b8b-b98c-1ba32c0aaf86?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20231112%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231112T085850Z&X-Amz-Expires=300&X-Amz-Signature=c3e69a55ec6f839925bb9729c6b2e6b4d5b76b4855bfd64b96933c73f95a6734&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=127494547&response-content-disposition=attachment%3B%20filename%3Dlibrust_g.so&response-content-type=application%2Foctet-stream [66491316/66491316] -> "/home/runner/.byond/bin/librust_g.so" [1] +2023-11-12T09:00:24.6320307Z linux-gate.so.1 (0xf7f74000) +2023-11-12T09:00:24.6321993Z libz.so.1 => /lib32/libz.so.1 (0xf7f45000) +2023-11-12T09:00:24.6322879Z libgcc_s.so.1 => /lib32/libgcc_s.so.1 (0xf7f1e000) +2023-11-12T09:00:24.6323651Z libm.so.6 => /lib32/libm.so.6 (0xf7e16000) +2023-11-12T09:00:24.6324533Z libc.so.6 => /lib32/libc.so.6 (0xf7400000) +2023-11-12T09:00:24.6326012Z /lib/ld-linux.so.2 (0xf7f76000) +2023-11-12T09:00:24.6368501Z ##[group]Run bash tools/ci/install_auxlua.sh +2023-11-12T09:00:24.6369036Z bash tools/ci/install_auxlua.sh +2023-11-12T09:00:24.6417060Z shell: /usr/bin/bash -e {0} +2023-11-12T09:00:24.6417480Z ##[endgroup] +2023-11-12T09:00:24.7086755Z 2023-11-12 09:00:24 URL:https://objects.githubusercontent.com/github-production-release-asset-2e65be/473295481/ec517e6d-2695-477e-ae92-7645fee5b7ce?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20231112%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231112T085916Z&X-Amz-Expires=300&X-Amz-Signature=e13d49b79e73a573dc4a351e5e9575d601b7f51fc16f9d3f03f959884cdf8941&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=473295481&response-content-disposition=attachment%3B%20filename%3Dlibauxlua.so&response-content-type=application%2Foctet-stream [6045340/6045340] -> "/home/runner/.byond/bin/libauxlua.so" [1] +2023-11-12T09:00:24.7172511Z linux-gate.so.1 (0xf7f77000) +2023-11-12T09:00:24.7173643Z libstdc++.so.6 => /lib32/libstdc++.so.6 (0xf7800000) +2023-11-12T09:00:24.7174378Z libgcc_s.so.1 => /lib32/libgcc_s.so.1 (0xf7f3e000) +2023-11-12T09:00:24.7175045Z libpthread.so.0 => /lib32/libpthread.so.0 (0xf7f39000) +2023-11-12T09:00:24.7176413Z libm.so.6 => /lib32/libm.so.6 (0xf7e31000) +2023-11-12T09:00:24.7177209Z libdl.so.2 => /lib32/libdl.so.2 (0xf7e2c000) +2023-11-12T09:00:24.7177918Z libc.so.6 => /lib32/libc.so.6 (0xf7400000) +2023-11-12T09:00:24.7178575Z /lib/ld-linux.so.2 (0xf7f79000) +2023-11-12T09:00:24.7231003Z ##[group]Run bash tools/ci/install_byond.sh +2023-11-12T09:00:24.7231555Z bash tools/ci/install_byond.sh +2023-11-12T09:00:24.7232077Z source $HOME/BYOND/byond/bin/byondsetup +2023-11-12T09:00:24.7232805Z tools/build/build --ci dm -DCIBUILDING -DANSICOLORS -WError -NWTG0001 +2023-11-12T09:00:24.7274898Z shell: /usr/bin/bash -e {0} +2023-11-12T09:00:24.7275297Z ##[endgroup] +2023-11-12T09:00:24.7365575Z Setting up BYOND. +2023-11-12T09:00:24.7497243Z % Total % Received % Xferd Average Speed Time Time Time Current +2023-11-12T09:00:24.7498339Z Dload Upload Total Spent Left Speed +2023-11-12T09:00:24.7499103Z +2023-11-12T09:00:24.7733411Z 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 +2023-11-12T09:00:24.7884475Z 0 4021k 0 4979 0 0 203k 0 0:00:19 --:--:-- 0:00:19 202k +2023-11-12T09:00:24.7885997Z 100 4021k 100 4021k 0 0 100M 0 --:--:-- --:--:-- --:--:-- 100M +2023-11-12T09:00:24.8068033Z Archive: byond.zip +2023-11-12T09:00:24.8069055Z creating: byond/ +2023-11-12T09:00:24.8069884Z creating: byond/key/ +2023-11-12T09:00:24.8071025Z creating: byond/web/ +2023-11-12T09:00:24.8073333Z inflating: byond/web/child.dms +2023-11-12T09:00:24.8074283Z inflating: byond/web/button.dms +2023-11-12T09:00:24.8076478Z inflating: byond/web/input.dms +2023-11-12T09:00:24.8077391Z inflating: byond/web/text.dms +2023-11-12T09:00:24.8176215Z inflating: byond/web/webclient.dart.js +2023-11-12T09:00:24.8177154Z inflating: byond/web/verbmenu.dms +2023-11-12T09:00:24.8178296Z inflating: byond/web/defaultSkin.dms +2023-11-12T09:00:24.8179798Z inflating: byond/web/hotbar.dms +2023-11-12T09:00:24.8180913Z inflating: byond/web/label.dms +2023-11-12T09:00:24.8181973Z inflating: byond/web/alert.dms +2023-11-12T09:00:24.8182843Z inflating: byond/web/message.dms +2023-11-12T09:00:24.8183665Z inflating: byond/web/drag.png +2023-11-12T09:00:24.8185004Z inflating: byond/web/map.dms +2023-11-12T09:00:24.8186150Z inflating: byond/web/splashlogo.png +2023-11-12T09:00:24.8186893Z inflating: byond/web/drop.png +2023-11-12T09:00:24.8282279Z inflating: byond/web/ext.js +2023-11-12T09:00:24.8283075Z inflating: byond/web/file.dms +2023-11-12T09:00:24.8284575Z inflating: byond/web/grid.dms +2023-11-12T09:00:24.8286207Z inflating: byond/web/bar.dms +2023-11-12T09:00:24.8288946Z inflating: byond/web/dpad.dms +2023-11-12T09:00:24.8289936Z inflating: byond/web/output.dms +2023-11-12T09:00:24.8291365Z inflating: byond/web/tab.dms +2023-11-12T09:00:24.8293155Z inflating: byond/web/info.dms +2023-11-12T09:00:24.8294881Z inflating: byond/web/color.dms +2023-11-12T09:00:24.8296103Z inflating: byond/web/gamepad.dms +2023-11-12T09:00:24.8297532Z inflating: byond/web/browser.dms +2023-11-12T09:00:24.8298158Z inflating: byond/web/status.dms +2023-11-12T09:00:24.8299313Z inflating: byond/web/any.dms +2023-11-12T09:00:24.8300438Z inflating: byond/web/pane.dms +2023-11-12T09:00:24.8302172Z inflating: byond/web/pop.dms +2023-11-12T09:00:24.8303255Z inflating: byond/license.txt +2023-11-12T09:00:24.8303882Z inflating: byond/legal.txt +2023-11-12T09:00:24.8305048Z inflating: byond/Makefile +2023-11-12T09:00:24.8305748Z creating: byond/man/ +2023-11-12T09:00:24.8306319Z creating: byond/man/man6/ +2023-11-12T09:00:24.8307604Z inflating: byond/man/man6/DreamDaemon.6 +2023-11-12T09:00:24.8308434Z inflating: byond/man/man6/DreamMaker.6 +2023-11-12T09:00:24.8309437Z creating: byond/lib/ +2023-11-12T09:00:24.8310004Z creating: byond/host/ +2023-11-12T09:00:24.8311286Z inflating: byond/host/readme.html +2023-11-12T09:00:24.8312492Z inflating: byond/host/readme-unix.txt +2023-11-12T09:00:24.8313289Z creating: byond/host/home/ +2023-11-12T09:00:24.8314244Z creating: byond/host/home/root/ +2023-11-12T09:00:24.8315083Z creating: byond/host/home/root/byond/ +2023-11-12T09:00:24.8315883Z creating: byond/host/home/root/byond/tools/ +2023-11-12T09:00:24.8316724Z creating: byond/host/home/root/byond/tools/root/ +2023-11-12T09:00:24.8321401Z inflating: byond/host/home/root/byond/tools/root/root.dmb +2023-11-12T09:00:24.8322363Z creating: byond/host/shared/ +2023-11-12T09:00:24.8323118Z creating: byond/host/shared/byond/ +2023-11-12T09:00:24.8323939Z creating: byond/host/shared/byond/tools/ +2023-11-12T09:00:24.8324697Z creating: byond/host/shared/byond/tools/ftp/ +2023-11-12T09:00:24.8326100Z inflating: byond/host/shared/byond/tools/ftp/ftp.dmb +2023-11-12T09:00:24.8327214Z creating: byond/host/shared/byond/tools/admin/ +2023-11-12T09:00:24.8332506Z inflating: byond/host/shared/byond/tools/admin/admin.dmb +2023-11-12T09:00:24.8333692Z creating: byond/host/shared-web/ +2023-11-12T09:00:24.8334536Z creating: byond/host/shared-web/web/ +2023-11-12T09:00:24.8335395Z creating: byond/host/shared-web/web/tools/ +2023-11-12T09:00:24.8336389Z creating: byond/host/shared-web/web/tools/admin/ +2023-11-12T09:00:24.8340610Z inflating: byond/host/shared-web/web/tools/admin/index.dmb +2023-11-12T09:00:24.8347816Z inflating: byond/host/host.dmb +2023-11-12T09:00:24.8348686Z inflating: byond/host/host.start +2023-11-12T09:00:24.8349570Z inflating: byond/host/hostconf.orig +2023-11-12T09:00:24.8350612Z inflating: byond/host/hostconf.txt +2023-11-12T09:00:24.8351646Z inflating: byond/readme.txt +2023-11-12T09:00:24.8352393Z creating: byond/bin/ +2023-11-12T09:00:24.8353203Z inflating: byond/bin/byondexec +2023-11-12T09:00:24.8355525Z inflating: byond/bin/DreamDownload +2023-11-12T09:00:24.8915164Z inflating: byond/bin/libbyond.so +2023-11-12T09:00:24.9052390Z inflating: byond/bin/libext.so +2023-11-12T09:00:24.9056691Z inflating: byond/bin/DreamDaemon +2023-11-12T09:00:24.9060064Z inflating: byond/bin/DreamMaker +2023-11-12T09:00:24.9060916Z creating: byond/cfg/ +2023-11-12T09:00:24.9061543Z inflating: byond/cfg/release.txt +2023-11-12T09:00:24.9218525Z *************************** +2023-11-12T09:00:24.9225188Z Now run the following command: +2023-11-12T09:00:24.9233824Z +2023-11-12T09:00:24.9243155Z source /home/runner/BYOND/byond/bin/byondsetup +2023-11-12T09:00:24.9251769Z +2023-11-12T09:00:24.9259232Z If it generates errors, your shell is not compatible with 'sh', so you will +2023-11-12T09:00:24.9265751Z have to edit byondsetup and make it work with your shell. If the script works, you should be able to run DreamDaemon. +2023-11-12T09:00:24.9273703Z +2023-11-12T09:00:24.9280708Z IMPORTANT: once you have the script working, you must add the above line +2023-11-12T09:00:24.9287739Z to your startup script. The name of your startup script depends on the +2023-11-12T09:00:24.9294443Z shell you use. Typical ones are .profile or .bash_profile. +2023-11-12T09:00:24.9302682Z +2023-11-12T09:00:24.9309851Z Once everything is working, you can find out more about the software +2023-11-12T09:00:24.9316763Z by doing 'man DreamDaemon'. A host server has also been included +2023-11-12T09:00:24.9323620Z so edit host/hostconf.txt and boot up your world server! +2023-11-12T09:00:24.9330177Z *************************** +2023-11-12T09:00:24.9736645Z Using system-wide Node v18.18.2 +2023-11-12T09:00:25.1112864Z :: Juke Build version 0.8.1 +2023-11-12T09:00:25.3377241Z => Starting 'dm' +2023-11-12T09:00:25.3385788Z :: Using defines: CBT, CIBUILDING, ANSICOLORS +2023-11-12T09:00:25.6662719Z DM compiler version 514.1588 +2023-11-12T09:00:25.6663169Z loading tgstation.m.dme +2023-11-12T09:00:25.9197564Z code/__DEFINES/qdel.dm:22:warning: #warn TG0001 qdel REFERENCE_TRACKING enabled +2023-11-12T09:00:36.5749452Z loading interface/skin.dmf +2023-11-12T09:01:29.5751892Z loading map_files/generic/CentCom.dmm +2023-11-12T09:01:29.9653644Z saving tgstation.m.dmb (DEBUG mode) +2023-11-12T09:01:30.6467137Z tgstation.m.dmb - 0 errors, 1 warning (11/12/23 9:01 am) +2023-11-12T09:01:30.6468251Z Total time: 1:05 +2023-11-12T09:01:31.6898602Z => Finished 'dm' in 66.352s +2023-11-12T09:01:31.6901009Z => Done in 66.578s +2023-11-12T09:01:31.7007243Z ##[group]Run source $HOME/BYOND/byond/bin/byondsetup +2023-11-12T09:01:31.7007981Z source $HOME/BYOND/byond/bin/byondsetup +2023-11-12T09:01:31.7008503Z bash tools/ci/run_server.sh tramstation +2023-11-12T09:01:31.7058146Z shell: /usr/bin/bash -e {0} +2023-11-12T09:01:31.7058547Z ##[endgroup] +2023-11-12T09:01:31.7139001Z Testing tramstation +2023-11-12T09:01:32.0865721Z cp: cannot stat 'tgui/packages/tgfont/dist/*': No such file or directory +2023-11-12T09:01:32.1025274Z Sun Nov 12 09:01:32 2023 +2023-11-12T09:01:32.1026062Z World opened on network port 34125. +2023-11-12T09:01:32.1026759Z Welcome BYOND! (5.0 Public Version 514.1588) +2023-11-12T09:01:54.2375415Z World loaded at 09:01:54! +2023-11-12T09:01:54.2376123Z Running /tg/ revision: +2023-11-12T09:01:54.2376721Z No commit information +2023-11-12T09:01:54.2377340Z Running rust-g version 3.0.0 +2023-11-12T09:01:54.2445249Z Loading config file config.txt... +2023-11-12T09:01:54.2449139Z Loading config file maps.txt... +2023-11-12T09:01:54.2703464Z Unable to locate admins backup file. +2023-11-12T09:01:55.2792475Z Initialized Title Screen subsystem within 0 seconds! +2023-11-12T09:01:55.2793681Z Initialized Server Tasks subsystem within 0 seconds! +2023-11-12T09:01:55.2795047Z Initialized Input subsystem within 0 seconds! +2023-11-12T09:01:55.2858203Z Initialized Profiler subsystem within 0 seconds! +2023-11-12T09:01:55.2859689Z Initialized Database subsystem within 0 seconds! +2023-11-12T09:01:55.2862218Z Initialized Blackbox subsystem within 0 seconds! +2023-11-12T09:01:55.2938165Z Initialized Sounds subsystem within 0.01 seconds! +2023-11-12T09:01:55.3061210Z Initialized Instruments subsystem within 0.01 seconds! +2023-11-12T09:01:55.8390630Z Initialized Greyscale subsystem within 0.53 seconds! +2023-11-12T09:01:55.8391416Z Initialized Vis contents overlays subsystem within 0 seconds! +2023-11-12T09:01:55.8392841Z Initialized Security Level subsystem within 0 seconds! +2023-11-12T09:01:55.8412303Z Initialized Station subsystem within 0 seconds! +2023-11-12T09:01:55.8426733Z Initialized Quirks subsystem within 0 seconds! +2023-11-12T09:01:55.8553936Z Initialized Reagents subsystem within 0.01 seconds! +2023-11-12T09:01:55.8563912Z Initialized Events subsystem within 0 seconds! +2023-11-12T09:01:55.8612984Z Initialized IDs and Access subsystem within 0 seconds! +2023-11-12T09:01:55.8616522Z Initialized Jobs subsystem within 0 seconds! +2023-11-12T09:01:55.8618600Z Initialized AI movement subsystem within 0 seconds! +2023-11-12T09:01:55.8637284Z Initialized Ticker subsystem within 0 seconds! +2023-11-12T09:01:55.8693586Z Initialized AI Controller Ticker subsystem within 0.01 seconds! +2023-11-12T09:01:55.8697702Z Initialized AI Behavior Ticker subsystem within 0 seconds! +2023-11-12T09:01:55.8821358Z Initialized Trading Card Game subsystem within 0.01 seconds! +2023-11-12T09:01:55.8968123Z Loading Tramstation... +2023-11-12T09:01:57.4366548Z Loaded Station in 1.6s! +2023-11-12T09:01:58.7018385Z Loaded Lavaland in 1.3s! +2023-11-12T09:01:59.6958478Z All ruins being loaded for map testing. +2023-11-12T09:01:59.6960551Z Ruin loader finished with 0 left to spend. +2023-11-12T09:01:59.6963383Z All ruins being loaded for map testing. +2023-11-12T09:01:59.6966951Z Ruin loader finished with 0 left to spend. +2023-11-12T09:01:59.8030218Z Cave Generator terrain generation finished in 0.1s! +2023-11-12T09:01:59.8242156Z Cave Generator terrain generation finished in 0s! +2023-11-12T09:02:00.0123579Z Cave Generator terrain population finished in 0.1s! +2023-11-12T09:02:00.0174657Z Cave Generator terrain population finished in 0s! +2023-11-12T09:02:00.4204586Z Initialized Mapping subsystem within 4.54 seconds! +2023-11-12T09:02:18.7137331Z Initialized Early Assets subsystem within 18.29 seconds! +2023-11-12T09:02:18.7960177Z Initialized Research subsystem within 0.08 seconds! +2023-11-12T09:02:18.7964943Z Initialized Time Tracking subsystem within 0 seconds! +2023-11-12T09:02:18.8516125Z Initialized Spatial Grid subsystem within 0.05 seconds! +2023-11-12T09:02:18.8519915Z Initialized Economy subsystem within 0 seconds! +2023-11-12T09:02:18.8529046Z Initialized Restaurant subsystem within 0 seconds! +2023-11-12T09:02:24.3564078Z The BYOND hub reports that port 34125 is not reachable. +2023-11-12T09:03:00.5242715Z ## NOTICE: morgue_cadaver_disable_nonhumans. There are no valid roundstart nonhuman races enabled. Defaulting to humans only! +2023-11-12T09:03:08.8938364Z Initialized Atoms subsystem within 50.04 seconds! +2023-11-12T09:03:08.9459509Z Initialized Language subsystem within 0.01 seconds! +2023-11-12T09:03:09.0602930Z Initialized Machines subsystem within 0.11 seconds! +2023-11-12T09:03:09.0612163Z Initialized Skills subsystem within 0 seconds! +2023-11-12T09:03:09.0615253Z Initialized Queue Links subsystem within 0 seconds! +2023-11-12T09:03:09.0619204Z Initialized Addiction subsystem within 0 seconds! +2023-11-12T09:03:09.0639408Z Initialized Blackmarket subsystem within 0 seconds! +2023-11-12T09:03:09.0647224Z Initialized Disease subsystem within 0 seconds! +2023-11-12T09:03:09.0650704Z Initialized Fluid subsystem within 0 seconds! +2023-11-12T09:03:09.0654199Z Initialized Smoke subsystem within 0 seconds! +2023-11-12T09:03:09.0657541Z Initialized Foam subsystem within 0 seconds! +2023-11-12T09:03:09.0660882Z Initialized Lag Switch subsystem within 0 seconds! +2023-11-12T09:03:09.0888582Z Initialized Library Loading subsystem within 0.02 seconds! +2023-11-12T09:03:09.2645071Z Initialized Lua Scripting subsystem within 0.18 seconds! +2023-11-12T09:03:09.2735036Z Initialized Modular Computers subsystem within 0.01 seconds! +2023-11-12T09:03:09.2737635Z Initialized Night Shift subsystem within 0 seconds! +2023-11-12T09:03:09.2741231Z Initialized Stock Market subsystem within 0 seconds! +2023-11-12T09:03:09.2743761Z Initialized Sun subsystem within 0 seconds! +2023-11-12T09:03:09.2792256Z Initialized Traitor subsystem within 0 seconds! +2023-11-12T09:03:09.2795417Z Initialized Tutorials subsystem within 0 seconds! +2023-11-12T09:03:09.3133961Z Initialized Wardrobe subsystem within 0.03 seconds! +2023-11-12T09:03:09.3136967Z Initialized Weather subsystem within 0 seconds! +2023-11-12T09:03:09.3140470Z Initialized Wiremod Composite Templates subsystem within 0 seconds! +2023-11-12T09:03:14.7053894Z Initialized Atmospherics subsystem within 5.39 seconds! +2023-11-12T09:03:14.7127034Z Initialized Persistence subsystem within 0.01 seconds! +2023-11-12T09:03:14.7131026Z Initialized Persistent Paintings subsystem within 0 seconds! +2023-11-12T09:03:14.7134716Z Initialized Vote subsystem within 0 seconds! +2023-11-12T09:03:25.6600909Z Initialized Assets subsystem within 10.95 seconds! +2023-11-12T09:03:29.1318017Z Initialized Icon Smoothing subsystem within 3.42 seconds! +2023-11-12T09:03:29.1329352Z Initialized XKeyScore subsystem within 0 seconds! +2023-11-12T09:03:29.1349808Z Initialized PRISM subsystem within 0 seconds! +2023-11-12T09:03:39.5066635Z Initialized Lighting subsystem within 10.37 seconds! +2023-11-12T09:03:42.0097538Z Initialized Shuttle subsystem within 2.5 seconds! +2023-11-12T09:03:42.0100528Z Initialized Pathfinder subsystem within 0 seconds! +2023-11-12T09:03:42.0112119Z Initialized Ban Cache subsystem within 0 seconds! +2023-11-12T09:03:42.0114877Z Initialized Init Profiler subsystem within 0 seconds! +2023-11-12T09:03:42.0117470Z Initialized Chat subsystem within 0 seconds! +2023-11-12T09:03:42.0119918Z Initializations complete within 106.8 seconds! +2023-11-12T09:03:42.0699329Z Game start took 0s +2023-11-12T09:03:53.5395990Z ##[group]/datum/unit_test/log_mapping +2023-11-12T09:03:53.5399338Z PASS /datum/unit_test/log_mapping 0s +2023-11-12T09:03:53.5400530Z ##[endgroup] +2023-11-12T09:03:53.5529741Z ##[group]/datum/unit_test/abductor_baton_spell +2023-11-12T09:03:53.6248315Z PASS /datum/unit_test/abductor_baton_spell 0.1s +2023-11-12T09:03:53.6250017Z ##[endgroup] +2023-11-12T09:03:53.7293652Z ##[group]/datum/unit_test/ablative_hood_hud +2023-11-12T09:03:53.7538980Z PASS /datum/unit_test/ablative_hood_hud 0s +2023-11-12T09:03:53.7540945Z ##[endgroup] +2023-11-12T09:03:53.8177940Z ##[group]/datum/unit_test/ablative_hood_hud_with_helmet +2023-11-12T09:03:53.8373528Z PASS /datum/unit_test/ablative_hood_hud_with_helmet 0s +2023-11-12T09:03:53.8375040Z ##[endgroup] +2023-11-12T09:03:53.9037089Z ##[group]/datum/unit_test/achievements +2023-11-12T09:03:53.9146939Z PASS /datum/unit_test/achievements 0s +2023-11-12T09:03:53.9148600Z ##[endgroup] +2023-11-12T09:03:53.9709749Z ##[group]/datum/unit_test/anchored_mobs +2023-11-12T09:03:53.9714871Z PASS /datum/unit_test/anchored_mobs 0s +2023-11-12T09:03:53.9717149Z ##[endgroup] +2023-11-12T09:03:54.0290915Z ##[group]/datum/unit_test/anonymous_themes +2023-11-12T09:03:54.1282674Z PASS /datum/unit_test/anonymous_themes 0.1s +2023-11-12T09:03:54.1284602Z ##[endgroup] +2023-11-12T09:03:54.2369870Z ##[group]/datum/unit_test/revolution_conversion +2023-11-12T09:03:54.2811074Z PASS /datum/unit_test/revolution_conversion 0s +2023-11-12T09:03:54.2812989Z ##[endgroup] +2023-11-12T09:03:54.3619950Z ##[group]/datum/unit_test/cult_conversion +2023-11-12T09:03:54.4185381Z PASS /datum/unit_test/cult_conversion 0.1s +2023-11-12T09:03:54.4187014Z ##[endgroup] +2023-11-12T09:03:54.5109339Z ##[group]/datum/unit_test/antag_moodlets +2023-11-12T09:03:54.5391588Z PASS /datum/unit_test/antag_moodlets 0s +2023-11-12T09:03:54.5393248Z ##[endgroup] +2023-11-12T09:03:54.6099817Z ##[group]/datum/unit_test/armor_verification +2023-11-12T09:03:54.6105398Z PASS /datum/unit_test/armor_verification 0s +2023-11-12T09:03:54.6107086Z ##[endgroup] +2023-11-12T09:03:54.6711998Z ##[group]/datum/unit_test/autowiki +2023-11-12T09:03:56.4795605Z PASS /datum/unit_test/autowiki 1.8s +2023-11-12T09:03:56.4797118Z ##[endgroup] +2023-11-12T09:03:56.5376207Z ##[group]/datum/unit_test/autowiki_include_template +2023-11-12T09:03:56.5378371Z PASS /datum/unit_test/autowiki_include_template 0s +2023-11-12T09:03:56.5380504Z ##[endgroup] +2023-11-12T09:03:56.6003986Z ##[group]/datum/unit_test/barsigns_icon +2023-11-12T09:03:56.6303581Z PASS /datum/unit_test/barsigns_icon 0.1s +2023-11-12T09:03:56.6305267Z ##[endgroup] +2023-11-12T09:03:56.6912219Z ##[group]/datum/unit_test/barsigns_name +2023-11-12T09:03:56.6914950Z PASS /datum/unit_test/barsigns_name 0s +2023-11-12T09:03:56.6917244Z ##[endgroup] +2023-11-12T09:03:56.7530053Z ##[group]/datum/unit_test/baseturfs_unmodified_scrape +2023-11-12T09:03:56.7541656Z PASS /datum/unit_test/baseturfs_unmodified_scrape 0s +2023-11-12T09:03:56.7543322Z ##[endgroup] +2023-11-12T09:03:56.8163460Z ##[group]/datum/unit_test/baseturfs_placed_on_top +2023-11-12T09:03:56.8173471Z PASS /datum/unit_test/baseturfs_placed_on_top 0s +2023-11-12T09:03:56.8175579Z ##[endgroup] +2023-11-12T09:03:56.8789484Z ##[group]/datum/unit_test/baseturfs_placed_on_bottom +2023-11-12T09:03:56.8806366Z PASS /datum/unit_test/baseturfs_placed_on_bottom 0s +2023-11-12T09:03:56.8808190Z ##[endgroup] +2023-11-12T09:03:56.9420497Z ##[group]/datum/unit_test/bespoke_id +2023-11-12T09:03:56.9422999Z PASS /datum/unit_test/bespoke_id 0s +2023-11-12T09:03:56.9425227Z ##[endgroup] +2023-11-12T09:03:57.1727331Z ##[group]/datum/unit_test/binary_insert +2023-11-12T09:03:57.1728436Z PASS /datum/unit_test/binary_insert 0s +2023-11-12T09:03:57.1730597Z ##[endgroup] +2023-11-12T09:03:57.2270246Z ##[group]/datum/unit_test/bitrunner_vdom_settings +2023-11-12T09:03:57.2368664Z PASS /datum/unit_test/bitrunner_vdom_settings 0s +2023-11-12T09:03:57.2370507Z ##[endgroup] +2023-11-12T09:03:57.2860471Z ##[group]/datum/unit_test/blindness +2023-11-12T09:03:57.3060031Z PASS /datum/unit_test/blindness 0.1s +2023-11-12T09:03:57.3061453Z ##[endgroup] +2023-11-12T09:03:57.3685247Z ##[group]/datum/unit_test/nearsightedness +2023-11-12T09:03:57.3856666Z PASS /datum/unit_test/nearsightedness 0s +2023-11-12T09:03:57.3857831Z ##[endgroup] +2023-11-12T09:03:57.4094606Z ##[group]/datum/unit_test/eye_damage +2023-11-12T09:03:57.4266705Z PASS /datum/unit_test/eye_damage 0s +2023-11-12T09:03:57.4268768Z ##[endgroup] +2023-11-12T09:03:57.4514012Z ##[group]/datum/unit_test/bloody_footprints +2023-11-12T09:03:57.4771474Z PASS /datum/unit_test/bloody_footprints 0s +2023-11-12T09:03:57.4773523Z ##[endgroup] +2023-11-12T09:03:57.5095312Z ##[group]/datum/unit_test/breath/breath_sanity +2023-11-12T09:03:57.5793797Z PASS /datum/unit_test/breath/breath_sanity 0s +2023-11-12T09:03:57.5795766Z ##[endgroup] +2023-11-12T09:03:57.6356372Z ##[group]/datum/unit_test/breath/breath_sanity_plasmamen +2023-11-12T09:03:57.6920259Z PASS /datum/unit_test/breath/breath_sanity_plasmamen 0s +2023-11-12T09:03:57.6922126Z ##[endgroup] +2023-11-12T09:03:57.7478880Z ##[group]/datum/unit_test/breath/breath_sanity_ashwalker +2023-11-12T09:03:57.7793279Z PASS /datum/unit_test/breath/breath_sanity_ashwalker 0s +2023-11-12T09:03:57.7794768Z ##[endgroup] +2023-11-12T09:03:57.8063286Z ##[group]/datum/unit_test/burning +2023-11-12T09:03:57.8235820Z PASS /datum/unit_test/burning 0s +2023-11-12T09:03:57.8237580Z ##[endgroup] +2023-11-12T09:03:57.8463809Z ##[group]/datum/unit_test/cable_powernets +2023-11-12T09:03:57.8467369Z PASS /datum/unit_test/cable_powernets 0s +2023-11-12T09:03:57.8468842Z ##[endgroup] +2023-11-12T09:03:57.8681387Z ##[group]/datum/unit_test/card_mismatch +2023-11-12T09:03:57.8715332Z PASS /datum/unit_test/card_mismatch 0s +2023-11-12T09:03:57.8717822Z ##[endgroup] +2023-11-12T09:03:57.8839316Z ##[group]/datum/unit_test/cardboard_cutouts +2023-11-12T09:03:57.8847499Z cardboard_cutouts_normal_cutout was put in data/screenshots_new +2023-11-12T09:03:58.1374772Z cardboard_cutouts_nukie_cutout was put in data/screenshots_new +2023-11-12T09:03:58.1378574Z cardboard_cutouts_nukie_cutout_pushed was put in data/screenshots_new +2023-11-12T09:03:58.1547388Z cardboard_cutouts_xenomorph_cutout was put in data/screenshots_new +2023-11-12T09:03:58.1550933Z PASS /datum/unit_test/cardboard_cutouts 0.3s +2023-11-12T09:03:58.1553499Z ##[endgroup] +2023-11-12T09:03:58.2402466Z ##[group]/datum/unit_test/chain_pull_through_space +2023-11-12T09:03:58.2453035Z PASS /datum/unit_test/chain_pull_through_space 0s +2023-11-12T09:03:58.2454853Z ##[endgroup] +2023-11-12T09:03:58.3033483Z ##[group]/datum/unit_test/transformation_sting +2023-11-12T09:03:59.7549687Z transformation_sting_appearances was put in data/screenshots_new +2023-11-12T09:03:59.7551965Z PASS /datum/unit_test/transformation_sting 1.4s +2023-11-12T09:03:59.7553272Z ##[endgroup] +2023-11-12T09:03:59.7969350Z ##[group]/datum/unit_test/chat_filter_sanity +2023-11-12T09:03:59.7976589Z PASS /datum/unit_test/chat_filter_sanity 0s +2023-11-12T09:03:59.7978237Z ##[endgroup] +2023-11-12T09:03:59.8105892Z ##[group]/datum/unit_test/circuit_component_category +2023-11-12T09:03:59.8107746Z PASS /datum/unit_test/circuit_component_category 0s +2023-11-12T09:03:59.8109947Z ##[endgroup] +2023-11-12T09:03:59.8879728Z ##[group]/datum/unit_test/client_colours +2023-11-12T09:03:59.8889068Z PASS /datum/unit_test/client_colours 0s +2023-11-12T09:03:59.8891665Z ##[endgroup] +2023-11-12T09:03:59.9525316Z ##[group]/datum/unit_test/closets +2023-11-12T09:04:01.8031965Z PASS /datum/unit_test/closets 1.9s +2023-11-12T09:04:01.8033340Z ##[endgroup] +2023-11-12T09:04:02.6399153Z ##[group]/datum/unit_test/clothing_under_armor_subtype_check +2023-11-12T09:04:02.6403381Z PASS /datum/unit_test/clothing_under_armor_subtype_check 0s +2023-11-12T09:04:02.6405014Z ##[endgroup] +2023-11-12T09:04:02.7020573Z ##[group]/datum/unit_test/harm_punch +2023-11-12T09:04:02.7364226Z PASS /datum/unit_test/harm_punch 0s +2023-11-12T09:04:02.7366615Z ##[endgroup] +2023-11-12T09:04:02.7919290Z ##[group]/datum/unit_test/harm_melee +2023-11-12T09:04:02.8266028Z PASS /datum/unit_test/harm_melee 0.1s +2023-11-12T09:04:02.8268574Z ##[endgroup] +2023-11-12T09:04:02.8738136Z ##[group]/datum/unit_test/harm_different_damage +2023-11-12T09:04:02.9125671Z PASS /datum/unit_test/harm_different_damage 0.1s +2023-11-12T09:04:02.9127697Z ##[endgroup] +2023-11-12T09:04:02.9510991Z ##[group]/datum/unit_test/attack_chain +2023-11-12T09:04:02.9859497Z PASS /datum/unit_test/attack_chain 0s +2023-11-12T09:04:02.9861383Z ##[endgroup] +2023-11-12T09:04:03.0312671Z ##[group]/datum/unit_test/disarm +2023-11-12T09:04:03.0675162Z PASS /datum/unit_test/disarm 0s +2023-11-12T09:04:03.0677029Z ##[endgroup] +2023-11-12T09:04:03.1122424Z ##[group]/datum/unit_test/self_punch +2023-11-12T09:04:03.1297149Z PASS /datum/unit_test/self_punch 0s +2023-11-12T09:04:03.1299012Z ##[endgroup] +2023-11-12T09:04:03.1617839Z ##[group]/datum/unit_test/handcuff_punch +2023-11-12T09:04:03.1949728Z PASS /datum/unit_test/handcuff_punch 0s +2023-11-12T09:04:03.1950695Z ##[endgroup] +2023-11-12T09:04:03.2665996Z ##[group]/datum/unit_test/handcuff_bite +2023-11-12T09:04:03.3310134Z PASS /datum/unit_test/handcuff_bite 0.1s +2023-11-12T09:04:03.3311967Z ##[endgroup] +2023-11-12T09:04:03.3720567Z ##[group]/datum/unit_test/component_duping +2023-11-12T09:04:03.3725700Z PASS /datum/unit_test/component_duping 0s +2023-11-12T09:04:03.3728116Z ##[endgroup] +2023-11-12T09:04:03.3854948Z ##[group]/datum/unit_test/confusion_symptom +2023-11-12T09:04:03.4020935Z PASS /datum/unit_test/confusion_symptom 0.1s +2023-11-12T09:04:03.4023437Z ##[endgroup] +2023-11-12T09:04:03.4660129Z ##[group]/datum/unit_test/connect_loc_basic +2023-11-12T09:04:03.4667486Z PASS /datum/unit_test/connect_loc_basic 0s +2023-11-12T09:04:03.4669665Z ##[endgroup] +2023-11-12T09:04:03.5206421Z ##[group]/datum/unit_test/connect_loc_change_turf +2023-11-12T09:04:03.5219191Z PASS /datum/unit_test/connect_loc_change_turf 0s +2023-11-12T09:04:03.5221198Z ##[endgroup] +2023-11-12T09:04:03.5413589Z ##[group]/datum/unit_test/connect_loc_multiple_on_turf +2023-11-12T09:04:03.5422679Z PASS /datum/unit_test/connect_loc_multiple_on_turf 0s +2023-11-12T09:04:03.5424576Z ##[endgroup] +2023-11-12T09:04:03.5552785Z ##[group]/datum/unit_test/reagent_container_sanity +2023-11-12T09:04:03.8101359Z PASS /datum/unit_test/reagent_container_sanity 0.3s +2023-11-12T09:04:03.8102486Z ##[endgroup] +2023-11-12T09:04:03.9680842Z ##[group]/datum/unit_test/crayon_naming +2023-11-12T09:04:03.9683784Z PASS /datum/unit_test/crayon_naming 0s +2023-11-12T09:04:03.9686430Z ##[endgroup] +2023-11-12T09:04:03.9815420Z ##[group]/datum/unit_test/dcs_get_id_from_arguments +2023-11-12T09:04:03.9822614Z PASS /datum/unit_test/dcs_get_id_from_arguments 0s +2023-11-12T09:04:03.9825219Z ##[endgroup] +2023-11-12T09:04:03.9952914Z ##[group]/datum/unit_test/designs +2023-11-12T09:04:04.0032294Z PASS /datum/unit_test/designs 0.1s +2023-11-12T09:04:04.0034986Z ##[endgroup] +2023-11-12T09:04:04.0184498Z ##[group]/datum/unit_test/dismemberment +2023-11-12T09:04:04.0687805Z PASS /datum/unit_test/dismemberment 0s +2023-11-12T09:04:04.0690374Z ##[endgroup] +2023-11-12T09:04:04.1062552Z ##[group]/datum/unit_test/door_access_check +2023-11-12T09:04:04.1315486Z PASS /datum/unit_test/door_access_check 0s +2023-11-12T09:04:04.1318637Z ##[endgroup] +2023-11-12T09:04:04.1659906Z ##[group]/datum/unit_test/contents_barfer +2023-11-12T09:04:04.1881762Z PASS /datum/unit_test/contents_barfer 0s +2023-11-12T09:04:04.1884275Z ##[endgroup] +2023-11-12T09:04:04.2328534Z ##[group]/datum/unit_test/space_dragon_expiration +2023-11-12T09:04:04.2672064Z PASS /datum/unit_test/space_dragon_expiration 0s +2023-11-12T09:04:04.2674522Z ##[endgroup] +2023-11-12T09:04:04.3282341Z ##[group]/datum/unit_test/glass_style_icons +2023-11-12T09:04:04.3517947Z PASS /datum/unit_test/glass_style_icons 0s +2023-11-12T09:04:04.3520368Z ##[endgroup] +2023-11-12T09:04:04.3761901Z ##[group]/datum/unit_test/glass_style_functionality +2023-11-12T09:04:04.3773186Z PASS /datum/unit_test/glass_style_functionality 0s +2023-11-12T09:04:04.3775791Z ##[endgroup] +2023-11-12T09:04:04.3908269Z ##[group]/datum/unit_test/drink_icons +2023-11-12T09:04:04.4155215Z PASS /datum/unit_test/drink_icons 0.1s +2023-11-12T09:04:04.4157609Z ##[endgroup] +2023-11-12T09:04:04.4303228Z ##[group]/datum/unit_test/dummy_spawn_species +2023-11-12T09:04:05.4828810Z PASS /datum/unit_test/dummy_spawn_species 1s +2023-11-12T09:04:05.4829704Z ##[endgroup] +2023-11-12T09:04:05.5166735Z ##[group]/datum/unit_test/dummy_spawn_outfit +2023-11-12T09:04:05.5400845Z Job type /datum/job/ai could not be retrieved from SSjob +2023-11-12T09:04:06.0232636Z PASS /datum/unit_test/dummy_spawn_outfit 0.5s +2023-11-12T09:04:06.0234589Z ##[endgroup] +2023-11-12T09:04:06.0505202Z ##[group]/datum/unit_test/dynamic_roundstart_ruleset_sanity +2023-11-12T09:04:06.0508804Z PASS /datum/unit_test/dynamic_roundstart_ruleset_sanity 0s +2023-11-12T09:04:06.0511050Z ##[endgroup] +2023-11-12T09:04:06.0637233Z ##[group]/datum/unit_test/dynamic_unique_antag_flags +2023-11-12T09:04:06.0640294Z PASS /datum/unit_test/dynamic_unique_antag_flags 0s +2023-11-12T09:04:06.0642513Z ##[endgroup] +2023-11-12T09:04:06.0770713Z ##[group]/datum/unit_test/egg_glands +2023-11-12T09:04:06.1407083Z PASS /datum/unit_test/egg_glands 0.1s +2023-11-12T09:04:06.1408405Z ##[endgroup] +2023-11-12T09:04:06.1628261Z ##[group]/datum/unit_test/emoting +2023-11-12T09:04:06.1818671Z PASS /datum/unit_test/emoting 0s +2023-11-12T09:04:06.1821362Z ##[endgroup] +2023-11-12T09:04:06.2077157Z ##[group]/datum/unit_test/ensure_subtree_operational_datum +2023-11-12T09:04:08.1731821Z PASS /datum/unit_test/ensure_subtree_operational_datum 1.9s +2023-11-12T09:04:08.1733285Z ##[endgroup] +2023-11-12T09:04:08.7539706Z ##[group]/datum/unit_test/explosion_action +2023-11-12T09:04:08.8465799Z PASS /datum/unit_test/explosion_action 0.1s +2023-11-12T09:04:08.8468184Z ##[endgroup] +2023-11-12T09:04:08.9010946Z ##[group]/datum/unit_test/fish_size_weight +2023-11-12T09:04:08.9019514Z PASS /datum/unit_test/fish_size_weight 0s +2023-11-12T09:04:08.9022220Z ##[endgroup] +2023-11-12T09:04:08.9154882Z ##[group]/datum/unit_test/fish_breeding +2023-11-12T09:04:08.9227664Z PASS /datum/unit_test/fish_breeding 0s +2023-11-12T09:04:08.9230704Z ##[endgroup] +2023-11-12T09:04:08.9389958Z ##[group]/datum/unit_test/fish_evolution +2023-11-12T09:04:08.9418165Z PASS /datum/unit_test/fish_evolution 0s +2023-11-12T09:04:08.9421366Z ##[endgroup] +2023-11-12T09:04:08.9631338Z ##[group]/datum/unit_test/fish_scanning +2023-11-12T09:04:08.9635076Z PASS /datum/unit_test/fish_scanning 0s +2023-11-12T09:04:08.9638063Z ##[endgroup] +2023-11-12T09:04:08.9772162Z ##[group]/datum/unit_test/font_awesome_icons +2023-11-12T09:04:08.9779113Z CSS Actual: 96991 +2023-11-12T09:04:09.3976724Z PASS /datum/unit_test/font_awesome_icons 0.4s +2023-11-12T09:04:09.3978084Z ##[endgroup] +2023-11-12T09:04:09.4388919Z ##[group]/datum/unit_test/food_edibility_check +2023-11-12T09:04:11.4659822Z PASS /datum/unit_test/food_edibility_check 2s +2023-11-12T09:04:11.4661512Z ##[endgroup] +2023-11-12T09:04:11.4957968Z ##[group]/datum/unit_test/full_heal_heals_organs +2023-11-12T09:04:11.5147883Z PASS /datum/unit_test/full_heal_heals_organs 0.1s +2023-11-12T09:04:11.5149360Z ##[endgroup] +2023-11-12T09:04:11.5413116Z ##[group]/datum/unit_test/full_heal_regenerates_organs +2023-11-12T09:04:11.5651258Z PASS /datum/unit_test/full_heal_regenerates_organs 0s +2023-11-12T09:04:11.5653018Z ##[endgroup] +2023-11-12T09:04:11.6325061Z ##[group]/datum/unit_test/full_heal_damage_types +2023-11-12T09:04:11.6518216Z PASS /datum/unit_test/full_heal_damage_types 0s +2023-11-12T09:04:11.6519698Z ##[endgroup] +2023-11-12T09:04:11.7209709Z ##[group]/datum/unit_test/atmospheric_gas_transfer +2023-11-12T09:04:11.7227226Z PASS /datum/unit_test/atmospheric_gas_transfer 0s +2023-11-12T09:04:11.7228891Z ##[endgroup] +2023-11-12T09:04:11.7822095Z ##[group]/datum/unit_test/get_turf_pixel +2023-11-12T09:04:11.7849880Z PASS /datum/unit_test/get_turf_pixel 0s +2023-11-12T09:04:11.7851756Z ##[endgroup] +2023-11-12T09:04:11.8495917Z ##[group]/datum/unit_test/geyser +2023-11-12T09:04:11.8516781Z PASS /datum/unit_test/geyser 0s +2023-11-12T09:04:11.8518776Z ##[endgroup] +2023-11-12T09:04:11.9115770Z ##[group]/datum/unit_test/greyscale_item_icon_states +2023-11-12T09:04:11.9172841Z PASS /datum/unit_test/greyscale_item_icon_states 0s +2023-11-12T09:04:11.9174524Z ##[endgroup] +2023-11-12T09:04:11.9770664Z ##[group]/datum/unit_test/greyscale_color_count +2023-11-12T09:04:11.9908294Z PASS /datum/unit_test/greyscale_color_count 0s +2023-11-12T09:04:11.9910694Z ##[endgroup] +2023-11-12T09:04:12.0513128Z ##[group]/datum/unit_test/hallucination_icons +2023-11-12T09:04:12.2294786Z PASS /datum/unit_test/hallucination_icons 0.2s +2023-11-12T09:04:12.2296061Z ##[endgroup] +2023-11-12T09:04:12.2752905Z ##[group]/datum/unit_test/heretic_knowledge +2023-11-12T09:04:12.2797900Z PASS /datum/unit_test/heretic_knowledge 0s +2023-11-12T09:04:12.2800226Z ##[endgroup] +2023-11-12T09:04:12.3526741Z ##[group]/datum/unit_test/heretic_main_paths +2023-11-12T09:04:12.3530666Z PASS /datum/unit_test/heretic_main_paths 0s +2023-11-12T09:04:12.3532858Z ##[endgroup] +2023-11-12T09:04:12.3985035Z ##[group]/datum/unit_test/heretic_rituals +2023-11-12T09:04:12.4878733Z PASS /datum/unit_test/heretic_rituals 0.1s +2023-11-12T09:04:12.4880607Z ##[endgroup] +2023-11-12T09:04:12.5120786Z ##[group]/datum/unit_test/high_five +2023-11-12T09:04:12.5591361Z PASS /datum/unit_test/high_five 0s +2023-11-12T09:04:12.5593593Z ##[endgroup] +2023-11-12T09:04:12.6154998Z ##[group]/datum/unit_test/high_five_too_slow +2023-11-12T09:04:12.6462178Z PASS /datum/unit_test/high_five_too_slow 0s +2023-11-12T09:04:12.6464631Z ##[endgroup] +2023-11-12T09:04:12.6825675Z ##[group]/datum/unit_test/high_five_walk_away +2023-11-12T09:04:12.7302468Z PASS /datum/unit_test/high_five_walk_away 0.1s +2023-11-12T09:04:12.7304078Z ##[endgroup] +2023-11-12T09:04:12.7849321Z ##[group]/datum/unit_test/hanukkah_2123 +2023-11-12T09:04:12.7857129Z PASS /datum/unit_test/hanukkah_2123 0s +2023-11-12T09:04:12.7859467Z ##[endgroup] +2023-11-12T09:04:12.7985283Z ##[group]/datum/unit_test/ramadan_2165 +2023-11-12T09:04:12.7988232Z PASS /datum/unit_test/ramadan_2165 0s +2023-11-12T09:04:12.7990308Z ##[endgroup] +2023-11-12T09:04:12.8115461Z ##[group]/datum/unit_test/thanksgiving_2020 +2023-11-12T09:04:12.8118309Z PASS /datum/unit_test/thanksgiving_2020 0s +2023-11-12T09:04:12.8120732Z ##[endgroup] +2023-11-12T09:04:12.8276159Z ##[group]/datum/unit_test/mother_3683 +2023-11-12T09:04:12.8278795Z PASS /datum/unit_test/mother_3683 0s +2023-11-12T09:04:12.8281149Z ##[endgroup] +2023-11-12T09:04:12.8402992Z ##[group]/datum/unit_test/hello_2020 +2023-11-12T09:04:12.8405520Z PASS /datum/unit_test/hello_2020 0s +2023-11-12T09:04:12.8408004Z ##[endgroup] +2023-11-12T09:04:12.8529607Z ##[group]/datum/unit_test/new_year_1983 +2023-11-12T09:04:12.8531956Z PASS /datum/unit_test/new_year_1983 0s +2023-11-12T09:04:12.8534286Z ##[endgroup] +2023-11-12T09:04:12.8655830Z ##[group]/datum/unit_test/moth_week_2020 +2023-11-12T09:04:12.8735184Z PASS /datum/unit_test/moth_week_2020 0s +2023-11-12T09:04:12.8737646Z ##[endgroup] +2023-11-12T09:04:12.8963722Z ##[group]/datum/unit_test/hulk_attack +2023-11-12T09:04:12.9298282Z PASS /datum/unit_test/hulk_attack 0.1s +2023-11-12T09:04:12.9300378Z ##[endgroup] +2023-11-12T09:04:12.9631065Z ##[group]/datum/unit_test/hulk_north_star +2023-11-12T09:04:12.9971964Z PASS /datum/unit_test/hulk_north_star 0s +2023-11-12T09:04:12.9974198Z ##[endgroup] +2023-11-12T09:04:13.0684879Z ##[group]/datum/unit_test/human_through_recycler +2023-11-12T09:04:13.1042839Z PASS /datum/unit_test/human_through_recycler 0.1s +2023-11-12T09:04:13.1045346Z ##[endgroup] +2023-11-12T09:04:13.1302366Z ##[group]/datum/unit_test/hunger_curse +2023-11-12T09:04:13.1487751Z PASS /datum/unit_test/hunger_curse 0s +2023-11-12T09:04:13.1490362Z ##[endgroup] +2023-11-12T09:04:13.1724484Z ##[group]/datum/unit_test/hydroponics_extractor_storage +2023-11-12T09:04:13.2045321Z PASS /datum/unit_test/hydroponics_extractor_storage 0.1s +2023-11-12T09:04:13.2047744Z ##[endgroup] +2023-11-12T09:04:13.2424994Z ##[group]/datum/unit_test/hydroponics_harvest +2023-11-12T09:04:13.3172098Z PASS /datum/unit_test/hydroponics_harvest 0.1s +2023-11-12T09:04:13.3173538Z ##[endgroup] +2023-11-12T09:04:13.3896863Z ##[group]/datum/unit_test/hydroponics_self_mutation +2023-11-12T09:04:13.4546321Z PASS /datum/unit_test/hydroponics_self_mutation 0.1s +2023-11-12T09:04:13.4548349Z ##[endgroup] +2023-11-12T09:04:13.5127280Z ##[group]/datum/unit_test/hydroponics_validate_genes +2023-11-12T09:04:13.5761114Z PASS /datum/unit_test/hydroponics_validate_genes 0s +2023-11-12T09:04:13.5765353Z ##[endgroup] +2023-11-12T09:04:13.5897676Z ##[group]/datum/unit_test/defined_inhand_icon_states +2023-11-12T09:04:14.5257265Z Notice - Possible inhand icon matches found. It is best to be explicit with inhand sprite values. +2023-11-12T09:04:14.5260490Z /obj/item/clothing/head/costume/lizard does not have an inhand_icon_state value - Possible matching sprites for "lizard" found in: 'icons/mob/inhands/animal_item_lefthand.dmi' & 'icons/mob/inhands/animal_item_righthand.dmi' +2023-11-12T09:04:14.5265334Z /obj/item/clothing/head/costume/paper_hat does not have an inhand_icon_state value - Possible matching sprites for "paper" found in: 'icons/mob/inhands/items_lefthand.dmi' & 'icons/mob/inhands/items_righthand.dmi' +2023-11-12T09:04:14.5269130Z /obj/item/clothing/head/collectable/paper does not have an inhand_icon_state value - Possible matching sprites for "paper" found in: 'icons/mob/inhands/items_lefthand.dmi' & 'icons/mob/inhands/items_righthand.dmi' +2023-11-12T09:04:14.5272911Z /obj/item/clothing/head/cowboy does not have an inhand_icon_state value - Possible matching sprites for "cowboy_hat_brown" found in: 'icons/mob/inhands/clothing/hats_lefthand.dmi' & 'icons/mob/inhands/clothing/hats_righthand.dmi' +2023-11-12T09:04:14.5276899Z /obj/item/clothing/head/chaplain/habit_veil does not have an inhand_icon_state value - Possible matching sprites for "nun_hood_alt" found in: 'icons/mob/inhands/clothing/hats_lefthand.dmi' & 'icons/mob/inhands/clothing/hats_righthand.dmi' +2023-11-12T09:04:14.5280655Z /obj/item/clothing/mask/animal/small/fox does not have an inhand_icon_state value - Possible matching sprites for "fox" found in: 'icons/mob/inhands/pets_held_rh.dmi' & 'icons/mob/inhands/pets_held_lh.dmi' +2023-11-12T09:04:14.5284605Z /obj/item/clothing/mask/animal/small/fox/cursed does not have an inhand_icon_state value - Possible matching sprites for "fox" found in: 'icons/mob/inhands/pets_held_rh.dmi' & 'icons/mob/inhands/pets_held_lh.dmi' +2023-11-12T09:04:14.5288384Z /obj/item/clothing/accessory/pride does not have an inhand_icon_state value - Possible matching sprites for "pride" found in: 'icons/mob/inhands/weapons/hammers_lefthand.dmi' & 'icons/mob/inhands/weapons/hammers_righthand.dmi' +2023-11-12T09:04:14.5292328Z /obj/item/clothing/suit/apron/overalls does not have an inhand_icon_state value - Possible matching sprites for "overalls" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi' +2023-11-12T09:04:14.5296324Z /obj/item/clothing/suit/caution does not have an inhand_icon_state value - Possible matching sprites for "caution" found in: 'icons/mob/inhands/equipment/custodial_righthand.dmi' & 'icons/mob/inhands/equipment/custodial_lefthand.dmi' +2023-11-12T09:04:14.5300339Z /obj/item/clothing/suit/chaplainsuit/habit does not have an inhand_icon_state value - Possible matching sprites for "habit" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi' +2023-11-12T09:04:14.5305034Z /obj/item/clothing/glasses/hud/health/sunglasses does not have an inhand_icon_state value - Possible matching sprites for "sunhudmed" found in: 'icons/mob/inhands/clothing/glasses_righthand.dmi' & 'icons/mob/inhands/clothing/glasses_lefthand.dmi' +2023-11-12T09:04:14.5309450Z /obj/item/clothing/glasses/hud/security/sunglasses does not have an inhand_icon_state value - Possible matching sprites for "sunhudsec" found in: 'icons/mob/inhands/clothing/glasses_righthand.dmi' & 'icons/mob/inhands/clothing/glasses_lefthand.dmi' +2023-11-12T09:04:14.5313568Z /obj/item/mecha_parts/mecha_equipment/generator does not have an inhand_icon_state value - Possible matching sprites for "tesla" found in: 'icons/mob/inhands/weapons/guns_righthand.dmi' & 'icons/mob/inhands/weapons/guns_lefthand.dmi' +2023-11-12T09:04:14.5317158Z /obj/item/food/candy does not have an inhand_icon_state value - Possible matching sprites for "candy" found in: 'icons/mob/inhands/items/food_righthand.dmi' & 'icons/mob/inhands/items/food_lefthand.dmi' +2023-11-12T09:04:14.5320529Z /obj/item/food/chips does not have an inhand_icon_state value - Possible matching sprites for "chips" found in: 'icons/mob/inhands/items/food_righthand.dmi' & 'icons/mob/inhands/items/food_lefthand.dmi' +2023-11-12T09:04:14.5324489Z /obj/item/storage/bag/ore does not have an inhand_icon_state value - Possible matching sprites for "satchel" found in: 'icons/mob/inhands/equipment/backpack_righthand.dmi' & 'icons/mob/inhands/equipment/backpack_lefthand.dmi' +2023-11-12T09:04:14.5328382Z /obj/item/storage/bag/ore/cyborg does not have an inhand_icon_state value - Possible matching sprites for "satchel" found in: 'icons/mob/inhands/equipment/backpack_righthand.dmi' & 'icons/mob/inhands/equipment/backpack_lefthand.dmi' +2023-11-12T09:04:14.5332211Z /obj/item/melee/energy/blade does not have an inhand_icon_state value - Possible matching sprites for "blade" found in: 'icons/mob/inhands/weapons/swords_righthand.dmi' & 'icons/mob/inhands/weapons/swords_lefthand.dmi' +2023-11-12T09:04:14.5335835Z /obj/item/fireaxe does not have an inhand_icon_state value - Possible matching sprites for "fireaxe0" found in: 'icons/mob/inhands/weapons/axes_lefthand.dmi' & 'icons/mob/inhands/weapons/axes_righthand.dmi' +2023-11-12T09:04:14.5339617Z /obj/item/fireaxe/boneaxe does not have an inhand_icon_state value - Possible matching sprites for "bone_axe0" found in: 'icons/mob/inhands/weapons/axes_lefthand.dmi' & 'icons/mob/inhands/weapons/axes_righthand.dmi' +2023-11-12T09:04:14.5343300Z /obj/item/fireaxe/metal_h2_axe does not have an inhand_icon_state value - Possible matching sprites for "metalh2_axe0" found in: 'icons/mob/inhands/weapons/axes_lefthand.dmi' & 'icons/mob/inhands/weapons/axes_righthand.dmi' +2023-11-12T09:04:14.5347106Z /obj/item/crowbar/mechremoval does not have an inhand_icon_state value - Possible matching sprites for "mechremoval0" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi' +2023-11-12T09:04:14.5350901Z /obj/item/mod/module/medbeam does not have an inhand_icon_state value - Possible matching sprites for "chronogun" found in: 'icons/mob/inhands/weapons/guns_righthand.dmi' & 'icons/mob/inhands/weapons/guns_lefthand.dmi' +2023-11-12T09:04:14.5354609Z /obj/item/mod/module/welding does not have an inhand_icon_state value - Possible matching sprites for "welding" found in: 'icons/mob/inhands/clothing/masks_righthand.dmi' & 'icons/mob/inhands/clothing/masks_lefthand.dmi' +2023-11-12T09:04:14.5358402Z /obj/item/mod/module/mister does not have an inhand_icon_state value - Possible matching sprites for "mister" found in: 'icons/mob/inhands/equipment/mister_righthand.dmi' & 'icons/mob/inhands/equipment/mister_lefthand.dmi' +2023-11-12T09:04:14.5362405Z /obj/item/mod/module/mister/atmos does not have an inhand_icon_state value - Possible matching sprites for "mister" found in: 'icons/mob/inhands/equipment/mister_righthand.dmi' & 'icons/mob/inhands/equipment/mister_lefthand.dmi' +2023-11-12T09:04:14.5366326Z /obj/item/mod/module/jetpack does not have an inhand_icon_state value - Possible matching sprites for "jetpack" found in: 'icons/mob/inhands/equipment/jetpacks_righthand.dmi' & 'icons/mob/inhands/equipment/jetpacks_lefthand.dmi' +2023-11-12T09:04:14.5370513Z /obj/item/mod/module/flashlight does not have an inhand_icon_state value - Possible matching sprites for "flashlight" found in: 'icons/mob/inhands/items/devices_righthand.dmi' & 'icons/mob/inhands/items/devices_lefthand.dmi' +2023-11-12T09:04:14.5374077Z /obj/item/mod/module/stamp does not have an inhand_icon_state value - Possible matching sprites for "stamp" found in: 'icons/mob/inhands/items_lefthand.dmi' & 'icons/mob/inhands/items_righthand.dmi' +2023-11-12T09:04:14.5377613Z /obj/item/mod/module/holster does not have an inhand_icon_state value - Possible matching sprites for "holster" found in: 'icons/mob/inhands/equipment/belt_lefthand.dmi' & 'icons/mob/inhands/equipment/belt_righthand.dmi' +2023-11-12T09:04:14.5381427Z /obj/item/mod/module/megaphone does not have an inhand_icon_state value - Possible matching sprites for "megaphone" found in: 'icons/mob/inhands/items/megaphone_righthand.dmi' & 'icons/mob/inhands/items/megaphone_lefthand.dmi' +2023-11-12T09:04:14.5386246Z /obj/item/mod/module/drill does not have an inhand_icon_state value - Possible matching sprites for "drill" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi' +2023-11-12T09:04:14.5390973Z /obj/item/mod/module/tem does not have an inhand_icon_state value - Possible matching sprites for "chronogun" found in: 'icons/mob/inhands/weapons/guns_righthand.dmi' & 'icons/mob/inhands/weapons/guns_lefthand.dmi' +2023-11-12T09:04:14.5394601Z /obj/item/reagent_containers/cup/soda_cans does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2023-11-12T09:04:14.5396934Z /obj/item/reagent_containers/cup/soda_cans/random does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2023-11-12T09:04:14.5399759Z /obj/item/reagent_containers/cup/soda_cans/cola does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2023-11-12T09:04:14.5402114Z /obj/item/reagent_containers/cup/soda_cans/tonic does not have an inhand_icon_state value - Possible matching sprites for "tonic" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2023-11-12T09:04:14.5404446Z /obj/item/reagent_containers/cup/soda_cans/sodawater does not have an inhand_icon_state value - Possible matching sprites for "sodawater" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2023-11-12T09:04:14.5406584Z /obj/item/reagent_containers/cup/soda_cans/lemon_lime does not have an inhand_icon_state value - Possible matching sprites for "lemon-lime" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2023-11-12T09:04:14.5408970Z /obj/item/reagent_containers/cup/soda_cans/space_up does not have an inhand_icon_state value - Possible matching sprites for "space-up" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2023-11-12T09:04:14.5411153Z /obj/item/reagent_containers/cup/soda_cans/starkist does not have an inhand_icon_state value - Possible matching sprites for "starkist" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2023-11-12T09:04:14.5413351Z /obj/item/reagent_containers/cup/soda_cans/space_mountain_wind does not have an inhand_icon_state value - Possible matching sprites for "space_mountain_wind" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2023-11-12T09:04:14.5415775Z /obj/item/reagent_containers/cup/soda_cans/thirteenloko does not have an inhand_icon_state value - Possible matching sprites for "thirteen_loko" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2023-11-12T09:04:14.5417918Z /obj/item/reagent_containers/cup/soda_cans/dr_gibb does not have an inhand_icon_state value - Possible matching sprites for "dr_gibb" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2023-11-12T09:04:14.5420047Z /obj/item/reagent_containers/cup/soda_cans/pwr_game does not have an inhand_icon_state value - Possible matching sprites for "purple_can" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2023-11-12T09:04:14.5422176Z /obj/item/reagent_containers/cup/soda_cans/wellcheers does not have an inhand_icon_state value - Possible matching sprites for "wellcheers" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2023-11-12T09:04:14.5424331Z /obj/item/reagent_containers/cup/soda_cans/volt_energy does not have an inhand_icon_state value - Possible matching sprites for "volt_energy" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2023-11-12T09:04:14.5426605Z /obj/item/reagent_containers/cup/soda_cans/melon_soda does not have an inhand_icon_state value - Possible matching sprites for "melon_soda" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2023-11-12T09:04:14.5428700Z /obj/item/reagent_containers/cup/soda_cans/beer does not have an inhand_icon_state value - Possible matching sprites for "space_beer" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2023-11-12T09:04:14.5430842Z /obj/item/reagent_containers/cup/soda_cans/beer/rice does not have an inhand_icon_state value - Possible matching sprites for "ebisu" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2023-11-12T09:04:14.5432971Z /obj/item/reagent_containers/cup/glass/coffee does not have an inhand_icon_state value - Possible matching sprites for "coffee" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2023-11-12T09:04:14.5435080Z /obj/item/reagent_containers/chem_pack does not have an inhand_icon_state value - Possible matching sprites for "chempack" found in: 'icons/mob/inhands/equipment/backpack_righthand.dmi' & 'icons/mob/inhands/equipment/backpack_lefthand.dmi' +2023-11-12T09:04:14.5437143Z /obj/item/toy/talking/codex_gigas does not have an inhand_icon_state value - Possible matching sprites for "demonomicon" found in: 'icons/mob/inhands/items/books_righthand.dmi' & 'icons/mob/inhands/items/books_lefthand.dmi' +2023-11-12T09:04:14.5439342Z /obj/item/toy/figure/chef does not have an inhand_icon_state value - Possible matching sprites for "chef" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi' +2023-11-12T09:04:14.5441474Z /obj/item/toy/figure/clown does not have an inhand_icon_state value - Possible matching sprites for "clown" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi' +2023-11-12T09:04:14.5443437Z /obj/item/toy/figure/janitor does not have an inhand_icon_state value - Possible matching sprites for "janitor" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi' +2023-11-12T09:04:14.5445333Z /obj/item/toy/cards/cardhand does not have an inhand_icon_state value - Possible matching sprites for "nothing" found in: 'icons/mob/inhands/items_lefthand.dmi' & 'icons/mob/inhands/items_righthand.dmi' +2023-11-12T09:04:14.5447188Z /obj/item/book/codex_gigas does not have an inhand_icon_state value - Possible matching sprites for "demonomicon" found in: 'icons/mob/inhands/items/books_righthand.dmi' & 'icons/mob/inhands/items/books_lefthand.dmi' +2023-11-12T09:04:14.5449271Z /obj/item/pipe_dispenser does not have an inhand_icon_state value - Possible matching sprites for "rpd" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi' +2023-11-12T09:04:14.5451184Z /obj/item/sbeacondrop does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_righthand.dmi' & 'icons/mob/inhands/items/devices_lefthand.dmi' +2023-11-12T09:04:14.5453081Z /obj/item/sbeacondrop/bomb does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_righthand.dmi' & 'icons/mob/inhands/items/devices_lefthand.dmi' +2023-11-12T09:04:14.5454974Z /obj/item/sbeacondrop/emp does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_righthand.dmi' & 'icons/mob/inhands/items/devices_lefthand.dmi' +2023-11-12T09:04:14.5456921Z /obj/item/sbeacondrop/powersink does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_righthand.dmi' & 'icons/mob/inhands/items/devices_lefthand.dmi' +2023-11-12T09:04:14.5459034Z /obj/item/sbeacondrop/clownbomb does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_righthand.dmi' & 'icons/mob/inhands/items/devices_lefthand.dmi' +2023-11-12T09:04:14.5460981Z /obj/item/sbeacondrop/horse does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_righthand.dmi' & 'icons/mob/inhands/items/devices_lefthand.dmi' +2023-11-12T09:04:14.5463020Z /obj/item/stack/medical/bruise_pack does not have an inhand_icon_state value - Possible matching sprites for "brutepack" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2023-11-12T09:04:14.5465143Z /obj/item/stack/medical/ointment does not have an inhand_icon_state value - Possible matching sprites for "ointment" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2023-11-12T09:04:14.5467227Z /obj/item/stack/tile/fairygrass does not have an inhand_icon_state value - Possible matching sprites for "tile_fairygrass" found in: 'icons/mob/inhands/items/tiles_righthand.dmi' & 'icons/mob/inhands/items/tiles_lefthand.dmi' +2023-11-12T09:04:14.5469256Z /obj/item/organ/internal/heart/gland/blood does not have an inhand_icon_state value - Possible matching sprites for "egg" found in: 'icons/mob/inhands/items/food_righthand.dmi' & 'icons/mob/inhands/items/food_lefthand.dmi' +2023-11-12T09:04:14.5471272Z /obj/item/organ/internal/heart/gland/egg does not have an inhand_icon_state value - Possible matching sprites for "egg" found in: 'icons/mob/inhands/items/food_righthand.dmi' & 'icons/mob/inhands/items/food_lefthand.dmi' +2023-11-12T09:04:14.5473406Z /obj/item/organ/internal/heart/gland/quantum does not have an inhand_icon_state value - Possible matching sprites for "emp" found in: 'icons/mob/inhands/equipment/security_lefthand.dmi' & 'icons/mob/inhands/equipment/security_righthand.dmi' +2023-11-12T09:04:14.5475638Z /obj/item/organ/internal/heart/gland/trauma does not have an inhand_icon_state value - Possible matching sprites for "emp" found in: 'icons/mob/inhands/equipment/security_lefthand.dmi' & 'icons/mob/inhands/equipment/security_righthand.dmi' +2023-11-12T09:04:14.5477679Z /obj/item/minespawner does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_righthand.dmi' & 'icons/mob/inhands/items/devices_lefthand.dmi' +2023-11-12T09:04:14.5479615Z /obj/item/boxcutter does not have an inhand_icon_state value - Possible matching sprites for "boxcutter" found in: 'icons/mob/inhands/equipment/boxcutter_righthand.dmi' & 'icons/mob/inhands/equipment/boxcutter_lefthand.dmi' +2023-11-12T09:04:14.5482091Z /obj/item/boxcutter/extended does not have an inhand_icon_state value - Possible matching sprites for "boxcutter" found in: 'icons/mob/inhands/equipment/boxcutter_righthand.dmi' & 'icons/mob/inhands/equipment/boxcutter_lefthand.dmi' +2023-11-12T09:04:14.5484159Z /obj/item/pushbroom does not have an inhand_icon_state value - Possible matching sprites for "broom0" found in: 'icons/mob/inhands/equipment/custodial_righthand.dmi' & 'icons/mob/inhands/equipment/custodial_lefthand.dmi' +2023-11-12T09:04:14.5486168Z /obj/item/pushbroom/cyborg does not have an inhand_icon_state value - Possible matching sprites for "broom0" found in: 'icons/mob/inhands/equipment/custodial_righthand.dmi' & 'icons/mob/inhands/equipment/custodial_lefthand.dmi' +2023-11-12T09:04:14.5488176Z /obj/item/chainsaw does not have an inhand_icon_state value - Possible matching sprites for "chainsaw_off" found in: 'icons/mob/inhands/weapons/chainsaw_righthand.dmi' & 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi' +2023-11-12T09:04:14.5490187Z /obj/item/chainsaw/doomslayer does not have an inhand_icon_state value - Possible matching sprites for "chainsaw_off" found in: 'icons/mob/inhands/weapons/chainsaw_righthand.dmi' & 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi' +2023-11-12T09:04:14.5492367Z /obj/item/kitchen/fork does not have an inhand_icon_state value - Possible matching sprites for "fork" found in: 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' & 'icons/mob/inhands/equipment/kitchen_righthand.dmi' +2023-11-12T09:04:14.5494352Z /obj/item/kitchen/spoon does not have an inhand_icon_state value - Possible matching sprites for "spoon" found in: 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' & 'icons/mob/inhands/equipment/kitchen_righthand.dmi' +2023-11-12T09:04:14.5496447Z /obj/item/kitchen/spoon/plastic does not have an inhand_icon_state value - Possible matching sprites for "plastic_spoon" found in: 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' & 'icons/mob/inhands/equipment/kitchen_righthand.dmi' +2023-11-12T09:04:14.5498538Z /obj/item/pitchfork does not have an inhand_icon_state value - Possible matching sprites for "pitchfork0" found in: 'icons/mob/inhands/weapons/polearms_lefthand.dmi' & 'icons/mob/inhands/weapons/polearms_righthand.dmi' +2023-11-12T09:04:14.5500478Z /obj/item/godstaff does not have an inhand_icon_state value - Possible matching sprites for "godstaff-red" found in: 'icons/mob/inhands/weapons/staves_lefthand.dmi' & 'icons/mob/inhands/weapons/staves_righthand.dmi' +2023-11-12T09:04:14.5502414Z /obj/item/godstaff/red does not have an inhand_icon_state value - Possible matching sprites for "godstaff-red" found in: 'icons/mob/inhands/weapons/staves_lefthand.dmi' & 'icons/mob/inhands/weapons/staves_righthand.dmi' +2023-11-12T09:04:14.5504543Z /obj/item/godstaff/blue does not have an inhand_icon_state value - Possible matching sprites for "godstaff-blue" found in: 'icons/mob/inhands/weapons/staves_lefthand.dmi' & 'icons/mob/inhands/weapons/staves_righthand.dmi' +2023-11-12T09:04:14.5506586Z /obj/item/singularityhammer does not have an inhand_icon_state value - Possible matching sprites for "singularity_hammer0" found in: 'icons/mob/inhands/weapons/hammers_lefthand.dmi' & 'icons/mob/inhands/weapons/hammers_righthand.dmi' +2023-11-12T09:04:14.5508606Z /obj/item/mjollnir does not have an inhand_icon_state value - Possible matching sprites for "mjollnir0" found in: 'icons/mob/inhands/weapons/hammers_lefthand.dmi' & 'icons/mob/inhands/weapons/hammers_righthand.dmi' +2023-11-12T09:04:14.5510522Z /obj/item/spear does not have an inhand_icon_state value - Possible matching sprites for "spearglass0" found in: 'icons/mob/inhands/weapons/polearms_lefthand.dmi' & 'icons/mob/inhands/weapons/polearms_righthand.dmi' +2023-11-12T09:04:14.5512535Z /obj/item/spear/explosive does not have an inhand_icon_state value - Possible matching sprites for "spearbomb0" found in: 'icons/mob/inhands/weapons/polearms_lefthand.dmi' & 'icons/mob/inhands/weapons/polearms_righthand.dmi' +2023-11-12T09:04:14.5514725Z /obj/item/spear/grey_tide does not have an inhand_icon_state value - Possible matching sprites for "spearglass0" found in: 'icons/mob/inhands/weapons/polearms_lefthand.dmi' & 'icons/mob/inhands/weapons/polearms_righthand.dmi' +2023-11-12T09:04:14.5516757Z /obj/item/spear/bonespear does not have an inhand_icon_state value - Possible matching sprites for "bone_spear0" found in: 'icons/mob/inhands/weapons/polearms_lefthand.dmi' & 'icons/mob/inhands/weapons/polearms_righthand.dmi' +2023-11-12T09:04:14.5518804Z /obj/item/spear/bamboospear does not have an inhand_icon_state value - Possible matching sprites for "bamboo_spear0" found in: 'icons/mob/inhands/weapons/polearms_lefthand.dmi' & 'icons/mob/inhands/weapons/polearms_righthand.dmi' +2023-11-12T09:04:14.5520748Z /obj/item/sticker/robot does not have an inhand_icon_state value - Possible matching sprites for "tile" found in: 'icons/mob/inhands/items/tiles_righthand.dmi' & 'icons/mob/inhands/items/tiles_lefthand.dmi' +2023-11-12T09:04:14.5522828Z /obj/item/trash/candy does not have an inhand_icon_state value - Possible matching sprites for "candy" found in: 'icons/mob/inhands/items/food_righthand.dmi' & 'icons/mob/inhands/items/food_lefthand.dmi' +2023-11-12T09:04:14.5524800Z /obj/item/trash/chips does not have an inhand_icon_state value - Possible matching sprites for "chips" found in: 'icons/mob/inhands/items/food_righthand.dmi' & 'icons/mob/inhands/items/food_lefthand.dmi' +2023-11-12T09:04:14.5526598Z /obj/item/trash/can does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2023-11-12T09:04:14.5528508Z /obj/item/highfrequencyblade does not have an inhand_icon_state value - Possible matching sprites for "hfrequency0" found in: 'icons/mob/inhands/weapons/swords_righthand.dmi' & 'icons/mob/inhands/weapons/swords_lefthand.dmi' +2023-11-12T09:04:14.5530557Z /obj/item/highfrequencyblade/wizard does not have an inhand_icon_state value - Possible matching sprites for "hfrequency0" found in: 'icons/mob/inhands/weapons/swords_righthand.dmi' & 'icons/mob/inhands/weapons/swords_lefthand.dmi' +2023-11-12T09:04:14.5532581Z /obj/item/construction/rcd does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi' +2023-11-12T09:04:14.5534544Z /obj/item/construction/rcd/borg does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi' +2023-11-12T09:04:14.5536539Z /obj/item/construction/rcd/loaded does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi' +2023-11-12T09:04:14.5538610Z /obj/item/construction/rcd/loaded/upgraded does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi' +2023-11-12T09:04:14.5540806Z /obj/item/construction/rcd/ce does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi' +2023-11-12T09:04:14.5542811Z /obj/item/construction/rcd/internal does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi' +2023-11-12T09:04:14.5544792Z /obj/item/construction/rld does not have an inhand_icon_state value - Possible matching sprites for "rld" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi' +2023-11-12T09:04:14.5546898Z /obj/item/construction/rld/mini does not have an inhand_icon_state value - Possible matching sprites for "rld" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi' +2023-11-12T09:04:14.5548856Z /obj/item/construction/rtd does not have an inhand_icon_state value - Possible matching sprites for "rtd" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi' +2023-11-12T09:04:14.5551347Z /obj/item/construction/rtd/loaded does not have an inhand_icon_state value - Possible matching sprites for "rtd" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi' +2023-11-12T09:04:14.5553359Z /obj/item/construction/rtd/admin does not have an inhand_icon_state value - Possible matching sprites for "rtd" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi' +2023-11-12T09:04:14.5555307Z /obj/item/rcd_ammo does not have an inhand_icon_state value - Possible matching sprites for "rcdammo" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi' +2023-11-12T09:04:14.5557368Z /obj/item/rcd_ammo/large does not have an inhand_icon_state value - Possible matching sprites for "rcdammo" found in: 'icons/mob/inhands/equipment/tools_lefthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi' +2023-11-12T09:04:14.5559329Z /obj/item/borg/sight/meson does not have an inhand_icon_state value - Possible matching sprites for "meson" found in: 'icons/mob/inhands/clothing/glasses_righthand.dmi' & 'icons/mob/inhands/clothing/glasses_lefthand.dmi' +2023-11-12T09:04:14.5561639Z /obj/item/harmalarm does not have an inhand_icon_state value - Possible matching sprites for "megaphone" found in: 'icons/mob/inhands/items/megaphone_righthand.dmi' & 'icons/mob/inhands/items/megaphone_lefthand.dmi' +2023-11-12T09:04:14.5564165Z /obj/item/abductor_machine_beacon does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_righthand.dmi' & 'icons/mob/inhands/items/devices_lefthand.dmi' +2023-11-12T09:04:14.5566370Z /obj/item/abductor_machine_beacon/chem_dispenser does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_righthand.dmi' & 'icons/mob/inhands/items/devices_lefthand.dmi' +2023-11-12T09:04:14.5568963Z /obj/item/grown/carbon_rose does not have an inhand_icon_state value - Possible matching sprites for "carbonrose" found in: 'icons/mob/inhands/weapons/plants_lefthand.dmi' & 'icons/mob/inhands/weapons/plants_righthand.dmi' +2023-11-12T09:04:14.5571469Z /obj/item/paint_palette does not have an inhand_icon_state value - Possible matching sprites for "palette" found in: 'icons/mob/inhands/equipment/palette_lefthand.dmi' & 'icons/mob/inhands/equipment/palette_righthand.dmi' +2023-11-12T09:04:14.5573366Z /obj/item/surprise_egg does not have an inhand_icon_state value - Possible matching sprites for "egg" found in: 'icons/mob/inhands/items/food_righthand.dmi' & 'icons/mob/inhands/items/food_lefthand.dmi' +2023-11-12T09:04:14.5575235Z /obj/item/experi_scanner does not have an inhand_icon_state value - Possible matching sprites for "experiscanner" found in: 'icons/mob/inhands/items/devices_righthand.dmi' & 'icons/mob/inhands/items/devices_lefthand.dmi' +2023-11-12T09:04:14.5577115Z /obj/item/fishing_hook does not have an inhand_icon_state value - Possible matching sprites for "hook" found in: 'icons/mob/inhands/weapons/melee_righthand.dmi' & 'icons/mob/inhands/weapons/melee_lefthand.dmi' +2023-11-12T09:04:14.5578938Z /obj/item/shovel/giant_wrench does not have an inhand_icon_state value - Possible matching sprites for "giant_wrench" found in: 'icons/mob/inhands/64x64_righthand.dmi' & 'icons/mob/inhands/64x64_lefthand.dmi' +2023-11-12T09:04:14.5580822Z /obj/item/cursed_katana does not have an inhand_icon_state value - Possible matching sprites for "cursed_katana" found in: 'icons/mob/inhands/weapons/swords_righthand.dmi' & 'icons/mob/inhands/weapons/swords_lefthand.dmi' +2023-11-12T09:04:14.5583032Z /obj/item/guardian_creator/tech does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2023-11-12T09:04:14.5584953Z /obj/item/research_notes does not have an inhand_icon_state value - Possible matching sprites for "paper" found in: 'icons/mob/inhands/items_lefthand.dmi' & 'icons/mob/inhands/items_righthand.dmi' +2023-11-12T09:04:14.5586814Z /obj/item/bonesetter does not have an inhand_icon_state value - Possible matching sprites for "bonesetter" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2023-11-12T09:04:14.5588821Z /obj/item/blood_filter does not have an inhand_icon_state value - Possible matching sprites for "bloodfilter" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2023-11-12T09:04:14.5590945Z /obj/item/mecha_ammo/flashbang does not have an inhand_icon_state value - Possible matching sprites for "flashbang" found in: 'icons/mob/inhands/equipment/security_lefthand.dmi' & 'icons/mob/inhands/equipment/security_righthand.dmi' +2023-11-12T09:04:14.5592385Z PASS /datum/unit_test/defined_inhand_icon_states 1s +2023-11-12T09:04:14.5593067Z ##[endgroup] +2023-11-12T09:04:14.5593503Z ##[group]/datum/unit_test/json_savefiles +2023-11-12T09:04:14.5593927Z PASS /datum/unit_test/json_savefiles 0s +2023-11-12T09:04:14.5594439Z ##[endgroup] +2023-11-12T09:04:14.5697545Z ##[group]/datum/unit_test/keybinding_init +2023-11-12T09:04:14.5700044Z PASS /datum/unit_test/keybinding_init 0s +2023-11-12T09:04:14.5702215Z ##[endgroup] +2023-11-12T09:04:14.5828294Z ##[group]/datum/unit_test/knockoff_component +2023-11-12T09:04:14.6242363Z PASS /datum/unit_test/knockoff_component 0.1s +2023-11-12T09:04:14.6244697Z ##[endgroup] +2023-11-12T09:04:14.6630391Z ##[group]/datum/unit_test/language_species_swap_simple +2023-11-12T09:04:14.7587413Z PASS /datum/unit_test/language_species_swap_simple 0.1s +2023-11-12T09:04:14.7588791Z ##[endgroup] +2023-11-12T09:04:14.7909664Z ##[group]/datum/unit_test/language_species_swap_complex +2023-11-12T09:04:14.8535770Z PASS /datum/unit_test/language_species_swap_complex 0.1s +2023-11-12T09:04:14.8537437Z ##[endgroup] +2023-11-12T09:04:14.8839470Z ##[group]/datum/unit_test/language_species_change_other_known +2023-11-12T09:04:14.9795952Z PASS /datum/unit_test/language_species_change_other_known 0.1s +2023-11-12T09:04:14.9797030Z ##[endgroup] +2023-11-12T09:04:15.0435933Z ##[group]/datum/unit_test/language_mind_transfer +2023-11-12T09:04:15.1107127Z PASS /datum/unit_test/language_mind_transfer 0.1s +2023-11-12T09:04:15.1109587Z ##[endgroup] +2023-11-12T09:04:15.2112030Z ##[group]/datum/unit_test/language_mind_swap +2023-11-12T09:04:15.2925264Z PASS /datum/unit_test/language_mind_swap 0s +2023-11-12T09:04:15.2927698Z ##[endgroup] +2023-11-12T09:04:15.3795431Z ##[group]/datum/unit_test/book_of_babel +2023-11-12T09:04:15.4462613Z PASS /datum/unit_test/book_of_babel 0.1s +2023-11-12T09:04:15.4464636Z ##[endgroup] +2023-11-12T09:04:15.4773421Z ##[group]/datum/unit_test/lesserform +2023-11-12T09:04:15.6945571Z PASS /datum/unit_test/lesserform 0.2s +2023-11-12T09:04:15.6948228Z ##[endgroup] +2023-11-12T09:04:15.7353723Z ##[group]/datum/unit_test/limbsanity +2023-11-12T09:04:15.7943636Z PASS /datum/unit_test/limbsanity 0s +2023-11-12T09:04:15.7944637Z ##[endgroup] +2023-11-12T09:04:15.8094514Z ##[group]/datum/unit_test/limb_height_adjustment +2023-11-12T09:04:15.8922884Z PASS /datum/unit_test/limb_height_adjustment 0s +2023-11-12T09:04:15.8924726Z ##[endgroup] +2023-11-12T09:04:15.9430586Z ##[group]/datum/unit_test/ling_decap +2023-11-12T09:04:15.9835506Z PASS /datum/unit_test/ling_decap 0s +2023-11-12T09:04:15.9839509Z ##[endgroup] +2023-11-12T09:04:16.0140352Z ##[group]/datum/unit_test/normal_decap +2023-11-12T09:04:16.0424498Z PASS /datum/unit_test/normal_decap 0s +2023-11-12T09:04:16.0426983Z ##[endgroup] +2023-11-12T09:04:16.0805164Z ##[group]/datum/unit_test/liver/skeleton +2023-11-12T09:04:16.1038545Z PASS /datum/unit_test/liver/skeleton 0.1s +2023-11-12T09:04:16.1041112Z ##[endgroup] +2023-11-12T09:04:16.1284821Z ##[group]/datum/unit_test/liver/plasmaman +2023-11-12T09:04:16.1580562Z PASS /datum/unit_test/liver/plasmaman 0s +2023-11-12T09:04:16.1583210Z ##[endgroup] +2023-11-12T09:04:16.2153103Z ##[group]/datum/unit_test/load_map_security +2023-11-12T09:04:16.2161683Z map directory not in whitelist: data/load_map_security_temp for map runtimestation +2023-11-12T09:04:16.2164604Z PASS /datum/unit_test/load_map_security 0s +2023-11-12T09:04:16.2167411Z ##[endgroup] +2023-11-12T09:04:16.2305620Z ##[group]/datum/unit_test/lungs/lungs_sanity +2023-11-12T09:04:16.2992950Z PASS /datum/unit_test/lungs/lungs_sanity 0s +2023-11-12T09:04:16.2993961Z ##[endgroup] +2023-11-12T09:04:16.3555743Z ##[group]/datum/unit_test/lungs/lungs_sanity_plasmaman +2023-11-12T09:04:16.3893402Z PASS /datum/unit_test/lungs/lungs_sanity_plasmaman 0s +2023-11-12T09:04:16.3896070Z ##[endgroup] +2023-11-12T09:04:16.4363609Z ##[group]/datum/unit_test/lungs/lungs_sanity_ashwalker +2023-11-12T09:04:16.4534765Z PASS /datum/unit_test/lungs/lungs_sanity_ashwalker 0s +2023-11-12T09:04:16.4537484Z ##[endgroup] +2023-11-12T09:04:16.5268598Z ##[group]/datum/unit_test/machine_disassembly +2023-11-12T09:04:16.5331398Z PASS /datum/unit_test/machine_disassembly 0s +2023-11-12T09:04:16.5334165Z ##[endgroup] +2023-11-12T09:04:16.5965192Z ##[group]/datum/unit_test/mafia +2023-11-12T09:04:16.9361333Z PASS /datum/unit_test/mafia 0.4s +2023-11-12T09:04:16.9362885Z ##[endgroup] +2023-11-12T09:04:17.0130362Z ##[group]/datum/unit_test/job_roundstart_spawnpoints +2023-11-12T09:04:17.0143039Z PASS /datum/unit_test/job_roundstart_spawnpoints 0s +2023-11-12T09:04:17.0145274Z ##[endgroup] +2023-11-12T09:04:17.0659056Z ##[group]/datum/unit_test/mecha_damage +2023-11-12T09:04:17.1110027Z PASS /datum/unit_test/mecha_damage 0.1s +2023-11-12T09:04:17.1112178Z ##[endgroup] +2023-11-12T09:04:17.2054159Z ##[group]/datum/unit_test/test_human_base +2023-11-12T09:04:17.2287354Z PASS /datum/unit_test/test_human_base 0s +2023-11-12T09:04:17.2289454Z ##[endgroup] +2023-11-12T09:04:17.2929615Z ##[group]/datum/unit_test/test_human_bone +2023-11-12T09:04:17.3157404Z PASS /datum/unit_test/test_human_bone 0.1s +2023-11-12T09:04:17.3160356Z ##[endgroup] +2023-11-12T09:04:17.3434694Z ##[group]/datum/unit_test/merge_type +2023-11-12T09:04:17.3440046Z PASS /datum/unit_test/merge_type 0s +2023-11-12T09:04:17.3442753Z ##[endgroup] +2023-11-12T09:04:17.3573048Z ##[group]/datum/unit_test/metabolization +2023-11-12T09:04:17.6960389Z PASS /datum/unit_test/metabolization 0.3s +2023-11-12T09:04:17.6963225Z ##[endgroup] +2023-11-12T09:04:17.7388896Z ##[group]/datum/unit_test/on_mob_end_metabolize +2023-11-12T09:04:17.7590192Z PASS /datum/unit_test/on_mob_end_metabolize 0s +2023-11-12T09:04:17.7592863Z ##[endgroup] +2023-11-12T09:04:17.7841810Z ##[group]/datum/unit_test/addictions +2023-11-12T09:04:17.8425631Z PASS /datum/unit_test/addictions 0.1s +2023-11-12T09:04:17.8428724Z ##[endgroup] +2023-11-12T09:04:17.9023556Z ##[group]/datum/unit_test/actions_moved_on_mind_transfer +2023-11-12T09:04:17.9228877Z PASS /datum/unit_test/actions_moved_on_mind_transfer 0s +2023-11-12T09:04:17.9231703Z ##[endgroup] +2023-11-12T09:04:17.9679832Z ##[group]/datum/unit_test/missing_icons +2023-11-12T09:04:24.5752532Z PASS /datum/unit_test/missing_icons 6.6s +2023-11-12T09:04:24.5754181Z ##[endgroup] +2023-11-12T09:04:24.6466600Z ##[group]/datum/unit_test/mob_chains +2023-11-12T09:04:24.6632928Z PASS /datum/unit_test/mob_chains 0s +2023-11-12T09:04:24.6635968Z ##[endgroup] +2023-11-12T09:04:24.7913005Z ##[group]/datum/unit_test/mob_faction +2023-11-12T09:04:28.5066463Z PASS /datum/unit_test/mob_faction 3.8s +2023-11-12T09:04:28.5069188Z ##[endgroup] +2023-11-12T09:04:31.6163193Z ##[group]/datum/unit_test/mob_spawn +2023-11-12T09:04:31.6427245Z PASS /datum/unit_test/mob_spawn 0s +2023-11-12T09:04:31.6431419Z ##[endgroup] +2023-11-12T09:04:32.0058055Z ##[group]/datum/unit_test/modsuit_checks +2023-11-12T09:04:32.2811166Z PASS /datum/unit_test/modsuit_checks 0.2s +2023-11-12T09:04:32.2812528Z ##[endgroup] +2023-11-12T09:04:32.3511926Z ##[group]/datum/unit_test/modular_map_loader +2023-11-12T09:04:32.3521874Z PASS /datum/unit_test/modular_map_loader 0s +2023-11-12T09:04:32.3523808Z ##[endgroup] +2023-11-12T09:04:32.4142704Z ##[group]/datum/unit_test/mouse_bite_cable +2023-11-12T09:04:32.4246879Z PASS /datum/unit_test/mouse_bite_cable 0s +2023-11-12T09:04:32.4248567Z ##[endgroup] +2023-11-12T09:04:32.4874261Z ##[group]/datum/unit_test/mutant_hands +2023-11-12T09:04:32.5112259Z PASS /datum/unit_test/mutant_hands 0.1s +2023-11-12T09:04:32.5113850Z ##[endgroup] +2023-11-12T09:04:32.5849921Z ##[group]/datum/unit_test/mutant_hands_with_nodrop +2023-11-12T09:04:32.6040138Z PASS /datum/unit_test/mutant_hands_with_nodrop 0.1s +2023-11-12T09:04:32.6041689Z ##[endgroup] +2023-11-12T09:04:32.6773675Z ##[group]/datum/unit_test/mutant_hands_carry +2023-11-12T09:04:32.7131388Z PASS /datum/unit_test/mutant_hands_carry 0.1s +2023-11-12T09:04:32.7133185Z ##[endgroup] +2023-11-12T09:04:32.7786446Z ##[group]/datum/unit_test/mutant_organs +2023-11-12T09:04:34.2934214Z PASS /datum/unit_test/mutant_organs 1.5s +2023-11-12T09:04:34.2935313Z ##[endgroup] +2023-11-12T09:04:34.6462244Z ##[group]/datum/unit_test/novaflower_burn +2023-11-12T09:04:34.6850680Z PASS /datum/unit_test/novaflower_burn 0s +2023-11-12T09:04:34.6852577Z ##[endgroup] +2023-11-12T09:04:34.7556767Z ##[group]/datum/unit_test/nuke_cinematic +2023-11-12T09:04:39.0321508Z PASS /datum/unit_test/nuke_cinematic 4.3s +2023-11-12T09:04:39.0323281Z ##[endgroup] +2023-11-12T09:04:39.0458593Z ##[group]/datum/unit_test/objectives_category +2023-11-12T09:04:39.0479702Z PASS /datum/unit_test/objectives_category 0s +2023-11-12T09:04:39.0482187Z ##[endgroup] +2023-11-12T09:04:39.0633771Z ##[group]/datum/unit_test/operating_table +2023-11-12T09:04:39.0971239Z PASS /datum/unit_test/operating_table 0s +2023-11-12T09:04:39.0973601Z ##[endgroup] +2023-11-12T09:04:39.1707308Z ##[group]/datum/unit_test/orderable_items +2023-11-12T09:04:39.3304868Z PASS /datum/unit_test/orderable_items 0.2s +2023-11-12T09:04:39.3307041Z ##[endgroup] +2023-11-12T09:04:39.4628600Z ##[group]/datum/unit_test/organ_set_bonus_id +2023-11-12T09:04:39.4631127Z PASS /datum/unit_test/organ_set_bonus_id 0s +2023-11-12T09:04:39.4632993Z ##[endgroup] +2023-11-12T09:04:39.4763602Z ##[group]/datum/unit_test/organ_set_bonus_sanity +2023-11-12T09:04:39.7566200Z PASS /datum/unit_test/organ_set_bonus_sanity 0.3s +2023-11-12T09:04:39.7567687Z ##[endgroup] +2023-11-12T09:04:39.8948309Z ##[group]/datum/unit_test/organ_sanity +2023-11-12T09:04:39.8957864Z PASS /datum/unit_test/organ_sanity 0s +2023-11-12T09:04:39.8960612Z ##[endgroup] +2023-11-12T09:04:39.9099785Z ##[group]/datum/unit_test/organ_damage +2023-11-12T09:04:39.9663107Z PASS /datum/unit_test/organ_damage 0s +2023-11-12T09:04:39.9665107Z ##[endgroup] +2023-11-12T09:04:40.0023907Z ##[group]/datum/unit_test/outfit_sanity +2023-11-12T09:04:52.5011539Z PASS /datum/unit_test/outfit_sanity 12.5s +2023-11-12T09:04:52.5013136Z ##[endgroup] +2023-11-12T09:04:52.5847995Z ##[group]/datum/unit_test/oxyloss_suffocation +2023-11-12T09:04:52.6033624Z PASS /datum/unit_test/oxyloss_suffocation 0.1s +2023-11-12T09:04:52.6035713Z ##[endgroup] +2023-11-12T09:04:52.6523199Z ##[group]/datum/unit_test/paintings +2023-11-12T09:04:52.6718185Z PASS /datum/unit_test/paintings 0s +2023-11-12T09:04:52.6720334Z ##[endgroup] +2023-11-12T09:04:52.6860350Z ##[group]/datum/unit_test/pills +2023-11-12T09:04:52.7049829Z PASS /datum/unit_test/pills 0.1s +2023-11-12T09:04:52.7051614Z ##[endgroup] +2023-11-12T09:04:52.7284869Z ##[group]/datum/unit_test/plane_double_transform +2023-11-12T09:04:52.7568954Z PASS /datum/unit_test/plane_double_transform 0s +2023-11-12T09:04:52.7570947Z ##[endgroup] +2023-11-12T09:04:52.8088783Z ##[group]/datum/unit_test/plane_dupe_detector +2023-11-12T09:04:52.8092292Z PASS /datum/unit_test/plane_dupe_detector 0s +2023-11-12T09:04:52.8094235Z ##[endgroup] +2023-11-12T09:04:52.8223651Z ##[group]/datum/unit_test/plantgrowth +2023-11-12T09:04:52.9104725Z PASS /datum/unit_test/plantgrowth 0.1s +2023-11-12T09:04:52.9106537Z ##[endgroup] +2023-11-12T09:04:52.9238426Z ##[group]/datum/unit_test/preference_species +2023-11-12T09:04:52.9241982Z PASS /datum/unit_test/preference_species 0s +2023-11-12T09:04:52.9243985Z ##[endgroup] +2023-11-12T09:04:52.9366837Z ##[group]/datum/unit_test/preferences_implement_everything +2023-11-12T09:04:52.9767879Z PASS /datum/unit_test/preferences_implement_everything 0s +2023-11-12T09:04:52.9769887Z ##[endgroup] +2023-11-12T09:04:53.0386005Z ##[group]/datum/unit_test/preferences_valid_savefile_key +2023-11-12T09:04:53.0390164Z PASS /datum/unit_test/preferences_valid_savefile_key 0s +2023-11-12T09:04:53.0392300Z ##[endgroup] +2023-11-12T09:04:53.0533180Z ##[group]/datum/unit_test/preferences_valid_main_feature_name +2023-11-12T09:04:53.0536519Z PASS /datum/unit_test/preferences_valid_main_feature_name 0s +2023-11-12T09:04:53.0538733Z ##[endgroup] +2023-11-12T09:04:53.0666858Z ##[group]/datum/unit_test/preferences_should_generate_icons_sanity +2023-11-12T09:04:53.5932797Z PASS /datum/unit_test/preferences_should_generate_icons_sanity 0.5s +2023-11-12T09:04:53.5934463Z ##[endgroup] +2023-11-12T09:04:53.6200764Z ##[group]/datum/unit_test/projectile_movetypes +2023-11-12T09:04:53.6204485Z PASS /datum/unit_test/projectile_movetypes 0s +2023-11-12T09:04:53.6206834Z ##[endgroup] +2023-11-12T09:04:53.6336940Z ##[group]/datum/unit_test/gun_go_bang +2023-11-12T09:04:53.6829687Z PASS /datum/unit_test/gun_go_bang 0s +2023-11-12T09:04:53.6830843Z ##[endgroup] +2023-11-12T09:04:53.7230698Z ##[group]/datum/unit_test/quirk_icons +2023-11-12T09:04:53.7234275Z PASS /datum/unit_test/quirk_icons 0s +2023-11-12T09:04:53.7236777Z ##[endgroup] +2023-11-12T09:04:53.7365585Z ##[group]/datum/unit_test/range_return +2023-11-12T09:04:53.7369094Z PASS /datum/unit_test/range_return 0s +2023-11-12T09:04:53.7371240Z ##[endgroup] +2023-11-12T09:04:53.7500465Z ##[group]/datum/unit_test/frame_stacking +2023-11-12T09:04:53.7979971Z PASS /datum/unit_test/frame_stacking 0s +2023-11-12T09:04:53.7981883Z ##[endgroup] +2023-11-12T09:04:53.8318167Z ##[group]/datum/unit_test/reagent_container_defaults +2023-11-12T09:04:54.0941417Z PASS /datum/unit_test/reagent_container_defaults 0.2s +2023-11-12T09:04:54.0943278Z ##[endgroup] +2023-11-12T09:04:54.2270413Z ##[group]/datum/unit_test/reagent_id_typos +2023-11-12T09:04:54.2286982Z PASS /datum/unit_test/reagent_id_typos 0s +2023-11-12T09:04:54.2289435Z ##[endgroup] +2023-11-12T09:04:54.2420053Z ##[group]/datum/unit_test/reagent_mob_expose +2023-11-12T09:04:54.2723656Z PASS /datum/unit_test/reagent_mob_expose 0s +2023-11-12T09:04:54.2726334Z ##[endgroup] +2023-11-12T09:04:54.3099472Z ##[group]/datum/unit_test/reagent_mob_procs +2023-11-12T09:04:54.3289033Z PASS /datum/unit_test/reagent_mob_procs 0s +2023-11-12T09:04:54.3291717Z ##[endgroup] +2023-11-12T09:04:54.3541628Z ##[group]/datum/unit_test/reagent_names +2023-11-12T09:04:55.1766396Z PASS /datum/unit_test/reagent_names 0.8s +2023-11-12T09:04:55.1768837Z ##[endgroup] +2023-11-12T09:04:55.2029840Z ##[group]/datum/unit_test/reagent_recipe_collisions +2023-11-12T09:04:56.8716958Z PASS /datum/unit_test/reagent_recipe_collisions 1.6s +2023-11-12T09:04:56.8718508Z ##[endgroup] +2023-11-12T09:04:56.8869144Z ##[group]/datum/unit_test/reagent_transfer +2023-11-12T09:04:56.8878975Z PASS /datum/unit_test/reagent_transfer 0s +2023-11-12T09:04:56.8880828Z ##[endgroup] +2023-11-12T09:04:56.9011226Z ##[group]/datum/unit_test/required_map_items +2023-11-12T09:04:56.9014244Z PASS /datum/unit_test/required_map_items 0s +2023-11-12T09:04:56.9016215Z ##[endgroup] +2023-11-12T09:04:56.9145903Z ##[group]/datum/unit_test/stop_drop_and_roll +2023-11-12T09:04:56.9332587Z PASS /datum/unit_test/stop_drop_and_roll 0s +2023-11-12T09:04:56.9334766Z ##[endgroup] +2023-11-12T09:04:56.9894372Z ##[group]/datum/unit_test/container_resist +2023-11-12T09:04:57.0133852Z PASS /datum/unit_test/container_resist 0.1s +2023-11-12T09:04:57.0136482Z ##[endgroup] +2023-11-12T09:04:57.0869981Z ##[group]/datum/unit_test/get_message_mods +2023-11-12T09:04:57.1036296Z PASS /datum/unit_test/get_message_mods 0.1s +2023-11-12T09:04:57.1038377Z ##[endgroup] +2023-11-12T09:04:57.1761766Z ##[group]/datum/unit_test/say_signal +2023-11-12T09:04:57.1785738Z PASS /datum/unit_test/say_signal 0s +2023-11-12T09:04:57.1787867Z ##[endgroup] +2023-11-12T09:04:57.2275108Z ##[group]/datum/unit_test/translate_language +2023-11-12T09:04:57.2445118Z PASS /datum/unit_test/translate_language 0s +2023-11-12T09:04:57.2447197Z ##[endgroup] +2023-11-12T09:04:57.2776300Z ##[group]/datum/unit_test/speech +2023-11-12T09:04:57.3273922Z PASS /datum/unit_test/speech 0.1s +2023-11-12T09:04:57.3276048Z ##[endgroup] +2023-11-12T09:04:57.3648311Z ##[group]/datum/unit_test/screenshot_antag_icons +2023-11-12T09:04:57.3655596Z screenshot_antag_icons_cyberpolice was put in data/screenshots_new +2023-11-12T09:04:57.3668195Z screenshot_antag_icons_fugitive was put in data/screenshots_new +2023-11-12T09:04:57.3673743Z screenshot_antag_icons_loneoperative was put in data/screenshots_new +2023-11-12T09:04:57.3918428Z screenshot_antag_icons_sentiencepotionspawn was put in data/screenshots_new +2023-11-12T09:04:57.3925180Z screenshot_antag_icons_traitor was put in data/screenshots_new +2023-11-12T09:04:57.4212360Z screenshot_antag_icons_malfai was put in data/screenshots_new +2023-11-12T09:04:57.4244403Z screenshot_antag_icons_bloodbrother was put in data/screenshots_new +2023-11-12T09:04:57.4250630Z screenshot_antag_icons_changeling was put in data/screenshots_new +2023-11-12T09:04:57.4282149Z screenshot_antag_icons_heretic was put in data/screenshots_new +2023-11-12T09:04:57.4292701Z screenshot_antag_icons_wizard was put in data/screenshots_new +2023-11-12T09:04:57.4322992Z screenshot_antag_icons_cultist was put in data/screenshots_new +2023-11-12T09:04:57.4335181Z screenshot_antag_icons_operative was put in data/screenshots_new +2023-11-12T09:04:57.4347253Z screenshot_antag_icons_clownoperative was put in data/screenshots_new +2023-11-12T09:04:57.4360316Z screenshot_antag_icons_headrevolutionary was put in data/screenshots_new +2023-11-12T09:04:57.4362553Z screenshot_antag_icons_syndicateinfiltrator was put in data/screenshots_new +2023-11-12T09:04:57.4364249Z screenshot_antag_icons_provocateur was put in data/screenshots_new +2023-11-12T09:04:57.4365976Z screenshot_antag_icons_hereticsmuggler was put in data/screenshots_new +2023-11-12T09:04:57.4367872Z screenshot_antag_icons_stowawaychangeling was put in data/screenshots_new +2023-11-12T09:04:57.4369724Z screenshot_antag_icons_wizardmidround was put in data/screenshots_new +2023-11-12T09:04:57.4371538Z screenshot_antag_icons_operativemidround was put in data/screenshots_new +2023-11-12T09:04:57.4836255Z screenshot_antag_icons_blob was put in data/screenshots_new +2023-11-12T09:04:57.4913104Z screenshot_antag_icons_xenomorph was put in data/screenshots_new +2023-11-12T09:04:57.4918547Z screenshot_antag_icons_nightmare was put in data/screenshots_new +2023-11-12T09:04:57.4972641Z screenshot_antag_icons_spacedragon was put in data/screenshots_new +2023-11-12T09:04:57.4978863Z screenshot_antag_icons_abductor was put in data/screenshots_new +2023-11-12T09:04:57.4984390Z screenshot_antag_icons_spaceninja was put in data/screenshots_new +2023-11-12T09:04:57.5142179Z screenshot_antag_icons_revenant was put in data/screenshots_new +2023-11-12T09:04:57.5158225Z screenshot_antag_icons_sentientdisease was put in data/screenshots_new +2023-11-12T09:04:57.5164048Z screenshot_antag_icons_changelingmidround was put in data/screenshots_new +2023-11-12T09:04:57.5175747Z screenshot_antag_icons_paradoxclone was put in data/screenshots_new +2023-11-12T09:04:57.5177675Z screenshot_antag_icons_syndicatesleeperagent was put in data/screenshots_new +2023-11-12T09:04:57.5295585Z screenshot_antag_icons_blobinfection was put in data/screenshots_new +2023-11-12T09:04:57.5313285Z screenshot_antag_icons_obsessed was put in data/screenshots_new +2023-11-12T09:04:57.5315517Z screenshot_antag_icons_malfaimidround was put in data/screenshots_new +2023-11-12T09:04:57.5319787Z PASS /datum/unit_test/screenshot_antag_icons 0.2s +2023-11-12T09:04:57.5322595Z ##[endgroup] +2023-11-12T09:04:57.5541756Z ##[group]/datum/unit_test/screenshot_basic +2023-11-12T09:04:57.5545037Z screenshot_basic_red was put in data/screenshots_new +2023-11-12T09:04:57.5548126Z PASS /datum/unit_test/screenshot_basic 0s +2023-11-12T09:04:57.5550758Z ##[endgroup] +2023-11-12T09:04:57.5683479Z ##[group]/datum/unit_test/screenshot_dynamic_human_icons +2023-11-12T09:04:57.8350756Z screenshot_dynamic_human_icons_syndicate_commando was put in data/screenshots_new +2023-11-12T09:04:57.8354817Z PASS /datum/unit_test/screenshot_dynamic_human_icons 0.3s +2023-11-12T09:04:57.8357024Z ##[endgroup] +2023-11-12T09:04:57.8497778Z ##[group]/datum/unit_test/screenshot_humanoids +2023-11-12T09:04:58.2541589Z screenshot_humanoids__datum_species_lizard was put in data/screenshots_new +2023-11-12T09:04:58.8071729Z screenshot_humanoids__datum_species_moth was put in data/screenshots_new +2023-11-12T09:04:59.0481483Z screenshot_humanoids__datum_species_shadow was put in data/screenshots_new +2023-11-12T09:04:59.2204964Z screenshot_humanoids__datum_species_shadow_nightmare was put in data/screenshots_new +2023-11-12T09:04:59.4446438Z screenshot_humanoids__datum_species_abductor was put in data/screenshots_new +2023-11-12T09:04:59.9025529Z screenshot_humanoids__datum_species_human was put in data/screenshots_new +2023-11-12T09:05:00.3720324Z screenshot_humanoids__datum_species_human_tallboy was put in data/screenshots_new +2023-11-12T09:05:00.8410192Z screenshot_humanoids__datum_species_human_felinid was put in data/screenshots_new +2023-11-12T09:05:01.3919326Z screenshot_humanoids__datum_species_human_krokodil_addict was put in data/screenshots_new +2023-11-12T09:05:01.5050044Z screenshot_humanoids__datum_species_monkey was put in data/screenshots_new +2023-11-12T09:05:01.6332131Z screenshot_humanoids__datum_species_monkey_human_legged was put in data/screenshots_new +2023-11-12T09:05:01.8078163Z screenshot_humanoids__datum_species_monkey_monkey_freak was put in data/screenshots_new +2023-11-12T09:05:01.9204604Z screenshot_humanoids__datum_species_monkey_holodeck was put in data/screenshots_new +2023-11-12T09:05:02.2703729Z screenshot_humanoids__datum_species_android was put in data/screenshots_new +2023-11-12T09:05:02.5066397Z screenshot_humanoids__datum_species_dullahan was put in data/screenshots_new +2023-11-12T09:05:02.8821597Z screenshot_humanoids__datum_species_ethereal was put in data/screenshots_new +2023-11-12T09:05:03.0618503Z screenshot_humanoids__datum_species_ethereal_lustrous was put in data/screenshots_new +2023-11-12T09:05:03.6054858Z screenshot_humanoids__datum_species_fly was put in data/screenshots_new +2023-11-12T09:05:03.7723456Z screenshot_humanoids__datum_species_golem was put in data/screenshots_new +2023-11-12T09:05:04.2399263Z screenshot_humanoids__datum_species_jelly was put in data/screenshots_new +2023-11-12T09:05:04.7039511Z screenshot_humanoids__datum_species_jelly_slime was put in data/screenshots_new +2023-11-12T09:05:05.1607461Z screenshot_humanoids__datum_species_jelly_luminescent was put in data/screenshots_new +2023-11-12T09:05:05.6194475Z screenshot_humanoids__datum_species_jelly_stargazer was put in data/screenshots_new +2023-11-12T09:05:05.9809404Z screenshot_humanoids__datum_species_lizard_ashwalker was put in data/screenshots_new +2023-11-12T09:05:06.3898218Z screenshot_humanoids__datum_species_lizard_silverscale was put in data/screenshots_new +2023-11-12T09:05:06.6851305Z screenshot_humanoids__datum_species_mush was put in data/screenshots_new +2023-11-12T09:05:07.0392950Z screenshot_humanoids__datum_species_plasmaman was put in data/screenshots_new +2023-11-12T09:05:07.5136767Z screenshot_humanoids__datum_species_pod was put in data/screenshots_new +2023-11-12T09:05:07.7567133Z screenshot_humanoids__datum_species_skeleton was put in data/screenshots_new +2023-11-12T09:05:08.2342975Z screenshot_humanoids__datum_species_snail was put in data/screenshots_new +2023-11-12T09:05:08.6975763Z screenshot_humanoids__datum_species_vampire was put in data/screenshots_new +2023-11-12T09:05:09.2496544Z screenshot_humanoids__datum_species_zombie was put in data/screenshots_new +2023-11-12T09:05:09.8588009Z screenshot_humanoids__datum_species_zombie_infectious was put in data/screenshots_new +2023-11-12T09:05:09.8591473Z PASS /datum/unit_test/screenshot_humanoids 12s +2023-11-12T09:05:09.8593884Z ##[endgroup] +2023-11-12T09:05:10.3359233Z ##[group]/datum/unit_test/screenshot_husk +2023-11-12T09:05:10.4814584Z screenshot_husk_body was put in data/screenshots_new +2023-11-12T09:05:10.5100421Z screenshot_husk_body_missing_limbs was put in data/screenshots_new +2023-11-12T09:05:10.5103760Z PASS /datum/unit_test/screenshot_husk 0.2s +2023-11-12T09:05:10.5105844Z ##[endgroup] +2023-11-12T09:05:10.5738946Z ##[group]/datum/unit_test/screenshot_saturnx +2023-11-12T09:05:10.7302951Z screenshot_saturnx_invisibility was put in data/screenshots_new +2023-11-12T09:05:10.7306714Z PASS /datum/unit_test/screenshot_saturnx 0.2s +2023-11-12T09:05:10.7309565Z ##[endgroup] +2023-11-12T09:05:10.7993117Z ##[group]/datum/unit_test/security_levels +2023-11-12T09:05:10.7995233Z PASS /datum/unit_test/security_levels 0s +2023-11-12T09:05:10.7997473Z ##[endgroup] +2023-11-12T09:05:10.8718075Z ##[group]/datum/unit_test/security_officer_roundstart_distribution +2023-11-12T09:05:10.9829621Z PASS /datum/unit_test/security_officer_roundstart_distribution 0.1s +2023-11-12T09:05:10.9831233Z ##[endgroup] +2023-11-12T09:05:11.0917739Z ##[group]/datum/unit_test/security_officer_latejoin_distribution +2023-11-12T09:05:11.3756560Z PASS /datum/unit_test/security_officer_latejoin_distribution 0.3s +2023-11-12T09:05:11.3757917Z ##[endgroup] +2023-11-12T09:05:11.6159233Z ##[group]/datum/unit_test/servingtray +2023-11-12T09:05:11.6420663Z PASS /datum/unit_test/servingtray 0s +2023-11-12T09:05:11.6422707Z ##[endgroup] +2023-11-12T09:05:11.6722939Z ##[group]/datum/unit_test/simple_animal_freeze +2023-11-12T09:05:11.6727308Z PASS /datum/unit_test/simple_animal_freeze 0s +2023-11-12T09:05:11.6729459Z ##[endgroup] +2023-11-12T09:05:11.6858248Z ##[group]/datum/unit_test/siunit +2023-11-12T09:05:11.6862565Z PASS /datum/unit_test/siunit 0s +2023-11-12T09:05:11.6864627Z ##[endgroup] +2023-11-12T09:05:11.6994032Z ##[group]/datum/unit_test/slime_mood +2023-11-12T09:05:11.7086306Z PASS /datum/unit_test/slime_mood 0.1s +2023-11-12T09:05:11.7089418Z ##[endgroup] +2023-11-12T09:05:11.7646724Z ##[group]/datum/unit_test/slips +2023-11-12T09:05:11.7998254Z PASS /datum/unit_test/slips 0s +2023-11-12T09:05:11.7999914Z ##[endgroup] +2023-11-12T09:05:11.8832258Z ##[group]/datum/unit_test/spawn_humans +2023-11-12T09:05:16.9174068Z PASS /datum/unit_test/spawn_humans 5.1s +2023-11-12T09:05:16.9175480Z ##[endgroup] +2023-11-12T09:05:16.9826971Z ##[group]/datum/unit_test/human_default_traits +2023-11-12T09:05:16.9992542Z PASS /datum/unit_test/human_default_traits 0s +2023-11-12T09:05:16.9994648Z ##[endgroup] +2023-11-12T09:05:17.0453589Z ##[group]/datum/unit_test/spawn_mobs +2023-11-12T09:05:17.3110840Z PASS /datum/unit_test/spawn_mobs 0.3s +2023-11-12T09:05:17.3113201Z ##[endgroup] +2023-11-12T09:05:17.8604911Z ##[group]/datum/unit_test/species_change_clothing +2023-11-12T09:05:18.0037169Z PASS /datum/unit_test/species_change_clothing 0.2s +2023-11-12T09:05:18.0039927Z ##[endgroup] +2023-11-12T09:05:18.0594811Z ##[group]/datum/unit_test/species_change_held_items +2023-11-12T09:05:18.1241794Z PASS /datum/unit_test/species_change_held_items 0.1s +2023-11-12T09:05:18.1244171Z ##[endgroup] +2023-11-12T09:05:18.1531271Z ##[group]/datum/unit_test/species_change_organs +2023-11-12T09:05:18.2175195Z PASS /datum/unit_test/species_change_organs 0.1s +2023-11-12T09:05:18.2177564Z ##[endgroup] +2023-11-12T09:05:18.2917259Z ##[group]/datum/unit_test/species_config_sanity +2023-11-12T09:05:18.2920181Z PASS /datum/unit_test/species_config_sanity 0s +2023-11-12T09:05:18.2922846Z ##[endgroup] +2023-11-12T09:05:18.3062818Z ##[group]/datum/unit_test/species_unique_id +2023-11-12T09:05:18.3065971Z PASS /datum/unit_test/species_unique_id 0s +2023-11-12T09:05:18.3068171Z ##[endgroup] +2023-11-12T09:05:18.3222639Z ##[group]/datum/unit_test/species_whitelist_check +2023-11-12T09:05:18.3225988Z PASS /datum/unit_test/species_whitelist_check 0s +2023-11-12T09:05:18.3228060Z ##[endgroup] +2023-11-12T09:05:18.3393256Z ##[group]/datum/unit_test/spell_invocations +2023-11-12T09:05:18.3397536Z PASS /datum/unit_test/spell_invocations 0s +2023-11-12T09:05:18.3400085Z ##[endgroup] +2023-11-12T09:05:18.3530030Z ##[group]/datum/unit_test/shadow_jaunt +2023-11-12T09:05:18.3711590Z PASS /datum/unit_test/shadow_jaunt 0s +2023-11-12T09:05:18.3713925Z ##[endgroup] +2023-11-12T09:05:18.4080468Z ##[group]/datum/unit_test/mind_swap_spell +2023-11-12T09:05:18.4445059Z PASS /datum/unit_test/mind_swap_spell 0s +2023-11-12T09:05:18.4447973Z ##[endgroup] +2023-11-12T09:05:18.4831097Z ##[group]/datum/unit_test/spell_names +2023-11-12T09:05:18.4836690Z PASS /datum/unit_test/spell_names 0s +2023-11-12T09:05:18.4839793Z ##[endgroup] +2023-11-12T09:05:18.4973281Z ##[group]/datum/unit_test/shapeshift_spell_validity +2023-11-12T09:05:18.4982346Z PASS /datum/unit_test/shapeshift_spell_validity 0s +2023-11-12T09:05:18.4985502Z ##[endgroup] +2023-11-12T09:05:18.5118193Z ##[group]/datum/unit_test/shapeshift_spell +2023-11-12T09:05:31.3590354Z PASS /datum/unit_test/shapeshift_spell 12.8s +2023-11-12T09:05:31.3593257Z ##[endgroup] +2023-11-12T09:05:31.3839062Z ##[group]/datum/unit_test/shapeshift_holoparasites +2023-11-12T09:05:31.4236915Z PASS /datum/unit_test/shapeshift_holoparasites 0.1s +2023-11-12T09:05:31.4240548Z ##[endgroup] +2023-11-12T09:05:31.4609174Z ##[group]/datum/unit_test/shapeshift_health +2023-11-12T09:05:32.0958569Z PASS /datum/unit_test/shapeshift_health 0.6s +2023-11-12T09:05:32.0961165Z ##[endgroup] +2023-11-12T09:05:32.2270540Z ##[group]/datum/unit_test/spritesheets +2023-11-12T09:05:32.2310129Z PASS /datum/unit_test/spritesheets 0s +2023-11-12T09:05:32.2313287Z ##[endgroup] +2023-11-12T09:05:32.2444065Z ##[group]/datum/unit_test/stack_singular_name +2023-11-12T09:05:32.2449554Z PASS /datum/unit_test/stack_singular_name 0s +2023-11-12T09:05:32.2452311Z ##[endgroup] +2023-11-12T09:05:32.2582343Z ##[group]/datum/unit_test/station_traits +2023-11-12T09:05:32.2586458Z PASS /datum/unit_test/station_traits 0s +2023-11-12T09:05:32.2589532Z ##[endgroup] +2023-11-12T09:05:32.3273087Z ##[group]/datum/unit_test/status_effect_ticks +2023-11-12T09:05:32.3278478Z PASS /datum/unit_test/status_effect_ticks 0s +2023-11-12T09:05:32.3282046Z ##[endgroup] +2023-11-12T09:05:32.3883615Z ##[group]/datum/unit_test/stomach +2023-11-12T09:05:32.4148653Z PASS /datum/unit_test/stomach 0.1s +2023-11-12T09:05:32.4152041Z ##[endgroup] +2023-11-12T09:05:32.4474665Z ##[group]/datum/unit_test/strip_menu_ui_status +2023-11-12T09:05:32.4955743Z PASS /datum/unit_test/strip_menu_ui_status 0s +2023-11-12T09:05:32.4959231Z ##[endgroup] +2023-11-12T09:05:32.5763081Z ##[group]/datum/unit_test/stun +2023-11-12T09:05:32.5938628Z PASS /datum/unit_test/stun 0s +2023-11-12T09:05:32.5941798Z ##[endgroup] +2023-11-12T09:05:32.6174955Z ##[group]/datum/unit_test/knockdown +2023-11-12T09:05:32.6344357Z PASS /datum/unit_test/knockdown 0s +2023-11-12T09:05:32.6347424Z ##[endgroup] +2023-11-12T09:05:32.6656807Z ##[group]/datum/unit_test/paralyze +2023-11-12T09:05:32.6830553Z PASS /datum/unit_test/paralyze 0s +2023-11-12T09:05:32.6834151Z ##[endgroup] +2023-11-12T09:05:32.7067888Z ##[group]/datum/unit_test/unconsciousness +2023-11-12T09:05:32.7247146Z PASS /datum/unit_test/unconsciousness 0s +2023-11-12T09:05:32.7250770Z ##[endgroup] +2023-11-12T09:05:32.7494899Z ##[group]/datum/unit_test/stun_absorb +2023-11-12T09:05:32.7661160Z PASS /datum/unit_test/stun_absorb 0s +2023-11-12T09:05:32.7664703Z ##[endgroup] +2023-11-12T09:05:32.7898786Z ##[group]/datum/unit_test/subsystem_init +2023-11-12T09:05:32.7903149Z PASS /datum/unit_test/subsystem_init 0s +2023-11-12T09:05:32.7906701Z ##[endgroup] +2023-11-12T09:05:32.8135238Z ##[group]/datum/unit_test/suit_storage_icons +2023-11-12T09:05:34.6162263Z 1 - /obj/item/gun/ballistic/shotgun/hook using invalid icon_state, "hookshotgun" +2023-11-12T09:05:34.6285969Z 2 - /obj/item/gun/ballistic/automatic/surplus using invalid icon_state, "surplus" +2023-11-12T09:05:34.6466661Z 3 - /obj/item/melee/baton/security/cattleprod/telecrystalprod using invalid icon_state, "telecrystalprod" +2023-11-12T09:05:34.6533245Z 4 - /obj/item/melee/sickly_blade/void using invalid icon_state, "void_blade" +2023-11-12T09:05:34.6538232Z 5 - /obj/item/melee/sickly_blade/cosmic using invalid icon_state, "cosmic_blade" +2023-11-12T09:05:34.6541373Z 6 - /obj/item/melee/sickly_blade/lock using invalid icon_state, "key_blade" +2023-11-12T09:05:34.6628237Z 7 - /obj/item/radio/headset/syndicate/alt using invalid worn_icon_state, "syndie_headset" +2023-11-12T09:05:34.6633020Z 8 - /obj/item/radio/headset/headset_sec using invalid worn_icon_state, "sec_headset" +2023-11-12T09:05:34.6636156Z 9 - /obj/item/radio/headset/headset_sec/alt using invalid worn_icon_state, "sec_headset_alt" +2023-11-12T09:05:34.6639243Z 10 - /obj/item/radio/headset/headset_eng using invalid worn_icon_state, "eng_headset" +2023-11-12T09:05:34.6642514Z 11 - /obj/item/radio/headset/headset_rob using invalid worn_icon_state, "rob_headset" +2023-11-12T09:05:34.6645779Z 12 - /obj/item/radio/headset/headset_med using invalid worn_icon_state, "med_headset" +2023-11-12T09:05:34.6649005Z 13 - /obj/item/radio/headset/headset_sci using invalid worn_icon_state, "sci_headset" +2023-11-12T09:05:34.6652244Z 14 - /obj/item/radio/headset/headset_medsci using invalid worn_icon_state, "medsci_headset" +2023-11-12T09:05:34.6655462Z 15 - /obj/item/radio/headset/headset_srvsec using invalid worn_icon_state, "srvsec_headset" +2023-11-12T09:05:34.6658687Z 16 - /obj/item/radio/headset/headset_srvmed using invalid worn_icon_state, "srv_headset" +2023-11-12T09:05:34.6661917Z 17 - /obj/item/radio/headset/headset_com using invalid worn_icon_state, "com_headset" +2023-11-12T09:05:34.6667219Z 18 - /obj/item/radio/headset/heads/captain/alt using invalid worn_icon_state, "com_headset_alt" +2023-11-12T09:05:34.6670732Z 19 - /obj/item/radio/headset/headset_cargo using invalid worn_icon_state, "cargo_headset" +2023-11-12T09:05:34.6673230Z 20 - /obj/item/radio/headset/headset_cargo/mining using invalid worn_icon_state, "mine_headset" +2023-11-12T09:05:34.6675625Z 21 - /obj/item/radio/headset/headset_cent using invalid worn_icon_state, "cent_headset" +2023-11-12T09:05:34.6678128Z 22 - /obj/item/radio/headset/headset_cent/alt using invalid worn_icon_state, "cent_headset_alt" +2023-11-12T09:05:34.6972394Z 23 - /obj/item/toy/foam_runic_scepter using invalid worn_icon_state, "vendor_staff" +2023-11-12T09:05:34.7033817Z 24 - /obj/item/cultivator/rake using invalid icon_state, "rake" +2023-11-12T09:05:34.7038164Z 25 - /obj/item/hatchet/wooden using invalid icon_state, "woodhatchet" +2023-11-12T09:05:34.7039900Z 26 - /obj/item/hatchet/cutterblade using invalid icon_state, "cutterblade" +2023-11-12T09:05:34.7408592Z 27 - /obj/item/access_key using invalid icon_state, "access_key" +2023-11-12T09:05:34.7458044Z 28 - /obj/item/key/janitor using invalid icon_state, "keyjanitor" +2023-11-12T09:05:34.8393427Z 29 - /obj/item/universal_scanner using invalid icon_state, "export scanner" +2023-11-12T09:05:34.8476665Z 30 - /obj/item/nullrod/tribal_knife using invalid icon_state, "crysknife" +2023-11-12T09:05:34.8491387Z 31 - /obj/item/organ/internal/monster_core using invalid icon_state, "hivelord_core" +2023-11-12T09:05:34.8493709Z 32 - /obj/item/organ/internal/monster_core/brimdust_sac using invalid icon_state, "brim_sac" +2023-11-12T09:05:34.8496411Z 33 - /obj/item/organ/internal/monster_core/regenerative_core/legion using invalid icon_state, "legion_core" +2023-11-12T09:05:34.8498777Z 34 - /obj/item/organ/internal/monster_core/rush_gland using invalid icon_state, "lobster_gland" +2023-11-12T09:05:34.8538527Z 35 - /obj/item/abductor/gizmo using invalid icon_state, "gizmo_scan" +2023-11-12T09:05:34.8540751Z 36 - /obj/item/abductor/silencer using invalid icon_state, "silencer" +2023-11-12T09:05:34.8543252Z 37 - /obj/item/abductor/mind_device using invalid icon_state, "mind_device_message" +2023-11-12T09:05:34.8545406Z 38 - /obj/item/abductor/alien_omnitool using invalid icon_state, "omnitool" +2023-11-12T09:05:34.8552089Z 39 - /obj/item/banner using invalid icon_state, "banner" +2023-11-12T09:05:34.8554713Z 40 - /obj/item/banner/security using invalid icon_state, "banner_security" +2023-11-12T09:05:34.8557066Z 41 - /obj/item/banner/medical using invalid icon_state, "banner_medical" +2023-11-12T09:05:34.8559349Z 42 - /obj/item/banner/science using invalid icon_state, "banner_science" +2023-11-12T09:05:34.8561592Z 43 - /obj/item/banner/cargo using invalid icon_state, "banner_cargo" +2023-11-12T09:05:34.8564170Z 44 - /obj/item/banner/engineering using invalid icon_state, "banner_engineering" +2023-11-12T09:05:34.8566536Z 45 - /obj/item/banner/red using invalid icon_state, "banner-red" +2023-11-12T09:05:34.8568980Z 46 - /obj/item/banner/blue using invalid icon_state, "banner-blue" +2023-11-12T09:05:34.8576281Z 47 - /obj/item/claymore/cutlass using invalid worn_icon_state, "cutlass" +2023-11-12T09:05:34.8580270Z 48 - /obj/item/claymore/highlander/robot using invalid icon_state, "claymore_cyborg" +2023-11-12T09:05:34.8582334Z 49 - /obj/item/pillow using invalid icon_state, "pillow_1_t" +2023-11-12T09:05:34.8584899Z 50 - /obj/item/pillow/clown using invalid icon_state, "pillow_5_t" +2023-11-12T09:05:34.8587221Z 51 - /obj/item/pillow/mime using invalid icon_state, "pillow_6_t" +2023-11-12T09:05:34.8626613Z 52 - /obj/item/gun/magic/staff/chaos/true_wabbajack using invalid icon_state, "the_wabbajack" +2023-11-12T09:05:34.8633965Z 53 - /obj/item/gun/magic/staff/locker using invalid worn_icon_state, "lockerstaff" +2023-11-12T09:05:34.8636381Z 54 - /obj/item/gun/magic/staff/flying using invalid worn_icon_state, "flightstaff" +2023-11-12T09:05:34.8657485Z 55 - /obj/item/melee/energy/sword/pirate using invalid icon_state, "e_cutlass" +2023-11-12T09:05:34.8659958Z 56 - /obj/item/clothing/glasses/eyepatch using invalid icon_state, "eyepatch" +2023-11-12T09:05:34.8662250Z 57 - /obj/item/clothing/glasses/eyepatch/medical using invalid icon_state, "eyepatch_medical" +2023-11-12T09:05:34.8976969Z 58 - /obj/item/melee/energy/sword using invalid icon_state, "e_sword" +2023-11-12T09:05:34.8979094Z 59 - /obj/item/melee/energy/sword/cyborg/saw using invalid icon_state, "esaw" +2023-11-12T09:05:34.8988519Z 60 - /obj/item/tank/jetpack/improvised using invalid worn_icon_state, "jetpack-improvised" +2023-11-12T09:05:34.8993419Z 61 - /obj/item/multitool using invalid icon_state, "multitool" +2023-11-12T09:05:34.8996418Z 62 - /obj/item/multitool/cyborg using invalid icon_state, "multitool_cyborg" +2023-11-12T09:05:34.8998725Z 63 - /obj/item/multitool/circuit using invalid icon_state, "multitool_circuit" +2023-11-12T09:05:34.9001342Z 64 - /obj/item/assembly/flash/handheld using invalid icon_state, "flash" +2023-11-12T09:05:34.9004166Z 65 - /obj/item/clothing/mask/cigarette using invalid icon_state, "cigoff" +2023-11-12T09:05:34.9006481Z 66 - /obj/item/clothing/mask/cigarette/rollie using invalid icon_state, "spliffoff" +2023-11-12T09:05:34.9008788Z 67 - /obj/item/clothing/mask/cigarette/candy using invalid icon_state, "candyoff" +2023-11-12T09:05:34.9011087Z 68 - /obj/item/clothing/mask/cigarette/cigar using invalid icon_state, "cigaroff" +2023-11-12T09:05:34.9013684Z 69 - /obj/item/clothing/mask/cigarette/cigar/cohiba using invalid icon_state, "cigar2off" +2023-11-12T09:05:34.9016282Z 70 - /obj/item/clothing/mask/cigarette/pipe using invalid icon_state, "pipeoff" +2023-11-12T09:05:34.9019334Z 71 - /obj/item/clothing/mask/cigarette/pipe/cobpipe using invalid icon_state, "cobpipeoff" +2023-11-12T09:05:34.9021398Z 72 - /obj/item/disk using invalid icon_state, "datadisk0" +2023-11-12T09:05:34.9023878Z 73 - /obj/item/disk/holodisk using invalid icon_state, "holodisk" +2023-11-12T09:05:34.9026566Z 74 - /obj/item/disk/nuclear using invalid icon_state, "nucleardisk" +2023-11-12T09:05:34.9029044Z 75 - /obj/item/disk/surgery using invalid icon_state, "datadisk1" +2023-11-12T09:05:34.9031722Z 76 - /obj/item/disk/cargo/bluespace_pod using invalid icon_state, "cargodisk" +2023-11-12T09:05:34.9034253Z 77 - /obj/item/disk/design_disk/bepis using invalid icon_state, "rndmajordisk" +2023-11-12T09:05:34.9036755Z 78 - /obj/item/melee/powerfist using invalid icon_state, "powerfist" +2023-11-12T09:05:34.9044549Z 79 - /obj/item/melee/skateboard using invalid icon_state, "skateboard_held" +2023-11-12T09:05:34.9047217Z 80 - /obj/item/melee/skateboard/pro using invalid icon_state, "skateboard2_held" +2023-11-12T09:05:34.9049673Z 81 - /obj/item/melee/skateboard/hoverboard using invalid icon_state, "hoverboard_red_held" +2023-11-12T09:05:34.9052014Z 82 - /obj/item/melee/skateboard/hoverboard/admin using invalid icon_state, "hoverboard_nt_held" +2023-11-12T09:05:34.9054102Z 83 - /obj/item/melee/baseball_bat using invalid icon_state, "baseball_bat" +2023-11-12T09:05:34.9056494Z 84 - /obj/item/melee/baseball_bat/homerun using invalid icon_state, "baseball_bat_home" +2023-11-12T09:05:34.9058758Z 85 - /obj/item/melee/baseball_bat/ablative using invalid icon_state, "baseball_bat_metal" +2023-11-12T09:05:34.9061041Z 86 - /obj/item/melee/flyswatter using invalid icon_state, "flyswatter" +2023-11-12T09:05:34.9065209Z 87 - /obj/item/melee/energy/axe using invalid icon_state, "axe" +2023-11-12T09:05:34.9067917Z 88 - /obj/item/melee/energy/blade using invalid icon_state, "blade" +2023-11-12T09:05:34.9070409Z 89 - /obj/item/melee/energy/blade/hardlight using invalid icon_state, "lightblade" +2023-11-12T09:05:34.9072647Z 90 - /obj/item/melee/synthetic_arm_blade using invalid icon_state, "arm_blade" +2023-11-12T09:05:34.9074881Z 91 - /obj/item/melee/sabre using invalid icon_state, "sabre" +2023-11-12T09:05:34.9077162Z 92 - /obj/item/melee/beesword using invalid worn_icon_state, "stinger" +2023-11-12T09:05:34.9079597Z 93 - /obj/item/melee/supermatter_sword using invalid icon_state, "supermatter_sword_balanced" +2023-11-12T09:05:34.9085130Z 94 - /obj/item/melee/cleric_mace using invalid worn_icon_state, "default_worn" +2023-11-12T09:05:34.9087426Z 95 - /obj/item/melee/rune_carver using invalid icon_state, "rune_carver" +2023-11-12T09:05:34.9089642Z 96 - /obj/item/melee/ghost_sword using invalid icon_state, "spectral" +2023-11-12T09:05:34.9099563Z 97 - /obj/item/storage/lockbox/medal using invalid icon_state, "medalbox+l" +2023-11-12T09:05:34.9101839Z 98 - /obj/item/storage/bag/trash using invalid icon_state, "trashbag" +2023-11-12T09:05:34.9104337Z 99 - /obj/item/storage/bag/trash/bluespace using invalid icon_state, "bluetrashbag" +2023-11-12T09:05:34.9106526Z 100 - /obj/item/cane using invalid icon_state, "cane" +2023-11-12T09:05:34.9109148Z 101 - /obj/item/cane/white using invalid icon_state, "cane_white" +2023-11-12T09:05:34.9127968Z 102 - /obj/item/clothing/mask/facehugger/toy using invalid worn_icon_state, "facehugger" +2023-11-12T09:05:34.9129996Z 103 - /obj/item/kitchen/fork using invalid icon_state, "fork" +2023-11-12T09:05:34.9132741Z 104 - /obj/item/kitchen/fork/plastic using invalid icon_state, "plastic_fork" +2023-11-12T09:05:34.9137903Z 105 - /obj/item/kitchen/spoon using invalid icon_state, "spoon" +2023-11-12T09:05:34.9140308Z 106 - /obj/item/kitchen/spoon/plastic using invalid icon_state, "plastic_spoon" +2023-11-12T09:05:34.9142537Z 107 - /obj/item/kitchen/spoon/soup_ladle using invalid icon_state, "ladle" +2023-11-12T09:05:34.9144673Z 108 - /obj/item/kitchen/tongs using invalid icon_state, "tongs" +2023-11-12T09:05:34.9192479Z 109 - /obj/item/bonesetter using invalid icon_state, "bonesetter" +2023-11-12T09:05:34.9194966Z 110 - /obj/item/cautery using invalid icon_state, "cautery" +2023-11-12T09:05:34.9197552Z 111 - /obj/item/cautery/advanced using invalid icon_state, "e_cautery" +2023-11-12T09:05:34.9200017Z 112 - /obj/item/cautery/cruel using invalid icon_state, "cruelcautery" +2023-11-12T09:05:34.9202572Z 113 - /obj/item/hemostat using invalid icon_state, "hemostat" +2023-11-12T09:05:34.9205055Z 114 - /obj/item/hemostat/supermatter using invalid icon_state, "supermatter_tongs" +2023-11-12T09:05:34.9207385Z 115 - /obj/item/hemostat/cruel using invalid icon_state, "cruelhemostat" +2023-11-12T09:05:34.9209542Z 116 - /obj/item/retractor using invalid icon_state, "retractor" +2023-11-12T09:05:34.9211950Z 117 - /obj/item/retractor/advanced using invalid icon_state, "adv_retractor" +2023-11-12T09:05:34.9214520Z 118 - /obj/item/retractor/cruel using invalid icon_state, "cruelretractor" +2023-11-12T09:05:34.9216984Z 119 - /obj/item/scalpel using invalid icon_state, "scalpel" +2023-11-12T09:05:34.9219596Z 120 - /obj/item/scalpel/supermatter using invalid icon_state, "supermatter_scalpel" +2023-11-12T09:05:34.9221828Z 121 - /obj/item/scalpel/advanced using invalid icon_state, "e_scalpel" +2023-11-12T09:05:34.9224110Z 122 - /obj/item/scalpel/cruel using invalid icon_state, "cruelscalpel" +2023-11-12T09:05:34.9226426Z 123 - /obj/item/surgical_drapes using invalid icon_state, "surgical_drapes" +2023-11-12T09:05:34.9230490Z 124 - /obj/item/crowbar/mechremoval using invalid icon_state, "mechremoval0" +2023-11-12T09:05:34.9245013Z 125 - /obj/item/crowbar/hammer using invalid icon_state, "clawhammer" +2023-11-12T09:05:34.9274002Z PASS /datum/unit_test/suit_storage_icons 2.1s +2023-11-12T09:05:34.9277303Z ##[endgroup] +2023-11-12T09:05:35.0051949Z ##[group]/datum/unit_test/amputation +2023-11-12T09:05:35.0418593Z PASS /datum/unit_test/amputation 0s +2023-11-12T09:05:35.0421400Z ##[endgroup] +2023-11-12T09:05:35.0919237Z ##[group]/datum/unit_test/brain_surgery +2023-11-12T09:05:35.1251285Z PASS /datum/unit_test/brain_surgery 0.1s +2023-11-12T09:05:35.1254329Z ##[endgroup] +2023-11-12T09:05:35.1587969Z ##[group]/datum/unit_test/head_transplant +2023-11-12T09:05:35.2257286Z PASS /datum/unit_test/head_transplant 0.1s +2023-11-12T09:05:35.2260747Z ##[endgroup] +2023-11-12T09:05:35.2834393Z ##[group]/datum/unit_test/multiple_surgeries +2023-11-12T09:05:35.3338834Z PASS /datum/unit_test/multiple_surgeries 0.1s +2023-11-12T09:05:35.3341725Z ##[endgroup] +2023-11-12T09:05:35.4031367Z ##[group]/datum/unit_test/start_tend_wounds +2023-11-12T09:05:35.4361296Z PASS /datum/unit_test/start_tend_wounds 0s +2023-11-12T09:05:35.4364716Z ##[endgroup] +2023-11-12T09:05:35.4772361Z ##[group]/datum/unit_test/tend_wounds +2023-11-12T09:05:35.5590830Z PASS /datum/unit_test/tend_wounds 0.1s +2023-11-12T09:05:35.5594252Z ##[endgroup] +2023-11-12T09:05:35.6747135Z ##[group]/datum/unit_test/tail_wag +2023-11-12T09:05:35.8571590Z PASS /datum/unit_test/tail_wag 0.2s +2023-11-12T09:05:35.8574630Z ##[endgroup] +2023-11-12T09:05:35.8824009Z ##[group]/datum/unit_test/teleporter +2023-11-12T09:05:35.9106477Z PASS /datum/unit_test/teleporter 0.1s +2023-11-12T09:05:35.9109891Z ##[endgroup] +2023-11-12T09:05:35.9363555Z ##[group]/datum/unit_test/tgui_create_message +2023-11-12T09:05:35.9367522Z PASS /datum/unit_test/tgui_create_message 0s +2023-11-12T09:05:35.9370812Z ##[endgroup] +2023-11-12T09:05:35.9501436Z ##[group]/datum/unit_test/timer_sanity +2023-11-12T09:05:35.9504464Z PASS /datum/unit_test/timer_sanity 0s +2023-11-12T09:05:35.9508070Z ##[endgroup] +2023-11-12T09:05:35.9637540Z ##[group]/datum/unit_test/trait_addition_and_removal +2023-11-12T09:05:35.9642216Z PASS /datum/unit_test/trait_addition_and_removal 0s +2023-11-12T09:05:35.9645763Z ##[endgroup] +2023-11-12T09:05:35.9828636Z ##[group]/datum/unit_test/traitor +2023-11-12T09:05:37.5946953Z PASS /datum/unit_test/traitor 1.6s +2023-11-12T09:05:37.5948067Z ##[endgroup] +2023-11-12T09:05:38.4317615Z ##[group]/datum/unit_test/traitor_mail_content_check +2023-11-12T09:05:38.4490029Z PASS /datum/unit_test/traitor_mail_content_check 0s +2023-11-12T09:05:38.4491508Z ##[endgroup] +2023-11-12T09:05:38.4962906Z ##[group]/datum/unit_test/trauma_granting +2023-11-12T09:05:38.5450644Z PASS /datum/unit_test/trauma_granting 0.1s +2023-11-12T09:05:38.5452259Z ##[endgroup] +2023-11-12T09:05:38.5799327Z ##[group]/datum/unit_test/turf_icons +2023-11-12T09:05:39.0838086Z PASS /datum/unit_test/turf_icons 0.5s +2023-11-12T09:05:39.0839541Z ##[endgroup] +2023-11-12T09:05:39.1032413Z ##[group]/datum/unit_test/tutorial_sanity +2023-11-12T09:05:39.1035529Z PASS /datum/unit_test/tutorial_sanity 0s +2023-11-12T09:05:39.1037920Z ##[endgroup] +2023-11-12T09:05:39.1166898Z ##[group]/datum/unit_test/verify_config_tags +2023-11-12T09:05:39.1172282Z PASS /datum/unit_test/verify_config_tags 0s +2023-11-12T09:05:39.1174748Z ##[endgroup] +2023-11-12T09:05:39.1303312Z ##[group]/datum/unit_test/verify_emoji_names +2023-11-12T09:05:39.1306816Z PASS /datum/unit_test/verify_emoji_names 0s +2023-11-12T09:05:39.1309155Z ##[endgroup] +2023-11-12T09:05:39.1436423Z ##[group]/datum/unit_test/moth_food +2023-11-12T09:05:39.1899509Z PASS /datum/unit_test/moth_food 0s +2023-11-12T09:05:39.1901926Z ##[endgroup] +2023-11-12T09:05:39.2373626Z ##[group]/datum/unit_test/golem_food +2023-11-12T09:05:39.2647161Z PASS /datum/unit_test/golem_food 0s +2023-11-12T09:05:39.2649458Z ##[endgroup] +2023-11-12T09:05:39.2901012Z ##[group]/datum/unit_test/wizard_loadout +2023-11-12T09:05:39.3687154Z PASS /datum/unit_test/wizard_loadout 0.1s +2023-11-12T09:05:39.3689468Z ##[endgroup] +2023-11-12T09:05:39.4375880Z ##[group]/datum/unit_test/worn_icons +2023-11-12T09:05:40.0482290Z PASS /datum/unit_test/worn_icons 0.6s +2023-11-12T09:05:40.0483826Z ##[endgroup] +2023-11-12T09:05:40.0625703Z ##[group]/datum/unit_test/find_reference_sanity +2023-11-12T09:05:40.0632296Z PASS /datum/unit_test/find_reference_sanity 0s +2023-11-12T09:05:40.0634532Z ##[endgroup] +2023-11-12T09:05:40.0765341Z ##[group]/datum/unit_test/find_reference_baseline +2023-11-12T09:05:40.0771322Z PASS /datum/unit_test/find_reference_baseline 0s +2023-11-12T09:05:40.0773723Z ##[endgroup] +2023-11-12T09:05:40.0904726Z ##[group]/datum/unit_test/find_reference_exotic +2023-11-12T09:05:40.0910664Z PASS /datum/unit_test/find_reference_exotic 0s +2023-11-12T09:05:40.0913091Z ##[endgroup] +2023-11-12T09:05:40.1081989Z ##[group]/datum/unit_test/find_reference_esoteric +2023-11-12T09:05:40.1091594Z PASS /datum/unit_test/find_reference_esoteric 0s +2023-11-12T09:05:40.1093910Z ##[endgroup] +2023-11-12T09:05:40.1356236Z ##[group]/datum/unit_test/find_reference_null_key_entry +2023-11-12T09:05:40.1361917Z PASS /datum/unit_test/find_reference_null_key_entry 0s +2023-11-12T09:05:40.1364019Z ##[endgroup] +2023-11-12T09:05:40.1495527Z ##[group]/datum/unit_test/find_reference_assoc_investigation +2023-11-12T09:05:40.1501290Z PASS /datum/unit_test/find_reference_assoc_investigation 0s +2023-11-12T09:05:40.1503468Z ##[endgroup] +2023-11-12T09:05:40.1629204Z ##[group]/datum/unit_test/find_reference_static_investigation +2023-11-12T09:05:40.4955432Z PASS /datum/unit_test/find_reference_static_investigation 0.3s +2023-11-12T09:05:40.4956809Z ##[endgroup] +2023-11-12T09:05:40.5106809Z ##[group]/datum/unit_test/area_contents +2023-11-12T09:05:41.5891675Z PASS /datum/unit_test/area_contents 1s +2023-11-12T09:05:41.5893012Z ##[endgroup] +2023-11-12T09:05:41.6151445Z ##[group]/datum/unit_test/atmospherics_sanity +2023-11-12T09:05:41.6152255Z No starting areas found, defaulting... +2023-11-12T09:05:41.6155445Z Marking all station areas as goal areas due to marker at (2, 254, 2) +2023-11-12T09:05:42.2832551Z PASS /datum/unit_test/atmospherics_sanity 0.6s +2023-11-12T09:05:42.2834628Z ##[endgroup] +2023-11-12T09:05:42.3215674Z ##[group]/datum/unit_test/fish_rescue_hook +2023-11-12T09:05:49.5841266Z PASS /datum/unit_test/fish_rescue_hook 7.2s +2023-11-12T09:05:49.5842563Z ##[endgroup] +2023-11-12T09:05:49.6648561Z ##[group]/datum/unit_test/leash/no_teleport +2023-11-12T09:05:49.7264798Z PASS /datum/unit_test/leash/no_teleport 0.1s +2023-11-12T09:05:49.7267230Z ##[endgroup] +2023-11-12T09:05:49.7411212Z ##[group]/datum/unit_test/leash/will_teleport +2023-11-12T09:05:49.7421861Z PASS /datum/unit_test/leash/will_teleport 0s +2023-11-12T09:05:49.7424432Z ##[endgroup] +2023-11-12T09:05:49.7571233Z ##[group]/datum/unit_test/leash/limit_range +2023-11-12T09:05:49.7577430Z PASS /datum/unit_test/leash/limit_range 0s +2023-11-12T09:05:49.7579955Z ##[endgroup] +2023-11-12T09:05:49.7749544Z ##[group]/datum/unit_test/mapload_space_verification +2023-11-12T09:05:50.3597291Z PASS /datum/unit_test/mapload_space_verification 0.6s +2023-11-12T09:05:50.3598841Z ##[endgroup] +2023-11-12T09:05:50.3862628Z ##[group]/datum/unit_test/mob_damage +2023-11-12T09:05:50.4877049Z PASS /datum/unit_test/mob_damage 0.1s +2023-11-12T09:05:50.4878381Z ##[endgroup] +2023-11-12T09:05:50.5135873Z ##[group]/datum/unit_test/mob_damage/basic +2023-11-12T09:05:50.5174197Z PASS /datum/unit_test/mob_damage/basic 0s +2023-11-12T09:05:50.5176179Z ##[endgroup] +2023-11-12T09:05:50.5348335Z ##[group]/datum/unit_test/modify_fantasy_variable +2023-11-12T09:06:17.8433778Z PASS /datum/unit_test/modify_fantasy_variable 27.3s +2023-11-12T09:06:17.8434791Z ##[endgroup] +2023-11-12T09:06:24.9200774Z ##[group]/datum/unit_test/monkey_business +2023-11-12T09:06:44.1178950Z [09:06:44] Runtime in timer.dm,125: Invalid timer: Timer: Timer: 2433 ([0x2100859b]), TTR: 328041, wait:2 Flags: TIMER_CLIENT_TIME, TIMER_STOPPABLE, callBack: [0x2105a831], callBack.object: /datum/looping_sound/showering[0x210085b4](/datum/looping_sound/showering), callBack.delegate:/datum/looping_sound/proc/start_sound_loop(), source: code/datums/looping_sounds/_looping_sound.dm:220Prev: NULL, Next: NULL, SPENT(328041), QDELETED, NO CALLBACK world.time: 942.5, head_offset: 600, practical_offset: 686, REALTIMEOFDAY: 328041 +2023-11-12T09:06:44.1182762Z proc name: fire (/datum/controller/subsystem/timer/fire) +2023-11-12T09:06:44.1191977Z src: Sound Loops (/datum/controller/subsystem/timer/sound_loops) +2023-11-12T09:06:44.1192834Z call stack: +2023-11-12T09:06:44.1193480Z Sound Loops (/datum/controller/subsystem/timer/sound_loops): fire(0) +2023-11-12T09:06:44.1194547Z Sound Loops (/datum/controller/subsystem/timer/sound_loops): fire(0) +2023-11-12T09:06:44.1195659Z Sound Loops (/datum/controller/subsystem/timer/sound_loops): ignite(0) +2023-11-12T09:06:44.1196597Z Master (/datum/controller/master): RunQueue() +2023-11-12T09:06:44.1201550Z Master (/datum/controller/master): Loop(2) +2023-11-12T09:06:44.1202483Z Master (/datum/controller/master): StartProcessing(0) +2023-11-12T09:07:03.3211396Z ##[error][09:06:44] Runtime in timer.dm,125: Invalid timer: Timer: Timer: 2433 ([0x2100859b]), TTR: 328041, wait:2 Flags: TIMER_CLIENT_TIME, TIMER_STOPPABLE, callBack: [0x2105a831], callBack.object: /datum/looping_sound/showering[0x210085b4](/datum/looping_sound/showering), callBack.delegate:/datum/looping_sound/proc/start_sound_loop(), source: code/datums/looping_sounds/_looping_sound.dm:220Prev: NULL, Next: NULL, SPENT(328041), QDELETED, NO CALLBACK world.time: 942.5, head_offset: 600, practical_offset: 686, REALTIMEOFDAY: 328041 + proc name: fire (/datum/controller/subsystem/timer/fire) + src: Sound Loops (/datum/controller/subsystem/timer/sound_loops) + call stack: + Sound Loops (/datum/controller/subsystem/timer/sound_loops): fire(0) + Sound Loops (/datum/controller/subsystem/timer/sound_loops): fire(0) + Sound Loops (/datum/controller/subsystem/timer/sound_loops): ignite(0) + Master (/datum/controller/master): RunQueue() + Master (/datum/controller/master): Loop(2) + Master (/datum/controller/master): StartProcessing(0) +2023-11-12T09:07:03.3224436Z FAILURE #1: [09:06:44] Runtime in timer.dm,125: Invalid timer: Timer: Timer: 2433 ([0x2100859b]), TTR: 328041, wait:2 Flags: TIMER_CLIENT_TIME, TIMER_STOPPABLE, callBack: [0x2105a831], callBack.object: /datum/looping_sound/showering[0x210085b4](/datum/looping_sound/showering), callBack.delegate:/datum/looping_sound/proc/start_sound_loop(), source: code/datums/looping_sounds/_looping_sound.dm:220Prev: NULL, Next: NULL, SPENT(328041), QDELETED, NO CALLBACK world.time: 942.5, head_offset: 600, practical_offset: 686, REALTIMEOFDAY: 328041 +2023-11-12T09:07:03.3226826Z proc name: fire (/datum/controller/subsystem/timer/fire) +2023-11-12T09:07:03.3227626Z src: Sound Loops (/datum/controller/subsystem/timer/sound_loops) +2023-11-12T09:07:03.3228077Z call stack: +2023-11-12T09:07:03.3228462Z Sound Loops (/datum/controller/subsystem/timer/sound_loops): fire(0) +2023-11-12T09:07:03.3229045Z Sound Loops (/datum/controller/subsystem/timer/sound_loops): fire(0) +2023-11-12T09:07:03.3229619Z Sound Loops (/datum/controller/subsystem/timer/sound_loops): ignite(0) +2023-11-12T09:07:03.3230129Z Master (/datum/controller/master): RunQueue() +2023-11-12T09:07:03.3230524Z Master (/datum/controller/master): Loop(2) +2023-11-12T09:07:03.3231037Z Master (/datum/controller/master): StartProcessing(0) at timer.dm:125 +2023-11-12T09:07:03.3231712Z ##[endgroup] +2023-11-12T09:07:03.3232839Z ##[error]FAIL /datum/unit_test/monkey_business 38.4s +2023-11-12T09:07:05.4669397Z ##[group]/datum/unit_test/strange_reagent +2023-11-12T09:07:09.1986629Z PASS /datum/unit_test/strange_reagent 3.7s +2023-11-12T09:07:09.1988202Z ##[endgroup] +2023-11-12T09:07:11.6843550Z ##[group]/datum/unit_test/create_and_destroy +2023-11-12T09:07:36.2863567Z No elevator ID for elevator music provided at Test Room (126,126,14). +2023-11-12T09:08:13.7560132Z PASS /datum/unit_test/create_and_destroy 62.1s +2023-11-12T09:08:13.7561471Z ##[endgroup] +2023-11-12T09:08:13.7852782Z ##[group]/datum/unit_test/dcs_check_list_arguments +2023-11-12T09:08:13.7940678Z PASS /datum/unit_test/dcs_check_list_arguments 0s +2023-11-12T09:08:13.7942424Z ##[endgroup] +2023-11-12T09:08:15.2400236Z Shutting down Chat subsystem... +2023-11-12T09:08:15.2402039Z Shutting down Init Profiler subsystem... +2023-11-12T09:08:15.2404881Z Shutting down Ban Cache subsystem... +2023-11-12T09:08:15.2407209Z Shutting down Stat Panels subsystem... +2023-11-12T09:08:15.2409633Z Shutting down Explosions subsystem... +2023-11-12T09:08:15.2412008Z Shutting down Pathfinder subsystem... +2023-11-12T09:08:15.2414438Z Shutting down Minor Mapping subsystem... +2023-11-12T09:08:15.2416820Z Shutting down Shuttle subsystem... +2023-11-12T09:08:15.2420930Z Warning: Subsystem `Shuttle` slept 2 times. +2023-11-12T09:08:15.2421633Z Shutting down Lighting subsystem... +2023-11-12T09:08:15.2423743Z Shutting down XKeyScore subsystem... +2023-11-12T09:08:15.2425667Z Shutting down PRISM subsystem... +2023-11-12T09:08:15.2427615Z Shutting down Icon Smoothing subsystem... +2023-11-12T09:08:15.2429451Z Shutting down Assets subsystem... +2023-11-12T09:08:15.2431258Z Shutting down Vote subsystem... +2023-11-12T09:08:15.2433223Z Shutting down Persistent Paintings subsystem... +2023-11-12T09:08:15.2435113Z Shutting down Persistence subsystem... +2023-11-12T09:08:15.2437033Z Shutting down Atmospherics subsystem... +2023-11-12T09:08:15.2439009Z Shutting down Wiremod Composite Templates subsystem... +2023-11-12T09:08:15.2440741Z Shutting down Wet floors subsystem... +2023-11-12T09:08:15.2443279Z Shutting down Weather subsystem... +2023-11-12T09:08:15.2445531Z Shutting down Wardrobe subsystem... +2023-11-12T09:08:15.2447137Z Shutting down Verb Manager subsystem... +2023-11-12T09:08:15.2448994Z Shutting down Tutorials subsystem... +2023-11-12T09:08:15.2450888Z Shutting down Transport subsystem... +2023-11-12T09:08:15.2452762Z Shutting down Traitor subsystem... +2023-11-12T09:08:15.2454635Z Shutting down Throwing subsystem... +2023-11-12T09:08:15.2456529Z Shutting down tgui subsystem... +2023-11-12T09:08:15.2458543Z Shutting down Supermatter Cascade subsystem... +2023-11-12T09:08:15.2460380Z Shutting down Sun subsystem... +2023-11-12T09:08:15.2462254Z Shutting down Stock Market subsystem... +2023-11-12T09:08:15.2464168Z Shutting down Speech Controller subsystem... +2023-11-12T09:08:15.2466003Z Shutting down Space Drift subsystem... +2023-11-12T09:08:15.2467944Z Shutting down Smoke subsystem... +2023-11-12T09:08:15.2469878Z Shutting down Singularity subsystem... +2023-11-12T09:08:15.2472104Z Shutting down Radioactive Nebula subsystem... +2023-11-12T09:08:15.2473961Z Shutting down Radio subsystem... +2023-11-12T09:08:15.2476202Z Shutting down Radiation subsystem... +2023-11-12T09:08:15.2477898Z Shutting down Projectiles subsystem... +2023-11-12T09:08:15.2479832Z Shutting down Processing subsystem... +2023-11-12T09:08:15.2482409Z Shutting down Points of Interest subsystem... +2023-11-12T09:08:15.2484346Z Shutting down Plumbing subsystem... +2023-11-12T09:08:15.2486233Z Shutting down Ping subsystem... +2023-11-12T09:08:15.2488172Z Shutting down Parallax subsystem... +2023-11-12T09:08:15.2490092Z Shutting down pAI subsystem... +2023-11-12T09:08:15.2492038Z Shutting down Overlay subsystem... +2023-11-12T09:08:15.7359113Z Shutting down Objects subsystem... +2023-11-12T09:08:15.7360449Z Shutting down Obj Tab Items subsystem... +2023-11-12T09:08:15.7363590Z Shutting down NPC Pool subsystem... +2023-11-12T09:08:15.7365241Z Shutting down Night Shift subsystem... +2023-11-12T09:08:15.7367764Z Shutting down Movement Loops subsystem... +2023-11-12T09:08:15.7369511Z Shutting down Movement Handler subsystem... +2023-11-12T09:08:15.7371589Z Shutting down MouseEntered subsystem... +2023-11-12T09:08:15.7373527Z Shutting down Mood subsystem... +2023-11-12T09:08:15.7375649Z Shutting down Modular Computers subsystem... +2023-11-12T09:08:15.7377558Z Shutting down Mobs subsystem... +2023-11-12T09:08:15.7379600Z Shutting down Materials subsystem... +2023-11-12T09:08:15.7381572Z Shutting down Lua Scripting subsystem... +2023-11-12T09:08:15.7505514Z Shutting down Library Loading subsystem... +2023-11-12T09:08:15.7507489Z Shutting down Lag Switch subsystem... +2023-11-12T09:08:15.7509583Z Shutting down Idling NPC Pool subsystem... +2023-11-12T09:08:15.7511671Z Shutting down Hyperspace Drift subsystem... +2023-11-12T09:08:15.7513591Z Shutting down Foam subsystem... +2023-11-12T09:08:15.7515516Z Shutting down Fluid subsystem... +2023-11-12T09:08:15.7517494Z Shutting down Fishing subsystem... +2023-11-12T09:08:15.7519635Z Shutting down Fast Processing subsystem... +2023-11-12T09:08:15.7521688Z Shutting down Escape Menu subsystem... +2023-11-12T09:08:15.7523697Z Shutting down Eigenstates subsystem... +2023-11-12T09:08:15.7525621Z Shutting down Disease subsystem... +2023-11-12T09:08:15.7527699Z Shutting down Digital Clocks subsystem... +2023-11-12T09:08:15.7529722Z Shutting down Datum Component System subsystem... +2023-11-12T09:08:15.7531714Z Shutting down Conveyor Belts subsystem... +2023-11-12T09:08:15.7533950Z Shutting down Communications subsystem... +2023-11-12T09:08:15.7536091Z Shutting down Clock Component subsystem... +2023-11-12T09:08:15.7538058Z Shutting down Cliff Falling subsystem... +2023-11-12T09:08:15.7540124Z Shutting down Circuit Components subsystem... +2023-11-12T09:08:15.7542040Z Shutting down Burning subsystem... +2023-11-12T09:08:15.7544007Z Shutting down Blackmarket subsystem... +2023-11-12T09:08:15.7545998Z Shutting down Basic Avoidance subsystem... +2023-11-12T09:08:15.7547937Z Shutting down Aura Healing subsystem... +2023-11-12T09:08:15.7549860Z Shutting down Augury subsystem... +2023-11-12T09:08:15.7552123Z Shutting down Asset Loading subsystem... +2023-11-12T09:08:15.7553815Z Shutting down Area Contents subsystem... +2023-11-12T09:08:15.7555740Z Shutting down Antag HUDs subsystem... +2023-11-12T09:08:15.7557720Z Shutting down Ambience subsystem... +2023-11-12T09:08:15.7559697Z Shutting down Addiction subsystem... +2023-11-12T09:08:15.7562910Z Shutting down Acid subsystem... +2023-11-12T09:08:15.7564740Z Shutting down Timer subsystem... +2023-11-12T09:08:15.7566504Z Shutting down Sound Loops subsystem... +2023-11-12T09:08:15.7568731Z Shutting down Runechat subsystem... +2023-11-12T09:08:15.7570746Z Shutting down Queue Links subsystem... +2023-11-12T09:08:15.7572695Z Shutting down Skills subsystem... +2023-11-12T09:08:15.7574685Z Shutting down Machines subsystem... +2023-11-12T09:08:15.7576634Z Shutting down Language subsystem... +2023-11-12T09:08:15.7578608Z Shutting down Atoms subsystem... +2023-11-12T09:08:15.7601367Z Shutting down Text To Speech subsystem... +2023-11-12T09:08:15.7603675Z Shutting down Restaurant subsystem... +2023-11-12T09:08:15.7605588Z Shutting down Economy subsystem... +2023-11-12T09:08:15.7607616Z Shutting down Spatial Grid subsystem... +2023-11-12T09:08:15.7609600Z Shutting down Time Tracking subsystem... +2023-11-12T09:08:15.7611597Z Shutting down Research subsystem... +2023-11-12T09:08:15.7613755Z Shutting down Early Assets subsystem... +2023-11-12T09:08:15.7615768Z Shutting down Mapping subsystem... +2023-11-12T09:08:15.7617822Z Shutting down Trading Card Game subsystem... +2023-11-12T09:08:15.7619966Z Shutting down Ticker subsystem... +2023-11-12T09:08:15.7622043Z Warning: Subsystem `Ticker` slept 1 times. +2023-11-12T09:08:15.7644481Z Unable to locate admins backup file. +2023-11-12T09:08:15.7654489Z Shutting down AI Controller Ticker subsystem... +2023-11-12T09:08:15.7656545Z Shutting down AI Behavior Ticker subsystem... +2023-11-12T09:08:15.7658539Z Shutting down AI movement subsystem... +2023-11-12T09:08:15.7660519Z Shutting down Jobs subsystem... +2023-11-12T09:08:15.7662633Z Shutting down IDs and Access subsystem... +2023-11-12T09:08:15.7664623Z Shutting down Events subsystem... +2023-11-12T09:08:15.7666630Z Shutting down Reagents subsystem... +2023-11-12T09:08:15.7668611Z Shutting down Quirks subsystem... +2023-11-12T09:08:15.7670631Z Shutting down Station subsystem... +2023-11-12T09:08:15.7672688Z Shutting down Achievements subsystem... +2023-11-12T09:08:15.7674715Z Shutting down Discord subsystem... +2023-11-12T09:08:15.7676785Z Shutting down Security Level subsystem... +2023-11-12T09:08:15.7678830Z Shutting down Vis contents overlays subsystem... +2023-11-12T09:08:15.7680780Z Shutting down Greyscale subsystem... +2023-11-12T09:08:15.7683265Z Shutting down Instruments subsystem... +2023-11-12T09:08:15.7685284Z Shutting down Sounds subsystem... +2023-11-12T09:08:15.7687269Z Shutting down Input subsystem... +2023-11-12T09:08:15.7689286Z Shutting down Server Tasks subsystem... +2023-11-12T09:08:15.7691440Z Shutting down Blackbox subsystem... +2023-11-12T09:08:15.7700214Z Shutting down Database subsystem... +2023-11-12T09:08:15.7709204Z Shutting down Garbage subsystem... +2023-11-12T09:08:18.8763587Z Shutting down Title Screen subsystem... +2023-11-12T09:08:18.8783727Z Shutting down Profiler subsystem... +2023-11-12T09:08:18.8789879Z Shutdown complete +2023-11-12T09:08:18.8797124Z Test run failed! +2023-11-12T09:08:18.8797462Z Total runtimes: 1 +2023-11-12T09:08:18.8797716Z Unit Tests failed! +2023-11-12T09:08:22.0106377Z cat: ci_test/data/logs/ci/clean_run.lk: No such file or directory +2023-11-12T09:08:22.0116872Z ##[error]Process completed with exit code 1. +2023-11-12T09:08:22.0170857Z ##[group]Run actions/upload-artifact@v3 +2023-11-12T09:08:22.0171222Z with: +2023-11-12T09:08:22.0171467Z name: test_artifacts_tramstation +2023-11-12T09:08:22.0171798Z path: data/screenshots_new/ +2023-11-12T09:08:22.0172089Z retention-days: 1 +2023-11-12T09:08:22.0172354Z if-no-files-found: warn +2023-11-12T09:08:22.0172621Z ##[endgroup] +2023-11-12T09:08:22.1010805Z With the provided path, there will be 77 files uploaded +2023-11-12T09:08:22.1013040Z Starting artifact upload +2023-11-12T09:08:22.1014930Z For more detailed logs during the artifact upload process, enable step-debugging: https://docs.github.com/actions/monitoring-and-troubleshooting-workflows/enabling-debug-logging#enabling-step-debug-logging +2023-11-12T09:08:22.1016085Z Artifact name is valid! +2023-11-12T09:08:22.1655325Z Container for artifact "test_artifacts_tramstation" successfully created. Starting upload of file(s) +2023-11-12T09:08:25.4511686Z Total size of all the files uploaded is 104264 bytes +2023-11-12T09:08:25.4513089Z File upload process has finished. Finalizing the artifact upload +2023-11-12T09:08:25.4967864Z Artifact has been finalized. All files have been successfully uploaded! +2023-11-12T09:08:25.4968795Z +2023-11-12T09:08:25.4969438Z The raw size of all the files that were specified for upload is 104534 bytes +2023-11-12T09:08:25.4995080Z The size of all the files that were uploaded is 104264 bytes. This takes into account any gzip compression used to reduce the upload size, time and storage +2023-11-12T09:08:25.4996373Z +2023-11-12T09:08:25.5000590Z Note: The size of downloaded zips can differ significantly from the reported size. For more information see: https://github.com/actions/upload-artifact#zipped-artifact-downloads +2023-11-12T09:08:25.5002432Z +2023-11-12T09:08:25.5002844Z Artifact test_artifacts_tramstation has been successfully uploaded! +2023-11-12T09:08:25.5131976Z ##[group]Run tgstation/byond-client-compatibility-check@v3 +2023-11-12T09:08:25.5132416Z with: +2023-11-12T09:08:25.5132646Z dmb-location: tgstation.dmb +2023-11-12T09:08:25.5132971Z max-required-client-version: 514 +2023-11-12T09:08:25.5133284Z ##[endgroup] +2023-11-12T09:08:25.5322365Z ##[group]Run (( 514 )) +2023-11-12T09:08:25.5322641Z (( 514 )) +2023-11-12T09:08:25.5367699Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0} +2023-11-12T09:08:25.5368129Z ##[endgroup] +2023-11-12T09:08:25.5463568Z ##[group]Run echo "required-client-version=$(( $( head -n2 tgstation.dmb | tail -n1 | cut -d " " -f 4 ) ))" >> $GITHUB_OUTPUT +2023-11-12T09:08:25.5464593Z echo "required-client-version=$(( $( head -n2 tgstation.dmb | tail -n1 | cut -d " " -f 4 ) ))" >> $GITHUB_OUTPUT +2023-11-12T09:08:25.5503899Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0} +2023-11-12T09:08:25.5504317Z ##[endgroup] +2023-11-12T09:08:25.5643709Z ##[group]Run (( 514 <= 514 )) +2023-11-12T09:08:25.5644042Z (( 514 <= 514 )) +2023-11-12T09:08:25.5682534Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0} +2023-11-12T09:08:25.5682953Z ##[endgroup] +2023-11-12T09:08:25.5835969Z Post job cleanup. +2023-11-12T09:08:25.6654082Z [command]/usr/bin/git version +2023-11-12T09:08:25.6698640Z git version 2.42.0 +2023-11-12T09:08:25.6737360Z Temporarily overriding HOME='/home/runner/work/_temp/8c7eca89-05a8-49f5-91d4-2ad2b8c1f35c' before making global git config changes +2023-11-12T09:08:25.6738762Z Adding repository directory to the temporary git global config as a safe directory +2023-11-12T09:08:25.6742986Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/tgstation/tgstation +2023-11-12T09:08:25.6784154Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2023-11-12T09:08:25.6822086Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" +2023-11-12T09:08:25.7132368Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2023-11-12T09:08:25.7163927Z http.https://github.com/.extraheader +2023-11-12T09:08:25.7175279Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader +2023-11-12T09:08:25.7216423Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" +2023-11-12T09:08:25.7590917Z Print service container logs: c43e2a4f7a0044eda3c3640d7583be1f_mysqllatest_210664 +2023-11-12T09:08:25.7595897Z ##[command]/usr/bin/docker logs --details 37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded +2023-11-12T09:08:25.7722763Z 2023-11-12 08:59:57+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.2.0-1.el8 started. +2023-11-12T09:08:25.7724170Z 2023-11-12 08:59:57+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql' +2023-11-12T09:08:25.7726315Z 2023-11-12T08:59:57.323609Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start. +2023-11-12T09:08:25.7728493Z 2023-11-12T08:59:57.324887Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead. +2023-11-12T09:08:25.7730639Z 2023-11-12 08:59:57+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.2.0-1.el8 started. +2023-11-12T09:08:25.7731931Z 2023-11-12 08:59:57+00:00 [Note] [Entrypoint]: Initializing database files +2023-11-12T09:08:25.7733478Z 2023-11-12T08:59:57.324980Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.2.0) initializing of server in progress as process 80 +2023-11-12T09:08:25.7735422Z 2023-11-12T08:59:57.329733Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. +2023-11-12T09:08:25.7736806Z 2023-11-12T08:59:57.538012Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. +2023-11-12T09:08:25.7737953Z 2023-11-12 09:00:00+00:00 [Note] [Entrypoint]: Database files initialized +2023-11-12T09:08:25.7738945Z 2023-11-12 09:00:00+00:00 [Note] [Entrypoint]: Starting temporary server +2023-11-12T09:08:25.7739945Z 2023-11-12 09:00:00+00:00 [Note] [Entrypoint]: Temporary server started. +2023-11-12T09:08:25.7740898Z '/var/lib/mysql/mysql.sock' -> '/var/run/mysqld/mysqld.sock' +2023-11-12T09:08:25.7741615Z +2023-11-12T09:08:25.7742199Z 2023-11-12 09:00:02+00:00 [Note] [Entrypoint]: Stopping temporary server +2023-11-12T09:08:25.7743236Z 2023-11-12 09:00:03+00:00 [Note] [Entrypoint]: Temporary server stopped +2023-11-12T09:08:25.7744003Z +2023-11-12T09:08:25.7744708Z 2023-11-12 09:00:03+00:00 [Note] [Entrypoint]: MySQL init process done. Ready for start up. +2023-11-12T09:08:25.7746704Z 2023-11-12T08:59:58.210653Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option. +2023-11-12T09:08:25.7748648Z 2023-11-12T09:00:00.300732Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end. +2023-11-12T09:08:25.7749899Z 2023-11-12T09:00:00.347787Z 0 [System] [MY-015015] [Server] MySQL Server - start. +2023-11-12T09:08:25.7751901Z 2023-11-12T09:00:00.530321Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead. +2023-11-12T09:08:25.7754106Z 2023-11-12T09:00:00.531123Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.2.0) starting as process 124 +2023-11-12T09:08:25.7756278Z 2023-11-12T09:00:00.541412Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. +2023-11-12T09:08:25.7757517Z 2023-11-12T09:00:00.630355Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. +2023-11-12T09:08:25.7758462Z 2023-11-12T09:00:00.815198Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. +2023-11-12T09:08:25.7759637Z 2023-11-12T09:00:00.815226Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel. +2023-11-12T09:08:25.7761631Z 2023-11-12T09:00:00.816463Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory. +2023-11-12T09:08:25.7763033Z 2023-11-12T09:00:00.828404Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: /var/run/mysqld/mysqlx.sock +2023-11-12T09:08:25.7764603Z 2023-11-12T09:00:00.828529Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.2.0' socket: '/var/run/mysqld/mysqld.sock' port: 0 MySQL Community Server - GPL. +2023-11-12T09:08:25.7765734Z 2023-11-12T09:00:00.829953Z 0 [System] [MY-015016] [Server] MySQL Server - end. +2023-11-12T09:08:25.7766430Z Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it. +2023-11-12T09:08:25.7767184Z Warning: Unable to load '/usr/share/zoneinfo/leap-seconds.list' as time zone. Skipping it. +2023-11-12T09:08:25.7767935Z Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it. +2023-11-12T09:08:25.7768649Z Warning: Unable to load '/usr/share/zoneinfo/tzdata.zi' as time zone. Skipping it. +2023-11-12T09:08:25.7769346Z Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it. +2023-11-12T09:08:25.7770052Z Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it. +2023-11-12T09:08:25.7770961Z 2023-11-12T09:00:02.470903Z 10 [System] [MY-013172] [Server] Received SHUTDOWN from user root. Shutting down mysqld (Version: 8.2.0). +2023-11-12T09:08:25.7772265Z 2023-11-12T09:00:03.257971Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.2.0) MySQL Community Server - GPL. +2023-11-12T09:08:25.7773173Z 2023-11-12T09:00:03.260270Z 0 [System] [MY-015016] [Server] MySQL Server - end. +2023-11-12T09:08:25.7773836Z 2023-11-12T09:00:03.482460Z 0 [System] [MY-015015] [Server] MySQL Server - start. +2023-11-12T09:08:25.7774963Z 2023-11-12T09:00:03.659729Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead. +2023-11-12T09:08:25.7776201Z 2023-11-12T09:00:03.661194Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.2.0) starting as process 1 +2023-11-12T09:08:25.7777020Z 2023-11-12T09:00:03.666529Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. +2023-11-12T09:08:25.7777756Z 2023-11-12T09:00:03.752233Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. +2023-11-12T09:08:25.7778518Z 2023-11-12T09:00:03.907357Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. +2023-11-12T09:08:25.7779564Z 2023-11-12T09:00:03.907387Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel. +2023-11-12T09:08:25.7781056Z 2023-11-12T09:00:03.908492Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory. +2023-11-12T09:08:25.7782533Z 2023-11-12T09:00:03.922214Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock +2023-11-12T09:08:25.7783946Z 2023-11-12T09:00:03.922317Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.2.0' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL. +2023-11-12T09:08:25.7784877Z +2023-11-12T09:08:25.7790536Z Stop and remove container: c43e2a4f7a0044eda3c3640d7583be1f_mysqllatest_210664 +2023-11-12T09:08:25.7796028Z ##[command]/usr/bin/docker rm --force 37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded +2023-11-12T09:08:26.0454956Z 37a3cfd21d3298b61164877b4eaf9717ee52eda64115ae9cd1aef5206d293ded +2023-11-12T09:08:26.0480580Z Remove container network: github_network_bc2270e2d9644957ba98982ec5cf35f2 +2023-11-12T09:08:26.0487395Z ##[command]/usr/bin/docker network rm github_network_bc2270e2d9644957ba98982ec5cf35f2 +2023-11-12T09:08:26.3137535Z github_network_bc2270e2d9644957ba98982ec5cf35f2 +2023-11-12T09:08:26.3289510Z Cleaning up orphan processes diff --git a/tools/pull_request_hooks/flakyTestPayloads/monkey_business.txt b/tools/pull_request_hooks/flakyTestPayloads/monkey_business.txt new file mode 100644 index 000000000000..a52375357a07 --- /dev/null +++ b/tools/pull_request_hooks/flakyTestPayloads/monkey_business.txt @@ -0,0 +1,2451 @@ +2022-11-01T15:22:09.7007979Z Requested labels: ubuntu-20.04 +2022-11-01T15:22:09.7008038Z Job defined at: tgstation/tgstation/.github/workflows/ci_suite.yml@refs/pull/70980/merge +2022-11-01T15:22:09.7008063Z Waiting for a runner to pick up this job... +2022-11-01T15:22:10.2221600Z Job is waiting for a hosted runner to come online. +2022-11-01T15:22:14.3820892Z Job is about to start running on the hosted runner: GitHub Actions 16 (hosted) +2022-11-01T15:22:17.2355862Z Current runner version: '2.298.2' +2022-11-01T15:22:17.2393184Z ##[group]Operating System +2022-11-01T15:22:17.2393885Z Ubuntu +2022-11-01T15:22:17.2394168Z 20.04.5 +2022-11-01T15:22:17.2394933Z LTS +2022-11-01T15:22:17.2395251Z ##[endgroup] +2022-11-01T15:22:17.2395537Z ##[group]Runner Image +2022-11-01T15:22:17.2395920Z Image: ubuntu-20.04 +2022-11-01T15:22:17.2396312Z Version: 20221027.1 +2022-11-01T15:22:17.2396868Z Included Software: https://github.com/actions/runner-images/blob/ubuntu20/20221027.1/images/linux/Ubuntu2004-Readme.md +2022-11-01T15:22:17.2397529Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu20%2F20221027.1 +2022-11-01T15:22:17.2398002Z ##[endgroup] +2022-11-01T15:22:17.2398309Z ##[group]Runner Image Provisioner +2022-11-01T15:22:17.2398710Z 2.0.91.1 +2022-11-01T15:22:17.2399019Z ##[endgroup] +2022-11-01T15:22:17.2399973Z ##[group]GITHUB_TOKEN Permissions +2022-11-01T15:22:17.2400709Z Actions: read +2022-11-01T15:22:17.2401056Z Checks: read +2022-11-01T15:22:17.2401569Z Contents: read +2022-11-01T15:22:17.2401976Z Deployments: read +2022-11-01T15:22:17.2402321Z Discussions: read +2022-11-01T15:22:17.2402709Z Issues: read +2022-11-01T15:22:17.2402981Z Metadata: read +2022-11-01T15:22:17.2403324Z Packages: read +2022-11-01T15:22:17.2403646Z Pages: read +2022-11-01T15:22:17.2403926Z PullRequests: read +2022-11-01T15:22:17.2404338Z RepositoryProjects: read +2022-11-01T15:22:17.2404945Z SecurityEvents: read +2022-11-01T15:22:17.2405240Z Statuses: read +2022-11-01T15:22:17.2405577Z ##[endgroup] +2022-11-01T15:22:17.2410281Z Secret source: None +2022-11-01T15:22:17.2410802Z Prepare workflow directory +2022-11-01T15:22:17.3953802Z Prepare all required actions +2022-11-01T15:22:17.4201039Z Getting action download info +2022-11-01T15:22:17.6939075Z Download action repository 'actions/checkout@v3' (SHA:93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8) +2022-11-01T15:22:18.9161379Z Download action repository 'actions/cache@v3' (SHA:1c73980b09e7aea7201f325a7aa3ad00beddcdda) +2022-11-01T15:22:20.3064444Z Download action repository 'actions/upload-artifact@v3' (SHA:83fd05a356d7e2593de66fc9913b3002723633cb) +2022-11-01T15:22:21.5263114Z ##[group]Checking docker version +2022-11-01T15:22:21.5284545Z ##[command]/usr/bin/docker version --format '{{.Server.APIVersion}}' +2022-11-01T15:22:21.7821858Z '1.41' +2022-11-01T15:22:21.7840681Z Docker daemon API version: '1.41' +2022-11-01T15:22:21.7841209Z ##[command]/usr/bin/docker version --format '{{.Client.APIVersion}}' +2022-11-01T15:22:21.8152000Z '1.41' +2022-11-01T15:22:21.8176781Z Docker client API version: '1.41' +2022-11-01T15:22:21.8186583Z ##[endgroup] +2022-11-01T15:22:21.8192234Z ##[group]Clean up resources from previous jobs +2022-11-01T15:22:21.8200740Z ##[command]/usr/bin/docker ps --all --quiet --no-trunc --filter "label=8d5581" +2022-11-01T15:22:21.8479497Z ##[command]/usr/bin/docker network prune --force --filter "label=8d5581" +2022-11-01T15:22:21.8756254Z ##[endgroup] +2022-11-01T15:22:21.8756617Z ##[group]Create local container network +2022-11-01T15:22:21.8773847Z ##[command]/usr/bin/docker network create --label 8d5581 github_network_7d8483aa88b2460d91b946ac72079065 +2022-11-01T15:22:21.9692504Z e63735eb313884b0b3c2a30de089b7ac7f9db8f270d21a7e96d5dfa805d1dc67 +2022-11-01T15:22:21.9707619Z ##[endgroup] +2022-11-01T15:22:21.9833163Z ##[group]Starting mysql service container +2022-11-01T15:22:21.9860217Z ##[command]/usr/bin/docker pull mysql:latest +2022-11-01T15:22:23.3081644Z latest: Pulling from library/mysql +2022-11-01T15:22:23.6553709Z d67a603b911a: Pulling fs layer +2022-11-01T15:22:23.6554244Z 0cf69c8f1492: Pulling fs layer +2022-11-01T15:22:23.6554502Z a5ee239a0d3a: Pulling fs layer +2022-11-01T15:22:23.6554752Z 0f166cb3e327: Pulling fs layer +2022-11-01T15:22:23.6555140Z 882d294bf188: Pulling fs layer +2022-11-01T15:22:23.6555590Z 2649fc7eb806: Pulling fs layer +2022-11-01T15:22:23.6555993Z bddb3394e2e3: Pulling fs layer +2022-11-01T15:22:23.6556266Z 93c83d9a2206: Pulling fs layer +2022-11-01T15:22:23.6556762Z 99d7f45787c0: Pulling fs layer +2022-11-01T15:22:23.6557007Z 234663a2e3ee: Pulling fs layer +2022-11-01T15:22:23.6557699Z 74531487bb7b: Pulling fs layer +2022-11-01T15:22:23.6557925Z 882d294bf188: Waiting +2022-11-01T15:22:23.6558139Z 2649fc7eb806: Waiting +2022-11-01T15:22:23.6558335Z bddb3394e2e3: Waiting +2022-11-01T15:22:23.6558547Z 93c83d9a2206: Waiting +2022-11-01T15:22:23.6558750Z 99d7f45787c0: Waiting +2022-11-01T15:22:23.6558937Z 234663a2e3ee: Waiting +2022-11-01T15:22:23.6559142Z 74531487bb7b: Waiting +2022-11-01T15:22:23.6559540Z 0f166cb3e327: Waiting +2022-11-01T15:22:23.9867293Z a5ee239a0d3a: Verifying Checksum +2022-11-01T15:22:23.9867941Z a5ee239a0d3a: Download complete +2022-11-01T15:22:24.0450086Z 0cf69c8f1492: Verifying Checksum +2022-11-01T15:22:24.0453075Z 0cf69c8f1492: Download complete +2022-11-01T15:22:24.3464913Z 0f166cb3e327: Verifying Checksum +2022-11-01T15:22:24.3465310Z 0f166cb3e327: Download complete +2022-11-01T15:22:24.3517047Z 882d294bf188: Verifying Checksum +2022-11-01T15:22:24.3518202Z 882d294bf188: Download complete +2022-11-01T15:22:24.6730495Z 2649fc7eb806: Verifying Checksum +2022-11-01T15:22:24.6731468Z 2649fc7eb806: Download complete +2022-11-01T15:22:25.0002710Z 93c83d9a2206: Verifying Checksum +2022-11-01T15:22:25.0003976Z 93c83d9a2206: Download complete +2022-11-01T15:22:25.1541923Z bddb3394e2e3: Verifying Checksum +2022-11-01T15:22:25.1542827Z bddb3394e2e3: Download complete +2022-11-01T15:22:25.4166178Z d67a603b911a: Verifying Checksum +2022-11-01T15:22:25.4167080Z d67a603b911a: Download complete +2022-11-01T15:22:25.4830760Z 234663a2e3ee: Verifying Checksum +2022-11-01T15:22:25.4846538Z 234663a2e3ee: Download complete +2022-11-01T15:22:25.7381703Z 74531487bb7b: Verifying Checksum +2022-11-01T15:22:25.7382588Z 74531487bb7b: Download complete +2022-11-01T15:22:25.8527402Z 99d7f45787c0: Verifying Checksum +2022-11-01T15:22:25.8549349Z 99d7f45787c0: Download complete +2022-11-01T15:22:27.1417789Z d67a603b911a: Pull complete +2022-11-01T15:22:28.0615469Z 0cf69c8f1492: Pull complete +2022-11-01T15:22:28.1630064Z a5ee239a0d3a: Pull complete +2022-11-01T15:22:28.4630683Z 0f166cb3e327: Pull complete +2022-11-01T15:22:28.5470127Z 882d294bf188: Pull complete +2022-11-01T15:22:28.6222715Z 2649fc7eb806: Pull complete +2022-11-01T15:22:30.8200860Z bddb3394e2e3: Pull complete +2022-11-01T15:22:30.8846376Z 93c83d9a2206: Pull complete +2022-11-01T15:22:36.7604768Z 99d7f45787c0: Pull complete +2022-11-01T15:22:36.8357942Z 234663a2e3ee: Pull complete +2022-11-01T15:22:36.9012415Z 74531487bb7b: Pull complete +2022-11-01T15:22:36.9094455Z Digest: sha256:d4055451e7f42869e64089a60d1abc9e66eccde2910629f0dd666b53a5f230d8 +2022-11-01T15:22:36.9127968Z Status: Downloaded newer image for mysql:latest +2022-11-01T15:22:36.9154819Z docker.io/library/mysql:latest +2022-11-01T15:22:36.9298550Z ##[command]/usr/bin/docker create --name e281b5d836644f53b33d06a88663b086_mysqllatest_c6a68e --label 8d5581 --network github_network_7d8483aa88b2460d91b946ac72079065 --network-alias mysql -p 3306 --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 -e "MYSQL_ROOT_PASSWORD=root" -e GITHUB_ACTIONS=true -e CI=true mysql:latest +2022-11-01T15:22:36.9879151Z cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1 +2022-11-01T15:22:36.9911210Z ##[command]/usr/bin/docker start cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1 +2022-11-01T15:22:37.4755521Z cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1 +2022-11-01T15:22:37.4795933Z ##[command]/usr/bin/docker ps --all --filter id=cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1 --filter status=running --no-trunc --format "{{.ID}} {{.Status}}" +2022-11-01T15:22:37.5113258Z cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1 Up Less than a second (health: starting) +2022-11-01T15:22:37.5177404Z ##[command]/usr/bin/docker port cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1 +2022-11-01T15:22:37.5462051Z 3306/tcp -> 0.0.0.0:49153 +2022-11-01T15:22:37.5464354Z 3306/tcp -> :::49153 +2022-11-01T15:22:37.5587024Z ##[endgroup] +2022-11-01T15:22:37.5587360Z ##[group]Waiting for all services to be ready +2022-11-01T15:22:37.5644998Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1 +2022-11-01T15:22:37.5931031Z starting +2022-11-01T15:22:37.5967460Z mysql service is starting, waiting 2 seconds before checking again. +2022-11-01T15:22:39.5985654Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1 +2022-11-01T15:22:39.6392920Z starting +2022-11-01T15:22:39.6411834Z mysql service is starting, waiting 4 seconds before checking again. +2022-11-01T15:22:43.7096918Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1 +2022-11-01T15:22:43.7721367Z starting +2022-11-01T15:22:43.7737289Z mysql service is starting, waiting 8 seconds before checking again. +2022-11-01T15:22:51.9262367Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1 +2022-11-01T15:22:51.9505260Z starting +2022-11-01T15:22:51.9522218Z mysql service is starting, waiting 13 seconds before checking again. +2022-11-01T15:23:05.2771619Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1 +2022-11-01T15:23:05.3013771Z healthy +2022-11-01T15:23:05.3024538Z mysql service is healthy. +2022-11-01T15:23:05.3024986Z ##[endgroup] +2022-11-01T15:23:05.3498117Z ##[group]Run actions/checkout@v3 +2022-11-01T15:23:05.3498404Z with: +2022-11-01T15:23:05.3498607Z repository: tgstation/tgstation +2022-11-01T15:23:05.3499131Z token: *** +2022-11-01T15:23:05.3499336Z ssh-strict: true +2022-11-01T15:23:05.3499566Z persist-credentials: true +2022-11-01T15:23:05.3499930Z clean: true +2022-11-01T15:23:05.3500134Z fetch-depth: 1 +2022-11-01T15:23:05.3500323Z lfs: false +2022-11-01T15:23:05.3500668Z submodules: false +2022-11-01T15:23:05.3500890Z set-safe-directory: true +2022-11-01T15:23:05.3501110Z ##[endgroup] +2022-11-01T15:23:05.7431946Z Syncing repository: tgstation/tgstation +2022-11-01T15:23:05.7434241Z ##[group]Getting Git version info +2022-11-01T15:23:05.7435150Z Working directory is '/home/runner/work/tgstation/tgstation' +2022-11-01T15:23:05.7435653Z [command]/usr/bin/git version +2022-11-01T15:23:05.7647982Z git version 2.38.1 +2022-11-01T15:23:05.7683915Z ##[endgroup] +2022-11-01T15:23:05.7710794Z Temporarily overriding HOME='/home/runner/work/_temp/a63c17da-7308-4a9e-856a-69236f785151' before making global git config changes +2022-11-01T15:23:05.7711429Z Adding repository directory to the temporary git global config as a safe directory +2022-11-01T15:23:05.7718974Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/tgstation/tgstation +2022-11-01T15:23:05.7791610Z Deleting the contents of '/home/runner/work/tgstation/tgstation' +2022-11-01T15:23:05.7800753Z ##[group]Initializing the repository +2022-11-01T15:23:05.7810526Z [command]/usr/bin/git init /home/runner/work/tgstation/tgstation +2022-11-01T15:23:05.7999555Z hint: Using 'master' as the name for the initial branch. This default branch name +2022-11-01T15:23:05.8000657Z hint: is subject to change. To configure the initial branch name to use in all +2022-11-01T15:23:05.8001229Z hint: of your new repositories, which will suppress this warning, call: +2022-11-01T15:23:05.8001635Z hint: +2022-11-01T15:23:05.8002546Z hint: git config --global init.defaultBranch +2022-11-01T15:23:05.8003017Z hint: +2022-11-01T15:23:05.8003562Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2022-11-01T15:23:05.8004498Z hint: 'development'. The just-created branch can be renamed via this command: +2022-11-01T15:23:05.8006177Z hint: +2022-11-01T15:23:05.8006532Z hint: git branch -m +2022-11-01T15:23:05.8016074Z Initialized empty Git repository in /home/runner/work/tgstation/tgstation/.git/ +2022-11-01T15:23:05.8029083Z [command]/usr/bin/git remote add origin https://github.com/tgstation/tgstation +2022-11-01T15:23:05.8108132Z ##[endgroup] +2022-11-01T15:23:05.8110681Z ##[group]Disabling automatic garbage collection +2022-11-01T15:23:05.8113311Z [command]/usr/bin/git config --local gc.auto 0 +2022-11-01T15:23:05.8153161Z ##[endgroup] +2022-11-01T15:23:05.8153891Z ##[group]Setting up auth +2022-11-01T15:23:05.8163234Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2022-11-01T15:23:05.8203566Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || : +2022-11-01T15:23:05.8796996Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2022-11-01T15:23:05.8820643Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || : +2022-11-01T15:23:05.9097833Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic *** +2022-11-01T15:23:05.9154264Z ##[endgroup] +2022-11-01T15:23:05.9155507Z ##[group]Fetching the repository +2022-11-01T15:23:05.9167693Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin +90d58213531368fd97e9955fe80b75ad69c20f24:refs/remotes/pull/70980/merge +2022-11-01T15:23:06.8635625Z remote: Enumerating objects: 12567, done. +2022-11-01T15:23:06.8636451Z remote: Counting objects: 0% (1/12567) +2022-11-01T15:23:06.8650219Z remote: Counting objects: 1% (126/12567) +2022-11-01T15:23:06.8660754Z remote: Counting objects: 2% (252/12567) +2022-11-01T15:23:06.8672560Z remote: Counting objects: 3% (378/12567) +2022-11-01T15:23:06.8672977Z remote: Counting objects: 4% (503/12567) +2022-11-01T15:23:06.8673376Z remote: Counting objects: 5% (629/12567) +2022-11-01T15:23:06.8675482Z remote: Counting objects: 6% (755/12567) +2022-11-01T15:23:06.8675791Z remote: Counting objects: 7% (880/12567) +2022-11-01T15:23:06.9160118Z remote: Counting objects: 8% (1006/12567) +2022-11-01T15:23:06.9160767Z remote: Counting objects: 9% (1132/12567) +2022-11-01T15:23:06.9161166Z remote: Counting objects: 10% (1257/12567) +2022-11-01T15:23:06.9161566Z remote: Counting objects: 11% (1383/12567) +2022-11-01T15:23:06.9161964Z remote: Counting objects: 12% (1509/12567) +2022-11-01T15:23:06.9162324Z remote: Counting objects: 13% (1634/12567) +2022-11-01T15:23:06.9162700Z remote: Counting objects: 14% (1760/12567) +2022-11-01T15:23:06.9163069Z remote: Counting objects: 15% (1886/12567) +2022-11-01T15:23:06.9163437Z remote: Counting objects: 16% (2011/12567) +2022-11-01T15:23:06.9163808Z remote: Counting objects: 17% (2137/12567) +2022-11-01T15:23:06.9164357Z remote: Counting objects: 18% (2263/12567) +2022-11-01T15:23:06.9165066Z remote: Counting objects: 19% (2388/12567) +2022-11-01T15:23:06.9165451Z remote: Counting objects: 20% (2514/12567) +2022-11-01T15:23:06.9165800Z remote: Counting objects: 21% (2640/12567) +2022-11-01T15:23:06.9166097Z remote: Counting objects: 22% (2765/12567) +2022-11-01T15:23:06.9166459Z remote: Counting objects: 23% (2891/12567) +2022-11-01T15:23:06.9166827Z remote: Counting objects: 24% (3017/12567) +2022-11-01T15:23:06.9167178Z remote: Counting objects: 25% (3142/12567) +2022-11-01T15:23:06.9167700Z remote: Counting objects: 26% (3268/12567) +2022-11-01T15:23:06.9168060Z remote: Counting objects: 27% (3394/12567) +2022-11-01T15:23:06.9168413Z remote: Counting objects: 28% (3519/12567) +2022-11-01T15:23:06.9168685Z remote: Counting objects: 29% (3645/12567) +2022-11-01T15:23:06.9169293Z remote: Counting objects: 30% (3771/12567) +2022-11-01T15:23:06.9169550Z remote: Counting objects: 31% (3896/12567) +2022-11-01T15:23:06.9169791Z remote: Counting objects: 32% (4022/12567) +2022-11-01T15:23:06.9170049Z remote: Counting objects: 33% (4148/12567) +2022-11-01T15:23:06.9170305Z remote: Counting objects: 34% (4273/12567) +2022-11-01T15:23:06.9170563Z remote: Counting objects: 35% (4399/12567) +2022-11-01T15:23:06.9170803Z remote: Counting objects: 36% (4525/12567) +2022-11-01T15:23:06.9171062Z remote: Counting objects: 37% (4650/12567) +2022-11-01T15:23:06.9171316Z remote: Counting objects: 38% (4776/12567) +2022-11-01T15:23:06.9171714Z remote: Counting objects: 39% (4902/12567) +2022-11-01T15:23:06.9171963Z remote: Counting objects: 40% (5027/12567) +2022-11-01T15:23:06.9172211Z remote: Counting objects: 41% (5153/12567) +2022-11-01T15:23:06.9172447Z remote: Counting objects: 42% (5279/12567) +2022-11-01T15:23:06.9172868Z remote: Counting objects: 43% (5404/12567) +2022-11-01T15:23:06.9173464Z remote: Counting objects: 44% (5530/12567) +2022-11-01T15:23:06.9173834Z remote: Counting objects: 45% (5656/12567) +2022-11-01T15:23:06.9174083Z remote: Counting objects: 46% (5781/12567) +2022-11-01T15:23:06.9174458Z remote: Counting objects: 47% (5907/12567) +2022-11-01T15:23:06.9174828Z remote: Counting objects: 48% (6033/12567) +2022-11-01T15:23:06.9175193Z remote: Counting objects: 49% (6158/12567) +2022-11-01T15:23:06.9175686Z remote: Counting objects: 50% (6284/12567) +2022-11-01T15:23:06.9176096Z remote: Counting objects: 51% (6410/12567) +2022-11-01T15:23:06.9176806Z remote: Counting objects: 52% (6535/12567) +2022-11-01T15:23:06.9177226Z remote: Counting objects: 53% (6661/12567) +2022-11-01T15:23:06.9383126Z remote: Counting objects: 54% (6787/12567) +2022-11-01T15:23:06.9383471Z remote: Counting objects: 55% (6912/12567) +2022-11-01T15:23:06.9383912Z remote: Counting objects: 56% (7038/12567) +2022-11-01T15:23:06.9384205Z remote: Counting objects: 57% (7164/12567) +2022-11-01T15:23:06.9384882Z remote: Counting objects: 58% (7289/12567) +2022-11-01T15:23:06.9385322Z remote: Counting objects: 59% (7415/12567) +2022-11-01T15:23:06.9385593Z remote: Counting objects: 60% (7541/12567) +2022-11-01T15:23:06.9386047Z remote: Counting objects: 61% (7666/12567) +2022-11-01T15:23:06.9386320Z remote: Counting objects: 62% (7792/12567) +2022-11-01T15:23:06.9386602Z remote: Counting objects: 63% (7918/12567) +2022-11-01T15:23:06.9387066Z remote: Counting objects: 64% (8043/12567) +2022-11-01T15:23:06.9387318Z remote: Counting objects: 65% (8169/12567) +2022-11-01T15:23:06.9387584Z remote: Counting objects: 66% (8295/12567) +2022-11-01T15:23:06.9387858Z remote: Counting objects: 67% (8420/12567) +2022-11-01T15:23:06.9388109Z remote: Counting objects: 68% (8546/12567) +2022-11-01T15:23:06.9388374Z remote: Counting objects: 69% (8672/12567) +2022-11-01T15:23:06.9388777Z remote: Counting objects: 70% (8797/12567) +2022-11-01T15:23:06.9389026Z remote: Counting objects: 71% (8923/12567) +2022-11-01T15:23:06.9389293Z remote: Counting objects: 72% (9049/12567) +2022-11-01T15:23:06.9389558Z remote: Counting objects: 73% (9174/12567) +2022-11-01T15:23:06.9389987Z remote: Counting objects: 74% (9300/12567) +2022-11-01T15:23:06.9390230Z remote: Counting objects: 75% (9426/12567) +2022-11-01T15:23:06.9390484Z remote: Counting objects: 76% (9551/12567) +2022-11-01T15:23:06.9390738Z remote: Counting objects: 77% (9677/12567) +2022-11-01T15:23:06.9390979Z remote: Counting objects: 78% (9803/12567) +2022-11-01T15:23:06.9391235Z remote: Counting objects: 79% (9928/12567) +2022-11-01T15:23:06.9391796Z remote: Counting objects: 80% (10054/12567) +2022-11-01T15:23:06.9392047Z remote: Counting objects: 81% (10180/12567) +2022-11-01T15:23:06.9392314Z remote: Counting objects: 82% (10305/12567) +2022-11-01T15:23:06.9392577Z remote: Counting objects: 83% (10431/12567) +2022-11-01T15:23:06.9392824Z remote: Counting objects: 84% (10557/12567) +2022-11-01T15:23:06.9393085Z remote: Counting objects: 85% (10682/12567) +2022-11-01T15:23:06.9394375Z remote: Counting objects: 86% (10808/12567) +2022-11-01T15:23:06.9394631Z remote: Counting objects: 87% (10934/12567) +2022-11-01T15:23:06.9394877Z remote: Counting objects: 88% (11059/12567) +2022-11-01T15:23:06.9395134Z remote: Counting objects: 89% (11185/12567) +2022-11-01T15:23:06.9395389Z remote: Counting objects: 90% (11311/12567) +2022-11-01T15:23:06.9395622Z remote: Counting objects: 91% (11436/12567) +2022-11-01T15:23:06.9395877Z remote: Counting objects: 92% (11562/12567) +2022-11-01T15:23:06.9396132Z remote: Counting objects: 93% (11688/12567) +2022-11-01T15:23:06.9396564Z remote: Counting objects: 94% (11813/12567) +2022-11-01T15:23:06.9396804Z remote: Counting objects: 95% (11939/12567) +2022-11-01T15:23:06.9397061Z remote: Counting objects: 96% (12065/12567) +2022-11-01T15:23:06.9397319Z remote: Counting objects: 97% (12190/12567) +2022-11-01T15:23:06.9397557Z remote: Counting objects: 98% (12316/12567) +2022-11-01T15:23:06.9397810Z remote: Counting objects: 99% (12442/12567) +2022-11-01T15:23:06.9398208Z remote: Counting objects: 100% (12567/12567) +2022-11-01T15:23:06.9398661Z remote: Counting objects: 100% (12567/12567), done. +2022-11-01T15:23:06.9398965Z remote: Compressing objects: 0% (1/10988) +2022-11-01T15:23:06.9399257Z remote: Compressing objects: 1% (110/10988) +2022-11-01T15:23:06.9439997Z remote: Compressing objects: 2% (220/10988) +2022-11-01T15:23:06.9561627Z remote: Compressing objects: 3% (330/10988) +2022-11-01T15:23:06.9680955Z remote: Compressing objects: 4% (440/10988) +2022-11-01T15:23:06.9723040Z remote: Compressing objects: 5% (550/10988) +2022-11-01T15:23:06.9876931Z remote: Compressing objects: 6% (660/10988) +2022-11-01T15:23:07.0170815Z remote: Compressing objects: 7% (770/10988) +2022-11-01T15:23:07.0504059Z remote: Compressing objects: 8% (880/10988) +2022-11-01T15:23:07.0836116Z remote: Compressing objects: 9% (989/10988) +2022-11-01T15:23:07.1460729Z remote: Compressing objects: 10% (1099/10988) +2022-11-01T15:23:07.6608683Z remote: Compressing objects: 11% (1209/10988) +2022-11-01T15:23:07.7588422Z remote: Compressing objects: 12% (1319/10988) +2022-11-01T15:23:07.9494647Z remote: Compressing objects: 13% (1429/10988) +2022-11-01T15:23:07.9527972Z remote: Compressing objects: 13% (1508/10988) +2022-11-01T15:23:07.9668498Z remote: Compressing objects: 14% (1539/10988) +2022-11-01T15:23:08.0219248Z remote: Compressing objects: 15% (1649/10988) +2022-11-01T15:23:08.0283852Z remote: Compressing objects: 16% (1759/10988) +2022-11-01T15:23:08.0452608Z remote: Compressing objects: 17% (1868/10988) +2022-11-01T15:23:08.0618448Z remote: Compressing objects: 18% (1978/10988) +2022-11-01T15:23:08.0889220Z remote: Compressing objects: 19% (2088/10988) +2022-11-01T15:23:08.1162946Z remote: Compressing objects: 20% (2198/10988) +2022-11-01T15:23:08.1247220Z remote: Compressing objects: 21% (2308/10988) +2022-11-01T15:23:08.1520626Z remote: Compressing objects: 22% (2418/10988) +2022-11-01T15:23:08.2139765Z remote: Compressing objects: 23% (2528/10988) +2022-11-01T15:23:08.2412924Z remote: Compressing objects: 24% (2638/10988) +2022-11-01T15:23:08.2597478Z remote: Compressing objects: 25% (2747/10988) +2022-11-01T15:23:08.2752211Z remote: Compressing objects: 26% (2857/10988) +2022-11-01T15:23:08.2966161Z remote: Compressing objects: 27% (2967/10988) +2022-11-01T15:23:08.3926822Z remote: Compressing objects: 28% (3077/10988) +2022-11-01T15:23:08.3927793Z remote: Compressing objects: 29% (3187/10988) +2022-11-01T15:23:08.4094739Z remote: Compressing objects: 30% (3297/10988) +2022-11-01T15:23:08.4338176Z remote: Compressing objects: 31% (3407/10988) +2022-11-01T15:23:08.4632502Z remote: Compressing objects: 32% (3517/10988) +2022-11-01T15:23:08.4940329Z remote: Compressing objects: 33% (3627/10988) +2022-11-01T15:23:08.5404129Z remote: Compressing objects: 34% (3736/10988) +2022-11-01T15:23:08.5814756Z remote: Compressing objects: 35% (3846/10988) +2022-11-01T15:23:08.6091092Z remote: Compressing objects: 36% (3956/10988) +2022-11-01T15:23:08.6446921Z remote: Compressing objects: 37% (4066/10988) +2022-11-01T15:23:08.6900873Z remote: Compressing objects: 38% (4176/10988) +2022-11-01T15:23:08.7213081Z remote: Compressing objects: 39% (4286/10988) +2022-11-01T15:23:08.7502723Z remote: Compressing objects: 40% (4396/10988) +2022-11-01T15:23:08.7869698Z remote: Compressing objects: 41% (4506/10988) +2022-11-01T15:23:08.8103626Z remote: Compressing objects: 42% (4615/10988) +2022-11-01T15:23:08.8451299Z remote: Compressing objects: 43% (4725/10988) +2022-11-01T15:23:08.8774688Z remote: Compressing objects: 44% (4835/10988) +2022-11-01T15:23:08.9003331Z remote: Compressing objects: 45% (4945/10988) +2022-11-01T15:23:08.9070180Z remote: Compressing objects: 45% (5034/10988) +2022-11-01T15:23:08.9344499Z remote: Compressing objects: 46% (5055/10988) +2022-11-01T15:23:08.9568190Z remote: Compressing objects: 47% (5165/10988) +2022-11-01T15:23:08.9805763Z remote: Compressing objects: 48% (5275/10988) +2022-11-01T15:23:09.0037568Z remote: Compressing objects: 49% (5385/10988) +2022-11-01T15:23:09.0301310Z remote: Compressing objects: 50% (5494/10988) +2022-11-01T15:23:09.0582321Z remote: Compressing objects: 51% (5604/10988) +2022-11-01T15:23:09.0808327Z remote: Compressing objects: 52% (5714/10988) +2022-11-01T15:23:09.1124129Z remote: Compressing objects: 53% (5824/10988) +2022-11-01T15:23:09.1387087Z remote: Compressing objects: 54% (5934/10988) +2022-11-01T15:23:09.1647455Z remote: Compressing objects: 55% (6044/10988) +2022-11-01T15:23:09.1915056Z remote: Compressing objects: 56% (6154/10988) +2022-11-01T15:23:09.2255320Z remote: Compressing objects: 57% (6264/10988) +2022-11-01T15:23:09.2457326Z remote: Compressing objects: 58% (6374/10988) +2022-11-01T15:23:09.2755910Z remote: Compressing objects: 59% (6483/10988) +2022-11-01T15:23:09.3017305Z remote: Compressing objects: 60% (6593/10988) +2022-11-01T15:23:09.3325069Z remote: Compressing objects: 61% (6703/10988) +2022-11-01T15:23:09.3546803Z remote: Compressing objects: 62% (6813/10988) +2022-11-01T15:23:09.3801684Z remote: Compressing objects: 63% (6923/10988) +2022-11-01T15:23:09.4067963Z remote: Compressing objects: 64% (7033/10988) +2022-11-01T15:23:09.5472387Z remote: Compressing objects: 65% (7143/10988) +2022-11-01T15:23:09.5473083Z remote: Compressing objects: 66% (7253/10988) +2022-11-01T15:23:09.5473536Z remote: Compressing objects: 67% (7362/10988) +2022-11-01T15:23:09.5473940Z remote: Compressing objects: 68% (7472/10988) +2022-11-01T15:23:09.5474375Z remote: Compressing objects: 69% (7582/10988) +2022-11-01T15:23:09.5474794Z remote: Compressing objects: 70% (7692/10988) +2022-11-01T15:23:09.5475212Z remote: Compressing objects: 71% (7802/10988) +2022-11-01T15:23:09.5475789Z remote: Compressing objects: 72% (7912/10988) +2022-11-01T15:23:09.5476209Z remote: Compressing objects: 73% (8022/10988) +2022-11-01T15:23:09.5477532Z remote: Compressing objects: 74% (8132/10988) +2022-11-01T15:23:09.5478233Z remote: Compressing objects: 75% (8241/10988) +2022-11-01T15:23:09.5478582Z remote: Compressing objects: 76% (8351/10988) +2022-11-01T15:23:09.5479163Z remote: Compressing objects: 77% (8461/10988) +2022-11-01T15:23:09.5479885Z remote: Compressing objects: 78% (8571/10988) +2022-11-01T15:23:09.5480434Z remote: Compressing objects: 79% (8681/10988) +2022-11-01T15:23:09.5480899Z remote: Compressing objects: 80% (8791/10988) +2022-11-01T15:23:09.5481594Z remote: Compressing objects: 81% (8901/10988) +2022-11-01T15:23:09.5482284Z remote: Compressing objects: 82% (9011/10988) +2022-11-01T15:23:09.5482865Z remote: Compressing objects: 83% (9121/10988) +2022-11-01T15:23:09.5483308Z remote: Compressing objects: 84% (9230/10988) +2022-11-01T15:23:09.5483685Z remote: Compressing objects: 85% (9340/10988) +2022-11-01T15:23:09.5484385Z remote: Compressing objects: 86% (9450/10988) +2022-11-01T15:23:09.5485582Z remote: Compressing objects: 87% (9560/10988) +2022-11-01T15:23:09.5486089Z remote: Compressing objects: 88% (9670/10988) +2022-11-01T15:23:09.5486597Z remote: Compressing objects: 89% (9780/10988) +2022-11-01T15:23:09.5487116Z remote: Compressing objects: 90% (9890/10988) +2022-11-01T15:23:09.5487742Z remote: Compressing objects: 91% (10000/10988) +2022-11-01T15:23:09.5488235Z remote: Compressing objects: 92% (10109/10988) +2022-11-01T15:23:09.5488673Z remote: Compressing objects: 93% (10219/10988) +2022-11-01T15:23:09.5489383Z remote: Compressing objects: 94% (10329/10988) +2022-11-01T15:23:09.5489745Z remote: Compressing objects: 95% (10439/10988) +2022-11-01T15:23:09.5490195Z remote: Compressing objects: 96% (10549/10988) +2022-11-01T15:23:09.5490745Z remote: Compressing objects: 97% (10659/10988) +2022-11-01T15:23:09.5491127Z remote: Compressing objects: 98% (10769/10988) +2022-11-01T15:23:09.5491596Z remote: Compressing objects: 99% (10879/10988) +2022-11-01T15:23:09.5492106Z remote: Compressing objects: 100% (10988/10988) +2022-11-01T15:23:09.5492683Z remote: Compressing objects: 100% (10988/10988), done. +2022-11-01T15:23:09.8456233Z Receiving objects: 0% (1/12567) +2022-11-01T15:23:10.1991946Z Receiving objects: 1% (126/12567) +2022-11-01T15:23:10.2129001Z Receiving objects: 2% (252/12567), 1.64 MiB | 3.13 MiB/s +2022-11-01T15:23:10.3381943Z Receiving objects: 3% (378/12567), 1.64 MiB | 3.13 MiB/s +2022-11-01T15:23:10.3419720Z Receiving objects: 4% (503/12567), 1.64 MiB | 3.13 MiB/s +2022-11-01T15:23:10.3481272Z Receiving objects: 5% (629/12567), 1.64 MiB | 3.13 MiB/s +2022-11-01T15:23:10.3610976Z Receiving objects: 6% (755/12567), 1.64 MiB | 3.13 MiB/s +2022-11-01T15:23:10.4060459Z Receiving objects: 7% (880/12567), 1.64 MiB | 3.13 MiB/s +2022-11-01T15:23:10.4152976Z Receiving objects: 8% (1006/12567), 1.64 MiB | 3.13 MiB/s +2022-11-01T15:23:10.4214294Z Receiving objects: 9% (1132/12567), 1.64 MiB | 3.13 MiB/s +2022-11-01T15:23:10.4443541Z Receiving objects: 10% (1257/12567), 1.64 MiB | 3.13 MiB/s +2022-11-01T15:23:10.4585667Z Receiving objects: 11% (1383/12567), 1.64 MiB | 3.13 MiB/s +2022-11-01T15:23:10.4664474Z Receiving objects: 12% (1509/12567), 1.64 MiB | 3.13 MiB/s +2022-11-01T15:23:10.4672354Z Receiving objects: 13% (1634/12567), 1.64 MiB | 3.13 MiB/s +2022-11-01T15:23:10.4765843Z Receiving objects: 14% (1760/12567), 1.64 MiB | 3.13 MiB/s +2022-11-01T15:23:10.4973914Z Receiving objects: 15% (1886/12567), 1.64 MiB | 3.13 MiB/s +2022-11-01T15:23:10.5317436Z Receiving objects: 16% (2011/12567), 1.64 MiB | 3.13 MiB/s +2022-11-01T15:23:10.5620851Z Receiving objects: 17% (2137/12567), 1.64 MiB | 3.13 MiB/s +2022-11-01T15:23:10.5694797Z Receiving objects: 17% (2211/12567), 1.64 MiB | 3.13 MiB/s +2022-11-01T15:23:10.5937016Z Receiving objects: 18% (2263/12567), 1.64 MiB | 3.13 MiB/s +2022-11-01T15:23:10.6179150Z Receiving objects: 19% (2388/12567), 5.60 MiB | 5.45 MiB/s +2022-11-01T15:23:10.6422936Z Receiving objects: 20% (2514/12567), 5.60 MiB | 5.45 MiB/s +2022-11-01T15:23:10.6652610Z Receiving objects: 21% (2640/12567), 5.60 MiB | 5.45 MiB/s +2022-11-01T15:23:10.6945718Z Receiving objects: 22% (2765/12567), 5.60 MiB | 5.45 MiB/s +2022-11-01T15:23:10.7167238Z Receiving objects: 23% (2891/12567), 5.60 MiB | 5.45 MiB/s +2022-11-01T15:23:10.7332899Z Receiving objects: 24% (3017/12567), 5.60 MiB | 5.45 MiB/s +2022-11-01T15:23:10.7570968Z Receiving objects: 25% (3142/12567), 5.60 MiB | 5.45 MiB/s +2022-11-01T15:23:10.7722439Z Receiving objects: 26% (3268/12567), 5.60 MiB | 5.45 MiB/s +2022-11-01T15:23:10.7982867Z Receiving objects: 27% (3394/12567), 5.60 MiB | 5.45 MiB/s +2022-11-01T15:23:10.8201011Z Receiving objects: 28% (3519/12567), 5.60 MiB | 5.45 MiB/s +2022-11-01T15:23:10.8338369Z Receiving objects: 29% (3645/12567), 5.60 MiB | 5.45 MiB/s +2022-11-01T15:23:10.8455222Z Receiving objects: 30% (3771/12567), 5.60 MiB | 5.45 MiB/s +2022-11-01T15:23:10.8589882Z Receiving objects: 31% (3896/12567), 5.60 MiB | 5.45 MiB/s +2022-11-01T15:23:10.8671253Z Receiving objects: 32% (4022/12567), 5.60 MiB | 5.45 MiB/s +2022-11-01T15:23:10.8915567Z Receiving objects: 33% (4148/12567), 5.60 MiB | 5.45 MiB/s +2022-11-01T15:23:10.9033131Z Receiving objects: 34% (4273/12567), 5.60 MiB | 5.45 MiB/s +2022-11-01T15:23:10.9275337Z Receiving objects: 35% (4399/12567), 5.60 MiB | 5.45 MiB/s +2022-11-01T15:23:11.0474018Z Receiving objects: 36% (4525/12567), 5.60 MiB | 5.45 MiB/s +2022-11-01T15:23:11.0614229Z Receiving objects: 37% (4650/12567), 5.60 MiB | 5.45 MiB/s +2022-11-01T15:23:11.0725415Z Receiving objects: 38% (4776/12567), 5.60 MiB | 5.45 MiB/s +2022-11-01T15:23:11.0818490Z Receiving objects: 39% (4902/12567), 5.60 MiB | 5.45 MiB/s +2022-11-01T15:23:11.0907264Z Receiving objects: 40% (5027/12567), 10.14 MiB | 6.64 MiB/s +2022-11-01T15:23:11.0974088Z Receiving objects: 41% (5153/12567), 10.14 MiB | 6.64 MiB/s +2022-11-01T15:23:11.1189127Z Receiving objects: 42% (5279/12567), 10.14 MiB | 6.64 MiB/s +2022-11-01T15:23:11.1576689Z Receiving objects: 43% (5404/12567), 10.14 MiB | 6.64 MiB/s +2022-11-01T15:23:11.1635112Z Receiving objects: 44% (5530/12567), 10.14 MiB | 6.64 MiB/s +2022-11-01T15:23:11.1783797Z Receiving objects: 45% (5656/12567), 10.14 MiB | 6.64 MiB/s +2022-11-01T15:23:11.1910308Z Receiving objects: 46% (5781/12567), 10.14 MiB | 6.64 MiB/s +2022-11-01T15:23:11.1973985Z Receiving objects: 47% (5907/12567), 10.14 MiB | 6.64 MiB/s +2022-11-01T15:23:11.2254839Z Receiving objects: 48% (6033/12567), 10.14 MiB | 6.64 MiB/s +2022-11-01T15:23:11.2318962Z Receiving objects: 49% (6158/12567), 10.14 MiB | 6.64 MiB/s +2022-11-01T15:23:11.2710865Z Receiving objects: 50% (6284/12567), 10.14 MiB | 6.64 MiB/s +2022-11-01T15:23:11.4267228Z Receiving objects: 51% (6410/12567), 10.14 MiB | 6.64 MiB/s +2022-11-01T15:23:11.5803346Z Receiving objects: 52% (6535/12567), 10.14 MiB | 6.64 MiB/s +2022-11-01T15:23:12.2068025Z Receiving objects: 52% (6537/12567), 17.98 MiB | 8.87 MiB/s +2022-11-01T15:23:12.5653011Z Receiving objects: 53% (6661/12567), 26.38 MiB | 10.44 MiB/s +2022-11-01T15:23:12.6958322Z Receiving objects: 53% (6662/12567), 26.38 MiB | 10.44 MiB/s +2022-11-01T15:23:12.7498019Z Receiving objects: 54% (6787/12567), 35.32 MiB | 11.67 MiB/s +2022-11-01T15:23:12.9576078Z Receiving objects: 55% (6912/12567), 35.32 MiB | 11.67 MiB/s +2022-11-01T15:23:13.0573630Z Receiving objects: 56% (7038/12567), 35.32 MiB | 11.67 MiB/s +2022-11-01T15:23:13.1975640Z Receiving objects: 57% (7164/12567), 35.32 MiB | 11.67 MiB/s +2022-11-01T15:23:13.2702208Z Receiving objects: 58% (7289/12567), 44.61 MiB | 12.65 MiB/s +2022-11-01T15:23:13.3294275Z Receiving objects: 59% (7415/12567), 44.61 MiB | 12.65 MiB/s +2022-11-01T15:23:13.3822287Z Receiving objects: 60% (7541/12567), 44.61 MiB | 12.65 MiB/s +2022-11-01T15:23:13.5599681Z Receiving objects: 61% (7666/12567), 44.61 MiB | 12.65 MiB/s +2022-11-01T15:23:13.5600309Z Receiving objects: 61% (7778/12567), 44.61 MiB | 12.65 MiB/s +2022-11-01T15:23:13.7119127Z Receiving objects: 62% (7792/12567), 44.61 MiB | 12.65 MiB/s +2022-11-01T15:23:14.4477813Z Receiving objects: 63% (7918/12567), 52.69 MiB | 13.08 MiB/s +2022-11-01T15:23:14.5754767Z Receiving objects: 64% (8043/12567), 64.39 MiB | 14.22 MiB/s +2022-11-01T15:23:15.3567308Z Receiving objects: 64% (8057/12567), 64.39 MiB | 14.22 MiB/s +2022-11-01T15:23:15.4930170Z Receiving objects: 65% (8169/12567), 85.50 MiB | 17.69 MiB/s +2022-11-01T15:23:15.5525805Z Receiving objects: 66% (8295/12567), 85.50 MiB | 17.69 MiB/s +2022-11-01T15:23:15.6305131Z Receiving objects: 66% (8356/12567), 85.50 MiB | 17.69 MiB/s +2022-11-01T15:23:15.7845146Z Receiving objects: 67% (8420/12567), 96.01 MiB | 18.97 MiB/s +2022-11-01T15:23:15.8950904Z Receiving objects: 68% (8546/12567), 96.01 MiB | 18.97 MiB/s +2022-11-01T15:23:16.1051375Z Receiving objects: 69% (8672/12567), 96.01 MiB | 18.97 MiB/s +2022-11-01T15:23:16.3043168Z Receiving objects: 70% (8797/12567), 96.01 MiB | 18.97 MiB/s +2022-11-01T15:23:16.6162611Z Receiving objects: 71% (8923/12567), 106.07 MiB | 19.39 MiB/s +2022-11-01T15:23:16.6815447Z Receiving objects: 71% (9011/12567), 106.07 MiB | 19.39 MiB/s +2022-11-01T15:23:16.7597143Z Receiving objects: 72% (9049/12567), 114.51 MiB | 19.40 MiB/s +2022-11-01T15:23:16.7696552Z Receiving objects: 73% (9174/12567), 114.51 MiB | 19.40 MiB/s +2022-11-01T15:23:16.8381002Z Receiving objects: 74% (9300/12567), 114.51 MiB | 19.40 MiB/s +2022-11-01T15:23:16.8584430Z Receiving objects: 75% (9426/12567), 114.51 MiB | 19.40 MiB/s +2022-11-01T15:23:16.9384015Z Receiving objects: 76% (9551/12567), 114.51 MiB | 19.40 MiB/s +2022-11-01T15:23:17.3179210Z Receiving objects: 77% (9677/12567), 114.51 MiB | 19.40 MiB/s +2022-11-01T15:23:17.3182197Z Receiving objects: 78% (9803/12567), 122.17 MiB | 19.07 MiB/s +2022-11-01T15:23:17.3869883Z Receiving objects: 79% (9928/12567), 122.17 MiB | 19.07 MiB/s +2022-11-01T15:23:17.5335850Z Receiving objects: 80% (10054/12567), 122.17 MiB | 19.07 MiB/s +2022-11-01T15:23:17.5428620Z Receiving objects: 81% (10180/12567), 122.17 MiB | 19.07 MiB/s +2022-11-01T15:23:17.5600130Z Receiving objects: 82% (10305/12567), 122.17 MiB | 19.07 MiB/s +2022-11-01T15:23:17.5640100Z Receiving objects: 82% (10382/12567), 122.17 MiB | 19.07 MiB/s +2022-11-01T15:23:17.6170093Z Receiving objects: 83% (10431/12567), 122.17 MiB | 19.07 MiB/s +2022-11-01T15:23:17.6260507Z Receiving objects: 84% (10557/12567), 122.17 MiB | 19.07 MiB/s +2022-11-01T15:23:17.6882844Z Receiving objects: 85% (10682/12567), 122.17 MiB | 19.07 MiB/s +2022-11-01T15:23:17.6964863Z Receiving objects: 86% (10808/12567), 131.07 MiB | 18.99 MiB/s +2022-11-01T15:23:17.7033288Z Receiving objects: 87% (10934/12567), 131.07 MiB | 18.99 MiB/s +2022-11-01T15:23:17.7862769Z Receiving objects: 88% (11059/12567), 131.07 MiB | 18.99 MiB/s +2022-11-01T15:23:17.9968632Z Receiving objects: 89% (11185/12567), 131.07 MiB | 18.99 MiB/s +2022-11-01T15:23:18.0444402Z Receiving objects: 90% (11311/12567), 131.07 MiB | 18.99 MiB/s +2022-11-01T15:23:18.0775190Z Receiving objects: 91% (11436/12567), 131.07 MiB | 18.99 MiB/s +2022-11-01T15:23:18.0824539Z Receiving objects: 92% (11562/12567), 131.07 MiB | 18.99 MiB/s +2022-11-01T15:23:18.0890030Z Receiving objects: 93% (11688/12567), 131.07 MiB | 18.99 MiB/s +2022-11-01T15:23:18.0956337Z Receiving objects: 94% (11813/12567), 131.07 MiB | 18.99 MiB/s +2022-11-01T15:23:18.1014935Z Receiving objects: 95% (11939/12567), 131.07 MiB | 18.99 MiB/s +2022-11-01T15:23:18.1056183Z Receiving objects: 96% (12065/12567), 131.07 MiB | 18.99 MiB/s +2022-11-01T15:23:18.1101897Z Receiving objects: 97% (12190/12567), 131.07 MiB | 18.99 MiB/s +2022-11-01T15:23:18.1271902Z Receiving objects: 98% (12316/12567), 131.07 MiB | 18.99 MiB/s +2022-11-01T15:23:18.1310792Z Receiving objects: 99% (12442/12567), 131.07 MiB | 18.99 MiB/s +2022-11-01T15:23:18.1311930Z remote: Total 12567 (delta 1595), reused 7195 (delta 1446), pack-reused 0 +2022-11-01T15:23:18.1338739Z Receiving objects: 100% (12567/12567), 131.07 MiB | 18.99 MiB/s +2022-11-01T15:23:18.1339954Z Receiving objects: 100% (12567/12567), 139.23 MiB | 16.22 MiB/s, done. +2022-11-01T15:23:18.1385156Z Resolving deltas: 0% (0/1595) +2022-11-01T15:23:18.1456938Z Resolving deltas: 1% (16/1595) +2022-11-01T15:23:18.1468555Z Resolving deltas: 2% (32/1595) +2022-11-01T15:23:18.1480623Z Resolving deltas: 3% (48/1595) +2022-11-01T15:23:18.1510723Z Resolving deltas: 4% (64/1595) +2022-11-01T15:23:18.1526135Z Resolving deltas: 5% (80/1595) +2022-11-01T15:23:18.1537025Z Resolving deltas: 6% (96/1595) +2022-11-01T15:23:18.1544963Z Resolving deltas: 7% (112/1595) +2022-11-01T15:23:18.1556566Z Resolving deltas: 8% (128/1595) +2022-11-01T15:23:18.1570240Z Resolving deltas: 9% (144/1595) +2022-11-01T15:23:18.1582264Z Resolving deltas: 10% (160/1595) +2022-11-01T15:23:18.1691779Z Resolving deltas: 11% (176/1595) +2022-11-01T15:23:18.1715280Z Resolving deltas: 12% (192/1595) +2022-11-01T15:23:18.1720797Z Resolving deltas: 13% (208/1595) +2022-11-01T15:23:18.1728838Z Resolving deltas: 14% (224/1595) +2022-11-01T15:23:18.1732276Z Resolving deltas: 15% (240/1595) +2022-11-01T15:23:18.1735362Z Resolving deltas: 16% (256/1595) +2022-11-01T15:23:18.1738747Z Resolving deltas: 17% (272/1595) +2022-11-01T15:23:18.1743520Z Resolving deltas: 18% (288/1595) +2022-11-01T15:23:18.1747596Z Resolving deltas: 19% (304/1595) +2022-11-01T15:23:18.1751835Z Resolving deltas: 20% (319/1595) +2022-11-01T15:23:18.1755707Z Resolving deltas: 21% (335/1595) +2022-11-01T15:23:18.1762459Z Resolving deltas: 22% (351/1595) +2022-11-01T15:23:18.1786752Z Resolving deltas: 23% (367/1595) +2022-11-01T15:23:18.1800095Z Resolving deltas: 24% (383/1595) +2022-11-01T15:23:18.1817527Z Resolving deltas: 25% (399/1595) +2022-11-01T15:23:18.1845355Z Resolving deltas: 26% (415/1595) +2022-11-01T15:23:18.1858445Z Resolving deltas: 27% (431/1595) +2022-11-01T15:23:18.1866810Z Resolving deltas: 28% (447/1595) +2022-11-01T15:23:18.1967962Z Resolving deltas: 29% (463/1595) +2022-11-01T15:23:18.2006641Z Resolving deltas: 30% (479/1595) +2022-11-01T15:23:18.2018922Z Resolving deltas: 31% (495/1595) +2022-11-01T15:23:18.2033737Z Resolving deltas: 32% (511/1595) +2022-11-01T15:23:18.2060821Z Resolving deltas: 33% (527/1595) +2022-11-01T15:23:18.2080072Z Resolving deltas: 34% (543/1595) +2022-11-01T15:23:18.2108427Z Resolving deltas: 35% (559/1595) +2022-11-01T15:23:18.2126164Z Resolving deltas: 36% (575/1595) +2022-11-01T15:23:18.2221258Z Resolving deltas: 37% (591/1595) +2022-11-01T15:23:18.2238691Z Resolving deltas: 38% (607/1595) +2022-11-01T15:23:18.2242266Z Resolving deltas: 39% (623/1595) +2022-11-01T15:23:18.2242686Z Resolving deltas: 40% (638/1595) +2022-11-01T15:23:18.2243401Z Resolving deltas: 41% (654/1595) +2022-11-01T15:23:18.2247475Z Resolving deltas: 42% (670/1595) +2022-11-01T15:23:18.2248012Z Resolving deltas: 43% (686/1595) +2022-11-01T15:23:18.2250915Z Resolving deltas: 44% (702/1595) +2022-11-01T15:23:18.2251757Z Resolving deltas: 45% (718/1595) +2022-11-01T15:23:18.2255808Z Resolving deltas: 46% (734/1595) +2022-11-01T15:23:18.2256261Z Resolving deltas: 47% (750/1595) +2022-11-01T15:23:18.2257458Z Resolving deltas: 48% (766/1595) +2022-11-01T15:23:18.2261205Z Resolving deltas: 49% (782/1595) +2022-11-01T15:23:18.2261740Z Resolving deltas: 50% (798/1595) +2022-11-01T15:23:18.2262498Z Resolving deltas: 51% (814/1595) +2022-11-01T15:23:18.2271025Z Resolving deltas: 52% (830/1595) +2022-11-01T15:23:18.2280763Z Resolving deltas: 53% (846/1595) +2022-11-01T15:23:18.2286419Z Resolving deltas: 54% (862/1595) +2022-11-01T15:23:18.2296969Z Resolving deltas: 55% (878/1595) +2022-11-01T15:23:18.2303419Z Resolving deltas: 56% (894/1595) +2022-11-01T15:23:18.2310028Z Resolving deltas: 57% (910/1595) +2022-11-01T15:23:18.2314981Z Resolving deltas: 58% (926/1595) +2022-11-01T15:23:18.2323520Z Resolving deltas: 59% (942/1595) +2022-11-01T15:23:18.2328697Z Resolving deltas: 60% (957/1595) +2022-11-01T15:23:18.2335792Z Resolving deltas: 61% (973/1595) +2022-11-01T15:23:18.2342110Z Resolving deltas: 62% (989/1595) +2022-11-01T15:23:18.2348324Z Resolving deltas: 63% (1005/1595) +2022-11-01T15:23:18.2354457Z Resolving deltas: 64% (1021/1595) +2022-11-01T15:23:18.2361497Z Resolving deltas: 65% (1037/1595) +2022-11-01T15:23:18.2370639Z Resolving deltas: 66% (1053/1595) +2022-11-01T15:23:18.2380549Z Resolving deltas: 67% (1069/1595) +2022-11-01T15:23:18.2387136Z Resolving deltas: 68% (1085/1595) +2022-11-01T15:23:18.2391989Z Resolving deltas: 69% (1101/1595) +2022-11-01T15:23:18.2398784Z Resolving deltas: 70% (1117/1595) +2022-11-01T15:23:18.2406442Z Resolving deltas: 71% (1133/1595) +2022-11-01T15:23:18.2412673Z Resolving deltas: 72% (1149/1595) +2022-11-01T15:23:18.2422301Z Resolving deltas: 73% (1165/1595) +2022-11-01T15:23:18.2427825Z Resolving deltas: 74% (1181/1595) +2022-11-01T15:23:18.2433572Z Resolving deltas: 75% (1197/1595) +2022-11-01T15:23:18.2438704Z Resolving deltas: 76% (1213/1595) +2022-11-01T15:23:18.2444857Z Resolving deltas: 77% (1229/1595) +2022-11-01T15:23:18.2450379Z Resolving deltas: 78% (1245/1595) +2022-11-01T15:23:18.2458830Z Resolving deltas: 79% (1261/1595) +2022-11-01T15:23:18.2464822Z Resolving deltas: 80% (1276/1595) +2022-11-01T15:23:18.2470368Z Resolving deltas: 81% (1292/1595) +2022-11-01T15:23:18.2477092Z Resolving deltas: 82% (1308/1595) +2022-11-01T15:23:18.2486290Z Resolving deltas: 83% (1324/1595) +2022-11-01T15:23:18.2495293Z Resolving deltas: 84% (1340/1595) +2022-11-01T15:23:18.2502703Z Resolving deltas: 85% (1356/1595) +2022-11-01T15:23:18.2509757Z Resolving deltas: 86% (1372/1595) +2022-11-01T15:23:18.2517689Z Resolving deltas: 87% (1388/1595) +2022-11-01T15:23:18.2526971Z Resolving deltas: 88% (1404/1595) +2022-11-01T15:23:18.2537951Z Resolving deltas: 89% (1420/1595) +2022-11-01T15:23:18.2547316Z Resolving deltas: 90% (1436/1595) +2022-11-01T15:23:18.2561578Z Resolving deltas: 91% (1452/1595) +2022-11-01T15:23:18.2579990Z Resolving deltas: 92% (1468/1595) +2022-11-01T15:23:18.2589743Z Resolving deltas: 93% (1484/1595) +2022-11-01T15:23:18.2595230Z Resolving deltas: 94% (1500/1595) +2022-11-01T15:23:18.2600818Z Resolving deltas: 95% (1516/1595) +2022-11-01T15:23:18.2611569Z Resolving deltas: 96% (1532/1595) +2022-11-01T15:23:18.2621438Z Resolving deltas: 97% (1548/1595) +2022-11-01T15:23:18.2626207Z Resolving deltas: 98% (1564/1595) +2022-11-01T15:23:18.2630366Z Resolving deltas: 99% (1580/1595) +2022-11-01T15:23:18.2685571Z Resolving deltas: 100% (1595/1595) +2022-11-01T15:23:18.2686158Z Resolving deltas: 100% (1595/1595), done. +2022-11-01T15:23:18.7231893Z From https://github.com/tgstation/tgstation +2022-11-01T15:23:18.7239390Z * [new ref] 90d58213531368fd97e9955fe80b75ad69c20f24 -> pull/70980/merge +2022-11-01T15:23:18.7262520Z ##[endgroup] +2022-11-01T15:23:18.7263398Z ##[group]Determining the checkout info +2022-11-01T15:23:18.7264882Z ##[endgroup] +2022-11-01T15:23:18.7274145Z ##[group]Checking out the ref +2022-11-01T15:23:18.7275402Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/70980/merge +2022-11-01T15:23:19.8646383Z Updating files: 63% (7322/11595) +2022-11-01T15:23:19.8892263Z Updating files: 64% (7421/11595) +2022-11-01T15:23:19.9117598Z Updating files: 65% (7537/11595) +2022-11-01T15:23:19.9395000Z Updating files: 66% (7653/11595) +2022-11-01T15:23:19.9581108Z Updating files: 67% (7769/11595) +2022-11-01T15:23:19.9854108Z Updating files: 68% (7885/11595) +2022-11-01T15:23:20.0092896Z Updating files: 69% (8001/11595) +2022-11-01T15:23:20.0541265Z Updating files: 70% (8117/11595) +2022-11-01T15:23:20.0650681Z Updating files: 71% (8233/11595) +2022-11-01T15:23:20.0764955Z Updating files: 72% (8349/11595) +2022-11-01T15:23:20.0853895Z Updating files: 73% (8465/11595) +2022-11-01T15:23:20.0939233Z Updating files: 74% (8581/11595) +2022-11-01T15:23:20.0992172Z Updating files: 75% (8697/11595) +2022-11-01T15:23:20.1498757Z Updating files: 76% (8813/11595) +2022-11-01T15:23:20.1610877Z Updating files: 77% (8929/11595) +2022-11-01T15:23:20.1643521Z Updating files: 78% (9045/11595) +2022-11-01T15:23:20.1892978Z Updating files: 79% (9161/11595) +2022-11-01T15:23:20.1990867Z Updating files: 80% (9276/11595) +2022-11-01T15:23:20.2065881Z Updating files: 81% (9392/11595) +2022-11-01T15:23:20.2137892Z Updating files: 82% (9508/11595) +2022-11-01T15:23:20.2198085Z Updating files: 83% (9624/11595) +2022-11-01T15:23:20.2257645Z Updating files: 84% (9740/11595) +2022-11-01T15:23:20.2323160Z Updating files: 85% (9856/11595) +2022-11-01T15:23:20.2380577Z Updating files: 86% (9972/11595) +2022-11-01T15:23:20.2444393Z Updating files: 87% (10088/11595) +2022-11-01T15:23:20.2544182Z Updating files: 88% (10204/11595) +2022-11-01T15:23:20.2807288Z Updating files: 89% (10320/11595) +2022-11-01T15:23:20.2939799Z Updating files: 90% (10436/11595) +2022-11-01T15:23:20.3191983Z Updating files: 91% (10552/11595) +2022-11-01T15:23:20.3258456Z Updating files: 92% (10668/11595) +2022-11-01T15:23:20.3340985Z Updating files: 93% (10784/11595) +2022-11-01T15:23:20.3423637Z Updating files: 94% (10900/11595) +2022-11-01T15:23:20.3500577Z Updating files: 95% (11016/11595) +2022-11-01T15:23:20.3558683Z Updating files: 96% (11132/11595) +2022-11-01T15:23:20.3634870Z Updating files: 97% (11248/11595) +2022-11-01T15:23:20.3814012Z Updating files: 98% (11364/11595) +2022-11-01T15:23:20.3892119Z Updating files: 99% (11480/11595) +2022-11-01T15:23:20.3892548Z Updating files: 100% (11595/11595) +2022-11-01T15:23:20.3892853Z Updating files: 100% (11595/11595), done. +2022-11-01T15:23:20.4056043Z Note: switching to 'refs/remotes/pull/70980/merge'. +2022-11-01T15:23:20.4056307Z +2022-11-01T15:23:20.4056668Z You are in 'detached HEAD' state. You can look around, make experimental +2022-11-01T15:23:20.4057485Z changes and commit them, and you can discard any commits you make in this +2022-11-01T15:23:20.4058470Z state without impacting any branches by switching back to a branch. +2022-11-01T15:23:20.4058838Z +2022-11-01T15:23:20.4059084Z If you want to create a new branch to retain commits you create, you may +2022-11-01T15:23:20.4060410Z do so (now or later) by using -c with the switch command. Example: +2022-11-01T15:23:20.4060709Z +2022-11-01T15:23:20.4061092Z git switch -c +2022-11-01T15:23:20.4061268Z +2022-11-01T15:23:20.4061433Z Or undo this operation with: +2022-11-01T15:23:20.4061641Z +2022-11-01T15:23:20.4061781Z git switch - +2022-11-01T15:23:20.4061964Z +2022-11-01T15:23:20.4062222Z Turn off this advice by setting config variable advice.detachedHead to false +2022-11-01T15:23:20.4062504Z +2022-11-01T15:23:20.4062736Z HEAD is now at 90d5821 Merge 1cb3ad143b2bd2b6467c31b7f52299c77448f1ee into 6ccb95a4ea337422d5d29cd85f5267e4c867ccff +2022-11-01T15:23:20.4116386Z ##[endgroup] +2022-11-01T15:23:20.4158288Z [command]/usr/bin/git log -1 --format='%H' +2022-11-01T15:23:20.4192267Z '90d58213531368fd97e9955fe80b75ad69c20f24' +2022-11-01T15:23:20.4605705Z ##[group]Run actions/cache@v3 +2022-11-01T15:23:20.4606069Z with: +2022-11-01T15:23:20.4606290Z path: ~/BYOND +2022-11-01T15:23:20.4606834Z key: Linux-byond- +2022-11-01T15:23:20.4607271Z ##[endgroup] +2022-11-01T15:23:22.1816608Z Received 0 of 4090426 (0.0%), 0.0 MBs/sec +2022-11-01T15:23:22.2496035Z Received 4090426 of 4090426 (100.0%), 3.6 MBs/sec +2022-11-01T15:23:22.2497318Z Cache Size: ~4 MB (4090426 B) +2022-11-01T15:23:22.2526348Z [command]/usr/bin/tar --use-compress-program unzstd -xf /home/runner/work/_temp/6dd95125-b59e-4597-b8ee-6c3714735e91/cache.tzst -P -C /home/runner/work/tgstation/tgstation +2022-11-01T15:23:22.3064448Z Cache restored successfully +2022-11-01T15:23:22.4635256Z Cache restored from key: Linux-byond- +2022-11-01T15:23:22.4810323Z ##[group]Run sudo systemctl start mysql +2022-11-01T15:23:22.4810903Z sudo systemctl start mysql +2022-11-01T15:23:22.4811432Z mysql -u root -proot -e 'CREATE DATABASE tg_ci;' +2022-11-01T15:23:22.4811815Z mysql -u root -proot tg_ci < SQL/tgstation_schema.sql +2022-11-01T15:23:22.4812211Z mysql -u root -proot -e 'CREATE DATABASE tg_ci_prefixed;' +2022-11-01T15:23:22.4812696Z mysql -u root -proot tg_ci_prefixed < SQL/tgstation_schema_prefixed.sql +2022-11-01T15:23:22.4876848Z shell: /usr/bin/bash -e {0} +2022-11-01T15:23:22.4877477Z ##[endgroup] +2022-11-01T15:23:27.2625132Z mysql: [Warning] Using a password on the command line interface can be insecure. +2022-11-01T15:23:27.3956584Z mysql: [Warning] Using a password on the command line interface can be insecure. +2022-11-01T15:23:28.2604742Z mysql: [Warning] Using a password on the command line interface can be insecure. +2022-11-01T15:23:28.2716557Z mysql: [Warning] Using a password on the command line interface can be insecure. +2022-11-01T15:23:29.0145539Z ##[group]Run sudo dpkg --add-architecture i386 +2022-11-01T15:23:29.0145924Z sudo dpkg --add-architecture i386 +2022-11-01T15:23:29.0146204Z sudo apt update || true +2022-11-01T15:23:29.0146531Z sudo apt install -o APT::Immediate-Configure=false libssl1.1:i386 +2022-11-01T15:23:29.0146860Z bash tools/ci/install_rust_g.sh +2022-11-01T15:23:29.0208114Z shell: /usr/bin/bash -e {0} +2022-11-01T15:23:29.0208371Z ##[endgroup] +2022-11-01T15:23:29.3467028Z +2022-11-01T15:23:29.3467957Z WARNING: apt does not have a stable CLI interface. Use with caution in scripts. +2022-11-01T15:23:29.3470221Z +2022-11-01T15:23:29.4665471Z Hit:1 http://azure.archive.ubuntu.com/ubuntu focal InRelease +2022-11-01T15:23:29.4669512Z Get:2 http://azure.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB] +2022-11-01T15:23:29.4687773Z Get:3 http://azure.archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB] +2022-11-01T15:23:29.4702492Z Get:4 http://azure.archive.ubuntu.com/ubuntu focal-security InRelease [114 kB] +2022-11-01T15:23:29.4705529Z Get:5 https://packages.microsoft.com/ubuntu/20.04/prod focal InRelease [10.5 kB] +2022-11-01T15:23:29.7585400Z Get:6 http://azure.archive.ubuntu.com/ubuntu focal-updates/main i386 Packages [745 kB] +2022-11-01T15:23:29.7767685Z Get:7 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [2196 kB] +2022-11-01T15:23:29.8010173Z Get:8 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [972 kB] +2022-11-01T15:23:29.8070363Z Hit:9 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal InRelease +2022-11-01T15:23:29.8211172Z Get:10 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe i386 Packages [697 kB] +2022-11-01T15:23:29.9292317Z Get:11 http://azure.archive.ubuntu.com/ubuntu focal-backports/universe i386 Packages [13.5 kB] +2022-11-01T15:23:29.9315932Z Get:12 http://azure.archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages [24.0 kB] +2022-11-01T15:23:29.9324114Z Get:13 http://azure.archive.ubuntu.com/ubuntu focal-backports/universe amd64 c-n-f Metadata [864 B] +2022-11-01T15:23:30.0626789Z Get:14 https://packages.microsoft.com/ubuntu/20.04/prod focal/main arm64 Packages [45.2 kB] +2022-11-01T15:23:30.0677343Z Get:15 https://packages.microsoft.com/ubuntu/20.04/prod focal/main amd64 Packages [204 kB] +2022-11-01T15:23:30.2127695Z Get:16 http://azure.archive.ubuntu.com/ubuntu focal-security/main amd64 Packages [1821 kB] +2022-11-01T15:23:30.2296608Z Get:17 http://azure.archive.ubuntu.com/ubuntu focal-security/main amd64 c-n-f Metadata [11.2 kB] +2022-11-01T15:23:30.2329110Z Get:18 http://azure.archive.ubuntu.com/ubuntu focal-security/universe amd64 Packages [743 kB] +2022-11-01T15:23:30.2861057Z Get:19 http://azure.archive.ubuntu.com/ubuntu focal-security/universe amd64 c-n-f Metadata [15.3 kB] +2022-11-01T15:23:30.6239298Z Get:20 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal/main i386 Packages [15.2 kB] +2022-11-01T15:23:46.7853764Z Fetched 7851 kB in 2s (4993 kB/s) +2022-11-01T15:23:48.1966173Z Reading package lists... +2022-11-01T15:23:48.4655905Z Building dependency tree... +2022-11-01T15:23:48.4674811Z Reading state information... +2022-11-01T15:23:48.6158045Z 30 packages can be upgraded. Run 'apt list --upgradable' to see them. +2022-11-01T15:23:48.6289670Z +2022-11-01T15:23:48.6290570Z WARNING: apt does not have a stable CLI interface. Use with caution in scripts. +2022-11-01T15:23:48.6290875Z +2022-11-01T15:23:48.7009344Z Reading package lists... +2022-11-01T15:23:48.9786347Z Building dependency tree... +2022-11-01T15:23:48.9806498Z Reading state information... +2022-11-01T15:23:49.1908267Z The following additional packages will be installed: +2022-11-01T15:23:49.1909169Z gcc-11-base:i386 libc6:i386 libcrypt1:i386 libgcc-s1 libgcc-s1:i386 +2022-11-01T15:23:49.1909925Z libidn2-0:i386 libunistring2:i386 +2022-11-01T15:23:49.1917188Z Suggested packages: +2022-11-01T15:23:49.1918006Z glibc-doc:i386 locales:i386 +2022-11-01T15:23:49.2785536Z The following NEW packages will be installed: +2022-11-01T15:23:49.2789401Z gcc-11-base:i386 libc6:i386 libcrypt1:i386 libgcc-s1:i386 libidn2-0:i386 +2022-11-01T15:23:49.2793380Z libssl1.1:i386 libunistring2:i386 +2022-11-01T15:23:49.2799841Z The following packages will be upgraded: +2022-11-01T15:23:49.2804848Z libgcc-s1 +2022-11-01T15:23:49.3261093Z 1 upgraded, 7 newly installed, 0 to remove and 29 not upgraded. +2022-11-01T15:23:49.4742625Z Need to get 4528 kB of archives. +2022-11-01T15:23:49.4743198Z After this operation, 19.3 MB of additional disk space will be used. +2022-11-01T15:23:49.4744237Z Get:1 http://azure.archive.ubuntu.com/ubuntu focal/main i386 libcrypt1 i386 1:4.4.10-10ubuntu4 [90.9 kB] +2022-11-01T15:23:49.6579955Z Get:2 http://azure.archive.ubuntu.com/ubuntu focal-updates/main i386 libc6 i386 2.31-0ubuntu9.9 [2580 kB] +2022-11-01T15:23:49.6658233Z Get:3 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal/main i386 gcc-11-base i386 11.1.0-1ubuntu1~20.04 [19.0 kB] +2022-11-01T15:23:50.0902580Z Get:4 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal/main amd64 libgcc-s1 amd64 11.1.0-1ubuntu1~20.04 [42.1 kB] +2022-11-01T15:23:50.1227741Z Get:5 http://azure.archive.ubuntu.com/ubuntu focal/main i386 libunistring2 i386 0.9.10-2 [377 kB] +2022-11-01T15:23:50.2138856Z Get:6 http://azure.archive.ubuntu.com/ubuntu focal/main i386 libidn2-0 i386 2.2.0-2 [51.4 kB] +2022-11-01T15:23:50.2991668Z Get:7 http://azure.archive.ubuntu.com/ubuntu focal-updates/main i386 libssl1.1 i386 1.1.1f-1ubuntu2.16 [1318 kB] +2022-11-01T15:23:50.5116502Z Get:8 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal/main i386 libgcc-s1 i386 11.1.0-1ubuntu1~20.04 [50.0 kB] +2022-11-01T15:23:51.2386768Z Preconfiguring packages ... +2022-11-01T15:23:51.3495462Z Fetched 4528 kB in 1s (3176 kB/s) +2022-11-01T15:23:51.3919752Z Selecting previously unselected package gcc-11-base:i386. +2022-11-01T15:23:51.4344862Z (Reading database ... +2022-11-01T15:23:51.4345195Z (Reading database ... 5% +2022-11-01T15:23:51.4345492Z (Reading database ... 10% +2022-11-01T15:23:51.4346277Z (Reading database ... 15% +2022-11-01T15:23:51.4346554Z (Reading database ... 20% +2022-11-01T15:23:51.4346817Z (Reading database ... 25% +2022-11-01T15:23:51.4347410Z (Reading database ... 30% +2022-11-01T15:23:51.4347706Z (Reading database ... 35% +2022-11-01T15:23:51.4348099Z (Reading database ... 40% +2022-11-01T15:23:51.4348378Z (Reading database ... 45% +2022-11-01T15:23:51.4348637Z (Reading database ... 50% +2022-11-01T15:23:51.4934309Z (Reading database ... 55% +2022-11-01T15:23:51.5685431Z (Reading database ... 60% +2022-11-01T15:23:51.6482633Z (Reading database ... 65% +2022-11-01T15:23:51.7528420Z (Reading database ... 70% +2022-11-01T15:23:51.9010214Z (Reading database ... 75% +2022-11-01T15:23:52.0151477Z (Reading database ... 80% +2022-11-01T15:23:52.1096967Z (Reading database ... 85% +2022-11-01T15:23:52.2608875Z (Reading database ... 90% +2022-11-01T15:23:52.3661328Z (Reading database ... 95% +2022-11-01T15:23:52.3661629Z (Reading database ... 100% +2022-11-01T15:23:52.3661963Z (Reading database ... 242126 files and directories currently installed.) +2022-11-01T15:23:52.3810032Z Preparing to unpack .../0-gcc-11-base_11.1.0-1ubuntu1~20.04_i386.deb ... +2022-11-01T15:23:52.3842110Z Unpacking gcc-11-base:i386 (11.1.0-1ubuntu1~20.04) ... +2022-11-01T15:23:52.6152846Z Preparing to unpack .../1-libgcc-s1_11.1.0-1ubuntu1~20.04_amd64.deb ... +2022-11-01T15:23:52.7192789Z Unpacking libgcc-s1:amd64 (11.1.0-1ubuntu1~20.04) over (10.3.0-1ubuntu1~20.04) ... +2022-11-01T15:23:52.7808541Z Selecting previously unselected package libgcc-s1:i386. +2022-11-01T15:23:52.8066352Z Preparing to unpack .../2-libgcc-s1_11.1.0-1ubuntu1~20.04_i386.deb ... +2022-11-01T15:23:52.8100949Z Unpacking libgcc-s1:i386 (11.1.0-1ubuntu1~20.04) ... +2022-11-01T15:23:52.8534885Z Selecting previously unselected package libcrypt1:i386. +2022-11-01T15:23:52.8817109Z Preparing to unpack .../3-libcrypt1_1%3a4.4.10-10ubuntu4_i386.deb ... +2022-11-01T15:23:52.8847883Z Unpacking libcrypt1:i386 (1:4.4.10-10ubuntu4) ... +2022-11-01T15:23:53.0566375Z Selecting previously unselected package libc6:i386. +2022-11-01T15:23:53.0861196Z Preparing to unpack .../4-libc6_2.31-0ubuntu9.9_i386.deb ... +2022-11-01T15:23:53.2571404Z Unpacking libc6:i386 (2.31-0ubuntu9.9) ... +2022-11-01T15:23:53.7102365Z Replacing files in old package libc6-i386 (2.31-0ubuntu9.9) ... +2022-11-01T15:23:53.8128077Z Selecting previously unselected package libunistring2:i386. +2022-11-01T15:23:53.8390204Z Preparing to unpack .../5-libunistring2_0.9.10-2_i386.deb ... +2022-11-01T15:23:53.8406925Z Unpacking libunistring2:i386 (0.9.10-2) ... +2022-11-01T15:23:54.3087452Z Selecting previously unselected package libidn2-0:i386. +2022-11-01T15:23:54.3331996Z Preparing to unpack .../6-libidn2-0_2.2.0-2_i386.deb ... +2022-11-01T15:23:54.4067995Z Unpacking libidn2-0:i386 (2.2.0-2) ... +2022-11-01T15:23:55.0668783Z Selecting previously unselected package libssl1.1:i386. +2022-11-01T15:23:55.0979147Z Preparing to unpack .../7-libssl1.1_1.1.1f-1ubuntu2.16_i386.deb ... +2022-11-01T15:23:55.1128241Z Unpacking libssl1.1:i386 (1.1.1f-1ubuntu2.16) ... +2022-11-01T15:23:55.5915523Z Setting up gcc-11-base:i386 (11.1.0-1ubuntu1~20.04) ... +2022-11-01T15:23:55.6480293Z Setting up libgcc-s1:amd64 (11.1.0-1ubuntu1~20.04) ... +2022-11-01T15:23:55.7536432Z Setting up libgcc-s1:i386 (11.1.0-1ubuntu1~20.04) ... +2022-11-01T15:23:55.8152741Z Setting up libcrypt1:i386 (1:4.4.10-10ubuntu4) ... +2022-11-01T15:23:55.9483752Z Setting up libc6:i386 (2.31-0ubuntu9.9) ... +2022-11-01T15:23:56.2906587Z Setting up libssl1.1:i386 (1.1.1f-1ubuntu2.16) ... +2022-11-01T15:23:56.4402654Z Setting up libunistring2:i386 (0.9.10-2) ... +2022-11-01T15:23:56.4473735Z Setting up libidn2-0:i386 (2.2.0-2) ... +2022-11-01T15:23:56.4556493Z Processing triggers for libc-bin (2.31-0ubuntu9.9) ... +2022-11-01T15:24:19.5231907Z 2022-11-01 15:24:19 URL:https://objects.githubusercontent.com/github-production-release-asset-2e65be/127494547/92c6bbfc-0d51-48ea-b586-9cd01c071d25?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20221101%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20221101T152419Z&X-Amz-Expires=300&X-Amz-Signature=096796f299665e0b83404bf48a3be6669d780d8bafabb5a18038d4e1de323277&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=127494547&response-content-disposition=attachment%3B%20filename%3Dlibrust_g.so&response-content-type=application%2Foctet-stream [72809008/72809008] -> "/home/runner/.byond/bin/librust_g.so" [1] +2022-11-01T15:24:19.5331036Z linux-gate.so.1 (0xf7f93000) +2022-11-01T15:24:19.5332151Z libssl.so.1.1 => /lib/i386-linux-gnu/libssl.so.1.1 (0xf77c5000) +2022-11-01T15:24:19.5332758Z libcrypto.so.1.1 => /lib/i386-linux-gnu/libcrypto.so.1.1 (0xf750d000) +2022-11-01T15:24:19.5335819Z libz.so.1 => /lib32/libz.so.1 (0xf74ef000) +2022-11-01T15:24:19.5336449Z libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf74d0000) +2022-11-01T15:24:19.5337053Z libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf74ad000) +2022-11-01T15:24:19.5338254Z libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf73a8000) +2022-11-01T15:24:19.5343540Z libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf73a2000) +2022-11-01T15:24:19.5344153Z libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf71b3000) +2022-11-01T15:24:19.5344637Z /lib/ld-linux.so.2 (0xf7f95000) +2022-11-01T15:24:19.5376954Z ##[group]Run bash tools/ci/install_auxlua.sh +2022-11-01T15:24:19.5377389Z bash tools/ci/install_auxlua.sh +2022-11-01T15:24:19.5438035Z shell: /usr/bin/bash -e {0} +2022-11-01T15:24:19.5438277Z ##[endgroup] +2022-11-01T15:24:20.0520918Z 2022-11-01 15:24:20 URL:https://objects.githubusercontent.com/github-production-release-asset-2e65be/473295481/bb55dc2f-8248-4032-ad66-b80cb61a84f3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20221101%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20221101T152408Z&X-Amz-Expires=300&X-Amz-Signature=f0ea96a2ae5093c3051eb36ca625d0917a1cc9e11ecef63953f9837499a4b7be&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=473295481&response-content-disposition=attachment%3B%20filename%3Dlibauxlua.so&response-content-type=application%2Foctet-stream [5781068/5781068] -> "/home/runner/.byond/bin/libauxlua.so" [1] +2022-11-01T15:24:20.0637194Z linux-gate.so.1 (0xf7ed0000) +2022-11-01T15:24:20.0638001Z libstdc++.so.6 => /lib32/libstdc++.so.6 (0xf7ac9000) +2022-11-01T15:24:20.0638990Z libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7aaa000) +2022-11-01T15:24:20.0639537Z libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7a87000) +2022-11-01T15:24:20.0640086Z libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7982000) +2022-11-01T15:24:20.0640535Z libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf797c000) +2022-11-01T15:24:20.0641053Z libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf778d000) +2022-11-01T15:24:20.0641431Z /lib/ld-linux.so.2 (0xf7ed2000) +2022-11-01T15:24:20.0687471Z ##[group]Run bash tools/ci/install_byond.sh +2022-11-01T15:24:20.0691349Z bash tools/ci/install_byond.sh +2022-11-01T15:24:20.0691690Z source $HOME/BYOND/byond/bin/byondsetup +2022-11-01T15:24:20.0692049Z tools/build/build --ci dm -DCIBUILDING -DANSICOLORS +2022-11-01T15:24:20.0788693Z shell: /usr/bin/bash -e {0} +2022-11-01T15:24:20.0788944Z ##[endgroup] +2022-11-01T15:24:20.0904985Z Setting up BYOND. +2022-11-01T15:24:20.1285049Z % Total % Received % Xferd Average Speed Time Time Time Current +2022-11-01T15:24:20.1288558Z Dload Upload Total Spent Left Speed +2022-11-01T15:24:20.1289906Z +2022-11-01T15:24:20.2648629Z 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 +2022-11-01T15:24:20.2651476Z 100 4021k 100 4021k 0 0 28.8M 0 --:--:-- --:--:-- --:--:-- 28.8M +2022-11-01T15:24:20.2868719Z Archive: byond.zip +2022-11-01T15:24:20.2869523Z creating: byond/ +2022-11-01T15:24:20.2872392Z creating: byond/key/ +2022-11-01T15:24:20.2872809Z creating: byond/web/ +2022-11-01T15:24:20.2873278Z inflating: byond/web/child.dms +2022-11-01T15:24:20.2873868Z inflating: byond/web/button.dms +2022-11-01T15:24:20.2874291Z inflating: byond/web/input.dms +2022-11-01T15:24:20.2874708Z inflating: byond/web/text.dms +2022-11-01T15:24:20.2990682Z inflating: byond/web/webclient.dart.js +2022-11-01T15:24:20.2991338Z inflating: byond/web/verbmenu.dms +2022-11-01T15:24:20.2992247Z inflating: byond/web/defaultSkin.dms +2022-11-01T15:24:20.2994907Z inflating: byond/web/hotbar.dms +2022-11-01T15:24:20.2995370Z inflating: byond/web/label.dms +2022-11-01T15:24:20.2997432Z inflating: byond/web/alert.dms +2022-11-01T15:24:20.3045767Z inflating: byond/web/message.dms +2022-11-01T15:24:20.3046084Z inflating: byond/web/drag.png +2022-11-01T15:24:20.3046357Z inflating: byond/web/map.dms +2022-11-01T15:24:20.3046639Z inflating: byond/web/splashlogo.png +2022-11-01T15:24:20.3046920Z inflating: byond/web/drop.png +2022-11-01T15:24:20.3109752Z inflating: byond/web/ext.js +2022-11-01T15:24:20.3110039Z inflating: byond/web/file.dms +2022-11-01T15:24:20.3110743Z inflating: byond/web/grid.dms +2022-11-01T15:24:20.3112568Z inflating: byond/web/bar.dms +2022-11-01T15:24:20.3116279Z inflating: byond/web/dpad.dms +2022-11-01T15:24:20.3117768Z inflating: byond/web/output.dms +2022-11-01T15:24:20.3118380Z inflating: byond/web/tab.dms +2022-11-01T15:24:20.3121184Z inflating: byond/web/info.dms +2022-11-01T15:24:20.3125342Z inflating: byond/web/color.dms +2022-11-01T15:24:20.3127736Z inflating: byond/web/gamepad.dms +2022-11-01T15:24:20.3129918Z inflating: byond/web/browser.dms +2022-11-01T15:24:20.3130867Z inflating: byond/web/status.dms +2022-11-01T15:24:20.3131904Z inflating: byond/web/any.dms +2022-11-01T15:24:20.3133198Z inflating: byond/web/pane.dms +2022-11-01T15:24:20.3134980Z inflating: byond/web/pop.dms +2022-11-01T15:24:20.3136094Z inflating: byond/license.txt +2022-11-01T15:24:20.3136925Z inflating: byond/legal.txt +2022-11-01T15:24:20.3138018Z inflating: byond/Makefile +2022-11-01T15:24:20.3138748Z creating: byond/man/ +2022-11-01T15:24:20.3140374Z creating: byond/man/man6/ +2022-11-01T15:24:20.3140865Z inflating: byond/man/man6/DreamDaemon.6 +2022-11-01T15:24:20.3142127Z inflating: byond/man/man6/DreamMaker.6 +2022-11-01T15:24:20.3149532Z creating: byond/lib/ +2022-11-01T15:24:20.3149763Z creating: byond/host/ +2022-11-01T15:24:20.3150009Z inflating: byond/host/readme.html +2022-11-01T15:24:20.3150561Z inflating: byond/host/readme-unix.txt +2022-11-01T15:24:20.3150816Z creating: byond/host/home/ +2022-11-01T15:24:20.3151052Z creating: byond/host/home/root/ +2022-11-01T15:24:20.3151304Z creating: byond/host/home/root/byond/ +2022-11-01T15:24:20.3151781Z creating: byond/host/home/root/byond/tools/ +2022-11-01T15:24:20.3152089Z creating: byond/host/home/root/byond/tools/root/ +2022-11-01T15:24:20.3153050Z inflating: byond/host/home/root/byond/tools/root/root.dmb +2022-11-01T15:24:20.3154330Z creating: byond/host/shared/ +2022-11-01T15:24:20.3155440Z creating: byond/host/shared/byond/ +2022-11-01T15:24:20.3156763Z creating: byond/host/shared/byond/tools/ +2022-11-01T15:24:20.3157942Z creating: byond/host/shared/byond/tools/ftp/ +2022-11-01T15:24:20.3159544Z inflating: byond/host/shared/byond/tools/ftp/ftp.dmb +2022-11-01T15:24:20.3159981Z creating: byond/host/shared/byond/tools/admin/ +2022-11-01T15:24:20.3172339Z inflating: byond/host/shared/byond/tools/admin/admin.dmb +2022-11-01T15:24:20.3172798Z creating: byond/host/shared-web/ +2022-11-01T15:24:20.3173421Z creating: byond/host/shared-web/web/ +2022-11-01T15:24:20.3173784Z creating: byond/host/shared-web/web/tools/ +2022-11-01T15:24:20.3174165Z creating: byond/host/shared-web/web/tools/admin/ +2022-11-01T15:24:20.3176681Z inflating: byond/host/shared-web/web/tools/admin/index.dmb +2022-11-01T15:24:20.3186829Z inflating: byond/host/host.dmb +2022-11-01T15:24:20.3187123Z inflating: byond/host/host.start +2022-11-01T15:24:20.3188445Z inflating: byond/host/hostconf.orig +2022-11-01T15:24:20.3189903Z inflating: byond/host/hostconf.txt +2022-11-01T15:24:20.3191949Z inflating: byond/readme.txt +2022-11-01T15:24:20.3192209Z creating: byond/bin/ +2022-11-01T15:24:20.3193769Z inflating: byond/bin/byondexec +2022-11-01T15:24:20.3195439Z inflating: byond/bin/DreamDownload +2022-11-01T15:24:20.3908232Z inflating: byond/bin/libbyond.so +2022-11-01T15:24:20.4069319Z inflating: byond/bin/libext.so +2022-11-01T15:24:20.4073220Z inflating: byond/bin/DreamDaemon +2022-11-01T15:24:20.4080176Z inflating: byond/bin/DreamMaker +2022-11-01T15:24:20.4080431Z creating: byond/cfg/ +2022-11-01T15:24:20.4080676Z inflating: byond/cfg/release.txt +2022-11-01T15:24:20.4266638Z *************************** +2022-11-01T15:24:20.4273089Z Now run the following command: +2022-11-01T15:24:20.4285743Z +2022-11-01T15:24:20.4296269Z source /home/runner/BYOND/byond/bin/byondsetup +2022-11-01T15:24:20.4307061Z +2022-11-01T15:24:20.4314771Z If it generates errors, your shell is not compatible with 'sh', so you will +2022-11-01T15:24:20.4321421Z have to edit byondsetup and make it work with your shell. If the script works, you should be able to run DreamDaemon. +2022-11-01T15:24:20.4332109Z +2022-11-01T15:24:20.4340024Z IMPORTANT: once you have the script working, you must add the above line +2022-11-01T15:24:20.4346843Z to your startup script. The name of your startup script depends on the +2022-11-01T15:24:20.4352983Z shell you use. Typical ones are .profile or .bash_profile. +2022-11-01T15:24:20.4363091Z +2022-11-01T15:24:20.4371649Z Once everything is working, you can find out more about the software +2022-11-01T15:24:20.4381742Z by doing 'man DreamDaemon'. A host server has also been included +2022-11-01T15:24:20.4389897Z so edit host/hostconf.txt and boot up your world server! +2022-11-01T15:24:20.4400150Z *************************** +2022-11-01T15:24:21.3481300Z Using system-wide Node v16.18.0 +2022-11-01T15:24:22.7088337Z :: Juke Build version 0.8.1 +2022-11-01T15:24:23.2208661Z => Starting 'dm' +2022-11-01T15:24:23.2218632Z :: Using defines: CBT, CIBUILDING, ANSICOLORS +2022-11-01T15:24:23.6167555Z DM compiler version 514.1588 +2022-11-01T15:24:23.6168274Z loading tgstation.m.dme +2022-11-01T15:24:34.0461685Z loading interface/skin.dmf +2022-11-01T15:25:38.2374769Z loading map_files/generic/CentCom.dmm +2022-11-01T15:25:39.2778196Z saving tgstation.m.dmb (DEBUG mode) +2022-11-01T15:25:40.4869514Z tgstation.m.dmb - 0 errors, 0 warnings (11/1/22 3:25 pm) +2022-11-01T15:25:40.4869848Z Total time: 1:17 +2022-11-01T15:25:41.7065548Z => Finished 'dm' in 78.486s +2022-11-01T15:25:41.7070924Z => Done in 78.995s +2022-11-01T15:25:41.7168392Z ##[group]Run source $HOME/BYOND/byond/bin/byondsetup +2022-11-01T15:25:41.7168778Z source $HOME/BYOND/byond/bin/byondsetup +2022-11-01T15:25:41.7169083Z bash tools/ci/run_server.sh tramstation +2022-11-01T15:25:41.7233910Z shell: /usr/bin/bash -e {0} +2022-11-01T15:25:41.7234485Z ##[endgroup] +2022-11-01T15:25:41.7349856Z Testing tramstation +2022-11-01T15:25:42.0259046Z cp: cannot stat 'tgui/packages/tgfont/dist/*': No such file or directory +2022-11-01T15:25:42.0443276Z Tue Nov 1 15:25:42 2022 +2022-11-01T15:25:42.0444066Z World opened on network port 53835. +2022-11-01T15:25:42.0446892Z Welcome BYOND! (5.0 Public Version 514.1588) +2022-11-01T15:26:04.0921674Z 865 global variables +2022-11-01T15:26:04.9224562Z World loaded at 15:26:04! +2022-11-01T15:26:04.9749013Z Running /tg/ revision: +2022-11-01T15:26:04.9749563Z No commit information +2022-11-01T15:26:04.9837092Z Loading config file config.txt... +2022-11-01T15:26:04.9841145Z Loading config file maps.txt... +2022-11-01T15:26:04.9868634Z Unable to locate admins backup file. +2022-11-01T15:26:06.0048294Z Initialized Title Screen subsystem within 0 seconds! +2022-11-01T15:26:06.0049007Z Initialized Server Tasks subsystem within 0 seconds! +2022-11-01T15:26:06.0049497Z Initialized Input subsystem within 0 seconds! +2022-11-01T15:26:06.0125643Z Initialized Profiler subsystem within 0 seconds! +2022-11-01T15:26:06.0126234Z Initialized Database subsystem within 0 seconds! +2022-11-01T15:26:06.0126723Z Initialized Blackbox subsystem within 0 seconds! +2022-11-01T15:26:06.0129042Z Initialized Sounds subsystem within 0 seconds! +2022-11-01T15:26:06.0301324Z Initialized Instruments subsystem within 0.02 seconds! +2022-11-01T15:26:06.4428754Z Initialized Greyscale subsystem within 0.41 seconds! +2022-11-01T15:26:06.4429170Z Initialized Vis contents overlays subsystem within 0 seconds! +2022-11-01T15:26:06.4429549Z Initialized Security Level subsystem within 0 seconds! +2022-11-01T15:26:06.4465567Z Initialized Station subsystem within 0 seconds! +2022-11-01T15:26:06.4465936Z Initialized Quirks subsystem within 0 seconds! +2022-11-01T15:26:06.4599231Z Initialized Reagents subsystem within 0.01 seconds! +2022-11-01T15:26:06.4603336Z Initialized Events subsystem within 0 seconds! +2022-11-01T15:26:06.4668892Z Initialized IDs and Access subsystem within 0.01 seconds! +2022-11-01T15:26:06.4669458Z Initialized Jobs subsystem within 0 seconds! +2022-11-01T15:26:06.4670198Z Initialized AI movement subsystem within 0 seconds! +2022-11-01T15:26:06.4693524Z Initialized Ticker subsystem within 0 seconds! +2022-11-01T15:26:06.4698134Z Initialized AI Controller Ticker subsystem within 0 seconds! +2022-11-01T15:26:06.4699769Z Initialized AI Behavior Ticker subsystem within 0 seconds! +2022-11-01T15:26:06.4864335Z Initialized Trading Card Game subsystem within 0.02 seconds! +2022-11-01T15:26:06.4867314Z Loading Tramstation... +2022-11-01T15:26:09.0639832Z Loaded Station in 2.6s! +2022-11-01T15:26:11.3030341Z Loaded Lavaland in 2.1s! +2022-11-01T15:26:12.3779637Z Ruin loader finished with 0 left to spend. +2022-11-01T15:26:12.4524433Z Ruin loader finished with 0 left to spend. +2022-11-01T15:26:12.8605850Z Cave Generator finished in 0.4s! +2022-11-01T15:26:12.9076303Z Cave Generator finished in 0.1s! +2022-11-01T15:26:13.9109655Z Initialized Mapping subsystem within 7.42 seconds! +2022-11-01T15:26:39.1717128Z The BYOND hub reports that port 53835 is not reachable. +2022-11-01T15:26:42.3867216Z Initialized Early Assets subsystem within 28.47 seconds! +2022-11-01T15:26:42.4328496Z Initialized Research subsystem within 0.05 seconds! +2022-11-01T15:26:42.4331134Z Initialized Time Tracking subsystem within 0 seconds! +2022-11-01T15:26:42.4436988Z Initialized Networks subsystem within 0.01 seconds! +2022-11-01T15:26:42.4726624Z Initialized Spatial Grid subsystem within 0.03 seconds! +2022-11-01T15:26:42.4728372Z Initialized Economy subsystem within 0 seconds! +2022-11-01T15:26:42.4728944Z Initialized Restaurant subsystem within 0 seconds! +2022-11-01T15:27:25.2172855Z ## NOTICE: morgue_cadaver_disable_nonhumans. There are no valid roundstart nonhuman races enabled. Defaulting to humans only! +2022-11-01T15:27:25.7106020Z ## NOTICE: morgue_cadaver_disable_nonhumans. There are no valid roundstart nonhuman races enabled. Defaulting to humans only! +2022-11-01T15:27:32.9578334Z Initialized Atoms subsystem within 50.48 seconds! +2022-11-01T15:27:32.9805933Z Initialized Language subsystem within 0.01 seconds! +2022-11-01T15:27:33.0740878Z Initialized Machines subsystem within 0.09 seconds! +2022-11-01T15:27:33.0747270Z Initialized Skills subsystem within 0 seconds! +2022-11-01T15:27:33.0750239Z Initialized Addiction subsystem within 0 seconds! +2022-11-01T15:27:33.0763134Z Initialized Blackmarket subsystem within 0 seconds! +2022-11-01T15:27:33.0772232Z Initialized Disease subsystem within 0 seconds! +2022-11-01T15:27:33.0772589Z Initialized Fluid subsystem within 0 seconds! +2022-11-01T15:27:33.0772923Z Initialized Smoke subsystem within 0 seconds! +2022-11-01T15:27:33.0773294Z Initialized Foam subsystem within 0 seconds! +2022-11-01T15:27:33.0773619Z Initialized Lag Switch subsystem within 0 seconds! +2022-11-01T15:27:33.1054121Z Initialized Library Loading subsystem within 0.03 seconds! +2022-11-01T15:27:33.4024857Z Initialized Lua Scripting subsystem within 0.3 seconds! +2022-11-01T15:27:33.4027535Z Initialized Night Shift subsystem within 0 seconds! +2022-11-01T15:27:33.4029596Z Initialized Sun subsystem within 0 seconds! +2022-11-01T15:27:33.4063599Z Initialized Traitor subsystem within 0 seconds! +2022-11-01T15:27:33.4335232Z Initialized Wardrobe subsystem within 0.03 seconds! +2022-11-01T15:27:33.4336023Z Initialized Weather subsystem within 0 seconds! +2022-11-01T15:27:33.4338457Z Initialized Wiremod Composite Templates subsystem within 0 seconds! +2022-11-01T15:27:39.6841918Z Initialized Atmospherics subsystem within 6.25 seconds! +2022-11-01T15:27:39.6858388Z Initialized Persistence subsystem within 0 seconds! +2022-11-01T15:27:39.6861179Z Initialized Persistent Paintings subsystem within 0 seconds! +2022-11-01T15:27:39.6864229Z Initialized Vote subsystem within 0 seconds! +2022-11-01T15:27:53.6977895Z Initialized Assets subsystem within 14.01 seconds! +2022-11-01T15:27:56.4493673Z Initialized Icon Smoothing subsystem within 2.75 seconds! +2022-11-01T15:27:56.4505231Z Initialized XKeyScore subsystem within 0 seconds! +2022-11-01T15:27:56.4524307Z Initialized PRISM subsystem within 0 seconds! +2022-11-01T15:28:04.6339924Z Initialized Lighting subsystem within 8.18 seconds! +2022-11-01T15:28:07.7698313Z Initialized Shuttle subsystem within 3.14 seconds! +2022-11-01T15:28:07.7749093Z Initialized Pathfinder subsystem within 0 seconds! +2022-11-01T15:28:07.7749434Z Initialized Ban Cache subsystem within 0 seconds! +2022-11-01T15:28:07.7749744Z Initialized Init Profiler subsystem within 0 seconds! +2022-11-01T15:28:07.7750061Z Initialized Chat subsystem within 0 seconds! +2022-11-01T15:28:07.7750369Z Initializations complete within 121.7 seconds! +2022-11-01T15:28:07.7824332Z Game start took 0s +2022-11-01T15:28:18.9688166Z ##[group]/datum/unit_test/log_mapping +2022-11-01T15:28:18.9688840Z +2022-11-01T15:28:18.9691942Z PASS /datum/unit_test/log_mapping 0s +2022-11-01T15:28:18.9692629Z ##[endgroup] +2022-11-01T15:28:19.0858950Z ##[group]/datum/unit_test/ablative_hood_hud +2022-11-01T15:28:19.1163124Z +2022-11-01T15:28:19.1164826Z PASS /datum/unit_test/ablative_hood_hud 0.1s +2022-11-01T15:28:19.1165814Z ##[endgroup] +2022-11-01T15:28:19.1391399Z ##[group]/datum/unit_test/ablative_hood_hud_with_helmet +2022-11-01T15:28:19.1679738Z +2022-11-01T15:28:19.1680798Z PASS /datum/unit_test/ablative_hood_hud_with_helmet 0s +2022-11-01T15:28:19.1684214Z ##[endgroup] +2022-11-01T15:28:19.1915312Z ##[group]/datum/unit_test/achievements +2022-11-01T15:28:19.2020908Z +2022-11-01T15:28:19.2021795Z PASS /datum/unit_test/achievements 0.1s +2022-11-01T15:28:19.2022783Z ##[endgroup] +2022-11-01T15:28:19.2454845Z ##[group]/datum/unit_test/anchored_mobs +2022-11-01T15:28:19.2456383Z +2022-11-01T15:28:19.2457685Z PASS /datum/unit_test/anchored_mobs 0s +2022-11-01T15:28:19.2458601Z ##[endgroup] +2022-11-01T15:28:19.2632595Z ##[group]/datum/unit_test/anonymous_themes +2022-11-01T15:28:19.4123645Z +2022-11-01T15:28:19.4125365Z PASS /datum/unit_test/anonymous_themes 0.2s +2022-11-01T15:28:19.4128592Z ##[endgroup] +2022-11-01T15:28:19.6372545Z ##[group]/datum/unit_test/autowiki +2022-11-01T15:28:21.1559221Z +2022-11-01T15:28:21.1560055Z PASS /datum/unit_test/autowiki 1.5s +2022-11-01T15:28:21.1560742Z ##[endgroup] +2022-11-01T15:28:22.6418059Z ##[group]/datum/unit_test/autowiki_include_template +2022-11-01T15:28:22.6418298Z +2022-11-01T15:28:22.6419112Z PASS /datum/unit_test/autowiki_include_template 0s +2022-11-01T15:28:22.6419629Z ##[endgroup] +2022-11-01T15:28:22.6592281Z ##[group]/datum/unit_test/barsigns_icon +2022-11-01T15:28:22.6850472Z +2022-11-01T15:28:22.6851042Z PASS /datum/unit_test/barsigns_icon 0s +2022-11-01T15:28:22.6851783Z ##[endgroup] +2022-11-01T15:28:22.7025607Z ##[group]/datum/unit_test/barsigns_name +2022-11-01T15:28:22.7025827Z +2022-11-01T15:28:22.7026411Z PASS /datum/unit_test/barsigns_name 0s +2022-11-01T15:28:22.7026869Z ##[endgroup] +2022-11-01T15:28:22.7196300Z ##[group]/datum/unit_test/bespoke_id +2022-11-01T15:28:22.7196495Z +2022-11-01T15:28:22.7196933Z PASS /datum/unit_test/bespoke_id 0s +2022-11-01T15:28:22.7197373Z ##[endgroup] +2022-11-01T15:28:22.7528217Z ##[group]/datum/unit_test/binary_insert +2022-11-01T15:28:22.7528455Z +2022-11-01T15:28:22.7528943Z PASS /datum/unit_test/binary_insert 0s +2022-11-01T15:28:22.7529444Z ##[endgroup] +2022-11-01T15:28:22.7720960Z ##[group]/datum/unit_test/bloody_footprints +2022-11-01T15:28:22.8157307Z +2022-11-01T15:28:22.8158188Z PASS /datum/unit_test/bloody_footprints 0.1s +2022-11-01T15:28:22.8158909Z ##[endgroup] +2022-11-01T15:28:22.9653160Z ##[group]/datum/unit_test/breath_sanity +2022-11-01T15:28:23.0154449Z +2022-11-01T15:28:23.0155311Z PASS /datum/unit_test/breath_sanity 0.1s +2022-11-01T15:28:23.0155975Z ##[endgroup] +2022-11-01T15:28:23.0421572Z ##[group]/datum/unit_test/breath_sanity_plasmamen +2022-11-01T15:28:23.0966156Z +2022-11-01T15:28:23.0966990Z PASS /datum/unit_test/breath_sanity_plasmamen 0s +2022-11-01T15:28:23.0967848Z ##[endgroup] +2022-11-01T15:28:23.1238973Z ##[group]/datum/unit_test/breath_sanity_ashwalker +2022-11-01T15:28:23.1864867Z +2022-11-01T15:28:23.1865526Z PASS /datum/unit_test/breath_sanity_ashwalker 0s +2022-11-01T15:28:23.1866107Z ##[endgroup] +2022-11-01T15:28:23.2143094Z ##[group]/datum/unit_test/cable_powernets +2022-11-01T15:28:23.2143293Z +2022-11-01T15:28:23.2143753Z PASS /datum/unit_test/cable_powernets 0s +2022-11-01T15:28:23.2144353Z ##[endgroup] +2022-11-01T15:28:23.2296359Z ##[group]/datum/unit_test/card_mismatch +2022-11-01T15:28:23.2339244Z +2022-11-01T15:28:23.2339785Z PASS /datum/unit_test/card_mismatch 0s +2022-11-01T15:28:23.2340711Z ##[endgroup] +2022-11-01T15:28:23.3389441Z ##[group]/datum/unit_test/chain_pull_through_space +2022-11-01T15:28:23.3417372Z +2022-11-01T15:28:23.3428322Z PASS /datum/unit_test/chain_pull_through_space 0s +2022-11-01T15:28:23.3429414Z ##[endgroup] +2022-11-01T15:28:23.4797614Z ##[group]/datum/unit_test/chat_filter_sanity +2022-11-01T15:28:23.4802389Z +2022-11-01T15:28:23.4803303Z PASS /datum/unit_test/chat_filter_sanity 0s +2022-11-01T15:28:23.4803804Z ##[endgroup] +2022-11-01T15:28:23.4985708Z ##[group]/datum/unit_test/circuit_component_category +2022-11-01T15:28:23.4985973Z +2022-11-01T15:28:23.4986498Z PASS /datum/unit_test/circuit_component_category 0s +2022-11-01T15:28:23.4987054Z ##[endgroup] +2022-11-01T15:28:23.5170927Z ##[group]/datum/unit_test/closets +2022-11-01T15:28:25.4385541Z +2022-11-01T15:28:25.4386681Z PASS /datum/unit_test/closets 1.9s +2022-11-01T15:28:25.4387368Z ##[endgroup] +2022-11-01T15:28:28.6598884Z ##[group]/datum/unit_test/harm_punch +2022-11-01T15:28:28.7131885Z +2022-11-01T15:28:28.7132943Z PASS /datum/unit_test/harm_punch 0.1s +2022-11-01T15:28:28.7134837Z ##[endgroup] +2022-11-01T15:28:28.7421766Z ##[group]/datum/unit_test/harm_melee +2022-11-01T15:28:28.7933680Z +2022-11-01T15:28:28.7934808Z PASS /datum/unit_test/harm_melee 0s +2022-11-01T15:28:28.7935540Z ##[endgroup] +2022-11-01T15:28:28.8380921Z ##[group]/datum/unit_test/harm_different_damage +2022-11-01T15:28:28.8975633Z +2022-11-01T15:28:28.8976869Z PASS /datum/unit_test/harm_different_damage 0s +2022-11-01T15:28:28.8977671Z ##[endgroup] +2022-11-01T15:28:28.9761803Z ##[group]/datum/unit_test/attack_chain +2022-11-01T15:28:29.0318227Z +2022-11-01T15:28:29.0319454Z PASS /datum/unit_test/attack_chain 0.1s +2022-11-01T15:28:29.0320200Z ##[endgroup] +2022-11-01T15:28:29.0662718Z ##[group]/datum/unit_test/disarm +2022-11-01T15:28:29.1273517Z +2022-11-01T15:28:29.1275850Z PASS /datum/unit_test/disarm 0.1s +2022-11-01T15:28:29.1276795Z ##[endgroup] +2022-11-01T15:28:29.1606515Z ##[group]/datum/unit_test/component_duping +2022-11-01T15:28:29.1606753Z +2022-11-01T15:28:29.1607266Z PASS /datum/unit_test/component_duping 0s +2022-11-01T15:28:29.1607745Z ##[endgroup] +2022-11-01T15:28:29.1774627Z ##[group]/datum/unit_test/confusion_symptom +2022-11-01T15:28:29.2032018Z +2022-11-01T15:28:29.2033145Z PASS /datum/unit_test/confusion_symptom 0.1s +2022-11-01T15:28:29.2033987Z ##[endgroup] +2022-11-01T15:28:29.2246157Z ##[group]/datum/unit_test/connect_loc_basic +2022-11-01T15:28:29.2248367Z +2022-11-01T15:28:29.2249487Z PASS /datum/unit_test/connect_loc_basic 0s +2022-11-01T15:28:29.2250109Z ##[endgroup] +2022-11-01T15:28:29.2416396Z ##[group]/datum/unit_test/connect_loc_change_turf +2022-11-01T15:28:29.2424538Z +2022-11-01T15:28:29.2425333Z PASS /datum/unit_test/connect_loc_change_turf 0s +2022-11-01T15:28:29.2425972Z ##[endgroup] +2022-11-01T15:28:29.2592394Z ##[group]/datum/unit_test/connect_loc_multiple_on_turf +2022-11-01T15:28:29.2599395Z +2022-11-01T15:28:29.2599862Z PASS /datum/unit_test/connect_loc_multiple_on_turf 0s +2022-11-01T15:28:29.2600716Z ##[endgroup] +2022-11-01T15:28:29.2917858Z ##[group]/datum/unit_test/crayon_naming +2022-11-01T15:28:29.2996631Z +2022-11-01T15:28:29.2997310Z PASS /datum/unit_test/crayon_naming 0s +2022-11-01T15:28:29.2997930Z ##[endgroup] +2022-11-01T15:28:29.3177352Z ##[group]/datum/unit_test/dcs_get_id_from_arguments +2022-11-01T15:28:29.3178559Z +2022-11-01T15:28:29.3182903Z PASS /datum/unit_test/dcs_get_id_from_arguments 0s +2022-11-01T15:28:29.3183682Z ##[endgroup] +2022-11-01T15:28:29.3371899Z ##[group]/datum/unit_test/designs +2022-11-01T15:28:29.3438160Z +2022-11-01T15:28:29.3438713Z PASS /datum/unit_test/designs 0s +2022-11-01T15:28:29.3439280Z ##[endgroup] +2022-11-01T15:28:29.3630774Z ##[group]/datum/unit_test/dummy_spawn_species +2022-11-01T15:28:29.7865710Z +2022-11-01T15:28:29.7866984Z PASS /datum/unit_test/dummy_spawn_species 0.4s +2022-11-01T15:28:29.7868408Z ##[endgroup] +2022-11-01T15:28:30.2064941Z ##[group]/datum/unit_test/dummy_spawn_outfit +2022-11-01T15:28:30.2287943Z Job type /datum/job/ai could not be retrieved from SSjob +2022-11-01T15:28:30.5729399Z +2022-11-01T15:28:30.5730637Z PASS /datum/unit_test/dummy_spawn_outfit 0.3s +2022-11-01T15:28:30.5731452Z ##[endgroup] +2022-11-01T15:28:30.8929561Z ##[group]/datum/unit_test/dynamic_roundstart_ruleset_sanity +2022-11-01T15:28:30.8930214Z +2022-11-01T15:28:30.8933249Z PASS /datum/unit_test/dynamic_roundstart_ruleset_sanity 0s +2022-11-01T15:28:30.8933929Z ##[endgroup] +2022-11-01T15:28:30.9093619Z ##[group]/datum/unit_test/dynamic_unique_antag_flags +2022-11-01T15:28:30.9094243Z +2022-11-01T15:28:30.9097412Z PASS /datum/unit_test/dynamic_unique_antag_flags 0s +2022-11-01T15:28:30.9098086Z ##[endgroup] +2022-11-01T15:28:30.9259102Z ##[group]/datum/unit_test/egg_glands +2022-11-01T15:28:30.9738261Z +2022-11-01T15:28:30.9739529Z PASS /datum/unit_test/egg_glands 0s +2022-11-01T15:28:30.9742814Z ##[endgroup] +2022-11-01T15:28:30.9910488Z ##[group]/datum/unit_test/emoting +2022-11-01T15:28:31.0191020Z +2022-11-01T15:28:31.0192873Z PASS /datum/unit_test/emoting 0.1s +2022-11-01T15:28:31.0196009Z ##[endgroup] +2022-11-01T15:28:31.0470998Z ##[group]/datum/unit_test/food_edibility_check +2022-11-01T15:28:32.3907505Z +2022-11-01T15:28:32.3908587Z PASS /datum/unit_test/food_edibility_check 1.3s +2022-11-01T15:28:32.3909262Z ##[endgroup] +2022-11-01T15:28:33.7158865Z ##[group]/datum/unit_test/atmospheric_gas_transfer +2022-11-01T15:28:33.7169071Z +2022-11-01T15:28:33.7171453Z PASS /datum/unit_test/atmospheric_gas_transfer 0s +2022-11-01T15:28:33.7173553Z ##[endgroup] +2022-11-01T15:28:33.7346695Z ##[group]/datum/unit_test/get_turf_pixel +2022-11-01T15:28:33.7367134Z +2022-11-01T15:28:33.7368982Z PASS /datum/unit_test/get_turf_pixel 0s +2022-11-01T15:28:33.7371248Z ##[endgroup] +2022-11-01T15:28:33.7556559Z ##[group]/datum/unit_test/greyscale_item_icon_states +2022-11-01T15:28:33.7624830Z +2022-11-01T15:28:33.7626511Z PASS /datum/unit_test/greyscale_item_icon_states 0s +2022-11-01T15:28:33.7628685Z ##[endgroup] +2022-11-01T15:28:33.7811590Z ##[group]/datum/unit_test/greyscale_color_count +2022-11-01T15:28:33.7978824Z +2022-11-01T15:28:33.7981042Z PASS /datum/unit_test/greyscale_color_count 0s +2022-11-01T15:28:33.7981873Z ##[endgroup] +2022-11-01T15:28:33.8551069Z ##[group]/datum/unit_test/hallucination_icons +2022-11-01T15:28:34.1090174Z +2022-11-01T15:28:34.1096431Z PASS /datum/unit_test/hallucination_icons 0.3s +2022-11-01T15:28:34.1099789Z ##[endgroup] +2022-11-01T15:28:34.3281283Z ##[group]/datum/unit_test/heretic_knowledge +2022-11-01T15:28:34.3305016Z +2022-11-01T15:28:34.3306029Z PASS /datum/unit_test/heretic_knowledge 0s +2022-11-01T15:28:34.3306904Z ##[endgroup] +2022-11-01T15:28:34.3483924Z ##[group]/datum/unit_test/heretic_main_paths +2022-11-01T15:28:34.3484902Z +2022-11-01T15:28:34.3487952Z PASS /datum/unit_test/heretic_main_paths 0s +2022-11-01T15:28:34.3491126Z ##[endgroup] +2022-11-01T15:28:34.3668321Z ##[group]/datum/unit_test/heretic_rituals +2022-11-01T15:28:34.4513883Z +2022-11-01T15:28:34.4515231Z PASS /datum/unit_test/heretic_rituals 0.1s +2022-11-01T15:28:34.4518615Z ##[endgroup] +2022-11-01T15:28:34.5255676Z ##[group]/datum/unit_test/hanukkah_2123 +2022-11-01T15:28:34.5256380Z +2022-11-01T15:28:34.5258696Z PASS /datum/unit_test/hanukkah_2123 0s +2022-11-01T15:28:34.5306060Z ##[endgroup] +2022-11-01T15:28:34.5435626Z ##[group]/datum/unit_test/ramadan_2165 +2022-11-01T15:28:34.5435839Z +2022-11-01T15:28:34.5436316Z PASS /datum/unit_test/ramadan_2165 0s +2022-11-01T15:28:34.5436790Z ##[endgroup] +2022-11-01T15:28:34.5758281Z ##[group]/datum/unit_test/thanksgiving_2020 +2022-11-01T15:28:34.5758510Z +2022-11-01T15:28:34.5759790Z PASS /datum/unit_test/thanksgiving_2020 0s +2022-11-01T15:28:34.5760323Z ##[endgroup] +2022-11-01T15:28:34.5922636Z ##[group]/datum/unit_test/mother_3683 +2022-11-01T15:28:34.5923203Z +2022-11-01T15:28:34.5923668Z PASS /datum/unit_test/mother_3683 0s +2022-11-01T15:28:34.5924152Z ##[endgroup] +2022-11-01T15:28:34.6258731Z ##[group]/datum/unit_test/hello_2020 +2022-11-01T15:28:34.6258967Z +2022-11-01T15:28:34.6259461Z PASS /datum/unit_test/hello_2020 0s +2022-11-01T15:28:34.6260389Z ##[endgroup] +2022-11-01T15:28:34.6425516Z ##[group]/datum/unit_test/new_year_1983 +2022-11-01T15:28:34.6425720Z +2022-11-01T15:28:34.6426174Z PASS /datum/unit_test/new_year_1983 0s +2022-11-01T15:28:34.6426620Z ##[endgroup] +2022-11-01T15:28:34.6759224Z ##[group]/datum/unit_test/moth_week_2020 +2022-11-01T15:28:34.6792170Z +2022-11-01T15:28:34.6792723Z PASS /datum/unit_test/moth_week_2020 0s +2022-11-01T15:28:34.6793240Z ##[endgroup] +2022-11-01T15:28:34.6958289Z ##[group]/datum/unit_test/human_through_recycler +2022-11-01T15:28:34.7370291Z +2022-11-01T15:28:34.7371226Z PASS /datum/unit_test/human_through_recycler 0.1s +2022-11-01T15:28:34.7372112Z ##[endgroup] +2022-11-01T15:28:34.8623820Z ##[group]/datum/unit_test/hydroponics_extractor_storage +2022-11-01T15:28:34.8996006Z +2022-11-01T15:28:34.8996940Z PASS /datum/unit_test/hydroponics_extractor_storage 0s +2022-11-01T15:28:34.8997589Z ##[endgroup] +2022-11-01T15:28:34.9278188Z ##[group]/datum/unit_test/hydroponics_harvest +2022-11-01T15:28:35.0009791Z +2022-11-01T15:28:35.0010716Z PASS /datum/unit_test/hydroponics_harvest 0.1s +2022-11-01T15:28:35.0012013Z ##[endgroup] +2022-11-01T15:28:35.0747162Z ##[group]/datum/unit_test/hydroponics_self_mutation +2022-11-01T15:28:35.1406271Z +2022-11-01T15:28:35.1407332Z PASS /datum/unit_test/hydroponics_self_mutation 0.1s +2022-11-01T15:28:35.1408057Z ##[endgroup] +2022-11-01T15:28:35.2102485Z ##[group]/datum/unit_test/hydroponics_validate_genes +2022-11-01T15:28:35.2762621Z +2022-11-01T15:28:35.2763561Z PASS /datum/unit_test/hydroponics_validate_genes 0s +2022-11-01T15:28:35.2764288Z ##[endgroup] +2022-11-01T15:28:35.3749912Z ##[group]/datum/unit_test/defined_inhand_icon_states +2022-11-01T15:28:36.6110328Z Notice - Possible inhand icon matches found. It is best to be explicit with inhand sprite values. +2022-11-01T15:28:36.6111369Z /obj/item/clothing/accessory/pride does not have an inhand_icon_state value - Possible matching sprites for "pride" found in: 'icons/mob/inhands/weapons/hammers_lefthand.dmi' & 'icons/mob/inhands/weapons/hammers_righthand.dmi' +2022-11-01T15:28:36.6112643Z /obj/item/clothing/suit/caution does not have an inhand_icon_state value - Possible matching sprites for "caution" found in: 'icons/mob/inhands/equipment/custodial_lefthand.dmi' & 'icons/mob/inhands/equipment/custodial_righthand.dmi' +2022-11-01T15:28:36.6113827Z /obj/item/clothing/under/suit/sl does not have an inhand_icon_state value - Possible matching sprites for "sl_suit" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi' +2022-11-01T15:28:36.6114809Z /obj/item/clothing/head/collectable/paper does not have an inhand_icon_state value - Possible matching sprites for "paper" found in: 'icons/mob/inhands/items_lefthand.dmi' & 'icons/mob/inhands/items_righthand.dmi' +2022-11-01T15:28:36.6115778Z /obj/item/clothing/head/mod does not have an inhand_icon_state value - Possible matching sprites for "helmet" found in: 'icons/mob/inhands/clothing/hats_lefthand.dmi' & 'icons/mob/inhands/clothing/hats_righthand.dmi' +2022-11-01T15:28:36.6117382Z /obj/item/clothing/mask/animal/small/fox does not have an inhand_icon_state value - Possible matching sprites for "fox" found in: 'icons/mob/inhands/pets_held_rh.dmi' & 'icons/mob/inhands/pets_held_lh.dmi' +2022-11-01T15:28:36.6118311Z /obj/item/clothing/mask/animal/small/fox/cursed does not have an inhand_icon_state value - Possible matching sprites for "fox" found in: 'icons/mob/inhands/pets_held_rh.dmi' & 'icons/mob/inhands/pets_held_lh.dmi' +2022-11-01T15:28:36.6119323Z /obj/item/clothing/glasses/hud/health/sunglasses does not have an inhand_icon_state value - Possible matching sprites for "sunhudmed" found in: 'icons/mob/inhands/clothing/glasses_righthand.dmi' & 'icons/mob/inhands/clothing/glasses_lefthand.dmi' +2022-11-01T15:28:36.6120787Z /obj/item/clothing/glasses/hud/security/sunglasses does not have an inhand_icon_state value - Possible matching sprites for "sunhudsec" found in: 'icons/mob/inhands/clothing/glasses_righthand.dmi' & 'icons/mob/inhands/clothing/glasses_lefthand.dmi' +2022-11-01T15:28:36.6121863Z /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun does not have an inhand_icon_state value - Possible matching sprites for "syringegun" found in: 'icons/mob/inhands/weapons/guns_righthand.dmi' & 'icons/mob/inhands/weapons/guns_lefthand.dmi' +2022-11-01T15:28:36.6122899Z /obj/item/mecha_parts/mecha_equipment/generator does not have an inhand_icon_state value - Possible matching sprites for "tesla" found in: 'icons/mob/inhands/weapons/guns_righthand.dmi' & 'icons/mob/inhands/weapons/guns_lefthand.dmi' +2022-11-01T15:28:36.6124088Z /obj/item/storage/bag/ore does not have an inhand_icon_state value - Possible matching sprites for "satchel" found in: 'icons/mob/inhands/equipment/backpack_lefthand.dmi' & 'icons/mob/inhands/equipment/backpack_righthand.dmi' +2022-11-01T15:28:36.6125547Z /obj/item/storage/bag/ore/cyborg does not have an inhand_icon_state value - Possible matching sprites for "satchel" found in: 'icons/mob/inhands/equipment/backpack_lefthand.dmi' & 'icons/mob/inhands/equipment/backpack_righthand.dmi' +2022-11-01T15:28:36.6126550Z /obj/item/implant/emp does not have an inhand_icon_state value - Possible matching sprites for "emp" found in: 'icons/mob/inhands/equipment/security_righthand.dmi' & 'icons/mob/inhands/equipment/security_lefthand.dmi' +2022-11-01T15:28:36.6127486Z /obj/item/implant/uplink does not have an inhand_icon_state value - Possible matching sprites for "radio" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-01T15:28:36.6128467Z /obj/item/implant/uplink/precharged does not have an inhand_icon_state value - Possible matching sprites for "radio" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-01T15:28:36.6129445Z /obj/item/implant/uplink/starting does not have an inhand_icon_state value - Possible matching sprites for "radio" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-01T15:28:36.6130403Z /obj/item/melee/energy/blade does not have an inhand_icon_state value - Possible matching sprites for "blade" found in: 'icons/mob/inhands/weapons/swords_lefthand.dmi' & 'icons/mob/inhands/weapons/swords_righthand.dmi' +2022-11-01T15:28:36.6131355Z /obj/item/fireaxe does not have an inhand_icon_state value - Possible matching sprites for "fireaxe0" found in: 'icons/mob/inhands/weapons/axes_righthand.dmi' & 'icons/mob/inhands/weapons/axes_lefthand.dmi' +2022-11-01T15:28:36.6132532Z /obj/item/fireaxe/boneaxe does not have an inhand_icon_state value - Possible matching sprites for "bone_axe0" found in: 'icons/mob/inhands/weapons/axes_righthand.dmi' & 'icons/mob/inhands/weapons/axes_lefthand.dmi' +2022-11-01T15:28:36.6133828Z /obj/item/fireaxe/metal_h2_axe does not have an inhand_icon_state value - Possible matching sprites for "metalh2_axe0" found in: 'icons/mob/inhands/weapons/axes_righthand.dmi' & 'icons/mob/inhands/weapons/axes_lefthand.dmi' +2022-11-01T15:28:36.6134950Z /obj/item/reagent_containers/cup/soda_cans/cola does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-01T15:28:36.6135967Z /obj/item/reagent_containers/cup/soda_cans/tonic does not have an inhand_icon_state value - Possible matching sprites for "tonic" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-01T15:28:36.6137013Z /obj/item/reagent_containers/cup/soda_cans/sodawater does not have an inhand_icon_state value - Possible matching sprites for "sodawater" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-01T15:28:36.6138306Z /obj/item/reagent_containers/cup/soda_cans/lemon_lime does not have an inhand_icon_state value - Possible matching sprites for "lemon-lime" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-01T15:28:36.6139346Z /obj/item/reagent_containers/cup/soda_cans/space_up does not have an inhand_icon_state value - Possible matching sprites for "space-up" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-01T15:28:36.6140663Z /obj/item/reagent_containers/cup/soda_cans/starkist does not have an inhand_icon_state value - Possible matching sprites for "starkist" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-01T15:28:36.6142092Z /obj/item/reagent_containers/cup/soda_cans/space_mountain_wind does not have an inhand_icon_state value - Possible matching sprites for "space_mountain_wind" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-01T15:28:36.6143256Z /obj/item/reagent_containers/cup/soda_cans/thirteenloko does not have an inhand_icon_state value - Possible matching sprites for "thirteen_loko" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-01T15:28:36.6144724Z /obj/item/reagent_containers/cup/soda_cans/dr_gibb does not have an inhand_icon_state value - Possible matching sprites for "dr_gibb" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-01T15:28:36.6146202Z /obj/item/reagent_containers/cup/soda_cans/pwr_game does not have an inhand_icon_state value - Possible matching sprites for "purple_can" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-01T15:28:36.6147210Z /obj/item/reagent_containers/cup/glass/coffee does not have an inhand_icon_state value - Possible matching sprites for "coffee" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-01T15:28:36.6148208Z /obj/item/reagent_containers/chem_pack does not have an inhand_icon_state value - Possible matching sprites for "chempack" found in: 'icons/mob/inhands/equipment/backpack_lefthand.dmi' & 'icons/mob/inhands/equipment/backpack_righthand.dmi' +2022-11-01T15:28:36.6149458Z /obj/item/sbeacondrop does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-01T15:28:36.6150700Z /obj/item/sbeacondrop/bomb does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-01T15:28:36.6152025Z /obj/item/sbeacondrop/emp does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-01T15:28:36.6153053Z /obj/item/sbeacondrop/powersink does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-01T15:28:36.6154086Z /obj/item/sbeacondrop/clownbomb does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-01T15:28:36.6155452Z /obj/item/stack/medical/bruise_pack does not have an inhand_icon_state value - Possible matching sprites for "brutepack" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2022-11-01T15:28:36.6156679Z /obj/item/stack/medical/ointment does not have an inhand_icon_state value - Possible matching sprites for "ointment" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2022-11-01T15:28:36.6157638Z /obj/item/minespawner does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-01T15:28:36.6158596Z /obj/item/organ/internal/heart/gland/blood does not have an inhand_icon_state value - Possible matching sprites for "egg" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi' +2022-11-01T15:28:36.6159550Z /obj/item/organ/internal/heart/gland/egg does not have an inhand_icon_state value - Possible matching sprites for "egg" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi' +2022-11-01T15:28:36.6160683Z /obj/item/organ/internal/heart/gland/quantum does not have an inhand_icon_state value - Possible matching sprites for "emp" found in: 'icons/mob/inhands/equipment/security_righthand.dmi' & 'icons/mob/inhands/equipment/security_lefthand.dmi' +2022-11-01T15:28:36.6161755Z /obj/item/organ/internal/heart/gland/trauma does not have an inhand_icon_state value - Possible matching sprites for "emp" found in: 'icons/mob/inhands/equipment/security_righthand.dmi' & 'icons/mob/inhands/equipment/security_lefthand.dmi' +2022-11-01T15:28:36.6162756Z /obj/item/boxcutter does not have an inhand_icon_state value - Possible matching sprites for "boxcutter" found in: 'icons/mob/inhands/equipment/boxcutter_lefthand.dmi' & 'icons/mob/inhands/equipment/boxcutter_righthand.dmi' +2022-11-01T15:28:36.6163727Z /obj/item/pushbroom does not have an inhand_icon_state value - Possible matching sprites for "broom0" found in: 'icons/mob/inhands/equipment/custodial_lefthand.dmi' & 'icons/mob/inhands/equipment/custodial_righthand.dmi' +2022-11-01T15:28:36.6164922Z /obj/item/pushbroom/cyborg does not have an inhand_icon_state value - Possible matching sprites for "broom0" found in: 'icons/mob/inhands/equipment/custodial_lefthand.dmi' & 'icons/mob/inhands/equipment/custodial_righthand.dmi' +2022-11-01T15:28:36.6165928Z /obj/item/chainsaw does not have an inhand_icon_state value - Possible matching sprites for "chainsaw_off" found in: 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi' & 'icons/mob/inhands/weapons/chainsaw_righthand.dmi' +2022-11-01T15:28:36.6166916Z /obj/item/chainsaw/doomslayer does not have an inhand_icon_state value - Possible matching sprites for "chainsaw_off" found in: 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi' & 'icons/mob/inhands/weapons/chainsaw_righthand.dmi' +2022-11-01T15:28:36.6167902Z /obj/item/toy/talking/codex_gigas does not have an inhand_icon_state value - Possible matching sprites for "demonomicon" found in: 'icons/mob/inhands/items/books_righthand.dmi' & 'icons/mob/inhands/items/books_lefthand.dmi' +2022-11-01T15:28:36.6169082Z /obj/item/toy/figure/chef does not have an inhand_icon_state value - Possible matching sprites for "chef" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi' +2022-11-01T15:28:36.6170034Z /obj/item/toy/figure/clown does not have an inhand_icon_state value - Possible matching sprites for "clown" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi' +2022-11-01T15:28:36.6171029Z /obj/item/toy/figure/janitor does not have an inhand_icon_state value - Possible matching sprites for "janitor" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi' +2022-11-01T15:28:36.6172150Z /obj/item/food/candy does not have an inhand_icon_state value - Possible matching sprites for "candy" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi' +2022-11-01T15:28:36.6173251Z /obj/item/food/chips does not have an inhand_icon_state value - Possible matching sprites for "chips" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi' +2022-11-01T15:28:36.6174826Z /obj/item/kitchen/fork does not have an inhand_icon_state value - Possible matching sprites for "fork" found in: 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' & 'icons/mob/inhands/equipment/kitchen_righthand.dmi' +2022-11-01T15:28:36.6175832Z /obj/item/kitchen/spoon does not have an inhand_icon_state value - Possible matching sprites for "spoon" found in: 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' & 'icons/mob/inhands/equipment/kitchen_righthand.dmi' +2022-11-01T15:28:36.6176836Z /obj/item/kitchen/spoon/plastic does not have an inhand_icon_state value - Possible matching sprites for "plastic_spoon" found in: 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' & 'icons/mob/inhands/equipment/kitchen_righthand.dmi' +2022-11-01T15:28:36.6178144Z /obj/item/book/codex_gigas does not have an inhand_icon_state value - Possible matching sprites for "demonomicon" found in: 'icons/mob/inhands/items/books_righthand.dmi' & 'icons/mob/inhands/items/books_lefthand.dmi' +2022-11-01T15:28:36.6179305Z /obj/item/pitchfork does not have an inhand_icon_state value - Possible matching sprites for "pitchfork0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi' +2022-11-01T15:28:36.6180738Z /obj/item/construction/rcd does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-11-01T15:28:36.6181781Z /obj/item/construction/rcd/borg does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-11-01T15:28:36.6182846Z /obj/item/construction/rcd/loaded does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-11-01T15:28:36.6184070Z /obj/item/construction/rcd/loaded/upgraded does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-11-01T15:28:36.6185254Z /obj/item/construction/rcd/internal does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-11-01T15:28:36.6186373Z /obj/item/construction/rld does not have an inhand_icon_state value - Possible matching sprites for "rld-5" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-11-01T15:28:36.6187326Z /obj/item/construction/rld/mini does not have an inhand_icon_state value - Possible matching sprites for "rld-5" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-11-01T15:28:36.6188731Z /obj/item/rcd_ammo does not have an inhand_icon_state value - Possible matching sprites for "rcdammo" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-11-01T15:28:36.6190038Z /obj/item/rcd_ammo/large does not have an inhand_icon_state value - Possible matching sprites for "rcdammo" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-11-01T15:28:36.6191075Z /obj/item/godstaff does not have an inhand_icon_state value - Possible matching sprites for "godstaff-red" found in: 'icons/mob/inhands/weapons/staves_lefthand.dmi' & 'icons/mob/inhands/weapons/staves_righthand.dmi' +2022-11-01T15:28:36.6192277Z /obj/item/godstaff/red does not have an inhand_icon_state value - Possible matching sprites for "godstaff-red" found in: 'icons/mob/inhands/weapons/staves_lefthand.dmi' & 'icons/mob/inhands/weapons/staves_righthand.dmi' +2022-11-01T15:28:36.6193619Z /obj/item/godstaff/blue does not have an inhand_icon_state value - Possible matching sprites for "godstaff-blue" found in: 'icons/mob/inhands/weapons/staves_lefthand.dmi' & 'icons/mob/inhands/weapons/staves_righthand.dmi' +2022-11-01T15:28:36.6194578Z /obj/item/pipe_dispenser does not have an inhand_icon_state value - Possible matching sprites for "rpd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-11-01T15:28:36.6195584Z /obj/item/singularityhammer does not have an inhand_icon_state value - Possible matching sprites for "singularity_hammer0" found in: 'icons/mob/inhands/weapons/hammers_lefthand.dmi' & 'icons/mob/inhands/weapons/hammers_righthand.dmi' +2022-11-01T15:28:36.6196678Z /obj/item/mjollnir does not have an inhand_icon_state value - Possible matching sprites for "mjollnir0" found in: 'icons/mob/inhands/weapons/hammers_lefthand.dmi' & 'icons/mob/inhands/weapons/hammers_righthand.dmi' +2022-11-01T15:28:36.6198710Z /obj/item/spear does not have an inhand_icon_state value - Possible matching sprites for "spearglass0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi' +2022-11-01T15:28:36.6199875Z /obj/item/spear/explosive does not have an inhand_icon_state value - Possible matching sprites for "spearbomb0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi' +2022-11-01T15:28:36.6202418Z /obj/item/spear/grey_tide does not have an inhand_icon_state value - Possible matching sprites for "spearglass0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi' +2022-11-01T15:28:36.6203520Z /obj/item/spear/bonespear does not have an inhand_icon_state value - Possible matching sprites for "bone_spear0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi' +2022-11-01T15:28:36.6204533Z /obj/item/spear/bamboospear does not have an inhand_icon_state value - Possible matching sprites for "bamboo_spear0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi' +2022-11-01T15:28:36.6205666Z /obj/item/trash/candy does not have an inhand_icon_state value - Possible matching sprites for "candy" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi' +2022-11-01T15:28:36.6206576Z /obj/item/trash/chips does not have an inhand_icon_state value - Possible matching sprites for "chips" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi' +2022-11-01T15:28:36.6207473Z /obj/item/trash/can does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-01T15:28:36.6208487Z /obj/item/trash/can/food does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-01T15:28:36.6209479Z /obj/item/highfrequencyblade does not have an inhand_icon_state value - Possible matching sprites for "hfrequency0" found in: 'icons/mob/inhands/weapons/swords_lefthand.dmi' & 'icons/mob/inhands/weapons/swords_righthand.dmi' +2022-11-01T15:28:36.6210481Z /obj/item/highfrequencyblade/wizard does not have an inhand_icon_state value - Possible matching sprites for "hfrequency0" found in: 'icons/mob/inhands/weapons/swords_lefthand.dmi' & 'icons/mob/inhands/weapons/swords_righthand.dmi' +2022-11-01T15:28:36.6211474Z /obj/item/borg/sight/meson does not have an inhand_icon_state value - Possible matching sprites for "meson" found in: 'icons/mob/inhands/clothing/glasses_righthand.dmi' & 'icons/mob/inhands/clothing/glasses_lefthand.dmi' +2022-11-01T15:28:36.6212716Z /obj/item/ammo_casing/magic/hook does not have an inhand_icon_state value - Possible matching sprites for "hook" found in: 'icons/mob/inhands/weapons/melee_righthand.dmi' & 'icons/mob/inhands/weapons/melee_lefthand.dmi' +2022-11-01T15:28:36.6213695Z /obj/item/ammo_casing/magic/hook/bounty does not have an inhand_icon_state value - Possible matching sprites for "hook" found in: 'icons/mob/inhands/weapons/melee_righthand.dmi' & 'icons/mob/inhands/weapons/melee_lefthand.dmi' +2022-11-01T15:28:36.6214670Z /obj/item/harmalarm does not have an inhand_icon_state value - Possible matching sprites for "megaphone" found in: 'icons/mob/inhands/items/megaphone_lefthand.dmi' & 'icons/mob/inhands/items/megaphone_righthand.dmi' +2022-11-01T15:28:36.6215804Z /obj/item/abductor_machine_beacon does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-01T15:28:36.6216917Z /obj/item/abductor_machine_beacon/chem_dispenser does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-01T15:28:36.6217923Z /obj/item/grown/carbon_rose does not have an inhand_icon_state value - Possible matching sprites for "carbonrose" found in: 'icons/mob/inhands/weapons/plants_righthand.dmi' & 'icons/mob/inhands/weapons/plants_lefthand.dmi' +2022-11-01T15:28:36.6219079Z /obj/item/paint_palette does not have an inhand_icon_state value - Possible matching sprites for "palette" found in: 'icons/mob/inhands/equipment/palette_righthand.dmi' & 'icons/mob/inhands/equipment/palette_lefthand.dmi' +2022-11-01T15:28:36.6220238Z /obj/item/surprise_egg does not have an inhand_icon_state value - Possible matching sprites for "egg" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi' +2022-11-01T15:28:36.6221390Z /obj/item/experi_scanner does not have an inhand_icon_state value - Possible matching sprites for "experiscanner" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-01T15:28:36.6222338Z /obj/item/fishing_hook does not have an inhand_icon_state value - Possible matching sprites for "hook" found in: 'icons/mob/inhands/weapons/melee_righthand.dmi' & 'icons/mob/inhands/weapons/melee_lefthand.dmi' +2022-11-01T15:28:36.6223438Z /obj/item/cursed_katana does not have an inhand_icon_state value - Possible matching sprites for "cursed_katana" found in: 'icons/mob/inhands/weapons/swords_lefthand.dmi' & 'icons/mob/inhands/weapons/swords_righthand.dmi' +2022-11-01T15:28:36.6224409Z /obj/item/guardiancreator/tech does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2022-11-01T15:28:36.6225422Z /obj/item/guardiancreator/tech/choose does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2022-11-01T15:28:36.6226453Z /obj/item/guardiancreator/tech/choose/traitor does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2022-11-01T15:28:36.6227485Z /obj/item/guardiancreator/tech/choose/dextrous does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2022-11-01T15:28:36.6228666Z /obj/item/mod/module/welding does not have an inhand_icon_state value - Possible matching sprites for "welding" found in: 'icons/mob/inhands/clothing/masks_lefthand.dmi' & 'icons/mob/inhands/clothing/masks_righthand.dmi' +2022-11-01T15:28:36.6229814Z /obj/item/mod/module/mister does not have an inhand_icon_state value - Possible matching sprites for "mister" found in: 'icons/mob/inhands/equipment/mister_righthand.dmi' & 'icons/mob/inhands/equipment/mister_lefthand.dmi' +2022-11-01T15:28:36.6230969Z /obj/item/mod/module/mister/atmos does not have an inhand_icon_state value - Possible matching sprites for "mister" found in: 'icons/mob/inhands/equipment/mister_righthand.dmi' & 'icons/mob/inhands/equipment/mister_lefthand.dmi' +2022-11-01T15:28:36.6232420Z /obj/item/mod/module/jetpack does not have an inhand_icon_state value - Possible matching sprites for "jetpack" found in: 'icons/mob/inhands/equipment/jetpacks_lefthand.dmi' & 'icons/mob/inhands/equipment/jetpacks_righthand.dmi' +2022-11-01T15:28:36.6234473Z /obj/item/mod/module/flashlight does not have an inhand_icon_state value - Possible matching sprites for "flashlight" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-01T15:28:36.6235798Z /obj/item/mod/module/stamp does not have an inhand_icon_state value - Possible matching sprites for "stamp" found in: 'icons/mob/inhands/items_lefthand.dmi' & 'icons/mob/inhands/items_righthand.dmi' +2022-11-01T15:28:36.6236873Z /obj/item/mod/module/holster does not have an inhand_icon_state value - Possible matching sprites for "holster" found in: 'icons/mob/inhands/equipment/belt_lefthand.dmi' & 'icons/mob/inhands/equipment/belt_righthand.dmi' +2022-11-01T15:28:36.6237940Z /obj/item/mod/module/megaphone does not have an inhand_icon_state value - Possible matching sprites for "megaphone" found in: 'icons/mob/inhands/items/megaphone_lefthand.dmi' & 'icons/mob/inhands/items/megaphone_righthand.dmi' +2022-11-01T15:28:36.6239527Z /obj/item/mod/module/drill does not have an inhand_icon_state value - Possible matching sprites for "drill" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-11-01T15:28:36.6240615Z /obj/item/mod/module/tem does not have an inhand_icon_state value - Possible matching sprites for "chronogun" found in: 'icons/mob/inhands/weapons/guns_righthand.dmi' & 'icons/mob/inhands/weapons/guns_lefthand.dmi' +2022-11-01T15:28:36.6241586Z /obj/item/bonesetter does not have an inhand_icon_state value - Possible matching sprites for "bonesetter" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2022-11-01T15:28:36.6242563Z /obj/item/blood_filter does not have an inhand_icon_state value - Possible matching sprites for "bloodfilter" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2022-11-01T15:28:36.6243567Z /obj/item/mecha_ammo/flashbang does not have an inhand_icon_state value - Possible matching sprites for "flashbang" found in: 'icons/mob/inhands/equipment/security_righthand.dmi' & 'icons/mob/inhands/equipment/security_lefthand.dmi' +2022-11-01T15:28:36.6243984Z +2022-11-01T15:28:36.6244251Z PASS /datum/unit_test/defined_inhand_icon_states 1.3s +2022-11-01T15:28:36.6245107Z ##[endgroup] +2022-11-01T15:28:38.3781123Z ##[group]/datum/unit_test/keybinding_init +2022-11-01T15:28:38.3781642Z +2022-11-01T15:28:38.3782256Z PASS /datum/unit_test/keybinding_init 0s +2022-11-01T15:28:38.3782848Z ##[endgroup] +2022-11-01T15:28:38.3952800Z ##[group]/datum/unit_test/knockoff_component +2022-11-01T15:28:38.4583090Z +2022-11-01T15:28:38.4584605Z PASS /datum/unit_test/knockoff_component 0.1s +2022-11-01T15:28:38.4585463Z ##[endgroup] +2022-11-01T15:28:38.5388034Z ##[group]/datum/unit_test/limbsanity +2022-11-01T15:28:38.6201426Z +2022-11-01T15:28:38.6202784Z PASS /datum/unit_test/limbsanity 0.1s +2022-11-01T15:28:38.6203543Z ##[endgroup] +2022-11-01T15:28:38.6375016Z ##[group]/datum/unit_test/load_map_security +2022-11-01T15:28:38.6378905Z map directory not in whitelist: data/load_map_security_temp for map runtimestation +2022-11-01T15:28:38.6380282Z +2022-11-01T15:28:38.6381773Z PASS /datum/unit_test/load_map_security 0s +2022-11-01T15:28:38.6382439Z ##[endgroup] +2022-11-01T15:28:38.6552883Z ##[group]/datum/unit_test/machine_disassembly +2022-11-01T15:28:38.6594171Z +2022-11-01T15:28:38.6595097Z PASS /datum/unit_test/machine_disassembly 0s +2022-11-01T15:28:38.6595719Z ##[endgroup] +2022-11-01T15:28:38.6872178Z ##[group]/datum/unit_test/mecha_damage +2022-11-01T15:28:38.7397615Z +2022-11-01T15:28:38.7398654Z PASS /datum/unit_test/mecha_damage 0.1s +2022-11-01T15:28:38.7399283Z ##[endgroup] +2022-11-01T15:28:38.7754903Z ##[group]/datum/unit_test/test_human_base +2022-11-01T15:28:38.8529341Z +2022-11-01T15:28:38.8530478Z PASS /datum/unit_test/test_human_base 0.1s +2022-11-01T15:28:38.8531256Z ##[endgroup] +2022-11-01T15:28:38.9752946Z ##[group]/datum/unit_test/test_human_bone +2022-11-01T15:28:39.0547873Z +2022-11-01T15:28:39.0550271Z PASS /datum/unit_test/test_human_bone 0.1s +2022-11-01T15:28:39.0551284Z ##[endgroup] +2022-11-01T15:28:39.1298729Z ##[group]/datum/unit_test/merge_type +2022-11-01T15:28:39.1300463Z +2022-11-01T15:28:39.1301413Z PASS /datum/unit_test/merge_type 0s +2022-11-01T15:28:39.1302403Z ##[endgroup] +2022-11-01T15:28:39.1477365Z ##[group]/datum/unit_test/metabolization +2022-11-01T15:28:39.3901954Z +2022-11-01T15:28:39.3903433Z PASS /datum/unit_test/metabolization 0.2s +2022-11-01T15:28:39.3906497Z ##[endgroup] +2022-11-01T15:28:39.7294447Z ##[group]/datum/unit_test/on_mob_end_metabolize +2022-11-01T15:28:39.7598821Z +2022-11-01T15:28:39.7600420Z PASS /datum/unit_test/on_mob_end_metabolize 0s +2022-11-01T15:28:39.7649553Z ##[endgroup] +2022-11-01T15:28:39.7835943Z ##[group]/datum/unit_test/addictions +2022-11-01T15:28:39.8761920Z +2022-11-01T15:28:39.8763025Z PASS /datum/unit_test/addictions 0.1s +2022-11-01T15:28:39.8764090Z ##[endgroup] +2022-11-01T15:28:39.9657360Z ##[group]/datum/unit_test/actions_moved_on_mind_transfer +2022-11-01T15:28:39.9971522Z +2022-11-01T15:28:39.9972744Z PASS /datum/unit_test/actions_moved_on_mind_transfer 0s +2022-11-01T15:28:39.9974074Z ##[endgroup] +2022-11-01T15:28:40.0547546Z ##[group]/datum/unit_test/mob_faction +2022-11-01T15:28:44.4337194Z +2022-11-01T15:28:44.4338995Z PASS /datum/unit_test/mob_faction 4.4s +2022-11-01T15:28:44.4343946Z ##[endgroup] +2022-11-01T15:28:50.4570438Z ##[group]/datum/unit_test/mob_spawn +2022-11-01T15:28:50.4788560Z +2022-11-01T15:28:50.4789841Z PASS /datum/unit_test/mob_spawn 0s +2022-11-01T15:28:50.4791361Z ##[endgroup] +2022-11-01T15:28:50.6427929Z ##[group]/datum/unit_test/modsuit_checks +2022-11-01T15:28:50.8774698Z +2022-11-01T15:28:50.8776366Z PASS /datum/unit_test/modsuit_checks 0.2s +2022-11-01T15:28:50.8777936Z ##[endgroup] +2022-11-01T15:28:51.1124046Z ##[group]/datum/unit_test/modular_map_loader +2022-11-01T15:28:51.1141260Z +2022-11-01T15:28:51.1142098Z PASS /datum/unit_test/modular_map_loader 0s +2022-11-01T15:28:51.1142848Z ##[endgroup] +2022-11-01T15:28:51.1326741Z ##[group]/datum/unit_test/mouse_bite_cable +2022-11-01T15:28:51.1380480Z +2022-11-01T15:28:51.1381073Z PASS /datum/unit_test/mouse_bite_cable 0s +2022-11-01T15:28:51.1381752Z ##[endgroup] +2022-11-01T15:28:51.1577018Z ##[group]/datum/unit_test/novaflower_burn +2022-11-01T15:28:51.2169264Z +2022-11-01T15:28:51.2170162Z PASS /datum/unit_test/novaflower_burn 0.1s +2022-11-01T15:28:51.2170901Z ##[endgroup] +2022-11-01T15:28:51.2996852Z ##[group]/datum/unit_test/ntnetwork +2022-11-01T15:28:51.3019053Z +2022-11-01T15:28:51.3019857Z PASS /datum/unit_test/ntnetwork 0.1s +2022-11-01T15:28:51.3020531Z ##[endgroup] +2022-11-01T15:28:51.3196087Z ##[group]/datum/unit_test/nuke_cinematic +2022-11-01T15:28:56.0755977Z +2022-11-01T15:28:56.0763029Z PASS /datum/unit_test/nuke_cinematic 4.7s +2022-11-01T15:28:56.0764783Z ##[endgroup] +2022-11-01T15:28:56.3446321Z ##[group]/datum/unit_test/objectives_category +2022-11-01T15:28:56.3446835Z +2022-11-01T15:28:56.3447470Z PASS /datum/unit_test/objectives_category 0s +2022-11-01T15:28:56.3448136Z ##[endgroup] +2022-11-01T15:28:56.3614737Z ##[group]/datum/unit_test/operating_table +2022-11-01T15:28:56.4176620Z +2022-11-01T15:28:56.4177598Z PASS /datum/unit_test/operating_table 0.1s +2022-11-01T15:28:56.4178689Z ##[endgroup] +2022-11-01T15:28:56.4981266Z ##[group]/datum/unit_test/outfit_sanity +2022-11-01T15:29:06.6657414Z +2022-11-01T15:29:06.6658439Z PASS /datum/unit_test/outfit_sanity 10.2s +2022-11-01T15:29:06.6659196Z ##[endgroup] +2022-11-01T15:29:16.7908070Z ##[group]/datum/unit_test/paintings +2022-11-01T15:29:16.8212273Z +2022-11-01T15:29:16.8213346Z PASS /datum/unit_test/paintings 0.1s +2022-11-01T15:29:16.8214069Z ##[endgroup] +2022-11-01T15:29:16.8389425Z ##[group]/datum/unit_test/pills +2022-11-01T15:29:16.8676028Z +2022-11-01T15:29:16.8677434Z PASS /datum/unit_test/pills 0s +2022-11-01T15:29:16.8678165Z ##[endgroup] +2022-11-01T15:29:16.9417567Z ##[group]/datum/unit_test/plane_double_transform +2022-11-01T15:29:16.9735002Z +2022-11-01T15:29:16.9735721Z PASS /datum/unit_test/plane_double_transform 0s +2022-11-01T15:29:16.9736359Z ##[endgroup] +2022-11-01T15:29:17.0062562Z ##[group]/datum/unit_test/plane_dupe_detector +2022-11-01T15:29:17.0065142Z +2022-11-01T15:29:17.0067978Z PASS /datum/unit_test/plane_dupe_detector 0s +2022-11-01T15:29:17.0071640Z ##[endgroup] +2022-11-01T15:29:17.0244509Z ##[group]/datum/unit_test/plantgrowth +2022-11-01T15:29:17.0776528Z +2022-11-01T15:29:17.0779718Z PASS /datum/unit_test/plantgrowth 0s +2022-11-01T15:29:17.0781279Z ##[endgroup] +2022-11-01T15:29:17.0965505Z ##[group]/datum/unit_test/preference_species +2022-11-01T15:29:17.0966443Z +2022-11-01T15:29:17.0969864Z PASS /datum/unit_test/preference_species 0s +2022-11-01T15:29:17.0973093Z ##[endgroup] +2022-11-01T15:29:17.1152354Z ##[group]/datum/unit_test/preferences_implement_everything +2022-11-01T15:29:23.4577951Z +2022-11-01T15:29:23.4578850Z PASS /datum/unit_test/preferences_implement_everything 6.3s +2022-11-01T15:29:23.4579521Z ##[endgroup] +2022-11-01T15:29:29.7830207Z ##[group]/datum/unit_test/preferences_valid_savefile_key +2022-11-01T15:29:29.7830930Z +2022-11-01T15:29:29.7833510Z PASS /datum/unit_test/preferences_valid_savefile_key 0s +2022-11-01T15:29:29.7834275Z ##[endgroup] +2022-11-01T15:29:29.8033816Z ##[group]/datum/unit_test/preferences_valid_main_feature_name +2022-11-01T15:29:29.8034550Z +2022-11-01T15:29:29.8035744Z PASS /datum/unit_test/preferences_valid_main_feature_name 0s +2022-11-01T15:29:29.8089387Z ##[endgroup] +2022-11-01T15:29:29.8234720Z ##[group]/datum/unit_test/projectile_movetypes +2022-11-01T15:29:29.8234940Z +2022-11-01T15:29:29.8235533Z PASS /datum/unit_test/projectile_movetypes 0s +2022-11-01T15:29:29.8236221Z ##[endgroup] +2022-11-01T15:29:29.8415787Z ##[group]/datum/unit_test/gun_go_bang +2022-11-01T15:29:29.9160628Z +2022-11-01T15:29:29.9161545Z PASS /datum/unit_test/gun_go_bang 0.1s +2022-11-01T15:29:29.9162229Z ##[endgroup] +2022-11-01T15:29:30.0035502Z ##[group]/datum/unit_test/quirk_icons +2022-11-01T15:29:30.0035718Z +2022-11-01T15:29:30.0036645Z PASS /datum/unit_test/quirk_icons 0s +2022-11-01T15:29:30.0037121Z ##[endgroup] +2022-11-01T15:29:30.0231538Z ##[group]/datum/unit_test/range_return +2022-11-01T15:29:30.0231750Z +2022-11-01T15:29:30.0232212Z PASS /datum/unit_test/range_return 0s +2022-11-01T15:29:30.0232658Z ##[endgroup] +2022-11-01T15:29:30.0427797Z ##[group]/datum/unit_test/frame_stacking +2022-11-01T15:29:30.1020458Z +2022-11-01T15:29:30.1021324Z PASS /datum/unit_test/frame_stacking 0.1s +2022-11-01T15:29:30.1022036Z ##[endgroup] +2022-11-01T15:29:30.1824738Z ##[group]/datum/unit_test/reagent_id_typos +2022-11-01T15:29:30.1842378Z +2022-11-01T15:29:30.1842930Z PASS /datum/unit_test/reagent_id_typos 0s +2022-11-01T15:29:30.1843838Z ##[endgroup] +2022-11-01T15:29:30.2065945Z ##[group]/datum/unit_test/reagent_mob_expose +2022-11-01T15:29:30.2431485Z +2022-11-01T15:29:30.2432396Z PASS /datum/unit_test/reagent_mob_expose 0s +2022-11-01T15:29:30.2433748Z ##[endgroup] +2022-11-01T15:29:30.2736664Z ##[group]/datum/unit_test/reagent_mob_procs +2022-11-01T15:29:30.3087817Z +2022-11-01T15:29:30.3088677Z PASS /datum/unit_test/reagent_mob_procs 0.1s +2022-11-01T15:29:30.3089382Z ##[endgroup] +2022-11-01T15:29:30.3347974Z ##[group]/datum/unit_test/reagent_names +2022-11-01T15:29:31.2354819Z +2022-11-01T15:29:31.2355678Z PASS /datum/unit_test/reagent_names 0.9s +2022-11-01T15:29:31.2356318Z ##[endgroup] +2022-11-01T15:29:32.1042828Z ##[group]/datum/unit_test/reagent_recipe_collisions +2022-11-01T15:29:32.5727294Z +2022-11-01T15:29:32.5728917Z PASS /datum/unit_test/reagent_recipe_collisions 0.4s +2022-11-01T15:29:32.5730155Z ##[endgroup] +2022-11-01T15:29:32.9927755Z ##[group]/datum/unit_test/reagent_transfer +2022-11-01T15:29:32.9934109Z +2022-11-01T15:29:32.9935981Z PASS /datum/unit_test/reagent_transfer 0s +2022-11-01T15:29:32.9936895Z ##[endgroup] +2022-11-01T15:29:33.0126783Z ##[group]/datum/unit_test/stop_drop_and_roll +2022-11-01T15:29:33.0390175Z +2022-11-01T15:29:33.0391562Z PASS /datum/unit_test/stop_drop_and_roll 0s +2022-11-01T15:29:33.0394218Z ##[endgroup] +2022-11-01T15:29:33.0646804Z ##[group]/datum/unit_test/container_resist +2022-11-01T15:29:33.1054797Z +2022-11-01T15:29:33.1056167Z PASS /datum/unit_test/container_resist 0.1s +2022-11-01T15:29:33.1057687Z ##[endgroup] +2022-11-01T15:29:33.1496944Z ##[group]/datum/unit_test/get_message_mods +2022-11-01T15:29:33.1778888Z +2022-11-01T15:29:33.1780246Z PASS /datum/unit_test/get_message_mods 0s +2022-11-01T15:29:33.1781311Z ##[endgroup] +2022-11-01T15:29:33.2061026Z ##[group]/datum/unit_test/say_signal +2022-11-01T15:29:33.2078006Z +2022-11-01T15:29:33.2079823Z PASS /datum/unit_test/say_signal 0s +2022-11-01T15:29:33.2083007Z ##[endgroup] +2022-11-01T15:29:33.2288010Z ##[group]/datum/unit_test/screenshot_antag_icons +2022-11-01T15:29:33.2307183Z screenshot_antag_icons_fugitive was put in data/screenshots_new +2022-11-01T15:29:33.2317601Z screenshot_antag_icons_loneoperative was put in data/screenshots_new +2022-11-01T15:29:33.2741726Z screenshot_antag_icons_sentiencepotionspawn was put in data/screenshots_new +2022-11-01T15:29:33.2757069Z screenshot_antag_icons_traitor was put in data/screenshots_new +2022-11-01T15:29:33.3311410Z screenshot_antag_icons_malfai was put in data/screenshots_new +2022-11-01T15:29:33.3356755Z screenshot_antag_icons_bloodbrother was put in data/screenshots_new +2022-11-01T15:29:33.3365772Z screenshot_antag_icons_changeling was put in data/screenshots_new +2022-11-01T15:29:33.3430251Z screenshot_antag_icons_heretic was put in data/screenshots_new +2022-11-01T15:29:33.3445326Z screenshot_antag_icons_wizard was put in data/screenshots_new +2022-11-01T15:29:33.3487169Z screenshot_antag_icons_cultist was put in data/screenshots_new +2022-11-01T15:29:33.3511130Z screenshot_antag_icons_operative was put in data/screenshots_new +2022-11-01T15:29:33.3528654Z screenshot_antag_icons_clownoperative was put in data/screenshots_new +2022-11-01T15:29:33.3549119Z screenshot_antag_icons_headrevolutionary was put in data/screenshots_new +2022-11-01T15:29:33.3549976Z screenshot_antag_icons_syndicateinfiltrator was put in data/screenshots_new +2022-11-01T15:29:33.3550439Z screenshot_antag_icons_provocateur was put in data/screenshots_new +2022-11-01T15:29:33.3557417Z screenshot_antag_icons_hereticsmuggler was put in data/screenshots_new +2022-11-01T15:29:33.3557858Z screenshot_antag_icons_wizardmidround was put in data/screenshots_new +2022-11-01T15:29:33.3558296Z screenshot_antag_icons_operativemidround was put in data/screenshots_new +2022-11-01T15:29:33.4364141Z screenshot_antag_icons_blob was put in data/screenshots_new +2022-11-01T15:29:33.4501951Z screenshot_antag_icons_xenomorph was put in data/screenshots_new +2022-11-01T15:29:33.4510297Z screenshot_antag_icons_nightmare was put in data/screenshots_new +2022-11-01T15:29:33.4593244Z screenshot_antag_icons_spacedragon was put in data/screenshots_new +2022-11-01T15:29:33.4602657Z screenshot_antag_icons_abductor was put in data/screenshots_new +2022-11-01T15:29:33.4610909Z screenshot_antag_icons_spaceninja was put in data/screenshots_new +2022-11-01T15:29:33.4905469Z screenshot_antag_icons_revenant was put in data/screenshots_new +2022-11-01T15:29:33.4932248Z screenshot_antag_icons_sentientdisease was put in data/screenshots_new +2022-11-01T15:29:33.4934049Z screenshot_antag_icons_syndicatesleeperagent was put in data/screenshots_new +2022-11-01T15:29:33.5122130Z screenshot_antag_icons_blobinfection was put in data/screenshots_new +2022-11-01T15:29:33.5146398Z screenshot_antag_icons_obsessed was put in data/screenshots_new +2022-11-01T15:29:33.5153740Z screenshot_antag_icons_malfaimidround was put in data/screenshots_new +2022-11-01T15:29:33.5154025Z +2022-11-01T15:29:33.5154740Z PASS /datum/unit_test/screenshot_antag_icons 0.3s +2022-11-01T15:29:33.5155554Z ##[endgroup] +2022-11-01T15:29:33.7840161Z ##[group]/datum/unit_test/screenshot_basic +2022-11-01T15:29:33.7846135Z screenshot_basic_red was put in data/screenshots_new +2022-11-01T15:29:33.7850103Z +2022-11-01T15:29:33.7851242Z PASS /datum/unit_test/screenshot_basic 0s +2022-11-01T15:29:33.7851736Z ##[endgroup] +2022-11-01T15:29:33.8047719Z ##[group]/datum/unit_test/screenshot_humanoids +2022-11-01T15:29:34.5128170Z screenshot_humanoids__datum_species_lizard was put in data/screenshots_new +2022-11-01T15:29:35.3887159Z screenshot_humanoids__datum_species_moth was put in data/screenshots_new +2022-11-01T15:29:36.0866727Z screenshot_humanoids__datum_species_shadow was put in data/screenshots_new +2022-11-01T15:29:36.3285479Z screenshot_humanoids__datum_species_shadow_nightmare was put in data/screenshots_new +2022-11-01T15:29:37.0085075Z screenshot_humanoids__datum_species_abductor was put in data/screenshots_new +2022-11-01T15:29:37.6062780Z screenshot_humanoids__datum_species_android was put in data/screenshots_new +2022-11-01T15:29:38.2188199Z screenshot_humanoids__datum_species_dullahan was put in data/screenshots_new +2022-11-01T15:29:38.8612302Z screenshot_humanoids__datum_species_ethereal was put in data/screenshots_new +2022-11-01T15:29:39.5803701Z screenshot_humanoids__datum_species_human was put in data/screenshots_new +2022-11-01T15:29:40.3407635Z screenshot_humanoids__datum_species_human_felinid was put in data/screenshots_new +2022-11-01T15:29:41.1214653Z screenshot_humanoids__datum_species_human_krokodil_addict was put in data/screenshots_new +2022-11-01T15:29:41.9521982Z screenshot_humanoids__datum_species_fly was put in data/screenshots_new +2022-11-01T15:29:42.6006415Z screenshot_humanoids__datum_species_golem was put in data/screenshots_new +2022-11-01T15:29:43.2088729Z screenshot_humanoids__datum_species_golem_adamantine was put in data/screenshots_new +2022-11-01T15:29:43.8190470Z screenshot_humanoids__datum_species_golem_plasma was put in data/screenshots_new +2022-11-01T15:29:44.4370361Z screenshot_humanoids__datum_species_golem_diamond was put in data/screenshots_new +2022-11-01T15:29:45.0207260Z screenshot_humanoids__datum_species_golem_gold was put in data/screenshots_new +2022-11-01T15:29:45.6198968Z screenshot_humanoids__datum_species_golem_silver was put in data/screenshots_new +2022-11-01T15:29:46.2210457Z screenshot_humanoids__datum_species_golem_plasteel was put in data/screenshots_new +2022-11-01T15:29:46.7870537Z screenshot_humanoids__datum_species_golem_titanium was put in data/screenshots_new +2022-11-01T15:29:47.3882868Z screenshot_humanoids__datum_species_golem_plastitanium was put in data/screenshots_new +2022-11-01T15:29:47.9960089Z screenshot_humanoids__datum_species_golem_alloy was put in data/screenshots_new +2022-11-01T15:29:48.6148861Z screenshot_humanoids__datum_species_golem_wood was put in data/screenshots_new +2022-11-01T15:29:49.2815897Z screenshot_humanoids__datum_species_golem_uranium was put in data/screenshots_new +2022-11-01T15:29:49.9589760Z screenshot_humanoids__datum_species_golem_sand was put in data/screenshots_new +2022-11-01T15:29:50.5992504Z screenshot_humanoids__datum_species_golem_glass was put in data/screenshots_new +2022-11-01T15:29:51.2503187Z screenshot_humanoids__datum_species_golem_bluespace was put in data/screenshots_new +2022-11-01T15:29:51.8848719Z screenshot_humanoids__datum_species_golem_bananium was put in data/screenshots_new +2022-11-01T15:29:52.3852904Z screenshot_humanoids__datum_species_golem_runic was put in data/screenshots_new +2022-11-01T15:29:53.0469173Z screenshot_humanoids__datum_species_golem_cloth was put in data/screenshots_new +2022-11-01T15:29:53.6444155Z screenshot_humanoids__datum_species_golem_plastic was put in data/screenshots_new +2022-11-01T15:29:54.3098057Z screenshot_humanoids__datum_species_golem_bronze was put in data/screenshots_new +2022-11-01T15:29:54.8535540Z screenshot_humanoids__datum_species_golem_cardboard was put in data/screenshots_new +2022-11-01T15:29:55.5735108Z screenshot_humanoids__datum_species_golem_leather was put in data/screenshots_new +2022-11-01T15:29:56.0717640Z screenshot_humanoids__datum_species_golem_durathread was put in data/screenshots_new +2022-11-01T15:29:56.5432741Z screenshot_humanoids__datum_species_golem_bone was put in data/screenshots_new +2022-11-01T15:29:57.0369874Z screenshot_humanoids__datum_species_golem_snow was put in data/screenshots_new +2022-11-01T15:29:57.7216313Z screenshot_humanoids__datum_species_golem_mhydrogen was put in data/screenshots_new +2022-11-01T15:29:58.4794694Z screenshot_humanoids__datum_species_jelly was put in data/screenshots_new +2022-11-01T15:29:59.2634596Z screenshot_humanoids__datum_species_jelly_slime was put in data/screenshots_new +2022-11-01T15:30:00.0372590Z screenshot_humanoids__datum_species_jelly_luminescent was put in data/screenshots_new +2022-11-01T15:30:00.7908231Z screenshot_humanoids__datum_species_jelly_stargazer was put in data/screenshots_new +2022-11-01T15:30:01.4923254Z screenshot_humanoids__datum_species_lizard_ashwalker was put in data/screenshots_new +2022-11-01T15:30:02.2186441Z screenshot_humanoids__datum_species_lizard_silverscale was put in data/screenshots_new +2022-11-01T15:30:02.4149008Z screenshot_humanoids__datum_species_monkey was put in data/screenshots_new +2022-11-01T15:30:03.0255568Z screenshot_humanoids__datum_species_mush was put in data/screenshots_new +2022-11-01T15:30:03.6777755Z screenshot_humanoids__datum_species_plasmaman was put in data/screenshots_new +2022-11-01T15:30:04.4788826Z screenshot_humanoids__datum_species_pod was put in data/screenshots_new +2022-11-01T15:30:05.2174595Z screenshot_humanoids__datum_species_skeleton was put in data/screenshots_new +2022-11-01T15:30:05.9909000Z screenshot_humanoids__datum_species_snail was put in data/screenshots_new +2022-11-01T15:30:06.7544848Z screenshot_humanoids__datum_species_vampire was put in data/screenshots_new +2022-11-01T15:30:07.6424794Z screenshot_humanoids__datum_species_zombie was put in data/screenshots_new +2022-11-01T15:30:08.5972035Z screenshot_humanoids__datum_species_zombie_infectious was put in data/screenshots_new +2022-11-01T15:30:08.5972336Z +2022-11-01T15:30:08.5972854Z PASS /datum/unit_test/screenshot_humanoids 34.7s +2022-11-01T15:30:08.5973526Z ##[endgroup] +2022-11-01T15:30:44.2099567Z ##[group]/datum/unit_test/screenshot_saturnx +2022-11-01T15:30:44.5011065Z screenshot_saturnx_invisibility was put in data/screenshots_new +2022-11-01T15:30:44.5011333Z +2022-11-01T15:30:44.5012180Z PASS /datum/unit_test/screenshot_saturnx 0.3s +2022-11-01T15:30:44.5012769Z ##[endgroup] +2022-11-01T15:30:44.7785909Z ##[group]/datum/unit_test/security_officer_roundstart_distribution +2022-11-01T15:30:44.9017426Z +2022-11-01T15:30:44.9018614Z PASS /datum/unit_test/security_officer_roundstart_distribution 0.2s +2022-11-01T15:30:44.9019313Z ##[endgroup] +2022-11-01T15:30:45.0427506Z ##[group]/datum/unit_test/security_officer_latejoin_distribution +2022-11-01T15:30:45.5391742Z +2022-11-01T15:30:45.5392426Z PASS /datum/unit_test/security_officer_latejoin_distribution 0.5s +2022-11-01T15:30:45.5393125Z ##[endgroup] +2022-11-01T15:30:46.2210379Z ##[group]/datum/unit_test/security_levels +2022-11-01T15:30:46.2210589Z +2022-11-01T15:30:46.2216058Z PASS /datum/unit_test/security_levels 0s +2022-11-01T15:30:46.2216555Z ##[endgroup] +2022-11-01T15:30:46.2399271Z ##[group]/datum/unit_test/servingtray +2022-11-01T15:30:46.2779259Z +2022-11-01T15:30:46.2780125Z PASS /datum/unit_test/servingtray 0s +2022-11-01T15:30:46.2780972Z ##[endgroup] +2022-11-01T15:30:46.3048093Z ##[group]/datum/unit_test/simple_animal_freeze +2022-11-01T15:30:46.3059709Z +2022-11-01T15:30:46.3060267Z PASS /datum/unit_test/simple_animal_freeze 0s +2022-11-01T15:30:46.3060938Z ##[endgroup] +2022-11-01T15:30:46.3241320Z ##[group]/datum/unit_test/siunit +2022-11-01T15:30:46.3241508Z +2022-11-01T15:30:46.3241961Z PASS /datum/unit_test/siunit 0s +2022-11-01T15:30:46.3242362Z ##[endgroup] +2022-11-01T15:30:46.3753674Z ##[group]/datum/unit_test/slips +2022-11-01T15:30:46.4300467Z +2022-11-01T15:30:46.4301480Z PASS /datum/unit_test/slips 0.1s +2022-11-01T15:30:46.4302301Z ##[endgroup] +2022-11-01T15:30:46.5100922Z ##[group]/datum/unit_test/spawn_humans +2022-11-01T15:30:51.5880046Z +2022-11-01T15:30:51.5881071Z PASS /datum/unit_test/spawn_humans 5s +2022-11-01T15:30:51.5881789Z ##[endgroup] +2022-11-01T15:30:51.6350612Z ##[group]/datum/unit_test/spawn_mobs +2022-11-01T15:30:51.7210346Z +2022-11-01T15:30:51.7211375Z PASS /datum/unit_test/spawn_mobs 0.1s +2022-11-01T15:30:51.7212072Z ##[endgroup] +2022-11-01T15:30:51.8820435Z ##[group]/datum/unit_test/species_change_clothing +2022-11-01T15:30:51.9839314Z +2022-11-01T15:30:51.9840163Z PASS /datum/unit_test/species_change_clothing 0.1s +2022-11-01T15:30:51.9840797Z ##[endgroup] +2022-11-01T15:30:52.0595249Z ##[group]/datum/unit_test/species_change_organs +2022-11-01T15:30:52.1312087Z +2022-11-01T15:30:52.1313114Z PASS /datum/unit_test/species_change_organs 0.1s +2022-11-01T15:30:52.1313735Z ##[endgroup] +2022-11-01T15:30:52.2788548Z ##[group]/datum/unit_test/species_config_sanity +2022-11-01T15:30:52.2788764Z +2022-11-01T15:30:52.2789218Z PASS /datum/unit_test/species_config_sanity 0s +2022-11-01T15:30:52.2789672Z ##[endgroup] +2022-11-01T15:30:52.2965591Z ##[group]/datum/unit_test/species_unique_id +2022-11-01T15:30:52.2965794Z +2022-11-01T15:30:52.2966648Z PASS /datum/unit_test/species_unique_id 0s +2022-11-01T15:30:52.2967087Z ##[endgroup] +2022-11-01T15:30:52.3145296Z ##[group]/datum/unit_test/species_whitelist_check +2022-11-01T15:30:52.3145500Z +2022-11-01T15:30:52.3145979Z PASS /datum/unit_test/species_whitelist_check 0s +2022-11-01T15:30:52.3146421Z ##[endgroup] +2022-11-01T15:30:52.3319686Z ##[group]/datum/unit_test/spell_invocations +2022-11-01T15:30:52.3320202Z +2022-11-01T15:30:52.3320653Z PASS /datum/unit_test/spell_invocations 0s +2022-11-01T15:30:52.3321098Z ##[endgroup] +2022-11-01T15:30:52.3490883Z ##[group]/datum/unit_test/mind_swap_spell +2022-11-01T15:30:52.4036851Z +2022-11-01T15:30:52.4037676Z PASS /datum/unit_test/mind_swap_spell 0.1s +2022-11-01T15:30:52.4038275Z ##[endgroup] +2022-11-01T15:30:52.4828774Z ##[group]/datum/unit_test/spell_names +2022-11-01T15:30:52.4828988Z +2022-11-01T15:30:52.4829550Z PASS /datum/unit_test/spell_names 0s +2022-11-01T15:30:52.4829982Z ##[endgroup] +2022-11-01T15:30:52.5000265Z ##[group]/datum/unit_test/shapeshift_spell_validity +2022-11-01T15:30:52.5004478Z +2022-11-01T15:30:52.5005145Z PASS /datum/unit_test/shapeshift_spell_validity 0.1s +2022-11-01T15:30:52.5005621Z ##[endgroup] +2022-11-01T15:30:52.5165907Z ##[group]/datum/unit_test/shapeshift_spell +2022-11-01T15:30:52.8039754Z +2022-11-01T15:30:52.8040573Z PASS /datum/unit_test/shapeshift_spell 0.3s +2022-11-01T15:30:52.8041200Z ##[endgroup] +2022-11-01T15:30:53.0783548Z ##[group]/datum/unit_test/shapeshift_holoparasites +2022-11-01T15:30:53.1126288Z +2022-11-01T15:30:53.1127333Z PASS /datum/unit_test/shapeshift_holoparasites 0.1s +2022-11-01T15:30:53.1128391Z ##[endgroup] +2022-11-01T15:30:53.1559214Z ##[group]/datum/unit_test/spritesheets +2022-11-01T15:30:53.1593744Z +2022-11-01T15:30:53.1596242Z PASS /datum/unit_test/spritesheets 0s +2022-11-01T15:30:53.1599434Z ##[endgroup] +2022-11-01T15:30:53.1775369Z ##[group]/datum/unit_test/stack_singular_name +2022-11-01T15:30:53.1777955Z +2022-11-01T15:30:53.1780282Z PASS /datum/unit_test/stack_singular_name 0s +2022-11-01T15:30:53.1781032Z ##[endgroup] +2022-11-01T15:30:53.1978111Z ##[group]/datum/unit_test/stomach +2022-11-01T15:30:53.2306019Z +2022-11-01T15:30:53.2308397Z PASS /datum/unit_test/stomach 0.1s +2022-11-01T15:30:53.2311132Z ##[endgroup] +2022-11-01T15:30:53.2563959Z ##[group]/datum/unit_test/strip_menu_ui_status +2022-11-01T15:30:53.3090477Z +2022-11-01T15:30:53.3091739Z PASS /datum/unit_test/strip_menu_ui_status 0.1s +2022-11-01T15:30:53.3094850Z ##[endgroup] +2022-11-01T15:30:53.3492514Z ##[group]/datum/unit_test/subsystem_init +2022-11-01T15:30:53.3493184Z +2022-11-01T15:30:53.3495636Z PASS /datum/unit_test/subsystem_init 0s +2022-11-01T15:30:53.3498157Z ##[endgroup] +2022-11-01T15:30:53.3664175Z ##[group]/datum/unit_test/suit_storage_icons +2022-11-01T15:30:55.3207063Z 1 - /obj/item/ammo_casing/shotgun using invalid worn_icon_state, "shell" +2022-11-01T15:30:55.3382821Z 2 - /obj/item/gun/ballistic/shotgun/hook using invalid icon_state, "hookshotgun" +2022-11-01T15:30:55.3567861Z 3 - /obj/item/gun/ballistic/automatic/surplus using invalid icon_state, "surplus" +2022-11-01T15:30:55.3745473Z 4 - /obj/item/gun/energy/beam_rifle using invalid icon_state, "esniper" +2022-11-01T15:30:55.3772721Z 5 - /obj/item/gun/energy/lasercannon using invalid icon_state, "lasercannon" +2022-11-01T15:30:55.3812025Z 6 - /obj/item/gun/energy/ionrifle using invalid icon_state, "ionrifle" +2022-11-01T15:30:55.3814794Z 7 - /obj/item/gun/energy/ionrifle/carbine using invalid icon_state, "ioncarbine" +2022-11-01T15:30:55.3984674Z 8 - /obj/item/tome using invalid icon_state, "tome" +2022-11-01T15:30:55.4027757Z 9 - /obj/item/melee/sickly_blade/void using invalid icon_state, "void_blade" +2022-11-01T15:30:55.4043373Z 10 - /obj/item/nullrod/staff using invalid icon_state, "godstaff-red" +2022-11-01T15:30:55.4048073Z 11 - /obj/item/nullrod/staff/blue using invalid icon_state, "godstaff-blue" +2022-11-01T15:30:55.4136802Z 12 - /obj/item/nullrod/tribal_knife using invalid icon_state, "crysknife" +2022-11-01T15:30:55.4148858Z 13 - /obj/item/nullrod/spear using invalid icon_state, "ratvarian_spear" +2022-11-01T15:30:55.4161026Z 14 - /obj/item/candle using invalid icon_state, "candle1" +2022-11-01T15:30:55.4710008Z 15 - /obj/item/toy/eightball using invalid icon_state, "eightball" +2022-11-01T15:30:55.4712397Z 16 - /obj/item/toy/mecha using invalid icon_state, "fivestarstoy" +2022-11-01T15:30:55.4717528Z 17 - /obj/item/toy/mecha/ripley using invalid icon_state, "ripleytoy" +2022-11-01T15:30:55.4720640Z 18 - /obj/item/toy/mecha/ripleymkii using invalid icon_state, "ripleymkiitoy" +2022-11-01T15:30:55.4725923Z 19 - /obj/item/toy/mecha/hauler using invalid icon_state, "haulertoy" +2022-11-01T15:30:55.4728709Z 20 - /obj/item/toy/mecha/clarke using invalid icon_state, "clarketoy" +2022-11-01T15:30:55.4732862Z 21 - /obj/item/toy/mecha/odysseus using invalid icon_state, "odysseustoy" +2022-11-01T15:30:55.4736959Z 22 - /obj/item/toy/mecha/gygax using invalid icon_state, "gygaxtoy" +2022-11-01T15:30:55.4741521Z 23 - /obj/item/toy/mecha/durand using invalid icon_state, "durandtoy" +2022-11-01T15:30:55.4745193Z 24 - /obj/item/toy/mecha/savannahivanov using invalid icon_state, "savannahivanovtoy" +2022-11-01T15:30:55.4748259Z 25 - /obj/item/toy/mecha/phazon using invalid icon_state, "phazontoy" +2022-11-01T15:30:55.4752835Z 26 - /obj/item/toy/mecha/honk using invalid icon_state, "honktoy" +2022-11-01T15:30:55.4755743Z 27 - /obj/item/toy/mecha/darkgygax using invalid icon_state, "darkgygaxtoy" +2022-11-01T15:30:55.4760291Z 28 - /obj/item/toy/mecha/mauler using invalid icon_state, "maulertoy" +2022-11-01T15:30:55.4763840Z 29 - /obj/item/toy/mecha/darkhonk using invalid icon_state, "darkhonktoy" +2022-11-01T15:30:55.4768684Z 30 - /obj/item/toy/mecha/deathripley using invalid icon_state, "deathripleytoy" +2022-11-01T15:30:55.4772115Z 31 - /obj/item/toy/mecha/reticence using invalid icon_state, "reticencetoy" +2022-11-01T15:30:55.4774925Z 32 - /obj/item/toy/mecha/marauder using invalid icon_state, "maraudertoy" +2022-11-01T15:30:55.4779221Z 33 - /obj/item/toy/mecha/seraph using invalid icon_state, "seraphtoy" +2022-11-01T15:30:55.4783197Z 34 - /obj/item/toy/mecha/firefighter using invalid icon_state, "firefightertoy" +2022-11-01T15:30:55.4786820Z 35 - /obj/item/toy/waterballoon using invalid icon_state, "waterballoon-e" +2022-11-01T15:30:55.4790265Z 36 - /obj/item/toy/balloon using invalid icon_state, "balloon" +2022-11-01T15:30:55.4794733Z 37 - /obj/item/toy/balloon/corgi using invalid icon_state, "corgi" +2022-11-01T15:30:55.4798121Z 38 - /obj/item/toy/balloon/syndicate using invalid icon_state, "syndballoon" +2022-11-01T15:30:55.4800642Z 39 - /obj/item/toy/balloon/arrest using invalid icon_state, "arrestballoon" +2022-11-01T15:30:55.4805597Z 40 - /obj/item/toy/captainsaid using invalid icon_state, "captainsaid_off" +2022-11-01T15:30:55.4810625Z 41 - /obj/item/toy/spinningtoy using invalid icon_state, "singularity_s1" +2022-11-01T15:30:55.4819042Z 42 - /obj/item/toy/ammo/gun using invalid icon_state, "357OLD-7" +2022-11-01T15:30:55.4821247Z 43 - /obj/item/toy/sword using invalid icon_state, "e_sword" +2022-11-01T15:30:55.4826674Z 44 - /obj/item/toy/foamblade using invalid icon_state, "foamblade" +2022-11-01T15:30:55.4906032Z 45 - /obj/item/toy/windup_toolbox using invalid icon_state, "green" +2022-11-01T15:30:55.4915446Z 46 - /obj/item/toy/snappop using invalid icon_state, "snappop" +2022-11-01T15:30:55.4918336Z 47 - /obj/item/toy/talking using invalid icon_state, "owlprize" +2022-11-01T15:30:55.4923506Z 48 - /obj/item/toy/talking/ai using invalid icon_state, "AI" +2022-11-01T15:30:55.4927158Z 49 - /obj/item/toy/talking/codex_gigas using invalid icon_state, "demonomicon" +2022-11-01T15:30:55.4931629Z 50 - /obj/item/toy/talking/griffin using invalid icon_state, "griffinprize" +2022-11-01T15:30:55.4935255Z 51 - /obj/item/toy/nuke using invalid icon_state, "nuketoyidle" +2022-11-01T15:30:55.4941687Z 52 - /obj/item/toy/minimeteor using invalid icon_state, "minimeteor" +2022-11-01T15:30:55.4950575Z 53 - /obj/item/toy/redbutton using invalid icon_state, "bigred" +2022-11-01T15:30:55.4951244Z 54 - /obj/item/toy/snowball using invalid icon_state, "snowball" +2022-11-01T15:30:55.4954561Z 55 - /obj/item/toy/beach_ball using invalid icon_state, "ball" +2022-11-01T15:30:55.4958662Z 56 - /obj/item/toy/beach_ball/baseball using invalid icon_state, "baseball" +2022-11-01T15:30:55.4963000Z 57 - /obj/item/toy/beach_ball/holoball using invalid icon_state, "basketball" +2022-11-01T15:30:55.4966965Z 58 - /obj/item/toy/beach_ball/holoball/dodgeball using invalid icon_state, "dodgeball" +2022-11-01T15:30:55.4977748Z 59 - /obj/item/toy/toy_xeno using invalid icon_state, "toy_xeno" +2022-11-01T15:30:55.4980250Z 60 - /obj/item/toy/cattoy using invalid icon_state, "toy_mouse" +2022-11-01T15:30:55.4983618Z 61 - /obj/item/toy/figure using invalid icon_state, "nuketoy" +2022-11-01T15:30:55.4987315Z 62 - /obj/item/toy/figure/cmo using invalid icon_state, "cmo" +2022-11-01T15:30:55.4997139Z 63 - /obj/item/toy/figure/assistant using invalid icon_state, "assistant" +2022-11-01T15:30:55.4997624Z 64 - /obj/item/toy/figure/atmos using invalid icon_state, "atmos" +2022-11-01T15:30:55.4998070Z 65 - /obj/item/toy/figure/bartender using invalid icon_state, "bartender" +2022-11-01T15:30:55.5000037Z 66 - /obj/item/toy/figure/borg using invalid icon_state, "borg" +2022-11-01T15:30:55.5005726Z 67 - /obj/item/toy/figure/botanist using invalid icon_state, "botanist" +2022-11-01T15:30:55.5009351Z 68 - /obj/item/toy/figure/captain using invalid icon_state, "captain" +2022-11-01T15:30:55.5013740Z 69 - /obj/item/toy/figure/cargotech using invalid icon_state, "cargotech" +2022-11-01T15:30:55.5017249Z 70 - /obj/item/toy/figure/ce using invalid icon_state, "ce" +2022-11-01T15:30:55.5020387Z 71 - /obj/item/toy/figure/chaplain using invalid icon_state, "chaplain" +2022-11-01T15:30:55.5024141Z 72 - /obj/item/toy/figure/chef using invalid icon_state, "chef" +2022-11-01T15:30:55.5028293Z 73 - /obj/item/toy/figure/chemist using invalid icon_state, "chemist" +2022-11-01T15:30:55.5031085Z 74 - /obj/item/toy/figure/clown using invalid icon_state, "clown" +2022-11-01T15:30:55.5034369Z 75 - /obj/item/toy/figure/ian using invalid icon_state, "ian" +2022-11-01T15:30:55.5038425Z 76 - /obj/item/toy/figure/detective using invalid icon_state, "detective" +2022-11-01T15:30:55.5042175Z 77 - /obj/item/toy/figure/dsquad using invalid icon_state, "dsquad" +2022-11-01T15:30:55.5046297Z 78 - /obj/item/toy/figure/engineer using invalid icon_state, "engineer" +2022-11-01T15:30:55.5050167Z 79 - /obj/item/toy/figure/geneticist using invalid icon_state, "geneticist" +2022-11-01T15:30:55.5053342Z 80 - /obj/item/toy/figure/hop using invalid icon_state, "hop" +2022-11-01T15:30:55.5056872Z 81 - /obj/item/toy/figure/hos using invalid icon_state, "hos" +2022-11-01T15:30:55.5060399Z 82 - /obj/item/toy/figure/qm using invalid icon_state, "qm" +2022-11-01T15:30:55.5063872Z 83 - /obj/item/toy/figure/janitor using invalid icon_state, "janitor" +2022-11-01T15:30:55.5067662Z 84 - /obj/item/toy/figure/lawyer using invalid icon_state, "lawyer" +2022-11-01T15:30:55.5070895Z 85 - /obj/item/toy/figure/curator using invalid icon_state, "curator" +2022-11-01T15:30:55.5074298Z 86 - /obj/item/toy/figure/md using invalid icon_state, "md" +2022-11-01T15:30:55.5077555Z 87 - /obj/item/toy/figure/paramedic using invalid icon_state, "paramedic" +2022-11-01T15:30:55.5080888Z 88 - /obj/item/toy/figure/psychologist using invalid icon_state, "psychologist" +2022-11-01T15:30:55.5084180Z 89 - /obj/item/toy/figure/prisoner using invalid icon_state, "prisoner" +2022-11-01T15:30:55.5087759Z 90 - /obj/item/toy/figure/mime using invalid icon_state, "mime" +2022-11-01T15:30:55.5091521Z 91 - /obj/item/toy/figure/miner using invalid icon_state, "miner" +2022-11-01T15:30:55.5094739Z 92 - /obj/item/toy/figure/ninja using invalid icon_state, "ninja" +2022-11-01T15:30:55.5098467Z 93 - /obj/item/toy/figure/wizard using invalid icon_state, "wizard" +2022-11-01T15:30:55.5101717Z 94 - /obj/item/toy/figure/rd using invalid icon_state, "rd" +2022-11-01T15:30:55.5105157Z 95 - /obj/item/toy/figure/roboticist using invalid icon_state, "roboticist" +2022-11-01T15:30:55.5108497Z 96 - /obj/item/toy/figure/scientist using invalid icon_state, "scientist" +2022-11-01T15:30:55.5111745Z 97 - /obj/item/toy/figure/syndie using invalid icon_state, "syndie" +2022-11-01T15:30:55.5115064Z 98 - /obj/item/toy/figure/secofficer using invalid icon_state, "secofficer" +2022-11-01T15:30:55.5120612Z 99 - /obj/item/toy/figure/virologist using invalid icon_state, "virologist" +2022-11-01T15:30:55.5123956Z 100 - /obj/item/toy/figure/warden using invalid icon_state, "warden" +2022-11-01T15:30:55.5128284Z 101 - /obj/item/toy/dummy using invalid icon_state, "puppet" +2022-11-01T15:30:55.5131152Z 102 - /obj/item/toy/seashell using invalid icon_state, "shell1" +2022-11-01T15:30:55.5134593Z 103 - /obj/item/toy/brokenradio using invalid icon_state, "broken_radio" +2022-11-01T15:30:55.5137892Z 104 - /obj/item/toy/braintoy using invalid icon_state, "brain-old" +2022-11-01T15:30:55.5144558Z 105 - /obj/item/toy/reality_pierce using invalid icon_state, "pierced_illusion" +2022-11-01T15:30:55.5147190Z 106 - /obj/item/toy/foamfinger using invalid icon_state, "foamfinger" +2022-11-01T15:30:55.5150535Z 107 - /obj/item/toy/intento using invalid icon_state, "blank" +2022-11-01T15:30:55.5198041Z 108 - /obj/item/toy/sprayoncan using invalid icon_state, "sprayoncan" +2022-11-01T15:30:55.5200657Z 109 - /obj/item/toy/xmas_cracker using invalid icon_state, "cracker" +2022-11-01T15:30:55.5207230Z 110 - /obj/item/cultivator/rake using invalid icon_state, "rake" +2022-11-01T15:30:55.5214896Z 111 - /obj/item/hatchet/wooden using invalid icon_state, "woodhatchet" +2022-11-01T15:30:55.5218699Z 112 - /obj/item/hatchet/cutterblade using invalid icon_state, "cutterblade" +2022-11-01T15:30:55.6152861Z 113 - /obj/item/reagent_containers/hypospray/medipen using invalid worn_icon_state, "medipen" +2022-11-01T15:30:55.6332977Z 114 - /obj/item/storage/pill_bottle using invalid icon_state, "pill_canister" +2022-11-01T15:30:55.6344463Z 115 - /obj/item/analyzer/ranged using invalid icon_state, "analyzerranged" +2022-11-01T15:30:55.6996164Z 116 - /obj/item/organ/internal/monster_core using invalid icon_state, "hivelord_core" +2022-11-01T15:30:55.6996812Z 117 - /obj/item/organ/internal/monster_core/brimdust_sac using invalid icon_state, "brim_sac" +2022-11-01T15:30:55.7000924Z 118 - /obj/item/organ/internal/monster_core/regenerative_core/legion using invalid icon_state, "legion_core" +2022-11-01T15:30:55.7004434Z 119 - /obj/item/organ/internal/monster_core/rush_gland using invalid icon_state, "lobster_gland" +2022-11-01T15:30:55.7019240Z 120 - /obj/item/spear/bamboospear using invalid icon_state, "bamboo_spear0" +2022-11-01T15:30:55.7066737Z 121 - /obj/item/abductor/gizmo using invalid icon_state, "gizmo_scan" +2022-11-01T15:30:55.7071949Z 122 - /obj/item/abductor/silencer using invalid icon_state, "silencer" +2022-11-01T15:30:55.7074703Z 123 - /obj/item/abductor/mind_device using invalid icon_state, "mind_device_message" +2022-11-01T15:30:55.7093947Z 124 - /obj/item/claymore/cutlass using invalid worn_icon_state, "cutlass" +2022-11-01T15:30:55.7100530Z 125 - /obj/item/claymore/highlander/robot using invalid icon_state, "claymore_cyborg" +2022-11-01T15:30:55.7103494Z 126 - /obj/item/banner using invalid icon_state, "banner" +2022-11-01T15:30:55.7106179Z 127 - /obj/item/banner/security using invalid icon_state, "banner_security" +2022-11-01T15:30:55.7109205Z 128 - /obj/item/banner/medical using invalid icon_state, "banner_medical" +2022-11-01T15:30:55.7112253Z 129 - /obj/item/banner/science using invalid icon_state, "banner_science" +2022-11-01T15:30:55.7115489Z 130 - /obj/item/banner/cargo using invalid icon_state, "banner_cargo" +2022-11-01T15:30:55.7118625Z 131 - /obj/item/banner/engineering using invalid icon_state, "banner_engineering" +2022-11-01T15:30:55.7121768Z 132 - /obj/item/banner/red using invalid icon_state, "banner-red" +2022-11-01T15:30:55.7125528Z 133 - /obj/item/banner/blue using invalid icon_state, "banner-blue" +2022-11-01T15:30:55.7173275Z 134 - /obj/item/gun/magic/staff using invalid icon_state, "staff" +2022-11-01T15:30:55.7176309Z 135 - /obj/item/gun/magic/staff/change using invalid icon_state, "staffofchange" +2022-11-01T15:30:55.7179814Z 136 - /obj/item/gun/magic/staff/animate using invalid icon_state, "staffofanimation" +2022-11-01T15:30:55.7183703Z 137 - /obj/item/gun/magic/staff/healing using invalid icon_state, "staffofhealing" +2022-11-01T15:30:55.7187827Z 138 - /obj/item/gun/magic/staff/chaos using invalid icon_state, "staffofchaos" +2022-11-01T15:30:55.7191418Z 139 - /obj/item/gun/magic/staff/door using invalid icon_state, "staffofdoor" +2022-11-01T15:30:55.7194614Z 140 - /obj/item/gun/magic/staff/honk using invalid icon_state, "honker" +2022-11-01T15:30:55.7201412Z 141 - /obj/item/gun/magic/staff/locker using invalid worn_icon_state, "lockerstaff" +2022-11-01T15:30:55.7204043Z 142 - /obj/item/gun/magic/staff/flying using invalid worn_icon_state, "flightstaff" +2022-11-01T15:30:55.7207467Z 143 - /obj/item/gun/magic/staff/babel using invalid worn_icon_state, "babelstaff" +2022-11-01T15:30:55.7211147Z 144 - /obj/item/gun/magic/staff/necropotence using invalid worn_icon_state, "necrostaff" +2022-11-01T15:30:55.7215407Z 145 - /obj/item/gun/magic/staff/wipe using invalid worn_icon_state, "wipestaff" +2022-11-01T15:30:55.7241733Z 146 - /obj/item/melee/energy/sword/pirate using invalid icon_state, "e_cutlass" +2022-11-01T15:30:55.7244715Z 147 - /obj/item/clothing/glasses/eyepatch using invalid icon_state, "eyepatch" +2022-11-01T15:30:55.7252484Z 148 - /obj/item/melee/energy/sword/cyborg/saw using invalid icon_state, "esaw" +2022-11-01T15:30:55.7266561Z 149 - /obj/item/tank/jetpack/improvised using invalid worn_icon_state, "jetpack-improvised" +2022-11-01T15:30:55.7274060Z 150 - /obj/item/multitool using invalid icon_state, "multitool" +2022-11-01T15:30:55.7276378Z 151 - /obj/item/multitool/cyborg using invalid icon_state, "multitool_cyborg" +2022-11-01T15:30:55.7280858Z 152 - /obj/item/multitool/circuit using invalid icon_state, "multitool_circuit" +2022-11-01T15:30:55.7284308Z 153 - /obj/item/storage/bag/trash using invalid icon_state, "trashbag" +2022-11-01T15:30:55.7287840Z 154 - /obj/item/storage/bag/trash/bluespace using invalid icon_state, "bluetrashbag" +2022-11-01T15:30:55.7290759Z 155 - /obj/item/cane using invalid icon_state, "cane" +2022-11-01T15:30:55.7294298Z 156 - /obj/item/cane/white using invalid icon_state, "cane_white" +2022-11-01T15:30:55.7297184Z 157 - /obj/item/megaphone/clown using invalid icon_state, "megaphone-clown" +2022-11-01T15:30:55.7318542Z 158 - /obj/item/food/pie/cream using invalid icon_state, "pie" +2022-11-01T15:30:55.7334187Z 159 - /obj/item/instrument/bikehorn using invalid icon_state, "bike_horn" +2022-11-01T15:30:55.7337088Z 160 - /obj/item/reagent_containers/cup/soda_cans/canned_laughter using invalid icon_state, "laughter" +2022-11-01T15:30:55.7358710Z 161 - /obj/item/grown/bananapeel using invalid icon_state, "banana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-11-01T15:30:55.7362056Z 162 - /obj/item/grown/bananapeel/bombanana using invalid icon_state, "banana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-11-01T15:30:55.7363000Z 163 - /obj/item/grown/bananapeel/mimanapeel using invalid icon_state, "mimana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-11-01T15:30:55.7367080Z 164 - /obj/item/grown/bananapeel/bluespace using invalid icon_state, "bluenana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-11-01T15:30:55.7368175Z 165 - /obj/item/grown/bananapeel/specialpeel using invalid icon_state, "banana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-11-01T15:30:55.7369395Z 166 - /obj/item/food/grown/banana using invalid icon_state, "banana" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-11-01T15:30:55.7372848Z 167 - /obj/item/food/grown/banana/bombanana using invalid icon_state, "banana" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-11-01T15:30:55.7373761Z 168 - /obj/item/food/grown/banana/mime using invalid icon_state, "mimana" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-11-01T15:30:55.7377078Z 169 - /obj/item/food/grown/banana/bluespace using invalid icon_state, "bluenana" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-11-01T15:30:55.7377931Z 170 - /obj/item/food/grown/banana/bunch using invalid icon_state, "banana_bunch" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-11-01T15:30:55.7380762Z 171 - /obj/item/stack/spacecash/c1 using invalid icon_state, "spacecash1" +2022-11-01T15:30:55.7381375Z 172 - /obj/item/stack/spacecash/c10 using invalid icon_state, "spacecash10" +2022-11-01T15:30:55.7381845Z 173 - /obj/item/stack/spacecash/c20 using invalid icon_state, "spacecash20" +2022-11-01T15:30:55.7384576Z 174 - /obj/item/stack/spacecash/c50 using invalid icon_state, "spacecash50" +2022-11-01T15:30:55.7385391Z 175 - /obj/item/stack/spacecash/c100 using invalid icon_state, "spacecash100" +2022-11-01T15:30:55.7386850Z 176 - /obj/item/stack/spacecash/c200 using invalid icon_state, "spacecash200" +2022-11-01T15:30:55.7389337Z 177 - /obj/item/stack/spacecash/c500 using invalid icon_state, "spacecash500" +2022-11-01T15:30:55.7394435Z 178 - /obj/item/stack/spacecash/c1000 using invalid icon_state, "spacecash1000" +2022-11-01T15:30:55.7397872Z 179 - /obj/item/stack/spacecash/c10000 using invalid icon_state, "spacecash10000" +2022-11-01T15:30:55.7401273Z 180 - /obj/item/clothing/mask/facehugger/toy using invalid worn_icon_state, "facehugger" +2022-11-01T15:30:55.7415134Z 181 - /obj/item/kitchen/fork using invalid icon_state, "fork" +2022-11-01T15:30:55.7417371Z 182 - /obj/item/kitchen/fork/plastic using invalid icon_state, "plastic_fork" +2022-11-01T15:30:55.7428215Z 183 - /obj/item/kitchen/spoon using invalid icon_state, "spoon" +2022-11-01T15:30:55.7429945Z 184 - /obj/item/kitchen/spoon/plastic using invalid icon_state, "plastic_spoon" +2022-11-01T15:30:55.7442913Z 185 - /obj/item/bonesetter using invalid icon_state, "bonesetter" +2022-11-01T15:30:55.7446497Z 186 - /obj/item/cautery using invalid icon_state, "cautery" +2022-11-01T15:30:55.7450823Z 187 - /obj/item/cautery/advanced using invalid icon_state, "e_cautery" +2022-11-01T15:30:55.7453942Z 188 - /obj/item/hemostat using invalid icon_state, "hemostat" +2022-11-01T15:30:55.7457254Z 189 - /obj/item/hemostat/supermatter using invalid icon_state, "supermatter_tongs" +2022-11-01T15:30:55.7459972Z 190 - /obj/item/retractor using invalid icon_state, "retractor" +2022-11-01T15:30:55.7463122Z 191 - /obj/item/retractor/advanced using invalid icon_state, "adv_retractor" +2022-11-01T15:30:55.7466265Z 192 - /obj/item/scalpel using invalid icon_state, "scalpel" +2022-11-01T15:30:55.7469369Z 193 - /obj/item/scalpel/supermatter using invalid icon_state, "supermatter_scalpel" +2022-11-01T15:30:55.7472302Z 194 - /obj/item/scalpel/advanced using invalid icon_state, "e_scalpel" +2022-11-01T15:30:55.7475283Z 195 - /obj/item/surgical_drapes using invalid icon_state, "surgical_drapes" +2022-11-01T15:30:55.7481626Z 196 - /obj/item/stack/medical/bruise_pack using invalid icon_state, "brutepack" +2022-11-01T15:30:55.7483890Z 197 - /obj/item/stack/medical/gauze using invalid icon_state, "gauze" +2022-11-01T15:30:55.7488309Z 198 - /obj/item/stack/medical/suture using invalid icon_state, "suture" +2022-11-01T15:30:55.7491279Z 199 - /obj/item/stack/medical/suture/medicated using invalid icon_state, "suture_purp" +2022-11-01T15:30:55.7494706Z 200 - /obj/item/stack/medical/ointment using invalid icon_state, "ointment" +2022-11-01T15:30:55.7498204Z 201 - /obj/item/stack/medical/mesh using invalid icon_state, "regen_mesh" +2022-11-01T15:30:55.7501745Z 202 - /obj/item/stack/medical/mesh/advanced using invalid icon_state, "aloe_mesh" +2022-11-01T15:30:55.7505332Z 203 - /obj/item/stack/medical/aloe using invalid icon_state, "aloe_paste" +2022-11-01T15:30:55.7508511Z 204 - /obj/item/stack/medical/bone_gel using invalid icon_state, "bone-gel" +2022-11-01T15:30:55.7511537Z 205 - /obj/item/stack/medical/poultice using invalid icon_state, "poultice" +2022-11-01T15:30:55.7514762Z 206 - /obj/item/assembly/flash/handheld using invalid icon_state, "flash" +2022-11-01T15:30:55.7518179Z 207 - /obj/item/clothing/mask/cigarette using invalid icon_state, "cigoff" +2022-11-01T15:30:55.7521263Z 208 - /obj/item/clothing/mask/cigarette/rollie using invalid icon_state, "spliffoff" +2022-11-01T15:30:55.7525138Z 209 - /obj/item/clothing/mask/cigarette/candy using invalid icon_state, "candyoff" +2022-11-01T15:30:55.7529005Z 210 - /obj/item/clothing/mask/cigarette/cigar using invalid icon_state, "cigaroff" +2022-11-01T15:30:55.7532227Z 211 - /obj/item/clothing/mask/cigarette/cigar/cohiba using invalid icon_state, "cigar2off" +2022-11-01T15:30:55.7535378Z 212 - /obj/item/clothing/mask/cigarette/pipe using invalid icon_state, "pipeoff" +2022-11-01T15:30:55.7538704Z 213 - /obj/item/clothing/mask/cigarette/pipe/cobpipe using invalid icon_state, "cobpipeoff" +2022-11-01T15:30:55.7541822Z 214 - /obj/item/disk using invalid icon_state, "datadisk0" +2022-11-01T15:30:55.7547750Z 215 - /obj/item/disk/holodisk using invalid icon_state, "holodisk" +2022-11-01T15:30:55.7551232Z 216 - /obj/item/disk/nuclear using invalid icon_state, "nucleardisk" +2022-11-01T15:30:55.7554426Z 217 - /obj/item/disk/surgery using invalid icon_state, "datadisk1" +2022-11-01T15:30:55.7558238Z 218 - /obj/item/disk/cargo/bluespace_pod using invalid icon_state, "cargodisk" +2022-11-01T15:30:55.7561786Z 219 - /obj/item/disk/tech_disk/major using invalid icon_state, "rndmajordisk" +2022-11-01T15:30:55.7566298Z 220 - /obj/item/melee/powerfist using invalid icon_state, "powerfist" +2022-11-01T15:30:55.7579366Z 221 - /obj/item/melee/skateboard using invalid icon_state, "skateboard" +2022-11-01T15:30:55.7581695Z 222 - /obj/item/melee/skateboard/pro using invalid icon_state, "skateboard2" +2022-11-01T15:30:55.7586449Z 223 - /obj/item/melee/skateboard/hoverboard using invalid icon_state, "hoverboard_red" +2022-11-01T15:30:55.7589798Z 224 - /obj/item/melee/skateboard/hoverboard/admin using invalid icon_state, "hoverboard_nt" +2022-11-01T15:30:55.7593858Z 225 - /obj/item/melee/baseball_bat using invalid icon_state, "baseball_bat" +2022-11-01T15:30:55.7597594Z 226 - /obj/item/melee/baseball_bat/homerun using invalid icon_state, "baseball_bat_home" +2022-11-01T15:30:55.7600520Z 227 - /obj/item/melee/baseball_bat/ablative using invalid icon_state, "baseball_bat_metal" +2022-11-01T15:30:55.7604782Z 228 - /obj/item/melee/flyswatter using invalid icon_state, "flyswatter" +2022-11-01T15:30:55.7611481Z 229 - /obj/item/melee/energy/axe using invalid icon_state, "axe" +2022-11-01T15:30:55.7613484Z 230 - /obj/item/melee/energy/blade using invalid icon_state, "blade" +2022-11-01T15:30:55.7618410Z 231 - /obj/item/melee/energy/blade/hardlight using invalid icon_state, "lightblade" +2022-11-01T15:30:55.7620400Z 232 - /obj/item/melee/synthetic_arm_blade using invalid icon_state, "arm_blade" +2022-11-01T15:30:55.7624742Z 233 - /obj/item/melee/sabre using invalid icon_state, "sabre" +2022-11-01T15:30:55.7628282Z 234 - /obj/item/melee/beesword using invalid worn_icon_state, "stinger" +2022-11-01T15:30:55.7631104Z 235 - /obj/item/melee/supermatter_sword using invalid icon_state, "supermatter_sword" +2022-11-01T15:30:55.7640059Z 236 - /obj/item/melee/cleric_mace using invalid worn_icon_state, "default_worn" +2022-11-01T15:30:55.7642519Z 237 - /obj/item/melee/rune_carver using invalid icon_state, "rune_carver" +2022-11-01T15:30:55.7649015Z 238 - /obj/item/melee/ghost_sword using invalid icon_state, "spectral" +2022-11-01T15:30:55.7652669Z 239 - /obj/item/reagent_containers/cup/glass/flask using invalid icon_state, "flask" +2022-11-01T15:30:55.7656181Z 240 - /obj/item/reagent_containers/cup/glass/flask/gold using invalid icon_state, "flask_gold" +2022-11-01T15:30:55.7659386Z 241 - /obj/item/reagent_containers/cup/glass/flask/det using invalid icon_state, "detflask" +2022-11-01T15:30:55.7661823Z 242 - /obj/item/stamp using invalid icon_state, "stamp-ok" +2022-11-01T15:30:55.7665189Z 243 - /obj/item/stamp/qm using invalid icon_state, "stamp-qm" +2022-11-01T15:30:55.7668223Z 244 - /obj/item/stamp/law using invalid icon_state, "stamp-law" +2022-11-01T15:30:55.7671146Z 245 - /obj/item/stamp/captain using invalid icon_state, "stamp-cap" +2022-11-01T15:30:55.7674101Z 246 - /obj/item/stamp/hop using invalid icon_state, "stamp-hop" +2022-11-01T15:30:55.7677062Z 247 - /obj/item/stamp/hos using invalid icon_state, "stamp-hos" +2022-11-01T15:30:55.7679998Z 248 - /obj/item/stamp/ce using invalid icon_state, "stamp-ce" +2022-11-01T15:30:55.7684534Z 249 - /obj/item/stamp/rd using invalid icon_state, "stamp-rd" +2022-11-01T15:30:55.7688688Z 250 - /obj/item/stamp/cmo using invalid icon_state, "stamp-cmo" +2022-11-01T15:30:55.7691562Z 251 - /obj/item/stamp/denied using invalid icon_state, "stamp-deny" +2022-11-01T15:30:55.7694516Z 252 - /obj/item/stamp/void using invalid icon_state, "stamp-void" +2022-11-01T15:30:55.7697505Z 253 - /obj/item/stamp/clown using invalid icon_state, "stamp-clown" +2022-11-01T15:30:55.7708237Z 254 - /obj/item/stamp/mime using invalid icon_state, "stamp-mime" +2022-11-01T15:30:55.7708827Z 255 - /obj/item/stamp/chap using invalid icon_state, "stamp-chap" +2022-11-01T15:30:55.7709256Z 256 - /obj/item/stamp/centcom using invalid icon_state, "stamp-centcom" +2022-11-01T15:30:55.7751313Z 257 - /obj/item/stamp/syndicate using invalid icon_state, "stamp-syndicate" +2022-11-01T15:30:55.7752422Z 258 - /obj/item/storage/lockbox/medal using invalid icon_state, "medalbox+l" +2022-11-01T15:30:55.7752898Z 259 - /obj/item/crowbar/red/caravan using invalid icon_state, "crowbar_caravan" +2022-11-01T15:30:55.7757058Z 260 - /obj/item/crowbar/drone using invalid icon_state, "crowbar_cyborg" +2022-11-01T15:30:55.7784906Z +2022-11-01T15:30:55.7785304Z PASS /datum/unit_test/suit_storage_icons 2.4s +2022-11-01T15:30:55.7786128Z ##[endgroup] +2022-11-01T15:30:58.1989647Z ##[group]/datum/unit_test/amputation +2022-11-01T15:30:58.2542620Z +2022-11-01T15:30:58.2543982Z PASS /datum/unit_test/amputation 0.1s +2022-11-01T15:30:58.2545007Z ##[endgroup] +2022-11-01T15:30:58.2861052Z ##[group]/datum/unit_test/brain_surgery +2022-11-01T15:30:58.3393398Z +2022-11-01T15:30:58.3395072Z PASS /datum/unit_test/brain_surgery 0.1s +2022-11-01T15:30:58.3396351Z ##[endgroup] +2022-11-01T15:30:58.3713295Z ##[group]/datum/unit_test/head_transplant +2022-11-01T15:30:58.4648885Z +2022-11-01T15:30:58.4650964Z PASS /datum/unit_test/head_transplant 0.1s +2022-11-01T15:30:58.4652113Z ##[endgroup] +2022-11-01T15:30:58.5529908Z ##[group]/datum/unit_test/multiple_surgeries +2022-11-01T15:30:58.6322272Z +2022-11-01T15:30:58.6323733Z PASS /datum/unit_test/multiple_surgeries 0.1s +2022-11-01T15:30:58.6324863Z ##[endgroup] +2022-11-01T15:30:58.7192842Z ##[group]/datum/unit_test/start_tend_wounds +2022-11-01T15:30:58.7696686Z +2022-11-01T15:30:58.7697933Z PASS /datum/unit_test/start_tend_wounds 0s +2022-11-01T15:30:58.7699007Z ##[endgroup] +2022-11-01T15:30:58.8006481Z ##[group]/datum/unit_test/tend_wounds +2022-11-01T15:30:58.9098267Z +2022-11-01T15:30:58.9099817Z PASS /datum/unit_test/tend_wounds 0.1s +2022-11-01T15:30:58.9100900Z ##[endgroup] +2022-11-01T15:30:59.0574781Z ##[group]/datum/unit_test/auto_teleporter_linking +2022-11-01T15:30:59.0986969Z +2022-11-01T15:30:59.0988029Z PASS /datum/unit_test/auto_teleporter_linking 0s +2022-11-01T15:30:59.0989210Z ##[endgroup] +2022-11-01T15:30:59.1397849Z ##[group]/datum/unit_test/tgui_create_message +2022-11-01T15:30:59.1398053Z +2022-11-01T15:30:59.1398515Z PASS /datum/unit_test/tgui_create_message 0s +2022-11-01T15:30:59.1398931Z ##[endgroup] +2022-11-01T15:30:59.1585159Z ##[group]/datum/unit_test/timer_sanity +2022-11-01T15:30:59.1585371Z +2022-11-01T15:30:59.1585837Z PASS /datum/unit_test/timer_sanity 0s +2022-11-01T15:30:59.1586293Z ##[endgroup] +2022-11-01T15:30:59.1763570Z ##[group]/datum/unit_test/traitor +2022-11-01T15:31:01.0798012Z +2022-11-01T15:31:01.0799101Z PASS /datum/unit_test/traitor 1.9s +2022-11-01T15:31:01.0799858Z ##[endgroup] +2022-11-01T15:31:05.2187120Z ##[group]/datum/unit_test/verify_config_tags +2022-11-01T15:31:05.2190123Z +2022-11-01T15:31:05.2191991Z PASS /datum/unit_test/verify_config_tags 0s +2022-11-01T15:31:05.2193777Z ##[endgroup] +2022-11-01T15:31:05.2366479Z ##[group]/datum/unit_test/wizard_loadout +2022-11-01T15:31:05.3463154Z +2022-11-01T15:31:05.3463988Z PASS /datum/unit_test/wizard_loadout 0.1s +2022-11-01T15:31:05.3465519Z ##[endgroup] +2022-11-01T15:31:05.4918147Z ##[group]/datum/unit_test/find_reference_sanity +2022-11-01T15:31:05.4922156Z +2022-11-01T15:31:05.4923183Z PASS /datum/unit_test/find_reference_sanity 0s +2022-11-01T15:31:05.4924120Z ##[endgroup] +2022-11-01T15:31:05.5122652Z ##[group]/datum/unit_test/find_reference_baseline +2022-11-01T15:31:05.5126059Z +2022-11-01T15:31:05.5126875Z PASS /datum/unit_test/find_reference_baseline 0s +2022-11-01T15:31:05.5127655Z ##[endgroup] +2022-11-01T15:31:05.5361446Z ##[group]/datum/unit_test/find_reference_exotic +2022-11-01T15:31:05.5367626Z +2022-11-01T15:31:05.5369228Z PASS /datum/unit_test/find_reference_exotic 0s +2022-11-01T15:31:05.5369940Z ##[endgroup] +2022-11-01T15:31:05.5551795Z ##[group]/datum/unit_test/find_reference_esoteric +2022-11-01T15:31:05.5558725Z +2022-11-01T15:31:05.5559583Z PASS /datum/unit_test/find_reference_esoteric 0s +2022-11-01T15:31:05.5560670Z ##[endgroup] +2022-11-01T15:31:05.5737466Z ##[group]/datum/unit_test/find_reference_null_key_entry +2022-11-01T15:31:05.5741407Z +2022-11-01T15:31:05.5742596Z PASS /datum/unit_test/find_reference_null_key_entry 0s +2022-11-01T15:31:05.5743489Z ##[endgroup] +2022-11-01T15:31:05.6053804Z ##[group]/datum/unit_test/find_reference_assoc_investigation +2022-11-01T15:31:05.6057935Z +2022-11-01T15:31:05.6058863Z PASS /datum/unit_test/find_reference_assoc_investigation 0s +2022-11-01T15:31:05.6060051Z ##[endgroup] +2022-11-01T15:31:05.6233030Z ##[group]/datum/unit_test/find_reference_static_investigation +2022-11-01T15:31:05.8520469Z +2022-11-01T15:31:05.8521954Z PASS /datum/unit_test/find_reference_static_investigation 0.2s +2022-11-01T15:31:05.8523118Z ##[endgroup] +2022-11-01T15:31:06.0724951Z ##[group]/datum/unit_test/monkey_business +2022-11-01T15:31:23.2321441Z [15:31:23] Runtime in _forensics.dm,232: Cannot execute null.resolve(). +2022-11-01T15:31:23.2322464Z proc name: check blood (/datum/forensics/proc/check_blood) +2022-11-01T15:31:23.2323531Z src: /datum/forensics (/datum/forensics) +2022-11-01T15:31:23.2323854Z call stack: +2022-11-01T15:31:23.2324155Z /datum/forensics (/datum/forensics): check blood() +2022-11-01T15:31:23.2325062Z /datum/forensics (/datum/forensics): New(the blood splatter (/obj/effect/decal/cleanable/blood/hitsplatter), null, null, /list (/list), null) +2022-11-01T15:31:23.2325582Z the blood splatter (/obj/effect/decal/cleanable/blood/hitsplatter): add blood DNA(/list (/list)) +2022-11-01T15:31:23.2326006Z Anthony Hayhurst (461) (/mob/living/carbon/human): spray blood(2, 1) +2022-11-01T15:31:23.2326395Z Rough Abrasion (/datum/wound/slash/flesh/moderate): wound injury(null, 2) +2022-11-01T15:31:23.2327172Z Rough Abrasion (/datum/wound/slash/flesh/moderate): apply wound(the monkey left leg (/obj/item/bodypart/l_leg/monkey), 0, null, 0, 2) +2022-11-01T15:31:23.2327747Z the monkey left leg (/obj/item/bodypart/l_leg/monkey): check wounding(2, 8, 5, 15, 2) +2022-11-01T15:31:23.2328155Z the monkey left leg (/obj/item/bodypart/l_leg/monkey): receive damage(8, 0, 0, 0, 1, null, 5, 15, 1, 2) +2022-11-01T15:31:23.2328594Z Monkey (/datum/species/monkey): apply damage(8, "brute", "l_leg", 0, Anthony Hayhurst (461) (/mob/living/carbon/human), 0, 0, 5, 15, 1, 2) +2022-11-01T15:31:23.2329362Z Monkey (/datum/species/monkey): spec attacked by(the glass shiv (/obj/item/knife/shiv), Abigail Schmidt (295) (/mob/living/carbon/human), the monkey left leg (/obj/item/bodypart/l_leg/monkey), Anthony Hayhurst (461) (/mob/living/carbon/human)) +2022-11-01T15:31:23.2329835Z ... +2022-11-01T15:31:23.2330578Z Anthony Hayhurst (461) (/mob/living/carbon/human): attackby(the glass shiv (/obj/item/knife/shiv), Abigail Schmidt (295) (/mob/living/carbon/human), null) +2022-11-01T15:31:23.2331348Z the glass shiv (/obj/item/knife/shiv): melee attack chain(Abigail Schmidt (295) (/mob/living/carbon/human), Anthony Hayhurst (461) (/mob/living/carbon/human), null) +2022-11-01T15:31:23.2332042Z /datum/ai_behavior/monkey_atta... (/datum/ai_behavior/monkey_attack_mob): monkey attack(/datum/ai_controller/monkey/an... (/datum/ai_controller/monkey/angry), Anthony Hayhurst (461) (/mob/living/carbon/human), 0.8, 0) +2022-11-01T15:31:23.2332773Z /datum/ai_behavior/monkey_atta... (/datum/ai_behavior/monkey_attack_mob): perform(0.8, /datum/ai_controller/monkey/an... (/datum/ai_controller/monkey/angry), "BB_monkey_current_attack_targe...") +2022-11-01T15:31:23.2333442Z /datum/ai_controller/monkey/an... (/datum/ai_controller/monkey/angry): ProcessBehavior(0.8, /datum/ai_behavior/monkey_atta... (/datum/ai_behavior/monkey_attack_mob)) +2022-11-01T15:31:23.2333980Z /datum/ai_controller/monkey/an... (/datum/ai_controller/monkey/angry): process(0.1) +2022-11-01T15:31:23.2334424Z AI Behavior Ticker (/datum/controller/subsystem/processing/ai_behaviors): fire(0) +2022-11-01T15:31:23.2334875Z AI Behavior Ticker (/datum/controller/subsystem/processing/ai_behaviors): ignite(0) +2022-11-01T15:31:23.2335885Z Master (/datum/controller/master): Loop(2) +2022-11-01T15:31:23.2336391Z Master (/datum/controller/master): StartProcessing(0) +2022-11-01T15:31:44.6315657Z ##[error][15:31:23] Runtime in _forensics.dm,232: Cannot execute null.resolve(). + proc name: check blood (/datum/forensics/proc/check_blood) + src: /datum/forensics (/datum/forensics) + call stack: + /datum/forensics (/datum/forensics): check blood() + /datum/forensics (/datum/forensics): New(the blood splatter (/obj/effect/decal/cleanable/blood/hitsplatter), null, null, /list (/list), null) + the blood splatter (/obj/effect/decal/cleanable/blood/hitsplatter): add blood DNA(/list (/list)) + Anthony Hayhurst (461) (/mob/living/carbon/human): spray blood(2, 1) + Rough Abrasion (/datum/wound/slash/flesh/moderate): wound injury(null, 2) + Rough Abrasion (/datum/wound/slash/flesh/moderate): apply wound(the monkey left leg (/obj/item/bodypart/l_leg/monkey), 0, null, 0, 2) + the monkey left leg (/obj/item/bodypart/l_leg/monkey): check wounding(2, 8, 5, 15, 2) + the monkey left leg (/obj/item/bodypart/l_leg/monkey): receive damage(8, 0, 0, 0, 1, null, 5, 15, 1, 2) + Monkey (/datum/species/monkey): apply damage(8, "brute", "l_leg", 0, Anthony Hayhurst (461) (/mob/living/carbon/human), 0, 0, 5, 15, 1, 2) + Monkey (/datum/species/monkey): spec attacked by(the glass shiv (/obj/item/knife/shiv), Abigail Schmidt (295) (/mob/living/carbon/human), the monkey left leg (/obj/item/bodypart/l_leg/monkey), Anthony Hayhurst (461) (/mob/living/carbon/human)) + ... + Anthony Hayhurst (461) (/mob/living/carbon/human): attackby(the glass shiv (/obj/item/knife/shiv), Abigail Schmidt (295) (/mob/living/carbon/human), null) + the glass shiv (/obj/item/knife/shiv): melee attack chain(Abigail Schmidt (295) (/mob/living/carbon/human), Anthony Hayhurst (461) (/mob/living/carbon/human), null) + /datum/ai_behavior/monkey_atta... (/datum/ai_behavior/monkey_attack_mob): monkey attack(/datum/ai_controller/monkey/an... (/datum/ai_controller/monkey/angry), Anthony Hayhurst (461) (/mob/living/carbon/human), 0.8, 0) + /datum/ai_behavior/monkey_atta... (/datum/ai_behavior/monkey_attack_mob): perform(0.8, /datum/ai_controller/monkey/an... (/datum/ai_controller/monkey/angry), "BB_monkey_current_attack_targe...") + /datum/ai_controller/monkey/an... (/datum/ai_controller/monkey/angry): ProcessBehavior(0.8, /datum/ai_behavior/monkey_atta... (/datum/ai_behavior/monkey_attack_mob)) + /datum/ai_controller/monkey/an... (/datum/ai_controller/monkey/angry): process(0.1) + AI Behavior Ticker (/datum/controller/subsystem/processing/ai_behaviors): fire(0) + AI Behavior Ticker (/datum/controller/subsystem/processing/ai_behaviors): ignite(0) + Master (/datum/controller/master): Loop(2) + Master (/datum/controller/master): StartProcessing(0) +2022-11-01T15:31:44.6330863Z ##[error]Monkey Business caused 1 runtimes +2022-11-01T15:31:44.6331536Z FAILURE #1: [15:31:23] Runtime in _forensics.dm,232: Cannot execute null.resolve(). +2022-11-01T15:31:44.6331910Z proc name: check blood (/datum/forensics/proc/check_blood) +2022-11-01T15:31:44.6332223Z src: /datum/forensics (/datum/forensics) +2022-11-01T15:31:44.6332475Z call stack: +2022-11-01T15:31:44.6332738Z /datum/forensics (/datum/forensics): check blood() +2022-11-01T15:31:44.6333171Z /datum/forensics (/datum/forensics): New(the blood splatter (/obj/effect/decal/cleanable/blood/hitsplatter), null, null, /list (/list), null) +2022-11-01T15:31:44.6333653Z the blood splatter (/obj/effect/decal/cleanable/blood/hitsplatter): add blood DNA(/list (/list)) +2022-11-01T15:31:44.6334238Z Anthony Hayhurst (461) (/mob/living/carbon/human): spray blood(2, 1) +2022-11-01T15:31:44.6334605Z Rough Abrasion (/datum/wound/slash/flesh/moderate): wound injury(null, 2) +2022-11-01T15:31:44.6335055Z Rough Abrasion (/datum/wound/slash/flesh/moderate): apply wound(the monkey left leg (/obj/item/bodypart/l_leg/monkey), 0, null, 0, 2) +2022-11-01T15:31:44.6335679Z the monkey left leg (/obj/item/bodypart/l_leg/monkey): check wounding(2, 8, 5, 15, 2) +2022-11-01T15:31:44.6336429Z the monkey left leg (/obj/item/bodypart/l_leg/monkey): receive damage(8, 0, 0, 0, 1, null, 5, 15, 1, 2) +2022-11-01T15:31:44.6336913Z Monkey (/datum/species/monkey): apply damage(8, "brute", "l_leg", 0, Anthony Hayhurst (461) (/mob/living/carbon/human), 0, 0, 5, 15, 1, 2) +2022-11-01T15:31:44.6337727Z Monkey (/datum/species/monkey): spec attacked by(the glass shiv (/obj/item/knife/shiv), Abigail Schmidt (295) (/mob/living/carbon/human), the monkey left leg (/obj/item/bodypart/l_leg/monkey), Anthony Hayhurst (461) (/mob/living/carbon/human)) +2022-11-01T15:31:44.6338196Z ... +2022-11-01T15:31:44.6338557Z Anthony Hayhurst (461) (/mob/living/carbon/human): attackby(the glass shiv (/obj/item/knife/shiv), Abigail Schmidt (295) (/mob/living/carbon/human), null) +2022-11-01T15:31:44.6339113Z the glass shiv (/obj/item/knife/shiv): melee attack chain(Abigail Schmidt (295) (/mob/living/carbon/human), Anthony Hayhurst (461) (/mob/living/carbon/human), null) +2022-11-01T15:31:44.6339859Z /datum/ai_behavior/monkey_atta... (/datum/ai_behavior/monkey_attack_mob): monkey attack(/datum/ai_controller/monkey/an... (/datum/ai_controller/monkey/angry), Anthony Hayhurst (461) (/mob/living/carbon/human), 0.8, 0) +2022-11-01T15:31:44.6340560Z /datum/ai_behavior/monkey_atta... (/datum/ai_behavior/monkey_attack_mob): perform(0.8, /datum/ai_controller/monkey/an... (/datum/ai_controller/monkey/angry), "BB_monkey_current_attack_targe...") +2022-11-01T15:31:44.6341189Z /datum/ai_controller/monkey/an... (/datum/ai_controller/monkey/angry): ProcessBehavior(0.8, /datum/ai_behavior/monkey_atta... (/datum/ai_behavior/monkey_attack_mob)) +2022-11-01T15:31:44.6341689Z /datum/ai_controller/monkey/an... (/datum/ai_controller/monkey/angry): process(0.1) +2022-11-01T15:31:44.6342103Z AI Behavior Ticker (/datum/controller/subsystem/processing/ai_behaviors): fire(0) +2022-11-01T15:31:44.6342523Z AI Behavior Ticker (/datum/controller/subsystem/processing/ai_behaviors): ignite(0) +2022-11-01T15:31:44.6342869Z Master (/datum/controller/master): Loop(2) +2022-11-01T15:31:44.6343234Z Master (/datum/controller/master): StartProcessing(0) at _forensics.dm:232 +2022-11-01T15:31:44.6345243Z ##[error]FAIL /datum/unit_test/monkey_business 38.6s +2022-11-01T15:31:46.9833542Z ##[group]/datum/unit_test/create_and_destroy +2022-11-01T15:37:15.1785471Z +2022-11-01T15:37:15.1787041Z PASS /datum/unit_test/create_and_destroy 328.2s +2022-11-01T15:37:15.1788074Z ##[endgroup] +2022-11-01T15:37:15.2115771Z Shutting down Chat subsystem... +2022-11-01T15:37:15.2116567Z Shutting down Init Profiler subsystem... +2022-11-01T15:37:15.2208167Z Shutting down Ban Cache subsystem... +2022-11-01T15:37:15.2208478Z Shutting down Stat Panels subsystem... +2022-11-01T15:37:15.2208750Z Shutting down Explosions subsystem... +2022-11-01T15:37:15.2209680Z Shutting down Pathfinder subsystem... +2022-11-01T15:37:15.2210086Z Shutting down Minor Mapping subsystem... +2022-11-01T15:37:15.2210409Z Shutting down Shuttle subsystem... +2022-11-01T15:37:15.2210690Z Shutting down Lighting subsystem... +2022-11-01T15:37:15.2210997Z Shutting down XKeyScore subsystem... +2022-11-01T15:37:15.2211299Z Shutting down PRISM subsystem... +2022-11-01T15:37:15.2211603Z Shutting down Icon Smoothing subsystem... +2022-11-01T15:37:15.2211910Z Shutting down Assets subsystem... +2022-11-01T15:37:15.2212179Z Shutting down Vote subsystem... +2022-11-01T15:37:15.2212502Z Shutting down Persistent Paintings subsystem... +2022-11-01T15:37:15.2212991Z Shutting down Persistence subsystem... +2022-11-01T15:37:15.2213473Z Shutting down Atmospherics subsystem... +2022-11-01T15:37:15.2213821Z Shutting down Wiremod Composite Templates subsystem... +2022-11-01T15:37:15.2214138Z Shutting down Wet floors subsystem... +2022-11-01T15:37:15.2214441Z Shutting down Weather subsystem... +2022-11-01T15:37:15.2214736Z Shutting down Wardrobe subsystem... +2022-11-01T15:37:15.2215362Z Shutting down Verb Manager subsystem... +2022-11-01T15:37:15.2215678Z Shutting down Tram Process subsystem... +2022-11-01T15:37:15.2215965Z Shutting down Traitor subsystem... +2022-11-01T15:37:15.2216263Z Shutting down Throwing subsystem... +2022-11-01T15:37:15.2216556Z Shutting down tgui subsystem... +2022-11-01T15:37:15.2216873Z Shutting down Supermatter Cascade subsystem... +2022-11-01T15:37:15.2217334Z Shutting down Sun subsystem... +2022-11-01T15:37:15.2217957Z Shutting down Speech Controller subsystem... +2022-11-01T15:37:15.2218246Z Shutting down Space Drift subsystem... +2022-11-01T15:37:15.2218517Z Shutting down Smoke subsystem... +2022-11-01T15:37:15.2218784Z Shutting down Singularity subsystem... +2022-11-01T15:37:15.2219050Z Shutting down Radio subsystem... +2022-11-01T15:37:15.2219464Z Shutting down Radiation subsystem... +2022-11-01T15:37:15.2219884Z Shutting down Projectiles subsystem... +2022-11-01T15:37:15.2220146Z Shutting down Processing subsystem... +2022-11-01T15:37:15.2220418Z Shutting down Points of Interest subsystem... +2022-11-01T15:37:15.2220689Z Shutting down Plumbing subsystem... +2022-11-01T15:37:15.2221061Z Shutting down Ping subsystem... +2022-11-01T15:37:15.2221313Z Shutting down Parallax subsystem... +2022-11-01T15:37:15.2221568Z Shutting down pAI subsystem... +2022-11-01T15:37:15.2221814Z Shutting down Overlay subsystem... +2022-11-01T15:37:15.5486394Z Shutting down Objects subsystem... +2022-11-01T15:37:15.5489952Z Shutting down Obj Tab Items subsystem... +2022-11-01T15:37:15.5493560Z Shutting down NPC Pool subsystem... +2022-11-01T15:37:15.5496794Z Shutting down Night Shift subsystem... +2022-11-01T15:37:15.5500936Z Shutting down Movement Loops subsystem... +2022-11-01T15:37:15.5503981Z Shutting down Movement Handler subsystem... +2022-11-01T15:37:15.5507931Z Shutting down MouseEntered subsystem... +2022-11-01T15:37:15.5511418Z Shutting down Mood subsystem... +2022-11-01T15:37:15.5514382Z Shutting down Mobs subsystem... +2022-11-01T15:37:15.5517620Z Shutting down Materials subsystem... +2022-11-01T15:37:15.5520737Z Shutting down Lua Scripting subsystem... +2022-11-01T15:37:15.5698324Z Shutting down Library Loading subsystem... +2022-11-01T15:37:15.5702028Z Shutting down Lag Switch subsystem... +2022-11-01T15:37:15.5705452Z Shutting down Idling NPC Pool subsystem... +2022-11-01T15:37:15.5708861Z Shutting down Foam subsystem... +2022-11-01T15:37:15.5711826Z Shutting down Fluid subsystem... +2022-11-01T15:37:15.5714787Z Shutting down Fire Burning subsystem... +2022-11-01T15:37:15.5717774Z Shutting down Fast Processing subsystem... +2022-11-01T15:37:15.5720765Z Shutting down Eigenstates subsystem... +2022-11-01T15:37:15.5724720Z Shutting down Disease subsystem... +2022-11-01T15:37:15.5728367Z Shutting down Datum Component System subsystem... +2022-11-01T15:37:15.5731629Z Shutting down Conveyor Belts subsystem... +2022-11-01T15:37:15.5735561Z Shutting down Communications subsystem... +2022-11-01T15:37:15.5741612Z Shutting down Clock Component subsystem... +2022-11-01T15:37:15.5741985Z Shutting down Circuit Components subsystem... +2022-11-01T15:37:15.5744678Z Shutting down Blackmarket subsystem... +2022-11-01T15:37:15.5746962Z Shutting down Basic Avoidance subsystem... +2022-11-01T15:37:15.5747274Z Shutting down Aura Healing subsystem... +2022-11-01T15:37:15.5747561Z Shutting down Augury subsystem... +2022-11-01T15:37:15.5749911Z Shutting down Asset Loading subsystem... +2022-11-01T15:37:15.5754181Z Shutting down Antag HUDs subsystem... +2022-11-01T15:37:15.5758062Z Shutting down Ambience subsystem... +2022-11-01T15:37:15.5761140Z Shutting down Addiction subsystem... +2022-11-01T15:37:15.5765437Z Shutting down Acid subsystem... +2022-11-01T15:37:15.5766113Z Shutting down Timer subsystem... +2022-11-01T15:37:15.5767908Z Shutting down Sound Loops subsystem... +2022-11-01T15:37:15.5769204Z Shutting down Runechat subsystem... +2022-11-01T15:37:15.5770456Z Shutting down Skills subsystem... +2022-11-01T15:37:15.5771990Z Shutting down Machines subsystem... +2022-11-01T15:37:15.5772983Z Shutting down Language subsystem... +2022-11-01T15:37:15.5774580Z Shutting down Atoms subsystem... +2022-11-01T15:37:15.5841490Z Shutting down Restaurant subsystem... +2022-11-01T15:37:15.5842179Z Shutting down Economy subsystem... +2022-11-01T15:37:15.5843973Z Shutting down Spatial Grid subsystem... +2022-11-01T15:37:15.5846087Z Shutting down Networks subsystem... +2022-11-01T15:37:15.5847879Z Shutting down Time Tracking subsystem... +2022-11-01T15:37:15.5849604Z Shutting down Research subsystem... +2022-11-01T15:37:15.5850285Z Shutting down Early Assets subsystem... +2022-11-01T15:37:15.5850811Z Shutting down Mapping subsystem... +2022-11-01T15:37:15.5852025Z Shutting down Trading Card Game subsystem... +2022-11-01T15:37:15.5852482Z Shutting down Ticker subsystem... +2022-11-01T15:37:15.5872565Z Unable to locate admins backup file. +2022-11-01T15:37:15.5885253Z Shutting down AI Controller Ticker subsystem... +2022-11-01T15:37:15.5885786Z Shutting down AI Behavior Ticker subsystem... +2022-11-01T15:37:15.5886089Z Shutting down AI movement subsystem... +2022-11-01T15:37:15.5886382Z Shutting down Jobs subsystem... +2022-11-01T15:37:15.5886664Z Shutting down IDs and Access subsystem... +2022-11-01T15:37:15.5887205Z Shutting down Events subsystem... +2022-11-01T15:37:15.5887507Z Shutting down Reagents subsystem... +2022-11-01T15:37:15.5887770Z Shutting down Quirks subsystem... +2022-11-01T15:37:15.5888040Z Shutting down Station subsystem... +2022-11-01T15:37:15.5888322Z Shutting down Achievements subsystem... +2022-11-01T15:37:15.5888724Z Shutting down Discord subsystem... +2022-11-01T15:37:15.5889010Z Shutting down Security Level subsystem... +2022-11-01T15:37:15.5889306Z Shutting down Vis contents overlays subsystem... +2022-11-01T15:37:15.5889608Z Shutting down Greyscale subsystem... +2022-11-01T15:37:15.5889894Z Shutting down Instruments subsystem... +2022-11-01T15:37:15.5890172Z Shutting down Sounds subsystem... +2022-11-01T15:37:15.5893120Z Shutting down Input subsystem... +2022-11-01T15:37:15.5893553Z Shutting down Server Tasks subsystem... +2022-11-01T15:37:15.5893838Z Shutting down Blackbox subsystem... +2022-11-01T15:37:15.5894135Z Shutting down Database subsystem... +2022-11-01T15:37:15.5898881Z Shutting down Garbage subsystem... +2022-11-01T15:37:19.6680958Z Shutting down Title Screen subsystem... +2022-11-01T15:37:19.6687147Z Shutting down Profiler subsystem... +2022-11-01T15:37:19.6687404Z Shutdown complete +2022-11-01T15:37:19.6691132Z Test run failed! +2022-11-01T15:37:19.6691327Z Total runtimes: 1 +2022-11-01T15:37:19.6691534Z Unit Tests failed! +2022-11-01T15:37:23.9554639Z cat: ci_test/data/logs/ci/clean_run.lk: No such file or directory +2022-11-01T15:37:23.9572826Z ##[error]Process completed with exit code 1. +2022-11-01T15:37:23.9632357Z ##[group]Run actions/upload-artifact@v3 +2022-11-01T15:37:23.9632655Z with: +2022-11-01T15:37:23.9632880Z name: test_artifacts_tramstation +2022-11-01T15:37:23.9633150Z path: data/screenshots_new/ +2022-11-01T15:37:23.9633405Z retention-days: 1 +2022-11-01T15:37:23.9633657Z if-no-files-found: warn +2022-11-01T15:37:23.9633904Z ##[endgroup] +2022-11-01T15:37:24.0862474Z With the provided path, there will be 85 files uploaded +2022-11-01T15:37:24.0868892Z Starting artifact upload +2022-11-01T15:37:24.0869932Z For more detailed logs during the artifact upload process, enable step-debugging: https://docs.github.com/actions/monitoring-and-troubleshooting-workflows/enabling-debug-logging#enabling-step-debug-logging +2022-11-01T15:37:24.0872765Z Artifact name is valid! +2022-11-01T15:37:24.2152427Z Container for artifact "test_artifacts_tramstation" successfully created. Starting upload of file(s) +2022-11-01T15:37:31.3325316Z Total size of all the files uploaded is 138917 bytes +2022-11-01T15:37:31.3326061Z File upload process has finished. Finalizing the artifact upload +2022-11-01T15:37:31.4289346Z Artifact has been finalized. All files have been successfully uploaded! +2022-11-01T15:37:31.4291368Z +2022-11-01T15:37:31.4293992Z The raw size of all the files that were specified for upload is 139272 bytes +2022-11-01T15:37:31.4298141Z The size of all the files that were uploaded is 138917 bytes. This takes into account any gzip compression used to reduce the upload size, time and storage +2022-11-01T15:37:31.4301961Z +2022-11-01T15:37:31.4303707Z Note: The size of downloaded zips can differ significantly from the reported size. For more information see: https://github.com/actions/upload-artifact#zipped-artifact-downloads +2022-11-01T15:37:31.4304326Z +2022-11-01T15:37:31.4305332Z Artifact test_artifacts_tramstation has been successfully uploaded! +2022-11-01T15:37:31.4451625Z Post job cleanup. +2022-11-01T15:37:31.5950708Z [command]/usr/bin/git version +2022-11-01T15:37:31.6017097Z git version 2.38.1 +2022-11-01T15:37:31.6089966Z Temporarily overriding HOME='/home/runner/work/_temp/b4760186-42be-4069-aaa5-837bedeee4b8' before making global git config changes +2022-11-01T15:37:31.6092488Z Adding repository directory to the temporary git global config as a safe directory +2022-11-01T15:37:31.6100037Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/tgstation/tgstation +2022-11-01T15:37:31.6160949Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2022-11-01T15:37:31.6210420Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || : +2022-11-01T15:37:31.6542403Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2022-11-01T15:37:31.6580227Z http.https://github.com/.extraheader +2022-11-01T15:37:31.6595477Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader +2022-11-01T15:37:31.6646421Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || : +2022-11-01T15:37:31.7192910Z Print service container logs: e281b5d836644f53b33d06a88663b086_mysqllatest_c6a68e +2022-11-01T15:37:31.7200768Z ##[command]/usr/bin/docker logs --details cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1 +2022-11-01T15:37:31.7459373Z 2022-11-01T15:22:37.911886Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead. +2022-11-01T15:37:31.7460001Z 2022-11-01 15:22:37+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.31-1.el8 started. +2022-11-01T15:37:31.7461115Z 2022-11-01T15:22:37.912008Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.31) initializing of server in progress as process 79 +2022-11-01T15:37:31.7461587Z 2022-11-01T15:22:37.920633Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. +2022-11-01T15:37:31.7462180Z 2022-11-01T15:22:38.395422Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. +2022-11-01T15:37:31.7462662Z 2022-11-01T15:22:39.587998Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option. +2022-11-01T15:37:31.7463283Z 2022-11-01T15:22:42.870247Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead. +2022-11-01T15:37:31.7463804Z 2022-11-01T15:22:42.873029Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.31) starting as process 128 +2022-11-01T15:37:31.7464196Z 2022-11-01T15:22:42.887863Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. +2022-11-01T15:37:31.7464742Z 2022-11-01T15:22:43.221367Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. +2022-11-01T15:37:31.7465133Z 2022-11-01T15:22:43.520686Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. +2022-11-01T15:37:31.7465779Z 2022-11-01T15:22:43.520748Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel. +2022-11-01T15:37:31.7466727Z 2022-11-01T15:22:43.522020Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory. +2022-11-01T15:37:31.7467384Z 2022-11-01T15:22:43.546149Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.31' socket: '/var/run/mysqld/mysqld.sock' port: 0 MySQL Community Server - GPL. +2022-11-01T15:37:31.7468097Z 2022-11-01T15:22:43.546223Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: /var/run/mysqld/mysqlx.sock +2022-11-01T15:37:31.7468696Z Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it. +2022-11-01T15:37:31.7576656Z Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it. +2022-11-01T15:37:31.7577123Z 2022-11-01 15:22:37+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql' +2022-11-01T15:37:31.7579077Z Warning: Unable to load '/usr/share/zoneinfo/tzdata.zi' as time zone. Skipping it. +2022-11-01T15:37:31.7579519Z Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it. +2022-11-01T15:37:31.7582066Z Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it. +2022-11-01T15:37:31.7582539Z 2022-11-01T15:22:46.179932Z 10 [System] [MY-013172] [Server] Received SHUTDOWN from user root. Shutting down mysqld (Version: 8.0.31). +2022-11-01T15:37:31.7583335Z 2022-11-01T15:22:47.016783Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.31) MySQL Community Server - GPL. +2022-11-01T15:37:31.7583954Z 2022-11-01T15:22:47.446654Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead. +2022-11-01T15:37:31.7584942Z 2022-11-01T15:22:47.448502Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.31) starting as process 1 +2022-11-01T15:37:31.7585376Z 2022-11-01T15:22:47.455938Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. +2022-11-01T15:37:31.7585762Z 2022-11-01T15:22:47.684708Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. +2022-11-01T15:37:31.7586149Z 2022-11-01T15:22:47.881879Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. +2022-11-01T15:37:31.7586624Z 2022-11-01T15:22:47.881923Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel. +2022-11-01T15:37:31.7587101Z 2022-11-01 15:22:37+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.31-1.el8 started. +2022-11-01T15:37:31.7587663Z 2022-11-01T15:22:47.883353Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory. +2022-11-01T15:37:31.7588411Z 2022-11-01T15:22:47.904354Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock +2022-11-01T15:37:31.7588952Z 2022-11-01T15:22:47.904482Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.31' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL. +2022-11-01T15:37:31.7589414Z 2022-11-01 15:22:37+00:00 [Note] [Entrypoint]: Initializing database files +2022-11-01T15:37:31.7589752Z 2022-11-01 15:22:42+00:00 [Note] [Entrypoint]: Database files initialized +2022-11-01T15:37:31.7590084Z 2022-11-01 15:22:42+00:00 [Note] [Entrypoint]: Starting temporary server +2022-11-01T15:37:31.7590409Z 2022-11-01 15:22:43+00:00 [Note] [Entrypoint]: Temporary server started. +2022-11-01T15:37:31.7590742Z '/var/lib/mysql/mysql.sock' -> '/var/run/mysqld/mysqld.sock' +2022-11-01T15:37:31.7590984Z +2022-11-01T15:37:31.7591244Z 2022-11-01 15:22:46+00:00 [Note] [Entrypoint]: Stopping temporary server +2022-11-01T15:37:31.7591577Z 2022-11-01 15:22:47+00:00 [Note] [Entrypoint]: Temporary server stopped +2022-11-01T15:37:31.7592516Z +2022-11-01T15:37:31.7592791Z 2022-11-01 15:22:47+00:00 [Note] [Entrypoint]: MySQL init process done. Ready for start up. +2022-11-01T15:37:31.7593063Z +2022-11-01T15:37:31.7608136Z Stop and remove container: e281b5d836644f53b33d06a88663b086_mysqllatest_c6a68e +2022-11-01T15:37:31.7616365Z ##[command]/usr/bin/docker rm --force cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1 +2022-11-01T15:37:32.0241098Z cd1d0f20f8f882176c274fb882d88cea0d4e9a7b2aebc33f1123c02f7b908aa1 +2022-11-01T15:37:32.0279431Z Remove container network: github_network_7d8483aa88b2460d91b946ac72079065 +2022-11-01T15:37:32.0288111Z ##[command]/usr/bin/docker network rm github_network_7d8483aa88b2460d91b946ac72079065 +2022-11-01T15:37:32.1478643Z github_network_7d8483aa88b2460d91b946ac72079065 +2022-11-01T15:37:32.1688580Z Cleaning up orphan processes diff --git a/tools/pull_request_hooks/flakyTestPayloads/multiple_failures.txt b/tools/pull_request_hooks/flakyTestPayloads/multiple_failures.txt new file mode 100644 index 000000000000..a1a52cdb1a3f --- /dev/null +++ b/tools/pull_request_hooks/flakyTestPayloads/multiple_failures.txt @@ -0,0 +1,8 @@ +2022-11-22T05:59:45.2618397Z ##[group]/datum/unit_test/shapeshift_spell +2022-11-22T05:59:45.4118582Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape Juggernaut. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). +2022-11-22T05:59:45.4119786Z FAILURE #1: Shapeshift spell: Dragon Form failed to transform the dummy into the shape . (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65 +2022-11-22T05:59:45.2618397Z ##[endgroup] +2022-11-22T05:59:45.2618397Z ##[group]/datum/unit_test/more_shapeshift_spell +2022-11-22T05:59:45.4118582Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape Juggernaut. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). +2022-11-22T05:59:45.4119786Z FAILURE #1: Shapeshift spell: Dragon Form failed to transform the dummy into the shape . (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65 +2022-11-22T05:59:45.2618397Z ##[endgroup] diff --git a/tools/pull_request_hooks/flakyTestPayloads/shapeshift.txt b/tools/pull_request_hooks/flakyTestPayloads/shapeshift.txt new file mode 100644 index 000000000000..b151f1888e13 --- /dev/null +++ b/tools/pull_request_hooks/flakyTestPayloads/shapeshift.txt @@ -0,0 +1,2466 @@ +2022-11-22T05:53:38.0374888Z Requested labels: ubuntu-20.04 +2022-11-22T05:53:38.0374935Z Job defined at: tgstation/tgstation/.github/workflows/run_integration_tests.yml@refs/pull/71181/merge +2022-11-22T05:53:38.0374956Z Waiting for a runner to pick up this job... +2022-11-22T05:53:38.4265982Z Job is waiting for a hosted runner to come online. +2022-11-22T05:53:41.3842133Z Job is about to start running on the hosted runner: GitHub Actions 11 (hosted) +2022-11-22T05:53:43.5319684Z Current runner version: '2.299.1' +2022-11-22T05:53:43.5346147Z ##[group]Operating System +2022-11-22T05:53:43.5346780Z Ubuntu +2022-11-22T05:53:43.5347041Z 20.04.5 +2022-11-22T05:53:43.5347353Z LTS +2022-11-22T05:53:43.5347672Z ##[endgroup] +2022-11-22T05:53:43.5347952Z ##[group]Runner Image +2022-11-22T05:53:43.5348342Z Image: ubuntu-20.04 +2022-11-22T05:53:43.5348676Z Version: 20221027.1 +2022-11-22T05:53:43.5349164Z Included Software: https://github.com/actions/runner-images/blob/ubuntu20/20221027.1/images/linux/Ubuntu2004-Readme.md +2022-11-22T05:53:43.5349811Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu20%2F20221027.1 +2022-11-22T05:53:43.5350263Z ##[endgroup] +2022-11-22T05:53:43.5350646Z ##[group]Runner Image Provisioner +2022-11-22T05:53:43.5350944Z 2.0.91.1 +2022-11-22T05:53:43.5351255Z ##[endgroup] +2022-11-22T05:53:43.5352178Z ##[group]GITHUB_TOKEN Permissions +2022-11-22T05:53:43.5352874Z Actions: read +2022-11-22T05:53:43.5353161Z Checks: read +2022-11-22T05:53:43.5353647Z Contents: read +2022-11-22T05:53:43.5353978Z Deployments: read +2022-11-22T05:53:43.5354356Z Discussions: read +2022-11-22T05:53:43.5354705Z Issues: read +2022-11-22T05:53:43.5354973Z Metadata: read +2022-11-22T05:53:43.5355295Z Packages: read +2022-11-22T05:53:43.5355637Z Pages: read +2022-11-22T05:53:43.5356005Z PullRequests: read +2022-11-22T05:53:43.5356320Z RepositoryProjects: read +2022-11-22T05:53:43.5356684Z SecurityEvents: read +2022-11-22T05:53:43.5357015Z Statuses: read +2022-11-22T05:53:43.5357311Z ##[endgroup] +2022-11-22T05:53:43.5360971Z Secret source: None +2022-11-22T05:53:43.5361464Z Prepare workflow directory +2022-11-22T05:53:43.6494787Z Prepare all required actions +2022-11-22T05:53:43.6676576Z Getting action download info +2022-11-22T05:53:43.8661995Z Download action repository 'actions/checkout@v3' (SHA:93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8) +2022-11-22T05:53:44.2330502Z Download action repository 'actions/cache@v3' (SHA:9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7) +2022-11-22T05:53:44.4868016Z Download action repository 'actions/upload-artifact@v3' (SHA:83fd05a356d7e2593de66fc9913b3002723633cb) +2022-11-22T05:53:44.7641359Z Uses: tgstation/tgstation/.github/workflows/run_integration_tests.yml +2022-11-22T05:53:44.7643311Z ##[group] Inputs +2022-11-22T05:53:44.7643604Z map: metastation +2022-11-22T05:53:44.7643819Z major: +2022-11-22T05:53:44.7643991Z minor: +2022-11-22T05:53:44.7644186Z ##[endgroup] +2022-11-22T05:53:44.7644691Z Complete job name: Integration Tests (metastation) / run_integration_tests +2022-11-22T05:53:44.8338079Z ##[group]Checking docker version +2022-11-22T05:53:44.8354483Z ##[command]/usr/bin/docker version --format '{{.Server.APIVersion}}' +2022-11-22T05:53:45.0506135Z '1.41' +2022-11-22T05:53:45.0515561Z Docker daemon API version: '1.41' +2022-11-22T05:53:45.0515967Z ##[command]/usr/bin/docker version --format '{{.Client.APIVersion}}' +2022-11-22T05:53:45.0778446Z '1.41' +2022-11-22T05:53:45.0797454Z Docker client API version: '1.41' +2022-11-22T05:53:45.0803406Z ##[endgroup] +2022-11-22T05:53:45.0807033Z ##[group]Clean up resources from previous jobs +2022-11-22T05:53:45.0813032Z ##[command]/usr/bin/docker ps --all --quiet --no-trunc --filter "label=290506" +2022-11-22T05:53:45.1033571Z ##[command]/usr/bin/docker network prune --force --filter "label=290506" +2022-11-22T05:53:45.1259718Z ##[endgroup] +2022-11-22T05:53:45.1260017Z ##[group]Create local container network +2022-11-22T05:53:45.1270797Z ##[command]/usr/bin/docker network create --label 290506 github_network_7853d588c20f407bba7b04c3e70db729 +2022-11-22T05:53:45.1987626Z 71dabce427017ea3bab6d7ce48f6c7aaee980f9942b9d66f36e69e74f5fd921f +2022-11-22T05:53:45.2004385Z ##[endgroup] +2022-11-22T05:53:45.2093406Z ##[group]Starting mysql service container +2022-11-22T05:53:45.2113754Z ##[command]/usr/bin/docker pull mysql:latest +2022-11-22T05:53:45.4670300Z latest: Pulling from library/mysql +2022-11-22T05:53:45.5358977Z 0bb5c0c24818: Pulling fs layer +2022-11-22T05:53:45.5359400Z cbb3106fbb5a: Pulling fs layer +2022-11-22T05:53:45.5359691Z 550536ae1d5e: Pulling fs layer +2022-11-22T05:53:45.5360232Z 33f98928796e: Pulling fs layer +2022-11-22T05:53:45.5360486Z a341087cff11: Pulling fs layer +2022-11-22T05:53:45.5360746Z 0e26ac5b33f6: Pulling fs layer +2022-11-22T05:53:45.5360985Z c883b83a7112: Pulling fs layer +2022-11-22T05:53:45.5361246Z 873af5c876c6: Pulling fs layer +2022-11-22T05:53:45.5361483Z 33f98928796e: Waiting +2022-11-22T05:53:45.5361701Z a341087cff11: Waiting +2022-11-22T05:53:45.5361926Z 0e26ac5b33f6: Waiting +2022-11-22T05:53:45.5362161Z c883b83a7112: Waiting +2022-11-22T05:53:45.5362390Z 8fe8ebd061d5: Pulling fs layer +2022-11-22T05:53:45.5362660Z 7ac2553cf6b4: Pulling fs layer +2022-11-22T05:53:45.5362912Z ad655e218e12: Pulling fs layer +2022-11-22T05:53:45.5363152Z 8fe8ebd061d5: Waiting +2022-11-22T05:53:45.5363368Z 7ac2553cf6b4: Waiting +2022-11-22T05:53:45.5363591Z ad655e218e12: Waiting +2022-11-22T05:53:45.5364183Z 873af5c876c6: Waiting +2022-11-22T05:53:45.6234256Z cbb3106fbb5a: Download complete +2022-11-22T05:53:45.6623068Z 550536ae1d5e: Verifying Checksum +2022-11-22T05:53:45.6623379Z 550536ae1d5e: Download complete +2022-11-22T05:53:45.7431784Z a341087cff11: Verifying Checksum +2022-11-22T05:53:45.7432683Z a341087cff11: Download complete +2022-11-22T05:53:45.8330384Z 0e26ac5b33f6: Verifying Checksum +2022-11-22T05:53:45.8331535Z 0e26ac5b33f6: Download complete +2022-11-22T05:53:45.8722359Z 0bb5c0c24818: Verifying Checksum +2022-11-22T05:53:45.8722993Z 0bb5c0c24818: Download complete +2022-11-22T05:53:45.8885518Z 33f98928796e: Verifying Checksum +2022-11-22T05:53:45.8886144Z 33f98928796e: Download complete +2022-11-22T05:53:45.9620666Z 873af5c876c6: Verifying Checksum +2022-11-22T05:53:45.9624337Z 873af5c876c6: Download complete +2022-11-22T05:53:46.0723260Z 7ac2553cf6b4: Verifying Checksum +2022-11-22T05:53:46.0729266Z 7ac2553cf6b4: Download complete +2022-11-22T05:53:46.1847787Z ad655e218e12: Verifying Checksum +2022-11-22T05:53:46.1852352Z ad655e218e12: Download complete +2022-11-22T05:53:46.4992758Z 8fe8ebd061d5: Verifying Checksum +2022-11-22T05:53:46.4993194Z 8fe8ebd061d5: Download complete +2022-11-22T05:53:46.6873819Z c883b83a7112: Verifying Checksum +2022-11-22T05:53:46.6894121Z c883b83a7112: Download complete +2022-11-22T05:53:47.4927005Z 0bb5c0c24818: Pull complete +2022-11-22T05:53:48.3726655Z cbb3106fbb5a: Pull complete +2022-11-22T05:53:48.4410442Z 550536ae1d5e: Pull complete +2022-11-22T05:53:48.6472190Z 33f98928796e: Pull complete +2022-11-22T05:53:48.7065871Z a341087cff11: Pull complete +2022-11-22T05:53:48.7593552Z 0e26ac5b33f6: Pull complete +2022-11-22T05:53:50.6234832Z c883b83a7112: Pull complete +2022-11-22T05:53:50.6783015Z 873af5c876c6: Pull complete +2022-11-22T05:53:55.9655421Z 8fe8ebd061d5: Pull complete +2022-11-22T05:53:56.0172449Z 7ac2553cf6b4: Pull complete +2022-11-22T05:53:56.0721706Z ad655e218e12: Pull complete +2022-11-22T05:53:56.0770468Z Digest: sha256:96439dd0d8d085cd90c8001be2c9dde07b8a68b472bd20efcbe3df78cff66492 +2022-11-22T05:53:56.0780303Z Status: Downloaded newer image for mysql:latest +2022-11-22T05:53:56.0800496Z docker.io/library/mysql:latest +2022-11-22T05:53:56.0907615Z ##[command]/usr/bin/docker create --name 57e9ed27eab042ee8653063f2a3e4b8e_mysqllatest_56fbdc --label 290506 --network github_network_7853d588c20f407bba7b04c3e70db729 --network-alias mysql -p 3306 --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 -e "MYSQL_ROOT_PASSWORD=root" -e GITHUB_ACTIONS=true -e CI=true mysql:latest +2022-11-22T05:53:56.1330409Z 46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df +2022-11-22T05:53:56.1355904Z ##[command]/usr/bin/docker start 46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df +2022-11-22T05:53:56.5058287Z 46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df +2022-11-22T05:53:56.5093538Z ##[command]/usr/bin/docker ps --all --filter id=46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df --filter status=running --no-trunc --format "{{.ID}} {{.Status}}" +2022-11-22T05:53:56.5325566Z 46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df Up Less than a second (health: starting) +2022-11-22T05:53:56.5337249Z ##[command]/usr/bin/docker port 46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df +2022-11-22T05:53:56.5611482Z 3306/tcp -> 0.0.0.0:49153 +2022-11-22T05:53:56.5612227Z 3306/tcp -> :::49153 +2022-11-22T05:53:56.5704537Z ##[endgroup] +2022-11-22T05:53:56.5734437Z ##[group]Waiting for all services to be ready +2022-11-22T05:53:56.5780170Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" 46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df +2022-11-22T05:53:56.6025583Z starting +2022-11-22T05:53:56.6049671Z mysql service is starting, waiting 2 seconds before checking again. +2022-11-22T05:53:58.6031859Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" 46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df +2022-11-22T05:53:58.6340318Z starting +2022-11-22T05:53:58.6357312Z mysql service is starting, waiting 3 seconds before checking again. +2022-11-22T05:54:02.3718080Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" 46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df +2022-11-22T05:54:02.4089096Z starting +2022-11-22T05:54:02.4104252Z mysql service is starting, waiting 8 seconds before checking again. +2022-11-22T05:54:10.5021256Z ##[command]/usr/bin/docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" 46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df +2022-11-22T05:54:10.5229049Z healthy +2022-11-22T05:54:10.5246329Z mysql service is healthy. +2022-11-22T05:54:10.5246744Z ##[endgroup] +2022-11-22T05:54:10.5622212Z ##[group]Run actions/checkout@v3 +2022-11-22T05:54:10.5622478Z with: +2022-11-22T05:54:10.5622701Z repository: tgstation/tgstation +2022-11-22T05:54:10.5623165Z token: *** +2022-11-22T05:54:10.5623358Z ssh-strict: true +2022-11-22T05:54:10.5623595Z persist-credentials: true +2022-11-22T05:54:10.5623831Z clean: true +2022-11-22T05:54:10.5624017Z fetch-depth: 1 +2022-11-22T05:54:10.5624216Z lfs: false +2022-11-22T05:54:10.5624410Z submodules: false +2022-11-22T05:54:10.5624622Z set-safe-directory: true +2022-11-22T05:54:10.5624849Z ##[endgroup] +2022-11-22T05:54:10.8769664Z Syncing repository: tgstation/tgstation +2022-11-22T05:54:10.8771464Z ##[group]Getting Git version info +2022-11-22T05:54:10.8771995Z Working directory is '/home/runner/work/tgstation/tgstation' +2022-11-22T05:54:10.8772502Z [command]/usr/bin/git version +2022-11-22T05:54:10.8934189Z git version 2.38.1 +2022-11-22T05:54:10.8936302Z ##[endgroup] +2022-11-22T05:54:10.8957434Z Temporarily overriding HOME='/home/runner/work/_temp/98913b85-f6f6-46e0-b153-ead562301846' before making global git config changes +2022-11-22T05:54:10.8957893Z Adding repository directory to the temporary git global config as a safe directory +2022-11-22T05:54:10.8958437Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/tgstation/tgstation +2022-11-22T05:54:10.9000496Z Deleting the contents of '/home/runner/work/tgstation/tgstation' +2022-11-22T05:54:10.9006615Z ##[group]Initializing the repository +2022-11-22T05:54:10.9011194Z [command]/usr/bin/git init /home/runner/work/tgstation/tgstation +2022-11-22T05:54:10.9106800Z hint: Using 'master' as the name for the initial branch. This default branch name +2022-11-22T05:54:10.9107434Z hint: is subject to change. To configure the initial branch name to use in all +2022-11-22T05:54:10.9108265Z hint: of your new repositories, which will suppress this warning, call: +2022-11-22T05:54:10.9108574Z hint: +2022-11-22T05:54:10.9109084Z hint: git config --global init.defaultBranch +2022-11-22T05:54:10.9109349Z hint: +2022-11-22T05:54:10.9109712Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and +2022-11-22T05:54:10.9110192Z hint: 'development'. The just-created branch can be renamed via this command: +2022-11-22T05:54:10.9110453Z hint: +2022-11-22T05:54:10.9110705Z hint: git branch -m +2022-11-22T05:54:10.9123730Z Initialized empty Git repository in /home/runner/work/tgstation/tgstation/.git/ +2022-11-22T05:54:10.9133692Z [command]/usr/bin/git remote add origin https://github.com/tgstation/tgstation +2022-11-22T05:54:10.9191164Z ##[endgroup] +2022-11-22T05:54:10.9191935Z ##[group]Disabling automatic garbage collection +2022-11-22T05:54:10.9196662Z [command]/usr/bin/git config --local gc.auto 0 +2022-11-22T05:54:10.9229900Z ##[endgroup] +2022-11-22T05:54:10.9231230Z ##[group]Setting up auth +2022-11-22T05:54:10.9239946Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2022-11-22T05:54:10.9275132Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || : +2022-11-22T05:54:10.9691507Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2022-11-22T05:54:10.9715174Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || : +2022-11-22T05:54:10.9955394Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic *** +2022-11-22T05:54:10.9987844Z ##[endgroup] +2022-11-22T05:54:10.9988301Z ##[group]Fetching the repository +2022-11-22T05:54:10.9999455Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin +806eced1b6aa2166e665748be44c5c519833b2e2:refs/remotes/pull/71181/merge +2022-11-22T05:54:11.4745200Z remote: Enumerating objects: 12670, done. +2022-11-22T05:54:11.4781948Z remote: Counting objects: 0% (1/12670) +2022-11-22T05:54:11.4788862Z remote: Counting objects: 1% (127/12670) +2022-11-22T05:54:11.4791723Z remote: Counting objects: 2% (254/12670) +2022-11-22T05:54:11.4795385Z remote: Counting objects: 3% (381/12670) +2022-11-22T05:54:11.4798193Z remote: Counting objects: 4% (507/12670) +2022-11-22T05:54:11.4812287Z remote: Counting objects: 5% (634/12670) +2022-11-22T05:54:11.4813111Z remote: Counting objects: 6% (761/12670) +2022-11-22T05:54:11.4816606Z remote: Counting objects: 7% (887/12670) +2022-11-22T05:54:11.4816922Z remote: Counting objects: 8% (1014/12670) +2022-11-22T05:54:11.4820085Z remote: Counting objects: 9% (1141/12670) +2022-11-22T05:54:11.4820719Z remote: Counting objects: 10% (1267/12670) +2022-11-22T05:54:11.4825610Z remote: Counting objects: 11% (1394/12670) +2022-11-22T05:54:11.4833209Z remote: Counting objects: 12% (1521/12670) +2022-11-22T05:54:11.4834855Z remote: Counting objects: 13% (1648/12670) +2022-11-22T05:54:11.4836592Z remote: Counting objects: 14% (1774/12670) +2022-11-22T05:54:11.4841147Z remote: Counting objects: 15% (1901/12670) +2022-11-22T05:54:11.4842686Z remote: Counting objects: 16% (2028/12670) +2022-11-22T05:54:11.4845844Z remote: Counting objects: 17% (2154/12670) +2022-11-22T05:54:11.4850655Z remote: Counting objects: 18% (2281/12670) +2022-11-22T05:54:11.4856457Z remote: Counting objects: 19% (2408/12670) +2022-11-22T05:54:11.4860749Z remote: Counting objects: 20% (2534/12670) +2022-11-22T05:54:11.4866335Z remote: Counting objects: 21% (2661/12670) +2022-11-22T05:54:11.4868281Z remote: Counting objects: 22% (2788/12670) +2022-11-22T05:54:11.4875422Z remote: Counting objects: 23% (2915/12670) +2022-11-22T05:54:11.4878698Z remote: Counting objects: 24% (3041/12670) +2022-11-22T05:54:11.4881887Z remote: Counting objects: 25% (3168/12670) +2022-11-22T05:54:11.4885601Z remote: Counting objects: 26% (3295/12670) +2022-11-22T05:54:11.4885891Z remote: Counting objects: 27% (3421/12670) +2022-11-22T05:54:11.4895978Z remote: Counting objects: 28% (3548/12670) +2022-11-22T05:54:11.4899479Z remote: Counting objects: 29% (3675/12670) +2022-11-22T05:54:11.4900702Z remote: Counting objects: 30% (3801/12670) +2022-11-22T05:54:11.4905007Z remote: Counting objects: 31% (3928/12670) +2022-11-22T05:54:11.4913601Z remote: Counting objects: 32% (4055/12670) +2022-11-22T05:54:11.4913882Z remote: Counting objects: 33% (4182/12670) +2022-11-22T05:54:11.4929604Z remote: Counting objects: 34% (4308/12670) +2022-11-22T05:54:11.4929903Z remote: Counting objects: 35% (4435/12670) +2022-11-22T05:54:11.5015998Z remote: Counting objects: 36% (4562/12670) +2022-11-22T05:54:11.5016343Z remote: Counting objects: 37% (4688/12670) +2022-11-22T05:54:11.5016621Z remote: Counting objects: 38% (4815/12670) +2022-11-22T05:54:11.5016894Z remote: Counting objects: 39% (4942/12670) +2022-11-22T05:54:11.5017152Z remote: Counting objects: 40% (5068/12670) +2022-11-22T05:54:11.5017647Z remote: Counting objects: 41% (5195/12670) +2022-11-22T05:54:11.5017996Z remote: Counting objects: 42% (5322/12670) +2022-11-22T05:54:11.5018305Z remote: Counting objects: 43% (5449/12670) +2022-11-22T05:54:11.5018644Z remote: Counting objects: 44% (5575/12670) +2022-11-22T05:54:11.5018982Z remote: Counting objects: 45% (5702/12670) +2022-11-22T05:54:11.5019303Z remote: Counting objects: 46% (5829/12670) +2022-11-22T05:54:11.5019637Z remote: Counting objects: 47% (5955/12670) +2022-11-22T05:54:11.5019982Z remote: Counting objects: 48% (6082/12670) +2022-11-22T05:54:11.5020319Z remote: Counting objects: 49% (6209/12670) +2022-11-22T05:54:11.5020778Z remote: Counting objects: 50% (6335/12670) +2022-11-22T05:54:11.5021186Z remote: Counting objects: 51% (6462/12670) +2022-11-22T05:54:11.5021532Z remote: Counting objects: 52% (6589/12670) +2022-11-22T05:54:11.5021820Z remote: Counting objects: 53% (6716/12670) +2022-11-22T05:54:11.5022178Z remote: Counting objects: 54% (6842/12670) +2022-11-22T05:54:11.5022546Z remote: Counting objects: 55% (6969/12670) +2022-11-22T05:54:11.5022845Z remote: Counting objects: 56% (7096/12670) +2022-11-22T05:54:11.5023177Z remote: Counting objects: 57% (7222/12670) +2022-11-22T05:54:11.5023513Z remote: Counting objects: 58% (7349/12670) +2022-11-22T05:54:11.5023845Z remote: Counting objects: 59% (7476/12670) +2022-11-22T05:54:11.5074038Z remote: Counting objects: 60% (7602/12670) +2022-11-22T05:54:11.5074496Z remote: Counting objects: 61% (7729/12670) +2022-11-22T05:54:11.5074840Z remote: Counting objects: 62% (7856/12670) +2022-11-22T05:54:11.5077738Z remote: Counting objects: 63% (7983/12670) +2022-11-22T05:54:11.5078154Z remote: Counting objects: 64% (8109/12670) +2022-11-22T05:54:11.5080069Z remote: Counting objects: 65% (8236/12670) +2022-11-22T05:54:11.5080464Z remote: Counting objects: 66% (8363/12670) +2022-11-22T05:54:11.5080767Z remote: Counting objects: 67% (8489/12670) +2022-11-22T05:54:11.5081113Z remote: Counting objects: 68% (8616/12670) +2022-11-22T05:54:11.5081547Z remote: Counting objects: 69% (8743/12670) +2022-11-22T05:54:11.5083609Z remote: Counting objects: 70% (8869/12670) +2022-11-22T05:54:11.5084045Z remote: Counting objects: 71% (8996/12670) +2022-11-22T05:54:11.5084412Z remote: Counting objects: 72% (9123/12670) +2022-11-22T05:54:11.5086279Z remote: Counting objects: 73% (9250/12670) +2022-11-22T05:54:11.5086641Z remote: Counting objects: 74% (9376/12670) +2022-11-22T05:54:11.5087027Z remote: Counting objects: 75% (9503/12670) +2022-11-22T05:54:11.5087358Z remote: Counting objects: 76% (9630/12670) +2022-11-22T05:54:11.5087661Z remote: Counting objects: 77% (9756/12670) +2022-11-22T05:54:11.5088036Z remote: Counting objects: 78% (9883/12670) +2022-11-22T05:54:11.5088378Z remote: Counting objects: 79% (10010/12670) +2022-11-22T05:54:11.5088856Z remote: Counting objects: 80% (10136/12670) +2022-11-22T05:54:11.5089215Z remote: Counting objects: 81% (10263/12670) +2022-11-22T05:54:11.5089563Z remote: Counting objects: 82% (10390/12670) +2022-11-22T05:54:11.5089941Z remote: Counting objects: 83% (10517/12670) +2022-11-22T05:54:11.5090397Z remote: Counting objects: 84% (10643/12670) +2022-11-22T05:54:11.5090737Z remote: Counting objects: 85% (10770/12670) +2022-11-22T05:54:11.5091087Z remote: Counting objects: 86% (10897/12670) +2022-11-22T05:54:11.5091375Z remote: Counting objects: 87% (11023/12670) +2022-11-22T05:54:11.5091895Z remote: Counting objects: 88% (11150/12670) +2022-11-22T05:54:11.5092268Z remote: Counting objects: 89% (11277/12670) +2022-11-22T05:54:11.5092621Z remote: Counting objects: 90% (11403/12670) +2022-11-22T05:54:11.5092910Z remote: Counting objects: 91% (11530/12670) +2022-11-22T05:54:11.5093293Z remote: Counting objects: 92% (11657/12670) +2022-11-22T05:54:11.5093629Z remote: Counting objects: 93% (11784/12670) +2022-11-22T05:54:11.5093976Z remote: Counting objects: 94% (11910/12670) +2022-11-22T05:54:11.5094262Z remote: Counting objects: 95% (12037/12670) +2022-11-22T05:54:11.5094599Z remote: Counting objects: 96% (12164/12670) +2022-11-22T05:54:11.5099944Z remote: Counting objects: 97% (12290/12670) +2022-11-22T05:54:11.5108887Z remote: Counting objects: 98% (12417/12670) +2022-11-22T05:54:11.5114474Z remote: Counting objects: 99% (12544/12670) +2022-11-22T05:54:11.5114975Z remote: Counting objects: 100% (12670/12670) +2022-11-22T05:54:11.5115371Z remote: Counting objects: 100% (12670/12670), done. +2022-11-22T05:54:11.5294385Z remote: Compressing objects: 0% (1/11138) +2022-11-22T05:54:11.5455556Z remote: Compressing objects: 1% (112/11138) +2022-11-22T05:54:11.5603717Z remote: Compressing objects: 2% (223/11138) +2022-11-22T05:54:11.5715131Z remote: Compressing objects: 3% (335/11138) +2022-11-22T05:54:11.5791988Z remote: Compressing objects: 4% (446/11138) +2022-11-22T05:54:11.5875970Z remote: Compressing objects: 5% (557/11138) +2022-11-22T05:54:11.5992597Z remote: Compressing objects: 6% (669/11138) +2022-11-22T05:54:11.6261135Z remote: Compressing objects: 7% (780/11138) +2022-11-22T05:54:11.6614165Z remote: Compressing objects: 8% (892/11138) +2022-11-22T05:54:11.6929090Z remote: Compressing objects: 9% (1003/11138) +2022-11-22T05:54:11.7520585Z remote: Compressing objects: 10% (1114/11138) +2022-11-22T05:54:11.8656642Z remote: Compressing objects: 11% (1226/11138) +2022-11-22T05:54:12.3621233Z remote: Compressing objects: 12% (1337/11138) +2022-11-22T05:54:12.4278664Z remote: Compressing objects: 13% (1448/11138) +2022-11-22T05:54:12.5681269Z remote: Compressing objects: 14% (1560/11138) +2022-11-22T05:54:12.5742648Z remote: Compressing objects: 14% (1564/11138) +2022-11-22T05:54:12.6042588Z remote: Compressing objects: 15% (1671/11138) +2022-11-22T05:54:12.6277778Z remote: Compressing objects: 16% (1783/11138) +2022-11-22T05:54:12.6502958Z remote: Compressing objects: 17% (1894/11138) +2022-11-22T05:54:12.6639889Z remote: Compressing objects: 18% (2005/11138) +2022-11-22T05:54:12.6825168Z remote: Compressing objects: 19% (2117/11138) +2022-11-22T05:54:12.7061189Z remote: Compressing objects: 20% (2228/11138) +2022-11-22T05:54:12.7163241Z remote: Compressing objects: 21% (2339/11138) +2022-11-22T05:54:12.7229844Z remote: Compressing objects: 22% (2451/11138) +2022-11-22T05:54:12.7963458Z remote: Compressing objects: 23% (2562/11138) +2022-11-22T05:54:12.8191300Z remote: Compressing objects: 24% (2674/11138) +2022-11-22T05:54:12.8429274Z remote: Compressing objects: 25% (2785/11138) +2022-11-22T05:54:12.8590322Z remote: Compressing objects: 26% (2896/11138) +2022-11-22T05:54:12.8794121Z remote: Compressing objects: 27% (3008/11138) +2022-11-22T05:54:12.9360005Z remote: Compressing objects: 28% (3119/11138) +2022-11-22T05:54:12.9509115Z remote: Compressing objects: 29% (3231/11138) +2022-11-22T05:54:12.9789410Z remote: Compressing objects: 30% (3342/11138) +2022-11-22T05:54:13.0109912Z remote: Compressing objects: 31% (3453/11138) +2022-11-22T05:54:13.0315139Z remote: Compressing objects: 32% (3565/11138) +2022-11-22T05:54:13.0679208Z remote: Compressing objects: 33% (3676/11138) +2022-11-22T05:54:13.1106278Z remote: Compressing objects: 34% (3787/11138) +2022-11-22T05:54:13.1559648Z remote: Compressing objects: 35% (3899/11138) +2022-11-22T05:54:13.1815080Z remote: Compressing objects: 36% (4010/11138) +2022-11-22T05:54:13.2032125Z remote: Compressing objects: 37% (4122/11138) +2022-11-22T05:54:13.2508874Z remote: Compressing objects: 38% (4233/11138) +2022-11-22T05:54:13.2873404Z remote: Compressing objects: 39% (4344/11138) +2022-11-22T05:54:13.3141434Z remote: Compressing objects: 40% (4456/11138) +2022-11-22T05:54:13.3472418Z remote: Compressing objects: 41% (4567/11138) +2022-11-22T05:54:13.3689876Z remote: Compressing objects: 42% (4678/11138) +2022-11-22T05:54:13.4026125Z remote: Compressing objects: 43% (4790/11138) +2022-11-22T05:54:13.4351768Z remote: Compressing objects: 44% (4901/11138) +2022-11-22T05:54:13.4635455Z remote: Compressing objects: 45% (5013/11138) +2022-11-22T05:54:13.4913930Z remote: Compressing objects: 46% (5124/11138) +2022-11-22T05:54:13.5126550Z remote: Compressing objects: 47% (5235/11138) +2022-11-22T05:54:13.5178454Z remote: Compressing objects: 47% (5330/11138) +2022-11-22T05:54:13.5387150Z remote: Compressing objects: 48% (5347/11138) +2022-11-22T05:54:13.5667572Z remote: Compressing objects: 49% (5458/11138) +2022-11-22T05:54:13.5885095Z remote: Compressing objects: 50% (5569/11138) +2022-11-22T05:54:13.6141160Z remote: Compressing objects: 51% (5681/11138) +2022-11-22T05:54:13.6409490Z remote: Compressing objects: 52% (5792/11138) +2022-11-22T05:54:13.6653623Z remote: Compressing objects: 53% (5904/11138) +2022-11-22T05:54:13.6948366Z remote: Compressing objects: 54% (6015/11138) +2022-11-22T05:54:13.7220019Z remote: Compressing objects: 55% (6126/11138) +2022-11-22T05:54:13.7483195Z remote: Compressing objects: 56% (6238/11138) +2022-11-22T05:54:13.7731314Z remote: Compressing objects: 57% (6349/11138) +2022-11-22T05:54:13.8003867Z remote: Compressing objects: 58% (6461/11138) +2022-11-22T05:54:13.8256482Z remote: Compressing objects: 59% (6572/11138) +2022-11-22T05:54:13.8642960Z remote: Compressing objects: 60% (6683/11138) +2022-11-22T05:54:13.8869630Z remote: Compressing objects: 61% (6795/11138) +2022-11-22T05:54:13.9178442Z remote: Compressing objects: 62% (6906/11138) +2022-11-22T05:54:13.9401919Z remote: Compressing objects: 63% (7017/11138) +2022-11-22T05:54:13.9693523Z remote: Compressing objects: 64% (7129/11138) +2022-11-22T05:54:13.9916641Z remote: Compressing objects: 65% (7240/11138) +2022-11-22T05:54:14.0243553Z remote: Compressing objects: 66% (7352/11138) +2022-11-22T05:54:14.0431165Z remote: Compressing objects: 67% (7463/11138) +2022-11-22T05:54:14.0432887Z remote: Compressing objects: 68% (7574/11138) +2022-11-22T05:54:14.0475569Z remote: Compressing objects: 69% (7686/11138) +2022-11-22T05:54:14.0480770Z remote: Compressing objects: 70% (7797/11138) +2022-11-22T05:54:14.0481393Z remote: Compressing objects: 71% (7908/11138) +2022-11-22T05:54:14.0481820Z remote: Compressing objects: 72% (8020/11138) +2022-11-22T05:54:14.0482177Z remote: Compressing objects: 73% (8131/11138) +2022-11-22T05:54:14.0482859Z remote: Compressing objects: 74% (8243/11138) +2022-11-22T05:54:14.0488239Z remote: Compressing objects: 75% (8354/11138) +2022-11-22T05:54:14.0488623Z remote: Compressing objects: 76% (8465/11138) +2022-11-22T05:54:14.0522233Z remote: Compressing objects: 77% (8577/11138) +2022-11-22T05:54:14.0522712Z remote: Compressing objects: 78% (8688/11138) +2022-11-22T05:54:14.0523143Z remote: Compressing objects: 79% (8800/11138) +2022-11-22T05:54:14.0553594Z remote: Compressing objects: 80% (8911/11138) +2022-11-22T05:54:14.0592171Z remote: Compressing objects: 81% (9022/11138) +2022-11-22T05:54:14.0592578Z remote: Compressing objects: 82% (9134/11138) +2022-11-22T05:54:14.0689423Z remote: Compressing objects: 83% (9245/11138) +2022-11-22T05:54:14.0774112Z remote: Compressing objects: 84% (9356/11138) +2022-11-22T05:54:14.0774568Z remote: Compressing objects: 85% (9468/11138) +2022-11-22T05:54:14.0775008Z remote: Compressing objects: 86% (9579/11138) +2022-11-22T05:54:14.0775359Z remote: Compressing objects: 87% (9691/11138) +2022-11-22T05:54:14.0775775Z remote: Compressing objects: 88% (9802/11138) +2022-11-22T05:54:14.0776226Z remote: Compressing objects: 89% (9913/11138) +2022-11-22T05:54:14.0778641Z remote: Compressing objects: 90% (10025/11138) +2022-11-22T05:54:14.0956337Z remote: Compressing objects: 91% (10136/11138) +2022-11-22T05:54:14.0978087Z remote: Compressing objects: 92% (10247/11138) +2022-11-22T05:54:14.0990638Z remote: Compressing objects: 93% (10359/11138) +2022-11-22T05:54:14.1012960Z remote: Compressing objects: 94% (10470/11138) +2022-11-22T05:54:14.1037619Z remote: Compressing objects: 95% (10582/11138) +2022-11-22T05:54:14.1050702Z remote: Compressing objects: 96% (10693/11138) +2022-11-22T05:54:14.1063360Z remote: Compressing objects: 97% (10804/11138) +2022-11-22T05:54:14.1081312Z remote: Compressing objects: 98% (10916/11138) +2022-11-22T05:54:14.1113135Z remote: Compressing objects: 99% (11027/11138) +2022-11-22T05:54:14.1113531Z remote: Compressing objects: 100% (11138/11138) +2022-11-22T05:54:14.1113923Z remote: Compressing objects: 100% (11138/11138), done. +2022-11-22T05:54:14.1437731Z Receiving objects: 0% (1/12670) +2022-11-22T05:54:14.7969071Z Receiving objects: 1% (127/12670) +2022-11-22T05:54:14.8098924Z Receiving objects: 2% (254/12670), 1.64 MiB | 2.91 MiB/s +2022-11-22T05:54:14.9436264Z Receiving objects: 3% (381/12670), 1.64 MiB | 2.91 MiB/s +2022-11-22T05:54:14.9491670Z Receiving objects: 4% (507/12670), 1.64 MiB | 2.91 MiB/s +2022-11-22T05:54:14.9541674Z Receiving objects: 5% (634/12670), 1.64 MiB | 2.91 MiB/s +2022-11-22T05:54:14.9697968Z Receiving objects: 6% (761/12670), 1.64 MiB | 2.91 MiB/s +2022-11-22T05:54:14.9906135Z Receiving objects: 7% (887/12670), 1.64 MiB | 2.91 MiB/s +2022-11-22T05:54:15.0124892Z Receiving objects: 8% (1014/12670), 1.64 MiB | 2.91 MiB/s +2022-11-22T05:54:15.0247894Z Receiving objects: 9% (1141/12670), 1.64 MiB | 2.91 MiB/s +2022-11-22T05:54:15.0464602Z Receiving objects: 10% (1267/12670), 1.64 MiB | 2.91 MiB/s +2022-11-22T05:54:15.0642253Z Receiving objects: 11% (1394/12670), 1.64 MiB | 2.91 MiB/s +2022-11-22T05:54:15.0749336Z Receiving objects: 12% (1521/12670), 1.64 MiB | 2.91 MiB/s +2022-11-22T05:54:15.0761823Z Receiving objects: 13% (1648/12670), 1.64 MiB | 2.91 MiB/s +2022-11-22T05:54:15.0886767Z Receiving objects: 14% (1774/12670), 1.64 MiB | 2.91 MiB/s +2022-11-22T05:54:15.1085477Z Receiving objects: 15% (1901/12670), 1.64 MiB | 2.91 MiB/s +2022-11-22T05:54:15.1165503Z Receiving objects: 16% (2028/12670), 1.64 MiB | 2.91 MiB/s +2022-11-22T05:54:15.1466407Z Receiving objects: 16% (2071/12670), 1.64 MiB | 2.91 MiB/s +2022-11-22T05:54:15.1775614Z Receiving objects: 17% (2154/12670), 1.64 MiB | 2.91 MiB/s +2022-11-22T05:54:15.2046679Z Receiving objects: 18% (2281/12670), 1.64 MiB | 2.91 MiB/s +2022-11-22T05:54:15.2350074Z Receiving objects: 19% (2408/12670), 5.54 MiB | 5.20 MiB/s +2022-11-22T05:54:15.2648667Z Receiving objects: 20% (2534/12670), 5.54 MiB | 5.20 MiB/s +2022-11-22T05:54:15.2950136Z Receiving objects: 21% (2661/12670), 5.54 MiB | 5.20 MiB/s +2022-11-22T05:54:15.3229118Z Receiving objects: 22% (2788/12670), 5.54 MiB | 5.20 MiB/s +2022-11-22T05:54:15.3508301Z Receiving objects: 23% (2915/12670), 5.54 MiB | 5.20 MiB/s +2022-11-22T05:54:15.3736900Z Receiving objects: 24% (3041/12670), 5.54 MiB | 5.20 MiB/s +2022-11-22T05:54:15.3928328Z Receiving objects: 25% (3168/12670), 5.54 MiB | 5.20 MiB/s +2022-11-22T05:54:15.4102878Z Receiving objects: 26% (3295/12670), 5.54 MiB | 5.20 MiB/s +2022-11-22T05:54:15.4387561Z Receiving objects: 27% (3421/12670), 5.54 MiB | 5.20 MiB/s +2022-11-22T05:54:15.4581868Z Receiving objects: 28% (3548/12670), 5.54 MiB | 5.20 MiB/s +2022-11-22T05:54:15.4720691Z Receiving objects: 29% (3675/12670), 5.54 MiB | 5.20 MiB/s +2022-11-22T05:54:15.4949914Z Receiving objects: 30% (3801/12670), 5.54 MiB | 5.20 MiB/s +2022-11-22T05:54:15.5088093Z Receiving objects: 31% (3928/12670), 5.54 MiB | 5.20 MiB/s +2022-11-22T05:54:15.5251105Z Receiving objects: 32% (4055/12670), 5.54 MiB | 5.20 MiB/s +2022-11-22T05:54:15.5419154Z Receiving objects: 33% (4182/12670), 5.54 MiB | 5.20 MiB/s +2022-11-22T05:54:15.5562173Z Receiving objects: 34% (4308/12670), 5.54 MiB | 5.20 MiB/s +2022-11-22T05:54:15.5822789Z Receiving objects: 35% (4435/12670), 5.54 MiB | 5.20 MiB/s +2022-11-22T05:54:15.6098583Z Receiving objects: 36% (4562/12670), 5.54 MiB | 5.20 MiB/s +2022-11-22T05:54:15.6486705Z Receiving objects: 37% (4688/12670), 5.54 MiB | 5.20 MiB/s +2022-11-22T05:54:15.6836221Z Receiving objects: 38% (4815/12670), 5.54 MiB | 5.20 MiB/s +2022-11-22T05:54:15.7184372Z Receiving objects: 39% (4942/12670), 10.06 MiB | 6.41 MiB/s +2022-11-22T05:54:15.7304334Z Receiving objects: 40% (5068/12670), 10.06 MiB | 6.41 MiB/s +2022-11-22T05:54:15.7558967Z Receiving objects: 41% (5195/12670), 10.06 MiB | 6.41 MiB/s +2022-11-22T05:54:15.7948469Z Receiving objects: 42% (5322/12670), 10.06 MiB | 6.41 MiB/s +2022-11-22T05:54:15.8261068Z Receiving objects: 43% (5449/12670), 10.06 MiB | 6.41 MiB/s +2022-11-22T05:54:15.8392502Z Receiving objects: 44% (5575/12670), 10.06 MiB | 6.41 MiB/s +2022-11-22T05:54:15.8543246Z Receiving objects: 45% (5702/12670), 10.06 MiB | 6.41 MiB/s +2022-11-22T05:54:15.8682415Z Receiving objects: 46% (5829/12670), 10.06 MiB | 6.41 MiB/s +2022-11-22T05:54:15.8784329Z Receiving objects: 47% (5955/12670), 10.06 MiB | 6.41 MiB/s +2022-11-22T05:54:15.8925819Z Receiving objects: 48% (6082/12670), 10.06 MiB | 6.41 MiB/s +2022-11-22T05:54:15.9001936Z Receiving objects: 49% (6209/12670), 10.06 MiB | 6.41 MiB/s +2022-11-22T05:54:15.9514165Z Receiving objects: 50% (6335/12670), 10.06 MiB | 6.41 MiB/s +2022-11-22T05:54:16.0360562Z Receiving objects: 51% (6462/12670), 10.06 MiB | 6.41 MiB/s +2022-11-22T05:54:16.1833774Z Receiving objects: 52% (6589/12670), 10.06 MiB | 6.41 MiB/s +2022-11-22T05:54:16.6045841Z Receiving objects: 52% (6598/12670), 17.71 MiB | 8.56 MiB/s +2022-11-22T05:54:16.8791679Z Receiving objects: 53% (6716/12670), 17.71 MiB | 8.56 MiB/s +2022-11-22T05:54:16.9124702Z Receiving objects: 54% (6842/12670), 31.08 MiB | 12.10 MiB/s +2022-11-22T05:54:17.0161642Z Receiving objects: 55% (6969/12670), 31.08 MiB | 12.10 MiB/s +2022-11-22T05:54:17.0595048Z Receiving objects: 56% (7096/12670), 31.08 MiB | 12.10 MiB/s +2022-11-22T05:54:17.0975600Z Receiving objects: 57% (7222/12670), 31.08 MiB | 12.10 MiB/s +2022-11-22T05:54:17.1141406Z Receiving objects: 58% (7349/12670), 31.08 MiB | 12.10 MiB/s +2022-11-22T05:54:17.1405634Z Receiving objects: 58% (7401/12670), 31.08 MiB | 12.10 MiB/s +2022-11-22T05:54:17.1720210Z Receiving objects: 59% (7476/12670), 31.08 MiB | 12.10 MiB/s +2022-11-22T05:54:17.2015621Z Receiving objects: 60% (7602/12670), 31.08 MiB | 12.10 MiB/s +2022-11-22T05:54:17.2421975Z Receiving objects: 61% (7729/12670), 49.89 MiB | 16.26 MiB/s +2022-11-22T05:54:17.2500420Z Receiving objects: 62% (7856/12670), 49.89 MiB | 16.26 MiB/s +2022-11-22T05:54:17.5988832Z Receiving objects: 63% (7983/12670), 49.89 MiB | 16.26 MiB/s +2022-11-22T05:54:17.9560268Z Receiving objects: 64% (8109/12670), 49.89 MiB | 16.26 MiB/s +2022-11-22T05:54:18.0169362Z Receiving objects: 65% (8236/12670), 74.38 MiB | 20.85 MiB/s +2022-11-22T05:54:18.0610635Z Receiving objects: 66% (8363/12670), 74.38 MiB | 20.85 MiB/s +2022-11-22T05:54:18.1142278Z Receiving objects: 67% (8489/12670), 74.38 MiB | 20.85 MiB/s +2022-11-22T05:54:18.1185495Z Receiving objects: 67% (8604/12670), 74.38 MiB | 20.85 MiB/s +2022-11-22T05:54:18.1538486Z Receiving objects: 68% (8616/12670), 74.38 MiB | 20.85 MiB/s +2022-11-22T05:54:18.2062287Z Receiving objects: 69% (8743/12670), 74.38 MiB | 20.85 MiB/s +2022-11-22T05:54:18.2545599Z Receiving objects: 70% (8869/12670), 104.45 MiB | 25.68 MiB/s +2022-11-22T05:54:18.3571596Z Receiving objects: 71% (8996/12670), 104.45 MiB | 25.68 MiB/s +2022-11-22T05:54:18.3758401Z Receiving objects: 72% (9123/12670), 104.45 MiB | 25.68 MiB/s +2022-11-22T05:54:18.3859281Z Receiving objects: 73% (9250/12670), 104.45 MiB | 25.68 MiB/s +2022-11-22T05:54:18.3976873Z Receiving objects: 74% (9376/12670), 104.45 MiB | 25.68 MiB/s +2022-11-22T05:54:18.4120242Z Receiving objects: 75% (9503/12670), 104.45 MiB | 25.68 MiB/s +2022-11-22T05:54:18.4306434Z Receiving objects: 76% (9630/12670), 104.45 MiB | 25.68 MiB/s +2022-11-22T05:54:18.5319302Z Receiving objects: 77% (9756/12670), 104.45 MiB | 25.68 MiB/s +2022-11-22T05:54:18.5320722Z Receiving objects: 78% (9883/12670), 104.45 MiB | 25.68 MiB/s +2022-11-22T05:54:18.5526871Z Receiving objects: 79% (10010/12670), 104.45 MiB | 25.68 MiB/s +2022-11-22T05:54:18.5891167Z Receiving objects: 80% (10136/12670), 104.45 MiB | 25.68 MiB/s +2022-11-22T05:54:18.5967265Z Receiving objects: 81% (10263/12670), 104.45 MiB | 25.68 MiB/s +2022-11-22T05:54:18.6052595Z Receiving objects: 82% (10390/12670), 104.45 MiB | 25.68 MiB/s +2022-11-22T05:54:18.6120029Z Receiving objects: 83% (10517/12670), 104.45 MiB | 25.68 MiB/s +2022-11-22T05:54:18.6174493Z Receiving objects: 84% (10643/12670), 104.45 MiB | 25.68 MiB/s +2022-11-22T05:54:18.6234676Z Receiving objects: 85% (10770/12670), 104.45 MiB | 25.68 MiB/s +2022-11-22T05:54:18.6299547Z Receiving objects: 86% (10897/12670), 104.45 MiB | 25.68 MiB/s +2022-11-22T05:54:18.6365696Z Receiving objects: 87% (11023/12670), 104.45 MiB | 25.68 MiB/s +2022-11-22T05:54:18.6532983Z Receiving objects: 88% (11150/12670), 104.45 MiB | 25.68 MiB/s +2022-11-22T05:54:18.7047669Z Receiving objects: 89% (11277/12670), 104.45 MiB | 25.68 MiB/s +2022-11-22T05:54:18.7436095Z Receiving objects: 90% (11403/12670), 135.69 MiB | 29.71 MiB/s +2022-11-22T05:54:18.7478331Z Receiving objects: 91% (11530/12670), 135.69 MiB | 29.71 MiB/s +2022-11-22T05:54:18.7516826Z Receiving objects: 92% (11657/12670), 135.69 MiB | 29.71 MiB/s +2022-11-22T05:54:18.7572212Z Receiving objects: 93% (11784/12670), 135.69 MiB | 29.71 MiB/s +2022-11-22T05:54:18.7627489Z Receiving objects: 94% (11910/12670), 135.69 MiB | 29.71 MiB/s +2022-11-22T05:54:18.7680868Z Receiving objects: 95% (12037/12670), 135.69 MiB | 29.71 MiB/s +2022-11-22T05:54:18.7719714Z Receiving objects: 96% (12164/12670), 135.69 MiB | 29.71 MiB/s +2022-11-22T05:54:18.7750985Z Receiving objects: 97% (12290/12670), 135.69 MiB | 29.71 MiB/s +2022-11-22T05:54:18.7895759Z Receiving objects: 98% (12417/12670), 135.69 MiB | 29.71 MiB/s +2022-11-22T05:54:18.7934049Z Receiving objects: 99% (12544/12670), 135.69 MiB | 29.71 MiB/s +2022-11-22T05:54:18.7934871Z remote: Total 12670 (delta 1563), reused 7049 (delta 1400), pack-reused 0 +2022-11-22T05:54:18.7957233Z Receiving objects: 100% (12670/12670), 135.69 MiB | 29.71 MiB/s +2022-11-22T05:54:18.7957672Z Receiving objects: 100% (12670/12670), 139.64 MiB | 29.83 MiB/s, done. +2022-11-22T05:54:18.7991376Z Resolving deltas: 0% (0/1563) +2022-11-22T05:54:18.8007713Z Resolving deltas: 1% (16/1563) +2022-11-22T05:54:18.8018232Z Resolving deltas: 2% (32/1563) +2022-11-22T05:54:18.8025488Z Resolving deltas: 3% (47/1563) +2022-11-22T05:54:18.8083114Z Resolving deltas: 4% (63/1563) +2022-11-22T05:54:18.8129512Z Resolving deltas: 5% (79/1563) +2022-11-22T05:54:18.8137107Z Resolving deltas: 6% (94/1563) +2022-11-22T05:54:18.8145420Z Resolving deltas: 7% (110/1563) +2022-11-22T05:54:18.8197932Z Resolving deltas: 8% (126/1563) +2022-11-22T05:54:18.8224181Z Resolving deltas: 9% (141/1563) +2022-11-22T05:54:18.8237686Z Resolving deltas: 10% (157/1563) +2022-11-22T05:54:18.8264690Z Resolving deltas: 11% (172/1563) +2022-11-22T05:54:18.8270115Z Resolving deltas: 12% (188/1563) +2022-11-22T05:54:18.8278891Z Resolving deltas: 13% (204/1563) +2022-11-22T05:54:18.8282387Z Resolving deltas: 14% (219/1563) +2022-11-22T05:54:18.8286062Z Resolving deltas: 15% (235/1563) +2022-11-22T05:54:18.8289540Z Resolving deltas: 16% (251/1563) +2022-11-22T05:54:18.8293460Z Resolving deltas: 17% (266/1563) +2022-11-22T05:54:18.8296655Z Resolving deltas: 18% (282/1563) +2022-11-22T05:54:18.8300378Z Resolving deltas: 19% (297/1563) +2022-11-22T05:54:18.8303678Z Resolving deltas: 20% (313/1563) +2022-11-22T05:54:18.8306940Z Resolving deltas: 21% (329/1563) +2022-11-22T05:54:18.8321902Z Resolving deltas: 22% (344/1563) +2022-11-22T05:54:18.8337564Z Resolving deltas: 23% (360/1563) +2022-11-22T05:54:18.8351461Z Resolving deltas: 24% (376/1563) +2022-11-22T05:54:18.8376364Z Resolving deltas: 25% (391/1563) +2022-11-22T05:54:18.8447413Z Resolving deltas: 26% (407/1563) +2022-11-22T05:54:18.8455814Z Resolving deltas: 27% (423/1563) +2022-11-22T05:54:18.8519899Z Resolving deltas: 28% (438/1563) +2022-11-22T05:54:18.8528664Z Resolving deltas: 29% (454/1563) +2022-11-22T05:54:18.8546501Z Resolving deltas: 30% (469/1563) +2022-11-22T05:54:18.8556266Z Resolving deltas: 31% (485/1563) +2022-11-22T05:54:18.8583895Z Resolving deltas: 32% (501/1563) +2022-11-22T05:54:18.8597665Z Resolving deltas: 33% (516/1563) +2022-11-22T05:54:18.8667049Z Resolving deltas: 34% (532/1563) +2022-11-22T05:54:18.8690494Z Resolving deltas: 35% (548/1563) +2022-11-22T05:54:18.8719328Z Resolving deltas: 36% (563/1563) +2022-11-22T05:54:18.8733653Z Resolving deltas: 37% (579/1563) +2022-11-22T05:54:18.8737567Z Resolving deltas: 38% (594/1563) +2022-11-22T05:54:18.8741272Z Resolving deltas: 39% (610/1563) +2022-11-22T05:54:18.8745180Z Resolving deltas: 40% (626/1563) +2022-11-22T05:54:18.8749043Z Resolving deltas: 41% (641/1563) +2022-11-22T05:54:18.8752838Z Resolving deltas: 42% (657/1563) +2022-11-22T05:54:18.8756750Z Resolving deltas: 43% (673/1563) +2022-11-22T05:54:18.8760570Z Resolving deltas: 44% (688/1563) +2022-11-22T05:54:18.8764977Z Resolving deltas: 45% (704/1563) +2022-11-22T05:54:18.8768748Z Resolving deltas: 46% (719/1563) +2022-11-22T05:54:18.8774098Z Resolving deltas: 47% (735/1563) +2022-11-22T05:54:18.8775178Z Resolving deltas: 48% (751/1563) +2022-11-22T05:54:18.8775461Z Resolving deltas: 49% (766/1563) +2022-11-22T05:54:18.8778107Z Resolving deltas: 50% (782/1563) +2022-11-22T05:54:18.8783837Z Resolving deltas: 51% (798/1563) +2022-11-22T05:54:18.8788309Z Resolving deltas: 52% (813/1563) +2022-11-22T05:54:18.8793942Z Resolving deltas: 53% (829/1563) +2022-11-22T05:54:18.8800371Z Resolving deltas: 54% (845/1563) +2022-11-22T05:54:18.8804490Z Resolving deltas: 55% (860/1563) +2022-11-22T05:54:18.8807918Z Resolving deltas: 56% (876/1563) +2022-11-22T05:54:18.8811794Z Resolving deltas: 57% (891/1563) +2022-11-22T05:54:18.8816897Z Resolving deltas: 58% (907/1563) +2022-11-22T05:54:18.8820531Z Resolving deltas: 59% (923/1563) +2022-11-22T05:54:18.8826617Z Resolving deltas: 60% (938/1563) +2022-11-22T05:54:18.8830227Z Resolving deltas: 61% (954/1563) +2022-11-22T05:54:18.8833639Z Resolving deltas: 62% (970/1563) +2022-11-22T05:54:18.8837198Z Resolving deltas: 63% (985/1563) +2022-11-22T05:54:18.8841013Z Resolving deltas: 64% (1001/1563) +2022-11-22T05:54:18.8847335Z Resolving deltas: 65% (1016/1563) +2022-11-22T05:54:18.8852046Z Resolving deltas: 66% (1032/1563) +2022-11-22T05:54:18.8856289Z Resolving deltas: 67% (1048/1563) +2022-11-22T05:54:18.8861881Z Resolving deltas: 68% (1063/1563) +2022-11-22T05:54:18.8865510Z Resolving deltas: 69% (1079/1563) +2022-11-22T05:54:18.8870298Z Resolving deltas: 70% (1095/1563) +2022-11-22T05:54:18.8873958Z Resolving deltas: 71% (1110/1563) +2022-11-22T05:54:18.8879331Z Resolving deltas: 72% (1126/1563) +2022-11-22T05:54:18.8884282Z Resolving deltas: 73% (1141/1563) +2022-11-22T05:54:18.8887555Z Resolving deltas: 74% (1157/1563) +2022-11-22T05:54:18.8893031Z Resolving deltas: 75% (1173/1563) +2022-11-22T05:54:18.8897133Z Resolving deltas: 76% (1188/1563) +2022-11-22T05:54:18.8902745Z Resolving deltas: 77% (1204/1563) +2022-11-22T05:54:18.8907760Z Resolving deltas: 78% (1220/1563) +2022-11-22T05:54:18.8915339Z Resolving deltas: 79% (1235/1563) +2022-11-22T05:54:18.8919747Z Resolving deltas: 80% (1251/1563) +2022-11-22T05:54:18.8925282Z Resolving deltas: 81% (1267/1563) +2022-11-22T05:54:18.8930887Z Resolving deltas: 82% (1282/1563) +2022-11-22T05:54:18.8939494Z Resolving deltas: 83% (1298/1563) +2022-11-22T05:54:18.8943800Z Resolving deltas: 84% (1313/1563) +2022-11-22T05:54:18.8952847Z Resolving deltas: 85% (1329/1563) +2022-11-22T05:54:18.8957233Z Resolving deltas: 86% (1345/1563) +2022-11-22T05:54:18.8964897Z Resolving deltas: 87% (1360/1563) +2022-11-22T05:54:18.8974626Z Resolving deltas: 88% (1376/1563) +2022-11-22T05:54:18.8981120Z Resolving deltas: 89% (1392/1563) +2022-11-22T05:54:18.8991169Z Resolving deltas: 90% (1407/1563) +2022-11-22T05:54:18.9004223Z Resolving deltas: 91% (1423/1563) +2022-11-22T05:54:18.9017738Z Resolving deltas: 92% (1438/1563) +2022-11-22T05:54:18.9022799Z Resolving deltas: 93% (1454/1563) +2022-11-22T05:54:18.9029380Z Resolving deltas: 94% (1470/1563) +2022-11-22T05:54:18.9033633Z Resolving deltas: 95% (1485/1563) +2022-11-22T05:54:18.9044646Z Resolving deltas: 96% (1501/1563) +2022-11-22T05:54:18.9053816Z Resolving deltas: 97% (1517/1563) +2022-11-22T05:54:18.9057259Z Resolving deltas: 98% (1532/1563) +2022-11-22T05:54:18.9061864Z Resolving deltas: 99% (1548/1563) +2022-11-22T05:54:18.9069074Z Resolving deltas: 100% (1563/1563) +2022-11-22T05:54:18.9069513Z Resolving deltas: 100% (1563/1563), done. +2022-11-22T05:54:19.3818094Z From https://github.com/tgstation/tgstation +2022-11-22T05:54:19.3819106Z * [new ref] 806eced1b6aa2166e665748be44c5c519833b2e2 -> pull/71181/merge +2022-11-22T05:54:19.3843465Z ##[endgroup] +2022-11-22T05:54:19.3844157Z ##[group]Determining the checkout info +2022-11-22T05:54:19.3845757Z ##[endgroup] +2022-11-22T05:54:19.3854920Z ##[group]Checking out the ref +2022-11-22T05:54:19.3855731Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/71181/merge +2022-11-22T05:54:20.4063926Z Updating files: 68% (8032/11696) +2022-11-22T05:54:20.4275321Z Updating files: 69% (8071/11696) +2022-11-22T05:54:20.4667553Z Updating files: 70% (8188/11696) +2022-11-22T05:54:20.4748863Z Updating files: 71% (8305/11696) +2022-11-22T05:54:20.4839310Z Updating files: 72% (8422/11696) +2022-11-22T05:54:20.4912300Z Updating files: 73% (8539/11696) +2022-11-22T05:54:20.4973377Z Updating files: 74% (8656/11696) +2022-11-22T05:54:20.5018309Z Updating files: 75% (8772/11696) +2022-11-22T05:54:20.5413696Z Updating files: 76% (8889/11696) +2022-11-22T05:54:20.5531187Z Updating files: 77% (9006/11696) +2022-11-22T05:54:20.5555866Z Updating files: 78% (9123/11696) +2022-11-22T05:54:20.5753360Z Updating files: 79% (9240/11696) +2022-11-22T05:54:20.5835545Z Updating files: 80% (9357/11696) +2022-11-22T05:54:20.5898136Z Updating files: 81% (9474/11696) +2022-11-22T05:54:20.5952825Z Updating files: 82% (9591/11696) +2022-11-22T05:54:20.5998934Z Updating files: 83% (9708/11696) +2022-11-22T05:54:20.6049707Z Updating files: 84% (9825/11696) +2022-11-22T05:54:20.6100460Z Updating files: 85% (9942/11696) +2022-11-22T05:54:20.6152185Z Updating files: 86% (10059/11696) +2022-11-22T05:54:20.6202834Z Updating files: 87% (10176/11696) +2022-11-22T05:54:20.6283782Z Updating files: 88% (10293/11696) +2022-11-22T05:54:20.6506593Z Updating files: 89% (10410/11696) +2022-11-22T05:54:20.6736171Z Updating files: 90% (10527/11696) +2022-11-22T05:54:20.6788889Z Updating files: 91% (10644/11696) +2022-11-22T05:54:20.6838906Z Updating files: 92% (10761/11696) +2022-11-22T05:54:20.6898626Z Updating files: 93% (10878/11696) +2022-11-22T05:54:20.6956323Z Updating files: 94% (10995/11696) +2022-11-22T05:54:20.7015640Z Updating files: 95% (11112/11696) +2022-11-22T05:54:20.7064247Z Updating files: 96% (11229/11696) +2022-11-22T05:54:20.7113161Z Updating files: 97% (11346/11696) +2022-11-22T05:54:20.7209831Z Updating files: 98% (11463/11696) +2022-11-22T05:54:20.7272887Z Updating files: 99% (11580/11696) +2022-11-22T05:54:20.7273303Z Updating files: 100% (11696/11696) +2022-11-22T05:54:20.7275554Z Updating files: 100% (11696/11696), done. +2022-11-22T05:54:20.7421345Z Note: switching to 'refs/remotes/pull/71181/merge'. +2022-11-22T05:54:20.7421551Z +2022-11-22T05:54:20.7421839Z You are in 'detached HEAD' state. You can look around, make experimental +2022-11-22T05:54:20.7422215Z changes and commit them, and you can discard any commits you make in this +2022-11-22T05:54:20.7422574Z state without impacting any branches by switching back to a branch. +2022-11-22T05:54:20.7422770Z +2022-11-22T05:54:20.7422934Z If you want to create a new branch to retain commits you create, you may +2022-11-22T05:54:20.7423364Z do so (now or later) by using -c with the switch command. Example: +2022-11-22T05:54:20.7423551Z +2022-11-22T05:54:20.7423727Z git switch -c +2022-11-22T05:54:20.7423871Z +2022-11-22T05:54:20.7423975Z Or undo this operation with: +2022-11-22T05:54:20.7424120Z +2022-11-22T05:54:20.7424204Z git switch - +2022-11-22T05:54:20.7424328Z +2022-11-22T05:54:20.7424684Z Turn off this advice by setting config variable advice.detachedHead to false +2022-11-22T05:54:20.7424902Z +2022-11-22T05:54:20.7425103Z HEAD is now at 806eced Merge 417e724a9b957bc5b5f40526ff328526f1efe7f3 into 08a748704bfd2d68598c4c036723717421983145 +2022-11-22T05:54:20.7465533Z ##[endgroup] +2022-11-22T05:54:20.7511808Z [command]/usr/bin/git log -1 --format='%H' +2022-11-22T05:54:20.7544816Z '806eced1b6aa2166e665748be44c5c519833b2e2' +2022-11-22T05:54:20.7875252Z ##[group]Run actions/cache@v3 +2022-11-22T05:54:20.7875497Z with: +2022-11-22T05:54:20.7875691Z path: ~/BYOND +2022-11-22T05:54:20.7875891Z key: Linux-byond- +2022-11-22T05:54:20.7876098Z ##[endgroup] +2022-11-22T05:54:21.3195522Z Received 4090426 of 4090426 (100.0%), 24.5 MBs/sec +2022-11-22T05:54:21.3196161Z Cache Size: ~4 MB (4090426 B) +2022-11-22T05:54:21.3216111Z [command]/usr/bin/tar --use-compress-program unzstd -xf /home/runner/work/_temp/b2d9ae3f-43dc-4494-a10d-0913d9199ba9/cache.tzst -P -C /home/runner/work/tgstation/tgstation +2022-11-22T05:54:21.3633267Z Cache restored successfully +2022-11-22T05:54:21.3869456Z Cache restored from key: Linux-byond- +2022-11-22T05:54:21.4011996Z ##[group]Run sudo systemctl start mysql +2022-11-22T05:54:21.4012363Z sudo systemctl start mysql +2022-11-22T05:54:21.4012678Z mysql -u root -proot -e 'CREATE DATABASE tg_ci;' +2022-11-22T05:54:21.4013012Z mysql -u root -proot tg_ci < SQL/tgstation_schema.sql +2022-11-22T05:54:21.4013358Z mysql -u root -proot -e 'CREATE DATABASE tg_ci_prefixed;' +2022-11-22T05:54:21.4013736Z mysql -u root -proot tg_ci_prefixed < SQL/tgstation_schema_prefixed.sql +2022-11-22T05:54:21.4068798Z shell: /usr/bin/bash -e {0} +2022-11-22T05:54:21.4069059Z ##[endgroup] +2022-11-22T05:54:26.1328031Z mysql: [Warning] Using a password on the command line interface can be insecure. +2022-11-22T05:54:26.1632489Z mysql: [Warning] Using a password on the command line interface can be insecure. +2022-11-22T05:54:26.7713121Z mysql: [Warning] Using a password on the command line interface can be insecure. +2022-11-22T05:54:26.7789364Z mysql: [Warning] Using a password on the command line interface can be insecure. +2022-11-22T05:54:27.1574220Z ##[group]Run sudo dpkg --add-architecture i386 +2022-11-22T05:54:27.1574565Z sudo dpkg --add-architecture i386 +2022-11-22T05:54:27.1574835Z sudo apt update || true +2022-11-22T05:54:27.1575275Z sudo apt install -o APT::Immediate-Configure=false libssl1.1:i386 +2022-11-22T05:54:27.1575591Z bash tools/ci/install_rust_g.sh +2022-11-22T05:54:27.1627061Z shell: /usr/bin/bash -e {0} +2022-11-22T05:54:27.1627322Z ##[endgroup] +2022-11-22T05:54:27.3375235Z +2022-11-22T05:54:27.3375988Z WARNING: apt does not have a stable CLI interface. Use with caution in scripts. +2022-11-22T05:54:27.3376493Z +2022-11-22T05:54:27.4285840Z Hit:1 http://azure.archive.ubuntu.com/ubuntu focal InRelease +2022-11-22T05:54:27.4289676Z Get:2 http://azure.archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB] +2022-11-22T05:54:27.4297956Z Get:3 http://azure.archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB] +2022-11-22T05:54:27.4307795Z Get:4 http://azure.archive.ubuntu.com/ubuntu focal-security InRelease [114 kB] +2022-11-22T05:54:27.4622061Z Get:5 https://packages.microsoft.com/ubuntu/20.04/prod focal InRelease [10.5 kB] +2022-11-22T05:54:27.6682767Z Hit:6 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal InRelease +2022-11-22T05:54:27.6820644Z Get:7 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [2242 kB] +2022-11-22T05:54:27.7080253Z Get:8 http://azure.archive.ubuntu.com/ubuntu focal-updates/main i386 Packages [756 kB] +2022-11-22T05:54:27.7153659Z Get:9 http://azure.archive.ubuntu.com/ubuntu focal-updates/main Translation-en [391 kB] +2022-11-22T05:54:27.7199273Z Get:10 http://azure.archive.ubuntu.com/ubuntu focal-updates/main amd64 c-n-f Metadata [16.1 kB] +2022-11-22T05:54:27.7222773Z Get:11 http://azure.archive.ubuntu.com/ubuntu focal-updates/restricted i386 Packages [27.8 kB] +2022-11-22T05:54:27.7303676Z Get:12 http://azure.archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages [1424 kB] +2022-11-22T05:54:27.7515018Z Get:13 http://azure.archive.ubuntu.com/ubuntu focal-updates/restricted Translation-en [202 kB] +2022-11-22T05:54:27.7544674Z Get:14 http://azure.archive.ubuntu.com/ubuntu focal-updates/restricted amd64 c-n-f Metadata [636 B] +2022-11-22T05:54:27.7574161Z Get:15 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [1003 kB] +2022-11-22T05:54:27.7673252Z Get:16 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe i386 Packages [704 kB] +2022-11-22T05:54:27.8208601Z Get:17 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe Translation-en [233 kB] +2022-11-22T05:54:27.8216256Z Get:18 http://azure.archive.ubuntu.com/ubuntu focal-updates/universe amd64 c-n-f Metadata [23.1 kB] +2022-11-22T05:54:27.8232910Z Get:19 http://azure.archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 Packages [24.4 kB] +2022-11-22T05:54:27.8249854Z Get:20 http://azure.archive.ubuntu.com/ubuntu focal-updates/multiverse i386 Packages [8448 B] +2022-11-22T05:54:27.8266458Z Get:21 http://azure.archive.ubuntu.com/ubuntu focal-updates/multiverse Translation-en [7316 B] +2022-11-22T05:54:27.8273359Z Get:22 http://azure.archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 c-n-f Metadata [592 B] +2022-11-22T05:54:27.8430731Z Get:23 http://azure.archive.ubuntu.com/ubuntu focal-backports/main amd64 Packages [45.7 kB] +2022-11-22T05:54:27.8448045Z Get:24 http://azure.archive.ubuntu.com/ubuntu focal-backports/main i386 Packages [36.1 kB] +2022-11-22T05:54:27.8455777Z Get:25 http://azure.archive.ubuntu.com/ubuntu focal-backports/main amd64 c-n-f Metadata [1420 B] +2022-11-22T05:54:27.8474467Z Get:26 http://azure.archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages [24.0 kB] +2022-11-22T05:54:27.8487869Z Get:27 http://azure.archive.ubuntu.com/ubuntu focal-backports/universe i386 Packages [13.5 kB] +2022-11-22T05:54:27.8504387Z Get:28 http://azure.archive.ubuntu.com/ubuntu focal-backports/universe Translation-en [16.0 kB] +2022-11-22T05:54:27.8546555Z Get:29 http://azure.archive.ubuntu.com/ubuntu focal-backports/universe amd64 c-n-f Metadata [860 B] +2022-11-22T05:54:27.9493534Z Get:30 http://azure.archive.ubuntu.com/ubuntu focal-security/main i386 Packages [523 kB] +2022-11-22T05:54:27.9983671Z Get:31 http://azure.archive.ubuntu.com/ubuntu focal-security/main amd64 Packages [1860 kB] +2022-11-22T05:54:28.0182794Z Get:32 http://azure.archive.ubuntu.com/ubuntu focal-security/main Translation-en [305 kB] +2022-11-22T05:54:28.0222410Z Get:33 http://azure.archive.ubuntu.com/ubuntu focal-security/main amd64 c-n-f Metadata [11.2 kB] +2022-11-22T05:54:28.0233838Z Get:34 http://azure.archive.ubuntu.com/ubuntu focal-security/restricted i386 Packages [26.5 kB] +2022-11-22T05:54:28.0249393Z Get:35 http://azure.archive.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [1332 kB] +2022-11-22T05:54:28.0380967Z Get:36 http://azure.archive.ubuntu.com/ubuntu focal-security/restricted Translation-en [188 kB] +2022-11-22T05:54:28.0408349Z Get:37 http://azure.archive.ubuntu.com/ubuntu focal-security/restricted amd64 c-n-f Metadata [640 B] +2022-11-22T05:54:28.0444696Z Get:38 http://azure.archive.ubuntu.com/ubuntu focal-security/universe i386 Packages [572 kB] +2022-11-22T05:54:28.0502119Z Get:39 http://azure.archive.ubuntu.com/ubuntu focal-security/universe amd64 Packages [772 kB] +2022-11-22T05:54:28.0585971Z Get:40 http://azure.archive.ubuntu.com/ubuntu focal-security/universe Translation-en [148 kB] +2022-11-22T05:54:28.0636831Z Get:41 http://azure.archive.ubuntu.com/ubuntu focal-security/universe amd64 c-n-f Metadata [16.7 kB] +2022-11-22T05:54:28.0654711Z Get:42 http://azure.archive.ubuntu.com/ubuntu focal-security/multiverse amd64 Packages [22.2 kB] +2022-11-22T05:54:28.0669089Z Get:43 http://azure.archive.ubuntu.com/ubuntu focal-security/multiverse i386 Packages [7204 B] +2022-11-22T05:54:28.0683649Z Get:44 http://azure.archive.ubuntu.com/ubuntu focal-security/multiverse Translation-en [5400 B] +2022-11-22T05:54:28.1105332Z Get:45 http://azure.archive.ubuntu.com/ubuntu focal-security/multiverse amd64 c-n-f Metadata [516 B] +2022-11-22T05:54:28.1142074Z Get:46 https://packages.microsoft.com/ubuntu/20.04/prod focal/main armhf Packages [29.1 kB] +2022-11-22T05:54:28.1209782Z Get:47 https://packages.microsoft.com/ubuntu/20.04/prod focal/main amd64 Packages [212 kB] +2022-11-22T05:54:28.1419050Z Get:48 https://packages.microsoft.com/ubuntu/20.04/prod focal/main arm64 Packages [46.2 kB] +2022-11-22T05:54:28.3678597Z Get:49 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal/main i386 Packages [15.2 kB] +2022-11-22T05:54:38.6427399Z Fetched 13.6 MB in 2s (5935 kB/s) +2022-11-22T05:54:39.7808627Z Reading package lists... +2022-11-22T05:54:40.0112436Z Building dependency tree... +2022-11-22T05:54:40.0125566Z Reading state information... +2022-11-22T05:54:40.1053352Z 85 packages can be upgraded. Run 'apt list --upgradable' to see them. +2022-11-22T05:54:40.1155226Z +2022-11-22T05:54:40.1156119Z WARNING: apt does not have a stable CLI interface. Use with caution in scripts. +2022-11-22T05:54:40.1156379Z +2022-11-22T05:54:40.1697963Z Reading package lists... +2022-11-22T05:54:40.3785154Z Building dependency tree... +2022-11-22T05:54:40.3851341Z Reading state information... +2022-11-22T05:54:40.5578517Z The following additional packages will be installed: +2022-11-22T05:54:40.5579769Z gcc-11-base:i386 libc6:i386 libcrypt1:i386 libgcc-s1 libgcc-s1:i386 +2022-11-22T05:54:40.5582977Z libidn2-0:i386 libunistring2:i386 +2022-11-22T05:54:40.5590112Z Suggested packages: +2022-11-22T05:54:40.5590688Z glibc-doc:i386 locales:i386 +2022-11-22T05:54:40.6255739Z The following NEW packages will be installed: +2022-11-22T05:54:40.6261367Z gcc-11-base:i386 libc6:i386 libcrypt1:i386 libgcc-s1:i386 libidn2-0:i386 +2022-11-22T05:54:40.6266998Z libssl1.1:i386 libunistring2:i386 +2022-11-22T05:54:40.6273154Z The following packages will be upgraded: +2022-11-22T05:54:40.6279277Z libgcc-s1 +2022-11-22T05:54:40.6671578Z 1 upgraded, 7 newly installed, 0 to remove and 84 not upgraded. +2022-11-22T05:54:40.7568259Z Need to get 4528 kB of archives. +2022-11-22T05:54:40.7569656Z After this operation, 19.3 MB of additional disk space will be used. +2022-11-22T05:54:40.7571172Z Get:1 http://azure.archive.ubuntu.com/ubuntu focal/main i386 libcrypt1 i386 1:4.4.10-10ubuntu4 [90.9 kB] +2022-11-22T05:54:40.8228146Z Get:2 http://azure.archive.ubuntu.com/ubuntu focal-updates/main i386 libc6 i386 2.31-0ubuntu9.9 [2580 kB] +2022-11-22T05:54:40.8872245Z Get:3 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal/main i386 gcc-11-base i386 11.1.0-1ubuntu1~20.04 [19.0 kB] +2022-11-22T05:54:40.9288307Z Get:4 http://azure.archive.ubuntu.com/ubuntu focal/main i386 libunistring2 i386 0.9.10-2 [377 kB] +2022-11-22T05:54:40.9540992Z Get:5 http://azure.archive.ubuntu.com/ubuntu focal/main i386 libidn2-0 i386 2.2.0-2 [51.4 kB] +2022-11-22T05:54:40.9732163Z Get:6 http://azure.archive.ubuntu.com/ubuntu focal-updates/main i386 libssl1.1 i386 1.1.1f-1ubuntu2.16 [1318 kB] +2022-11-22T05:54:41.1393577Z Get:7 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal/main amd64 libgcc-s1 amd64 11.1.0-1ubuntu1~20.04 [42.1 kB] +2022-11-22T05:54:41.3919926Z Get:8 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu focal/main i386 libgcc-s1 i386 11.1.0-1ubuntu1~20.04 [50.0 kB] +2022-11-22T05:54:41.9330770Z Preconfiguring packages ... +2022-11-22T05:54:42.0223529Z Fetched 4528 kB in 1s (5289 kB/s) +2022-11-22T05:54:42.0557174Z Selecting previously unselected package gcc-11-base:i386. +2022-11-22T05:54:42.0854631Z (Reading database ... +2022-11-22T05:54:42.0856650Z (Reading database ... 5% +2022-11-22T05:54:42.0857135Z (Reading database ... 10% +2022-11-22T05:54:42.0857616Z (Reading database ... 15% +2022-11-22T05:54:42.0858054Z (Reading database ... 20% +2022-11-22T05:54:42.0858479Z (Reading database ... 25% +2022-11-22T05:54:42.0858956Z (Reading database ... 30% +2022-11-22T05:54:42.0859370Z (Reading database ... 35% +2022-11-22T05:54:42.0861988Z (Reading database ... 40% +2022-11-22T05:54:42.0862367Z (Reading database ... 45% +2022-11-22T05:54:42.0868447Z (Reading database ... 50% +2022-11-22T05:54:42.1200369Z (Reading database ... 55% +2022-11-22T05:54:42.1600440Z (Reading database ... 60% +2022-11-22T05:54:42.2011877Z (Reading database ... 65% +2022-11-22T05:54:42.2691087Z (Reading database ... 70% +2022-11-22T05:54:42.3704401Z (Reading database ... 75% +2022-11-22T05:54:42.4279826Z (Reading database ... 80% +2022-11-22T05:54:42.5026921Z (Reading database ... 85% +2022-11-22T05:54:42.6241054Z (Reading database ... 90% +2022-11-22T05:54:42.6851914Z (Reading database ... 95% +2022-11-22T05:54:42.6852580Z (Reading database ... 100% +2022-11-22T05:54:42.6853325Z (Reading database ... 242126 files and directories currently installed.) +2022-11-22T05:54:42.6940933Z Preparing to unpack .../0-gcc-11-base_11.1.0-1ubuntu1~20.04_i386.deb ... +2022-11-22T05:54:42.7004541Z Unpacking gcc-11-base:i386 (11.1.0-1ubuntu1~20.04) ... +2022-11-22T05:54:42.8039338Z Preparing to unpack .../1-libgcc-s1_11.1.0-1ubuntu1~20.04_amd64.deb ... +2022-11-22T05:54:42.8690745Z Unpacking libgcc-s1:amd64 (11.1.0-1ubuntu1~20.04) over (10.3.0-1ubuntu1~20.04) ... +2022-11-22T05:54:42.9070629Z Selecting previously unselected package libgcc-s1:i386. +2022-11-22T05:54:42.9298797Z Preparing to unpack .../2-libgcc-s1_11.1.0-1ubuntu1~20.04_i386.deb ... +2022-11-22T05:54:42.9315714Z Unpacking libgcc-s1:i386 (11.1.0-1ubuntu1~20.04) ... +2022-11-22T05:54:42.9648689Z Selecting previously unselected package libcrypt1:i386. +2022-11-22T05:54:42.9852885Z Preparing to unpack .../3-libcrypt1_1%3a4.4.10-10ubuntu4_i386.deb ... +2022-11-22T05:54:42.9856149Z Unpacking libcrypt1:i386 (1:4.4.10-10ubuntu4) ... +2022-11-22T05:54:43.0771392Z Selecting previously unselected package libc6:i386. +2022-11-22T05:54:43.1007419Z Preparing to unpack .../4-libc6_2.31-0ubuntu9.9_i386.deb ... +2022-11-22T05:54:43.2242069Z Unpacking libc6:i386 (2.31-0ubuntu9.9) ... +2022-11-22T05:54:43.5298133Z Replacing files in old package libc6-i386 (2.31-0ubuntu9.9) ... +2022-11-22T05:54:43.5688011Z Selecting previously unselected package libunistring2:i386. +2022-11-22T05:54:43.5908746Z Preparing to unpack .../5-libunistring2_0.9.10-2_i386.deb ... +2022-11-22T05:54:43.5926527Z Unpacking libunistring2:i386 (0.9.10-2) ... +2022-11-22T05:54:43.7011902Z Selecting previously unselected package libidn2-0:i386. +2022-11-22T05:54:43.7250698Z Preparing to unpack .../6-libidn2-0_2.2.0-2_i386.deb ... +2022-11-22T05:54:43.7260936Z Unpacking libidn2-0:i386 (2.2.0-2) ... +2022-11-22T05:54:43.8011769Z Selecting previously unselected package libssl1.1:i386. +2022-11-22T05:54:43.8231978Z Preparing to unpack .../7-libssl1.1_1.1.1f-1ubuntu2.16_i386.deb ... +2022-11-22T05:54:43.8249767Z Unpacking libssl1.1:i386 (1.1.1f-1ubuntu2.16) ... +2022-11-22T05:54:43.9966260Z Setting up gcc-11-base:i386 (11.1.0-1ubuntu1~20.04) ... +2022-11-22T05:54:44.0023499Z Setting up libgcc-s1:amd64 (11.1.0-1ubuntu1~20.04) ... +2022-11-22T05:54:44.0074843Z Setting up libgcc-s1:i386 (11.1.0-1ubuntu1~20.04) ... +2022-11-22T05:54:44.0147311Z Setting up libcrypt1:i386 (1:4.4.10-10ubuntu4) ... +2022-11-22T05:54:44.0207900Z Setting up libc6:i386 (2.31-0ubuntu9.9) ... +2022-11-22T05:54:44.2245544Z Setting up libssl1.1:i386 (1.1.1f-1ubuntu2.16) ... +2022-11-22T05:54:44.3413101Z Setting up libunistring2:i386 (0.9.10-2) ... +2022-11-22T05:54:44.3480700Z Setting up libidn2-0:i386 (2.2.0-2) ... +2022-11-22T05:54:44.3526066Z Processing triggers for libc-bin (2.31-0ubuntu9.9) ... +2022-11-22T05:54:47.9184710Z 2022-11-22 05:54:47 URL:https://objects.githubusercontent.com/github-production-release-asset-2e65be/127494547/92c6bbfc-0d51-48ea-b586-9cd01c071d25?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20221122%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20221122T055447Z&X-Amz-Expires=300&X-Amz-Signature=a32f997c627b97bfd5d0adc58e9308d7ad18409d943ce16b7a351e9c3ed708ae&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=127494547&response-content-disposition=attachment%3B%20filename%3Dlibrust_g.so&response-content-type=application%2Foctet-stream [72809008/72809008] -> "/home/runner/.byond/bin/librust_g.so" [1] +2022-11-22T05:54:47.9588206Z linux-gate.so.1 (0xf7f26000) +2022-11-22T05:54:47.9589002Z libssl.so.1.1 => /lib/i386-linux-gnu/libssl.so.1.1 (0xf7758000) +2022-11-22T05:54:47.9589713Z libcrypto.so.1.1 => /lib/i386-linux-gnu/libcrypto.so.1.1 (0xf74a0000) +2022-11-22T05:54:47.9590427Z libz.so.1 => /lib32/libz.so.1 (0xf7482000) +2022-11-22T05:54:47.9591034Z libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7463000) +2022-11-22T05:54:47.9603888Z libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7440000) +2022-11-22T05:54:47.9604548Z libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf733b000) +2022-11-22T05:54:47.9605162Z libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7335000) +2022-11-22T05:54:47.9607450Z libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7146000) +2022-11-22T05:54:47.9608010Z /lib/ld-linux.so.2 (0xf7f28000) +2022-11-22T05:54:47.9651599Z ##[group]Run bash tools/ci/install_auxlua.sh +2022-11-22T05:54:47.9651916Z bash tools/ci/install_auxlua.sh +2022-11-22T05:54:47.9705175Z shell: /usr/bin/bash -e {0} +2022-11-22T05:54:47.9705424Z ##[endgroup] +2022-11-22T05:54:48.2148819Z 2022-11-22 05:54:48 URL:https://objects.githubusercontent.com/github-production-release-asset-2e65be/473295481/bb55dc2f-8248-4032-ad66-b80cb61a84f3?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20221122%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20221122T055448Z&X-Amz-Expires=300&X-Amz-Signature=a48846f5bb1d413d7d97402cc3c1d0f7f80f6a04583d898bce2ff6a0bdfd469a&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=473295481&response-content-disposition=attachment%3B%20filename%3Dlibauxlua.so&response-content-type=application%2Foctet-stream [5781068/5781068] -> "/home/runner/.byond/bin/libauxlua.so" [1] +2022-11-22T05:54:48.2431263Z linux-gate.so.1 (0xf7ee6000) +2022-11-22T05:54:48.2431996Z libstdc++.so.6 => /lib32/libstdc++.so.6 (0xf7adf000) +2022-11-22T05:54:48.2436279Z libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7ac0000) +2022-11-22T05:54:48.2436997Z libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7a9d000) +2022-11-22T05:54:48.2437658Z libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7998000) +2022-11-22T05:54:48.2439621Z libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7992000) +2022-11-22T05:54:48.2440822Z libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf77a3000) +2022-11-22T05:54:48.2441586Z /lib/ld-linux.so.2 (0xf7ee8000) +2022-11-22T05:54:48.2494794Z ##[group]Run bash tools/ci/install_byond.sh +2022-11-22T05:54:48.2495106Z bash tools/ci/install_byond.sh +2022-11-22T05:54:48.2495386Z source $HOME/BYOND/byond/bin/byondsetup +2022-11-22T05:54:48.2495706Z tools/build/build --ci dm -DCIBUILDING -DANSICOLORS +2022-11-22T05:54:48.2545744Z shell: /usr/bin/bash -e {0} +2022-11-22T05:54:48.2545971Z ##[endgroup] +2022-11-22T05:54:48.2653351Z Setting up BYOND. +2022-11-22T05:54:48.2793431Z % Total % Received % Xferd Average Speed Time Time Time Current +2022-11-22T05:54:48.2797236Z Dload Upload Total Spent Left Speed +2022-11-22T05:54:48.2797554Z +2022-11-22T05:54:48.3941092Z 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 +2022-11-22T05:54:48.3943148Z 100 4021k 100 4021k 0 0 34.1M 0 --:--:-- --:--:-- --:--:-- 34.1M +2022-11-22T05:54:48.3983451Z Archive: byond.zip +2022-11-22T05:54:48.3983864Z creating: byond/ +2022-11-22T05:54:48.3984237Z creating: byond/key/ +2022-11-22T05:54:48.3984563Z creating: byond/web/ +2022-11-22T05:54:48.3985833Z inflating: byond/web/child.dms +2022-11-22T05:54:48.3986928Z inflating: byond/web/button.dms +2022-11-22T05:54:48.3988496Z inflating: byond/web/input.dms +2022-11-22T05:54:48.3989251Z inflating: byond/web/text.dms +2022-11-22T05:54:48.4097340Z inflating: byond/web/webclient.dart.js +2022-11-22T05:54:48.4098200Z inflating: byond/web/verbmenu.dms +2022-11-22T05:54:48.4099001Z inflating: byond/web/defaultSkin.dms +2022-11-22T05:54:48.4100540Z inflating: byond/web/hotbar.dms +2022-11-22T05:54:48.4101414Z inflating: byond/web/label.dms +2022-11-22T05:54:48.4102162Z inflating: byond/web/alert.dms +2022-11-22T05:54:48.4102953Z inflating: byond/web/message.dms +2022-11-22T05:54:48.4103516Z inflating: byond/web/drag.png +2022-11-22T05:54:48.4104351Z inflating: byond/web/map.dms +2022-11-22T05:54:48.4105580Z inflating: byond/web/splashlogo.png +2022-11-22T05:54:48.4106166Z inflating: byond/web/drop.png +2022-11-22T05:54:48.4211884Z inflating: byond/web/ext.js +2022-11-22T05:54:48.4212354Z inflating: byond/web/file.dms +2022-11-22T05:54:48.4213426Z inflating: byond/web/grid.dms +2022-11-22T05:54:48.4214990Z inflating: byond/web/bar.dms +2022-11-22T05:54:48.4218521Z inflating: byond/web/dpad.dms +2022-11-22T05:54:48.4218793Z inflating: byond/web/output.dms +2022-11-22T05:54:48.4220119Z inflating: byond/web/tab.dms +2022-11-22T05:54:48.4221829Z inflating: byond/web/info.dms +2022-11-22T05:54:48.4223462Z inflating: byond/web/color.dms +2022-11-22T05:54:48.4224634Z inflating: byond/web/gamepad.dms +2022-11-22T05:54:48.4226063Z inflating: byond/web/browser.dms +2022-11-22T05:54:48.4226672Z inflating: byond/web/status.dms +2022-11-22T05:54:48.4227640Z inflating: byond/web/any.dms +2022-11-22T05:54:48.4228616Z inflating: byond/web/pane.dms +2022-11-22T05:54:48.4230037Z inflating: byond/web/pop.dms +2022-11-22T05:54:48.4231031Z inflating: byond/license.txt +2022-11-22T05:54:48.4231783Z inflating: byond/legal.txt +2022-11-22T05:54:48.4232778Z inflating: byond/Makefile +2022-11-22T05:54:48.4233180Z creating: byond/man/ +2022-11-22T05:54:48.4233524Z creating: byond/man/man6/ +2022-11-22T05:54:48.4234935Z inflating: byond/man/man6/DreamDaemon.6 +2022-11-22T05:54:48.4235672Z inflating: byond/man/man6/DreamMaker.6 +2022-11-22T05:54:48.4235940Z creating: byond/lib/ +2022-11-22T05:54:48.4236255Z creating: byond/host/ +2022-11-22T05:54:48.4237956Z inflating: byond/host/readme.html +2022-11-22T05:54:48.4238971Z inflating: byond/host/readme-unix.txt +2022-11-22T05:54:48.4239365Z creating: byond/host/home/ +2022-11-22T05:54:48.4239866Z creating: byond/host/home/root/ +2022-11-22T05:54:48.4240241Z creating: byond/host/home/root/byond/ +2022-11-22T05:54:48.4240880Z creating: byond/host/home/root/byond/tools/ +2022-11-22T05:54:48.4241382Z creating: byond/host/home/root/byond/tools/root/ +2022-11-22T05:54:48.4247309Z inflating: byond/host/home/root/byond/tools/root/root.dmb +2022-11-22T05:54:48.4247605Z creating: byond/host/shared/ +2022-11-22T05:54:48.4247857Z creating: byond/host/shared/byond/ +2022-11-22T05:54:48.4248438Z creating: byond/host/shared/byond/tools/ +2022-11-22T05:54:48.4248723Z creating: byond/host/shared/byond/tools/ftp/ +2022-11-22T05:54:48.4251228Z inflating: byond/host/shared/byond/tools/ftp/ftp.dmb +2022-11-22T05:54:48.4251558Z creating: byond/host/shared/byond/tools/admin/ +2022-11-22T05:54:48.4257787Z inflating: byond/host/shared/byond/tools/admin/admin.dmb +2022-11-22T05:54:48.4258223Z creating: byond/host/shared-web/ +2022-11-22T05:54:48.4258547Z creating: byond/host/shared-web/web/ +2022-11-22T05:54:48.4259004Z creating: byond/host/shared-web/web/tools/ +2022-11-22T05:54:48.4259439Z creating: byond/host/shared-web/web/tools/admin/ +2022-11-22T05:54:48.4265239Z inflating: byond/host/shared-web/web/tools/admin/index.dmb +2022-11-22T05:54:48.4272736Z inflating: byond/host/host.dmb +2022-11-22T05:54:48.4273011Z inflating: byond/host/host.start +2022-11-22T05:54:48.4273659Z inflating: byond/host/hostconf.orig +2022-11-22T05:54:48.4274617Z inflating: byond/host/hostconf.txt +2022-11-22T05:54:48.4275402Z inflating: byond/readme.txt +2022-11-22T05:54:48.4275717Z creating: byond/bin/ +2022-11-22T05:54:48.4276299Z inflating: byond/bin/byondexec +2022-11-22T05:54:48.4278446Z inflating: byond/bin/DreamDownload +2022-11-22T05:54:48.4922483Z inflating: byond/bin/libbyond.so +2022-11-22T05:54:48.5068123Z inflating: byond/bin/libext.so +2022-11-22T05:54:48.5070046Z inflating: byond/bin/DreamDaemon +2022-11-22T05:54:48.5074232Z inflating: byond/bin/DreamMaker +2022-11-22T05:54:48.5074521Z creating: byond/cfg/ +2022-11-22T05:54:48.5074946Z inflating: byond/cfg/release.txt +2022-11-22T05:54:48.5230052Z *************************** +2022-11-22T05:54:48.5237614Z Now run the following command: +2022-11-22T05:54:48.5248736Z +2022-11-22T05:54:48.5259947Z source /home/runner/BYOND/byond/bin/byondsetup +2022-11-22T05:54:48.5270619Z +2022-11-22T05:54:48.5278255Z If it generates errors, your shell is not compatible with 'sh', so you will +2022-11-22T05:54:48.5285604Z have to edit byondsetup and make it work with your shell. If the script works, you should be able to run DreamDaemon. +2022-11-22T05:54:48.5297083Z +2022-11-22T05:54:48.5304283Z IMPORTANT: once you have the script working, you must add the above line +2022-11-22T05:54:48.5311617Z to your startup script. The name of your startup script depends on the +2022-11-22T05:54:48.5318799Z shell you use. Typical ones are .profile or .bash_profile. +2022-11-22T05:54:48.5329607Z +2022-11-22T05:54:48.5335539Z Once everything is working, you can find out more about the software +2022-11-22T05:54:48.5340846Z by doing 'man DreamDaemon'. A host server has also been included +2022-11-22T05:54:48.5345719Z so edit host/hostconf.txt and boot up your world server! +2022-11-22T05:54:48.5350723Z *************************** +2022-11-22T05:54:48.6078889Z Using system-wide Node v16.18.0 +2022-11-22T05:54:48.7660550Z :: Juke Build version 0.8.1 +2022-11-22T05:54:49.0224910Z => Starting 'dm' +2022-11-22T05:54:49.0233013Z :: Using defines: CBT, CIBUILDING, ANSICOLORS +2022-11-22T05:54:49.2134158Z DM compiler version 514.1588 +2022-11-22T05:54:49.2134485Z loading tgstation.m.dme +2022-11-22T05:54:57.6255000Z loading interface/skin.dmf +2022-11-22T05:55:47.8603172Z loading map_files/generic/CentCom.dmm +2022-11-22T05:55:48.8009123Z saving tgstation.m.dmb (DEBUG mode) +2022-11-22T05:55:49.8362884Z tgstation.m.dmb - 0 errors, 0 warnings (11/22/22 5:55 am) +2022-11-22T05:55:49.8414352Z Total time: 1:00 +2022-11-22T05:55:50.7626726Z => Finished 'dm' in 61.74s +2022-11-22T05:55:50.7630781Z => Done in 61.996s +2022-11-22T05:55:50.7723825Z ##[group]Run source $HOME/BYOND/byond/bin/byondsetup +2022-11-22T05:55:50.7724384Z source $HOME/BYOND/byond/bin/byondsetup +2022-11-22T05:55:50.7725050Z bash tools/ci/run_server.sh metastation +2022-11-22T05:55:50.7801355Z shell: /usr/bin/bash -e {0} +2022-11-22T05:55:50.7801587Z ##[endgroup] +2022-11-22T05:55:50.7892704Z Testing metastation +2022-11-22T05:55:51.0035586Z cp: cannot stat 'tgui/packages/tgfont/dist/*': No such file or directory +2022-11-22T05:55:51.0189960Z Tue Nov 22 05:55:51 2022 +2022-11-22T05:55:51.0190868Z World opened on network port 58409. +2022-11-22T05:55:51.0191359Z Welcome BYOND! (5.0 Public Version 514.1588) +2022-11-22T05:56:10.1077799Z 868 global variables +2022-11-22T05:56:10.7927422Z World loaded at 05:56:10! +2022-11-22T05:56:10.8379706Z Running /tg/ revision: +2022-11-22T05:56:10.8380020Z No commit information +2022-11-22T05:56:10.8454815Z Loading config file config.txt... +2022-11-22T05:56:10.8458259Z Loading config file maps.txt... +2022-11-22T05:56:10.8479868Z Unable to locate admins backup file. +2022-11-22T05:56:11.8631460Z Initialized Title Screen subsystem within 0 seconds! +2022-11-22T05:56:11.8631891Z Initialized Server Tasks subsystem within 0 seconds! +2022-11-22T05:56:11.8632565Z Initialized Input subsystem within 0 seconds! +2022-11-22T05:56:11.8690820Z Initialized Profiler subsystem within 0 seconds! +2022-11-22T05:56:11.8691168Z Initialized Database subsystem within 0 seconds! +2022-11-22T05:56:11.8691814Z Initialized Blackbox subsystem within 0 seconds! +2022-11-22T05:56:11.8692797Z Initialized Sounds subsystem within 0 seconds! +2022-11-22T05:56:11.8828615Z Initialized Instruments subsystem within 0.01 seconds! +2022-11-22T05:56:12.2167428Z Initialized Greyscale subsystem within 0.33 seconds! +2022-11-22T05:56:12.2167879Z Initialized Vis contents overlays subsystem within 0 seconds! +2022-11-22T05:56:12.2168267Z Initialized Security Level subsystem within 0 seconds! +2022-11-22T05:56:12.2189261Z Initialized Station subsystem within 0 seconds! +2022-11-22T05:56:12.2202098Z Initialized Quirks subsystem within 0 seconds! +2022-11-22T05:56:12.2320897Z Initialized Reagents subsystem within 0.01 seconds! +2022-11-22T05:56:12.2325541Z Initialized Events subsystem within 0 seconds! +2022-11-22T05:56:12.2377703Z Initialized IDs and Access subsystem within 0.01 seconds! +2022-11-22T05:56:12.2378499Z Initialized Jobs subsystem within 0 seconds! +2022-11-22T05:56:12.2379505Z Initialized AI movement subsystem within 0 seconds! +2022-11-22T05:56:12.2399099Z Initialized Ticker subsystem within 0 seconds! +2022-11-22T05:56:12.2401506Z Initialized AI Controller Ticker subsystem within 0 seconds! +2022-11-22T05:56:12.2402756Z Initialized AI Behavior Ticker subsystem within 0 seconds! +2022-11-22T05:56:12.2534901Z Initialized Trading Card Game subsystem within 0.01 seconds! +2022-11-22T05:56:12.2695227Z Loading MetaStation... +2022-11-22T05:56:13.6007721Z Loaded Station in 1.4s! +2022-11-22T05:56:14.3263930Z Loaded Lavaland in 0.6s! +2022-11-22T05:56:15.0849457Z Ruin loader finished with 0 left to spend. +2022-11-22T05:56:15.1862835Z Ruin loader finished with 0 left to spend. +2022-11-22T05:56:15.4246125Z Cave Generator finished in 0.3s! +2022-11-22T05:56:15.4560459Z Cave Generator finished in 0s! +2022-11-22T05:56:16.0885613Z Initialized Mapping subsystem within 3.83 seconds! +2022-11-22T05:56:38.2726128Z Initialized Early Assets subsystem within 22.18 seconds! +2022-11-22T05:56:38.3071167Z Initialized Research subsystem within 0.03 seconds! +2022-11-22T05:56:38.3073379Z Initialized Time Tracking subsystem within 0 seconds! +2022-11-22T05:56:38.3169516Z Initialized Networks subsystem within 0.01 seconds! +2022-11-22T05:56:38.3386821Z Initialized Spatial Grid subsystem within 0.02 seconds! +2022-11-22T05:56:38.3387426Z Initialized Economy subsystem within 0 seconds! +2022-11-22T05:56:38.3396301Z Initialized Restaurant subsystem within 0 seconds! +2022-11-22T05:56:40.9885406Z The BYOND hub reports that port 58409 is not reachable. +2022-11-22T05:57:05.1172204Z ## NOTICE: morgue_cadaver_disable_nonhumans. There are no valid roundstart nonhuman races enabled. Defaulting to humans only! +2022-11-22T05:57:06.7858739Z Initialized Atoms subsystem within 28.45 seconds! +2022-11-22T05:57:06.7975404Z Initialized Language subsystem within 0.01 seconds! +2022-11-22T05:57:06.8745273Z Initialized Machines subsystem within 0.08 seconds! +2022-11-22T05:57:06.8746886Z Initialized Skills subsystem within 0 seconds! +2022-11-22T05:57:06.8748827Z Initialized Addiction subsystem within 0 seconds! +2022-11-22T05:57:06.8758560Z Initialized Blackmarket subsystem within 0 seconds! +2022-11-22T05:57:06.8761410Z Initialized Disease subsystem within 0 seconds! +2022-11-22T05:57:06.8761834Z Initialized Fluid subsystem within 0 seconds! +2022-11-22T05:57:06.8762760Z Initialized Smoke subsystem within 0 seconds! +2022-11-22T05:57:06.8763545Z Initialized Foam subsystem within 0 seconds! +2022-11-22T05:57:06.8764349Z Initialized Lag Switch subsystem within 0 seconds! +2022-11-22T05:57:06.8940474Z Initialized Library Loading subsystem within 0.02 seconds! +2022-11-22T05:57:07.2408456Z Initialized Lua Scripting subsystem within 0.35 seconds! +2022-11-22T05:57:07.2409327Z Initialized Night Shift subsystem within 0 seconds! +2022-11-22T05:57:07.2410361Z Initialized Sun subsystem within 0 seconds! +2022-11-22T05:57:07.2435844Z Initialized Traitor subsystem within 0 seconds! +2022-11-22T05:57:07.2632292Z Initialized Wardrobe subsystem within 0.02 seconds! +2022-11-22T05:57:07.2633023Z Initialized Weather subsystem within 0 seconds! +2022-11-22T05:57:07.2633877Z Initialized Wiremod Composite Templates subsystem within 0 seconds! +2022-11-22T05:57:10.9882289Z Initialized Atmospherics subsystem within 3.72 seconds! +2022-11-22T05:57:10.9894873Z Initialized Persistence subsystem within 0 seconds! +2022-11-22T05:57:10.9899148Z Initialized Persistent Paintings subsystem within 0 seconds! +2022-11-22T05:57:10.9903351Z Initialized Vote subsystem within 0 seconds! +2022-11-22T05:57:22.4988698Z Initialized Assets subsystem within 11.51 seconds! +2022-11-22T05:57:24.3487800Z Initialized Icon Smoothing subsystem within 1.85 seconds! +2022-11-22T05:57:24.3495654Z Initialized XKeyScore subsystem within 0 seconds! +2022-11-22T05:57:24.3511340Z Initialized PRISM subsystem within 0 seconds! +2022-11-22T05:57:29.2181327Z Initialized Lighting subsystem within 4.87 seconds! +2022-11-22T05:57:31.3719906Z Initialized Shuttle subsystem within 2.15 seconds! +2022-11-22T05:57:31.3720568Z Initialized Pathfinder subsystem within 0 seconds! +2022-11-22T05:57:31.3728738Z Initialized Ban Cache subsystem within 0 seconds! +2022-11-22T05:57:31.3729264Z Initialized Init Profiler subsystem within 0 seconds! +2022-11-22T05:57:31.3729723Z Initialized Chat subsystem within 0 seconds! +2022-11-22T05:57:31.3730281Z Initializations complete within 79.5 seconds! +2022-11-22T05:57:31.3830937Z Game start took 0s +2022-11-22T05:57:42.0634964Z ##[group]/datum/unit_test/log_mapping +2022-11-22T05:57:42.0635672Z +2022-11-22T05:57:42.0636846Z PASS /datum/unit_test/log_mapping 0s +2022-11-22T05:57:42.0637417Z ##[endgroup] +2022-11-22T05:57:42.1282731Z ##[group]/datum/unit_test/ablative_hood_hud +2022-11-22T05:57:42.1532576Z +2022-11-22T05:57:42.1533762Z PASS /datum/unit_test/ablative_hood_hud 0s +2022-11-22T05:57:42.1534764Z ##[endgroup] +2022-11-22T05:57:42.1781522Z ##[group]/datum/unit_test/ablative_hood_hud_with_helmet +2022-11-22T05:57:42.2004168Z +2022-11-22T05:57:42.2005116Z PASS /datum/unit_test/ablative_hood_hud_with_helmet 0.1s +2022-11-22T05:57:42.2011130Z ##[endgroup] +2022-11-22T05:57:42.2281431Z ##[group]/datum/unit_test/achievements +2022-11-22T05:57:42.2391582Z +2022-11-22T05:57:42.2392386Z PASS /datum/unit_test/achievements 0s +2022-11-22T05:57:42.2393271Z ##[endgroup] +2022-11-22T05:57:42.2781664Z ##[group]/datum/unit_test/anchored_mobs +2022-11-22T05:57:42.2783035Z +2022-11-22T05:57:42.2783769Z PASS /datum/unit_test/anchored_mobs 0s +2022-11-22T05:57:42.2784572Z ##[endgroup] +2022-11-22T05:57:42.2936672Z ##[group]/datum/unit_test/anonymous_themes +2022-11-22T05:57:42.4235721Z +2022-11-22T05:57:42.4237433Z PASS /datum/unit_test/anonymous_themes 0.2s +2022-11-22T05:57:42.4238500Z ##[endgroup] +2022-11-22T05:57:42.6392895Z ##[group]/datum/unit_test/autowiki +2022-11-22T05:57:43.8278371Z +2022-11-22T05:57:43.8280173Z PASS /datum/unit_test/autowiki 1.2s +2022-11-22T05:57:43.8281239Z ##[endgroup] +2022-11-22T05:57:44.9926595Z ##[group]/datum/unit_test/autowiki_include_template +2022-11-22T05:57:44.9929132Z +2022-11-22T05:57:44.9931384Z PASS /datum/unit_test/autowiki_include_template 0s +2022-11-22T05:57:44.9933262Z ##[endgroup] +2022-11-22T05:57:45.0087357Z ##[group]/datum/unit_test/barsigns_icon +2022-11-22T05:57:45.0294182Z +2022-11-22T05:57:45.0295837Z PASS /datum/unit_test/barsigns_icon 0s +2022-11-22T05:57:45.0298739Z ##[endgroup] +2022-11-22T05:57:45.0940696Z ##[group]/datum/unit_test/barsigns_name +2022-11-22T05:57:45.0941383Z +2022-11-22T05:57:45.0944198Z PASS /datum/unit_test/barsigns_name 0s +2022-11-22T05:57:45.0946955Z ##[endgroup] +2022-11-22T05:57:45.1096461Z ##[group]/datum/unit_test/bespoke_id +2022-11-22T05:57:45.1096937Z +2022-11-22T05:57:45.1099174Z PASS /datum/unit_test/bespoke_id 0s +2022-11-22T05:57:45.1100742Z ##[endgroup] +2022-11-22T05:57:45.1439539Z ##[group]/datum/unit_test/binary_insert +2022-11-22T05:57:45.1442012Z +2022-11-22T05:57:45.1443259Z PASS /datum/unit_test/binary_insert 0s +2022-11-22T05:57:45.1444013Z ##[endgroup] +2022-11-22T05:57:45.1594465Z ##[group]/datum/unit_test/bloody_footprints +2022-11-22T05:57:45.1861559Z +2022-11-22T05:57:45.1862509Z PASS /datum/unit_test/bloody_footprints 0s +2022-11-22T05:57:45.1863678Z ##[endgroup] +2022-11-22T05:57:45.2757269Z ##[group]/datum/unit_test/breath_sanity +2022-11-22T05:57:45.3154911Z +2022-11-22T05:57:45.3155918Z PASS /datum/unit_test/breath_sanity 0.1s +2022-11-22T05:57:45.3157085Z ##[endgroup] +2022-11-22T05:57:45.3851583Z ##[group]/datum/unit_test/breath_sanity_plasmamen +2022-11-22T05:57:45.4259844Z +2022-11-22T05:57:45.4260721Z PASS /datum/unit_test/breath_sanity_plasmamen 0.1s +2022-11-22T05:57:45.4261835Z ##[endgroup] +2022-11-22T05:57:45.4970449Z ##[group]/datum/unit_test/breath_sanity_ashwalker +2022-11-22T05:57:45.5458718Z +2022-11-22T05:57:45.5459726Z PASS /datum/unit_test/breath_sanity_ashwalker 0.1s +2022-11-22T05:57:45.5460898Z ##[endgroup] +2022-11-22T05:57:45.6672536Z ##[group]/datum/unit_test/cable_powernets +2022-11-22T05:57:45.6673181Z +2022-11-22T05:57:45.6674204Z PASS /datum/unit_test/cable_powernets 0s +2022-11-22T05:57:45.6674983Z ##[endgroup] +2022-11-22T05:57:45.6813975Z ##[group]/datum/unit_test/card_mismatch +2022-11-22T05:57:45.6847490Z +2022-11-22T05:57:45.6848203Z PASS /datum/unit_test/card_mismatch 0s +2022-11-22T05:57:45.6849278Z ##[endgroup] +2022-11-22T05:57:45.7667452Z ##[group]/datum/unit_test/chain_pull_through_space +2022-11-22T05:57:45.7691182Z +2022-11-22T05:57:45.7692013Z PASS /datum/unit_test/chain_pull_through_space 0s +2022-11-22T05:57:45.7693138Z ##[endgroup] +2022-11-22T05:57:45.9995429Z ##[group]/datum/unit_test/chat_filter_sanity +2022-11-22T05:57:46.0000038Z +2022-11-22T05:57:46.0000532Z PASS /datum/unit_test/chat_filter_sanity 0s +2022-11-22T05:57:46.0001077Z ##[endgroup] +2022-11-22T05:57:46.0139755Z ##[group]/datum/unit_test/circuit_component_category +2022-11-22T05:57:46.0139979Z +2022-11-22T05:57:46.0140376Z PASS /datum/unit_test/circuit_component_category 0s +2022-11-22T05:57:46.0140890Z ##[endgroup] +2022-11-22T05:57:46.0280886Z ##[group]/datum/unit_test/closets +2022-11-22T05:57:47.4931763Z +2022-11-22T05:57:47.4932352Z PASS /datum/unit_test/closets 1.4s +2022-11-22T05:57:47.4932981Z ##[endgroup] +2022-11-22T05:57:50.1800201Z ##[group]/datum/unit_test/harm_punch +2022-11-22T05:57:50.2237522Z +2022-11-22T05:57:50.2238465Z PASS /datum/unit_test/harm_punch 0.1s +2022-11-22T05:57:50.2239270Z ##[endgroup] +2022-11-22T05:57:50.2470659Z ##[group]/datum/unit_test/harm_melee +2022-11-22T05:57:50.2990417Z +2022-11-22T05:57:50.2991838Z PASS /datum/unit_test/harm_melee 0s +2022-11-22T05:57:50.2994899Z ##[endgroup] +2022-11-22T05:57:50.3439298Z ##[group]/datum/unit_test/harm_different_damage +2022-11-22T05:57:50.3918437Z +2022-11-22T05:57:50.3919330Z PASS /datum/unit_test/harm_different_damage 0s +2022-11-22T05:57:50.4008259Z ##[endgroup] +2022-11-22T05:57:50.4167399Z ##[group]/datum/unit_test/attack_chain +2022-11-22T05:57:50.4632392Z +2022-11-22T05:57:50.4633058Z PASS /datum/unit_test/attack_chain 0s +2022-11-22T05:57:50.4633745Z ##[endgroup] +2022-11-22T05:57:50.4904110Z ##[group]/datum/unit_test/disarm +2022-11-22T05:57:50.5347143Z +2022-11-22T05:57:50.5347804Z PASS /datum/unit_test/disarm 0.1s +2022-11-22T05:57:50.5348427Z ##[endgroup] +2022-11-22T05:57:50.5595669Z ##[group]/datum/unit_test/component_duping +2022-11-22T05:57:50.5595898Z +2022-11-22T05:57:50.5596342Z PASS /datum/unit_test/component_duping 0s +2022-11-22T05:57:50.5596852Z ##[endgroup] +2022-11-22T05:57:50.5739602Z ##[group]/datum/unit_test/confusion_symptom +2022-11-22T05:57:50.5945849Z +2022-11-22T05:57:50.5946402Z PASS /datum/unit_test/confusion_symptom 0s +2022-11-22T05:57:50.5947016Z ##[endgroup] +2022-11-22T05:57:50.6143700Z ##[group]/datum/unit_test/connect_loc_basic +2022-11-22T05:57:50.6143916Z +2022-11-22T05:57:50.6144283Z PASS /datum/unit_test/connect_loc_basic 0s +2022-11-22T05:57:50.6144785Z ##[endgroup] +2022-11-22T05:57:50.6284913Z ##[group]/datum/unit_test/connect_loc_change_turf +2022-11-22T05:57:50.6292634Z +2022-11-22T05:57:50.6293007Z PASS /datum/unit_test/connect_loc_change_turf 0s +2022-11-22T05:57:50.6293533Z ##[endgroup] +2022-11-22T05:57:50.6434958Z ##[group]/datum/unit_test/connect_loc_multiple_on_turf +2022-11-22T05:57:50.6440347Z +2022-11-22T05:57:50.6440682Z PASS /datum/unit_test/connect_loc_multiple_on_turf 0s +2022-11-22T05:57:50.6441134Z ##[endgroup] +2022-11-22T05:57:50.6579913Z ##[group]/datum/unit_test/reagent_container_sanity +2022-11-22T05:57:50.7818215Z +2022-11-22T05:57:50.7818993Z PASS /datum/unit_test/reagent_container_sanity 0.1s +2022-11-22T05:57:50.7819687Z ##[endgroup] +2022-11-22T05:57:51.0092450Z ##[group]/datum/unit_test/crayon_naming +2022-11-22T05:57:51.0150514Z +2022-11-22T05:57:51.0151055Z PASS /datum/unit_test/crayon_naming 0s +2022-11-22T05:57:51.0151629Z ##[endgroup] +2022-11-22T05:57:51.0291644Z ##[group]/datum/unit_test/dcs_get_id_from_arguments +2022-11-22T05:57:51.0295148Z +2022-11-22T05:57:51.0295468Z PASS /datum/unit_test/dcs_get_id_from_arguments 0s +2022-11-22T05:57:51.0295906Z ##[endgroup] +2022-11-22T05:57:51.0436006Z ##[group]/datum/unit_test/designs +2022-11-22T05:57:51.0482298Z +2022-11-22T05:57:51.0482663Z PASS /datum/unit_test/designs 0s +2022-11-22T05:57:51.0483175Z ##[endgroup] +2022-11-22T05:57:51.0620982Z ##[group]/datum/unit_test/dummy_spawn_species +2022-11-22T05:57:51.4128167Z +2022-11-22T05:57:51.4128925Z PASS /datum/unit_test/dummy_spawn_species 0.4s +2022-11-22T05:57:51.4129626Z ##[endgroup] +2022-11-22T05:57:51.7309194Z ##[group]/datum/unit_test/dummy_spawn_outfit +2022-11-22T05:57:51.7520497Z Job type /datum/job/ai could not be retrieved from SSjob +2022-11-22T05:57:52.0337175Z +2022-11-22T05:57:52.0338303Z PASS /datum/unit_test/dummy_spawn_outfit 0.3s +2022-11-22T05:57:52.0339259Z ##[endgroup] +2022-11-22T05:57:52.3010961Z ##[group]/datum/unit_test/dynamic_roundstart_ruleset_sanity +2022-11-22T05:57:52.3011803Z +2022-11-22T05:57:52.3012594Z PASS /datum/unit_test/dynamic_roundstart_ruleset_sanity 0s +2022-11-22T05:57:52.3013299Z ##[endgroup] +2022-11-22T05:57:52.3164698Z ##[group]/datum/unit_test/dynamic_unique_antag_flags +2022-11-22T05:57:52.3165134Z +2022-11-22T05:57:52.3165719Z PASS /datum/unit_test/dynamic_unique_antag_flags 0s +2022-11-22T05:57:52.3166684Z ##[endgroup] +2022-11-22T05:57:52.3307956Z ##[group]/datum/unit_test/egg_glands +2022-11-22T05:57:52.3727674Z +2022-11-22T05:57:52.3728398Z PASS /datum/unit_test/egg_glands 0s +2022-11-22T05:57:52.3729449Z ##[endgroup] +2022-11-22T05:57:52.3876533Z ##[group]/datum/unit_test/emoting +2022-11-22T05:57:52.4097216Z +2022-11-22T05:57:52.4097697Z PASS /datum/unit_test/emoting 0.1s +2022-11-22T05:57:52.4098176Z ##[endgroup] +2022-11-22T05:57:52.7391670Z ##[group]/datum/unit_test/food_edibility_check +2022-11-22T05:57:53.8611412Z +2022-11-22T05:57:53.8612472Z PASS /datum/unit_test/food_edibility_check 1.1s +2022-11-22T05:57:53.8613293Z ##[endgroup] +2022-11-22T05:57:54.9307669Z ##[group]/datum/unit_test/atmospheric_gas_transfer +2022-11-22T05:57:54.9314807Z +2022-11-22T05:57:54.9315632Z PASS /datum/unit_test/atmospheric_gas_transfer 0s +2022-11-22T05:57:54.9316476Z ##[endgroup] +2022-11-22T05:57:54.9470739Z ##[group]/datum/unit_test/get_turf_pixel +2022-11-22T05:57:54.9485851Z +2022-11-22T05:57:54.9486504Z PASS /datum/unit_test/get_turf_pixel 0s +2022-11-22T05:57:54.9487302Z ##[endgroup] +2022-11-22T05:57:54.9638937Z ##[group]/datum/unit_test/greyscale_item_icon_states +2022-11-22T05:57:54.9698181Z +2022-11-22T05:57:54.9698921Z PASS /datum/unit_test/greyscale_item_icon_states 0s +2022-11-22T05:57:54.9699816Z ##[endgroup] +2022-11-22T05:57:54.9841288Z ##[group]/datum/unit_test/greyscale_color_count +2022-11-22T05:57:54.9971884Z +2022-11-22T05:57:54.9972668Z PASS /datum/unit_test/greyscale_color_count 0s +2022-11-22T05:57:54.9973372Z ##[endgroup] +2022-11-22T05:57:55.0566622Z ##[group]/datum/unit_test/hallucination_icons +2022-11-22T05:57:55.2636405Z +2022-11-22T05:57:55.2637180Z PASS /datum/unit_test/hallucination_icons 0.2s +2022-11-22T05:57:55.2637869Z ##[endgroup] +2022-11-22T05:57:55.4281623Z ##[group]/datum/unit_test/heretic_knowledge +2022-11-22T05:57:55.4312752Z +2022-11-22T05:57:55.4313343Z PASS /datum/unit_test/heretic_knowledge 0s +2022-11-22T05:57:55.4313933Z ##[endgroup] +2022-11-22T05:57:55.4464795Z ##[group]/datum/unit_test/heretic_main_paths +2022-11-22T05:57:55.4465364Z +2022-11-22T05:57:55.4465818Z PASS /datum/unit_test/heretic_main_paths 0s +2022-11-22T05:57:55.4466260Z ##[endgroup] +2022-11-22T05:57:55.4606916Z ##[group]/datum/unit_test/heretic_rituals +2022-11-22T05:57:55.5247753Z +2022-11-22T05:57:55.5248512Z PASS /datum/unit_test/heretic_rituals 0.1s +2022-11-22T05:57:55.5249184Z ##[endgroup] +2022-11-22T05:57:55.5940368Z ##[group]/datum/unit_test/hanukkah_2123 +2022-11-22T05:57:55.5940592Z +2022-11-22T05:57:55.5941492Z PASS /datum/unit_test/hanukkah_2123 0s +2022-11-22T05:57:55.5942009Z ##[endgroup] +2022-11-22T05:57:55.6091512Z ##[group]/datum/unit_test/ramadan_2165 +2022-11-22T05:57:55.6091717Z +2022-11-22T05:57:55.6092048Z PASS /datum/unit_test/ramadan_2165 0s +2022-11-22T05:57:55.6092523Z ##[endgroup] +2022-11-22T05:57:55.6442352Z ##[group]/datum/unit_test/thanksgiving_2020 +2022-11-22T05:57:55.6442890Z +2022-11-22T05:57:55.6443757Z PASS /datum/unit_test/thanksgiving_2020 0s +2022-11-22T05:57:55.6444979Z ##[endgroup] +2022-11-22T05:57:55.6598675Z ##[group]/datum/unit_test/mother_3683 +2022-11-22T05:57:55.6598889Z +2022-11-22T05:57:55.6599297Z PASS /datum/unit_test/mother_3683 0s +2022-11-22T05:57:55.6599751Z ##[endgroup] +2022-11-22T05:57:55.6738486Z ##[group]/datum/unit_test/hello_2020 +2022-11-22T05:57:55.6738688Z +2022-11-22T05:57:55.6739014Z PASS /datum/unit_test/hello_2020 0s +2022-11-22T05:57:55.6739488Z ##[endgroup] +2022-11-22T05:57:55.6878688Z ##[group]/datum/unit_test/new_year_1983 +2022-11-22T05:57:55.6878886Z +2022-11-22T05:57:55.6879201Z PASS /datum/unit_test/new_year_1983 0s +2022-11-22T05:57:55.6879685Z ##[endgroup] +2022-11-22T05:57:55.7020176Z ##[group]/datum/unit_test/moth_week_2020 +2022-11-22T05:57:55.7046044Z +2022-11-22T05:57:55.7046466Z PASS /datum/unit_test/moth_week_2020 0s +2022-11-22T05:57:55.7047027Z ##[endgroup] +2022-11-22T05:57:55.7187159Z ##[group]/datum/unit_test/human_through_recycler +2022-11-22T05:57:55.7514671Z +2022-11-22T05:57:55.7515299Z PASS /datum/unit_test/human_through_recycler 0s +2022-11-22T05:57:55.7516283Z ##[endgroup] +2022-11-22T05:57:55.7919867Z ##[group]/datum/unit_test/hydroponics_extractor_storage +2022-11-22T05:57:55.8186193Z +2022-11-22T05:57:55.8186944Z PASS /datum/unit_test/hydroponics_extractor_storage 0.1s +2022-11-22T05:57:55.8187599Z ##[endgroup] +2022-11-22T05:57:55.8398289Z ##[group]/datum/unit_test/hydroponics_harvest +2022-11-22T05:57:55.8939596Z +2022-11-22T05:57:55.8940352Z PASS /datum/unit_test/hydroponics_harvest 0s +2022-11-22T05:57:55.8941013Z ##[endgroup] +2022-11-22T05:57:56.0137178Z ##[group]/datum/unit_test/hydroponics_self_mutation +2022-11-22T05:57:56.0571748Z +2022-11-22T05:57:56.0572297Z PASS /datum/unit_test/hydroponics_self_mutation 0s +2022-11-22T05:57:56.0572944Z ##[endgroup] +2022-11-22T05:57:56.0712557Z ##[group]/datum/unit_test/hydroponics_validate_genes +2022-11-22T05:57:56.1145858Z +2022-11-22T05:57:56.1146632Z PASS /datum/unit_test/hydroponics_validate_genes 0.1s +2022-11-22T05:57:56.1147317Z ##[endgroup] +2022-11-22T05:57:56.1288831Z ##[group]/datum/unit_test/defined_inhand_icon_states +2022-11-22T05:57:56.9990761Z Notice - Possible inhand icon matches found. It is best to be explicit with inhand sprite values. +2022-11-22T05:57:56.9991785Z /obj/item/clothing/accessory/pride does not have an inhand_icon_state value - Possible matching sprites for "pride" found in: 'icons/mob/inhands/weapons/hammers_lefthand.dmi' & 'icons/mob/inhands/weapons/hammers_righthand.dmi' +2022-11-22T05:57:56.9992933Z /obj/item/clothing/suit/caution does not have an inhand_icon_state value - Possible matching sprites for "caution" found in: 'icons/mob/inhands/equipment/custodial_lefthand.dmi' & 'icons/mob/inhands/equipment/custodial_righthand.dmi' +2022-11-22T05:57:56.9994021Z /obj/item/clothing/under/suit/sl does not have an inhand_icon_state value - Possible matching sprites for "sl_suit" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi' +2022-11-22T05:57:56.9995081Z /obj/item/clothing/head/collectable/paper does not have an inhand_icon_state value - Possible matching sprites for "paper" found in: 'icons/mob/inhands/items_lefthand.dmi' & 'icons/mob/inhands/items_righthand.dmi' +2022-11-22T05:57:56.9996131Z /obj/item/clothing/head/mod does not have an inhand_icon_state value - Possible matching sprites for "helmet" found in: 'icons/mob/inhands/clothing/hats_lefthand.dmi' & 'icons/mob/inhands/clothing/hats_righthand.dmi' +2022-11-22T05:57:56.9997136Z /obj/item/clothing/mask/animal/small/fox does not have an inhand_icon_state value - Possible matching sprites for "fox" found in: 'icons/mob/inhands/pets_held_rh.dmi' & 'icons/mob/inhands/pets_held_lh.dmi' +2022-11-22T05:57:56.9998121Z /obj/item/clothing/mask/animal/small/fox/cursed does not have an inhand_icon_state value - Possible matching sprites for "fox" found in: 'icons/mob/inhands/pets_held_rh.dmi' & 'icons/mob/inhands/pets_held_lh.dmi' +2022-11-22T05:57:56.9999214Z /obj/item/clothing/glasses/hud/health/sunglasses does not have an inhand_icon_state value - Possible matching sprites for "sunhudmed" found in: 'icons/mob/inhands/clothing/glasses_righthand.dmi' & 'icons/mob/inhands/clothing/glasses_lefthand.dmi' +2022-11-22T05:57:57.0000419Z /obj/item/clothing/glasses/hud/security/sunglasses does not have an inhand_icon_state value - Possible matching sprites for "sunhudsec" found in: 'icons/mob/inhands/clothing/glasses_righthand.dmi' & 'icons/mob/inhands/clothing/glasses_lefthand.dmi' +2022-11-22T05:57:57.0001582Z /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun does not have an inhand_icon_state value - Possible matching sprites for "syringegun" found in: 'icons/mob/inhands/weapons/guns_righthand.dmi' & 'icons/mob/inhands/weapons/guns_lefthand.dmi' +2022-11-22T05:57:57.0002710Z /obj/item/mecha_parts/mecha_equipment/generator does not have an inhand_icon_state value - Possible matching sprites for "tesla" found in: 'icons/mob/inhands/weapons/guns_righthand.dmi' & 'icons/mob/inhands/weapons/guns_lefthand.dmi' +2022-11-22T05:57:57.0004089Z /obj/item/storage/bag/ore does not have an inhand_icon_state value - Possible matching sprites for "satchel" found in: 'icons/mob/inhands/equipment/backpack_lefthand.dmi' & 'icons/mob/inhands/equipment/backpack_righthand.dmi' +2022-11-22T05:57:57.0005300Z /obj/item/storage/bag/ore/cyborg does not have an inhand_icon_state value - Possible matching sprites for "satchel" found in: 'icons/mob/inhands/equipment/backpack_lefthand.dmi' & 'icons/mob/inhands/equipment/backpack_righthand.dmi' +2022-11-22T05:57:57.0006371Z /obj/item/implant/emp does not have an inhand_icon_state value - Possible matching sprites for "emp" found in: 'icons/mob/inhands/equipment/security_righthand.dmi' & 'icons/mob/inhands/equipment/security_lefthand.dmi' +2022-11-22T05:57:57.0007395Z /obj/item/implant/uplink does not have an inhand_icon_state value - Possible matching sprites for "radio" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-22T05:57:57.0008445Z /obj/item/implant/uplink/precharged does not have an inhand_icon_state value - Possible matching sprites for "radio" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-22T05:57:57.0009494Z /obj/item/implant/uplink/starting does not have an inhand_icon_state value - Possible matching sprites for "radio" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-22T05:57:57.0010726Z /obj/item/melee/energy/blade does not have an inhand_icon_state value - Possible matching sprites for "blade" found in: 'icons/mob/inhands/weapons/swords_lefthand.dmi' & 'icons/mob/inhands/weapons/swords_righthand.dmi' +2022-11-22T05:57:57.0011749Z /obj/item/fireaxe does not have an inhand_icon_state value - Possible matching sprites for "fireaxe0" found in: 'icons/mob/inhands/weapons/axes_righthand.dmi' & 'icons/mob/inhands/weapons/axes_lefthand.dmi' +2022-11-22T05:57:57.0012773Z /obj/item/fireaxe/boneaxe does not have an inhand_icon_state value - Possible matching sprites for "bone_axe0" found in: 'icons/mob/inhands/weapons/axes_righthand.dmi' & 'icons/mob/inhands/weapons/axes_lefthand.dmi' +2022-11-22T05:57:57.0013837Z /obj/item/fireaxe/metal_h2_axe does not have an inhand_icon_state value - Possible matching sprites for "metalh2_axe0" found in: 'icons/mob/inhands/weapons/axes_righthand.dmi' & 'icons/mob/inhands/weapons/axes_lefthand.dmi' +2022-11-22T05:57:57.0014905Z /obj/item/reagent_containers/cup/soda_cans/cola does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-22T05:57:57.0016006Z /obj/item/reagent_containers/cup/soda_cans/tonic does not have an inhand_icon_state value - Possible matching sprites for "tonic" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-22T05:57:57.0017128Z /obj/item/reagent_containers/cup/soda_cans/sodawater does not have an inhand_icon_state value - Possible matching sprites for "sodawater" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-22T05:57:57.0018271Z /obj/item/reagent_containers/cup/soda_cans/lemon_lime does not have an inhand_icon_state value - Possible matching sprites for "lemon-lime" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-22T05:57:57.0019407Z /obj/item/reagent_containers/cup/soda_cans/space_up does not have an inhand_icon_state value - Possible matching sprites for "space-up" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-22T05:57:57.0020513Z /obj/item/reagent_containers/cup/soda_cans/starkist does not have an inhand_icon_state value - Possible matching sprites for "starkist" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-22T05:57:57.0021776Z /obj/item/reagent_containers/cup/soda_cans/space_mountain_wind does not have an inhand_icon_state value - Possible matching sprites for "space_mountain_wind" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-22T05:57:57.0023030Z /obj/item/reagent_containers/cup/soda_cans/thirteenloko does not have an inhand_icon_state value - Possible matching sprites for "thirteen_loko" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-22T05:57:57.0024156Z /obj/item/reagent_containers/cup/soda_cans/dr_gibb does not have an inhand_icon_state value - Possible matching sprites for "dr_gibb" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-22T05:57:57.0025284Z /obj/item/reagent_containers/cup/soda_cans/pwr_game does not have an inhand_icon_state value - Possible matching sprites for "purple_can" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-22T05:57:57.0026401Z /obj/item/reagent_containers/cup/glass/coffee does not have an inhand_icon_state value - Possible matching sprites for "coffee" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-22T05:57:57.0027532Z /obj/item/reagent_containers/chem_pack does not have an inhand_icon_state value - Possible matching sprites for "chempack" found in: 'icons/mob/inhands/equipment/backpack_lefthand.dmi' & 'icons/mob/inhands/equipment/backpack_righthand.dmi' +2022-11-22T05:57:57.0028593Z /obj/item/sbeacondrop does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-22T05:57:57.0029625Z /obj/item/sbeacondrop/bomb does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-22T05:57:57.0030654Z /obj/item/sbeacondrop/emp does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-22T05:57:57.0031702Z /obj/item/sbeacondrop/powersink does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-22T05:57:57.0032748Z /obj/item/sbeacondrop/clownbomb does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-22T05:57:57.0033834Z /obj/item/stack/medical/bruise_pack does not have an inhand_icon_state value - Possible matching sprites for "brutepack" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2022-11-22T05:57:57.0034933Z /obj/item/stack/medical/ointment does not have an inhand_icon_state value - Possible matching sprites for "ointment" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2022-11-22T05:57:57.0035979Z /obj/item/minespawner does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-22T05:57:57.0037019Z /obj/item/organ/internal/heart/gland/blood does not have an inhand_icon_state value - Possible matching sprites for "egg" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi' +2022-11-22T05:57:57.0038119Z /obj/item/organ/internal/heart/gland/egg does not have an inhand_icon_state value - Possible matching sprites for "egg" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi' +2022-11-22T05:57:57.0039221Z /obj/item/organ/internal/heart/gland/quantum does not have an inhand_icon_state value - Possible matching sprites for "emp" found in: 'icons/mob/inhands/equipment/security_righthand.dmi' & 'icons/mob/inhands/equipment/security_lefthand.dmi' +2022-11-22T05:57:57.0040406Z /obj/item/organ/internal/heart/gland/trauma does not have an inhand_icon_state value - Possible matching sprites for "emp" found in: 'icons/mob/inhands/equipment/security_righthand.dmi' & 'icons/mob/inhands/equipment/security_lefthand.dmi' +2022-11-22T05:57:57.0041502Z /obj/item/boxcutter does not have an inhand_icon_state value - Possible matching sprites for "boxcutter" found in: 'icons/mob/inhands/equipment/boxcutter_lefthand.dmi' & 'icons/mob/inhands/equipment/boxcutter_righthand.dmi' +2022-11-22T05:57:57.0042546Z /obj/item/pushbroom does not have an inhand_icon_state value - Possible matching sprites for "broom0" found in: 'icons/mob/inhands/equipment/custodial_lefthand.dmi' & 'icons/mob/inhands/equipment/custodial_righthand.dmi' +2022-11-22T05:57:57.0043620Z /obj/item/pushbroom/cyborg does not have an inhand_icon_state value - Possible matching sprites for "broom0" found in: 'icons/mob/inhands/equipment/custodial_lefthand.dmi' & 'icons/mob/inhands/equipment/custodial_righthand.dmi' +2022-11-22T05:57:57.0044677Z /obj/item/chainsaw does not have an inhand_icon_state value - Possible matching sprites for "chainsaw_off" found in: 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi' & 'icons/mob/inhands/weapons/chainsaw_righthand.dmi' +2022-11-22T05:57:57.0045751Z /obj/item/chainsaw/doomslayer does not have an inhand_icon_state value - Possible matching sprites for "chainsaw_off" found in: 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi' & 'icons/mob/inhands/weapons/chainsaw_righthand.dmi' +2022-11-22T05:57:57.0047360Z /obj/item/toy/talking/codex_gigas does not have an inhand_icon_state value - Possible matching sprites for "demonomicon" found in: 'icons/mob/inhands/items/books_righthand.dmi' & 'icons/mob/inhands/items/books_lefthand.dmi' +2022-11-22T05:57:57.0048399Z /obj/item/toy/figure/chef does not have an inhand_icon_state value - Possible matching sprites for "chef" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi' +2022-11-22T05:57:57.0049430Z /obj/item/toy/figure/clown does not have an inhand_icon_state value - Possible matching sprites for "clown" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi' +2022-11-22T05:57:57.0050554Z /obj/item/toy/figure/janitor does not have an inhand_icon_state value - Possible matching sprites for "janitor" found in: 'icons/mob/inhands/clothing/suits_righthand.dmi' & 'icons/mob/inhands/clothing/suits_lefthand.dmi' +2022-11-22T05:57:57.0051561Z /obj/item/food/candy does not have an inhand_icon_state value - Possible matching sprites for "candy" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi' +2022-11-22T05:57:57.0052539Z /obj/item/food/chips does not have an inhand_icon_state value - Possible matching sprites for "chips" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi' +2022-11-22T05:57:57.0053552Z /obj/item/kitchen/fork does not have an inhand_icon_state value - Possible matching sprites for "fork" found in: 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' & 'icons/mob/inhands/equipment/kitchen_righthand.dmi' +2022-11-22T05:57:57.0054597Z /obj/item/kitchen/spoon does not have an inhand_icon_state value - Possible matching sprites for "spoon" found in: 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' & 'icons/mob/inhands/equipment/kitchen_righthand.dmi' +2022-11-22T05:57:57.0055672Z /obj/item/kitchen/spoon/plastic does not have an inhand_icon_state value - Possible matching sprites for "plastic_spoon" found in: 'icons/mob/inhands/equipment/kitchen_lefthand.dmi' & 'icons/mob/inhands/equipment/kitchen_righthand.dmi' +2022-11-22T05:57:57.0056849Z /obj/item/book/codex_gigas does not have an inhand_icon_state value - Possible matching sprites for "demonomicon" found in: 'icons/mob/inhands/items/books_righthand.dmi' & 'icons/mob/inhands/items/books_lefthand.dmi' +2022-11-22T05:57:57.0057975Z /obj/item/pitchfork does not have an inhand_icon_state value - Possible matching sprites for "pitchfork0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi' +2022-11-22T05:57:57.0059026Z /obj/item/construction/rcd does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-11-22T05:57:57.0060072Z /obj/item/construction/rcd/borg does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-11-22T05:57:57.0061125Z /obj/item/construction/rcd/loaded does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-11-22T05:57:57.0062218Z /obj/item/construction/rcd/loaded/upgraded does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-11-22T05:57:57.0063307Z /obj/item/construction/rcd/internal does not have an inhand_icon_state value - Possible matching sprites for "rcd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-11-22T05:57:57.0064355Z /obj/item/construction/rld does not have an inhand_icon_state value - Possible matching sprites for "rld-5" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-11-22T05:57:57.0065418Z /obj/item/construction/rld/mini does not have an inhand_icon_state value - Possible matching sprites for "rld-5" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-11-22T05:57:57.0066456Z /obj/item/rcd_ammo does not have an inhand_icon_state value - Possible matching sprites for "rcdammo" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-11-22T05:57:57.0067491Z /obj/item/rcd_ammo/large does not have an inhand_icon_state value - Possible matching sprites for "rcdammo" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-11-22T05:57:57.0068534Z /obj/item/godstaff does not have an inhand_icon_state value - Possible matching sprites for "godstaff-red" found in: 'icons/mob/inhands/weapons/staves_lefthand.dmi' & 'icons/mob/inhands/weapons/staves_righthand.dmi' +2022-11-22T05:57:57.0069585Z /obj/item/godstaff/red does not have an inhand_icon_state value - Possible matching sprites for "godstaff-red" found in: 'icons/mob/inhands/weapons/staves_lefthand.dmi' & 'icons/mob/inhands/weapons/staves_righthand.dmi' +2022-11-22T05:57:57.0070654Z /obj/item/godstaff/blue does not have an inhand_icon_state value - Possible matching sprites for "godstaff-blue" found in: 'icons/mob/inhands/weapons/staves_lefthand.dmi' & 'icons/mob/inhands/weapons/staves_righthand.dmi' +2022-11-22T05:57:57.0071702Z /obj/item/pipe_dispenser does not have an inhand_icon_state value - Possible matching sprites for "rpd" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-11-22T05:57:57.0073144Z /obj/item/singularityhammer does not have an inhand_icon_state value - Possible matching sprites for "singularity_hammer0" found in: 'icons/mob/inhands/weapons/hammers_lefthand.dmi' & 'icons/mob/inhands/weapons/hammers_righthand.dmi' +2022-11-22T05:57:57.0074330Z /obj/item/mjollnir does not have an inhand_icon_state value - Possible matching sprites for "mjollnir0" found in: 'icons/mob/inhands/weapons/hammers_lefthand.dmi' & 'icons/mob/inhands/weapons/hammers_righthand.dmi' +2022-11-22T05:57:57.0075441Z /obj/item/spear does not have an inhand_icon_state value - Possible matching sprites for "spearglass0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi' +2022-11-22T05:57:57.0076509Z /obj/item/spear/explosive does not have an inhand_icon_state value - Possible matching sprites for "spearbomb0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi' +2022-11-22T05:57:57.0077599Z /obj/item/spear/grey_tide does not have an inhand_icon_state value - Possible matching sprites for "spearglass0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi' +2022-11-22T05:57:57.0078680Z /obj/item/spear/bonespear does not have an inhand_icon_state value - Possible matching sprites for "bone_spear0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi' +2022-11-22T05:57:57.0079765Z /obj/item/spear/bamboospear does not have an inhand_icon_state value - Possible matching sprites for "bamboo_spear0" found in: 'icons/mob/inhands/weapons/polearms_righthand.dmi' & 'icons/mob/inhands/weapons/polearms_lefthand.dmi' +2022-11-22T05:57:57.0080775Z /obj/item/trash/candy does not have an inhand_icon_state value - Possible matching sprites for "candy" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi' +2022-11-22T05:57:57.0082023Z /obj/item/trash/chips does not have an inhand_icon_state value - Possible matching sprites for "chips" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi' +2022-11-22T05:57:57.0083017Z /obj/item/trash/can does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-22T05:57:57.0084019Z /obj/item/trash/can/food does not have an inhand_icon_state value - Possible matching sprites for "cola" found in: 'icons/mob/inhands/items/drinks_righthand.dmi' & 'icons/mob/inhands/items/drinks_lefthand.dmi' +2022-11-22T05:57:57.0085071Z /obj/item/highfrequencyblade does not have an inhand_icon_state value - Possible matching sprites for "hfrequency0" found in: 'icons/mob/inhands/weapons/swords_lefthand.dmi' & 'icons/mob/inhands/weapons/swords_righthand.dmi' +2022-11-22T05:57:57.0086187Z /obj/item/highfrequencyblade/wizard does not have an inhand_icon_state value - Possible matching sprites for "hfrequency0" found in: 'icons/mob/inhands/weapons/swords_lefthand.dmi' & 'icons/mob/inhands/weapons/swords_righthand.dmi' +2022-11-22T05:57:57.0087262Z /obj/item/borg/sight/meson does not have an inhand_icon_state value - Possible matching sprites for "meson" found in: 'icons/mob/inhands/clothing/glasses_righthand.dmi' & 'icons/mob/inhands/clothing/glasses_lefthand.dmi' +2022-11-22T05:57:57.0088347Z /obj/item/ammo_casing/magic/hook does not have an inhand_icon_state value - Possible matching sprites for "hook" found in: 'icons/mob/inhands/weapons/melee_righthand.dmi' & 'icons/mob/inhands/weapons/melee_lefthand.dmi' +2022-11-22T05:57:57.0089259Z /obj/item/ammo_casing/magic/hook/bounty does not have an inhand_icon_state value - Possible matching sprites for "hook" found in: 'icons/mob/inhands/weapons/melee_righthand.dmi' & 'icons/mob/inhands/weapons/melee_lefthand.dmi' +2022-11-22T05:57:57.0090243Z /obj/item/harmalarm does not have an inhand_icon_state value - Possible matching sprites for "megaphone" found in: 'icons/mob/inhands/items/megaphone_lefthand.dmi' & 'icons/mob/inhands/items/megaphone_righthand.dmi' +2022-11-22T05:57:57.0091252Z /obj/item/crowbar/mechremoval does not have an inhand_icon_state value - Possible matching sprites for "mechremoval0" found in: 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-11-22T05:57:57.0092194Z /obj/item/abductor_machine_beacon does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-22T05:57:57.0093224Z /obj/item/abductor_machine_beacon/chem_dispenser does not have an inhand_icon_state value - Possible matching sprites for "beacon" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-22T05:57:57.0094166Z /obj/item/grown/carbon_rose does not have an inhand_icon_state value - Possible matching sprites for "carbonrose" found in: 'icons/mob/inhands/weapons/plants_righthand.dmi' & 'icons/mob/inhands/weapons/plants_lefthand.dmi' +2022-11-22T05:57:57.0095086Z /obj/item/paint_palette does not have an inhand_icon_state value - Possible matching sprites for "palette" found in: 'icons/mob/inhands/equipment/palette_righthand.dmi' & 'icons/mob/inhands/equipment/palette_lefthand.dmi' +2022-11-22T05:57:57.0095973Z /obj/item/surprise_egg does not have an inhand_icon_state value - Possible matching sprites for "egg" found in: 'icons/mob/inhands/items/food_lefthand.dmi' & 'icons/mob/inhands/items/food_righthand.dmi' +2022-11-22T05:57:57.0096871Z /obj/item/experi_scanner does not have an inhand_icon_state value - Possible matching sprites for "experiscanner" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-22T05:57:57.0097746Z /obj/item/fishing_hook does not have an inhand_icon_state value - Possible matching sprites for "hook" found in: 'icons/mob/inhands/weapons/melee_righthand.dmi' & 'icons/mob/inhands/weapons/melee_lefthand.dmi' +2022-11-22T05:57:57.0098649Z /obj/item/cursed_katana does not have an inhand_icon_state value - Possible matching sprites for "cursed_katana" found in: 'icons/mob/inhands/weapons/swords_lefthand.dmi' & 'icons/mob/inhands/weapons/swords_righthand.dmi' +2022-11-22T05:57:57.0099593Z /obj/item/guardiancreator/tech does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2022-11-22T05:57:57.0100605Z /obj/item/guardiancreator/tech/choose does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2022-11-22T05:57:57.0101605Z /obj/item/guardiancreator/tech/choose/traitor does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2022-11-22T05:57:57.0102626Z /obj/item/guardiancreator/tech/choose/dextrous does not have an inhand_icon_state value - Possible matching sprites for "combat_hypo" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2022-11-22T05:57:57.0103578Z /obj/item/mod/module/welding does not have an inhand_icon_state value - Possible matching sprites for "welding" found in: 'icons/mob/inhands/clothing/masks_lefthand.dmi' & 'icons/mob/inhands/clothing/masks_righthand.dmi' +2022-11-22T05:57:57.0104491Z /obj/item/mod/module/mister does not have an inhand_icon_state value - Possible matching sprites for "mister" found in: 'icons/mob/inhands/equipment/mister_righthand.dmi' & 'icons/mob/inhands/equipment/mister_lefthand.dmi' +2022-11-22T05:57:57.0105414Z /obj/item/mod/module/mister/atmos does not have an inhand_icon_state value - Possible matching sprites for "mister" found in: 'icons/mob/inhands/equipment/mister_righthand.dmi' & 'icons/mob/inhands/equipment/mister_lefthand.dmi' +2022-11-22T05:57:57.0106415Z /obj/item/mod/module/jetpack does not have an inhand_icon_state value - Possible matching sprites for "jetpack" found in: 'icons/mob/inhands/equipment/jetpacks_lefthand.dmi' & 'icons/mob/inhands/equipment/jetpacks_righthand.dmi' +2022-11-22T05:57:57.0107402Z /obj/item/mod/module/flashlight does not have an inhand_icon_state value - Possible matching sprites for "flashlight" found in: 'icons/mob/inhands/items/devices_lefthand.dmi' & 'icons/mob/inhands/items/devices_righthand.dmi' +2022-11-22T05:57:57.0108273Z /obj/item/mod/module/stamp does not have an inhand_icon_state value - Possible matching sprites for "stamp" found in: 'icons/mob/inhands/items_lefthand.dmi' & 'icons/mob/inhands/items_righthand.dmi' +2022-11-22T05:57:57.0109157Z /obj/item/mod/module/holster does not have an inhand_icon_state value - Possible matching sprites for "holster" found in: 'icons/mob/inhands/equipment/belt_lefthand.dmi' & 'icons/mob/inhands/equipment/belt_righthand.dmi' +2022-11-22T05:57:57.0110093Z /obj/item/mod/module/megaphone does not have an inhand_icon_state value - Possible matching sprites for "megaphone" found in: 'icons/mob/inhands/items/megaphone_lefthand.dmi' & 'icons/mob/inhands/items/megaphone_righthand.dmi' +2022-11-22T05:57:57.0111228Z /obj/item/mod/module/drill does not have an inhand_icon_state value - Possible matching sprites for "drill" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' & 'icons/mob/inhands/equipment/tools_righthand.dmi' & 'icons/mob/inhands/equipment/tools_lefthand.dmi' +2022-11-22T05:57:57.0112255Z /obj/item/mod/module/tem does not have an inhand_icon_state value - Possible matching sprites for "chronogun" found in: 'icons/mob/inhands/weapons/guns_righthand.dmi' & 'icons/mob/inhands/weapons/guns_lefthand.dmi' +2022-11-22T05:57:57.0113170Z /obj/item/bonesetter does not have an inhand_icon_state value - Possible matching sprites for "bonesetter" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2022-11-22T05:57:57.0114103Z /obj/item/blood_filter does not have an inhand_icon_state value - Possible matching sprites for "bloodfilter" found in: 'icons/mob/inhands/equipment/medical_lefthand.dmi' & 'icons/mob/inhands/equipment/medical_righthand.dmi' +2022-11-22T05:57:57.0115057Z /obj/item/mecha_ammo/flashbang does not have an inhand_icon_state value - Possible matching sprites for "flashbang" found in: 'icons/mob/inhands/equipment/security_righthand.dmi' & 'icons/mob/inhands/equipment/security_lefthand.dmi' +2022-11-22T05:57:57.0115440Z +2022-11-22T05:57:57.0115677Z PASS /datum/unit_test/defined_inhand_icon_states 0.8s +2022-11-22T05:57:57.0116249Z ##[endgroup] +2022-11-22T05:57:57.8132217Z ##[group]/datum/unit_test/json_savefiles +2022-11-22T05:57:57.8161427Z +2022-11-22T05:57:57.8163650Z PASS /datum/unit_test/json_savefiles 0s +2022-11-22T05:57:57.8165166Z ##[endgroup] +2022-11-22T05:57:57.8317025Z ##[group]/datum/unit_test/keybinding_init +2022-11-22T05:57:57.8317555Z +2022-11-22T05:57:57.8318129Z PASS /datum/unit_test/keybinding_init 0s +2022-11-22T05:57:57.8318715Z ##[endgroup] +2022-11-22T05:57:57.8457921Z ##[group]/datum/unit_test/key_prefixes +2022-11-22T05:57:57.8458449Z +2022-11-22T05:57:57.8459042Z PASS /datum/unit_test/key_prefixes 0s +2022-11-22T05:57:57.8462361Z ##[endgroup] +2022-11-22T05:57:57.8599650Z ##[group]/datum/unit_test/knockoff_component +2022-11-22T05:57:57.9089397Z +2022-11-22T05:57:57.9090717Z PASS /datum/unit_test/knockoff_component 0.1s +2022-11-22T05:57:57.9091840Z ##[endgroup] +2022-11-22T05:57:57.9827579Z ##[group]/datum/unit_test/limbsanity +2022-11-22T05:57:58.0484756Z +2022-11-22T05:57:58.0485892Z PASS /datum/unit_test/limbsanity 0.1s +2022-11-22T05:57:58.0486834Z ##[endgroup] +2022-11-22T05:57:58.0629221Z ##[group]/datum/unit_test/load_map_security +2022-11-22T05:57:58.0631540Z map directory not in whitelist: data/load_map_security_temp for map runtimestation +2022-11-22T05:57:58.0632494Z +2022-11-22T05:57:58.0634849Z PASS /datum/unit_test/load_map_security 0s +2022-11-22T05:57:58.0635457Z ##[endgroup] +2022-11-22T05:57:58.0781973Z ##[group]/datum/unit_test/machine_disassembly +2022-11-22T05:57:58.0810119Z +2022-11-22T05:57:58.0811067Z PASS /datum/unit_test/machine_disassembly 0s +2022-11-22T05:57:58.0813933Z ##[endgroup] +2022-11-22T05:57:58.1127230Z ##[group]/datum/unit_test/mecha_damage +2022-11-22T05:57:58.1567386Z +2022-11-22T05:57:58.1568502Z PASS /datum/unit_test/mecha_damage 0s +2022-11-22T05:57:58.1569451Z ##[endgroup] +2022-11-22T05:57:58.1825660Z ##[group]/datum/unit_test/test_human_base +2022-11-22T05:57:58.2244474Z +2022-11-22T05:57:58.2245632Z PASS /datum/unit_test/test_human_base 0.1s +2022-11-22T05:57:58.2246699Z ##[endgroup] +2022-11-22T05:57:58.2704857Z ##[group]/datum/unit_test/test_human_bone +2022-11-22T05:57:58.3113306Z +2022-11-22T05:57:58.3114010Z PASS /datum/unit_test/test_human_bone 0.1s +2022-11-22T05:57:58.3114667Z ##[endgroup] +2022-11-22T05:57:58.3301107Z ##[group]/datum/unit_test/merge_type +2022-11-22T05:57:58.3302955Z +2022-11-22T05:57:58.3303622Z PASS /datum/unit_test/merge_type 0s +2022-11-22T05:57:58.3304293Z ##[endgroup] +2022-11-22T05:57:58.3450988Z ##[group]/datum/unit_test/metabolization +2022-11-22T05:57:58.5454349Z +2022-11-22T05:57:58.5455483Z PASS /datum/unit_test/metabolization 0.2s +2022-11-22T05:57:58.5456119Z ##[endgroup] +2022-11-22T05:57:58.7181588Z ##[group]/datum/unit_test/on_mob_end_metabolize +2022-11-22T05:57:58.7436989Z +2022-11-22T05:57:58.7438144Z PASS /datum/unit_test/on_mob_end_metabolize 0s +2022-11-22T05:57:58.7438781Z ##[endgroup] +2022-11-22T05:57:58.7634355Z ##[group]/datum/unit_test/addictions +2022-11-22T05:57:58.8327697Z +2022-11-22T05:57:58.8328724Z PASS /datum/unit_test/addictions 0.1s +2022-11-22T05:57:58.8329396Z ##[endgroup] +2022-11-22T05:57:58.9646352Z ##[group]/datum/unit_test/actions_moved_on_mind_transfer +2022-11-22T05:57:58.9894685Z +2022-11-22T05:57:58.9895899Z PASS /datum/unit_test/actions_moved_on_mind_transfer 0s +2022-11-22T05:57:58.9899018Z ##[endgroup] +2022-11-22T05:57:59.0145385Z ##[group]/datum/unit_test/mob_faction +2022-11-22T05:58:02.3668071Z +2022-11-22T05:58:02.3669027Z PASS /datum/unit_test/mob_faction 3.3s +2022-11-22T05:58:02.3669939Z ##[endgroup] +2022-11-22T05:58:07.7854295Z ##[group]/datum/unit_test/mob_spawn +2022-11-22T05:58:07.7991138Z +2022-11-22T05:58:07.7991742Z PASS /datum/unit_test/mob_spawn 0s +2022-11-22T05:58:07.7992334Z ##[endgroup] +2022-11-22T05:58:07.9421769Z ##[group]/datum/unit_test/modsuit_checks +2022-11-22T05:58:08.1300462Z +2022-11-22T05:58:08.1301703Z PASS /datum/unit_test/modsuit_checks 0.2s +2022-11-22T05:58:08.1302808Z ##[endgroup] +2022-11-22T05:58:08.2981112Z ##[group]/datum/unit_test/modular_map_loader +2022-11-22T05:58:08.2993538Z +2022-11-22T05:58:08.2994017Z PASS /datum/unit_test/modular_map_loader 0s +2022-11-22T05:58:08.2994490Z ##[endgroup] +2022-11-22T05:58:08.3152720Z ##[group]/datum/unit_test/mouse_bite_cable +2022-11-22T05:58:08.3194795Z +2022-11-22T05:58:08.3195300Z PASS /datum/unit_test/mouse_bite_cable 0s +2022-11-22T05:58:08.3195915Z ##[endgroup] +2022-11-22T05:58:08.3481029Z ##[group]/datum/unit_test/novaflower_burn +2022-11-22T05:58:08.3949558Z +2022-11-22T05:58:08.3950307Z PASS /datum/unit_test/novaflower_burn 0s +2022-11-22T05:58:08.3950994Z ##[endgroup] +2022-11-22T05:58:08.4260753Z ##[group]/datum/unit_test/ntnetwork +2022-11-22T05:58:08.4260950Z +2022-11-22T05:58:08.4261366Z PASS /datum/unit_test/ntnetwork 0s +2022-11-22T05:58:08.4261791Z ##[endgroup] +2022-11-22T05:58:08.4438911Z ##[group]/datum/unit_test/nuke_cinematic +2022-11-22T05:58:12.2927681Z +2022-11-22T05:58:12.2928809Z PASS /datum/unit_test/nuke_cinematic 3.8s +2022-11-22T05:58:12.2929427Z ##[endgroup] +2022-11-22T05:58:12.5093172Z ##[group]/datum/unit_test/objectives_category +2022-11-22T05:58:12.5093989Z +2022-11-22T05:58:12.5095122Z PASS /datum/unit_test/objectives_category 0s +2022-11-22T05:58:12.5096774Z ##[endgroup] +2022-11-22T05:58:12.5256872Z ##[group]/datum/unit_test/orderable_item_descriptions +2022-11-22T05:58:12.5771407Z +2022-11-22T05:58:12.5772577Z PASS /datum/unit_test/orderable_item_descriptions 0s +2022-11-22T05:58:12.5773724Z ##[endgroup] +2022-11-22T05:58:12.5931358Z ##[group]/datum/unit_test/operating_table +2022-11-22T05:58:12.6369527Z +2022-11-22T05:58:12.6370760Z PASS /datum/unit_test/operating_table 0.1s +2022-11-22T05:58:12.6371649Z ##[endgroup] +2022-11-22T05:58:12.6652645Z ##[group]/datum/unit_test/outfit_sanity +2022-11-22T05:58:20.4025368Z +2022-11-22T05:58:20.4026450Z PASS /datum/unit_test/outfit_sanity 7.8s +2022-11-22T05:58:20.4027358Z ##[endgroup] +2022-11-22T05:58:28.1332042Z ##[group]/datum/unit_test/paintings +2022-11-22T05:58:28.1602466Z +2022-11-22T05:58:28.1603414Z PASS /datum/unit_test/paintings 0s +2022-11-22T05:58:28.1604319Z ##[endgroup] +2022-11-22T05:58:28.1760460Z ##[group]/datum/unit_test/pills +2022-11-22T05:58:28.1992533Z +2022-11-22T05:58:28.1993343Z PASS /datum/unit_test/pills 0s +2022-11-22T05:58:28.1994038Z ##[endgroup] +2022-11-22T05:58:28.2194261Z ##[group]/datum/unit_test/plane_double_transform +2022-11-22T05:58:28.2430543Z +2022-11-22T05:58:28.2431815Z PASS /datum/unit_test/plane_double_transform 0s +2022-11-22T05:58:28.2434784Z ##[endgroup] +2022-11-22T05:58:28.2932472Z ##[group]/datum/unit_test/plane_dupe_detector +2022-11-22T05:58:28.2933160Z +2022-11-22T05:58:28.2935921Z PASS /datum/unit_test/plane_dupe_detector 0s +2022-11-22T05:58:28.2938654Z ##[endgroup] +2022-11-22T05:58:28.3090410Z ##[group]/datum/unit_test/plantgrowth +2022-11-22T05:58:28.3481022Z +2022-11-22T05:58:28.3482119Z PASS /datum/unit_test/plantgrowth 0s +2022-11-22T05:58:28.3483278Z ##[endgroup] +2022-11-22T05:58:28.3644306Z ##[group]/datum/unit_test/preference_species +2022-11-22T05:58:28.3644848Z +2022-11-22T05:58:28.3645467Z PASS /datum/unit_test/preference_species 0s +2022-11-22T05:58:28.3648326Z ##[endgroup] +2022-11-22T05:58:28.3800065Z ##[group]/datum/unit_test/preferences_implement_everything +2022-11-22T05:58:33.0443739Z +2022-11-22T05:58:33.0446214Z PASS /datum/unit_test/preferences_implement_everything 4.7s +2022-11-22T05:58:33.0447293Z ##[endgroup] +2022-11-22T05:58:37.7153022Z ##[group]/datum/unit_test/preferences_valid_savefile_key +2022-11-22T05:58:37.7155101Z +2022-11-22T05:58:37.7157164Z PASS /datum/unit_test/preferences_valid_savefile_key 0s +2022-11-22T05:58:37.7158100Z ##[endgroup] +2022-11-22T05:58:37.7323713Z ##[group]/datum/unit_test/preferences_valid_main_feature_name +2022-11-22T05:58:37.7329320Z +2022-11-22T05:58:37.7330388Z PASS /datum/unit_test/preferences_valid_main_feature_name 0s +2022-11-22T05:58:37.7330952Z ##[endgroup] +2022-11-22T05:58:37.7489830Z ##[group]/datum/unit_test/projectile_movetypes +2022-11-22T05:58:37.7490689Z +2022-11-22T05:58:37.7491455Z PASS /datum/unit_test/projectile_movetypes 0s +2022-11-22T05:58:37.7491963Z ##[endgroup] +2022-11-22T05:58:37.7649766Z ##[group]/datum/unit_test/gun_go_bang +2022-11-22T05:58:37.8209519Z +2022-11-22T05:58:37.8210665Z PASS /datum/unit_test/gun_go_bang 0.1s +2022-11-22T05:58:37.8211545Z ##[endgroup] +2022-11-22T05:58:37.8502284Z ##[group]/datum/unit_test/quirk_icons +2022-11-22T05:58:37.8502850Z +2022-11-22T05:58:37.8503567Z PASS /datum/unit_test/quirk_icons 0s +2022-11-22T05:58:37.8504117Z ##[endgroup] +2022-11-22T05:58:37.8657773Z ##[group]/datum/unit_test/range_return +2022-11-22T05:58:37.8658306Z +2022-11-22T05:58:37.8658926Z PASS /datum/unit_test/range_return 0s +2022-11-22T05:58:37.8659408Z ##[endgroup] +2022-11-22T05:58:37.8813805Z ##[group]/datum/unit_test/frame_stacking +2022-11-22T05:58:37.9259992Z +2022-11-22T05:58:37.9261883Z PASS /datum/unit_test/frame_stacking 0.1s +2022-11-22T05:58:37.9264250Z ##[endgroup] +2022-11-22T05:58:37.9487864Z ##[group]/datum/unit_test/reagent_id_typos +2022-11-22T05:58:37.9501045Z +2022-11-22T05:58:37.9502744Z PASS /datum/unit_test/reagent_id_typos 0s +2022-11-22T05:58:37.9504577Z ##[endgroup] +2022-11-22T05:58:37.9652919Z ##[group]/datum/unit_test/reagent_mob_expose +2022-11-22T05:58:37.9929781Z +2022-11-22T05:58:37.9930884Z PASS /datum/unit_test/reagent_mob_expose 0s +2022-11-22T05:58:37.9932053Z ##[endgroup] +2022-11-22T05:58:38.0197685Z ##[group]/datum/unit_test/reagent_mob_procs +2022-11-22T05:58:38.0416951Z +2022-11-22T05:58:38.0417978Z PASS /datum/unit_test/reagent_mob_procs 0s +2022-11-22T05:58:38.0420890Z ##[endgroup] +2022-11-22T05:58:38.0622397Z ##[group]/datum/unit_test/reagent_names +2022-11-22T05:58:38.8276671Z +2022-11-22T05:58:38.8277981Z PASS /datum/unit_test/reagent_names 0.8s +2022-11-22T05:58:38.8278989Z ##[endgroup] +2022-11-22T05:58:39.5940322Z ##[group]/datum/unit_test/reagent_recipe_collisions +2022-11-22T05:58:39.9910847Z +2022-11-22T05:58:39.9911887Z PASS /datum/unit_test/reagent_recipe_collisions 0.4s +2022-11-22T05:58:39.9912840Z ##[endgroup] +2022-11-22T05:58:40.3577765Z ##[group]/datum/unit_test/reagent_transfer +2022-11-22T05:58:40.3582341Z +2022-11-22T05:58:40.3583185Z PASS /datum/unit_test/reagent_transfer 0s +2022-11-22T05:58:40.3584011Z ##[endgroup] +2022-11-22T05:58:40.3745578Z ##[group]/datum/unit_test/stop_drop_and_roll +2022-11-22T05:58:40.3962558Z +2022-11-22T05:58:40.3963493Z PASS /datum/unit_test/stop_drop_and_roll 0s +2022-11-22T05:58:40.3965748Z ##[endgroup] +2022-11-22T05:58:40.4169199Z ##[group]/datum/unit_test/container_resist +2022-11-22T05:58:40.4450945Z +2022-11-22T05:58:40.4452010Z PASS /datum/unit_test/container_resist 0s +2022-11-22T05:58:40.4452942Z ##[endgroup] +2022-11-22T05:58:40.4681974Z ##[group]/datum/unit_test/get_message_mods +2022-11-22T05:58:40.4890976Z +2022-11-22T05:58:40.4891902Z PASS /datum/unit_test/get_message_mods 0s +2022-11-22T05:58:40.4938745Z ##[endgroup] +2022-11-22T05:58:40.5092622Z ##[group]/datum/unit_test/say_signal +2022-11-22T05:58:40.5109636Z +2022-11-22T05:58:40.5110057Z PASS /datum/unit_test/say_signal 0s +2022-11-22T05:58:40.5110529Z ##[endgroup] +2022-11-22T05:58:40.5273081Z ##[group]/datum/unit_test/screenshot_antag_icons +2022-11-22T05:58:40.5292264Z screenshot_antag_icons_fugitive was put in data/screenshots_new +2022-11-22T05:58:40.5297917Z screenshot_antag_icons_loneoperative was put in data/screenshots_new +2022-11-22T05:58:40.5648778Z screenshot_antag_icons_sentiencepotionspawn was put in data/screenshots_new +2022-11-22T05:58:40.5657229Z screenshot_antag_icons_traitor was put in data/screenshots_new +2022-11-22T05:58:40.6056549Z screenshot_antag_icons_malfai was put in data/screenshots_new +2022-11-22T05:58:40.6093403Z screenshot_antag_icons_bloodbrother was put in data/screenshots_new +2022-11-22T05:58:40.6099494Z screenshot_antag_icons_changeling was put in data/screenshots_new +2022-11-22T05:58:40.6141861Z screenshot_antag_icons_heretic was put in data/screenshots_new +2022-11-22T05:58:40.6152817Z screenshot_antag_icons_wizard was put in data/screenshots_new +2022-11-22T05:58:40.6187229Z screenshot_antag_icons_cultist was put in data/screenshots_new +2022-11-22T05:58:40.6199509Z screenshot_antag_icons_operative was put in data/screenshots_new +2022-11-22T05:58:40.6212847Z screenshot_antag_icons_clownoperative was put in data/screenshots_new +2022-11-22T05:58:40.6234689Z screenshot_antag_icons_headrevolutionary was put in data/screenshots_new +2022-11-22T05:58:40.6235113Z screenshot_antag_icons_syndicateinfiltrator was put in data/screenshots_new +2022-11-22T05:58:40.6235503Z screenshot_antag_icons_provocateur was put in data/screenshots_new +2022-11-22T05:58:40.6235874Z screenshot_antag_icons_hereticsmuggler was put in data/screenshots_new +2022-11-22T05:58:40.6236247Z screenshot_antag_icons_wizardmidround was put in data/screenshots_new +2022-11-22T05:58:40.6236614Z screenshot_antag_icons_operativemidround was put in data/screenshots_new +2022-11-22T05:58:40.6888373Z screenshot_antag_icons_blob was put in data/screenshots_new +2022-11-22T05:58:40.6981477Z screenshot_antag_icons_xenomorph was put in data/screenshots_new +2022-11-22T05:58:40.6987596Z screenshot_antag_icons_nightmare was put in data/screenshots_new +2022-11-22T05:58:40.7057997Z screenshot_antag_icons_spacedragon was put in data/screenshots_new +2022-11-22T05:58:40.7064121Z screenshot_antag_icons_abductor was put in data/screenshots_new +2022-11-22T05:58:40.7069837Z screenshot_antag_icons_spaceninja was put in data/screenshots_new +2022-11-22T05:58:40.7301887Z screenshot_antag_icons_revenant was put in data/screenshots_new +2022-11-22T05:58:40.7320268Z screenshot_antag_icons_sentientdisease was put in data/screenshots_new +2022-11-22T05:58:40.7321448Z screenshot_antag_icons_syndicatesleeperagent was put in data/screenshots_new +2022-11-22T05:58:40.7464714Z screenshot_antag_icons_blobinfection was put in data/screenshots_new +2022-11-22T05:58:40.7484344Z screenshot_antag_icons_obsessed was put in data/screenshots_new +2022-11-22T05:58:40.7485272Z screenshot_antag_icons_malfaimidround was put in data/screenshots_new +2022-11-22T05:58:40.7485491Z +2022-11-22T05:58:40.7486250Z PASS /datum/unit_test/screenshot_antag_icons 0.2s +2022-11-22T05:58:40.7487461Z ##[endgroup] +2022-11-22T05:58:40.9148897Z ##[group]/datum/unit_test/screenshot_basic +2022-11-22T05:58:40.9152865Z screenshot_basic_red was put in data/screenshots_new +2022-11-22T05:58:40.9153089Z +2022-11-22T05:58:40.9153840Z PASS /datum/unit_test/screenshot_basic 0s +2022-11-22T05:58:40.9154358Z ##[endgroup] +2022-11-22T05:58:40.9323137Z ##[group]/datum/unit_test/screenshot_humanoids +2022-11-22T05:58:41.4860399Z screenshot_humanoids__datum_species_lizard was put in data/screenshots_new +2022-11-22T05:58:42.1812125Z screenshot_humanoids__datum_species_moth was put in data/screenshots_new +2022-11-22T05:58:42.7396430Z screenshot_humanoids__datum_species_shadow was put in data/screenshots_new +2022-11-22T05:58:42.9412448Z screenshot_humanoids__datum_species_shadow_nightmare was put in data/screenshots_new +2022-11-22T05:58:43.4856493Z screenshot_humanoids__datum_species_abductor was put in data/screenshots_new +2022-11-22T05:58:43.9790579Z screenshot_humanoids__datum_species_android was put in data/screenshots_new +2022-11-22T05:58:44.4705884Z screenshot_humanoids__datum_species_dullahan was put in data/screenshots_new +2022-11-22T05:58:44.9659470Z screenshot_humanoids__datum_species_ethereal was put in data/screenshots_new +2022-11-22T05:58:45.5314689Z screenshot_humanoids__datum_species_human was put in data/screenshots_new +2022-11-22T05:58:46.1537771Z screenshot_humanoids__datum_species_human_felinid was put in data/screenshots_new +2022-11-22T05:58:46.8079860Z screenshot_humanoids__datum_species_human_krokodil_addict was put in data/screenshots_new +2022-11-22T05:58:47.4445783Z screenshot_humanoids__datum_species_fly was put in data/screenshots_new +2022-11-22T05:58:47.9686077Z screenshot_humanoids__datum_species_golem was put in data/screenshots_new +2022-11-22T05:58:48.4853290Z screenshot_humanoids__datum_species_golem_adamantine was put in data/screenshots_new +2022-11-22T05:58:49.0233415Z screenshot_humanoids__datum_species_golem_plasma was put in data/screenshots_new +2022-11-22T05:58:49.5402611Z screenshot_humanoids__datum_species_golem_diamond was put in data/screenshots_new +2022-11-22T05:58:50.0619605Z screenshot_humanoids__datum_species_golem_gold was put in data/screenshots_new +2022-11-22T05:58:50.5960700Z screenshot_humanoids__datum_species_golem_silver was put in data/screenshots_new +2022-11-22T05:58:51.1268001Z screenshot_humanoids__datum_species_golem_plasteel was put in data/screenshots_new +2022-11-22T05:58:51.6041410Z screenshot_humanoids__datum_species_golem_titanium was put in data/screenshots_new +2022-11-22T05:58:52.1421369Z screenshot_humanoids__datum_species_golem_plastitanium was put in data/screenshots_new +2022-11-22T05:58:52.6646881Z screenshot_humanoids__datum_species_golem_alloy was put in data/screenshots_new +2022-11-22T05:58:53.1822437Z screenshot_humanoids__datum_species_golem_wood was put in data/screenshots_new +2022-11-22T05:58:53.7093546Z screenshot_humanoids__datum_species_golem_uranium was put in data/screenshots_new +2022-11-22T05:58:54.2289778Z screenshot_humanoids__datum_species_golem_sand was put in data/screenshots_new +2022-11-22T05:58:54.7551132Z screenshot_humanoids__datum_species_golem_glass was put in data/screenshots_new +2022-11-22T05:58:55.2923350Z screenshot_humanoids__datum_species_golem_bluespace was put in data/screenshots_new +2022-11-22T05:58:55.8209063Z screenshot_humanoids__datum_species_golem_bananium was put in data/screenshots_new +2022-11-22T05:58:56.2556562Z screenshot_humanoids__datum_species_golem_runic was put in data/screenshots_new +2022-11-22T05:58:56.8660417Z screenshot_humanoids__datum_species_golem_cloth was put in data/screenshots_new +2022-11-22T05:58:57.3592195Z screenshot_humanoids__datum_species_golem_plastic was put in data/screenshots_new +2022-11-22T05:58:57.9036879Z screenshot_humanoids__datum_species_golem_bronze was put in data/screenshots_new +2022-11-22T05:58:58.3538566Z screenshot_humanoids__datum_species_golem_cardboard was put in data/screenshots_new +2022-11-22T05:58:58.9038125Z screenshot_humanoids__datum_species_golem_leather was put in data/screenshots_new +2022-11-22T05:58:59.3259282Z screenshot_humanoids__datum_species_golem_durathread was put in data/screenshots_new +2022-11-22T05:58:59.7415514Z screenshot_humanoids__datum_species_golem_bone was put in data/screenshots_new +2022-11-22T05:59:00.1624246Z screenshot_humanoids__datum_species_golem_snow was put in data/screenshots_new +2022-11-22T05:59:00.7017097Z screenshot_humanoids__datum_species_golem_mhydrogen was put in data/screenshots_new +2022-11-22T05:59:01.2962128Z screenshot_humanoids__datum_species_jelly was put in data/screenshots_new +2022-11-22T05:59:01.8914644Z screenshot_humanoids__datum_species_jelly_slime was put in data/screenshots_new +2022-11-22T05:59:02.4944760Z screenshot_humanoids__datum_species_jelly_luminescent was put in data/screenshots_new +2022-11-22T05:59:03.1051896Z screenshot_humanoids__datum_species_jelly_stargazer was put in data/screenshots_new +2022-11-22T05:59:03.6316289Z screenshot_humanoids__datum_species_lizard_ashwalker was put in data/screenshots_new +2022-11-22T05:59:04.1732683Z screenshot_humanoids__datum_species_lizard_silverscale was put in data/screenshots_new +2022-11-22T05:59:04.3219378Z screenshot_humanoids__datum_species_monkey was put in data/screenshots_new +2022-11-22T05:59:04.7808061Z screenshot_humanoids__datum_species_mush was put in data/screenshots_new +2022-11-22T05:59:05.2791916Z screenshot_humanoids__datum_species_plasmaman was put in data/screenshots_new +2022-11-22T05:59:05.8726674Z screenshot_humanoids__datum_species_pod was put in data/screenshots_new +2022-11-22T05:59:06.4421620Z screenshot_humanoids__datum_species_skeleton was put in data/screenshots_new +2022-11-22T05:59:07.0386329Z screenshot_humanoids__datum_species_snail was put in data/screenshots_new +2022-11-22T05:59:07.6272099Z screenshot_humanoids__datum_species_vampire was put in data/screenshots_new +2022-11-22T05:59:08.2909176Z screenshot_humanoids__datum_species_zombie was put in data/screenshots_new +2022-11-22T05:59:09.0366652Z screenshot_humanoids__datum_species_zombie_infectious was put in data/screenshots_new +2022-11-22T05:59:09.0367022Z +2022-11-22T05:59:09.0367523Z PASS /datum/unit_test/screenshot_humanoids 28.1s +2022-11-22T05:59:09.0368166Z ##[endgroup] +2022-11-22T05:59:37.6866607Z ##[group]/datum/unit_test/screenshot_saturnx +2022-11-22T05:59:37.9124865Z screenshot_saturnx_invisibility was put in data/screenshots_new +2022-11-22T05:59:37.9125745Z +2022-11-22T05:59:37.9127093Z PASS /datum/unit_test/screenshot_saturnx 0.3s +2022-11-22T05:59:37.9127697Z ##[endgroup] +2022-11-22T05:59:38.0853482Z ##[group]/datum/unit_test/security_officer_roundstart_distribution +2022-11-22T05:59:38.2014087Z +2022-11-22T05:59:38.2015341Z PASS /datum/unit_test/security_officer_roundstart_distribution 0.2s +2022-11-22T05:59:38.2015989Z ##[endgroup] +2022-11-22T05:59:38.3357446Z ##[group]/datum/unit_test/security_officer_latejoin_distribution +2022-11-22T05:59:38.7057220Z +2022-11-22T05:59:38.7058863Z PASS /datum/unit_test/security_officer_latejoin_distribution 0.4s +2022-11-22T05:59:38.7060729Z ##[endgroup] +2022-11-22T05:59:39.2017954Z ##[group]/datum/unit_test/security_levels +2022-11-22T05:59:39.2018640Z +2022-11-22T05:59:39.2021443Z PASS /datum/unit_test/security_levels 0s +2022-11-22T05:59:39.2024185Z ##[endgroup] +2022-11-22T05:59:39.2192675Z ##[group]/datum/unit_test/servingtray +2022-11-22T05:59:39.2471606Z +2022-11-22T05:59:39.2472412Z PASS /datum/unit_test/servingtray 0s +2022-11-22T05:59:39.2475270Z ##[endgroup] +2022-11-22T05:59:39.2694155Z ##[group]/datum/unit_test/simple_animal_freeze +2022-11-22T05:59:39.2703215Z +2022-11-22T05:59:39.2703882Z PASS /datum/unit_test/simple_animal_freeze 0s +2022-11-22T05:59:39.2704730Z ##[endgroup] +2022-11-22T05:59:39.2859664Z ##[group]/datum/unit_test/siunit +2022-11-22T05:59:39.2860192Z +2022-11-22T05:59:39.2905239Z PASS /datum/unit_test/siunit 0s +2022-11-22T05:59:39.2905758Z ##[endgroup] +2022-11-22T05:59:39.3380495Z ##[group]/datum/unit_test/slips +2022-11-22T05:59:39.3816463Z +2022-11-22T05:59:39.3817092Z PASS /datum/unit_test/slips 0s +2022-11-22T05:59:39.3817715Z ##[endgroup] +2022-11-22T05:59:39.4069986Z ##[group]/datum/unit_test/spawn_humans +2022-11-22T05:59:44.4570883Z +2022-11-22T05:59:44.4573502Z PASS /datum/unit_test/spawn_humans 5s +2022-11-22T05:59:44.4574683Z ##[endgroup] +2022-11-22T05:59:44.4963535Z ##[group]/datum/unit_test/spawn_mobs +2022-11-22T05:59:44.5574109Z +2022-11-22T05:59:44.5575293Z PASS /datum/unit_test/spawn_mobs 0.1s +2022-11-22T05:59:44.5575900Z ##[endgroup] +2022-11-22T05:59:44.6565999Z ##[group]/datum/unit_test/species_change_clothing +2022-11-22T05:59:44.7330373Z +2022-11-22T05:59:44.7331058Z PASS /datum/unit_test/species_change_clothing 0.1s +2022-11-22T05:59:44.7331700Z ##[endgroup] +2022-11-22T05:59:44.7549387Z ##[group]/datum/unit_test/species_change_organs +2022-11-22T05:59:44.8048767Z +2022-11-22T05:59:44.8049950Z PASS /datum/unit_test/species_change_organs 0.1s +2022-11-22T05:59:44.8051289Z ##[endgroup] +2022-11-22T05:59:44.8279792Z ##[group]/datum/unit_test/species_config_sanity +2022-11-22T05:59:44.8280594Z +2022-11-22T05:59:44.8283317Z PASS /datum/unit_test/species_config_sanity 0s +2022-11-22T05:59:44.8284090Z ##[endgroup] +2022-11-22T05:59:44.8437473Z ##[group]/datum/unit_test/species_unique_id +2022-11-22T05:59:44.8438066Z +2022-11-22T05:59:44.8438608Z PASS /datum/unit_test/species_unique_id 0s +2022-11-22T05:59:44.8439291Z ##[endgroup] +2022-11-22T05:59:44.8779329Z ##[group]/datum/unit_test/species_whitelist_check +2022-11-22T05:59:44.8779795Z +2022-11-22T05:59:44.8782619Z PASS /datum/unit_test/species_whitelist_check 0s +2022-11-22T05:59:44.8783319Z ##[endgroup] +2022-11-22T05:59:44.8936699Z ##[group]/datum/unit_test/spell_invocations +2022-11-22T05:59:44.8937279Z +2022-11-22T05:59:44.8939987Z PASS /datum/unit_test/spell_invocations 0s +2022-11-22T05:59:44.8940786Z ##[endgroup] +2022-11-22T05:59:45.0281600Z ##[group]/datum/unit_test/mind_swap_spell +2022-11-22T05:59:45.0736031Z +2022-11-22T05:59:45.0737123Z PASS /datum/unit_test/mind_swap_spell 0s +2022-11-22T05:59:45.0738202Z ##[endgroup] +2022-11-22T05:59:45.2297228Z ##[group]/datum/unit_test/spell_names +2022-11-22T05:59:45.2298287Z +2022-11-22T05:59:45.2299157Z PASS /datum/unit_test/spell_names 0s +2022-11-22T05:59:45.2299995Z ##[endgroup] +2022-11-22T05:59:45.2458199Z ##[group]/datum/unit_test/shapeshift_spell_validity +2022-11-22T05:59:45.2460243Z +2022-11-22T05:59:45.2460928Z PASS /datum/unit_test/shapeshift_spell_validity 0s +2022-11-22T05:59:45.2461604Z ##[endgroup] +2022-11-22T05:59:45.2618397Z ##[group]/datum/unit_test/shapeshift_spell +2022-11-22T05:59:45.4081241Z ##[error]Shapeshift spell: Dragon Form failed to transform the dummy into the shape . (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). +2022-11-22T05:59:45.4091958Z ##[error]Shapeshift spell: Dragon Form failed to transform the dummy into the shape . (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). +2022-11-22T05:59:45.4093892Z ##[error]Shapeshift spell: Polar Bear Form failed to transform the dummy into the shape . (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). +2022-11-22T05:59:45.4095548Z ##[error]Shapeshift spell: Polar Bear Form failed to transform the dummy into the shape . (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). +2022-11-22T05:59:45.4097222Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape mouse. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). +2022-11-22T05:59:45.4098881Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape corgi. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). +2022-11-22T05:59:45.4100589Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape chaos magicarp. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). +2022-11-22T05:59:45.4102710Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape ED-209 Security Robot. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). +2022-11-22T05:59:45.4104442Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape viper spider. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). +2022-11-22T05:59:45.4106168Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape Juggernaut. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). +2022-11-22T05:59:45.4107958Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape mouse. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). +2022-11-22T05:59:45.4110135Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape corgi. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). +2022-11-22T05:59:45.4112154Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape chaos magicarp. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). +2022-11-22T05:59:45.4114456Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape ED-209 Security Robot. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). +2022-11-22T05:59:45.4116528Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape viper spider. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). +2022-11-22T05:59:45.4118582Z ##[error]Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape Juggernaut. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). +2022-11-22T05:59:45.4119786Z FAILURE #1: Shapeshift spell: Dragon Form failed to transform the dummy into the shape . (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65 +2022-11-22T05:59:45.4120672Z FAILURE #2: Shapeshift spell: Dragon Form failed to transform the dummy into the shape . (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65 +2022-11-22T05:59:45.4121597Z FAILURE #3: Shapeshift spell: Polar Bear Form failed to transform the dummy into the shape . (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65 +2022-11-22T05:59:45.4122479Z FAILURE #4: Shapeshift spell: Polar Bear Form failed to transform the dummy into the shape . (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65 +2022-11-22T05:59:45.4123517Z FAILURE #5: Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape mouse. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65 +2022-11-22T05:59:45.4124518Z FAILURE #6: Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape corgi. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65 +2022-11-22T05:59:45.4125489Z FAILURE #7: Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape chaos magicarp. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65 +2022-11-22T05:59:45.4126570Z FAILURE #8: Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape ED-209 Security Robot. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65 +2022-11-22T05:59:45.4127396Z FAILURE #9: Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape viper spider. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65 +2022-11-22T05:59:45.4128221Z FAILURE #10: Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape Juggernaut. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65 +2022-11-22T05:59:45.4129047Z FAILURE #11: Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape mouse. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65 +2022-11-22T05:59:45.4129842Z FAILURE #12: Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape corgi. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65 +2022-11-22T05:59:45.4130862Z FAILURE #13: Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape chaos magicarp. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65 +2022-11-22T05:59:45.4131926Z FAILURE #14: Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape ED-209 Security Robot. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65 +2022-11-22T05:59:45.4132782Z FAILURE #15: Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape viper spider. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65 +2022-11-22T05:59:45.4133589Z FAILURE #16: Shapeshift spell: Wild Shapeshift failed to transform the dummy into the shape Juggernaut. (Pablo Pfeifer was located within the floor, which is a /turf/open/floor/iron). at code/modules/unit_tests/spell_shapeshift.dm:65 +2022-11-22T05:59:45.4134297Z ##[endgroup] +2022-11-22T05:59:45.4135321Z ##[error]FAIL /datum/unit_test/shapeshift_spell 0.2s +2022-11-22T05:59:45.5762391Z ##[group]/datum/unit_test/shapeshift_holoparasites +2022-11-22T05:59:45.6070063Z +2022-11-22T05:59:45.6070794Z PASS /datum/unit_test/shapeshift_holoparasites 0.1s +2022-11-22T05:59:45.6071835Z ##[endgroup] +2022-11-22T05:59:45.6299960Z ##[group]/datum/unit_test/spritesheets +2022-11-22T05:59:45.6328891Z +2022-11-22T05:59:45.6329636Z PASS /datum/unit_test/spritesheets 0s +2022-11-22T05:59:45.6330450Z ##[endgroup] +2022-11-22T05:59:45.6504395Z ##[group]/datum/unit_test/stack_singular_name +2022-11-22T05:59:45.6504677Z +2022-11-22T05:59:45.6505199Z PASS /datum/unit_test/stack_singular_name 0s +2022-11-22T05:59:45.6506428Z ##[endgroup] +2022-11-22T05:59:45.6810947Z ##[group]/datum/unit_test/station_traits +2022-11-22T05:59:45.6811136Z +2022-11-22T05:59:45.6811839Z PASS /datum/unit_test/station_traits 0s +2022-11-22T05:59:45.6812628Z ##[endgroup] +2022-11-22T05:59:45.6968300Z ##[group]/datum/unit_test/stomach +2022-11-22T05:59:45.7241514Z +2022-11-22T05:59:45.7242199Z PASS /datum/unit_test/stomach 0.1s +2022-11-22T05:59:45.7242846Z ##[endgroup] +2022-11-22T05:59:45.7453036Z ##[group]/datum/unit_test/strip_menu_ui_status +2022-11-22T05:59:45.7868616Z +2022-11-22T05:59:45.7869391Z PASS /datum/unit_test/strip_menu_ui_status 0s +2022-11-22T05:59:45.7870070Z ##[endgroup] +2022-11-22T05:59:45.8340124Z ##[group]/datum/unit_test/subsystem_init +2022-11-22T05:59:45.8340353Z +2022-11-22T05:59:45.8340796Z PASS /datum/unit_test/subsystem_init 0s +2022-11-22T05:59:45.8341746Z ##[endgroup] +2022-11-22T05:59:45.8497480Z ##[group]/datum/unit_test/suit_storage_icons +2022-11-22T05:59:47.2782798Z 1 - /obj/item/ammo_casing/shotgun using invalid worn_icon_state, "shell" +2022-11-22T05:59:47.2904416Z 2 - /obj/item/gun/ballistic/shotgun/hook using invalid icon_state, "hookshotgun" +2022-11-22T05:59:47.3032597Z 3 - /obj/item/gun/ballistic/automatic/surplus using invalid icon_state, "surplus" +2022-11-22T05:59:47.3160623Z 4 - /obj/item/gun/energy/beam_rifle using invalid icon_state, "esniper" +2022-11-22T05:59:47.3179488Z 5 - /obj/item/gun/energy/lasercannon using invalid icon_state, "lasercannon" +2022-11-22T05:59:47.3204942Z 6 - /obj/item/gun/energy/ionrifle using invalid icon_state, "ionrifle" +2022-11-22T05:59:47.3205749Z 7 - /obj/item/gun/energy/ionrifle/carbine using invalid icon_state, "ioncarbine" +2022-11-22T05:59:47.3333663Z 8 - /obj/item/tome using invalid icon_state, "tome" +2022-11-22T05:59:47.3367736Z 9 - /obj/item/melee/sickly_blade/void using invalid icon_state, "void_blade" +2022-11-22T05:59:47.3379696Z 10 - /obj/item/nullrod/staff using invalid icon_state, "godstaff-red" +2022-11-22T05:59:47.3382004Z 11 - /obj/item/nullrod/staff/blue using invalid icon_state, "godstaff-blue" +2022-11-22T05:59:47.3455165Z 12 - /obj/item/nullrod/tribal_knife using invalid icon_state, "crysknife" +2022-11-22T05:59:47.3462398Z 13 - /obj/item/nullrod/spear using invalid icon_state, "ratvarian_spear" +2022-11-22T05:59:47.3471005Z 14 - /obj/item/candle using invalid icon_state, "candle1" +2022-11-22T05:59:47.3818626Z 15 - /obj/item/toy/eightball using invalid icon_state, "eightball" +2022-11-22T05:59:47.3819882Z 16 - /obj/item/toy/mecha using invalid icon_state, "fivestarstoy" +2022-11-22T05:59:47.3822376Z 17 - /obj/item/toy/mecha/ripley using invalid icon_state, "ripleytoy" +2022-11-22T05:59:47.3824854Z 18 - /obj/item/toy/mecha/ripleymkii using invalid icon_state, "ripleymkiitoy" +2022-11-22T05:59:47.3827367Z 19 - /obj/item/toy/mecha/hauler using invalid icon_state, "haulertoy" +2022-11-22T05:59:47.3829817Z 20 - /obj/item/toy/mecha/clarke using invalid icon_state, "clarketoy" +2022-11-22T05:59:47.3832329Z 21 - /obj/item/toy/mecha/odysseus using invalid icon_state, "odysseustoy" +2022-11-22T05:59:47.3834765Z 22 - /obj/item/toy/mecha/gygax using invalid icon_state, "gygaxtoy" +2022-11-22T05:59:47.3837259Z 23 - /obj/item/toy/mecha/durand using invalid icon_state, "durandtoy" +2022-11-22T05:59:47.3839922Z 24 - /obj/item/toy/mecha/savannahivanov using invalid icon_state, "savannahivanovtoy" +2022-11-22T05:59:47.3842813Z 25 - /obj/item/toy/mecha/phazon using invalid icon_state, "phazontoy" +2022-11-22T05:59:47.3845150Z 26 - /obj/item/toy/mecha/honk using invalid icon_state, "honktoy" +2022-11-22T05:59:47.3847669Z 27 - /obj/item/toy/mecha/darkgygax using invalid icon_state, "darkgygaxtoy" +2022-11-22T05:59:47.3850308Z 28 - /obj/item/toy/mecha/mauler using invalid icon_state, "maulertoy" +2022-11-22T05:59:47.3852869Z 29 - /obj/item/toy/mecha/darkhonk using invalid icon_state, "darkhonktoy" +2022-11-22T05:59:47.3855423Z 30 - /obj/item/toy/mecha/deathripley using invalid icon_state, "deathripleytoy" +2022-11-22T05:59:47.3857917Z 31 - /obj/item/toy/mecha/reticence using invalid icon_state, "reticencetoy" +2022-11-22T05:59:47.3860420Z 32 - /obj/item/toy/mecha/marauder using invalid icon_state, "maraudertoy" +2022-11-22T05:59:47.3863149Z 33 - /obj/item/toy/mecha/seraph using invalid icon_state, "seraphtoy" +2022-11-22T05:59:47.3865478Z 34 - /obj/item/toy/mecha/firefighter using invalid icon_state, "firefightertoy" +2022-11-22T05:59:47.3867946Z 35 - /obj/item/toy/waterballoon using invalid icon_state, "waterballoon-e" +2022-11-22T05:59:47.3870341Z 36 - /obj/item/toy/balloon using invalid icon_state, "balloon" +2022-11-22T05:59:47.3872883Z 37 - /obj/item/toy/balloon/corgi using invalid icon_state, "corgi" +2022-11-22T05:59:47.3875334Z 38 - /obj/item/toy/balloon/syndicate using invalid icon_state, "syndballoon" +2022-11-22T05:59:47.3877875Z 39 - /obj/item/toy/balloon/arrest using invalid icon_state, "arrestballoon" +2022-11-22T05:59:47.3881362Z 40 - /obj/item/toy/captainsaid using invalid icon_state, "captainsaid_off" +2022-11-22T05:59:47.3882960Z 41 - /obj/item/toy/spinningtoy using invalid icon_state, "singularity_s1" +2022-11-22T05:59:47.3887746Z 42 - /obj/item/toy/ammo/gun using invalid icon_state, "357OLD-7" +2022-11-22T05:59:47.3890028Z 43 - /obj/item/toy/sword using invalid icon_state, "e_sword" +2022-11-22T05:59:47.3892708Z 44 - /obj/item/toy/foamblade using invalid icon_state, "foamblade" +2022-11-22T05:59:47.3895134Z 45 - /obj/item/toy/windup_toolbox using invalid icon_state, "green" +2022-11-22T05:59:47.3899921Z 46 - /obj/item/toy/snappop using invalid icon_state, "snappop" +2022-11-22T05:59:47.3902685Z 47 - /obj/item/toy/talking using invalid icon_state, "owlprize" +2022-11-22T05:59:47.3904842Z 48 - /obj/item/toy/talking/ai using invalid icon_state, "AI" +2022-11-22T05:59:47.3907306Z 49 - /obj/item/toy/talking/codex_gigas using invalid icon_state, "demonomicon" +2022-11-22T05:59:47.3909825Z 50 - /obj/item/toy/talking/griffin using invalid icon_state, "griffinprize" +2022-11-22T05:59:47.3912295Z 51 - /obj/item/toy/nuke using invalid icon_state, "nuketoyidle" +2022-11-22T05:59:47.3914956Z 52 - /obj/item/toy/minimeteor using invalid icon_state, "minimeteor" +2022-11-22T05:59:47.3917314Z 53 - /obj/item/toy/redbutton using invalid icon_state, "bigred" +2022-11-22T05:59:47.3919850Z 54 - /obj/item/toy/snowball using invalid icon_state, "snowball" +2022-11-22T05:59:47.3922324Z 55 - /obj/item/toy/beach_ball using invalid icon_state, "ball" +2022-11-22T05:59:47.3924942Z 56 - /obj/item/toy/beach_ball/baseball using invalid icon_state, "baseball" +2022-11-22T05:59:47.3927403Z 57 - /obj/item/toy/beach_ball/holoball using invalid icon_state, "basketball" +2022-11-22T05:59:47.3930060Z 58 - /obj/item/toy/beach_ball/holoball/dodgeball using invalid icon_state, "dodgeball" +2022-11-22T05:59:47.3937167Z 59 - /obj/item/toy/toy_xeno using invalid icon_state, "toy_xeno" +2022-11-22T05:59:47.3939549Z 60 - /obj/item/toy/cattoy using invalid icon_state, "toy_mouse" +2022-11-22T05:59:47.3942078Z 61 - /obj/item/toy/figure using invalid icon_state, "nuketoy" +2022-11-22T05:59:47.3944589Z 62 - /obj/item/toy/figure/cmo using invalid icon_state, "cmo" +2022-11-22T05:59:47.3947155Z 63 - /obj/item/toy/figure/assistant using invalid icon_state, "assistant" +2022-11-22T05:59:47.3949638Z 64 - /obj/item/toy/figure/atmos using invalid icon_state, "atmos" +2022-11-22T05:59:47.3952141Z 65 - /obj/item/toy/figure/bartender using invalid icon_state, "bartender" +2022-11-22T05:59:47.3954628Z 66 - /obj/item/toy/figure/borg using invalid icon_state, "borg" +2022-11-22T05:59:47.3957148Z 67 - /obj/item/toy/figure/botanist using invalid icon_state, "botanist" +2022-11-22T05:59:47.3959629Z 68 - /obj/item/toy/figure/captain using invalid icon_state, "captain" +2022-11-22T05:59:47.3962149Z 69 - /obj/item/toy/figure/cargotech using invalid icon_state, "cargotech" +2022-11-22T05:59:47.3964605Z 70 - /obj/item/toy/figure/ce using invalid icon_state, "ce" +2022-11-22T05:59:47.3967148Z 71 - /obj/item/toy/figure/chaplain using invalid icon_state, "chaplain" +2022-11-22T05:59:47.3969647Z 72 - /obj/item/toy/figure/chef using invalid icon_state, "chef" +2022-11-22T05:59:47.3972328Z 73 - /obj/item/toy/figure/chemist using invalid icon_state, "chemist" +2022-11-22T05:59:47.3975052Z 74 - /obj/item/toy/figure/clown using invalid icon_state, "clown" +2022-11-22T05:59:47.3977375Z 75 - /obj/item/toy/figure/ian using invalid icon_state, "ian" +2022-11-22T05:59:47.3979914Z 76 - /obj/item/toy/figure/detective using invalid icon_state, "detective" +2022-11-22T05:59:47.3982376Z 77 - /obj/item/toy/figure/dsquad using invalid icon_state, "dsquad" +2022-11-22T05:59:47.3984915Z 78 - /obj/item/toy/figure/engineer using invalid icon_state, "engineer" +2022-11-22T05:59:47.3987388Z 79 - /obj/item/toy/figure/geneticist using invalid icon_state, "geneticist" +2022-11-22T05:59:47.3989933Z 80 - /obj/item/toy/figure/hop using invalid icon_state, "hop" +2022-11-22T05:59:47.3992345Z 81 - /obj/item/toy/figure/hos using invalid icon_state, "hos" +2022-11-22T05:59:47.3994832Z 82 - /obj/item/toy/figure/qm using invalid icon_state, "qm" +2022-11-22T05:59:47.3997314Z 83 - /obj/item/toy/figure/janitor using invalid icon_state, "janitor" +2022-11-22T05:59:47.3999822Z 84 - /obj/item/toy/figure/lawyer using invalid icon_state, "lawyer" +2022-11-22T05:59:47.4002303Z 85 - /obj/item/toy/figure/curator using invalid icon_state, "curator" +2022-11-22T05:59:47.4004824Z 86 - /obj/item/toy/figure/md using invalid icon_state, "md" +2022-11-22T05:59:47.4007316Z 87 - /obj/item/toy/figure/paramedic using invalid icon_state, "paramedic" +2022-11-22T05:59:47.4009871Z 88 - /obj/item/toy/figure/psychologist using invalid icon_state, "psychologist" +2022-11-22T05:59:47.4012455Z 89 - /obj/item/toy/figure/prisoner using invalid icon_state, "prisoner" +2022-11-22T05:59:47.4015072Z 90 - /obj/item/toy/figure/mime using invalid icon_state, "mime" +2022-11-22T05:59:47.4017416Z 91 - /obj/item/toy/figure/miner using invalid icon_state, "miner" +2022-11-22T05:59:47.4019976Z 92 - /obj/item/toy/figure/ninja using invalid icon_state, "ninja" +2022-11-22T05:59:47.4022438Z 93 - /obj/item/toy/figure/wizard using invalid icon_state, "wizard" +2022-11-22T05:59:47.4024907Z 94 - /obj/item/toy/figure/rd using invalid icon_state, "rd" +2022-11-22T05:59:47.4027464Z 95 - /obj/item/toy/figure/roboticist using invalid icon_state, "roboticist" +2022-11-22T05:59:47.4029958Z 96 - /obj/item/toy/figure/scientist using invalid icon_state, "scientist" +2022-11-22T05:59:47.4032492Z 97 - /obj/item/toy/figure/syndie using invalid icon_state, "syndie" +2022-11-22T05:59:47.4035062Z 98 - /obj/item/toy/figure/secofficer using invalid icon_state, "secofficer" +2022-11-22T05:59:47.4037516Z 99 - /obj/item/toy/figure/virologist using invalid icon_state, "virologist" +2022-11-22T05:59:47.4040034Z 100 - /obj/item/toy/figure/warden using invalid icon_state, "warden" +2022-11-22T05:59:47.4042570Z 101 - /obj/item/toy/dummy using invalid icon_state, "puppet" +2022-11-22T05:59:47.4045132Z 102 - /obj/item/toy/seashell using invalid icon_state, "shell1" +2022-11-22T05:59:47.4047654Z 103 - /obj/item/toy/brokenradio using invalid icon_state, "broken_radio" +2022-11-22T05:59:47.4050253Z 104 - /obj/item/toy/braintoy using invalid icon_state, "brain-old" +2022-11-22T05:59:47.4055251Z 105 - /obj/item/toy/reality_pierce using invalid icon_state, "pierced_illusion" +2022-11-22T05:59:47.4057520Z 106 - /obj/item/toy/foamfinger using invalid icon_state, "foamfinger" +2022-11-22T05:59:47.4060004Z 107 - /obj/item/toy/intento using invalid icon_state, "blank" +2022-11-22T05:59:47.4092596Z 108 - /obj/item/toy/sprayoncan using invalid icon_state, "sprayoncan" +2022-11-22T05:59:47.4093827Z 109 - /obj/item/toy/xmas_cracker using invalid icon_state, "cracker" +2022-11-22T05:59:47.4098242Z 110 - /obj/item/cultivator/rake using invalid icon_state, "rake" +2022-11-22T05:59:47.4104109Z 111 - /obj/item/hatchet/wooden using invalid icon_state, "woodhatchet" +2022-11-22T05:59:47.4106239Z 112 - /obj/item/hatchet/cutterblade using invalid icon_state, "cutterblade" +2022-11-22T05:59:47.4792952Z 113 - /obj/item/reagent_containers/hypospray/medipen using invalid worn_icon_state, "medipen" +2022-11-22T05:59:47.4928931Z 114 - /obj/item/storage/pill_bottle using invalid icon_state, "pill_canister" +2022-11-22T05:59:47.4937506Z 115 - /obj/item/analyzer/ranged using invalid icon_state, "analyzerranged" +2022-11-22T05:59:47.5463999Z 116 - /obj/item/organ/internal/monster_core using invalid icon_state, "hivelord_core" +2022-11-22T05:59:47.5466585Z 117 - /obj/item/organ/internal/monster_core/brimdust_sac using invalid icon_state, "brim_sac" +2022-11-22T05:59:47.5467229Z 118 - /obj/item/organ/internal/monster_core/regenerative_core/legion using invalid icon_state, "legion_core" +2022-11-22T05:59:47.5469256Z 119 - /obj/item/organ/internal/monster_core/rush_gland using invalid icon_state, "lobster_gland" +2022-11-22T05:59:47.5479181Z 120 - /obj/item/spear/bamboospear using invalid icon_state, "bamboo_spear0" +2022-11-22T05:59:47.5517467Z 121 - /obj/item/abductor/gizmo using invalid icon_state, "gizmo_scan" +2022-11-22T05:59:47.5518755Z 122 - /obj/item/abductor/silencer using invalid icon_state, "silencer" +2022-11-22T05:59:47.5521102Z 123 - /obj/item/abductor/mind_device using invalid icon_state, "mind_device_message" +2022-11-22T05:59:47.5536484Z 124 - /obj/item/claymore/cutlass using invalid worn_icon_state, "cutlass" +2022-11-22T05:59:47.5540915Z 125 - /obj/item/claymore/highlander/robot using invalid icon_state, "claymore_cyborg" +2022-11-22T05:59:47.5543262Z 126 - /obj/item/banner using invalid icon_state, "banner" +2022-11-22T05:59:47.5545809Z 127 - /obj/item/banner/security using invalid icon_state, "banner_security" +2022-11-22T05:59:47.5548315Z 128 - /obj/item/banner/medical using invalid icon_state, "banner_medical" +2022-11-22T05:59:47.5550843Z 129 - /obj/item/banner/science using invalid icon_state, "banner_science" +2022-11-22T05:59:47.5553341Z 130 - /obj/item/banner/cargo using invalid icon_state, "banner_cargo" +2022-11-22T05:59:47.5555871Z 131 - /obj/item/banner/engineering using invalid icon_state, "banner_engineering" +2022-11-22T05:59:47.5558379Z 132 - /obj/item/banner/red using invalid icon_state, "banner-red" +2022-11-22T05:59:47.5560854Z 133 - /obj/item/banner/blue using invalid icon_state, "banner-blue" +2022-11-22T05:59:47.5597308Z 134 - /obj/item/gun/magic/staff using invalid icon_state, "staff" +2022-11-22T05:59:47.5598624Z 135 - /obj/item/gun/magic/staff/change using invalid icon_state, "staffofchange" +2022-11-22T05:59:47.5601122Z 136 - /obj/item/gun/magic/staff/animate using invalid icon_state, "staffofanimation" +2022-11-22T05:59:47.5603650Z 137 - /obj/item/gun/magic/staff/healing using invalid icon_state, "staffofhealing" +2022-11-22T05:59:47.5606162Z 138 - /obj/item/gun/magic/staff/chaos using invalid icon_state, "staffofchaos" +2022-11-22T05:59:47.5608674Z 139 - /obj/item/gun/magic/staff/door using invalid icon_state, "staffofdoor" +2022-11-22T05:59:47.5611329Z 140 - /obj/item/gun/magic/staff/honk using invalid icon_state, "honker" +2022-11-22T05:59:47.5616211Z 141 - /obj/item/gun/magic/staff/locker using invalid worn_icon_state, "lockerstaff" +2022-11-22T05:59:47.5618590Z 142 - /obj/item/gun/magic/staff/flying using invalid worn_icon_state, "flightstaff" +2022-11-22T05:59:47.5621083Z 143 - /obj/item/gun/magic/staff/babel using invalid worn_icon_state, "babelstaff" +2022-11-22T05:59:47.5623626Z 144 - /obj/item/gun/magic/staff/necropotence using invalid worn_icon_state, "necrostaff" +2022-11-22T05:59:47.5626131Z 145 - /obj/item/gun/magic/staff/wipe using invalid worn_icon_state, "wipestaff" +2022-11-22T05:59:47.5643345Z 146 - /obj/item/melee/energy/sword/pirate using invalid icon_state, "e_cutlass" +2022-11-22T05:59:47.5645538Z 147 - /obj/item/clothing/glasses/eyepatch using invalid icon_state, "eyepatch" +2022-11-22T05:59:47.5650375Z 148 - /obj/item/melee/energy/sword/cyborg/saw using invalid icon_state, "esaw" +2022-11-22T05:59:47.5661667Z 149 - /obj/item/tank/jetpack/improvised using invalid worn_icon_state, "jetpack-improvised" +2022-11-22T05:59:47.5667402Z 150 - /obj/item/multitool using invalid icon_state, "multitool" +2022-11-22T05:59:47.5669936Z 151 - /obj/item/multitool/cyborg using invalid icon_state, "multitool_cyborg" +2022-11-22T05:59:47.5672485Z 152 - /obj/item/multitool/circuit using invalid icon_state, "multitool_circuit" +2022-11-22T05:59:47.5675177Z 153 - /obj/item/pillow using invalid icon_state, "pillow_1_t" +2022-11-22T05:59:47.5677618Z 154 - /obj/item/pillow/clown using invalid icon_state, "pillow_5_t" +2022-11-22T05:59:47.5680084Z 155 - /obj/item/pillow/mime using invalid icon_state, "pillow_6_t" +2022-11-22T05:59:47.5682788Z 156 - /obj/item/storage/bag/trash using invalid icon_state, "trashbag" +2022-11-22T05:59:47.5685228Z 157 - /obj/item/storage/bag/trash/bluespace using invalid icon_state, "bluetrashbag" +2022-11-22T05:59:47.5687673Z 158 - /obj/item/cane using invalid icon_state, "cane" +2022-11-22T05:59:47.5690323Z 159 - /obj/item/cane/white using invalid icon_state, "cane_white" +2022-11-22T05:59:47.5692922Z 160 - /obj/item/megaphone/clown using invalid icon_state, "megaphone-clown" +2022-11-22T05:59:47.5711035Z 161 - /obj/item/food/pie/cream using invalid icon_state, "pie" +2022-11-22T05:59:47.5722637Z 162 - /obj/item/instrument/bikehorn using invalid icon_state, "bike_horn" +2022-11-22T05:59:47.5724979Z 163 - /obj/item/reagent_containers/cup/soda_cans/canned_laughter using invalid icon_state, "laughter" +2022-11-22T05:59:47.5740550Z 164 - /obj/item/grown/bananapeel using invalid icon_state, "banana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-11-22T05:59:47.5741267Z 165 - /obj/item/grown/bananapeel/bombanana using invalid icon_state, "banana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-11-22T05:59:47.5741975Z 166 - /obj/item/grown/bananapeel/mimanapeel using invalid icon_state, "mimana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-11-22T05:59:47.5742678Z 167 - /obj/item/grown/bananapeel/bluespace using invalid icon_state, "bluenana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-11-22T05:59:47.5743387Z 168 - /obj/item/grown/bananapeel/specialpeel using invalid icon_state, "banana_peel" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-11-22T05:59:47.5744054Z 169 - /obj/item/food/grown/banana using invalid icon_state, "banana" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-11-22T05:59:47.5744727Z 170 - /obj/item/food/grown/banana/bombanana using invalid icon_state, "banana" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-11-22T05:59:47.5745395Z 171 - /obj/item/food/grown/banana/mime using invalid icon_state, "mimana" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-11-22T05:59:47.5746068Z 172 - /obj/item/food/grown/banana/bluespace using invalid icon_state, "bluenana" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-11-22T05:59:47.5746753Z 173 - /obj/item/food/grown/banana/bunch using invalid icon_state, "banana_bunch" in worn_icon override file, 'icons/mob/clothing/head/hydroponics.dmi' +2022-11-22T05:59:47.5748235Z 174 - /obj/item/stack/spacecash/c1 using invalid icon_state, "spacecash1" +2022-11-22T05:59:47.5749552Z 175 - /obj/item/stack/spacecash/c10 using invalid icon_state, "spacecash10" +2022-11-22T05:59:47.5750858Z 176 - /obj/item/stack/spacecash/c20 using invalid icon_state, "spacecash20" +2022-11-22T05:59:47.5752155Z 177 - /obj/item/stack/spacecash/c50 using invalid icon_state, "spacecash50" +2022-11-22T05:59:47.5754575Z 178 - /obj/item/stack/spacecash/c100 using invalid icon_state, "spacecash100" +2022-11-22T05:59:47.5758018Z 179 - /obj/item/stack/spacecash/c200 using invalid icon_state, "spacecash200" +2022-11-22T05:59:47.5759981Z 180 - /obj/item/stack/spacecash/c500 using invalid icon_state, "spacecash500" +2022-11-22T05:59:47.5763153Z 181 - /obj/item/stack/spacecash/c1000 using invalid icon_state, "spacecash1000" +2022-11-22T05:59:47.5765191Z 182 - /obj/item/stack/spacecash/c10000 using invalid icon_state, "spacecash10000" +2022-11-22T05:59:47.5768449Z 183 - /obj/item/clothing/mask/facehugger/toy using invalid worn_icon_state, "facehugger" +2022-11-22T05:59:47.5777399Z 184 - /obj/item/kitchen/fork using invalid icon_state, "fork" +2022-11-22T05:59:47.5779609Z 185 - /obj/item/kitchen/fork/plastic using invalid icon_state, "plastic_fork" +2022-11-22T05:59:47.5786931Z 186 - /obj/item/kitchen/spoon using invalid icon_state, "spoon" +2022-11-22T05:59:47.5788816Z 187 - /obj/item/kitchen/spoon/plastic using invalid icon_state, "plastic_spoon" +2022-11-22T05:59:47.5796132Z 188 - /obj/item/bonesetter using invalid icon_state, "bonesetter" +2022-11-22T05:59:47.5798117Z 189 - /obj/item/cautery using invalid icon_state, "cautery" +2022-11-22T05:59:47.5801358Z 190 - /obj/item/cautery/advanced using invalid icon_state, "e_cautery" +2022-11-22T05:59:47.5803355Z 191 - /obj/item/hemostat using invalid icon_state, "hemostat" +2022-11-22T05:59:47.5806562Z 192 - /obj/item/hemostat/supermatter using invalid icon_state, "supermatter_tongs" +2022-11-22T05:59:47.5808614Z 193 - /obj/item/retractor using invalid icon_state, "retractor" +2022-11-22T05:59:47.5811999Z 194 - /obj/item/retractor/advanced using invalid icon_state, "adv_retractor" +2022-11-22T05:59:47.5814490Z 195 - /obj/item/scalpel using invalid icon_state, "scalpel" +2022-11-22T05:59:47.5817072Z 196 - /obj/item/scalpel/supermatter using invalid icon_state, "supermatter_scalpel" +2022-11-22T05:59:47.5820120Z 197 - /obj/item/scalpel/advanced using invalid icon_state, "e_scalpel" +2022-11-22T05:59:47.5822112Z 198 - /obj/item/surgical_drapes using invalid icon_state, "surgical_drapes" +2022-11-22T05:59:47.5826686Z 199 - /obj/item/stack/medical/bruise_pack using invalid icon_state, "brutepack" +2022-11-22T05:59:47.5829169Z 200 - /obj/item/stack/medical/gauze using invalid icon_state, "gauze" +2022-11-22T05:59:47.5831713Z 201 - /obj/item/stack/medical/suture using invalid icon_state, "suture" +2022-11-22T05:59:47.5834293Z 202 - /obj/item/stack/medical/suture/medicated using invalid icon_state, "suture_purp" +2022-11-22T05:59:47.5836945Z 203 - /obj/item/stack/medical/ointment using invalid icon_state, "ointment" +2022-11-22T05:59:47.5839365Z 204 - /obj/item/stack/medical/mesh using invalid icon_state, "regen_mesh" +2022-11-22T05:59:47.5841890Z 205 - /obj/item/stack/medical/mesh/advanced using invalid icon_state, "aloe_mesh" +2022-11-22T05:59:47.5844397Z 206 - /obj/item/stack/medical/aloe using invalid icon_state, "aloe_paste" +2022-11-22T05:59:47.5846906Z 207 - /obj/item/stack/medical/bone_gel using invalid icon_state, "bone-gel" +2022-11-22T05:59:47.5849452Z 208 - /obj/item/stack/medical/poultice using invalid icon_state, "poultice" +2022-11-22T05:59:47.5852140Z 209 - /obj/item/assembly/flash/handheld using invalid icon_state, "flash" +2022-11-22T05:59:47.5854699Z 210 - /obj/item/clothing/mask/cigarette using invalid icon_state, "cigoff" +2022-11-22T05:59:47.5857377Z 211 - /obj/item/clothing/mask/cigarette/rollie using invalid icon_state, "spliffoff" +2022-11-22T05:59:47.5859944Z 212 - /obj/item/clothing/mask/cigarette/candy using invalid icon_state, "candyoff" +2022-11-22T05:59:47.5862552Z 213 - /obj/item/clothing/mask/cigarette/cigar using invalid icon_state, "cigaroff" +2022-11-22T05:59:47.5865143Z 214 - /obj/item/clothing/mask/cigarette/cigar/cohiba using invalid icon_state, "cigar2off" +2022-11-22T05:59:47.5867644Z 215 - /obj/item/clothing/mask/cigarette/pipe using invalid icon_state, "pipeoff" +2022-11-22T05:59:47.5870191Z 216 - /obj/item/clothing/mask/cigarette/pipe/cobpipe using invalid icon_state, "cobpipeoff" +2022-11-22T05:59:47.5872621Z 217 - /obj/item/disk using invalid icon_state, "datadisk0" +2022-11-22T05:59:47.5875148Z 218 - /obj/item/disk/holodisk using invalid icon_state, "holodisk" +2022-11-22T05:59:47.5877898Z 219 - /obj/item/disk/nuclear using invalid icon_state, "nucleardisk" +2022-11-22T05:59:47.5880496Z 220 - /obj/item/disk/surgery using invalid icon_state, "datadisk1" +2022-11-22T05:59:47.5883119Z 221 - /obj/item/disk/cargo/bluespace_pod using invalid icon_state, "cargodisk" +2022-11-22T05:59:47.5885955Z 222 - /obj/item/disk/tech_disk/major using invalid icon_state, "rndmajordisk" +2022-11-22T05:59:47.5888500Z 223 - /obj/item/melee/powerfist using invalid icon_state, "powerfist" +2022-11-22T05:59:47.5897706Z 224 - /obj/item/melee/skateboard using invalid icon_state, "skateboard" +2022-11-22T05:59:47.5899984Z 225 - /obj/item/melee/skateboard/pro using invalid icon_state, "skateboard2" +2022-11-22T05:59:47.5902460Z 226 - /obj/item/melee/skateboard/hoverboard using invalid icon_state, "hoverboard_red" +2022-11-22T05:59:47.5904690Z 227 - /obj/item/melee/skateboard/hoverboard/admin using invalid icon_state, "hoverboard_nt" +2022-11-22T05:59:47.5907845Z 228 - /obj/item/melee/baseball_bat using invalid icon_state, "baseball_bat" +2022-11-22T05:59:47.5910306Z 229 - /obj/item/melee/baseball_bat/homerun using invalid icon_state, "baseball_bat_home" +2022-11-22T05:59:47.5912836Z 230 - /obj/item/melee/baseball_bat/ablative using invalid icon_state, "baseball_bat_metal" +2022-11-22T05:59:47.5915302Z 231 - /obj/item/melee/flyswatter using invalid icon_state, "flyswatter" +2022-11-22T05:59:47.5919886Z 232 - /obj/item/melee/energy/axe using invalid icon_state, "axe" +2022-11-22T05:59:47.5922388Z 233 - /obj/item/melee/energy/blade using invalid icon_state, "blade" +2022-11-22T05:59:47.5924922Z 234 - /obj/item/melee/energy/blade/hardlight using invalid icon_state, "lightblade" +2022-11-22T05:59:47.5927400Z 235 - /obj/item/melee/synthetic_arm_blade using invalid icon_state, "arm_blade" +2022-11-22T05:59:47.5929855Z 236 - /obj/item/melee/sabre using invalid icon_state, "sabre" +2022-11-22T05:59:47.5932585Z 237 - /obj/item/melee/beesword using invalid worn_icon_state, "stinger" +2022-11-22T05:59:47.5935177Z 238 - /obj/item/melee/supermatter_sword using invalid icon_state, "supermatter_sword" +2022-11-22T05:59:47.5941969Z 239 - /obj/item/melee/cleric_mace using invalid worn_icon_state, "default_worn" +2022-11-22T05:59:47.5944403Z 240 - /obj/item/melee/rune_carver using invalid icon_state, "rune_carver" +2022-11-22T05:59:47.5946893Z 241 - /obj/item/melee/ghost_sword using invalid icon_state, "spectral" +2022-11-22T05:59:47.5949437Z 242 - /obj/item/reagent_containers/cup/glass/flask using invalid icon_state, "flask" +2022-11-22T05:59:47.5951947Z 243 - /obj/item/reagent_containers/cup/glass/flask/gold using invalid icon_state, "flask_gold" +2022-11-22T05:59:47.5954470Z 244 - /obj/item/reagent_containers/cup/glass/flask/det using invalid icon_state, "detflask" +2022-11-22T05:59:47.5956926Z 245 - /obj/item/stamp using invalid icon_state, "stamp-ok" +2022-11-22T05:59:47.5959499Z 246 - /obj/item/stamp/qm using invalid icon_state, "stamp-qm" +2022-11-22T05:59:47.5962007Z 247 - /obj/item/stamp/law using invalid icon_state, "stamp-law" +2022-11-22T05:59:47.5964537Z 248 - /obj/item/stamp/captain using invalid icon_state, "stamp-cap" +2022-11-22T05:59:47.5967023Z 249 - /obj/item/stamp/hop using invalid icon_state, "stamp-hop" +2022-11-22T05:59:47.5969512Z 250 - /obj/item/stamp/hos using invalid icon_state, "stamp-hos" +2022-11-22T05:59:47.5972211Z 251 - /obj/item/stamp/ce using invalid icon_state, "stamp-ce" +2022-11-22T05:59:47.5974735Z 252 - /obj/item/stamp/rd using invalid icon_state, "stamp-rd" +2022-11-22T05:59:47.5977316Z 253 - /obj/item/stamp/cmo using invalid icon_state, "stamp-cmo" +2022-11-22T05:59:47.5979863Z 254 - /obj/item/stamp/denied using invalid icon_state, "stamp-deny" +2022-11-22T05:59:47.5982340Z 255 - /obj/item/stamp/void using invalid icon_state, "stamp-void" +2022-11-22T05:59:47.5984839Z 256 - /obj/item/stamp/clown using invalid icon_state, "stamp-clown" +2022-11-22T05:59:47.5987328Z 257 - /obj/item/stamp/mime using invalid icon_state, "stamp-mime" +2022-11-22T05:59:47.5989790Z 258 - /obj/item/stamp/chap using invalid icon_state, "stamp-chap" +2022-11-22T05:59:47.5992332Z 259 - /obj/item/stamp/centcom using invalid icon_state, "stamp-centcom" +2022-11-22T05:59:47.5994835Z 260 - /obj/item/stamp/syndicate using invalid icon_state, "stamp-syndicate" +2022-11-22T05:59:47.5999537Z 261 - /obj/item/storage/lockbox/medal using invalid icon_state, "medalbox+l" +2022-11-22T05:59:47.6006307Z 262 - /obj/item/crowbar/red/caravan using invalid icon_state, "crowbar_caravan" +2022-11-22T05:59:47.6026916Z 263 - /obj/item/crowbar/mechremoval using invalid icon_state, "mechremoval0" +2022-11-22T05:59:47.6027464Z 264 - /obj/item/crowbar/drone using invalid icon_state, "crowbar_cyborg" +2022-11-22T05:59:47.6045435Z +2022-11-22T05:59:47.6045723Z PASS /datum/unit_test/suit_storage_icons 1.8s +2022-11-22T05:59:47.6046285Z ##[endgroup] +2022-11-22T05:59:49.3705818Z ##[group]/datum/unit_test/amputation +2022-11-22T05:59:49.4134911Z +2022-11-22T05:59:49.4135822Z PASS /datum/unit_test/amputation 0.1s +2022-11-22T05:59:49.4136599Z ##[endgroup] +2022-11-22T05:59:49.4382113Z ##[group]/datum/unit_test/brain_surgery +2022-11-22T05:59:49.4804850Z +2022-11-22T05:59:49.4805763Z PASS /datum/unit_test/brain_surgery 0s +2022-11-22T05:59:49.4806504Z ##[endgroup] +2022-11-22T05:59:49.5219202Z ##[group]/datum/unit_test/head_transplant +2022-11-22T05:59:49.5928104Z +2022-11-22T05:59:49.5929815Z PASS /datum/unit_test/head_transplant 0s +2022-11-22T05:59:49.5933029Z ##[endgroup] +2022-11-22T05:59:49.6712586Z ##[group]/datum/unit_test/multiple_surgeries +2022-11-22T05:59:49.7356777Z +2022-11-22T05:59:49.7357986Z PASS /datum/unit_test/multiple_surgeries 0.1s +2022-11-22T05:59:49.7359539Z ##[endgroup] +2022-11-22T05:59:49.7649974Z ##[group]/datum/unit_test/start_tend_wounds +2022-11-22T05:59:49.8066946Z +2022-11-22T05:59:49.8067917Z PASS /datum/unit_test/start_tend_wounds 0.1s +2022-11-22T05:59:49.8068876Z ##[endgroup] +2022-11-22T05:59:49.8487591Z ##[group]/datum/unit_test/tend_wounds +2022-11-22T05:59:49.9400599Z +2022-11-22T05:59:49.9401319Z PASS /datum/unit_test/tend_wounds 0.1s +2022-11-22T05:59:49.9402005Z ##[endgroup] +2022-11-22T05:59:50.0310912Z ##[group]/datum/unit_test/auto_teleporter_linking +2022-11-22T05:59:50.0641967Z +2022-11-22T05:59:50.0643714Z PASS /datum/unit_test/auto_teleporter_linking 0s +2022-11-22T05:59:50.0647032Z ##[endgroup] +2022-11-22T05:59:50.0823643Z ##[group]/datum/unit_test/tgui_create_message +2022-11-22T05:59:50.0824184Z +2022-11-22T05:59:50.0826702Z PASS /datum/unit_test/tgui_create_message 0s +2022-11-22T05:59:50.0827332Z ##[endgroup] +2022-11-22T05:59:50.0980740Z ##[group]/datum/unit_test/timer_sanity +2022-11-22T05:59:50.0981184Z +2022-11-22T05:59:50.0983576Z PASS /datum/unit_test/timer_sanity 0s +2022-11-22T05:59:50.0984274Z ##[endgroup] +2022-11-22T05:59:50.1136569Z ##[group]/datum/unit_test/traitor +2022-11-22T05:59:51.5476276Z +2022-11-22T05:59:51.5477028Z PASS /datum/unit_test/traitor 1.4s +2022-11-22T05:59:51.5477682Z ##[endgroup] +2022-11-22T05:59:53.7711821Z ##[group]/datum/unit_test/verify_config_tags +2022-11-22T05:59:53.7714663Z +2022-11-22T05:59:53.7716722Z PASS /datum/unit_test/verify_config_tags 0s +2022-11-22T05:59:53.7718585Z ##[endgroup] +2022-11-22T05:59:53.7880948Z ##[group]/datum/unit_test/verify_emoji_names +2022-11-22T05:59:53.7883956Z +2022-11-22T05:59:53.7885900Z PASS /datum/unit_test/verify_emoji_names 0s +2022-11-22T05:59:53.7886813Z ##[endgroup] +2022-11-22T05:59:53.8042437Z ##[group]/datum/unit_test/wizard_loadout +2022-11-22T05:59:53.8966549Z +2022-11-22T05:59:53.8967690Z PASS /datum/unit_test/wizard_loadout 0s +2022-11-22T05:59:53.8971302Z ##[endgroup] +2022-11-22T05:59:54.0341360Z ##[group]/datum/unit_test/find_reference_sanity +2022-11-22T05:59:54.0343250Z +2022-11-22T05:59:54.0344168Z PASS /datum/unit_test/find_reference_sanity 0s +2022-11-22T05:59:54.0344973Z ##[endgroup] +2022-11-22T05:59:54.0508234Z ##[group]/datum/unit_test/find_reference_baseline +2022-11-22T05:59:54.0509845Z +2022-11-22T05:59:54.0510616Z PASS /datum/unit_test/find_reference_baseline 0s +2022-11-22T05:59:54.0511376Z ##[endgroup] +2022-11-22T05:59:54.0666075Z ##[group]/datum/unit_test/find_reference_exotic +2022-11-22T05:59:54.0667801Z +2022-11-22T05:59:54.0668446Z PASS /datum/unit_test/find_reference_exotic 0s +2022-11-22T05:59:54.0669104Z ##[endgroup] +2022-11-22T05:59:54.0824375Z ##[group]/datum/unit_test/find_reference_esoteric +2022-11-22T05:59:54.0827948Z +2022-11-22T05:59:54.0828897Z PASS /datum/unit_test/find_reference_esoteric 0s +2022-11-22T05:59:54.0831682Z ##[endgroup] +2022-11-22T05:59:54.0985304Z ##[group]/datum/unit_test/find_reference_null_key_entry +2022-11-22T05:59:54.0986412Z +2022-11-22T05:59:54.0989135Z PASS /datum/unit_test/find_reference_null_key_entry 0s +2022-11-22T05:59:54.0989794Z ##[endgroup] +2022-11-22T05:59:54.1142690Z ##[group]/datum/unit_test/find_reference_assoc_investigation +2022-11-22T05:59:54.1144882Z +2022-11-22T05:59:54.1145600Z PASS /datum/unit_test/find_reference_assoc_investigation 0s +2022-11-22T05:59:54.1146288Z ##[endgroup] +2022-11-22T05:59:54.1488133Z ##[group]/datum/unit_test/find_reference_static_investigation +2022-11-22T05:59:54.3399002Z +2022-11-22T05:59:54.3403994Z PASS /datum/unit_test/find_reference_static_investigation 0.2s +2022-11-22T05:59:54.3407766Z ##[endgroup] +2022-11-22T05:59:54.5076371Z ##[group]/datum/unit_test/area_contents +2022-11-22T05:59:55.8000804Z +2022-11-22T05:59:55.8001526Z PASS /datum/unit_test/area_contents 1.2s +2022-11-22T05:59:55.8002197Z ##[endgroup] +2022-11-22T05:59:57.0666199Z ##[group]/datum/unit_test/mapload_space_verification +2022-11-22T05:59:57.6160655Z +2022-11-22T05:59:57.6161803Z PASS /datum/unit_test/mapload_space_verification 0.6s +2022-11-22T05:59:57.6162718Z ##[endgroup] +2022-11-22T05:59:58.1323397Z ##[group]/datum/unit_test/monkey_business +2022-11-22T06:00:35.7184860Z +2022-11-22T06:00:35.7185899Z PASS /datum/unit_test/monkey_business 37.6s +2022-11-22T06:00:35.7186595Z ##[endgroup] +2022-11-22T06:00:37.5877549Z ##[group]/datum/unit_test/create_and_destroy +2022-11-22T06:05:59.0302461Z +2022-11-22T06:05:59.0303736Z PASS /datum/unit_test/create_and_destroy 321.5s +2022-11-22T06:05:59.0304705Z ##[endgroup] +2022-11-22T06:05:59.0560174Z Shutting down Chat subsystem... +2022-11-22T06:05:59.0560975Z Shutting down Init Profiler subsystem... +2022-11-22T06:05:59.0561903Z Shutting down Ban Cache subsystem... +2022-11-22T06:05:59.0562231Z Shutting down Stat Panels subsystem... +2022-11-22T06:05:59.0562518Z Shutting down Explosions subsystem... +2022-11-22T06:05:59.0562810Z Shutting down Pathfinder subsystem... +2022-11-22T06:05:59.0563088Z Shutting down Minor Mapping subsystem... +2022-11-22T06:05:59.0563534Z Shutting down Shuttle subsystem... +2022-11-22T06:05:59.0565078Z Shutting down Lighting subsystem... +2022-11-22T06:05:59.0566480Z Shutting down XKeyScore subsystem... +2022-11-22T06:05:59.0567870Z Shutting down PRISM subsystem... +2022-11-22T06:05:59.0569247Z Shutting down Icon Smoothing subsystem... +2022-11-22T06:05:59.0570863Z Shutting down Assets subsystem... +2022-11-22T06:05:59.0572220Z Shutting down Vote subsystem... +2022-11-22T06:05:59.0573617Z Shutting down Persistent Paintings subsystem... +2022-11-22T06:05:59.0575023Z Shutting down Persistence subsystem... +2022-11-22T06:05:59.0576420Z Shutting down Atmospherics subsystem... +2022-11-22T06:05:59.0577826Z Shutting down Wiremod Composite Templates subsystem... +2022-11-22T06:05:59.0579235Z Shutting down Wet floors subsystem... +2022-11-22T06:05:59.0580595Z Shutting down Weather subsystem... +2022-11-22T06:05:59.0581983Z Shutting down Wardrobe subsystem... +2022-11-22T06:05:59.0583357Z Shutting down Verb Manager subsystem... +2022-11-22T06:05:59.0584713Z Shutting down Tram Process subsystem... +2022-11-22T06:05:59.0586074Z Shutting down Traitor subsystem... +2022-11-22T06:05:59.0587442Z Shutting down Throwing subsystem... +2022-11-22T06:05:59.0588806Z Shutting down tgui subsystem... +2022-11-22T06:05:59.0590275Z Shutting down Supermatter Cascade subsystem... +2022-11-22T06:05:59.0591689Z Shutting down Sun subsystem... +2022-11-22T06:05:59.0593206Z Shutting down Speech Controller subsystem... +2022-11-22T06:05:59.0594635Z Shutting down Space Drift subsystem... +2022-11-22T06:05:59.0596040Z Shutting down Smoke subsystem... +2022-11-22T06:05:59.0597460Z Shutting down Singularity subsystem... +2022-11-22T06:05:59.0598856Z Shutting down Radio subsystem... +2022-11-22T06:05:59.0600239Z Shutting down Radiation subsystem... +2022-11-22T06:05:59.0601840Z Shutting down Projectiles subsystem... +2022-11-22T06:05:59.0603292Z Shutting down Processing subsystem... +2022-11-22T06:05:59.0604868Z Shutting down Points of Interest subsystem... +2022-11-22T06:05:59.0606290Z Shutting down Plumbing subsystem... +2022-11-22T06:05:59.0607708Z Shutting down Ping subsystem... +2022-11-22T06:05:59.0609094Z Shutting down Parallax subsystem... +2022-11-22T06:05:59.0611351Z Shutting down pAI subsystem... +2022-11-22T06:05:59.0611677Z Shutting down Overlay subsystem... +2022-11-22T06:05:59.3302992Z Shutting down Objects subsystem... +2022-11-22T06:05:59.3303354Z Shutting down Obj Tab Items subsystem... +2022-11-22T06:05:59.3303683Z Shutting down NPC Pool subsystem... +2022-11-22T06:05:59.3303994Z Shutting down Night Shift subsystem... +2022-11-22T06:05:59.3304320Z Shutting down Movement Loops subsystem... +2022-11-22T06:05:59.3304653Z Shutting down Movement Handler subsystem... +2022-11-22T06:05:59.3304967Z Shutting down MouseEntered subsystem... +2022-11-22T06:05:59.3305289Z Shutting down Mood subsystem... +2022-11-22T06:05:59.3305578Z Shutting down Mobs subsystem... +2022-11-22T06:05:59.3305883Z Shutting down Materials subsystem... +2022-11-22T06:05:59.3306202Z Shutting down Lua Scripting subsystem... +2022-11-22T06:05:59.3460713Z Shutting down Library Loading subsystem... +2022-11-22T06:05:59.3461033Z Shutting down Lag Switch subsystem... +2022-11-22T06:05:59.3461327Z Shutting down Idling NPC Pool subsystem... +2022-11-22T06:05:59.3461603Z Shutting down Foam subsystem... +2022-11-22T06:05:59.3461857Z Shutting down Fluid subsystem... +2022-11-22T06:05:59.3462121Z Shutting down Fire Burning subsystem... +2022-11-22T06:05:59.3462392Z Shutting down Fast Processing subsystem... +2022-11-22T06:05:59.3462673Z Shutting down Eigenstates subsystem... +2022-11-22T06:05:59.3462939Z Shutting down Disease subsystem... +2022-11-22T06:05:59.3463226Z Shutting down Datum Component System subsystem... +2022-11-22T06:05:59.3463522Z Shutting down Conveyor Belts subsystem... +2022-11-22T06:05:59.3463807Z Shutting down Communications subsystem... +2022-11-22T06:05:59.3464096Z Shutting down Clock Component subsystem... +2022-11-22T06:05:59.3464398Z Shutting down Circuit Components subsystem... +2022-11-22T06:05:59.3464683Z Shutting down Blackmarket subsystem... +2022-11-22T06:05:59.3464965Z Shutting down Basic Avoidance subsystem... +2022-11-22T06:05:59.3465243Z Shutting down Aura Healing subsystem... +2022-11-22T06:05:59.3465499Z Shutting down Augury subsystem... +2022-11-22T06:05:59.3465766Z Shutting down Asset Loading subsystem... +2022-11-22T06:05:59.3466047Z Shutting down Area Contents subsystem... +2022-11-22T06:05:59.3466317Z Shutting down Antag HUDs subsystem... +2022-11-22T06:05:59.3466583Z Shutting down Ambience subsystem... +2022-11-22T06:05:59.3466879Z Shutting down Addiction subsystem... +2022-11-22T06:05:59.3467142Z Shutting down Acid subsystem... +2022-11-22T06:05:59.3467393Z Shutting down Timer subsystem... +2022-11-22T06:05:59.3467655Z Shutting down Sound Loops subsystem... +2022-11-22T06:05:59.3467925Z Shutting down Runechat subsystem... +2022-11-22T06:05:59.3468169Z Shutting down Skills subsystem... +2022-11-22T06:05:59.3468430Z Shutting down Machines subsystem... +2022-11-22T06:05:59.3468688Z Shutting down Language subsystem... +2022-11-22T06:05:59.3468945Z Shutting down Atoms subsystem... +2022-11-22T06:05:59.3498456Z Shutting down Restaurant subsystem... +2022-11-22T06:05:59.3498741Z Shutting down Economy subsystem... +2022-11-22T06:05:59.3499019Z Shutting down Spatial Grid subsystem... +2022-11-22T06:05:59.3499293Z Shutting down Networks subsystem... +2022-11-22T06:05:59.3499567Z Shutting down Time Tracking subsystem... +2022-11-22T06:05:59.3499837Z Shutting down Research subsystem... +2022-11-22T06:05:59.3500105Z Shutting down Early Assets subsystem... +2022-11-22T06:05:59.3500360Z Shutting down Mapping subsystem... +2022-11-22T06:05:59.3500639Z Shutting down Trading Card Game subsystem... +2022-11-22T06:05:59.3500911Z Shutting down Ticker subsystem... +2022-11-22T06:05:59.3510965Z Unable to locate admins backup file. +2022-11-22T06:05:59.3520958Z Shutting down AI Controller Ticker subsystem... +2022-11-22T06:05:59.3521311Z Shutting down AI Behavior Ticker subsystem... +2022-11-22T06:05:59.3521671Z Shutting down AI movement subsystem... +2022-11-22T06:05:59.3521947Z Shutting down Jobs subsystem... +2022-11-22T06:05:59.3522221Z Shutting down IDs and Access subsystem... +2022-11-22T06:05:59.3522494Z Shutting down Events subsystem... +2022-11-22T06:05:59.3522763Z Shutting down Reagents subsystem... +2022-11-22T06:05:59.3523011Z Shutting down Quirks subsystem... +2022-11-22T06:05:59.3523274Z Shutting down Station subsystem... +2022-11-22T06:05:59.3523543Z Shutting down Achievements subsystem... +2022-11-22T06:05:59.3523814Z Shutting down Discord subsystem... +2022-11-22T06:05:59.3524084Z Shutting down Security Level subsystem... +2022-11-22T06:05:59.3524367Z Shutting down Vis contents overlays subsystem... +2022-11-22T06:05:59.3524654Z Shutting down Greyscale subsystem... +2022-11-22T06:05:59.3524926Z Shutting down Instruments subsystem... +2022-11-22T06:05:59.3525192Z Shutting down Sounds subsystem... +2022-11-22T06:05:59.3525449Z Shutting down Input subsystem... +2022-11-22T06:05:59.3525704Z Shutting down Server Tasks subsystem... +2022-11-22T06:05:59.3525973Z Shutting down Blackbox subsystem... +2022-11-22T06:05:59.3532540Z Shutting down Database subsystem... +2022-11-22T06:05:59.3536259Z Shutting down Garbage subsystem... +2022-11-22T06:06:02.5929884Z Shutting down Title Screen subsystem... +2022-11-22T06:06:02.5938646Z Shutting down Profiler subsystem... +2022-11-22T06:06:02.5938959Z Shutdown complete +2022-11-22T06:06:02.5939212Z Test run failed! +2022-11-22T06:06:02.5939464Z Unit Tests failed! +2022-11-22T06:06:05.8501499Z cat: ci_test/data/logs/ci/clean_run.lk: No such file or directory +2022-11-22T06:06:05.8510694Z ##[error]Process completed with exit code 1. +2022-11-22T06:06:05.8571091Z ##[group]Run actions/upload-artifact@v3 +2022-11-22T06:06:05.8571371Z with: +2022-11-22T06:06:05.8571578Z name: test_artifacts_metastation +2022-11-22T06:06:05.8571829Z path: data/screenshots_new/ +2022-11-22T06:06:05.8572069Z retention-days: 1 +2022-11-22T06:06:05.8572302Z if-no-files-found: warn +2022-11-22T06:06:05.8572537Z ##[endgroup] +2022-11-22T06:06:05.9542976Z With the provided path, there will be 85 files uploaded +2022-11-22T06:06:05.9547799Z Starting artifact upload +2022-11-22T06:06:05.9548728Z For more detailed logs during the artifact upload process, enable step-debugging: https://docs.github.com/actions/monitoring-and-troubleshooting-workflows/enabling-debug-logging#enabling-step-debug-logging +2022-11-22T06:06:05.9549251Z Artifact name is valid! +2022-11-22T06:06:06.0022749Z Container for artifact "test_artifacts_metastation" successfully created. Starting upload of file(s) +2022-11-22T06:06:09.2441638Z Total size of all the files uploaded is 138917 bytes +2022-11-22T06:06:09.2447148Z File upload process has finished. Finalizing the artifact upload +2022-11-22T06:06:09.2805430Z Artifact has been finalized. All files have been successfully uploaded! +2022-11-22T06:06:09.2806662Z +2022-11-22T06:06:09.2807159Z The raw size of all the files that were specified for upload is 139272 bytes +2022-11-22T06:06:09.2807708Z The size of all the files that were uploaded is 138917 bytes. This takes into account any gzip compression used to reduce the upload size, time and storage +2022-11-22T06:06:09.2808041Z +2022-11-22T06:06:09.2808979Z Note: The size of downloaded zips can differ significantly from the reported size. For more information see: https://github.com/actions/upload-artifact#zipped-artifact-downloads +2022-11-22T06:06:09.2809397Z +2022-11-22T06:06:09.2812047Z Artifact test_artifacts_metastation has been successfully uploaded! +2022-11-22T06:06:09.2918500Z Post job cleanup. +2022-11-22T06:06:09.4177546Z [command]/usr/bin/git version +2022-11-22T06:06:09.4226862Z git version 2.38.1 +2022-11-22T06:06:09.4272386Z Temporarily overriding HOME='/home/runner/work/_temp/3651e392-e3ad-4441-afa8-7ee48fcb17c5' before making global git config changes +2022-11-22T06:06:09.4273477Z Adding repository directory to the temporary git global config as a safe directory +2022-11-22T06:06:09.4278058Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/tgstation/tgstation +2022-11-22T06:06:09.4318612Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand +2022-11-22T06:06:09.4355928Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || : +2022-11-22T06:06:09.4604637Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader +2022-11-22T06:06:09.4633829Z http.https://github.com/.extraheader +2022-11-22T06:06:09.4644074Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader +2022-11-22T06:06:09.4679820Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || : +2022-11-22T06:06:09.5065985Z Print service container logs: 57e9ed27eab042ee8653063f2a3e4b8e_mysqllatest_56fbdc +2022-11-22T06:06:09.5071674Z ##[command]/usr/bin/docker logs --details 46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df +2022-11-22T06:06:09.5286568Z 2022-11-22T05:53:56.868118Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead. +2022-11-22T06:06:09.5287137Z 2022-11-22 05:53:56+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.31-1.el8 started. +2022-11-22T06:06:09.5287504Z 2022-11-22 05:53:56+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql' +2022-11-22T06:06:09.5287896Z 2022-11-22 05:53:56+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.31-1.el8 started. +2022-11-22T06:06:09.5288258Z 2022-11-22 05:53:56+00:00 [Note] [Entrypoint]: Initializing database files +2022-11-22T06:06:09.5289019Z 2022-11-22T05:53:56.868208Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.31) initializing of server in progress as process 81 +2022-11-22T06:06:09.5289439Z 2022-11-22 05:54:00+00:00 [Note] [Entrypoint]: Database files initialized +2022-11-22T06:06:09.5289930Z 2022-11-22T05:53:56.874552Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. +2022-11-22T06:06:09.5290557Z 2022-11-22 05:54:00+00:00 [Note] [Entrypoint]: Starting temporary server +2022-11-22T06:06:09.5291047Z 2022-11-22T05:53:57.197629Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. +2022-11-22T06:06:09.5291408Z 2022-11-22 05:54:00+00:00 [Note] [Entrypoint]: Temporary server started. +2022-11-22T06:06:09.5291988Z 2022-11-22T05:53:58.200181Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option. +2022-11-22T06:06:09.5292452Z '/var/lib/mysql/mysql.sock' -> '/var/run/mysqld/mysqld.sock' +2022-11-22T06:06:09.5293070Z 2022-11-22T05:54:00.332994Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead. +2022-11-22T06:06:09.5293480Z +2022-11-22T06:06:09.5293901Z 2022-11-22T05:54:00.334950Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.31) starting as process 130 +2022-11-22T06:06:09.5294357Z 2022-11-22 05:54:02+00:00 [Note] [Entrypoint]: Stopping temporary server +2022-11-22T06:06:09.5294846Z 2022-11-22T05:54:00.346343Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. +2022-11-22T06:06:09.5295201Z 2022-11-22 05:54:03+00:00 [Note] [Entrypoint]: Temporary server stopped +2022-11-22T06:06:09.5295682Z 2022-11-22T05:54:00.487954Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. +2022-11-22T06:06:09.5295962Z +2022-11-22T06:06:09.5296368Z 2022-11-22T05:54:00.674850Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. +2022-11-22T06:06:09.5296761Z 2022-11-22 05:54:03+00:00 [Note] [Entrypoint]: MySQL init process done. Ready for start up. +2022-11-22T06:06:09.5297625Z 2022-11-22T05:54:00.674889Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel. +2022-11-22T06:06:09.5297989Z +2022-11-22T06:06:09.5298506Z 2022-11-22T05:54:00.677758Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory. +2022-11-22T06:06:09.5299158Z 2022-11-22T05:54:00.693697Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: /var/run/mysqld/mysqlx.sock +2022-11-22T06:06:09.5299767Z 2022-11-22T05:54:00.694297Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.31' socket: '/var/run/mysqld/mysqld.sock' port: 0 MySQL Community Server - GPL. +2022-11-22T06:06:09.5300346Z Warning: Unable to load '/usr/share/zoneinfo/iso3166.tab' as time zone. Skipping it. +2022-11-22T06:06:09.5300968Z Warning: Unable to load '/usr/share/zoneinfo/leapseconds' as time zone. Skipping it. +2022-11-22T06:06:09.5301453Z Warning: Unable to load '/usr/share/zoneinfo/tzdata.zi' as time zone. Skipping it. +2022-11-22T06:06:09.5301932Z Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it. +2022-11-22T06:06:09.5302399Z Warning: Unable to load '/usr/share/zoneinfo/zone1970.tab' as time zone. Skipping it. +2022-11-22T06:06:09.5302918Z 2022-11-22T05:54:02.435269Z 10 [System] [MY-013172] [Server] Received SHUTDOWN from user root. Shutting down mysqld (Version: 8.0.31). +2022-11-22T06:06:09.5303480Z 2022-11-22T05:54:03.189926Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.31) MySQL Community Server - GPL. +2022-11-22T06:06:09.5304121Z 2022-11-22T05:54:03.676610Z 0 [Warning] [MY-011068] [Server] The syntax '--skip-host-cache' is deprecated and will be removed in a future release. Please use SET GLOBAL host_cache_size=0 instead. +2022-11-22T06:06:09.5304722Z 2022-11-22T05:54:03.678566Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.31) starting as process 1 +2022-11-22T06:06:09.5305204Z 2022-11-22T05:54:03.685173Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. +2022-11-22T06:06:09.5305655Z 2022-11-22T05:54:03.828263Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. +2022-11-22T06:06:09.5306116Z 2022-11-22T05:54:03.993458Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. +2022-11-22T06:06:09.5306666Z 2022-11-22T05:54:03.993495Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel. +2022-11-22T06:06:09.5307354Z 2022-11-22T05:54:03.994531Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory. +2022-11-22T06:06:09.5308031Z 2022-11-22T05:54:04.011801Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock +2022-11-22T06:06:09.5308675Z 2022-11-22T05:54:04.011928Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.31' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL. +2022-11-22T06:06:09.5341028Z Stop and remove container: 57e9ed27eab042ee8653063f2a3e4b8e_mysqllatest_56fbdc +2022-11-22T06:06:09.5349945Z ##[command]/usr/bin/docker rm --force 46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df +2022-11-22T06:06:09.7815354Z 46227faa62763969a068baae79fb2a9335a09ba7482aae30a49c8fed2bf356df +2022-11-22T06:06:09.7841366Z Remove container network: github_network_7853d588c20f407bba7b04c3e70db729 +2022-11-22T06:06:09.7846737Z ##[command]/usr/bin/docker network rm github_network_7853d588c20f407bba7b04c3e70db729 +2022-11-22T06:06:09.8812686Z github_network_7853d588c20f407bba7b04c3e70db729 +2022-11-22T06:06:09.8962630Z Cleaning up orphan processes diff --git a/tools/pull_request_hooks/package.json b/tools/pull_request_hooks/package.json new file mode 100644 index 000000000000..bedb411a9124 --- /dev/null +++ b/tools/pull_request_hooks/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} diff --git a/tools/pull_request_hooks/rerunFlakyTests.js b/tools/pull_request_hooks/rerunFlakyTests.js new file mode 100644 index 000000000000..d3085a67260b --- /dev/null +++ b/tools/pull_request_hooks/rerunFlakyTests.js @@ -0,0 +1,298 @@ +const LABEL = "🤖 Flaky Test Report"; +const TITLE_BOT_HEADER = "title: "; + +// Only check jobs that start with these. +// Helps make sure we don't restart something like screenshot tests or linters, which are not known to be flaky. +const CONSIDERED_JOBS = [ + "Integration Tests", +]; + +async function getFailedJobsForRun(github, context, workflowRunId, runAttempt) { + const jobs = await github.paginate( + github.rest.actions.listJobsForWorkflowRunAttempt, + { + owner: context.repo.owner, + repo: context.repo.repo, + run_id: workflowRunId, + attempt_number: runAttempt + }, + response => { + return response.data; + }); + + return jobs + .filter((job) => job.conclusion === "failure"); +} + +export async function rerunFlakyTests({ github, context }) { + const failingJobs = await getFailedJobsForRun( + github, + context, + context.payload.workflow_run.id, + context.payload.workflow_run.run_attempt + ); + + const filteredFailingJobs = failingJobs.filter((job) => { + console.log(`Failing job: ${job.name}`) + return CONSIDERED_JOBS.some((title) => job.name.startsWith(title)); + }); + if (filteredFailingJobs.length === 0) { + console.log("Failing jobs are NOT designated flaky. Not rerunning."); + return; + } + + console.log(`Rerunning job: ${filteredFailingJobs[0].name}`); + + github.rest.actions.reRunWorkflowFailedJobs({ + owner: context.repo.owner, + repo: context.repo.repo, + run_id: context.payload.workflow_run.id, + }); +} + +// Tries its best to extract a useful error title and message for the given log +export function extractDetails(log) { + // Strip off timestamp + const lines = log.split(/^[0-9.:T\-]*?Z /gm); + + const failureRegex = /^\t?FAILURE #(?[0-9]+): (?.+)/; + const groupRegex = /^##\[group\](?.+)/; + + const failures = []; + let lastGroup = "root"; + let loggingFailure; + + const newFailure = (failureMatch) => { + const { headline } = failureMatch.groups; + + loggingFailure = { + headline, + group: lastGroup.replace("/datum/unit_test/", ""), + details: [], + }; + }; + + for (const line of lines) { + const groupMatch = line.match(groupRegex); + if (groupMatch) { + lastGroup = groupMatch.groups.group.trim(); + continue; + } + + const failureMatch = line.match(failureRegex); + + if (loggingFailure === undefined) { + if (!failureMatch) { + continue; + } + + newFailure(failureMatch); + } else if (failureMatch || line.startsWith("##")) { + failures.push(loggingFailure); + loggingFailure = undefined; + + if (failureMatch) { + newFailure(failureMatch); + } + } else { + loggingFailure.details.push(line.trim()); + } + } + + // We had no logged failures, there's not really anything we can do here + if (failures.length === 0) { + return { + title: "Flaky test failure with no obvious source", + failures, + }; + } + + // We *could* create multiple failures for multiple groups. + // This would be important if we had multiple flaky tests at the same time. + // I'm choosing not to because it complicates this logic a bit, has the ability to go terribly wrong, + // and also because there's something funny to me about that increasing the urgency of fixing + // flaky tests. If it becomes a serious issue though, I would not mind this being fixed. + const uniqueGroups = new Set(failures.map((failure) => failure.group)); + + if (uniqueGroups.size > 1) { + return { + title: `Multiple flaky test failures in ${Array.from(uniqueGroups) + .sort() + .join(", ")}`, + failures, + }; + } + + const failGroup = failures[0].group; + + if (failures.length > 1) { + return { + title: `Multiple errors in flaky test ${failGroup}`, + failures, + }; + } + + const failure = failures[0]; + + // Common patterns where we can always get a detailed title + const runtimeMatch = failure.headline.match(/Runtime in .+?: (?.+)/); + if (runtimeMatch) { + const runtime = runtimeMatch.groups.error.trim(); + + const invalidTimerMatch = runtime.match(/^Invalid timer:.+object:(?[^[]+).*delegate:(?.+?), source:/); + if (invalidTimerMatch) { + return { + title: `Flaky test ${failGroup}: Invalid timer: ${invalidTimerMatch.groups.proc.trim()} on ${invalidTimerMatch.groups.object.trim()}`, + failures, + }; + } + + return { + title: `Flaky test ${failGroup}: ${runtime}`, + failures, + }; + } + + const hardDelMatch = failure.headline.match(/^(?\/[\w/]+) hard deleted .* times out of a total del count of/); + if (hardDelMatch) { + return { + title: `Flaky hard delete: ${hardDelMatch.groups.object}`, + failures, + }; + } + + // Try to normalize the title and remove anything that might be variable + const normalizedError = failure.headline.replace(/\s*at .+?:[0-9]+.*/g, ""); // " at code.dm:123" + + return { + title: `Flaky test ${failGroup}: ${normalizedError}`, + failures, + }; +} + +async function getExistingIssueId(graphql, context, title) { + // Hope you never have more than 100 of these open! + const { + repository: { + issues: { nodes: openFlakyTestIssues }, + }, + } = await graphql( + ` + query ($owner: String!, $repo: String!, $label: String!) { + repository(owner: $owner, name: $repo) { + issues( + labels: [$label] + first: 100 + orderBy: { field: CREATED_AT, direction: DESC } + states: [OPEN] + ) { + nodes { + number + title + body + } + } + } + } + `, + { + owner: context.repo.owner, + repo: context.repo.repo, + label: LABEL, + } + ); + + const exactTitle = openFlakyTestIssues.find((issue) => issue.title === title); + if (exactTitle !== undefined) { + return exactTitle.number; + } + + const foundInBody = openFlakyTestIssues.find((issue) => + issue.body.includes(``) + ); + if (foundInBody !== undefined) { + return foundInBody.number; + } + + return undefined; +} + +function createBody({ title, failures }, runUrl) { + return ` + + + + Flaky tests were detected in [this test run](${runUrl}). This means that there was a failure that was cleared when the tests were simply restarted. + + Failures: + \`\`\` + ${failures + .map( + (failure) => + `${failure.group}: ${failure.headline}\n\t${failure.details.join("\n")}` + ) + .join("\n")} + \`\`\` + `.replace(/^\s*/gm, ""); +} + +export async function reportFlakyTests({ github, context }) { + const failedJobsFromLastRun = await getFailedJobsForRun( + github, + context, + context.payload.workflow_run.id, + context.payload.workflow_run.run_attempt - 1 + ); + + const filteredFailingJobs = failedJobsFromLastRun.filter((job) => { + console.log(`Failing job: ${job.name}`) + return CONSIDERED_JOBS.some((title) => job.name.startsWith(title)); + }); + + // This could one day be relaxed if we face serious enough flaky test problems, so we're going to loop anyway + if (filteredFailingJobs.length !== 1) { + console.log( + "Multiple jobs failing after retry, assuming maintainer rerun." + ); + + return; + } + + for (const job of filteredFailingJobs) { + const { data: log } = + await github.rest.actions.downloadJobLogsForWorkflowRun({ + owner: context.repo.owner, + repo: context.repo.repo, + job_id: job.id, + }); + + const details = extractDetails(log); + + const existingIssueId = await getExistingIssueId( + github.graphql, + context, + details.title + ); + + if (existingIssueId !== undefined) { + // Maybe in the future, if it's helpful, update the existing issue with new links + console.log(`Existing issue found: #${existingIssueId}`); + return; + } + + await github.rest.issues.create({ + owner: context.repo.owner, + repo: context.repo.repo, + title: details.title, + labels: [LABEL], + body: createBody( + details, + `https://github.com/${context.repo.owner}/${ + context.repo.repo + }/actions/runs/${context.payload.workflow_run.id}/attempts/${ + context.payload.workflow_run.run_attempt - 1 + }` + ), + }); + } +} diff --git a/tools/pull_request_hooks/rerunFlakyTests.test.js b/tools/pull_request_hooks/rerunFlakyTests.test.js new file mode 100644 index 000000000000..6a3300ff59be --- /dev/null +++ b/tools/pull_request_hooks/rerunFlakyTests.test.js @@ -0,0 +1,45 @@ +import { strict as assert } from "node:assert"; +import fs from "node:fs"; +import { extractDetails } from "./rerunFlakyTests.js"; + +function extractDetailsFromPayload(filename) { + return extractDetails( + fs.readFileSync(`tests/flakyTestPayloads/${filename}.txt`, { + encoding: "utf8", + }) + ); +} + +const chatClient = extractDetailsFromPayload("chat_client"); +assert.equal( + chatClient.title, + "Flaky hard delete: /datum/computer_file/program/chatclient" +); +assert.equal(chatClient.failures.length, 1); + +const monkeyBusiness = extractDetailsFromPayload("monkey_business"); +assert.equal( + monkeyBusiness.title, + "Flaky test monkey_business: Cannot execute null.resolve()." +); +assert.equal(monkeyBusiness.failures.length, 1); + +const shapeshift = extractDetailsFromPayload("shapeshift"); +assert.equal( + shapeshift.title, + "Multiple errors in flaky test shapeshift_spell" +); +assert.equal(shapeshift.failures.length, 16); + +const multipleFailures = extractDetailsFromPayload("multiple_failures"); +assert.equal( + multipleFailures.title, + "Multiple flaky test failures in more_shapeshift_spell, shapeshift_spell" +); +assert.equal(multipleFailures.failures.length, 2); + +const invalidTimer = extractDetailsFromPayload("invalid_timer"); +assert.equal( + invalidTimer.title, + "Flaky test monkey_business: Invalid timer: /datum/looping_sound/proc/start_sound_loop() on /datum/looping_sound/showering" +); From 5339b1b5104c364023f4f9e9db5c38056d8bd6ef Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 7 Oct 2024 15:44:42 -0500 Subject: [PATCH 126/167] Automatic changelog generation for PR #3395 [ci skip] --- html/changelogs/AutoChangeLog-pr-3395.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3395.yml diff --git a/html/changelogs/AutoChangeLog-pr-3395.yml b/html/changelogs/AutoChangeLog-pr-3395.yml new file mode 100644 index 000000000000..e7146487ce7f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3395.yml @@ -0,0 +1,4 @@ +author: FalloutFalcon, Mothblocks, Cyberboss +changes: + - {rscadd: retry failed unit tests.} +delete-after: true From 38fc255b3d0b912a0805598dce6f359011470ddf Mon Sep 17 00:00:00 2001 From: rye-rice <58402542+rye-rice@users.noreply.github.com> Date: Mon, 7 Oct 2024 13:34:07 -0700 Subject: [PATCH 127/167] Resprites wisp (#3488) # please please, please do not port this to tg or a non-ship server. this is me asking nicely to not to, i do not want this on a non-shiptest-like server ## About The Pull Request ![image](https://github.com/user-attachments/assets/dc29e3a3-ede5-4d32-87db-491afe04259b) Resprites wisp part of project re:hair ![Screenshot_18092](https://github.com/user-attachments/assets/047f75e1-e064-47d8-9ca1-dc90a3188e2e) ## Why It's Good For The Game hi thrax ## Changelog :cl: rye-rice, Imaginos16 add: Resprites Wisp /:cl: Co-authored-by: retlaw34 <58402542+retlaw34@users.noreply.github.com> --- icons/mob/human_face.dmi | Bin 103505 -> 103088 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index a819dd3ca7802824ac557e8065a4194dd21fb494..ab667d8d93371a02091ee08e2c65a190a5b9ad56 100644 GIT binary patch delta 39064 zcmZ6zc|4Ts8$UjlkgO?5*-Is%#gaWlIhGQVJw>vNvhNSsk|ak`$)0RYNXR-Q6xm`7 z24e|jjD3u4_+4{8-|zR2pO@3C%wnGBzV7ROZ`bL`XDP{LDZ#EIWn*7Hsu(U3f9$D} z9SHxX`-r(?&w*1(FWX+;{b4?6QaM#nIRE6NhR+z?@iMVaZF5z(t{361ojmZo197^JF~40l$aNI8 zHn}mAeyGE#%%||i*0pW)MU5a^R6~qN$jNTdXYI+rjCaJ}4K(a!dEtlTUZT z!?lZwzfC^m;NWO*DHBU+ckjYFlr{GB_P!A)9d!G;x$(|fS?MSjJmqPm)&u1 zSyidjj_B@nr6!8ySlp8Y+-FB!-9D|wrz+l6l&M=2)hjiu zmX?;ef@8u+wp_Q6ACA?rL{eW-wr_u``d~T}(NFSutMm|IWTG({Z<9o8g?DoF zbC-#%EG(fs9L(|cyLXmesk&rfM$o;+yV#62%rt*sNS$R<_we@H;h~|gZEfstjZWz2 z?mzdMLz;iz&bl3~G?9{!H+k-p;3b>Bha0ckZ9;^CeYej4{kxPYCTL+{(Lk-=s*|8p z_f1V2tD`$w(1Aq6^>63Ds_b<{GC%*JcYhGJDt%aLM))`8;Vo&3QW^#Eno?X|&TY^3!rpX`X(}YnkJiDDYq;gIr>`>fg`37E-KY>VSHzmDN zJ{zu1OwwSSJn6riL!BB}7g&x`{rAVQdfL~@s*%{oe@aV`1+NAYMLCj3PcoQ^Fe9;t zk>P?MCmHW>OkCVVeP{J1TyNt9s;N@!=1g&0)WvXIxtRsVJlaECJn+MSFh!*BA0c-% zdLlW+?xLriZPlWRY!B?+dIhU8#k>S0R|J3ftk9hb_|NSzthnH9FwXo9O)ap@R zIe~92EiBui8l7*|C3fZ)c8$2WxkX+djw!amN+K&8saC$efrdXbG;{Hit;-)$-&$E0Ic8$nw^)IR~Y`g-Y&s; z2^Nn2l`VVEPP;qyfA9OpJ}C`rpHzh1hx|D!r>Jp4qUZ73)QqIr1$6oG{qf!yPBI}g z)u*P425Y(GlZlcMbCgWIKXU9{k8GBKf&}bfQ}W~HJLi%*1Y9E`-EeNZBc>s6O`C7k zyv*;OJIox>XpWkHX&@PK<$`!u`o+@*IMZ;&3xfL_?YsR^^B<0Iuo%8P!HAMZMsEH4 zkKfDR$;QP3yBt??Z=6ei+-|CT9RJnT^L*9)51dk7!(Rd>zt4Ff>pd~&YK31Gc(+|i z{b++dPKwth`I0x!9dgyVv&4-7!1%?x#~(zIhS!e=3cGnURNQsQ&5s z!KXj(o`dqnRBLN%JA2%a(r~yLW%oLtzzxyP5tAT4){*eMdlzAb6+?BqL=+66 zp6lm!69{o`3UT&wY<#4T706Z~lUzN`W4Klfwi0S=A}X$hh>#ha*M>hVZDQ*-t?ri% zibiT8hz3-lDmtOm-LAkCj-PJl3(wo97Fn^otSuFdfp=|QwmU-K`+&hTl6@yh*cBfM z$}R!f^;kx}#qvR^hqX^><@7Y*if+RBwYce8?CP#9nVJ}@!&qR-E}Xzh2^4~xRze`7 zeul6T>-=t-7nz|n&%OTE-OU60-dg66PKSSC*My(W?#MJO#I<=SLtZW*qG@4SY}mWZfLFWCma_?xme*AxS6N+ zpU@JDyf$8AEmIk)e3Z*n>fq|yn#;a%{71Va-x{H;Yi#Nn+|3TWRn}Z#uXzLzTke0b zMDAjI+?8XWChO76_NR`+8wIP2h$lW?Q-Df1cYs|iqe~*C{nBS4k8`CvehVYXGAaAu zI}|H2<#{;QWN+AO+01WFTGb=yFV-^0lCGi%U6)ENzAfEpt=S(of>wmjXHxKD&7H^i z+f+jX3XZn6spV%|2J@(=NPPTlXz;Digqnti1m7nZAK7B84qEv5_SLHf_<^LPWXY#b zkCILp31Wy<2IYEGUuQe2QMGGVN7oN~xyR$Gw3zFv|rbF_9PL9JRRSo>^3p z{m3JyM^iaX_v8VslLx*oFMmoDRfX;l6d1@8uPYWgFz>ywtgnBcv07PS9UUFyoTWEksh0kRjG9^38h-uSFP_NurbBYhSLNM{nzf(8 z@7ES>P98vfhi9l;<@lTK*RUz=j)3Pr6cn9?&*@tgAftz`cS7_n>A3<-71&&0w5T^4Sve+(i7fK}CN}k8=aMveGs~xx6^% z#r|adJ+P0V)BGWkdaF6Vl5YQfpu`i`{9p#@6gm*s+#iB-!F?xT&5M6HmBn_cZ*er* z^Hh2eTh`atKW3TUq;)O|aj;yMN_pCMlfmD?!J*X?C!9veIv-r*o1Z#ABPzh*08nye zWo4c0fy4#YjViMRlKRi2~eCk{lka6r4}3!5fMCE$Y-rm zqden`=okBYoDaY^oP+|x!stB@NAj4V^J^DIq!kqvVHVT6W~`{B4_JQNBsk2e^CL~u z(~_|LKbW7Uw;m#~xK14vyi79w-Pd-*|Gh5RabtV z?^Zi%9p!=g?o@`V(4Im5{5cs$zWrC3wA+diOX~Kj;iK4FRTr%C7XZ;f3^{^G&qjsUDZpRj(lGy6Wh+p&qw7^WtR+ZQJd_}>S zQ5O54E&P#qq4Ao!HBvD)th{`kiBO*kP0?TV85Gz9rKeDD6p9bMI-z1x+Qrh07G}oR z4E1A83YbqFmwqYxCe&ji-5~dd$xJtQ^W@s&U@_T+(VEk7&Ejz1+NRFUQj`Uec$U5r zIiW}%`lWi=1sM&vDGXP6u|nsE?U<~e>tkwE3BRv1LWmMbtH1V9TRkJ@#eR4!N{ay+ z0JK2{MDqaqo=7b*_j2tl9`-0k#+|V5Gb_+(zE63=ZO+HJ49!Zpyl8bLh8V5~tN-@A z__M2Pfo)t8jwA#Y#?9TGAuJIes&eXhAx;WVf1mS<((YIJrc!{%@aFghs>Evp2iSbj zwmY1>T4`x&6UuC2qv`<@@4f{8{e-FrO8aPseFmL{Tpmu&EMm-mu^(uS-~4dn*RPKf zH>FU;7|d-?&t-R?8+BdEL0NeT#{1x~HeI(vtgIq&tsJq3o2&OFX0%xu8BlhS9u$>KjWFG8-oqR$ysrXHU}6Y<0=V{|eI6_1WufL?)^6uhIY zKsnc}k4139)~1keciHVKo8P=yT2g{aXw9LN-K=^r&ZxdMcODKiXb^YQh-9a(jwki? z>TF^>Trt;A9$5UFmoYKX95>_&bf(;rQ%z0He<|uvbNATulPT>O>U$Y<<&nfI%<37% z2QM6nXW87`6wTE!HcqHOhG3;(5#d2N9g~uht{mHss?bP+jxHDXZDilReSiM`y(uumKTlN$Sezu?iLx5jAot&q^3i-`1& z++}gz^^i~oRF?*|7CPzxa8Mxfya}!G%-3+F?O}X6-=Xv>QNTH{2xa|p-f4g~1mjzt zNpzU#!`Uk>EiIa?f8T?tB;;6du$wiM^p#T&L)U6i72MAX(s_gw6cnCA`_gN`amCCkZ6KUz4t9x*%xiOmA+d@%q_b;qtJvmHUfYz0r$d&tj!Hpsu1!b zcpUV`SWv0BHGcbf)wxdP-qyV4-@ktov>sRb^q)!A2R=jJ4u7^k%J(qQ_rCS5TbDpk z;0(Iiw~=3oCXu4{#z#l8S1F>0>6kIQC%+U~>B`s|@?u2U1}+`HE|q)@0)55gZJIldi*09D=RD5+|ZQ`Bp+@pJ4(ySN(d)3El^!O znzpx9wX%42I(FAQbk4ojQ5E(e`@I?9D%5qpaICMf1lh&z290}G$tf!4mHQSTrdohE zFy;|>Qgd#x?NDj`Y}gkWs0Wvf6R929JKFd=I_bRl{#g6FcbTD$QDyMe5 zPaM>g4Way7Vj=xXO_8u!Q1?gs?ZpsXzbapmuLz8N88;LDL_;EdJb6if0(@%`7~y(0WOZ$&5_?r6xl7(;0GQ9B(R0Rm??ia^%Mf=umb(w#YaX(%GZ^U zQ{h2m*sdy8I{~<2c|*02XKqBD$D7oWGH>f`sEWT2+k4I@{l34N^of=epDXS-1Z(|X z2>@ax#vdmJ1$*serX@yPfJ5+gWV=hb!%lxKv;DSw<&kox#c@3meVduxlK>vY(;qMR z@7TeXLqH-dDKF0rVf?o-{8FM(9&cQ8MNkcT5>KIvq;n;X2?F9 zD$x?xCc>H=rlLl+uy;fID3g>=!lGb40vpTXr3q z$n?*{655#|>LTfN>vJI_ObzwOz)rnSmGzh44bL1)4E-#J1LuTs`UfPa&emNG+Xk@e z>$qI#+DgWcn^;;QtPlvWL!|lX?YRJGOL9s|kMVXvHrpM$TZ*1uUVM2*X}>I~m()H; z24?xWMs%iA>HM;1W1Y-;#9(!EA-B$VhT%D&CW#JxBvY*=#WwirXKqCk?J@%;sCc;$ za+h9d?I&r(ka?*t(BH5_b7!vkUUQsm?a991Ua)29!tZ;h26cT_+o3%Xja$)?f8{PH zdE0UFH5&73*#iT=*3=2-=wcd?_DoKG-`bz=&iD*Oj2X^`<&9uh@%r#^hT7GMe{4Kb z_j1KB!I7+M=clizO>H_lRU!0p(5q}>eQ6SbWfVAk_>y>{rZj)kX<4kp+=?CNib55! z^w7aTkY#FDasOyhsbjWcgx}5$2-RaZ?ThCWJ1~i7A{x)=_o{TLx3^cfX(vZe2F|=n_F8wM0_zhU_DM_mycmi{qWG>d1}|skO5(H?Q-Lk zs*Psz`0{ckKmhU9f$p*%!3(Jl=+M%G-*zXuc6H{cqTlOfv~_j#x-f*wcde7*^SnHt z$%;2aC0xq|=MY~N_NYgtioP}IARA*1o6bd4t<2uUP< zPgIisH{D=&NrQH8FrdTZ;CI8Qp566~ow8tZjonY3og`#i({%U+e{Rr1bCOEb$bg7p%QY$TswEqByxk83$HLO`oOy5GF%P>I zd!%z`R?)udP+WSnm1bzTU6Gn2$G4f{&cvkDbEoqgNB(C%CM90A zj#^>aCdKQAK65ws2arjuXXUrIFV(fZ=f0_`>O$5d@4bhDPfS@|^{&}#oQAdzdI3UV zeyVB11^MmZ%Jem~kiWmhk+t(uVGM8oob_{=HpOc^PFGOfO@-&B>y8`^-FY|W`2BzC z;$seb?xf5%^`xh5H<0k(`vNW^uD1ODTpoGB3J$civ;ZV|0AQ-yW_KQ>cT=fGr?T75&TLiIAAN|W z1$QiGWs9Z%p$tfk>7RPIJ@AlB+B!L;?H8otz|pQ)8hNl8ikad*tO=61OyXlC}61mK|DDeX}J0bE@53atOdf3(q7 zKvJ85kJ4qF^71Ha8CC!(F6D(}rjyA=R}Ze`z5sGW-_C%TfW?YMh7lL^U|aUjTq*|< zfC&W@jeZBDk}Y>zbX3xP$0>`?sKoVwFFoWD@}_Z3RCAONVYlz+sT=~9K*{hO3ElOn zQCAx|c9%psA^H@%h7?+v-7mLfKq(Y;T%l3ER~zJ-utjNo38Y8?#D@b0H8%IUOt-Re zczgI6b@%o8dvY2Y+&9EjQ`>DOO{Ix*sU2G7ci=oPRcx5} zmHkt^=FY7mwKtX8Th(}yPanw#)u82cX?ApPsz3&hNVLWa;%0v(h?~$BLGA;22|fHJ z9ACfnrhgNiVzqsY$`>%(cgkN?7_c)i$Sm`s@l6V8eXX({gQ;gHf`EbD#1$jYjq=W( zKhIP%@{F!@(cjI}$gXQ;x$VFjq_bAMe^h242B($zLm0HYM(mEaA4|S6__r>iyC%{pk^yBWRsfHm-Lyig7 z>ve&Gcg@cAfL*^DBy{Fe-V}`+RTcd4AZlA3yM*$6G3%GZIr2e+uDge`!EJ(-nEvGT z>n9k0wTg}O;2~YGvNp$ z=+MymgI{@nS!wK#{~lcy?tFnguXn@Xm|!9+XC^B`_aAQ1PJtwO^_|1}P(VI#H_@ZD zvB0h1gfK^G{81R7UK}H5)f}vUh$NKAEa`05Z-#3&ScH`CfF}ehClIq{hf>_L=G@Ef zWD9G{7w|I>aDa~ETn?hfmi$E{zZBp6T@pfmad! ztN<#(H;1!N6B3vP)J=Q`+^;2ER9AmyAH_^gZjlFi8 z*4w(Z^A5q;+1^5vw=0RYwhJn0btcN6V-h+y!FCxUwel_5RIb>z`}Ez+I)XA~Q#8Y> z!4n@fj;T~@APHJDGOsK}q4-xJ6c}Nwyj(T|d&( z(<_HO(!$rTVz9!uQc#w4A7=9`KN9G!DPm_QGO?tjDs1eku?ps7zbyjLVf{}|f}Fg3 zlu1EfoBExsv%GA~^Q7edEU)|kg;aOP1R#H8wIvq~)A$l7s*d;rvAXZNX0*id^K^}P~1tNu0+7a4X_l`Ijbw18j`DYo>R-(aiqNmbPR9Fyoo>nsG z2CkB+-9r>GbMqp){0ZmRgNrtdb%doN z-MexEk%TGr)e5?^&0LwWo7I@5(KNQUf_;9=|G!^gj=MQtqxQHERakS#-^qz3E-uc) zcTF>OHcCU@OMkAPDIK=|+t;sqENci0h?!l~!kTCyWBxqV9sw!+*#3*23%gobi%uus zRgv})ZsY$xsOMxI?VR#5q10BqJd)3i0(j`*?(SZP>+M~6`D0URyAW$7uTl}yxk;8E zs*IW6^jh)SA1)hhRk>@O@Zq14x(4{cx$Yy*6rCd8S8$tPODdvApI3Kv2p>JFlWTIx zV_}VJ^clj$yGaaHVO+CtHu!L7t09JcT={Y~@7|e1aMU92f1N6*Iib2g9>ls>5U)W} z0x1vZRHlXWS2$+DLhlP;mqx)#LW^yjS!tZ|9Ptx%z^)x^*w_5k>iCOHEx(z7)+mSZ zGsUf2{g(un^C@SaR5FMP#_wF)v(VFn^i&%5v7#yovgw#AsH2WH0ZawErXscn#6zGF0Jng9Dkv&GoJM{g2E9>7Jh2~JgmY1D zLzV{mWp~#6RsWF5mt|74L3}8+&;d(neO(EFXoau$yz{e!_|b-Zlnc6)52b=U z*5kZt7}w00*IR&b!q_GynlgiI2EG_s?Lor~VRA*z;nC0zSMx9;0F7mrWGt|ur*Ohd1^b~~t&=!1Xx+!IuAvf5(9%#0oPo1h(>FM45#izQ+~ zT1KY+)V+6oK1Oc?GZrX2ioBWx?ogkdk2StG6da+J{#`(d@mog6_6L+5cF~V3aSjq5 z(nbdjoaYTyDQ6u=_sv<~<7;YAaa9uPtV9UfUpj}RoHhQ0rcumhZhCmg!hr*RooQ>(r|;Jh1YxQ5$YMgz|t0l)%nf&#Ml+L64=wEyi-3AZ?z%|)JXssK!k&D zPXFsc6eeRy4>nKdMa}+2a}!Zxp4B>S8UL1A7!VA8qq=*0BcP*0I|oA+glJefHZib7 zi;jEC6ic^54OnACg+O(NP6VNxna;F`4k!Be8xH1yQU3Ps^V>CEHT%TID1m3so(;$0 zaQ(>lr=b4BDY8A?=J9*#pA>HL#$sUI0y9&ijo*cc@UaZX=NCVi)ad8+E`VvRIJu+* zK&-UB{u!Jjy%KnW z#WUOKO76@mkw4RB8XCgZQ0%CXkdT(Z8j;Iem$-39KK9zG)k#XyI*^$az-f?zq8s0x zC2JY<-T&A7A~&Uc$HF$+tuphzRB$D$EgwZVIo3D%^pu)*1$$wd*is2?Zbl;s{LLC7(Y-Z%E=r>;~08c09=@KR`F`bhxeECP@``_?=>*~e)r#R zzT6(Fyt|3)X|Mvw`CzsFtCx`WDx)$ZiZa1^D^m7R}<;twzW; zg)Zu8bStcU0i+LSJ*NjkJ+aWHn-i`n8V33sp#IAF-T)f8la#nc3)K;);~P}io4wx9 zi%nDXgZ67Y$8|bwajjn`h=rPv4|*Fi+uP3sOap4ulVVF%+9mupm}I3WeO@Yg71-f} z6pda|<#InJK2%K4{Fvqm^|{DfgW{a;2x|*lDdyrtS&}j`-|>}t*fX-S?KEk; z&(>dKMC#C?LsMXC71zz%lGc`5McO;Jz{svx^H%pg_xi=nV%w4O(R&#oPOBSZ*5K#ozk5Ltx3-beJ{9USkg#E~7IwqWXKi_QjuP_Ru9mv*RAgAJtLA*g zGkV}kO_)16I=UNAIAQRV@tXX<1@Ek_th7Pm2NC5{j#Fhicc7=53(_^z`-{o%MgPjl z^5z5bM~C~KlNJLl)VZ2!aJ~U1#+Ssz15M_(l*e?^#y?u!UVyj}uPn0SczZ(dc@1U~ zB>K3+B90Vbo><3g#*k|6uV3$RNCv$##H&1R&5GyN(fNil`d?`1E^|y~Qux(U2vH%Gu3L|5$jgAPjXAJSR%{xSV&KZ zF%;l&z;{5VGp%Lr*xRE*>OzJxBLC=`(&H9IW>23z6-0j3*k}OHcPW2@F3$>~330_F z&b)n`jux)e%U?wB7@h%JYJQ*W%O}4~k0_Ihu!cC<1N%(cWZ#HJhT$jWD`3Jw^4TdawF^ ztj15#0o&c1B0Kt_lO!U~&0?Em6MZlr->N<|LFm46piz*0sRdWv4*EYv16(FtGn1mO zs^IhU`__X1$6Jh=7;|kn#{nEJd`Nf4ru@0?&-alid^i`M{<|Tl$7r41YTM$Be6yl5m%-0j z3d8P%owcsYra#~RETrahqDuYe&O>eL(E$G%ad2~HD4HSXt2XeyH6gY%n<88%$11mg z6@vOc{Ru&C!M{;qF8?%$taHD2VIq()v#Eu3R_ktg=b3%W)@&&_hHi94R#K+|h&QKl zb!1W^UhIeb-2eOo-A7~SajUZjbqEA75kage8`J@oL(kqQ9C)(l^^d#u<(A`=Kr5Bq zu-BA?<~zTf${==>lb6Q|w$aICeIy@G5)c*)ogh_KHcc*}P@uI3racjP^?yzBz(D(Q zi}*f|3r9R%UH5_4jJhVxU;Z)ZhQieBtQ2S>5UPsgQSzGR2n-6MpVfZEkVBvdfBp82 z8E^?4;J0~SYP%Z4^S^#&1QZ9M%{U0aWSJB+{PoU8Or>r+I52|g8qqW!*8BHc!Hqnw z^3Wg^K%G5q3iO-`6fSs4;5|0YtUx};EQkd*;Y*MQz}SZPi7p^VFwp4o$<#yb6wuF!?Il2su*v4?8XmlpUn{zh#z}{d6jX-<-^a^vI4RZkYiqycD->xhYU&I=t7S|U- z8T+jV4@_$4E2;h51VTp%w7G};V0BrDGWS+ztqL}hOu7n=f&=&}22YJ27yLK{!hl$A zu)UHx2RXq`CdI09WF9}lQqKJemgR^d+8&g+&oQ^t01sSNNNonV@eH3aPr(L~3#Iwv z=&@{>ynigtn2!UpMC`C9`QyI8Lu;Eo&ffSfa6H#G+mMkUze+t+NIiF9MO5q%Dzl=d zkT@zSB>h#~bX|r&4)Q0_9ZpSfRs+I4tER>Ys-AxCuT5%<4c5G<5fE)(!Hq9IBz~wY z;2B_o%nw&Zc+GT9&7&MY4&ovxqm5K^4-I zu!@wmy?MQRD+%-ur72oMj3K04Ira#0RS?p!mWgpH+k21=V_vkDmYAG;5a0t)AM-!P zxh8Og!PWx|(qoBW0nJ}KNvBX~AoO5Pf~Eis5HfvMA(SX=b@dZ?%c-d;a~fn8;Z5(J zE5L*XeK%9nMU)t*KNU@5tkw@{dDEgYP=n_Q<5S@~*-d_ckkTWfuP0|JQpbexB!p zFx=#h!m*8wuEDh}pCJSEjt{-Ut`}?zs~4-NUI-q&%e}3++ptind$iA`EM9+#DwW)J zB=v`(dlyn_`T{g5lQyBIZZ&kmwJc*lROpLVD4<;1;+$(I?Ok1q$`M0vya#dGME~x& z*ZoGtd%+?PirHFUeU?^BkDZtowG8zLSNm;Q9Xj~nbTWHC9$#8p`xJ*Wt6g3`%@~#_ zd=1wg0vx7!dHEcgSP$MJLpjYSX7TT2@5F3*k*A~2WyXfK*(bG7cyqyqe?C`KM4J>u z!o7q)%gg1F8@X0uh`+N%e(Dg5B%$O}wK##$J*psNl&*9NYRc%XQaD}M+P{~c>`CpI zzJ4>C5L{ zM~p6;~|*h4z0z#oS^}@K7@z6LdX{xP>^qf zlm}+v(g=|OR6Z9G=5>eF>k6rtkL_=qo}R83S<%$)CKPxzrWu`pj`?uu>t&2=gGtq~ z5gBTTycF(J3V<_5cfD;wcIk;_ zi1^Y|H}XeqW`arx!UxXzENmf#o079fBj+pXAkgk;Yz#5>n1y{q;EntuQ5-T6O)FXk zZTsG*;$rSb`;voSfw03l2R>B^9CdUfle&}f0p|kByEewWW}%Nj&&iTRb!H%9Bh1DO z$zM=k=_I=xgH@(gc;!>+_MUoM62txo(4Ye&x=UbGp)*HoJ&KNF5Yg$3rw z_++e5))8c(cMu~x*4GdV{+uvZCY>fRhL97gw}*hyhKJG z>t}T39cL!z-Me)YW#$eY7ic+!|Xk zKyy5Q;$Hfn1=MW%=?vS%n!0HpmM&k&mu!eE58lhTEXo7?KLT>T{TqyPZ+{!4@u6Lo z%Z*&FR15l!rW<<4qIIUwGnT~akbh=5cH4rG-PLqA4Nk~bcvjI*hnb8Z+ue&}+$Kf1 zOsBs=Ch-aJanOk93KhIHd_%xg@~dKr8b=N#D5XgemA}Y|vMsJmH9SkN7C6oGH1*M4TU^P=X3gmBY1FDv))nH4D`WSDt4& z62H)uO??3+6ZIfmr}vBZALk-bo?bmD2jMbq!dslDw z7UsVP=P7~l>brUc)S5a@UxK9KyXdtsyv7wfbq(9;3+KhPyq%M?N98C% z5C)b>>FsAZbsVxIfJ9rg?!ZhBvGR<86i^*#vH)`~2qK(-^vJBD6HDvq?LK((zJM^G zF937l8>YnM4;OOH)|jP*mVk9bq6FfNG+=HdK^p|IVCX0&7;Mw{AIpTJiF@fpl@5Oa zUVwlAc{;hxz?(NS#moK|@SRt|{T__#VozxG%Dg(p6)dzkvPxNtwMNvbMNPp5**RA< zw*_c&{Ix?u&6z<52=9`@*3Z_C1neYeEzaM~HY}{H3`^rv!;yR$NYG| z9g4UfMtvEX?|fUjIMlkT?D*iUR+skkngTeGy z`+c&+5R$U)&+&Y+K%^nh13((^2py~1%8kY0Ba8}P7Q_;TA-?o=%CmgB=@frlgMFpd z<##FbUUeeBPYRDIKXF%fa3-o7pHV^7P)R zX?iD#2eB870EqH2q96j*?|2KqVgH6PFbx(~gyr(qW@QHBUCXTsVX%28?@VTUy=b`Y zazQZ2*25nF=I-`soD_8B>yWx?>V}*`82QHaA!F{|EK{j+UCqzQ}kN;fth1}sBBt$tG z6nN|7j;qa>k)G@4y(^YSLL&@aqo&Fh95 zG2x$emY(FdYF zKhcrE&@#H6zpwA$uNVF|?_=owig`Zhl*TX^#c(;{JcQx^0Nr4dm`dfUvFRyh(~oDs z2e~HqTSFwZ*6GRv0?-pCIkchM!Ttx)6m_1#8_*z2#3g8lpeB>QbeZzp9JkVsg@h+` zYx5xQ%G>Y+BLjoEf%yzqBSWKGKK!yrANx`~xA5S*0uOWH{tCR5i-SWn@d`@wbOdTz%fHmL zc44J;a!r7+qgPu01FUUzlxbz5hACDh@TiB#>ccgmhGN?qsfb2I6tXUE3P*qu0SW?> zpw_mypJyj?5%Y&*94yy!;P3&VH_@k0tJvE&Sg?6;6Vn(j{0H>}_BJ%Ev3dY5feA?h zSr>E{;sRdqs|sEt%?SL5uP*LWXbH7(^7zfOhac74LW(LN6vP(E1Djk6&@SL81W+() z?C0O}Lv{$r6~LZhK_G#Nf^-I*$5pmtLR1bsiNY>ePgDGNtLCf86cS}q;|2o67?Cs6 zNb0zf+Ofu+)}H%9CIe4B!{`3}(6YuMtrsdOcoGG15|1=1OhyP*KmR`1v8yHtPi>mC z*{1aRj0q*uPTp)oG!AIJQ%Ol3W?A)ynljOk1=g39B_@653>asPpdIgROdE&U3{cL1 z|J{KJGiM;yFd4=KV*?-*L5h5JAn0?&ZMe3ZH*Z4wfoRE?xAM4ejnySWr zJ&KHEGLleZ)QxhFUC2f;G>ku(vyjO}hI=G!p5$h~FwxTAE5;njqZ{FI&#G@>R`YqR zd$%yi5z&hw+?R+01DcRG6XgkO8h4H=fr(dMFhLPy_tMbP71MP%bj2-)grn<0r^gbB z!e2ixZ_!@8dAlDRM^Bg&g?kF48*I#sknPtUD*0!j`0Q+a9#=I-!C1uXD22!inFUp z%WDdMJ!d+FAP@4Q-4Wbm|GH5-aL^o&`7@|+KM2|W(W+57=vHhYO=z_SW)_|lNILXS zGj`cul^TVNI25ek6t0}HBVp==)a{#FwI08+gt*4b_T*)5LuS#MksUkbl-CvuzEXea zuX3@gw<2&^VQhm2=Szr(R$VAV?Y^lrwGm(rnYW7Yw&qA`;Xb$G6Cb|x*Z%|^?ppB* zOiJzakG#YT^>YW!sZr~?)+|5f?ATI$a_W)TH{8GC*C0q#zn;E3w3aXueVH^y-Ae3m zf@sfwV>sX?!p)Oxs{}y@f}?C=^k`Els{hUcuTm*(iyj%sx~7@a1K?cIMB}x=D8BJG zb)y;BWTY`d138iILcB#;7Bl&;;$ij|S~%wD1GiZVysl6HGAzt%{0%0I@0VYtD!?g$ ze6boBb=_!!QRE<1VQBEG)bg2c(9*n>j$&+Qx}C4+C}!`M*b3>>>m998S3V~N@a7!M zD9{tIuu`8aq-Rgn#=+QPg{{9x=xWvr6Uer@6sP{U3+WCkj|LbIhLn1Kj!8Al>WU)* z91~#nO_UwU_yLco1})u!`5y-BTQ-TW`fdcdchkk8+)%s$eS@y{tdX!Ery?`Yf)7I`87qYb&;usW!GH{HPxE09@P| zpr08F+rCqVN}zPhoH;YTR`kM-dScZUf;Y}N7+NG6r1?|T=GK+YRnq6?`A!7I_M z$P5M^E50Uv+(bQ?>OH;u>!$2pltp#fG2?Wl``cA^5Z?hh^9|>E6IiTfoox&cBM{Wn ze7|15Y@eAYj4y6&+Yk?npZDGOW`yIb&fQLQc(18|0VAJFomWoou4boSNUzZD~*`kF9`Bz2@n=+Ktdgvql7+( z$@Rg}vztl-ekkn2m1u*!UjM(%Dc@u@)^j;nBIqIej9BxOMlqUMnkoCsulR21A zf`Q8NjEHJNTnOm%Z~P^s!4!rL3#y7GreBa<6;V}n`yD{n``j)FUK6WLMUT`U2lNK0 z4^Aae5^nG|{5JvpXX*38-Xe%y!5M`bgS7bp7;fr5LdmD6Qnuz@83)uA-+MVQCK(7t znam8+2b2bcAI-09WOhd2$S{UWkEcjR2dO@N^YkAfio?3(e;Gz3$BkIv?(gs48hKB$ zGidZ5Q66U+u!ytgvj6^GQ5fM0C=3PJ7=CX(wF^rZ4h=Z#EMRxgCplJ^{z~xr;x=ZG z%{;_qggo^7f3A&QbA3#vqT>xnHyxTCCPKU43f!vp<@%yLa}jC;;y5L2?TKvB@N9(s z3UdAGmnn3Vhvu$)%zqdA_%T;|cwj^OlqX)MzCPu>n?7oe;eS)%*%J5d7`F3chI2;$ z-&8s|h;8#aS0$|V|9=0fH-XCIO}{?)8qzp_DB-`0g<A1s+xd$73AZmv zKZXIks;Y|sVHkl_7ys*jrTu~-O4H2jpuWET=VU}J{c#+3v7MfoA!kcVXo9hNfzI5T zd+>Bw#^sf!jv-RLY~Kk72?^(m{yaF`jVs4$zxb?3t|`c8eZ7%&L6|`d2AiQOL5aC$ zZXT_9L(^608{b113^?mg>aT8d(^L`?Y?3Ry`u^X3Sv=X(RfECf7)|TjwJWsrBC(!d z`;n5Jc`|1XC9^*6K^DcUIrH>0t-t364U7z(Xgh^cMW6eTEJ~&FjirJQo5dgU`z&{( zeqsCl3}LVgFsgvAu4ibdupzhn{nOZsPVDDuQS^@im+y`Z|50#NEEO%r%+UlfG??|w z$6zi81YB%uZxf2W2RG)&kE>4;kc64-w?DrWF7IQz{YDaUt#DT!oImiW=mQ65d^~+x zHSDh`dxBc1P5_O_M&zL>dN}wxv7|p?f03M$lby|&Agmk-!pxTuv>UNrh=s$^C-KTL z6bir-c79Ih*44ef@(L4KF~TOH94&kg&tAM3TM7cRrlE~cVPWBOBP0)RIxl}@@%7+q z&9*HQL^`)OCbepwxksQ!c#6Y#@>=}$E91$8~E`*^j*D11L6DMbghp4V6GD;Wu9 z4CHh^mwZ5rjZLh?oltlELbb#5c4LZ%Kr}zi%fp8Mgt4&A=lYzSeR=7s6~|X;JIVuw za#_DPX3h~mp^u#_%tg2)^CY9%r#7vnk~cZ)W-o*txol^fcRpH+WZay`kHZ=W~}(Ool5IcE~2@ENb(@<8|@uK%W)+5I2ijExN0 z+qAlV{uBkPG4Trh*;;HrJ3F(#d=XIboA;JJy*awIu(ubvQ0h)lFf}uyTW4?UGKPLs(=9|YbRs$mgkKfD+ zI&O)c6X2DIh&Xv#R`2?)!|L^+Lb;BP`Gtj#^0FDvU~sQq4LqBeaPU_ZZZ%v_i&c44 zkv53n6&HV;n0oc*jh3MyAa59cY@3hz5e!!W6PO^C9*L+#-^#%E;ci1fx=4!prX`Hf zkw^2u{r=T^SUZbCp6=SAn)l*`U~O1qSehZ21^;J*@rOZA*^Q&1q|g-NuU{$0Q#Nc} z>ey*fQF{yw3`F_k!Y#G;HNxgaATKR<@#0>w$Ytd}Rf3;>dU$v!k;;-zBxKLHTuH4L z653>bZC}OpCqzAB?%l_yTsE((R)?2xAF#w##}!#wnG}-O+J{wIenz_S%!ip^(t={h z;5LCoOi!*Cq1ebAdY_lK1W|}d2pd1v5l3Z`mHk0SFY39a_-SM3cM@X!fIK80yx7PJ zj|vD1euZorsKQS7?g^3q-5$sjKHt{XCa0njS9G%&uoTcB6tdZy(GA8Rq&`t$_us?? zwtPr&Z&A2|XR3KRJL~c-dSsw3NKqJlzwyB_2gloSapxssJ-9hU)iTUKd1aU8e>vD` zO>%mlclM#5MjwL1-wAYLN#f)4r}{C$((6X$eSI(#ypJu>KoWSwf1jPGqWs|hF@8oNz(AW|M~roY_1<3DmuPGR6W5zc5B14=qia^KwE=Cpp&XmY!oMck(N7~ zsL>!|`*iKPisAOjh3tY}RpS>%M;>X|_EU3XCqfnM>}+8kw66w#pp;Zp{CZEm%u&Z~ zd_!hrwTez4Qw(?VCObP67!pL*94msi;1{~m?ob1&O5kvE^Yc43nG`l^rqZ6jU+X~negda zs-V+&sZft$SN*@)bL4@_9@EKo@w;lCvpd_%kFH1mSsoAiux2Y<;x1rpY^^t&@ zi_zS=HMTQuO?T_!F9+w{pdg}{w{L$7oE)#l*N%;-C@cE{hXYf>;%uvV*Q!?T9~BzY zZo?M5^iQ8IOPr0rdX-B?x}>g@n^)1>*=TI+do<)JJm!KQm>}Et)0)`*&fnpq&*=JV zX%jrFlWbnXWUh$sgQU9USQQ!M7H_h#HCI`UK^63w#0%2b!JR-UbNQk-hj@qoh7vZP z-*Di3m=ySznrHGgAzL-=MtG<~!Xz@C(K+oK<2;z)njz`{j9%dHcUP`X@NfzV)&ATW zzLQ6RsCul{VYqtgV|C`D+HWeP3J1eSG6`913pq)JKkx*9nF`Bi%O};Loex79F)ys< zb+Gx;U3C!O;xwsS;{Nd2nhyq+4EMHoeG%?Q^UyxLL3HxkQ02+3F|)whpLyA3Wt6}pGMg&!*?MD*Z8l9?$2M%C;3RekrIJE#+>}vtv*@BKr3t;T=Abq ze2Sa2zK6q#$izo*yyL`y<*lv*^$~b2jT}FHQ`1MN&k9bSIVe7kI~m+f-@)hRYM4m1%@~xRG%LS&NO1LCZUN~mYg&435jm4CI-Efi6HK<7SC>A= zTQAi8O4DqVgucmxivA8`tfe1;H?iWEG@H{K@|G1YD!*<1(1SMygaqkoAG5^xl$0-% zBJP!jOoqPCA0Zp^?bO;WTru*k8|xHa#zqK{d-mXJaZ9JzZUQCMlTi~inj8kk&Anxa zGAQ)5=vCjm;0@~9K70Oa!6Ct zeVsp{Blt<-0aLr2%UcrF(P3@q-~|t=Wl#bN6Q!{B?%;Se!S&tqILGPe==dg~^tJp| z23~{T(0I{$d~~q(If^wDyzR~Y$JeNu52vGzST)^YVcKG6<=e^|qm`qtARfzf5D{^? z?sx&8K}SVJHS%kNCE*dXh(I8OjSofl&kpbogfC(eK3;8=mf;o?aCR<3Ke@)r`czAc z7k2!k#M^#%Q7)#qtL3v$U_E;$6eP?J9qN2iaK|Dj|=ia}CS8zVe7p5sF;u#>xh+ zhMftU@i=r4&h_E$r~N|Bl%df4sz(^Ug2V*c(X@~tk0O@rRHx(GQ2&|avWD%)BPbDG zpH71k60-)QyD#O~h%lrf;QUq8)qNT9t87+9@63d^zI%rZsn@Y!HD>;lKR>GWyT|id z(Q}{Iwff|Nq7vWIL4KfuOUd~4Wc_x4pU_C&%_5@k<2^jP2qq-1L#i&)`sa4z&^K44OP4o`T$gp3E z0l0XE@!p>|c!p))?^msIUHbf5X-#{xDdWKl8UmOQYbL=F<(2D9P1d*-4AX~Q;YsP= z%Q^k&&^Il}2Ei^!MThlgHhJx4mOtrE8?VP0HT zL<-YeJB0O2XBi@%KPN$-w5)zHdE2gpQJn7)rFLsb8!V}nKHEgX`RPw{r?G~v*Nn+a ze(dVb%#6C%jh>Xc0;GOvu1Dw6^U5CA(fH2q-(%LNqWIS9Cpl-dErjXs+|_mYWi-W+ zjJqNn?s{vKZ{z{+Or>N|v+rM+77u3LI^ae8RtxQ`{~Naj^rKAve_-7IfOyD@{|Vyz zA0PeS@=4@>+u;-V4Z;)N^>JIChRS*9QHVGS3E$^xljFWCy3JV~Xw#-@!7ayuxD^FF zbn}|jg6E1h+6b#)kkeE@Y98uhdmgI zG3d|g&Vj|By_LpZF4DycWGyXzVJ z!pZ3pgefTRZ{Lt--}lWcKc5Se@-KLYQvpO3e;--Nh%6e zJZw?O&cSiqj`@i^%Ca`(T7Myw;uU#(SDp&>2f}M);Mp-C;qyVEzo)-uYGU2pTTDep z3WNjxg~u8dx;dh;=xPDdy?S!b;3i!{1_qr!2iTZ4E;JV>VDI_Mu&@bGxajSN+WSw3 z^pDX61*GdWAG5QiT}d}cHeOm1X-zW;Bje3h=j`-}LcKvBdhJEo?j{}be zzur07_-rCAs32n0K1L6>wYRtX!dE>YJH-}d<1w9tP%zt5r3+D|U|aLg?Rz09Ss#@3 z!hPnK$)3+XcO*3wg{w9$YR^ASIn$FR#><SDn0M^s69ZV(hHuKChO@@6W1X16H6 z`jz3cM9ICutu1X1U;%J%eo!%gD#ym%CikF~8r6Ol%k!&jk05=*51L09&=#LWVE7od zR(B2xg`NiK1pWpTAv-_+mcvg_qLtd)$j|?rj0$3bPmBK~5p|oYsO9ifBY0ZdwB9(7 z>PXeNZM=MQuU{L8P6J<95R8#CIs5ID0?(sr9QtNz2eVHF{n)!;E@6yakX ztn!cS6f7cF1A9sybkmCU>AJe8Cs`m<2%{1pLZAKwF*a`HIX+!KoWY4^qNkVKIao!m zLZI`ljOU{WV^)y2>20=gMv8G~dFPTkdK{ba`x%juuKa-CFt*a|=X7U#ULUK@o@(5& z`zo6ClP;$z%T4mZc1Hzd;9V_VI?ig%X&tz#%i!l0Fa(84+?}eW)1R>y;cs_xaLCBI zj*6A^=>dDzR~gr{$CD@TGVg{w0#gP0QU)-as;ws^fS>|R4{Oh&C-kUV--(w%?HL&v z;gozkIy-UFOa;3ti_rm43pFxA1ArK?I+WUh3Wt)OUPQaTp(^)<;@M6xuOZ*co?W1( zHgF$wGAMI-rlP7wdxU@Vnx}EA4jWt9940OE<)PiF0OSQgq;Z}pTq&omE%%KZtbU6{ zBUI5;S48P?H~};hL2}I8!UD%=oTdat6!w8^D|fK17qW3m44a!3j=zVW9v5(6_?^{< z#+U!mi9R_=mgw;q({mKhe!k*HF77&PU)QsoFs3Qykk2h%N_hL$E!UG$MUib9ls>XE z5nJceKR@qo9?Q#j_ilq27uTO#_wYrbj}EAj9mo0T1<_YO8`WpFaEUU<`GGyhifeTZ zAkQm$1~rnY@Z8$U#*8Q(g75UCQ~L!l2D$UZ&fr8&v95xKZt2MI2i(9oJghBP5@3m| z-_kG7$UD3siH+{obe#N#P>RdQ#PMHC2aZg{iyxOLI66MysN=e8du1x;ye8FZGM@qHeARIj8S=Y z$r7{X$*_O0y~11KZ0m{n#7)7azDs)1K_E8k3T4wZmN9|GocQJ&iS?Jz z89IOr3_PiXtS4zpBMjwM9{s2X2}?;yi8q)Sn3*_jF(_Qh|1p`z^AouH-GQ`Y!!UuO zyaFDSzTy<40d&fKHMCRxoo@t2T}n#oqx~E?kVh~fah>eo8gOtxUjEi#4h=NSz*+>d z>#tbUcL5slRvLPQE9MAAMne!*xijQK#&UXgZmv+xW>E9bhu!ZxOm6cT$<%d$jBfM( zxYw%KxVLW`BH8hE!BcCefjwzi(WwgqhKibvon3FF-lBS&`=*npyRSDf%;e+enwq1l zcAjc#YTI=|UxQAvCDEm&Yo7P;Cr3th8^}H1m6jrFo)Kdk#S0Gm8bT?e*_|Gp-v@_8 z{{BT-Ss4ae@CWdVNvdLQX#`fpKbR0Xa^%B%vjCyD-Tozfj52 zuMwq^7$4QGJX!_oL6nnKP_X1IwCNMNSCn7qPTHqDn-#ee$U&9L-l?sPs2EmMoQ|3F z_QcUJh6ZK=6M4^1ink^PGU%E1L^7`8pKAP;<(AWW{+?P+LUOY9`VEzg6WIV?dD(BajMf#XYpWU6WXFG!oBYPH#wvfst0B2x#p)qRVVZ2tx!F1;+sFmn z%xUpTy=qX@fkFd7LW07>i;}}iV#2C+6rSOkMLF3%jf%<_b?EPp;vN?Y5YHM|kiv#D z-M7Xq-@d4@$x;JCltxQxPEJnY?ah??&UUSHe4wLB!^9*54foK|0YjyB!>ckns(8d( zS)kZrxae0$oqCy1j>On;GtkBWdK!TR2g-fkU=kpRW2aXjaDY;XAW?2m zFv1meM?Z#t9*1jfyDdy7=||_8k=-dKKeI&Wz=n{rC5&F6; zS_#_{i8ila#s@2UqRYyjxvGEipms|U5HoBxJ1;TbpQQ)O@qS0eh4tBxbQ)wuZhX(H zVUkFp^!sj=cHvrHDdtsf173zTW^S_fcJ8NICZ8LU39NL)%!=o7h^yaW51s&s1|^S> zT21Kpv#8mQjfv5RBoL00OGtQNqz@WF*34ELSVfuB=VRn09Z@avo@Gd@$Cm-pl0i*V*W_}~8+L@VT<# zP?{I~*B*&^o4zvX1%%L1ME%~HmgxMxB)5`w9-X*%7gyT)`g(HObxNW;E#8M@UcOz& zpwgErxbDX-CRV)s)UcaEfWCF&X=}`qPVe|t_EbMB%%o@Q7d@Q|_V)G(w7pqh$)T+t zivOAY8cjrxXs=%^1>onyroS8g0+*T;5FpGu+rkC>NCq;a`4OlZxQ^Y9IP^=0SqG?GE?Ep0NQ-3>(t$$;JQ=ZiOfEo^ZzuHLpdICAXR^l>+!2nh)eWkhD5atYly z{@RA%25CISy$t7J9y~J3Y&~6Z+H~bO3-fa@9ki-^^hIa_e88E)BZTP? zeJ=*K-^>J*w|CAvOd_Kf?LXA(A0EG+P^YZO$g2xXn%|QRli{4A70v98$FYkc1~;#% z%r#EL^Tl}LGBv>M*x$VygT%(Zz;WH*yTOx^xt6_1yr4kMM^t$@oi*qr!m7qkvft!O z2+0-dpp-pK56#ugs}gO3phQdr8CbvKW+6>!x;7Yyyb0j(+o(A-bbB>T^ z!S!LClJ~je{F9e7Gi}uq*`b#%vJR+iZHlVVHBT<@;O@gY>=CBb*kT10i7hJu4Dd^_ z3Ir8cADvcw3SsXRednR$6_PEYv|bZ=%GvjO*~>T!2;mo4KroF%m$@X)0vgA4yh3Qd zcyW&JKQsW{#?j9P!Z5IBrk#g#zy|s()+46Rqe`87b$wsn(NH37;pz(3aAe8@hV!Cr zLHs}ePy);pgZ|&bFR&xPdbn&~6O~LV*Zh?wn?LLVEt{8re*5tjlXQ-U;#8dUE};KGFW@2^>;kW)ROU0GkZ1HS@Fq)0j>g#VK_ zlalgZZ|j?npAQ47ZIrIyhxZ(B!sczuK|Yc1hGeff+1Ml=KPCd$MLbAGio&syPFArI z_u<2uw=f4Q0u{mm*M}ckY_~;zn18MN=CRY;m)Exn*=B2h2pNFY)WixiMyz9>+CGJ_ z@5Bo_7%eDA5SR%#_yy4i%oAK@S{SEQ5hOKn+rqO_nuS%gQ+2hnK}&LLsvY>h_^t9h z?w|B$EL!UVP7yW(`DFUw?x+(lhZyzSr?MOaIg-Orc{(eq92y?}4v3hG7cYXVimyKq zwpN{WzePNHt|#md+~%aXFy1iM7A{hxoF#)+J!OB=yj1LUcC~<|NLQ)QzDbP%bbsdLDd_=Qa`2+36my(XJ_2GQ(-uufB#$VT55HwMp$}p?je%v=* zP~94qBIfI{NG#AduazQ{iI(4Qk2AV~(# z#vQEHC6!@9xS|#=YzvCQ>gB(LDeiIR6+!ZUidNtyU*rGt74qL-{vUsZ;LaxgfM9^{ zi}8=5==nFcyx;N5`OjiVIfX9S7mitKu}eA2(U+3rZZ>Op&T$?^MV`gP*_3&E7TjAH! zRz`N?ho&M*l3o;NA0c`-b$+Kf7r)U;qu?Lpr=e$(ZOFIq$0A18YoFeGed8RhbxoIlF1|6=Zm&8{%E;)txdrxI zSolk@d2OQZa$}|HkB&Og^|w*pn?yRc?MBrW_)2*g`$|OS+CPuqQxc&XgQ%=pzl5X= z)wjb>9Xk(t2N`9HxAgN_PUNv_<@NlufBLo}xAb6@Knw{U*y0`v>K)FYV&dwEUpAZ_ z^^;f3L5U}wXR*2x+cA&*c(#Mu-JMiuyCoK`PF!CMZiOa+%V7~wa6-1yi-%@)zmi@& z)j@R1=Qs3A=&k4!P~yf+pxlEUA@P^^Q4!P=lJc&mW;D2oPd=+Hbz(CtECLS&>WenC*^FpuN_xG3A>?* zM%**~@(74VH>1K2bt{P~u$`8tJ#~=bChfK>U(##IK!?-25=`#K2T+n1ha<9=s&rUeFxj=Hl|6 zoizpvbGd)y+;`VfWpEe1;_0XzO$*J|?HB$|GT{55mr~$?xJW83jR)&gSU&c(N*MoOyaVY-|M#;L7?&vrfnPFAgKGi;qFFwTh=3&erBxtYDEVTwz zRY|4kEG>P`fIE_y9_xTs|B!~=-Pr#$sz<5hPF69&9nZ~+HBcqPi`lEGkovDye9x+3 zpYgN!hKra5IYBGM$rC3Xw(7jw!dB|mC_UmF1C7V(_O&}oqf|a}&W_#nwM+;T{eXFM z%de6WES7I7h5G&%I3jf+=R*oX37Jz+xWFeA>`|Q8l~a%wA+d;T_6NHBX$nN4$hNkE zi%uk)i;QH97}{qKq7_9;Juu*(QOpL-I*b(0g8VW^|AbKA_b;w;>fhJkBX;$?lAyg+ z-c}oiJC=krIerw6SQLt#;c48owP>^_NVq-SVV-;m&^|D;%y{3+~9*Ws^*2n%yF;d z_<1&Z@!VlT{!i^n6pb}4a8NqPk)U&gXF9$OKWA}5k_X^uph`9 z?d*SYnd`X7en4bc7O8mo-YH&VwgJ8F5oa9{X1hWE4!PS#X+$-XMk(2EV_QQPXY z7k{vGH{`jej~YaFDrmaKYMOR5bc&#swu&>U853SfINzvM+FuuG-yP8yG8yFO*CKP_ z@N8ZXY~RJBMK+w5%G*L$^s5Cu=1aERz=xTXaB8pL+)MsB zw5npW6VwLb_;GN^{}LMi=0E=+2S@o6<9Q?HCJ~N+=2Mz?cWLMr=}FNT8`^WRk!vMM zk?VHQ7{Upv=FzKq3@pZpzxy&;a*J)+dC-!QzJFZn1Hu_mkdCw!pw}OS`VW$=Eiyre z`9F!Fi_dmH>H0c=;R8Nxj1eQ+% z_6agG8k!#6h*s#-0vp2zJeg?mFjQt~Zzg4C;IT26&uzICmVKi%C8mLPXVGHksC&-O zkkQqcI~wBYp*yeKdETmHv={yL+Wg^=Tgf2q zLb??|C;jGyXKI9ngwMm2ZpK{n72$aDB=@z$qcq*G4*4smI4nNDEG?i}D*f=A^JI}z z3U}e>&T7cQ^AzqEm0iXUg@BEY)N@4U34JGMnCKNWm~@lUpoc=;>y|mc~~=tfk# zy;o-Mx@T&HD*YcVy+T|a86fR+$TL9(14pcYRA5SsDwiPNP4hg9zR|taNSjYSa;-V# z8<pkF4CD#FRq7FO~9SwlILZ=#B3m%a`zY6 z78&Tb(SVxbJ9;Fvipq+hP&VsXK2Jx!QH@nZM8qwI*WzJ}6(Ada-RhE`MUAR5ZHyOdV9H3k&YIF$Np+iTP27SZVhMn#N`~J48o7g$( znio4>i?D^gUN$K!`(J9wIQmXe==HH%}GlJbkZX{ zx8o7psa7%%FspBAt2sAEflrE|dGU>qCp&IYQq_4QR{Y2MHA@vjg(;_+pX)BKX1kQ7 zjiij!5^&XQye6qU+K{dZreyYgHkD^tWi*iTEia<`0WG^j4Is6>{G{eII7ogBQ9*Q3o8lio!1rp0^H^*%|gS3+fSA_y;47f`0h01 zl(ENnj=?TWA5A5coSeF)-vR{c^SQS|(amLE;ja3$c?gn!h&O z3Ri}Cz;bX8d>#hD-3mL;n$YFBAO3mRZaY7T45`xG0*ExyPNtCAai@l@JVE5xVUninmacw+NY=>SF6$X}52LJprBqhX#2E*1K`h zGg{jd*468eM^4G(Wunnc*=Egr@&K{1p16(#c|6I%T~;2k45fChIlG$vzVxcG6Z7;D zmH0*=&$+Mo`pSB-@(AYMCV4fzc2yd>#}EWPxX8%~@(5>j&_%)|EG8L_y^V<^$UTDC zQD@Y-cCm&Uu)9j0{8~NQ?EDzlGE6O#*mcPtHDx~)?0-K@I#2Asu1g42$?!vrNbod- zS_UAN0L&2R6N8PYeyeoz^uAo|@q%&=8Skae4h|Uu?&}jr>K*r2b73%vlJ7)SyspMm6WJjXS)z8CwMGLU$_}U& zET=itV0%N`za>HOhb8}2L4-STvcIo1S@wAP5Fws{B$o0|v@Z?+Uec{={~rZEYCa-k zg%;Y|(u^namH{;X)*TTO(f_x4BQZkU*^_#}pOj1gg9D01JP%D%u04}%&gLe zf<&81PjVBm><`E0wsd^mi?-jG-VWB%oBff0Fs{fQ=>+%rOHgl`H=d;I($DV?_S zea7+nifN{1L?{$g&_YF(es|ks9_h#W%Al^D9I*{r#6rhNDytvvo#2sgx|PD0oC2ET zKL;2Szzu^DwjXX|;Xc~&KFls|Xkb}&R!Mv{x;y*Q!$WR?3>8^3&yiJJ%kmS_Tc2S^ zj>M!SYT8xMg1Smf?^6T_dH3kJz%knlqNogrVm{n`Ai&6@LQzY13O6i}9)LFyGuYLI ztu?0{e#T(`roqc@(X;m zf4oNzl@$x&AGgvMhXk&s9vbwUzTNZs7i1M*qgT*e{SVSA9Xk27gAQD^zO>?Y(+`5N zXHMsC4?|T2!P~N4*^F=AoJL-bpG*F+o@JxQYxe+DI}%pHa8cmrUb>5l$tgW#%JJ70 z;ugiZL6OVv(`l5dish_k%2j_&>{+{@Rdkrgo8IY}(|5r1s(~EG^_XrRaGwj(xB;8n z8PP(iPJlF8%%Yykwmln@x_r%4e?AUTw^pOK_;5w7F4N*D=(DO6T?LeSxM$xh zI_1LfX|u!PW!66QbqJb^FVCE8SEu&ui7?y{j>Efg^X^5*l9+9`O*LTxWZVm%CPccB zULk>s^#|!iou)LG!#B29WJq8>zLCm|G*IT|csMz`yF2pk3~CWe9~1UiGia}>ZK1-8 zVQKc+d*U>TTA0e8{blQdu3sAdHp4@<^Y3+U?Vi>D>S8W?s$3vKav3qf0O4lgy z(i_-cfx+@!Oypa3sYi6RYwjxyJ-)ed%CO@WXIWLSr+C}sldhZ&+mf1|or=^;s%^}J z4~pFM9*1I^Lcegq2qa7bN^P03V}XsjnJEE8>bGnDTv@Sh>%jwPL%`t7!x7i11&n5I zheCcp1>t)P%V1!APNUmn5OugrcLA1+(MQ57=Sd%42|*Uc&o~Hol5tc#Tv*|wY-`Ozvy2;Y6`omrDrvSQNS&L>;Y>psH=ps$v^Erq1*>B7FA_a3g?#= zsP>Reyq~zj%l#NyXJYrg4QNSx^=XM`y9nc?GK3eou&kd0l|eQq>)mt3TZPNcC3%lW zCS73W<`+s`NjM!@^UDL427J)%7!YP^xqGNGIG^*1$TAjyN*10W&x(U`;-eez`7iYM zYTJwAaJ*(i10Enml()Dt(pbVNegj`u598ev(xdR`!9M!~f3Ge+>V@dN%3=J$DB^$s z0_ugYrRRWF=(u5&$^A(7h~HhSJ&$Itpv zNOC?0bgBKjfi3^xlS-nv%G~o^;lV&$pNl-G6K@Qj7Odv?^_tvP zT~tt9&(pgeoewfcOkLW7Xqse`H(0i>mQZj0`#;kV$B z#l{8eKkMBM9=16<4$*lXezUxnom6PIatqr?CQP61IV!xC(0YFdv)Qj{K~gftlMv1AzAjTTm!H#>!Ab7r|dvR}b$@bn?@J?aj;T#?d zA+-2I{r&z>{~D-8L6f7%Ake<#xey}L-`_vuGHjxW&bqFjpmaYEj+0<^-~@ri{QP`# z#t?o$2gm#zr(uWmmUXdj)=O>9sPF=J)GL5;Z@zA_yA6Uq30GAt;*$432&;lN#dx$v0}ilLH4)JQHtupjKwQvhptbFayMZ6 z%}b6x+1Dw9Zqv_cWeD-hQ;{KCWFgj~BwwTI61aF?iu$!KY5Nd4vaE*U4PbN}&qIP4tWOq1v;&)NG_T6M9W=S53cceVMzpcUg=& zMbz=fo5_hP%U%0r1J?3Y_R%U~4x!j58AEfD-+$?%pblJ8b5;BHRsurY?$8+kdkM3r zyty6q2*N_mFpiq8swYRi7G~HPgeyc~Ne><~({+(3d@oq}#ZMf~sHaZtx1GTZsV8SWk z;OjiSBL7O%;DvxJTP-sytX4`~p*n03Sa6*#40bowKyWnDlE^}#6a?$E?EFW0JTvb(Bbu^PQQNiipGIya->f4Y^z}3) z6T$P|%#C|}dBZJZJ;7Ptx`<=c&ek*b|$RS(`ANq4cxyd(kRqL4-Lw^?_HBR*0u>J$@C2?2)<+@m#YT(v%M+`B1G^t%qTxAM;F zI>qoR40@I$&i8}_f`E1c9#3Qk+Kk5w7;xbOU5b}Z1sdXK3&+R$&LC6$@4ZW@`5Af66(VDQjG(<(sE^S)T(yPm7(&K z%G>WBbN^|E#-&^hH#fJ>qvc|H{jS;N<;t+#iJ+Up;=;mtQ08IRf;S(UnB+h$w!<|7 z*oOY=)vbxst4a1mjtbpe=Q?7qS2}zyP4;40k#a$P z`Ntg~W;W<+v$Nk`T63g0hG#e~FUQ5Cx<3-5S?YAl+G5+%bKB!TPr9v1x3?%U_p*3r zds`NgbX1)6hlx|%QEvxkbd(9SXT$0eSSJ$x=Df@jpVTGul9pF$%3gB*Ah)cgvB2B7 z9G$rZp%He0NZcr{ypwG%L4z{|p}v1cB$KiIyH9j)CI=rbuQ}bh$g!0`)hD-_SG9UA z=@wKS+@**iie>%PQK@idd5(i<(Mdi*FEJ*J=XYMMFB&54=HmhjotYjP4o^4ZngQBZ zdG0x^HO~iW{%9xP+feD5v(KN!rAE62TDaIWLtK@Olr}_8gfRPCPDo32oCsamY>J1~ zRoD#rQnxpPjvM%AJ5smRi$#Xm4FO6|$`IikN zEkC_&-CJ9mM&)GhdMpuV*X=QCJYl34v~AoGT8^W^Gy`(b+glfPOx5=5ku4rUntqmO zDWJ$_Mvu12{w2cVEB}m__tHT0rupzn=I*bE9=2|;=t<+RH}Mk)hzA{iU-*v_il&IK z?|DAHT@nU@zei6jA)UR|?Uv--eS!UNp~~I!cH3jAM4S(e|5Jma`ESY0+ZR{mo28Wy z=bfgeH%6aS4L=JQRIhZ?@c#Xp=lFMj!sT@S+}c+=tlzd@4o^gD)7tQ0*5mC5M^}|@ zzIQlKDESX*XKc~(_r4LSMa#pkp@Km2W*S6J%T*s%AJ!Z)#ExRp4)w%FOA==Oi!mhq zmue(3w?Hglb75k-mY@39I!)&!W=NNk7HWR{o%AqKs;<1Ih7LskI1gD^;~L#N?rv^s zTb?=9&f8193u{UkG;X3@#(@zCNCb4GD>q)| zyyBsfo2WzMW@MjZspfA(8UzN_82fkJ|HA`9fsVodQtRT2|5xiEZcH>8a4QrHAL>=^ zmUxrNKH2sr5$erDY1{qpwpMFOA{T1OUyFE3IFJ6NF_9PX@}wAkYqOzPJPMHDu5r-n z${Khb8qZ;9HL>si9T@YEw#O3GSE8O)q}9EzpA5qBNn*~AVOj_x8M1YFxHtpXK9{Ag zOVyMrx_lr8bce3n4F6pWRA*&H4yT2s>&?^LmDqy=#&`G7F)=feZU@!WI1EveZX-kt z6r8G2D&|;Shhndz zXk(;T)l26}SR@%4NM2WOUi zSGxpuR!hy*kv?O_T2vQIaiM_t_Imy}MMd#OEV@s?+uzjtRt!=1&e-r%LVpgl$K@Xg ziO>#`VeM^~vXOfTZx6a2&U_nkC7t~-NB?U-GoSqJj~)69a+O7E#NkLn4cn-(Y0rZkbnNvAG?v=Fgezb*!bga`c;Tc)wY5W>C|Kd4vA_ z&bEPq3F>R!QFO8Y_;xF#>t$2jex$rItr{+ef?OepOjg!4qQp|}0?2jQ~|t<>!eBX2KI z)91DQ{=s^*-(8IHdU||Fq9=ItX_5Yldka24K_3PeBD`{YStf}T5{Aajsl>TAKvglTI)I090E6?6lf=9c_pFWhPV? zIwBQ{48#NXJ`TlM)jq1L76^r4PkK+|@Soo=eHV{5KTNge7dPyB$jDGb(@F)j6V2V% z3Gj9>M0np(?Gea%A+S0n+m7RUSGR@KD=C)9(is>M?g`|M{{_(4cO3*Hv7hpW2=!BT z><0s*fAEw+|A4w0sox@jw?`Oy9SZBwsl6%Rd$Y2pv}0rqYCeLR?g6^ba_gvf94WYk zf4rE_DQbhp!_A2vh1@HYwEh^qxItv`n#r{l^`-K(fo|_mj9yNcpYYBSFHR~0D)Egc zOglyiRcX^D;WlmC$N7o0$hR>J$~?9$UCZKRRDDL+D{>&G=E-C(qTe3Ia_0^nZdUB^ z_$jc^+hj?|{=pqoaa0eDw*H!Wo-I8IgKK-C{v7Z1{E(1^x{L3@v0yF*Kvv*cj^nNYq3;~a>yGo}bWDhcetva@ZlS?ivF0hcbx z>8<@0^ibMI&CwRjpBnxf5FaiW2YrOs$D(aE%|%=O>V~gWS2A&T3k+#{fJ_5XCgy?r z!|pYgLPe_p6aG)Q1&Zvk>m3!tih>{&;g#Oi(xVZ~QrlV9YuG!yN_hMWeQJlp1?PHy zYF5_Dt|jTAkABY`|L#2bb9d51*YR?F{jX%Stqwu_VlrvYI0K`1*#?Eln7x^JX0!gJ%OcSyO zo1b8z!~SP^b3j6sldE~rUj|)XSNy<`G4KPvyCl^F)%@!o#|v%mgr52poPU_DPVgnY z)5FT|NYAut{n%uMb7+f(XU{m)>u}vYr?i>_+w*Crd6G;=ip1q@lk~QH{KTug#bc(W zg>s&A>m%wvbwkqgEU(3WokW)T)ID==s8>B*3HB;fOgXQ`R&FCkuF8UiG9rOA+-3Pv z@Tcv4IH=^%{5&WAcQJOpenrxe5)$b9_wd>1l^B!=K2K7~2*5JLdRX)l=U>6dR~0>` zA(=RHkCL{Mv`u=R>>>AQ_wOdm3v{M7KSkk42+oPSN=`#mY0zgY-6m4MXnyuO6-V!V z*tJ2$f(pm}kXJHtP188=i6Il8PL;0;t#|jyKS44_ox6w!%^$x-?oCV0lc!K=O){kwL4*m_Dbd z$=};yW^Gp}(x#b&d&81LUUj&>plH~&h;!XUA*!t?V_Jp-9Jf0g9=MUf*qQ=T_3mEeL%3R$MpQb6xgC(-mJo z!(ALz!qdff-Z~>{j``P;K)DtvYpN8hvu9>VNe9&wZqhN{JEswYmociOx^Qa0HEC`j zo4dNEHZ}jUuM8dEO0t_!`;@qBa0qo+lrCq5NTOeu14LnJnTTZ3zEaqcV7jMd*y(NB z4cb)vIkL`jhWc^40AE=T+Op_jP&o zJX0q>oxaul*FNEI9}WDk`9ovt*GZIWG_-2#AV^ND>jrG(kXe1`$b; zV}pndG&w^P?ri_P_c`^d-mQ1uyKh(5{_SS1)oXoW&N0Ruv-8tPyE91hYqpWniIO~F zwe`bi6i;esk2p+do@%{GZ_)bpO!3LGg~mj;@~JzoXA>UD-5tefEm?l&@-?A!e6NdST*9qi1t&)eEglFdshm?HZj3~Q;`a*+I!KC3brD|rH!A0^pP{>++C63zMiwo9u+8ts>nlU)Matyh zytlcJak8p8iQenJEHgyjC}0wW32dL>b`X7klRLV~`uY7>enZPv^Ap|Hr^2oiZ!L}~ zRv97IB5x^4s)@M&u)iD|K^Q+qr>S3DpMPzg#hajS(r$S&?f$VHANCC|HtuL-_8ZZJ zK%PJGcMz! za;sn7;hx;WKNN{mzj(?GYb+RNGK=fEpln+@A|U(j)Lqi>rl;mYVXv;Cw6aedp|w>K zFIWi0(K2$}C^P84aa{Utk~RJMBI1k_ilbzXY_{J*vX2%G`OFt3$#vw8lzQZ9HB3x! zuI@d}wO=%Z@~N?~cVnn$+z|hFBx-H_?OKx>^HT zWitWvC#ORB&&0jY<&J7H-No=&${-0oT%AojA9A%Q($$iKk=nx_4rH&aeli-+a5 z_YX>|*wH_?kTY=;7Z!?&2kdtH4!16kTZ?rq&BZbYztw*0nc98r;;E;7HcDyt<@sU* z>r85m_eW~(7w)y%zHTWowJxCNtMMpHAE}Gos{Z{#mQ3XHLs!?+7<|uCV#dP#w`%r2 zA3K}#yfBaV4S0N6e&JS;yT>^=yvw{~(YfVk?uzRH4o<&vG2%wkGVi^V6cg3Uj%?;Yr`pm$I@tyszwDl<^+% z$p;T)q_&3_{$Ry+RC%7o8u>AGJ2LXKJ-q0FW|j1hZL<*Eq5eKCH1CFZcfJVrE7(3N z#z^TX&iZZIY1yl4W$Mst^UOU*? zO|GVmlM=7)?Jg|&wWq7Kn@DnE_rF#a{%G1cc&0#v@m;Hs8R~zqb4uHF2;FkaGFsaB z+u4{qDe62E6_~kpNv@!m2(}J=(89md^(}Oj1R*P1nWZv9YprBGl@NF_l0xhuz!=mr zRkyh*YAYK5Gi-p}Vx|8KL+lxA5$1PsaYWaM5@;1deGd29kY53lx9%h+`FC#2N7afS zlil7XkrkBKv+I@2}o>t-816+Y(m-A3W zwV9xRz=wIg)Eg;}n7O&R*G1h*5(#I>|JgvdHqie`in?qB?>$9joKA>7sj@>4gfA@E zeI2t;ka2#yzt(veM?*uC{EjKaVXV3-yy;Ay?;5kdp*}Lb;=$U}(*qNaax}HXoehGE za0St>?szYjX~0j2t{kAp7$T{Qo^yXTMmZ@=N&0~1e+xRzgn)r3Wjsj|7v%Z}4!ksOfc z$89?8!*_Xl39?S&0t454WYLEUD;~AAgMuZvS57;u=m8ufGqZwh@{KB^kS5cBfho<{@DWutH8ke%>PAVYep0Zcayw2zW3KYzN$K*VP%+5I70(k`Kn?7SB-9M(D zW-E+KO{?zxkxga>)2kM#kjYA%;^nWxu{PisS z!Y@}3W;P!G@QEwL4qIwN^3t)LD+YXI@$H`nG}-D;wjLovK}cUL(a6^Hs4_Y)FMT3% z20gkx_;ppR_Er|UoUJP7$|tw`UM!^hf!_xX|Md|Ss$DBO{;p;JK7Q@Kaqq(3h^>(D zX*;^Bo7wzDdHDzoY-fT*pojE}?(TcG4i2dd4+ZF>R$jfLgEu7V-kjIgE3Jf>*0;9K zCU+|K1)vHJq+(h8S2t>0tinq5uAr)hh>XgMJ~CbLd zkQ^dbVsca5(Z>?E!jKEuR}wp~3^z!$KzONMyMTFkL*n9-3=})%(K7OcG6QPJqKB7= zXV!baym{6+?JRvF%*4@=HdEs`bqL9{6Qo5FNVW9gN9{{lxKnS<1#?m>gf1KAYHcLL zhsAnS`}_Mp6}BO{ejTz^=A`v+n^r)|43tyUQ6IRED1W3|bgP(jk)#W6+LZ1ONBxip zfgyxrc)MkHrBMSK^BHO8C1qA~f#Uo(p1}Sj;NJ`SwtHH~5vk&1?oQEn} z^R9R$goK3L+<$0@L=J*ah5Hf@#Rt=GTYG!bi{n+{ zwxZz zbNpHnXEduwCwu2%zfUH9TRtP-< z!$Z;dmHpCce%~FXZF;GLxI3g%Q&Y?MeMX9iTj;})Eu?M14UyXOlVdc4wU(lO(+jmk zjcIFZd-v{L*9g)4i^iCJwuIqZunR-yZUR{pebh|bGh zU0GQPSu!@%JW=o9=NGM=tr-y+`Ow3I5takw;memV|D+}ktEE8!N-WT!EGjC3B)|K( zro8+(a_u01oUTyG8wK%ua;;OYWpI$Oxw(0LQ~H)ZwJY`4CR2IIL}eJ0OpW0+;TVdCAChh*CPBZ&b zeJ|f`(iQJwJtd*I>mtlb1v=L`XHV7<1%A!r4SsTwCrV<{y?t)xO_*%OVn-du^_o3o+R`APx=K zwOfV&1%vc?>Cc@wHd=#lOgrf!IY#KqLkID>+zzE9+pBH-lN(-7md0fwqN0{qR4n>n zqKwcCF*ZuKeChlzaC2{t@(-VNmT?Jj=%#)Wz0V90l9HO*)WYJZvCqm;z1+8cwCjsw z6+*X3P@5DONP;i}>O*)uQjGScdi?k?tVc#x)+1(jXqto)C7ekUoExW}z>AWG#>~S* zhvwHuE2Fo7bPZVNM~8=hHn7gS0|5}cdbK#6 zq|sXBJ1=^`BtqWhsX?U&9mD_*pJk#5<+Im2zw$1)vAq8*-y`xnYYvA(aiVTrm)H1R zs0*|QIT9%UqqB2q_WaxPC&Fg%2x@r;o1EHb^U%tQ48l2At{+6G0-eVGe)`X!KLh8e zV^kDiyv|D>*faY^bC>Jmnjj-3G3s^eIeL0}$E`)fQ{hcA_-9eh8K|T?-1m55Xv40* zY`3I?HPbdt8>xKn;wgAbQ_LCCByl6{K0<_LC2i2Yi=nh%y(8M7nSe~@OX(D7{AP(~ zsWjkAg_mCL$37dl`Ot?Cg#?->)^;4HaoX=%&FlB^Td!2oU?6OY-}`B(mfX(_S`1{% z)xxEy^C=eS9Ko`_|D2-11K6n6vZ!uqGanAP#>tuM2C*em<7vyn!zNRNZpfA%_9*bN zcFPBPhVl`s9&2hCbH3Qya;t+(^_teDBQRTlcTpeAN0u5T08QKg_Q4n_M9*jjF`Y2g zbLC_9pL!nI+S#SR{f^l$c~(~3Fd%IntSCyi8k)Wx%alKYbHQ)g&AV$D1Uri7kg0b_ z0JB=e)F5b%fVX##OhA-vZEbaLy1OphHvcS1;%dVWZsC)Ya;(&Wf}45PYFqLFQ(qug zw@nMdSu_QSok>X+Q)W}V0?Z~>9SQe@xZbr)5iM(O)7Ox!l34SyPr>$pSd*HXny@%IRcuKPX!IFZ403X??;$r0LXob5P%{f!?a^3{zPxmhwR5``K22iHK zKvaoQQQE~WH8+#`ZB<|lhk7YnXhwJ9OFLt0R%I-_CiPV&>Pa zp9+(fR4K6Z?>ez0W|R<=fa)eA2NHZnl^3f@#8JRsy9WkB9%Cw-gGobliuI5_Onf2W zqDE7}uLgWF);8}+lRF`T@9yq?>Qha-4>%yS$y6Y|{ar%Bb)FdFe0<#R6^{>(-hbJB z`uUNUjEOt>Zsvn@_3Xa<^77}^)v{HFEp~RkkzzPk+tHe+w6ya_h|O&M?2}xno8HbY zR#l7wQXaCcH!VO7jxiYMBD$~ocX+&NB(PtdvD8oNIDf5tW&g?&NouLqSqPB%$E=Hr z40(aa<5yCNs#QsYhezGK{|pQa6hQ3m*g45TE1`j^S^jlY3q9~qC~m?<@?o(a;UyZM z^633KjlAG`T1^cHBz{0dwb=tk7U`eW1T~{MQ2uSRro!o#$Y5G5zhFp13Qa(uenW)YW;1&r0jJLhrGJ-AoXXG4hlHcrn4n*jlBq;%TH z#=Fvl%c;VA!#{~?`z~w8LEcF1uB|US`t}ZY%n|i&oDb}p!DkHo`M}5cYxeGQ1oK71 z`VaX0$oqwea|c9p!U*2sK3hdqyZCB(rQiuXQ=LT1&a*YjK^bxG7eBt|0~awZ$lxGi zkYZI%rBhD5x4Vh?skh{Ea3y%eu-YZA&*rK|R*d^59%<1vK4P@el>La=($aF=ck&s- z_=0^hWki8Y01N7la*vdM`C5Jj?gx_a{$X@<^pa5Xc#Ll8{mfcxkzcE6Z8`V~EhU<5 zOULLC1+HG4tM6b1XUB~y@1?viY#(Z^{li{XeEAX-5I_VW+5($wyt8|n6ooeOj?v^f zEfRkh&akz&KNHvADLELdsuBFU$&O|Y*}b!{*M6A{V)n2#Fuzm)6z)IP z<~eO%qzhjup4bt>ZH%KlA|#%u8tR+mBTI9)XML&Re&)GiGB10#7fq&u1aM?usyOcu zwx1$@$ob&OaUH}e5o8BnbI!j7QHYvm3 z)>(^u9J5b_BzX^{V2_Wzbs}!8%Ep3&qJ`q!QWGAne5b;F=*Uqr~)K z*ZxiXzICyl7g>Sz+7#=qkhy8SV07!JkPf#BB$r0%)$Gr<*mt0(z-rk~U;h~OWb=ov zWzmr1pT}13`fQqpgssv_W|QFzQsss*?7)@FC|JN2bW; zkP@Oe>_d0Ct;@*z@skeq+1hzRLuXMUcfGA|^jM25GLfR6&e+kBDZ)OZBn^CRv<>(( zty36AbHh&l<<5C&c-F>mEP_kdv-=cM)US!NzIFSpPb=>%x8R011nFa9sztX3@QP(o zm6V9c`eIW!17=}qDWuNC!yIq^B^B@9w<$%=*+yYyY{FnvSxYTh>;2~k(=69|@A{=b zZWSBdS}Ps~m?1z!6*5J}QfHA|s*hyS(XA81VrW6&3fIqcN9#`T8<+ps#p40lt|ZFs zP-kmphbpJuzwoq3FV|xs%6MdJrzt}`?k`1vLp*_gjR3_cMd#ZC}iEaw%t+~$P6uY2*9UxPCsl1 z+xo`F0uwc#A}4L_j~|rd+nX#odbx{!*mrk+-bk9a^7hu}IBsc47d zFK0?Nks2lUtFZHsiH*skRl}(hcZkdtYsY~EliK}KmZE3vM*I{wPhr? zTW-+ZG>y|Fec0XOccQ-3I`H{8f+8c89y*!ts*>K5(PuL_I@*iAb_S2E3r}RTJFdjV z-#quG{h%@#;vTmod!t{srQ?I)jtSTjZe0=`x82`C7MoAbKo6+amA4OA1|aa$70$NN5p-L$i6k!yrDd;IwJ zozOlf$;6*ten)E%Occlj#)p3f_97i>>VV8a5?wFH6Et9mWq@ISRXF&??)Mzx)qJe1 zZrJd|>mkEy3MylgdJr&DN| z1%V-_+qxFJMl`tKO316ayn};-*NPFng;tBf>+L22U()=j-JH;%SjP7QYOW zqlXAX9u`A^&L#r#4+9&D^BsRg#_C492Dd)t-@ItyqW#e6Vda+WmcB zQ&+mIdR3|9wMdAFud7p?u2VCKcsMyqe6pbfc+=l~lVw@Q&c?KW?BF^X10h)fp1$yF z4ZrWPF`O;q5PuvPv#+nON~u&zYzqE~s?*4eHo{!Y^ZKa0ie?E3z& zFEsiqft^n>ANMY5%F|y z{*Tq36tc?JZ&SR!bO2l%a>m{^KjQbp-p5N(k0h&)N91lpJhICT(Pn~1wQOOUNau;; zhjAOO7?nwfgEdUPa_WO+wK{K&8!kGEb9x^+GPE(&-sw>^6a=b5rpA4G zS#quljgImI@e7$(vaWxmGvbMP^Fraofb3F}YiIIx?)b?9o%!nt%(s&6iXn0}t+)-z z>Xq+e>vne{{C40z4eoUC^k5DfFl!VHd?sFA%*lScmq4vP*y}tn&>Q2YubF`C2|>kC zGI5(QLa;kL;F6C}WNsHMi*$I!z5npyvB`(R{IP9}Y;4bZW=GvWsfcYDG6uagJ8v0y z!N&T1uveApWc*8nUE)^2*12M(7?rfA8a(Isf5s-NCQ7=RHi+eqC}unH(XZ|aGDq$@ z+RC#o-@D3E4jP7RG8xtfbNd8`*xeoz09|es1e)LJKjxeVS*^ERP2mU85flc$wj?OX zwG;iZ%1t532?*`%Ior+(2u^yr%AoD88oW=Aw?Y~k8gz_}wY47fopV4!qXqb>JWDoA z7vojsb|<5BE}jDQMUgwYu4V^wKy`9$^_!^(^GcQ6VN&&ItWkAiN3vX0@?l%2cgYmK z=@&z#_dz(v{_>3+{OXq|1)_wPR{mKMDDvgzQp`)gCL#rLiB{r(Yn>tfCsr$U4E3j@ zm=PkUm3pPmHp|)=s9o_;} z_4lQ8Q&NpW1`uSwt^JsFyuZzT{ndrI1^wxW3At@;ITIoN3T{@HmuLgNDM)J@^TIRm zp9SylVcph^(MjRxKc9#cLPcPERoNr;&gl#T?B@we?QAjBNb1oC_m=W*cC{^EnHM`V zDS)5qB~ktMAdg`{-eX%GV&wmUM*P2( zi2n-7|F1-7)>}X`k<0Gd9%c9cRAq2b9`%H+QKzo1>wE8kW>v%eD%ePW73`3PYZbWP zw2R{vZLn7$yatDa5F{@U&0wC^D6nz!y9B-p@YP)Cp|v$RAWOv7%SKOSAF@`HbGUz- zL`&xEgP*Zmw_Ji3JKVnOar_-e+4IPQR(&ZcDgNF4gAv6*MTVr<-EN&XRz?rp7vw z`jM@(;-*L;c3(_ZG|$C%tNdWi-qp^vb2m9TUc3Cj+wjnH0Jmj~#zkXU$OcN~NI(0G zWQ)x~p@$d&G7$ax?=uTA0qW-E{pp%tSy+kPMQmx`;$EUjvI_g;5)b~a2p ze$dKJ>9z*0`3rdS_GT$0>1uL{0Hqyu?aZrd`J8C11mp2l z;^U0$?4(#$(5PSvw|_^g5v0|f9Z%5Xmr9C_l_}hmKq_{T#9WS18E8_Ak@Ejo-7xvp zh%eS#3*=c%yBXL0zGBVA4KGaFv=iY7qUBG$OVw(cEMA6(pDGW%4Que#*y(*5)H72= zo(5$ftM7@Dy0zim9c>=$Tw<3!G z2#z+Ai*Nt6KHIZBlN#l?yZ-21yXAht^l4YzwRJalJzd>yMR8&$929Tzbgu$U)5+~; zfKrN_4NB%Y++GsXH`Ji-UBvY2)s5^v9#S&0Cj{WTwbfu#JV&&bft%>U`nw0)%lJ%9 zvOm;)o%vgFLxw%7aMyH4hMfi!?;Nem-=_=5Ulea#eYBvXZ#)GH6iV=*!xL%&AgI(b zdS__={yMh3PHL>9a}CPJJTXrPa7vPi!9Z$&IRLA_huG|6kah38N6fCdR`B1%v@pP6=r7ap|w4y?%ohUHffLxs}jW%*fcFI9S0jc=JF2T4J@Rep!lt7Xa07dTLj zCFrb!)Nuqp%Fduc6?-jQh}y;LqKz-odl(x74J=)}wwKc%)%=mwf4q&y?>XK=zr3i? zSC#{`I#%kCYL4C3NHyfsfU$UKt?a?J*`2$0Q|@QZ3|a9CG=t)(SoKrLh30A}cFk*3 zM_2dN_(}dv#U}FGD-ZfcZvxD!FyI5ZNTB&;Cl&+`y6~1y0~{0)1=G_OgSMi8(LnV? zRp2Hv?8IGYzLHlt7di9Bsm#fAra8?fHpmX#3yt){;7=jz_2JXl1Q4KW;#^;AhzmCM*FpZT!Ru76GML5mkLTs@}R|0MMIQ-=@y|lI+!CGd@!ai z1jQelVxHX1-F;X4_(Fh(C=|>mOy>Q}Q$H+)A;SIn^XF3{UK$Qmzj)5bostTnN-;v8 zr4Q!<3P=Fps1H}if4#c-d(is>#WUjOmKOIA{kyaBw4mSsYXBAfo4Jr;`yyw|VdV~-u8xI7oWJjQfg2^BL&AuT2rQe0e&8F8&ijUiFP&c##;ZMVgR98TDzamPtKwkwyHE%=d$K=KF16rd>=;EQ zD3db#>{S=^B5HYKR2(bDbYQ7jB*)8$i-+pv1|J-Zu~o{Do%vm}zjLM#iJ_$n?)(?>ml3Y|^yanQN}tAV2Trp@Br9qt^AF;++|;3z7+ zCrmk&D7NireEVisKxl)c28uuC_L7Er0QuM$mM!*sntK8@R_ey1Z_)iN7srqKdq^Lg zq^ks79iw@V12yl4uK>=j8nTu+9W(8YplYX`E=iEF`1`%s@OPMCd(t(vSMSMgG=o04a|C!cfJ!OoxEw`-K$SDtk990=s^&$b`}rl5kJf6$ujM%Es<7%LyN zu8N4X*xC)>7#*5gfaC$1Mnwl!Jl0h;!6TVt{Xm=UniP$n z>mgr-TYRY}FTK>OB_zFP$B37{Vx0O*Spd_gD(Xb8QsMbb@|rQpKu3NXH~ymM4=2X1 z=FsCR61fa4?dZO6Y<&H(`*AHBL{UgFqVWjT$Eim!JbpFCmY#_jG}m?=ms;o+x^A4k zZ5u^C9OY$Tv@y1iQAi=wzCmOF7Uxx!cW75MWd4>61(62G7nELVO$7Gp*z7`%PY@>d z1oe19ESp~*fLvE|x7sE}#rHJ} zEmEpMRnqbdnLn&Lm`FlB$Fu+-U5ffee?eHpewR{&AwxsN8LjqZfmr|%6ue*9j>N!L z^QZ87M|ot>kU{<%)4^EPIFlLhBPb=-_V>S)6*4n1K?PhxC6Dbz7+1UO3>wkE*d+}h zQ)BKodT=WTuGD2yJjG~RQGC(>t_n&gf{^vCMV>=dKB(a#BV{lS5Rc6E?_PE`HYF%P zw3>UNb$E^3%M6S+j%lRB^g0rLEP9*NY!&}9K>q7YFkCQV=;+QZ8;dGYNg!hF5Lca3!6;HanQED&d^9^gEC~^zHi1#`=?y?`t*tdUcOlB9D6B27^&3D{WaH@4Ul#sVX8Tjg@B5>X%LtB;_PA`v{v@T*tT~B zXm+ru2qj@Ccu%hF2uMmk2Qey^ue#BHY=hH`-boPeiM41Z0QWoGbkre}PG$KeCBYoX zVN;auIp#^IHiq2Y&#zf0IcKsw`K2ye>f zi=}8Xg_@or4F<|pvdK%)&io1Zv$`9?LzL(~o0j1oHKM)H4K-7gcK2t%?^_hHWMfD| z?4UUK~L(=9dLpVRiSvx`KQ>&SlM*uU5&`>Y;Y^5czez4=&e z%Q?O0QT5laUmdClrHomee5uu8NqPD1H@mqfQF0Vw9TIY3ZDr-<-zBgY@(hI>7Tok_ zS0Q+xtno_@7X2A%?~*$5(7x6DHR51vyR5_OW^w=(E%0I)3}cN`)VKGa$YCE0k*IoQ zSHx;tqL)(t8bO;GH4I3cYAh;ucJ6}qA|N7i#JDCZlkq60%_reU?9?Gp;#}T+j9$td z${q-mu1NY~wct4$Aa$$F^Y!q@=Zw^OHs4%fv8gpI+ZPxm^*vB0N4S3LKAFM6{Ie~3 zo!$gfo9pHKXU+WV<&?Q?11E4YB8b?&M`7Svv6!pJzdK1$$ztm zowxokgBf_rkpHn_@PAe?KnN87e{5T;?ZuJ)ebSExmz-BB8Wv5eY$>`%Hl@+U$GAFU z!Rks>JGIHWt-E&a@Xw=MbYb(ogkHBqmmAa*5c){2Rg5VE7r`vu0R8nDW+?=Xxv;Mk z>d;aKLTHsy%gncoRfej8zq@+?H>1fS8H+J3xaipq7Z(c|tGm99(}f1?JA@t9_@1>+~+^l7Ju zo9ny;BEdEkJ;(QNGl3PW03&6K5mMuplZ##fBV1HVY7I?#`sbKRn!prJGJnuXuAd+915mD<+U z*2K?`9Wo@?nPOCqf;$hYCqZDT1RA}!w^z`=WZMGv5V&_YH#c?kfFS5%P@08$J~$$7 zbzZAef2pRb`ca4X3?t=7^@}EegaCn~Uigl=>m#s|B(NYd0agNn1)eli?~#@L`clU? zyCJe<20;#VUtnB-?8CT-ii&;;UV?Q3E(pNN;Gh8Pdm`)z`~yfk$aCI74ad~@{xM{B zNL-f!-yyI+K-TrI@_Tnz7R1Hk?o1>sm4(sN>*ba>h|BOHQnPI1_N5#A`(Q}a%l(W2 z9Ugq)X?cNxZ`J-dxew4yR-n-iP3A&lr8>N~v*t*yNk$)xbS%pVUOj5!An;bHm-cG> z#;!tkpJZakr$a3_J5=cPv#i@ZF3*#H`JLXldROX7y;aeWboQg+N17V}==##nkJ8~& z!|c9s8&M?QN=ZQLUWHb6)%m&Xti)DJk7B)}`N+3uHd&6XJ+%|6QAK{aT8i0yuXR^n zNqVOojYG?)=uAM>8e~I82)`$%PTGPO;B>f>V+RM*izr3x8W_;_OE6P~Bb=M^FeUj= zDkn&WOu-h+a01}&Zflp$%?sW;3=YVZRj0BDA`GfX*Y1b4fDqtdQXi5W13okGrLOO; zc=%viz!I^(Ti^Vrd6E1B8UBN*VFqjx)2i^@M7!5@wUl>)mf#Wqih-qpO%TwyiKQhe z6v&J9?jCNn7}h|&dcn;MmXQ0>xDu2p`fQ#790&K#lf_X)B0&ye&(*rEhq@|2a`Nm8 z;W$dbTmTKgC3KIM9#C-RmTFrUQ+3f0@4TB7xJ>FN^A99Ag?&QKKIC&ETm}$oEo0!2 zE$Q-%qYo>4vAqQL#xR+T3yLO!^c^{-+K&V3wtyPJO9Ch-#J5~AtjQF3Jh1tT$f@J7 z9ccr)tVL8XOvj!nfZGIKUNfEW_fyAVJ%X5fA6GhJ2ZlLddi!rx(;>@)=mEvyha${r zeGJCiz?9$|a?(JreXt5Dr1-l?Udi>d`gU5TBT=TaP%+=*U^lR9$XcZ1IlJTOjexPF zC6%;QEvs$dKR@oQ`#H}SY5Ux1bnZ+@vapPfql$V#JV-SeqcWYl?Y75Z(MRgm04Q(& z0&qHv3`80_8GyYTHTt>z$ZNKzO>1KD?MLaPIra=@d<;G(u6M{mk*V~H-U6A2y1R$< zcI9_=k3;{%kloNgOK17)K0k2Fj1S*hy6L^&hQtVgQ5yCHQ}ANG)H`zDLXzcZ>6&>_ za_H26j1Z};Xndg%=bq=>A>mY(P~DTQP&70;HYt0x$m)UvC`F(d7rKF{y?^jl>BuN> zec&u60-;dgsyrCRQTo4TSMP4~1t)=y0Apj7_ZG0x#@$%9dMnlT{3iWyMEc9=Untt) z<16r{(mVd;C06Rx`IGPaK~D;t%-;U<#QPojWMSy?mEd>r?Un=<2)@kmDsNaUKW#|-!FDz? zb1~0n|2PT3-whFR-&=jt9RyteK{BFhX5TlRSXhtwMMcgtSm~d%>#DyD96`{4@i3@# zyf;Uxld1J}%o52^&NZ6S3fDw-LzY2xh8dh7h+ts6o2@f$5-@*qD%6=8S|bAM{N)c# z)H>=^KEFQm@~I$c^SfR;S^(oasr@Tc>~b%5K~V;4G75Z`Z?A9DZ?%n+*1uYgtzvZZ zd$~9{1JU7U@Y5R~>11U^{U%mr7gwe-mR3Aq{Su)dcilpQ9G=wt*sWb$_NJ>OGSP9W zYAH!y`w%!(d2UU^AKFjU?y9nVt(?8{o@SfWOY{hvy6_RBbw91_zOl&=Rc*DBfNi&g z0WdgHQqD^(Uw+I6s@1AWTH%tcvSjohV19D~Gxy6HX^xL1ID))d;tvU~fU{@M5_C03m$;=mBX5mwZ>p9q&t+#gpDG;LtP9~-21*VlO1V>C08Y3| zCN9%#r}Z6fIQX@Lpjl~zX0L}N0G18t&iL4U(Wq)OYkpsD+*TC0AZRBXk{hCo$DMS^ zxXP3DbDX1E0%4PC@H`VXMx@T#?KI7nLf@8yk5}O1_oU#G*g$;?slmUDRXGp+8&HA= z{~=W7!Nr=Yei2IOlVF#j);y%4o=Cheb;&4GV>u)7Q@SAl`-p-uXM6T}7s#W)ctMt& zZ8LP}ElcaHM}0^u{yOhm&7KZATWMQ6iZizJ3AzQ3{HWfnT@>&^d6AR3HHe`yIS%TZ z_g!V3z21gRjNnk!K2~A+xmuy38|5;Er*A7!U!$2st-q4vd8&Sfd9uN5>dp~N^od%f zc=O_PgG)=nRX65GTS})!r=4yclMk8IeS7+v5)0I7AU}fqnWOc%(~^q;O9Jan1_T*Y zGLjrGw_J96`a~>~e@~o9r)3e8|GhgZ_+wO{bOegmTS8DD3|4|w^k&yVu6T=0}$0R6#%b+DGMF~^`TTetZJELL0tz$C%tE= z?eoP+j^(0&fPhk^nN6=MD1&+ED{U{jynecP%O>2GFFhQQNbDf|(L)*lh(q?`vw7F$ z#ZOsRpoSD?Zi?Y#1wnSmHaKg|M9P)gcVww@W(qu@xmrCnWL}=f1kxK?4fq&9TZYvK z4Sc;`;J1VV8$Qn@H@8*puw3IOR&tg#_@Z)MtMt*lwBq&Y+viU1JuBiDh;4h;tEw`D zbWPcBC@125WRED5*qS*9Zf$IUVyGfR6C;iJ%>F~B=Wbs$w&tL_#uBm&p{%FF3x;au zNS^p3gHxLVf&(!DOgj8qWr?ck?A1_NSYM_x=?v&p1^uEB%+92wq_pHm9A~F*&)0`D z3^q|PfJslrX;G#hWnZiplZ2e?zs;Q*#zdu@7Hy2O=~$D@igvtq?I`J{FkL+vDe1VS ziQEHC{J9N3l3EIy;5})YDhx3RK8}1+HT}UX4tecWBQ?TVw51QUW6}{CI~IrP_)k$( zNSzBd+m{?kH9{*U?4AvEu5DZb=m>RDJr;57Mfz}{3t+=90RPuUSGjs7&?vA`gTew1 zmerlgbrRZE^VM3s#Q=Syr$3~jzwYHPBX+(*8cdDu+2Z>qu68k{dbvr7ex#_kvJ}E` zceZDyqQ2_*g*W{yVwX_RAOsgPND82ry#G82&;G`K>DO_M>$%WK0i-}N{XM}j^9OMh ze<5;g^c9+F3Wd99ZWQPA3HOlOLkKKh;i;W^_?AjW;(nkqaymLm%EEA0N~B za%+9_ZNB@*bim)W*4O6FnS)a{+4lQ_8*Yopf6RX1f>N|A?FV?O+}t{Ip*qVVqQS(_ zTdY1ar&r!X81y}pAQbIzIRV-O7~OhGWNb$x z6sDKO?dP4~Rsnr2pF2Yy@Wlqy8I?Y#Ei+HX?O(jGf*QDG+w(-2k&^6%ljK|-#tftH zSTTwbU&NjxG?L9xx{P6Wo@YC`99B%7;~sb{8V~Ib;NU=+K>cyOtq^ut=2|kC$0&En zbg`@MNyMM@u;uJfhyjCfj`y3|CqG3NYH?IFRMf4>NSaa0^0ELp>SZabhHQxkWlpE9 ztqU;m#5|WJ{#fM3uM2^1!3}tW2G8kP?Rx0iGlE#(a=^sz@Pi%5_G$#JaWzm9nrmRY z?n7)&M+nYFM{Tb9EM2$?mg>Teqlm$`w`}#$HUvS7H~<9*9`=|x7X10Wom8=DP+fs! z;JYu>EFeCJ&$EneORFJMy_;+bhK3BWITvd2SHC`#xoLFPIp1G*D)YWqv1Wpg9z{l} z-<$o(SVR8lOJi3wFfHh|MrN?7V)1uDU&We|k4L}u-RMyqiU=bZ70z3kMH{gx{lX?N6=IRR#XP+OoU3}hx194EE? z#OJGPi##*lgU0Y`0-TH7mU7yCYx`e<9IlNyUIRhpdQ4#T642|ocMN|7{*hfIKEcXv zQJaWZCs+$4hW>jiUKgzkob=br@PFyuL;k-s@BJSzW*~&S`oC`v{BPgjKbvtV2zg>` zEAmA|pz0$sHMB^9O0R7o(^wW-%o~J zx^pn_ub#NO-=3IySU>QqG`Wa;!|(3a4las9n+cRL!PW7JY!V<11Y{^+YJfX3DwBND zn9rBslKPyU4tPSHmmU}ZD&yFPlw8^^uPT5oPTY5PwC`2Ruczvd7%FB(*$ z;A3iP+UbRSkhv;h@kY1ef%u7jj0AwP?{a(Ix;1IVh=(*gGINlU!lkpzdw;}9eE|gj zcM;qcIIh^vSsVtp!h`I?kwtD7G#8+-zbM*;Lzl2s<*6k(faSyoIy#}R$*+bZK0aQ2 ztyuVbN!21sk1tkGOllx{H(}{O63}pBBHOIII8@eZFi{#jM^Rp+M7__JoznKYut*f4 zNAEz*)Heov1HLHOKyq|7`n$YK>>HlcY_$vySDc`g^?v4&=++~pBawfD5NUePrK>@5 zJU$dciXH&Tp;8JS5^*dTMS?I(+Vu5O4esu!4X-N5S1QB;`S?10o){AWMvyL`jc3xW zA}x4%aT>6Obty6;z`QY<`{_cZ@ZNDAMMr*|*n28=0-;lcf<5$FK<}5xT@n;@(Q55( z4%nA=+Z2Pu09p(IzcL963+Io_{~S=vG}!gr@`d70r^UcR4#+(RclPXr;trHF_n~j_ zE_Y9j3#L<|v@9XdA=6s1Kx2=}EN9pk$wvBig->(kXrcF87V%K0I=ob|cq^|{VyRTu z?#4KsM1)Q5?#X7I61-mw&R;s&bcGR|F*>}aVDiD?aKI=5E~zLux^MT3P=WOXbPb4^ zD!9k*gQ0aZwVS+XC<6Se>v8x`B`Mvu%RmFbQ3Amc{J{_d7>xFcSZs$zI&4 z=SQgtZj9aCPIF;a6fb>S5?%u9J$&vqIFu5c9Xsk6NzCp%T3)aZ-!^0=zh6Kt*-+}( zOY1koH3N1LXek1I3jo23oM6!frICh`k~NJ@?Rt9!p$RIyX>|lN1{vFP4_YxnXCLOBIRa(|Oz%C+)C{w8=1F~NZLw1iu zSmb7fw`A63rDpt?HfX$Z7&bI}ecl*-0ZYVY-`3uMJ2EfEt49j^0POwEjN(|3tY8g5 zX41H4q@Ae&p`nhk0XinW6YC_GMNO_RE)l$u&}{Vi5fsH$=F)p+LnPmg@`+K{Jrg%r z#l<3R7KC-+NZeIQBK~`TA0&qXoEP=Gr1y(M8D~N31$+%Z4d4}Tjt=xnJ&4|~-<02y z>qsH_+Av8VqcLdXhoG#e7&@vyICyaQ?$KcrkOtg_3Oc@R8aik<#7t7V{XajVy^&@Z)ohPj=6IlIa?); z0>xsa0a7pYp>-rlw4Lex<^Y{NAI_|E{GN-+#yodGT95{b8zv&lx!?(!b?^_Y|2#)) zBf$8S2j|*ftZTPKm}ivnvlJu8LAJxZBDP=dan#2>vJ^Asyok;2$Q?GAi{x&8qJI_r--h|Ka|7*y+pw&L*PzP<8cR(GMX1AIRs%+El1f=U;De{gvCwcoNXZK5p# zej#WS=qf^$INAq{Rk_E4+oyikt$-2=J3RU9a6 z1j}!H-QDwK3GC_jGeNa}(33vc{3m!_lfo5)+x&g^D=6-0 zGnwwfHu-9&a$0>gC9c zVY0;L41P%U43$_xiL_gdq)&t@LeK(V1q*JgZ~%Xg5Id||W_l*NhxVPsU zFuvcajQHt0uB@A<$n9>QCA2DlL#~zZ6p&aG-piifXYJh=-6Z5+%}P43l=IVvgVqL= zb60%=q{Q>+258p?SJrj%rL>Bz#Z}9qV-QUt2SK1QIP$Ne(YK!2u9I4x((F)JM%5NO z7@6fBCRe#r*iV)B_}0*)Q8!i2UHg9G*!RL)aYDi$zf9fYeH`^B?9KJCv^dEN_-~q4 z?8q+-A?%Od-w&OhNc+A2{b)orVP0i=zExscBOydW(=F1fWBj$*cg6FsPUxwchJ0#1 z#U)>&^z_u-Uka}ppE10|Nngt@?mFUevY*)8wFIH7>tlbuP-!M{)KXMXE|l=$%+|>^I#PO6PF6haW3i^uD!z zHP2>fhhMxP6q!D~8Onb=Qtj*AA7sVdEQ2+}_2+Kl-@j)bbx;0WhdtgT>Ukf7+c1TX zJ@zP~^j%$D1^PBjJ4;xMD5#2?SSh9?EScsJXEk~cwuz$5;_j~a_#F-`?P#6BFxHT?Ut zn<;}Dq|z}erxzx1J391j#3>U3*Owdd3SSojUehX*)?*;I4 z9Dng2d0FX@Bg20nYLG3fFijNqzpuae#QMKLDoNLW{lWz42crKJ11YbO{O1=Y82w5A z)*%TO5JXY^=O-*oQOy5ZIOJT7D3QN6`S<%niT;22hUq41|9{4T<%`%(~Hl3p}I3C*3;f7zTtK%%+jH@7L(3jJu{QT?UTfSCHOE+%Z zmbSLO)t7_tTm&u5lH8tkIQ(8Ob;Fo8K3pZiP{P|gKB^NJi*Mua?j8(axQD`X=4%Z+a~ZZK>x9m zA7A^|yj2Qv=qIKlKcar`Uclo3l!2zE^&>kdDv+XnKwI_i?!aN(q0Mp@W3?L<#oF3( zZ|{e!a^|a7uWk<>>@#w3!0#$Fg9Z9w-A^rq0hB4iFGs9oC$Vd2YM9)3e3{*6S$?6# zM4FBPCL;8%Dlv-r{d;w7?GR`N%ye=X_V48XahU33tf{*()^2C9ma*FunliY%a($0x z)i*NzkJ??E*!O;drWZf^or%jwiWSH+9p;JWMUwq>N#5T%|BRMcf!ub;$@^4fCL_|j z+O}KD+ZK8dH^3J<)k2f2gBcqOKN-bQePMn7fLr`-{`GXG4vT8dF?H*oH`#vt=pc`6 z+sM@5*?7ET^Aq*!y+Zag(LY`lz?o=GC|M&tWi_87UKwlqIYhx!|Httzca`FxMu>tV7!Qnx)I^df1^pq%Z zz!>G{%z*ZF1*Fvy+o7lB<&q$bzKMxRsjOt3o}PA73?0B-`ATF!-v)Gtcp%SE(a?~Q zSbbANkxweEGVd&|Znc&?~~7KXQ3%OXfe^|Gi>kKkE##Klen0oE(DhU>5vH+^62 z)d9c=`x?zW*ZRKI8(n1d`Tzz3vcA)SO6>YKf`0t|eZeG`0h+7W{kx3FNu!Pw?XaAu zwD57;|HDCPaFU_N-9*v&f@+Q)`I?XHOM}~nbhKqWL30h9%({mUdbHcC%SsHg?_JOT z#dedh@leuIW(Lv!*Aw{%@w#(iDOIggwZp^bW&ezk8k9agmVEy>D%gpfG>whJnoF3a+?VQa#K$wx1T65{d3ab{ zTn%}5`b*R=JvTLpGv}}`qisj_htH=uF1}8iwrFebG_~+#awNDN1?zu0C*FwB^?{rm#TCH{8FG=8yL6#b6-i z-@meqgBQxbr#G6WQ2U=+DgKkM=1{KZt~6{J|>x?ArAmUo+s#Qf<;;=aIC)4n7%6w|( zLBzme{-;7YY;=I;=DLr=1&TPw!`QCutn|V)^BPxMQh8lnMp?p4qS1qnb@~qG(u2;n zHfVHC`u_bS#E$aQyK=(9q#~c*u=h;)Libjrc`~G+mOf`=?y>Cjo(w?_kV9QmbR%)` zq#$W&%0XLl)f>XAuLF$Y_J7moLSO;~k}%iB;@^QKMB^S&yiF>x!FKpu+_EF6iJI+- zPW*ltvZpPmGeonE$+~?hV#OX8I*@*4xY(I{dS>PUw#%>ij|A(&Yz^SeD{h3F4`!EE zK;-IMW@bJ5kbo2P%E(PmP9}i?M<8R}Iu#u93DZY%AC*_Y;(_MP_d|9XRI(`=r&P5X`a2>yPw{&P~PKx*KN4C?#+pi z29y3gbBga784t9yUh(M{JpyO(^dUn$FCX9ICr`SwNj*q@@yESZHvXI%6N)%pZ=lpJr( zBbM-?Z$B?jXmJo`3`WUDvEuMx&yC)Rc3O%J*{nYNxaoL^s}6)#7`WxJs=cKiA+jBG z!hW8s$825+E2TxqdgQk3IbI4WKX>xohNZ2o7w$g}T9Lykq;QnQTRS);c&uvLLPb?A zB`@#H$B!SOO!sX#@0e&|Aw#(@OZnhn&R3s%Kk)3(bV+!0ifX9%GcQvBvh83uR76F! zNrl<3tsqGCif#>;+Qal=x)(ynL=~9#okvM-|J0_c>a*pabav}I82cLW;bSt1bE4L- zGI%no5dD+W`VVbZXTO|fLfJ@*B6|ORT#x%*41ozWTM?T#p{N`XaBR35@5?zr-Zyp* ztldkIZLT}WHQ{lvCs&wXea14aZ`rYS9e0?1j+Q6C(-)ytOuj=&O}2RHY>fZD3X_Im zoX=-^@YyL9nQceHMMsC~|JZ6GH*BJawu?IQdx5!9uMnDczw-RN+A*`6nNsn)Lip;} z8*%?dZ8C`jHs> z?6EbgJd30-9Kad?5e6J`ziAF2M!BwdEzUtuJdpS^tB{eIiBPJlssdr;W~{R0nUFWH zSv`+?Z7uvTC1=Zr`%b^f{Z8f0>}$5{>n(##Wn21KwBglf=bk~ZbQClTTs7$|97dM= zda0{CCoh7iz}`uGMkYDR#(~Ww>g0hpbfk ziTo(#VvHEjiRaQ-Ji@P9?EMk%GADOPNPPQx+ahnt=7v(PC7ZSvYqJq5>h%j^-_zQ= zeO2Bx`Y??T+HuAz0<7=SZXCp;pCpAhFX6b50VZ^)9_Z4=5vK1iKE5u|KvdIyu+F>VPvcF=77QQ3pQ zd($Ha<)nm^se`>-dwkK0CMTaiWyg)Gf-Cp7#($PC6TLiYY$&&G$@kz#U&gbsWaRZp zPu}Cl1tqTeMbBCPaa)jgF*yPa6@PTFzIWx1$1^T(Hd_A3+dY8#cvw?zW$LjyZ1#^S zw+T6)-?X;WVP7Bx2`~5G`1Kwoq>Jst%qfc2@^Gnq?eTAQSmF8^PocYPL%$!Ex8r8= z((whVP~w`XIUv<* z9mV3fZES6UuiRCUU;1VKI#bYFSmZjqX{oG}PUXb43=;$0UuA%9{qVCfVB?`4I3s=7 z{DQ#iOIK_^rf4=xFSZ}C;0rQOo+zFDZ2Gx2kGGzSdzCvTEFWoKVZ9*6qrRNhwhR#eNTtno3o{Zw z=jQ8i*-LBJtHGbvIn!bT9CRPU)2tqr8|l%*UM+s4HG6Co0<8T6Ke~!@XBX`kG4~(c zURdn6{W6R!Q&(M8k#?{b-e20TrcE@sbc67q)@7@-f1P0GA0n!FoF4>c#-EDwb|TAP zO*rv#^R4T+y>#FzzgW#nyzZ&qYcFeL1uBgTf6Ul6?acx{?^t z%FvwEKWww5udhkUyDhYA?OBd?CuI`EAA*!$;Q##p-VUj^CnBjk__3FGwl}b2ut>QPTl9b+Q@)Jz>6|64A?7fs8vN!U{%30| zZoBvo8`7K3%tTcgrS_FA9J%%R0jh=*ba!v>kn;+$l#Zj zmV0kExi-yr$jM*c$HjI<2}^dCVCBMG>NfoOg zIN_9ls3h$Da|dy{W`!0`7cdQ9Hs|FsJ#J8%g>JnN3X|KPG|jQSo?lS$N19uJGv5`(tFL-lIf2|}0EtW2Nxa(^xVLWcU|y@uDIk5GA8fW(HhBt7`@m-l8`JHxYMS_0Yr4>Zdy}?zKwi z9jn)i!l}AC8vJ+E1o*Nf4qe=e>NEt{HHkJbFc!rLh2FP1ljdpCGOC??pKJAk=`~k^ z2ho2!dLdWm=jU@QJ6RWoOKG29B}ry78QFz@bDd|@P}j0)%-V`^%jBrz9FTY%gHjy6 z4l9nFuX{!H3|dkFY%j7Ox(^{M1bJ;89gs+ye2yJFYlC4#!DNN4;bUQk66Jdc+D%#` z`TC3OnPDS;cblt#<#?c(qK1}M?bK6{ig*l9LfU`T4T+4^+O2`d|$e?HAd^7~6%4iP{N9jD-+p2v_0k!jc* z$x$siu}*=4J+{e5*7(Aiz-JfUy{SBOU+8~~4OEMh6ru)WmdJXKH0KGUQL5eH7%N8X;ALlt0_JI&^;C z2GZER1A{0r=#bnFY-qTtp{Y3z9ZBD^v*B;?yx%?P0-~TN32%V764Tz<@_jYblgtt}E z)wR&R(GlWb2!DuPbHp(Bt7Y0vZw_EAh5$t#L{3G-#A*S*IB^laEGCVwc=3r>=C?P* zwz0PM_5p5R+NsX@wGk&<^SUhl0jixt^!;zqjx!l2zRYQrCy;g_qnpF&&ZY;-7#g6u zbuExw<>49in4AccK7#7^u$@wSBqY64WHd#Ym6f#&Y)Ef|c0b6@KNl8mve54Sa##WUb8SrRxaM6bueznIEK7~*PravaZ@;`?cgsUJ`jX?xNlOT_6>n*m2%`;8 zN%-!i-3w_bRYQmZa@o?Hm|a?G@H4(g zsd#*&a-BMpPk-f!d2`+7I6kEsO|wUH{&IntTCW2x?*WmgPDSM@AP>FZAU+3i954;H zsQNLxp8G9L2lYpiD!E5TLo3grD385TdMG#~gwXOEyFM^BJ{$oTd=Ogs`=G70eJ&Q) zvg*pWivqpE!|u|KqrXtag@r!bkz%MvLl}FUU~=`|!N|EKV_h6zU3<4is8I7=oYso> zq<#C}H;SB%sgLeD_T=|!onFTwhl-+T&C}Vin83y=#jBQ_n`Wd1(&VJk&gjs*yOTu- zdH9f3jMbY_NLfSA%bJkX>`=^r;$}Tz8y5ym|6oMxzdCrl6p$@%Wms#h^Z66uIdC-~ zeDY*{TD72{z|P8x`6tmX6Jf~yXPMEG?4ph%eui1)nYp=w7b9Az0v$iV<_d`2I7m7W zalMOYKvuMIVFBRPOzBj+f(0 z>>0&J*48Z!o0#}xfH(Ti{2*s*^T_oA#HU({Igt?RKmb@}dHScHww9I+HcCWP^zlq+ zyq3NFqC048R+l?BsZE&PkK64aBVmF0d|3P)`TiX@y$hJtd~uI(&tbd2udOX!%7(1s zUlZ&-G Lb47Jp&s^P{%Wlq<^{ijL{TsJ6HTxVhzJK=}f(LH`$=mH)7 z@0jq4bdV)*z78WImCF_D)WFS;KY?xdi`RaNj}JICP_BENqIC}KZ%~6UJ&>sFj$a`nPT}vu6z~kuk;d!!c{Iz9+)|co`s@?xYCGDic|sB z5(AiA)wYUkCH7VEf^?*sL;fdldc~W|0jI>BeYpHfN(&JOJTZuZ>M?{&)uPF;NxG|> z_Hg<|3!z_?$*DxI80bzDt(u>2h^Oi=uHK}(D;lZRlU2TXxYlLQ;xX~LD(X|SA1cSy zyt1|Nv?xXqaNzuT)zCpc19FGrp`{o6?b`sUrgU3rX&G?m}#Fsgl)jyA0JrW`s4WdYV0b!sU8L7O^{McMTdDU4$RsQ6_NPKEO@}^b|~U1JcKR1 z11ta>2ZMl50`*xdTie#3^@yX3(3&f=(?C0ZZK}2852hiLZGh+kAhO~4m}hxOKm@=7 z2$leutOYAWJPnE3qFsqd5&&v?8<&7^N`!zxqZgb8Ih(g1?r?m&k&R?+Pj25x>GK27 zB_-}s&_Jt9UE}?#=fi1DuuJef7Bd*VWfFrp1_nPCliiCS9MoGhTwODqRUO^GP0LTu zQLn1LOSH+y=tz@M?>lCcfF$^G8!!7S<_`WTGRRsjdot=YTSfA2q^h&RO`&-$#`kE< z+cxQzWYql8CuL5yWmV|ckf}OJRHVeZdU%w+vo(f-7pSEW!7OlXy_mjnQzV}4>dz2y zr*f&XC5IWFRHp-hG+8I99wVC>Bwmtcxl(45oBk<*Xm@+6oO#?YCrM@_^EgS{sVZhX%{TY8fetyOPYCX^+P`A8oi+^QgXh;Ps0XQFE z(qyRC6031pSplt6d6vh}85un(0_oqr!6zt)Fg3t3TJ5?)V~uUQdG{^_R8B(SO#`k* zT3Qy;pmuZ`?np6Wjta_V=Qfy(?j;R&Sj9G6LJl(j4oGnS&r3UzktP|Ef?BGEGT z=u}e}+t1)TB2GQ|3C}tz+6cy zWevMec}*8mq?DIy>vuA@OeOCt3&U#WSq~b82E4eP!!o_j6cLl1 z4#HX-6hzyQwrANYZl@^8h&U(5QQ4iqdp7BBvRw7~dP#^F2E;kwZJOWa@KV5hS5623 z7BmIeLcsfgLTh`#VHI=>`o&S$(Q>XqR=XaimvOTWu*x8_0dLqq%;h8#B?K^K*LT0& zxBIMXM=$_HsqFHW>iyhJ=VYlg3>a-nyBFhib$}ULH81T323r4_-v1S zHDpF1FlzZLkESaZLc6-U{Gb~AP+xs;6C}$|hx*@i)feS$t%a%=YMq>eV{$YZ(%{Yg zZG=Y)|NE=+1t!sn_)fFzt%3O8yzba4YKlD}@fVg!of|VZ>`y(h!Oy1mgn$lQE;rv0LP`omKI{2&Mu~+1)+0Q;Lu5>?k40B|72Mhp>tb5kbbcCy29^j*?7J zS~?hT>vw_2LCU&o*0ul&eNKd3SE!WZoXKT5>ZNf980}1h5lYpNml4yRg-<#po8%Lp z?dME+S7=vBb_ZrUe%)Cb#3s86C9!NT<}8&j%R;7LzPJp9`IQ~-t&5KXL~u{N=;-Jm z1|wFXej}?TGUUOhjsPzYI$$7?DDrBci%Ffj1WiN>f;gH5-P3q1H^rZiHm~+H3UQe-*g`^z+nxQz~d+t@6Ul+ozPT%j%yE;_+^e) zWoA;sjlxcMSxfvH>e;j9y2e6R*(KtaZYBD2&alTVqDXhlx}ce4SrWbJ`}jVcdp`KL zrRljXgG9QEBs38dJT;88pg5LK{_b{t!qFnYsNvG!IsP6?vp7VN;1dOUp>!j>%swGn zg50vLn#&lcQ-j@cOHOI{n92_wA_?%t|2cDg!X~+@_(5D) z661Nw!Op2jq_rt`wySEWgxS=HW|Ry)wY~#vg2kC9#RUbAyn5WSEHvJ{pFgSqr?v3E zCh}66zh}C~P>?CU_64Ym&lvp)m1 zwJ#h_z<1w12QAA(k?-@Xh3>TS%6K|nWnq9-z>R1Zgiw~q&&N5DLe4v zDa9qtzsTlOEIS*)72?S_n5n74>sj+7e6!g!L|kx~5jiJO5cn^WisJEZ>i@;u`5#3& z{~LpZVf;%)|JMbOe?R;`cs<@`;HZ8(3_5TKo}L)FPcu2n{*15Ww@zE(l0%Q4K$KJUx@Z->SnmX@A{e&E5OK|b{-N72V%hgNhgv~94IMPqf&1MICB^5a8M z8Qb*qLn~_sK`je*bq8%EwCtXB=%qvlJ06RTKM@k`IoPfPfynI1_G13G%84{k*?Obe za4J-3rT;T|NP`m^PcQZA`CU@zXhr{NKL%Inz&*}hBu5`39+QBr;y2w~=B?gm_S;$y z7a6vR4thX7IXYGA$o~ccEXdV4&L`9ZK1Y2x@YuA;2=FI?{plAdRJwp5-D^F!uVSdI zUD7Brr3=wYJnvAb^D>@olJ40}RrJ?AH$H9oTywIn!Qcn6=IKbQEAzl;8s)RGe`*c{ zpx_2-C!wz;gU|cHjUGXL&oI0xXndv*P9{i2)qFbrZt%SZ&u7Qq7rq%S#0!4vr=iD{ zT^=0TeuOyie>C^|>JXiDTZG4j;X&!hSYgsPw4=_d2ZFGLGD?u3qJ4lHx@anJ>NrDB z}|dhsdt?7P5>RxSX7!peX9|@RkpH=&0nT=06I! zUe{~b+{>n2hU9Ra+wous6r3Y4R=#OeOyWM@BEdAz94w+_=#5VSw+h|kR`&KV{{Eda zHy{eW{p~dCf4Brde^5)1NEdz8W2qK|!9ee&1DtvQe-k@9KYu1gAV(sn5<9vH_XVVZ zuTUV-!rI{Jsg30-izI|76;$%@}%f(8>#j!_!@fp`Xs1#P7JrgSo0^{vE_?Y z%q#dh1bfreloQ+!$N|0v_ah=A!hZIowdnXxaF_@?jI=VP6AU7>KHi9-;Z|pI^uN&k z&57w=pj~j6b*(^^D@O{%SwO3Ad^Xqgs;m^Y=Otl}#!6HHKj({9 zm&2~kYF28^;H9AZWAL70>AZZ36zyD_Z|vpjbu&5FtLp=! z7>5>$?p_VvtE`4(-k%TEXC<_3kKSkIa#=bwXo^>|Bz=P{Y;rIgX_(Q3Yb%dto# zrS98CJF=U~yKWtAi8>ZF6~$;BPj+5DG9i7Tn714|(-2E9FgS3JJtDw+VN5}Z^MU;? zGvl7acXFldvaaaBj{}y0ddobLVb9Hkh&7j)jJMQ_n+(Pv5Em!-%{)riBVN}k+DF?9 zC4t8&2_VwewU^R_yBmIKFDs;(TULP*x^uc_mUXXiK zZ3Ip)Ii^-I=DsFU`Kc?4iY8BuA6(eA?qh~FGAlJN-6%^ho3X@6VL5>;CVLnlfI=Dh zY#NU_u5yYn)zVl0F$QYm;ct3~3-roTW)R`=(*EWh$GV7|kqQr5pdl%#s!~NpMREAc zOS9era38mfo1GS`&o(Syh+PI3pO$6<_RZb*t+tnUxe)TY$6rIc96VI6EjHWxQ12A1 zkN)aIR7|XXUfXhi|7C9@w0R1-yqA8t>s97QSP$1iiuQIscu7rK@VpK3r^4v&d|P`e zxR(XyOw(Iox&(sH8>I`xYq+qIs;lP~R)6u?fvP=E)>h{{26eVc|TJtvqnILYQ>}SYMTegCU#$~(AE$)MCmv> z@AF%U>0qnKEdv3V?ftY4dAbHyIsfLG^;FQNT2A{{zs>u5tPpqV!~SFCXj{x`gEO`C z#oAmP;LUYCIKb{zzNmM~XtOc2qOEQ?$#<*K&~gXVswQ``Y>lJn;8tSeAzYJZPs*Y$ z+j7-?F3*0I%+f&UN-{+{=jK#~$VgeaUj`f+bP<8y+m-zZs@|t~vM?){QCT@+6v`rF zL1-{O2zWOT{H0^1`C6|w?JkVUr?(AVINWPTUwrJJ>Efyry5wBtNqZGWe;) z5w23S9FIspTVW(%bl3p1<(}_cE2jH%Qzm!yhB*ZwM-eeghyg3jnU;%ZJUSfL^1Tyh zOzX%hy0KQo8N_fwLAg_#ZpZgy_R{hRoxJl8}|&-(IU!KLrx zE)NYC6>s>wjK9Pq0#5NZEg~T%W+TuMY$n zP^N3xG*C6>es1C|<^TAPee-3<4~0cCqI5lyM-{|8o6YU)&cYDe9&$UV-cKfV9a?*( z!StlGIeR6bQFF1jZ>+Ck1if9b{Je8UztC$dex82Ki}@ytGvA#l#A@NVtu*<}V39De z_dkAo$9ML7ZUm#zOvbubfSHYrO}l+lnh7ZN{z?(Rk21boSc}ZyKN+H4H!z~sm^Q)i zVPN@X7;6DD5oSbD%p{)6@ZoLYbv-f8s%-$OGJaWDtsTq7j!tX*q zTZg#ymw9gTj3S3JL%~w?I|F?g+Jy{{(`n39(3v!bBkkCiy;|IlBV6xW4fE53$<*RK zYrkiuxAQmy#mRNPmo~C>;<>*15i<>I1I_j#n=0Sg3a8 zk;V-p*r&tA})2aZY>L)25$O{F#$zv(4&6pb9aNjWg`>oXJOGopu*3@_c1D*w|`?W(4Tf$f8^ zFe7jx5o_yStp)l?ZF;K%h1ZU(Y9IBQunroHYUDmd~wU>eU?lNndy!nT{9xD zFhawB3S{0+&UTw(AhUu4JfSNdWIfFh0T5+e6E@uCz86=J^6s{l+x7E-R&z_$Mx!t- zoEm9ElnSE9BDmG`Br& z1(TXRt?PX|jnC*9M|CPxLzh8__vQnus+Ao99c{ExyA-RZi=B!=r6-;7pM83ypf|8b zBQz{*sMQ8{)rInV!g&hxT}Qs%-MzfVIJ^+@j6NzKM8tm)S-Yok*JWnwd16SF-X;xRdl$=2aF$C*t;gxmzbK zk&4(@5gx`r1M!zZ$nXvZ{|lMYay-f&u{oM~kVYwiy7>MCs49Z&liNK;N5wZDn4wBT zZSiN;B3Q+!D_U$MT0GPGzeUC+*#d}-(BWR>*DFMgx1W~!e(prZN5A_BeQRcHRc}yZ@&4` zGrr5jC4%x3hg9+f_JyK$T*h3>&DRdu5*jj_jqy$3g|rRlOP$ z*OCQ7j36Q1T9$hR+8~w6KeHRhg6othiTRhaGX*HWyUurim^zIbz+qM>IB$r!$p^D|y{D)y zWe3_F2VOqq^8!z)L*D1^Z@C0&vrxGiS#81GLrs+^Hl0dp7Z%c;`5KL#RNsH4w<2eL zw9sGZn(|!!&ZR< z&)9q(K(3?YY%*4WE8K+bV9WIWya9~y%9TCC#?Qj9465Zconi1lNgUp#nmGuc4JCp2 z=w7^JfOECBtIPw{@-NL@W>vKVg_r?9SbWs>bd&Y8n7S0d;#9 z7njUyqtLBDE-H59Z_2($(8WV`0NM_E2t+J4cPB$$zs)39ry`M=@l*n(W=t8-x6Fjn z3#qk)xv7$rm=vsKNvs5Gzpr+F zy;^7GeL)dS`JP$PS^7HO4E)3RwR7a0Ar=khN>#eL$7J8a8ql`Ut<0M^AqE;dj_m3`m z4cZHTTOYmQAg7Jd&K6I`?OC9Sq&5`D-5Zp-oIuva5mMBkYKh+|`LxmP#UXOh&>LYa zkUoFyj3Y9}?2C|H@>fSu{)!P29>3pIsuA?RR_!y(YpDR4!pmCmxs-Scvw~>NL;Xm7 zOP0xBk-M>cd#{AY&=qTW&t@?#a%ZS5qnEXf3G{#T_x19|h43s)RO3O$`vP0LxWgs) zm64ydh9{0XLFhF|{i3k!I=-Xk=fb+ptjJhKv@xw<=2s-Pv_lzXEep!9amxLHq0B4Z z&Cgscj~M$BcL&dR0_!xhqR(y36I}7=LN+t>QI_4cG~28-e1~85X1vKVlC7AzniiHuCXPhmF|8wjCK-F6k(e$mV{R-XAuD z?kUAff@2-bHMb?~a8BQeVBD{6x_zQwy5(Hp1Rg`F_VKseIR^R^2WK0eA`=q7>FIO! zrVlZuRq;>G>B&XybZF8@>fS|HRVmzM2@Va(zJ^=-<9e+F>gX|i}LwI$u4|@WE7uKLZVMYZ37eb4Kyt4KfreE{$JzSEmj z{xkaY_-&mGUpP?US6I`;aU&|5K7)|4KH@ox1ozKqL=eBMIKC}Dkk(`E3zW*0z1WqN z(O|(nut!1uL_iAi==Nj}xgU{;IoI0uEZHeijx9cZ@t8pQ+kAX6ZM-YW%u`BY4j4lC z>SvqLtv6!#SnRCM6loiI=>A~>77!PSnS+EeKoBUivIM!ERDqcVR`ttd{8Vp<2_}+J zl!iGX#OUs!9&?*(+}5uC>h-eb(JMqp1p5jk^&}`DEJr$%2r;gJbvNR!F8H5)h{()# zg(-c$x{Wp}BYz7r8Iwu=3r>h{C|4De-O0kGN@W(O8B`58BC(9mLs zEs6$0TOmXcb+UV zyUzLUjm&|5Hnx3b#VK;fonPJpnX^K5Xhwl-EF7zne7~91H+9HALoe@iTVSXp${}`{ zTTSM%Zq7og&pluD6wX&6nF1HnOV5IlE5A$&xeDONx#e~Ow-|iaA`<&OGa58*e_7py z&Z#`4eR=Fr*U~PfnaT={@1KX5ZP(cu;Yi6%b1i*7g#T&uZ^fRGkyy=T9vhaklC(Iv zYZv3p(U%2^%`khL#udA57DeR_q^u`icmEoU5uIZ~eS5{wJj|YWHHYM=pYx1oUZdOX zIvNyz7!2|mZzf-Y`ig^B^#)7$Vd zLPG-G*`gnEO>M330f&==6ofp0CVf=lS}ZYRIa|hD;hB#%8lLjKP`M-&4qC@ z=W|m~MfdwD@#`nv_P!sSS4})0WN2mPR-BuA8qfq?@q=Hdj$Fm3-ydv%em)ySx*={~ zxzBA&>GDMgvwqh+C*5lIg`h-BK%md=C$AHS@Yv%^pDSZ_PU4s-44ai>iKr18-N~<= z-PzaJ1rU$9P;V2f%%{GR2(+(xBq$7_lR{7c?X)hicyA<4*&P)zuZ3f}owF$*0+GE+ zqYaI(j_QS&wc>n5)5+rOO?+Zl3}mW*H*>&F#hA)kD6seN=t)(Z|~ zs64j3n>p|9Ry4%b8_4g&u5MB4!~OE5f{XjM34%4ci&)ZcU{%m|SRzWdoP|&!saAEQ|`- z+4Jr{iK#o;0Aci<;YW*mGZ$5ect-8`wJ)dL_`$q`o9N-PnqqKne+Fz&_sP1h z3iaqu|2wp4cyac89GE4s+!~*z7tPDpucVC)IaLq^bg^g$l)p*Z*x=s>^q$rai;h_-aoK@ zvpHFEn-j>P;pZ63M0GO%>{oCH0m|5_)7?VUjx0lzA+HLUYIHO@%V&zGz=nb!iSx=r z(QSHQQJ|ZQT*~VryIrN7-^#_rf>8`n2vOC>E_z2Ov=9U=ugJM=09eJFsSKnX;;h(= z@imNonvMn@iwsGeYqxXut+Oc$Jb4If+zs1FTGW?>h18@*@2|~kHyxvg4Gi=8mO7qV zII&b8&hkYpDj5oNDoAdabIE3!vBXO{+I&Jda79x(&eu;QFnt!@QgkBX7YKrMbV4Rl zC>QX%zuQy`WOc56@`>QX&UMIJc>dnBBp9}lDO!FuK#*z-nP1_&wmShiT*U2XZPurA zXTqkK^6p#ZQ8d{qJmjTiv~q3RPHv*6BkZCZlboe@d+z!4J&n0XXN_`IshRFwhCOd} zA{wY*$z_{UZ8J2>_Duugo{PNuKpPDHv}|x*&bK)`EZ=eCH-td2u@WOAK5UYr`y#p6 z&iR!n-vi-QWHPGCE*{W&7qeLL7r_dRU-Xv`50Ha9`-z85KWPoCHYGPml6;32Pjr8o z6G;{@y_Q;NXP2Bq;Hs!jcxJWBd8w#SCi*ZI6mh2NIDj`(NZYo~Z=sy&EayHDtJliqGa3H^9&KcqdCS%3Yn& z>7%xTd4h^%EfHdYDxYnXvtn~)yG33}hPjP+oo6D+QrvlaFmg#m0xEC8#!Yudn%4av z09rW`AJCZ1Cxv%@<`*N{VX}2TdrOxiT(}ZH=*v+WYjVkdSf*L!o8$@YY*$GMpXrM5 zk!-|#T3hWWm+B3qaQV-g2~Vp=DYS3z-q!=i|_u1jPox3s(xO_w-s~V$p;VY^DJhQDdZ3eNDAK)$|2F_dU5y&AT0vOCkx$ zU0;e;aZmR;+R%YQ=m24|>-y#VCr9f3s*?N@w;A(~;WV@SomgOAzT-mRQ*Lv#Z0^tf z_>q(wU1J_uo}WL0(Zb^8)f}cTY8!sKXk3YpIbnE%Lj^oSG+ATnl47ZLx+b4YF-JAiXCw_>^1Ku6EQT=%c*zzFXol+%~~~!jYq*gM-cl=Qq z-von0U*!e6@w;@?_=?MD?>W2$CJvByF1!FgU{Ert@9F7TuUsW}?OIOqGQB6_B~ZDM z|6(q~{BSi4G3a_ar_;+IUWS9_#ag20Fi_z=cNFetl89wNZ@MeiT!UB$SG0IxzP&`8 ziT@DoCP5sRr_298oYC|@ru0Acf3R!*&B39RNB#?$OseQ72@iP!y96X;Bq&fM;@efJ zCXn7Zf`V3R;@Z%W&SQORNDjZMbs6}VDGVu>nU<}WE|ZQzXnwB8Iv0GQb-hZmO)N$r zZL5X$Rwisf7l1@MCp;5^E&l@fT%4>kF;v(@E<|6Txyarv@9m?!_-)E6Wc+p9vpDwmVD~a+ueKZANV?I=9gG1+Gcy3 z=EP31!(z|ZPKuqFjDMPn8O-*`7b?pw}h^p8au#c z%9b__)GK@*^_%t-eX=5DJe9K7^z~p2zE1sI&rE>G#j@6e;dKFvkJy6Kdid#y(ivkB zPtr-=>J9??wrkZI{T^8k1J$(#q2wLJcaLj6seeivbo(8DOdbeesP1PwC-5SIOpjDq zkHMm^f1zrBP!o}{_g>#|6+ zrmv_NOEbd3CiDtA>gcAX&V}#red^LioO#lIE(0Rq%8w>}pYJ#;b9mP*p0pU*gKR>1 z>$wu^URp;vPsh4(mFRS*6lTVDSAVwhjhH@(kMJez zYNO>cd=H{KWT3Tw0W6m3v`!jx57ke|FDhKb;mqk+}yFBwfOwlIe z8xxG9uHbDKanz*kKBBo@twxaAsR-XKEl`OIdTO0Xr=5Ix>p(zkd-s5wO-Ae^2{ImF znfPSX59Zd5cC}ep%>FpshranQ78hl|OIXT9iIegW`O>s&8|ub|pqBxG=ViRIdb{lG zPZV*a;$gu{2oJB7L~K5Q+wxh;e_hb~1HxI+45Vt?eX+2&F&w~Xc-!$EA^!kH(NVns zt?>Z*1RrG!gm93i>7_g?Kf2Ef@od!?UAe4^N)_x_-u%6AZnw4xV%Dz2ZI_ zbF^%u;q*z>K`Qp|C$#gCr;s$wZqv~1b1kghcQPc?o{=RkO+A&b0XENiW3TN-IfPb@~QrwglK1;Oh!w z%lOBb=ePs1jUJsTr%%|AAMsqgHT~ohmy?)Ci`NnLX6N`|)0^>DihZ-U(zIU%|M;-O z6Mztm?Utqp_hj{kyG@&WV+D66v~l!ImiWB6HhuoMkuKK)KTAeCGo1f*s;}8g#J$0d zOp#^p@fqhqh5#&N|Bq3<$~O!JbJnDMzRHt%uUohF9}4L27PV6`;^ z-J=(5zYrV9!7#t7b#f2q!O|O;X*?rpbdXhkAV6bosTaSjiqDuiqV6mpQ5Z*cS`wes zzlWHa9a*mOqEmcB*IK@8)X?1QuSH0%Da<6Gx9YE84zx`nr4T$@V!?w@uAL@&qrW(Z z@!|ZYB@v*;K*XhOaJ28v3zw9HKPp94(~2?g9esr(qOXb&O9#Kqn)#bMmYajBvjg9B zRCNb|_C}d*>&*-0#-sz$ZxwT^ZPAy)#M!;hoWIUh9PWu%h0b2ompXB zH3?&}yC8=`leXa~h2B6ihW-Kl8Ay2zbT)AB@7imfeWO=ebti3nLO_0 ztEq-iX~NZc2jmbm-P)3qCyrSAyY^aY3?>>Nj(_eyW3~N%{B!?Vf2+R4Isbv_hA`(m z9L3uIxvqhPY=k??fXfrIJowaBaUDoKb<8o4`4O7Tg687azk2;yT^Awe$;DaL(`U{L zc_GwcfMo-KI_`Y6mVX^5!{@&DqWH$wpUl!V(a@6%*&9HXTV4>myL<7CuRn>)LqVf0 zviBOQ`7d@X!0mWUe`w{JZCrK@E(TIp9glAU^(MR+GtcJI)OFp<>Uy2$`l5bT=yQ)O z>%)6*H#j&OVq^oY`u##`1GlgDrFgSzsu60n{jXJ6(UC?|eKnykHRMpNvv2ekwGl>* zLDq%Ndg$zI&ug-ef9^kPZvZTI4+sEuhFMO8TWr)hNSOU5e;dUr#Ixwsu5a=ptnH_qcg?i<-i;G8j^{QvFUPjXW?7yxi(;4n-VaDXnlgAJSljzHTp zIP?haDZDDXf84;E#EUH1aRrijU422QHgRf6&$55N8BGRHi1hwg_9s1kqJ|iJ%im+$ zUTY!NVdq;Q=J_~U_CL|*Ss>v&!}zN|K!&q9|(`% zsd@Z){l}hgHSUYv$pJZiu?^VsXV3m~U)|l`PuJJCf9ciB7ftWE`0jnPxlQHI)`KvY zfBilE@$vmb9WgjJXKtpl{<4ja(nFlJDgk(iK)lyzY#xZW4nB{?oC5$U{dkS@$L?B= z0O!{^rSBbH`55@zB2#^j#{oG{agXI6`aK5UqMkAVW}cL*lM!2RJSZHms9P(dCc`HDXmsl(|WyWdj1!e%W1W`8sZwe z7nN3J*L$GHdt<%cOzZV#TCJ|8Z{O~w^?LKef6ta}h(2a9cbqPLoj*f#Tj zjCwtd&{LfIP(FTMZbMb``187t{o058X^m654}i+_4rlG4By0e13<+^)n0T|2kxf=k$Sjv5%du&1W<;&NUUNx`gAR`5e zPw@~;zD?)XnDh;c??PuYaApe>u!x+e~-s+3(S2*GFqF0R5Q(2VgJxBi8vE z;8T6{8UUa+0XP7U%4hZ>;Eu#wDb?Bk`DaE*YBfR|0f2c4zya9HuC=%$tlco}f_Sob+2FU`~afI00000NkvXXu0mjfzc4KF From 0f9378b5327ad672793deee6427d655c778a3500 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 7 Oct 2024 15:58:30 -0500 Subject: [PATCH 128/167] Automatic changelog generation for PR #3488 [ci skip] --- html/changelogs/AutoChangeLog-pr-3488.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3488.yml diff --git a/html/changelogs/AutoChangeLog-pr-3488.yml b/html/changelogs/AutoChangeLog-pr-3488.yml new file mode 100644 index 000000000000..99d5cdb6d1e7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3488.yml @@ -0,0 +1,4 @@ +author: rye-rice, Imaginos16 +changes: + - {rscadd: Resprites Wisp} +delete-after: true From 603d242100e7072daa5b0cabdf6e202fe578d609 Mon Sep 17 00:00:00 2001 From: DrCrawler <62419802+DrCrawler@users.noreply.github.com> Date: Tue, 8 Oct 2024 03:48:03 +0700 Subject: [PATCH 129/167] Give IPCs some more adjectives to work with and cleans up duplicate adjectives. (#3475) ## About The Pull Request Adds the adjectives that can also be applied to IPCs from the main adjective list to the IPC adjective list. ## Why It's Good For The Game Lets players pick a more fitting adjective for their character, removes arbitrariness and duplicate adjectives. ## Changelog :cl: add: Gives IPCs a little more adjectives to work with. del: Removed some duplicate adjectives from the raw file. /:cl: --- strings/ipc_preference_adjectives.txt | 17 +++++++++++++++++ strings/preference_adjectives.txt | 3 --- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/strings/ipc_preference_adjectives.txt b/strings/ipc_preference_adjectives.txt index a243b2d77fc5..a106aa76ba8f 100644 --- a/strings/ipc_preference_adjectives.txt +++ b/strings/ipc_preference_adjectives.txt @@ -1,3 +1,5 @@ +Angsty +Awkward Bedraggled Brawny Bulky @@ -22,6 +24,7 @@ Fragile Frail Friendly Gentle +Gormless Hawkish Hefty Hobbling @@ -38,25 +41,39 @@ Mangled Masculine Messy Nimble +Pathetic +Peppy Petite Pompous Pugnacious +Quievering +Radical Repulsive Robust Rough Rusted Scarred Shifty +Shrewd Sickly Skittish Sleek Slender +Slimy Slovenly Sluggish +Sly +Smooth +Sniveling +Soulrendered Spacy Stiff Stony +Stout +Strapping +Sturdy Stylish +Tubular Unattractive Unremarkable Unsightly diff --git a/strings/preference_adjectives.txt b/strings/preference_adjectives.txt index 0d67f16803f8..450e4c78901f 100644 --- a/strings/preference_adjectives.txt +++ b/strings/preference_adjectives.txt @@ -24,7 +24,6 @@ Effeminate Elegant Emaciated Energetic -Energetic Exasperated Exotic Faint @@ -41,7 +40,6 @@ Gentle Gloomy Gormless Hawkish -Hawkish Healthy Hefty Hobbling @@ -57,7 +55,6 @@ Lopsided Lovely Malnourished Mangled -Mangled Masculine Messy Muscular From 3643e63661dccad4dce723deba2b1cd12b98a0b5 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 7 Oct 2024 16:14:58 -0500 Subject: [PATCH 130/167] Automatic changelog generation for PR #3475 [ci skip] --- html/changelogs/AutoChangeLog-pr-3475.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3475.yml diff --git a/html/changelogs/AutoChangeLog-pr-3475.yml b/html/changelogs/AutoChangeLog-pr-3475.yml new file mode 100644 index 000000000000..fb28b86b493c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3475.yml @@ -0,0 +1,5 @@ +author: DrCrawler +changes: + - {rscadd: Gives IPCs a little more adjectives to work with.} + - {rscdel: Removed some duplicate adjectives from the raw file.} +delete-after: true From 76f5711b3f4ec4a0abdbbdb7cafc936c81303252 Mon Sep 17 00:00:00 2001 From: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Date: Mon, 7 Oct 2024 19:06:23 -0500 Subject: [PATCH 131/167] tweaks the syntax of unit tests to be caught by flaky tests (#3493) ## About The Pull Request see title also combines the two outfit sanity tests ## Why It's Good For The Game much better syntax that can be caught be the flaky test runner. ## Changelog :cl: code: tweaks to the syntax of unit test logs to be more readable by humans and flaky tests /:cl: --- check_regex.yaml | 2 +- code/modules/antagonists/santa/santa.dm | 1 - code/modules/unit_tests/_unit_tests.dm | 6 ++- code/modules/unit_tests/outfit_names.dm | 12 ------ code/modules/unit_tests/outfit_sanity.dm | 11 +++-- .../unit_tests/ship_outpost_placement.dm | 6 +-- code/modules/unit_tests/unit_test.dm | 40 +++++++++++++++---- 7 files changed, 49 insertions(+), 29 deletions(-) delete mode 100644 code/modules/unit_tests/outfit_names.dm diff --git a/check_regex.yaml b/check_regex.yaml index a56bd83644d3..94f37cdcf83e 100644 --- a/check_regex.yaml +++ b/check_regex.yaml @@ -38,7 +38,7 @@ standards: - exactly: [ - 261, + 262, "non-bitwise << uses", '(?You are Santa! Your objective is to bring joy to the people on this station. You have a magical bag, which generates presents as long as you have it! You can examine the presents to take a peek inside, to make sure that you give the right gift to the right person.") /datum/antagonist/santa/proc/give_equipment() - var/mob/living/carbon/human/H = owner.current owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/area_teleport/teleport/santa) /datum/antagonist/santa/proc/give_objective() diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index 4b4e10edd7ac..ba42b9bc9f46 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -41,6 +41,11 @@ /// Intended to be used in the manner of `TEST_FOCUS(/datum/unit_test/math)` #define TEST_FOCUS(test_path) ##test_path { focus = TRUE; } +/// Logs a noticable message on GitHub, but will not mark as an error. +/// Use this when something shouldn't happen and is of note, but shouldn't block CI. +/// Does not mark the test as failed. +#define TEST_NOTICE(source, message) source.log_for_test((##message), "notice", __FILE__, __LINE__) + /// Constants indicating unit test completion status #define UNIT_TEST_PASSED 0 #define UNIT_TEST_FAILED 1 @@ -81,7 +86,6 @@ #include "keybinding_init.dm" #include "machine_disassembly.dm" #include "open_air.dm" -#include "outfit_names.dm" #include "outfit_sanity.dm" #include "overmap.dm" #include "pills.dm" diff --git a/code/modules/unit_tests/outfit_names.dm b/code/modules/unit_tests/outfit_names.dm deleted file mode 100644 index b381bfeb7bf5..000000000000 --- a/code/modules/unit_tests/outfit_names.dm +++ /dev/null @@ -1,12 +0,0 @@ -/datum/unit_test/outfit_names/Run() - var/list/outfit_names = list() - - for(var/datum/outfit/outfit_type as anything in subtypesof(/datum/outfit)) - var/name = initial(outfit_type.name) - - if(name in outfit_names) - TEST_FAIL("Outfit name [name] is not unique: [outfit_type], [outfit_names[name]]") - - outfit_names[name] = outfit_type - - diff --git a/code/modules/unit_tests/outfit_sanity.dm b/code/modules/unit_tests/outfit_sanity.dm index 4dc12b4dc6e3..a09395d42103 100644 --- a/code/modules/unit_tests/outfit_sanity.dm +++ b/code/modules/unit_tests/outfit_sanity.dm @@ -6,7 +6,7 @@ if (outfit.random != TRUE) \ TEST_FAIL("[outfit.name]'s [#outfit_key] is invalid! Could not equip a [outfit.##outfit_key] into that slot."); \ else \ - log_world("[outfit.name]'s [#outfit_key] is invalid! Could not equip a [outfit.##outfit_key] into that slot."); \ + log_test("[outfit.name]'s [#outfit_key] is invalid! Could not equip a [outfit.##outfit_key] into that slot."); \ } \ } @@ -26,6 +26,7 @@ var/prototype_name = initial(prototype_outfit.name) var/mob/living/carbon/human/H = allocate(/mob/living/carbon/human) + var/list/outfit_names = list() for (var/outfit_type in subtypesof(/datum/outfit)) // Only make one human and keep undressing it because it's much faster for (var/obj/item/I in H.get_equipped_items(include_pockets = TRUE)) @@ -33,8 +34,12 @@ var/datum/outfit/outfit = new outfit_type - if(outfit.name == prototype_name) + var/outfit_name = outfit.name + if(outfit_name == prototype_name) TEST_FAIL("[outfit.type]'s name is invalid! Uses default outfit name!") + if(outfit_name in outfit_names) + TEST_FAIL("Outfit name [outfit_name] is not unique: [outfit_type], [outfit_names[outfit_name]]") + outfit_names[outfit_name] = outfit_type outfit.pre_equip(H, TRUE) CHECK_OUTFIT_SLOT(uniform, ITEM_SLOT_ICLOTHING) @@ -67,7 +72,7 @@ if (outfit.random != TRUE) TEST_FAIL("[outfit.name]'s backpack_contents are invalid! Couldn't add [path] to backpack.") else - log_world("[outfit.name]'s backpack_contents are invalid! Couldn't add [path] to backpack.") + log_test("[outfit.name]'s backpack_contents are invalid! Couldn't add [path] to backpack.") #undef CHECK_OUTFIT_SLOT diff --git a/code/modules/unit_tests/ship_outpost_placement.dm b/code/modules/unit_tests/ship_outpost_placement.dm index 48bbd6a181e3..0762af79e304 100644 --- a/code/modules/unit_tests/ship_outpost_placement.dm +++ b/code/modules/unit_tests/ship_outpost_placement.dm @@ -3,7 +3,7 @@ // disabled or intended as subshuttles for(var/name as anything in SSmapping.shuttle_templates) var/datum/map_template/shuttle/map = SSmapping.shuttle_templates[name] - log_world("Loading [map.name]") + log_test("Loading [map.name]") try // they'll spawn in empty space, and won't be docked new /datum/overmap/ship/controlled(list("x" = 1, "y" = 1), map) @@ -13,10 +13,10 @@ for(var/outpost_type in subtypesof(/datum/overmap/outpost)) var/datum/overmap/outpost/test_outpost = new outpost_type() - log_world("Testing [test_outpost.type]") + log_test("Testing [test_outpost.type]") for(var/datum/overmap/ship/controlled/cur_ship as anything in SSovermap.controlled_ships) - log_world(" - Docking [cur_ship.source_template.name]") + log_test(" - Docking [cur_ship.source_template.name]") // already-docked ships are ignored. // this was added to stop runtimes when subshuttles, which were docked to their parent ship, attempted to dock to the outpost as part of this test. diff --git a/code/modules/unit_tests/unit_test.dm b/code/modules/unit_tests/unit_test.dm index 00e7c6e756ac..18b5b12e7f48 100644 --- a/code/modules/unit_tests/unit_test.dm +++ b/code/modules/unit_tests/unit_test.dm @@ -85,38 +85,58 @@ GLOBAL_VAR(test_log) allocated += instance return instance +/// Logs a test message. Will use GitHub action syntax found at https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions +/datum/unit_test/proc/log_for_test(text, priority, file, line, test_path) + // Need to escape the text to properly support newlines. + var/annotation_text = replacetext(text, "%", "%25") + annotation_text = replacetext(annotation_text, "\n", "%0A") + + log_world("::[priority] file=[file],line=[line],title=[test_path]: [type]::[annotation_text]") + /proc/RunUnitTest(test_path, list/test_results) var/datum/unit_test/test = new test_path GLOB.current_test = test var/duration = REALTIMEOFDAY + log_world("::group::[test_path]") test.Run() duration = REALTIMEOFDAY - duration GLOB.current_test = null GLOB.failed_any_test |= !test.succeeded - var/list/log_entry = list( - "[test.succeeded ? TEST_OUTPUT_GREEN("PASS") : TEST_OUTPUT_RED("FAIL")]: [test_path] [duration / 10]s", - ) + var/list/log_entry = list() var/list/fail_reasons = test.fail_reasons + var/test_output_desc = "[test_path]" + var/message = "" + for(var/reasonID in 1 to LAZYLEN(fail_reasons)) var/text = fail_reasons[reasonID][1] var/file = fail_reasons[reasonID][2] var/line = fail_reasons[reasonID][3] - /// Github action annotation. - log_world("::error file=[file],line=[line],title=[test_path]::[text]") + test.log_for_test(text, "error", file, line, test_path) // Normal log message log_entry += "\tFAILURE #[reasonID]: [text] at [file]:[line]" - var/message = log_entry.Join("\n") - log_test(message) + if(length(log_entry)) + message = log_entry.Join("\n") + log_test(message) + + test_output_desc += " [duration / 10]s" + if (test.succeeded) + log_world("[TEST_OUTPUT_GREEN("PASS")] [test_output_desc]") - test_results[test_path] = list("status" = test.succeeded ? UNIT_TEST_PASSED : UNIT_TEST_FAILED, "message" = message, "name" = test_path) + log_world("::endgroup::") + + if (!test.succeeded) + log_world("::error::[TEST_OUTPUT_RED("FAIL")] [test_output_desc]") + + var/final_status = test.succeeded ? UNIT_TEST_PASSED : UNIT_TEST_FAILED + test_results[test_path] = list("status" = final_status, "message" = message, "name" = test_path) qdel(test) @@ -141,6 +161,10 @@ GLOBAL_VAR(test_log) CHECK_TICK //We check tick first because the unit test we run last may be so expensive that checking tick will lock up this loop forever RunUnitTest(unit_path, test_results) + var/file_name = "data/unit_tests.json" + fdel(file_name) + file(file_name) << json_encode(test_results) + SSticker.force_ending = TRUE //We have to call this manually because del_text can preceed us, and SSticker doesn't fire in the post game SSticker.declare_completion() From c3528b9fa68ced824038d7332955fdaa85edf9c3 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 7 Oct 2024 19:17:03 -0500 Subject: [PATCH 132/167] Automatic changelog generation for PR #3493 [ci skip] --- html/changelogs/AutoChangeLog-pr-3493.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3493.yml diff --git a/html/changelogs/AutoChangeLog-pr-3493.yml b/html/changelogs/AutoChangeLog-pr-3493.yml new file mode 100644 index 000000000000..e670f8c7359f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3493.yml @@ -0,0 +1,5 @@ +author: FalloutFalcon +changes: + - {code_imp: tweaks to the syntax of unit test logs to be more readable by humans + and flaky tests} +delete-after: true From 3d886cfbdd617fd5b9fddc4b4bdb3544ba4013f8 Mon Sep 17 00:00:00 2001 From: CoreyLee Hassell Date: Mon, 7 Oct 2024 20:11:00 -0400 Subject: [PATCH 133/167] More chemicals orderable! (#3431) ## About The Pull Request Re-sprites the chem jugs so that every elemental chem has a clearly readable label. ![image](https://github.com/user-attachments/assets/83196d6d-557b-46cb-b2d5-c2e581ae49e2) ![image](https://github.com/user-attachments/assets/bbceb62a-e595-4011-abcc-69ed47b118ed) The chem starter kit now comes with a complete set of chemicals to make everything else. However, it lost its bottle of pre-made sulfuric acid. Also, all elementary chemicals are now available from the outpost, and sugar and ethanol are orderable in bulk (these two are under foods and agriculture, the idea is sugar is for cooking and ethanol for hydroponics, even though they're useful to amateur chemists too!) as mini bottles and bags. ## Why It's Good For The Game Outpost and the chemistry starter kit was missing some baseline chems. Now you can buy any of them if you have the credits. Sure you can ghetto many of these, but I still prefer options. ## FEEDBACK ON PRICING NEEDED. Some of these chem costs were awfully high for what they were... I set pretty much everything to 750 now. ## Changelog :cl: add: Added more purchasable chemicals to outpost. add: Added missing elemental chems to chem starter kit del: removed sulfuric acid from chem starter set. You have to make it. imageadd: tweaked and added more elemental chemical jugs. /:cl: --- code/modules/cargo/packs/chemistry.dm | 152 +++++++++++------- code/modules/cargo/packs/food.dm | 24 +++ .../reagents/reagent_containers/jug.dm | 87 ++++++---- icons/obj/chemical/chem_jug.dmi | Bin 964 -> 2123 bytes 4 files changed, 177 insertions(+), 86 deletions(-) diff --git a/code/modules/cargo/packs/chemistry.dm b/code/modules/cargo/packs/chemistry.dm index 5c7ae4a20ab9..236706f7b6c0 100644 --- a/code/modules/cargo/packs/chemistry.dm +++ b/code/modules/cargo/packs/chemistry.dm @@ -10,19 +10,26 @@ name = "Chemical Starter Kit Crate" desc = "Contains thirteen different chemicals, for all the fun experiments you can make." cost = 1250 // This is intentionally underpriced; the hope is that people will start using ghettochem, upon which time the price can be raised. - contains = list(/obj/item/reagent_containers/glass/bottle/hydrogen, + contains = list(/obj/item/reagent_containers/glass/bottle/aluminium, + /obj/item/reagent_containers/glass/bottle/bromine, /obj/item/reagent_containers/glass/bottle/carbon, + /obj/item/reagent_containers/glass/bottle/chlorine, + /obj/item/reagent_containers/glass/bottle/copper, + /obj/item/reagent_containers/glass/bottle/ethanol, + /obj/item/reagent_containers/glass/bottle/fluorine, + /obj/item/reagent_containers/glass/bottle/hydrogen, + /obj/item/reagent_containers/glass/bottle/iodine, + /obj/item/reagent_containers/glass/bottle/lithium, + /obj/item/reagent_containers/glass/bottle/mercury, /obj/item/reagent_containers/glass/bottle/nitrogen, /obj/item/reagent_containers/glass/bottle/oxygen, - /obj/item/reagent_containers/glass/bottle/fluorine, /obj/item/reagent_containers/glass/bottle/phosphorus, - /obj/item/reagent_containers/glass/bottle/silicon, - /obj/item/reagent_containers/glass/bottle/chlorine, - /obj/item/reagent_containers/glass/bottle/radium, - /obj/item/reagent_containers/glass/bottle/sacid, - /obj/item/reagent_containers/glass/bottle/ethanol, /obj/item/reagent_containers/glass/bottle/potassium, + /obj/item/reagent_containers/glass/bottle/radium, /obj/item/reagent_containers/glass/bottle/sugar, + /obj/item/reagent_containers/glass/bottle/sodium, + /obj/item/reagent_containers/glass/bottle/sulfur, + /obj/item/reagent_containers/glass/bottle/silicon, /obj/item/reagent_scanner, /obj/item/reagent_containers/dropper, /obj/item/storage/box/beakers) @@ -53,61 +60,96 @@ Bulk materials */ +/datum/supply_pack/chemistry/aluminium + name = "Bulk Aluminium Crate" + desc = "Contains a jug filled with 150u of aluminium." + cost = 750 + contains = list(/obj/item/reagent_containers/glass/chem_jug/aluminium) + crate_name = "bulk aluminium crate" + +/datum/supply_pack/chemistry/bromine + name = "Bulk Bromine Crate" + desc = "Contains a jug filled with 150u of bromine." + cost = 750 + contains = list(/obj/item/reagent_containers/glass/chem_jug/bromine) + crate_name = "bulk bromine crate" + /datum/supply_pack/chemistry/carbon name = "Bulk Carbon Crate" desc = "Contains a jug filled with 150u of carbon." - cost = 500 + cost = 750 contains = list(/obj/item/reagent_containers/glass/chem_jug/carbon) crate_name = "bulk carbon crate" -/datum/supply_pack/chemistry/oxygen - name = "Bulk Oxygen Crate" - desc = "Contains a jug filled with 150u of oxygen." - cost = 500 - contains = list(/obj/item/reagent_containers/glass/chem_jug/oxygen) - crate_name = "bulk oxygen crate" +/datum/supply_pack/chemistry/chlorine + name = "Bulk Chlorine Crate" + desc = "Contains a jug filled with 150u of chlorine." + cost = 750 + contains = list(/obj/item/reagent_containers/glass/chem_jug/chlorine) + crate_name = "bulk chlorine crate" + +/datum/supply_pack/chemistry/copper + name = "Bulk Copper Crate" + desc = "Contains a jug filled with 150u of copper." + cost = 750 + contains = list(/obj/item/reagent_containers/glass/chem_jug/copper) + crate_name = "bulk copper crate" + +/datum/supply_pack/chemistry/fluorine + name = "Bulk Fluorine Crate" + desc = "Contains a jug filled with 150u of fluorine." + cost = 750 + contains = list(/obj/item/reagent_containers/glass/chem_jug/fluorine) + crate_name = "bulk fluorine crate" /datum/supply_pack/chemistry/hydrogen name = "Bulk Hydrogen Crate" desc = "Contains a jug filled with 150u of Hydrogen." - cost = 500 + cost = 750 contains = list(/obj/item/reagent_containers/glass/chem_jug/hydrogen) crate_name = "bulk hydrogen crate" +/datum/supply_pack/chemistry/iodine + name = "Bulk Iodine Crate" + desc = "Contains a jug filled with 150u of iodine." + cost = 750 + contains = list(/obj/item/reagent_containers/glass/chem_jug/iodine) + crate_name = "bulk iodine crate" + +/datum/supply_pack/chemistry/lithium + name = "Bulk Lithium Crate" + desc = "Contains a jug filled with 150u of lithium." + cost = 750 + contains = list(/obj/item/reagent_containers/glass/chem_jug/lithium) + crate_name = "bulk lithium crate" + +/datum/supply_pack/chemistry/mercury + name = "Bulk Mercury Crate" + desc = "Contains a jug filled with 150u of mercury." + cost = 750 + contains = list(/obj/item/reagent_containers/glass/chem_jug/mercury) + crate_name = "bulk mercury crate" + /datum/supply_pack/chemistry/nitrogen name = "Bulk Nitrogen Crate" desc = "Contains a jug filled with 150u of nitrogen." - cost = 625 + cost = 750 contains = list(/obj/item/reagent_containers/glass/chem_jug/nitrogen) crate_name = "bulk nitrogen crate" -/datum/supply_pack/chemistry/aluminium - name = "Bulk Aluminium Crate" - desc = "Contains a jug filled with 150u of aluminium." - cost = 625 - contains = list(/obj/item/reagent_containers/glass/chem_jug/aluminium) - crate_name = "bulk aluminium crate" - -/datum/supply_pack/chemistry/copper - name = "Bulk Copper Crate" - desc = "Contains a jug filled with 150u of copper." - cost = 625 - contains = list(/obj/item/reagent_containers/glass/chem_jug/copper) - crate_name = "bulk copper crate" - -/datum/supply_pack/chemistry/bromine - name = "Bulk Bromine Crate" - desc = "Contains a jug filled with 150u of bromine." - cost = 625 - contains = list(/obj/item/reagent_containers/glass/chem_jug/bromine) - crate_name = "bulk bromine crate" +/datum/supply_pack/chemistry/oxygen + name = "Bulk Oxygen Crate" + desc = "Contains a jug filled with 150u of oxygen." + cost = 750 + contains = list(/obj/item/reagent_containers/glass/chem_jug/oxygen) + crate_name = "bulk oxygen crate" -/datum/supply_pack/chemistry/iodine - name = "Bulk Iodine Crate" - desc = "Contains a jug filled with 150u of iodine." +/datum/supply_pack/chemistry/phosphorus + name = "Bulk Phosphorus Crate" + desc = "Contains a jug filled with 150u of phosphorus." cost = 750 - contains = list(/obj/item/reagent_containers/glass/chem_jug/iodine) - crate_name = "bulk iodine crate" + contains = list(/obj/item/reagent_containers/glass/chem_jug/phosphorus) + crate_name = "bulk phosphorus crate" /datum/supply_pack/chemistry/potassium name = "Bulk Potassium Crate" @@ -116,23 +158,23 @@ contains = list(/obj/item/reagent_containers/glass/chem_jug/potassium) crate_name = "bulk potassium crate" +/datum/supply_pack/chemistry/radium + name = "Bulk Radium Crate" + desc = "Contains a jug filled with 150u of radium." + cost = 750 + contains = list(/obj/item/reagent_containers/glass/chem_jug/radium) + crate_name = "bulk radium crate" + +/datum/supply_pack/chemistry/sodium + name = "Bulk Sodium Crate" + desc = "Contains a jug filled with 150u of sodium." + cost = 750 + contains = list(/obj/item/reagent_containers/glass/chem_jug/sodium) + crate_name = "bulk sodium crate" + /datum/supply_pack/chemistry/sulfur name = "Bulk Sulfur Crate" desc = "Contains a jug filled with 150u of sulfur." cost = 750 contains = list(/obj/item/reagent_containers/glass/chem_jug/sulfur) crate_name = "bulk sulfur crate" - -/datum/supply_pack/chemistry/chlorine - name = "Bulk Chlorine Crate" - desc = "Contains a jug filled with 150u of chlorine." - cost = 750 - contains = list(/obj/item/reagent_containers/glass/chem_jug/chlorine) - crate_name = "bulk chlorine crate" - -/datum/supply_pack/chemistry/radium - name = "Bulk Radium Crate" - desc = "Contains a jug filled with 150u of radium." - cost = 1000 - contains = list(/obj/item/reagent_containers/glass/chem_jug/radium) - crate_name = "bulk radium crate" diff --git a/code/modules/cargo/packs/food.dm b/code/modules/cargo/packs/food.dm index 3eb7f33cbe4c..364c53ec9eb5 100644 --- a/code/modules/cargo/packs/food.dm +++ b/code/modules/cargo/packs/food.dm @@ -189,6 +189,17 @@ crate_name = "food crate" crate_type = /obj/structure/closet/crate/freezer +/datum/supply_pack/food/sugar + name = "Sugar Crate" + desc = "A crate with a few bags of sugar. Good for cake shops and amateur chemists." + cost = 500 + contains = list(/obj/item/reagent_containers/condiment/sugar, + /obj/item/reagent_containers/condiment/sugar, + /obj/item/reagent_containers/condiment/sugar + ) + crate_name = "sugar crate" + crate_type = /obj/structure/closet/crate + /* Cooking */ @@ -238,6 +249,19 @@ crate_name = "gardening crate" crate_type = /obj/structure/closet/crate/hydroponics +/datum/supply_pack/food/ethanol + name = "Ethanol Crate" + desc = "Five small bottles of ethanol for the aspiring botanist or amateur chemist." + cost = 750 + contains = list(/obj/item/reagent_containers/glass/bottle/ethanol, + /obj/item/reagent_containers/glass/bottle/ethanol, + /obj/item/reagent_containers/glass/bottle/ethanol, + /obj/item/reagent_containers/glass/bottle/ethanol, + /obj/item/reagent_containers/glass/bottle/ethanol + ) + crate_name = "gardening crate" + crate_type = /obj/structure/closet/crate/hydroponics + /datum/supply_pack/food/weedcontrol name = "Weed Control Crate" desc = "Contains a scythe, gasmask, and two anti-weed defoliant grenades, for when your garden grows out of control." diff --git a/code/modules/reagents/reagent_containers/jug.dm b/code/modules/reagents/reagent_containers/jug.dm index de1570a9ef5c..10baf946a089 100644 --- a/code/modules/reagents/reagent_containers/jug.dm +++ b/code/modules/reagents/reagent_containers/jug.dm @@ -1,7 +1,7 @@ /obj/item/reagent_containers/glass/chem_jug name = "chemical jug" desc = "A large jug used for storing bulk ammounts chemicals. Provided with a tamper seal which ensures that the contents are pure" - icon = 'icons/obj/chemical/chem_jug.dmi' + icon = 'icons/obj/chemical/chem_jug.dmi' // the coloring of labels for elemental chemicals is based on the chemical group block coloring at https://pubchem.ncbi.nlm.nih.gov/periodic-table/ . Everything else is whatever. icon_state = "chem_jug" item_state = "sheet-plastic" w_class = WEIGHT_CLASS_BULKY @@ -80,36 +80,21 @@ /obj/item/reagent_containers/glass/chem_jug/open cap_on = FALSE -/obj/item/reagent_containers/glass/chem_jug/carbon - name = "chemical jug (carbon)" - icon_state = "chem_jug_carbon" - list_reagents = list(/datum/reagent/carbon = 150) - -/obj/item/reagent_containers/glass/chem_jug/oxygen - name = "chemical jug (oxygen)" - icon_state = "chem_jug_oxygen" - list_reagents = list(/datum/reagent/oxygen = 150) - -/obj/item/reagent_containers/glass/chem_jug/nitrogen - name = "chemical jug (nitrogen)" - icon_state = "chem_jug_nitrogen" - list_reagents = list(/datum/reagent/nitrogen = 150) - -/obj/item/reagent_containers/glass/chem_jug/hydrogen - name = "chemical jug (hydrogen)" - icon_state = "chem_jug_hydrogen" - list_reagents = list(/datum/reagent/hydrogen = 150) - -/obj/item/reagent_containers/glass/chem_jug/radium - name = "chemical jug (radium)" - icon_state = "chem_jug_radium" - list_reagents = list(/datum/reagent/uranium/radium = 150) - /obj/item/reagent_containers/glass/chem_jug/aluminium name = "chemical jug (aluminium)" icon_state = "chem_jug_aluminium" list_reagents = list(/datum/reagent/aluminium = 150) +/obj/item/reagent_containers/glass/chem_jug/bromine + name = "chemical jug (bromine)" + icon_state = "chem_jug_bromine" + list_reagents = list(/datum/reagent/bromine = 150) + +/obj/item/reagent_containers/glass/chem_jug/carbon + name = "chemical jug (carbon)" + icon_state = "chem_jug_carbon" + list_reagents = list(/datum/reagent/carbon = 150) + /obj/item/reagent_containers/glass/chem_jug/chlorine name = "chemical jug (chlorine)" icon_state = "chem_jug_chlorine" @@ -120,27 +105,67 @@ icon_state = "chem_jug_copper" list_reagents = list(/datum/reagent/copper = 150) -/obj/item/reagent_containers/glass/chem_jug/bromine - name = "chemical jug (bromine)" - icon_state = "chem_jug_bromine" - list_reagents = list(/datum/reagent/bromine = 150) +/obj/item/reagent_containers/glass/chem_jug/fluorine + name = "chemical jug (fluorine)" + icon_state = "chem_jug_fluorine" + list_reagents = list(/datum/reagent/fluorine = 150) + +/obj/item/reagent_containers/glass/chem_jug/hydrogen + name = "chemical jug (hydrogen)" + icon_state = "chem_jug_hydrogen" + list_reagents = list(/datum/reagent/hydrogen = 150) /obj/item/reagent_containers/glass/chem_jug/iodine name = "chemical jug (iodine)" icon_state = "chem_jug_iodine" list_reagents = list(/datum/reagent/iodine = 150) +/obj/item/reagent_containers/glass/chem_jug/lithium + name = "chemical jug (lithium)" + icon_state = "chem_jug_lithium" + list_reagents = list(/datum/reagent/lithium = 150) + +/obj/item/reagent_containers/glass/chem_jug/mercury + name = "chemical jug (mercury)" + icon_state = "chem_jug_mercury" + list_reagents = list(/datum/reagent/mercury = 150) + +/obj/item/reagent_containers/glass/chem_jug/nitrogen + name = "chemical jug (nitrogen)" + icon_state = "chem_jug_nitrogen" + list_reagents = list(/datum/reagent/nitrogen = 150) + +/obj/item/reagent_containers/glass/chem_jug/oxygen + name = "chemical jug (oxygen)" + icon_state = "chem_jug_oxygen" + list_reagents = list(/datum/reagent/oxygen = 150) + +/obj/item/reagent_containers/glass/chem_jug/phosphorus + name = "chemical jug (phosphorus)" + icon_state = "chem_jug_phosphorus" + list_reagents = list(/datum/reagent/phosphorus = 150) + /obj/item/reagent_containers/glass/chem_jug/potassium name = "chemical jug (potassium)" icon_state = "chem_jug_potassium" list_reagents = list(/datum/reagent/potassium = 150) +/obj/item/reagent_containers/glass/chem_jug/radium + name = "chemical jug (radium)" + icon_state = "chem_jug_radium" + list_reagents = list(/datum/reagent/uranium/radium = 150) + +/obj/item/reagent_containers/glass/chem_jug/sodium + name = "chemical jug (sodium)" + icon_state = "chem_jug_sodium" + list_reagents = list(/datum/reagent/sodium = 150) + /obj/item/reagent_containers/glass/chem_jug/sulfur name = "chemical jug (sulfur)" icon_state = "chem_jug_sulfur" list_reagents = list(/datum/reagent/sulfur = 150) -/obj/item/reagent_containers/glass/chem_jug/thermite +/obj/item/reagent_containers/glass/chem_jug/thermite // not giving this its own "elemental" jug sprite. name = "chemical jug (thermite)" list_reagents = list(/datum/reagent/thermite = 150) diff --git a/icons/obj/chemical/chem_jug.dmi b/icons/obj/chemical/chem_jug.dmi index d872ba00ff1d2dd67a378b78c2b2d4da7a69b62f..e5ab15a43e14a23660ba7126daa44330f11d1aa2 100644 GIT binary patch literal 2123 zcmZuzdpHw%AJxc3$3?A(xrj*qrIS?|J*<{p0ujKF{}edA^^^^L>8lULLM0O4>?ta&jte zNVtzIQ)G*vs342?LV|TR&9CVOVA<4~6Fo zQSjK9KD7U3;%Ar94-e>kX)EG>dq}h*I4Gq%`9jsVF6JNt)MIoV;DJn%vKj0ED>dAw zkHHM@EWm7>RLg{@Y=!byd(rwZo~oT%e0j#zYBy1lytZv50FuGNK%+L3dfoQn5Co73 zF|W2mqyOcBLEJ<7WVj05@~nq(*!c_g`7i3#RNbyIq+V7;MSVN-pxX+*_5pCo!9_IU?`y-9+TAu%yS?dSE>p zzgnm5(HV~>J+c98iGtAdh3yn}iuJ+^Ruxq&Nb z{d9!Eti!W963 zq%Koa(^o5e_S2VaHhVn_jYd0+Xawyr289(dS?lH z$GF@C9wl*&s2d0b0(svXa&vRfrk*hr|Jy)aLgdB)XUVrE5NtC~%osjHNiXd zG@7T-qG|E-qU|)fMbK-{59|}(tRROwYHXX5T8~G@UOcRw^-m)&!##n`n=SX$No#}< z6>BT2Q^b;z=NJs;I;_d89eQ%FEm3EOu?rE)nt+0vQFtW1S z6lZnfT?iLu6@p5*dCNOCqPL@Vzg zF3;o}g0jWzA#=RFp77~&^mn`?|I9h&kccp3&TMFh%;P>8GIsl{}qY7Ve?W zxP5sw3!Q6SuXeCiI`IfzGL$4A4|XsLZtF`+oOK1Qf@f3yH4N|;R8-W5I>}GMyLa4R z@uc4Rq!R@VngLA;aQ9TYQg(i={5$BF3d&#*yR2;?9@$AJMNeFD1RG0gIS2-6UKPkx zSdKjjq%qzKvfmSUc-#8;fCfQONBz~Q-_xKoG+B>5PmayJ-z%6tGUlc`6RcrdZJya} zqEN!YnqvB#@#8!F!5aFlrLRF@M8vBxL zlPc~8l-v7}Wt6A#Au=_*;wI&NK-Il6DUJzWDu4e<7w6NMwpZ6@(s{DlPCd}V+oeJC za^2Ns+;{;q;XCSE?K{fGdp!Vm2ubZ9m$i?b5@xlh->`2cif`wOVivJeH^ua}`}p?y zJUO)3ZOSV}JO!l`cs2)xwVOej^|0WA1DI)r{s%(y&y%OrU|u;ShqpWn$xkAZ0zTZ79P2(es)Gy$}rIAAFo*D6}XUrP__|)KmpXUVbG4p4C=A~4#(HsI# zF|B^RQElMfR8lpYYh0{Y=y{|*@<8-GQ;E(;bI_=GSk38+=J7cUTQ)5c!)+fN@KYM! zZW;1OA4ND0$n^*-n|!TccKmSBe3i{*=qJ~c9}sU{{pK>Fp5a(~|6s_ws2HuLeKpde zN_|#aR9GVf)z30{g6=VP^ zT1W9f%kXC5#rFMdv>iwW*eJ8uAPbTnf--Y<6<*8{!6zcd{dZ>eovLA;-oV`SUoZN- hkpAtk|IzF}fxe5>KxTzAu(IEQoEyReUgP{*;-ASoG|~V7 literal 964 zcmV;#13UbQP)C0000^P)t-sz`(%O z)z#|i>TPXpFtYL;jNGiOtpET2G&D5CPfzwoN2M+&G@mfgQc795RDBm82uc<%bT8Jz zJn-2+lwJ^{cN%`7#Gu6JCN+YI00DGTPE!Ct=GbNc0075&R9JLGWpiV4 zX>fFDZ*Bkpc$}3}%L;=q5Imc&2zoDlU3)1?@lbz3ViHY?ab=UV_3s<%u~6LG%re8y zENsEA)va!Ld9T@1qqi{e3qSAnEPGiMOd_Wv%Z#>z2`lkI1f5_mjdtxL4mrz|MW03o zmh~u{Uh$8xm0~7|+aTPmal6OIv5y4(3_*BrquXw=pzNe6HL!zeyB>ui<&iLxPShbd zQUNi>WFTdlY(N+^p|vz4ASo8S7t#i^sK1#CUNzPWf-n$8F-kyN3JNIy|D`2B5Jz^G%C4m2USB$MaXFI-*pn#IXf$JX#_XbKKjgVT z91bz|eX6JCTbm@-rpCp#e>~qHj&T6Ir{-JZE-vjfWMD+yQ068RaNx>^G^Y$&*K3D-WQPjd4RI6 zaRA{JD66_c0YH1@=qGys0)YLUqwn@W74!-q{?5@)-UENvbLl<+0K(s;d)nWndyPh; z(F71ZAJFpwJs)`dr|mP(2QYu<=&wE?0OIc){q@!d0qFF7R-J~v#`{)(%X#-30Gg%; zn12eKK12RK0s?aB0V@Ka{h$EU4cvUJFINJ<_R7&u_5i#BkiT>E*LDlE33&w&f9L2Y z?|~5Yd~*OjAJAwt8qM~R_J1nU{!iXt+W%<)VgIKh?*CN8{eL0A7s7XX;QukDus zApX9#UkK2E_B#4K(S!E85a31uyb8D!pt%9|`lc0t?R9Ox5CHb~wf#bXtyci?_q9C@ mAg$lw1Bm-S74?73r{)(<%6zn6bN0ai0000 Date: Mon, 7 Oct 2024 19:30:26 -0500 Subject: [PATCH 134/167] Automatic changelog generation for PR #3431 [ci skip] --- html/changelogs/AutoChangeLog-pr-3431.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3431.yml diff --git a/html/changelogs/AutoChangeLog-pr-3431.yml b/html/changelogs/AutoChangeLog-pr-3431.yml new file mode 100644 index 000000000000..155813aabd92 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3431.yml @@ -0,0 +1,7 @@ +author: Anticept +changes: + - {rscadd: Added more purchasable chemicals to outpost.} + - {rscadd: Added missing elemental chems to chem starter kit} + - {rscdel: removed sulfuric acid from chem starter set. You have to make it.} + - {imageadd: tweaked and added more elemental chemical jugs.} +delete-after: true From 298036be02d8a0c5e8f58e59542528ed61faf564 Mon Sep 17 00:00:00 2001 From: Imaginos16 <77556824+Imaginos16@users.noreply.github.com> Date: Mon, 7 Oct 2024 17:16:25 -0700 Subject: [PATCH 135/167] Circuit Board Resprite (#3497) ## About The Pull Request This PR redoes the visuals for the main machine/computer boards that can be printed off of any circuit imprinter. ![image](https://github.com/user-attachments/assets/3e557ce0-bef5-4e35-be3a-4a07a0c79f9f) More will come in the future. ## Why It's Good For The Game Our previous ones were quite a mess in comparison, and it's a small little thing to keep us occupied while I work on other, larger sweeping changes. I've been meaning to PR it for a while in any case. ## Changelog :cl: PositiveEntropy imageadd: We now have improved visuals for circuit boards! /:cl: --- icons/obj/module.dmi | Bin 18994 -> 19926 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/module.dmi b/icons/obj/module.dmi index 49c818b217d0cd20a94c8b27afc39e7f567138dc..e7f379175a5e79d0b37e4125c002422dca0e3bb4 100644 GIT binary patch delta 18802 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 B=9d5f From ba1a5620b2cc1e15ff4a3fcb135c3ca9035db499 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 7 Oct 2024 19:43:14 -0500 Subject: [PATCH 136/167] Automatic changelog generation for PR #3497 [ci skip] --- html/changelogs/AutoChangeLog-pr-3497.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3497.yml diff --git a/html/changelogs/AutoChangeLog-pr-3497.yml b/html/changelogs/AutoChangeLog-pr-3497.yml new file mode 100644 index 000000000000..6acb43a736d0 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3497.yml @@ -0,0 +1,4 @@ +author: PositiveEntropy +changes: + - {imageadd: We now have improved visuals for circuit boards!} +delete-after: true From ec669a1394462a86570d06af68a97e8b751f544e Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 8 Oct 2024 01:02:13 +0000 Subject: [PATCH 137/167] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3395.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3417.yml | 5 ---- html/changelogs/AutoChangeLog-pr-3431.yml | 7 ------ html/changelogs/AutoChangeLog-pr-3447.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3472.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3475.yml | 5 ---- html/changelogs/AutoChangeLog-pr-3484.yml | 6 ----- html/changelogs/AutoChangeLog-pr-3488.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3493.yml | 5 ---- html/changelogs/AutoChangeLog-pr-3497.yml | 4 ---- html/changelogs/archive/2024-10.yml | 29 +++++++++++++++++++++++ 11 files changed, 29 insertions(+), 48 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3395.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3417.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3431.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3447.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3472.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3475.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3484.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3488.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3493.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3497.yml diff --git a/html/changelogs/AutoChangeLog-pr-3395.yml b/html/changelogs/AutoChangeLog-pr-3395.yml deleted file mode 100644 index e7146487ce7f..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3395.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: FalloutFalcon, Mothblocks, Cyberboss -changes: - - {rscadd: retry failed unit tests.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3417.yml b/html/changelogs/AutoChangeLog-pr-3417.yml deleted file mode 100644 index f00e3b3d4845..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3417.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: SomeguyManperson -changes: - - {balance: you no longer need a lasso to ride a goliath} - - {rscdel: no more lasso} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3431.yml b/html/changelogs/AutoChangeLog-pr-3431.yml deleted file mode 100644 index 155813aabd92..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3431.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: Anticept -changes: - - {rscadd: Added more purchasable chemicals to outpost.} - - {rscadd: Added missing elemental chems to chem starter kit} - - {rscdel: removed sulfuric acid from chem starter set. You have to make it.} - - {imageadd: tweaked and added more elemental chemical jugs.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3447.yml b/html/changelogs/AutoChangeLog-pr-3447.yml deleted file mode 100644 index a3c00b8de0da..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3447.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Bjarl -changes: - - {code_imp: A large amount of cruft has been deleted.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3472.yml b/html/changelogs/AutoChangeLog-pr-3472.yml deleted file mode 100644 index 899e00d9c9e5..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3472.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: thgvr -changes: - - {bugfix: fixed digitigrade combat/jackboots} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3475.yml b/html/changelogs/AutoChangeLog-pr-3475.yml deleted file mode 100644 index fb28b86b493c..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3475.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: DrCrawler -changes: - - {rscadd: Gives IPCs a little more adjectives to work with.} - - {rscdel: Removed some duplicate adjectives from the raw file.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3484.yml b/html/changelogs/AutoChangeLog-pr-3484.yml deleted file mode 100644 index e1268b036c5f..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3484.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Sadhorizon -changes: - - {rscadd: Cybersun Biodynamics stamp.} - - {rscadd: Cybersun secret documents.} - - {rscadd: Cybersun captain's safe.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3488.yml b/html/changelogs/AutoChangeLog-pr-3488.yml deleted file mode 100644 index 99d5cdb6d1e7..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3488.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: rye-rice, Imaginos16 -changes: - - {rscadd: Resprites Wisp} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3493.yml b/html/changelogs/AutoChangeLog-pr-3493.yml deleted file mode 100644 index e670f8c7359f..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3493.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: FalloutFalcon -changes: - - {code_imp: tweaks to the syntax of unit test logs to be more readable by humans - and flaky tests} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3497.yml b/html/changelogs/AutoChangeLog-pr-3497.yml deleted file mode 100644 index 6acb43a736d0..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3497.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: PositiveEntropy -changes: - - {imageadd: We now have improved visuals for circuit boards!} -delete-after: true diff --git a/html/changelogs/archive/2024-10.yml b/html/changelogs/archive/2024-10.yml index 5b95989e7c16..b8306d1a3160 100644 --- a/html/changelogs/archive/2024-10.yml +++ b/html/changelogs/archive/2024-10.yml @@ -76,3 +76,32 @@ thgvr: - imageadd: Some backpack sprites for Kepori - imageadd: Shrunk down the sprite of guncases +2024-10-08: + Anticept: + - rscadd: Added more purchasable chemicals to outpost. + - rscadd: Added missing elemental chems to chem starter kit + - rscdel: removed sulfuric acid from chem starter set. You have to make it. + - imageadd: tweaked and added more elemental chemical jugs. + Bjarl: + - code_imp: A large amount of cruft has been deleted. + DrCrawler: + - rscadd: Gives IPCs a little more adjectives to work with. + - rscdel: Removed some duplicate adjectives from the raw file. + FalloutFalcon: + - code_imp: tweaks to the syntax of unit test logs to be more readable by humans + and flaky tests + FalloutFalcon, Mothblocks, Cyberboss: + - rscadd: retry failed unit tests. + PositiveEntropy: + - imageadd: We now have improved visuals for circuit boards! + Sadhorizon: + - rscadd: Cybersun Biodynamics stamp. + - rscadd: Cybersun secret documents. + - rscadd: Cybersun captain's safe. + SomeguyManperson: + - balance: you no longer need a lasso to ride a goliath + - rscdel: no more lasso + rye-rice, Imaginos16: + - rscadd: Resprites Wisp + thgvr: + - bugfix: fixed digitigrade combat/jackboots From aa5d8eefdd76df6e1e1392287aed730d44e39c64 Mon Sep 17 00:00:00 2001 From: zimon9 <122945887+zimon9@users.noreply.github.com> Date: Mon, 7 Oct 2024 21:54:40 -0400 Subject: [PATCH 138/167] Atomizes flamethrower and incendiary grenade crates (#3494) ## About The Pull Request This change splits the incendiary cargo crate, containing 3 flamethrowers and 3 incendiary grenades for 5000 credits, into two crates: | Flamethrower Crate | Incendiary Grenade Crate | |--------------------|--------------------------| | 1x flamethrower | 1x incendiary grenade | | 1250 credits | 750 credits | If added together, this brings the total cost, if one were to replicate the kit, to 6000 credits. ## Why It's Good For The Game This crate was long overdue for atomization, just like how all of the weapon crates available right now have already been atomized. ## Changelog :cl: add: Added flamethrower crate add: Added incendiary grenade crate del: Removed incendiary supply crate /:cl: --- code/modules/cargo/packs/sec_supply.dm | 28 ++++++++++++++------------ 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/code/modules/cargo/packs/sec_supply.dm b/code/modules/cargo/packs/sec_supply.dm index f0f062160c79..1045f2730ea9 100644 --- a/code/modules/cargo/packs/sec_supply.dm +++ b/code/modules/cargo/packs/sec_supply.dm @@ -90,19 +90,21 @@ crate_name = "combat knife crate" */ -/datum/supply_pack/sec_supply/fire - name = "Incendiary Weapons Crate" - desc = "Burn, baby burn. Contains three incendiary grenades and three prebuilt flamethrowers." - cost = 5000 - contains = list( - /obj/item/flamethrower/full, - /obj/item/flamethrower/full, - /obj/item/flamethrower/full, - /obj/item/grenade/chem_grenade/incendiary, - /obj/item/grenade/chem_grenade/incendiary, - /obj/item/grenade/chem_grenade/incendiary, - ) - crate_name = "incendiary weapons crate" +/datum/supply_pack/sec_supply/flamethrower + name = "Flamethrower Crate" + desc = "Contains one flamethrower. Point the nozzle away from anything important." + cost = 1250 + contains = list(/obj/item/flamethrower/full) + crate_name = "flamethrower crate" + crate_type = /obj/structure/closet/crate/secure/weapon + faction = FACTION_NGR + +/datum/supply_pack/sec_supply/incendiary_grenade + name = "Incendiary Grenade Crate" + desc = "Contains one incendiary grenade. Better not let it go off in your hands." + cost = 750 + contains = list(/obj/item/grenade/chem_grenade/incendiary) + crate_name = "incendiary grenade crate" crate_type = /obj/structure/closet/crate/secure/plasma faction = FACTION_NGR From d83382852cd55466828dddbdfa29e3bcd87d96c6 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 7 Oct 2024 21:14:22 -0500 Subject: [PATCH 139/167] Automatic changelog generation for PR #3494 [ci skip] --- html/changelogs/AutoChangeLog-pr-3494.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3494.yml diff --git a/html/changelogs/AutoChangeLog-pr-3494.yml b/html/changelogs/AutoChangeLog-pr-3494.yml new file mode 100644 index 000000000000..1dbb6c88b419 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3494.yml @@ -0,0 +1,6 @@ +author: zimon9 +changes: + - {rscadd: Added flamethrower crate} + - {rscadd: Added incendiary grenade crate} + - {rscdel: Removed incendiary supply crate} +delete-after: true From b7ca040157c964af3101db86acf45da81a0802fe Mon Sep 17 00:00:00 2001 From: Imaginos16 <77556824+Imaginos16@users.noreply.github.com> Date: Mon, 7 Oct 2024 19:27:08 -0700 Subject: [PATCH 140/167] Assorted Resprites Part Something: Dog Beds, Barrels and Tank Dispensers! (#3498) ## About The Pull Request Does What It Says On The Tin ![image](https://github.com/user-attachments/assets/c3f4ce96-7aac-4941-9e70-1a096f131cd3) ![image](https://github.com/user-attachments/assets/36fee2f4-efc2-4e55-91bc-29822f0f0e77) ![image](https://github.com/user-attachments/assets/6122b8fd-1fa5-4531-a5a3-6d09b0a0ac9f) ## Why It's Good For The Game Part 2 of me going through my backlog and getting shit done. ## Changelog :cl: PositiveEntropy imageadd: Dog Beds Now Look Fancier! imageadd: Tank Dispensers have been repaletted! imageadd: Nuclear Waste Barrels Look A Lot Better! /:cl: --- icons/obj/hazard.dmi | Bin 4005 -> 4932 bytes icons/obj/objects.dmi | Bin 103649 -> 103767 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/hazard.dmi b/icons/obj/hazard.dmi index 5c350c5afb9b189a968d8642f18305443570bff0..f9df336f607dc505f11701c25b691d935925971d 100644 GIT binary patch delta 4789 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 AEC2ui delta 3855 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 R&Hw-a00>D%PDHLkV1iZzn9%?L diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index 8479c100f1b0a25f9ca2e2cb61b391e86f03899e..628c19d63e43265403c76cdc8b170556812bac8c 100644 GIT binary patch delta 29990 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 delta 29882 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 t{6q_;j(UInF*HvP^+M>)|H)su&Kx Date: Mon, 7 Oct 2024 21:37:41 -0500 Subject: [PATCH 141/167] Automatic changelog generation for PR #3498 [ci skip] --- html/changelogs/AutoChangeLog-pr-3498.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3498.yml diff --git a/html/changelogs/AutoChangeLog-pr-3498.yml b/html/changelogs/AutoChangeLog-pr-3498.yml new file mode 100644 index 000000000000..dfb39c7fad1d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3498.yml @@ -0,0 +1,6 @@ +author: PositiveEntropy +changes: + - {imageadd: Dog Beds Now Look Fancier!} + - {imageadd: Tank Dispensers have been repaletted!} + - {imageadd: Nuclear Waste Barrels Look A Lot Better!} +delete-after: true From b54dd8dfcc29057c5fe7411640a070fe7582c852 Mon Sep 17 00:00:00 2001 From: Sun-Soaked <45698967+Sun-Soaked@users.noreply.github.com> Date: Tue, 8 Oct 2024 15:37:26 -0400 Subject: [PATCH 142/167] Volumetric Boxes (#3460) title ## About The Pull Request See title. Enabler for Thgvr's future ammo box plans. Many "specialized" boxes have become normal ones and are now less volumous as a result. Slight rebalance to volu sizes to make smaller objects slightly smaller, because I accidentally made boxes much worse with the original stats Next is first aid and toolboxes, maybe. ## Why It's Good For The Game Extends volumetric storage coverage from 1(1) storage object, to 2. ## Changelog :cl: add: Boxes are now volumetric. Some special boxes have been adjusted. balance: small objects in volumetric storage are now slightly smaller /:cl: --- code/__DEFINES/storage.dm | 12 ++++---- code/game/objects/items/storage/boxes.dm | 38 ++++-------------------- 2 files changed, 12 insertions(+), 38 deletions(-) diff --git a/code/__DEFINES/storage.dm b/code/__DEFINES/storage.dm index cb657520e33f..f8f7e1f10c5b 100644 --- a/code/__DEFINES/storage.dm +++ b/code/__DEFINES/storage.dm @@ -44,9 +44,9 @@ // PLEASE KEEP ALL VOLUME DEFINES IN THIS FILE, it's going to be hell to keep track of them later. #define DEFAULT_VOLUME_TINY 1 #define DEFAULT_VOLUME_SMALL 2 -#define DEFAULT_VOLUME_NORMAL 6 -#define DEFAULT_VOLUME_BULKY 12 -#define DEFAULT_VOLUME_HUGE 24 +#define DEFAULT_VOLUME_NORMAL 8 +#define DEFAULT_VOLUME_BULKY 14 +#define DEFAULT_VOLUME_HUGE 28 #define DEFAULT_VOLUME_GIGANTIC 48 GLOBAL_LIST_INIT(default_weight_class_to_volume, list( @@ -80,9 +80,9 @@ GLOBAL_LIST_INIT(default_weight_class_to_volume, list( #define MAX_WEIGHT_CLASS_DUFFEL WEIGHT_CLASS_BULKY // max_volume for storages -#define STORAGE_VOLUME_CONTAINER_S DEFAULT_VOLUME_NORMAL //3 small items -#define STORAGE_VOLUME_CONTAINER_M (DEFAULT_VOLUME_NORMAL * 2) //6 small items +#define STORAGE_VOLUME_CONTAINER_S DEFAULT_VOLUME_NORMAL //4 small items +#define STORAGE_VOLUME_CONTAINER_M (DEFAULT_VOLUME_NORMAL * 2) //8 small items #define STORAGE_VOLUME_SATCHEL (DEFAULT_VOLUME_NORMAL * 4) //4 normal items -#define STORAGE_VOLUME_BACKPACK (DEFAULT_VOLUME_NORMAL * 6) //6 normal items, or 3 bulky items +#define STORAGE_VOLUME_BACKPACK (DEFAULT_VOLUME_NORMAL * 6) //1.5x satchel, 3 bulky items #define STORAGE_VOLUME_DUFFLEBAG (DEFAULT_VOLUME_NORMAL * 8) // 2 huge items, or 4 bulky items #define STORAGE_VOLUME_BAG_OF_HOLDING (DEFAULT_VOLUME_NORMAL * 9) //1.5X backpack diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 57b574e39b7f..29d2cd22dbbd 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -41,6 +41,9 @@ /obj/item/storage/box/ComponentInitialize() . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.storage_flags = STORAGE_FLAGS_VOLUME_DEFAULT + STR.max_volume = STORAGE_VOLUME_CONTAINER_S + STR.max_w_class = WEIGHT_CLASS_SMALL STR.use_sound = 'sound/items/storage/briefcase.ogg' /obj/item/storage/box/update_overlays() @@ -477,11 +480,6 @@ for(var/i in 1 to 6) new donktype(src) -/obj/item/storage/box/donkpockets/ComponentInitialize() - . = ..() - var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.set_holdable(list(/obj/item/reagent_containers/food/snacks/donkpocket)) - /obj/item/storage/box/donkpockets/donkpocketspicy name = "box of spicy-flavoured donk-pockets" icon_state = "donkpocketboxspicy" @@ -519,12 +517,6 @@ illustration = null var/cube_type = /obj/item/reagent_containers/food/snacks/monkeycube -/obj/item/storage/box/monkeycubes/ComponentInitialize() - . = ..() - var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_items = 7 - STR.set_holdable(list(/obj/item/reagent_containers/food/snacks/monkeycube)) - /obj/item/storage/box/monkeycubes/PopulateContents() for(var/i in 1 to 5) new cube_type(src) @@ -539,12 +531,6 @@ icon_state = "monkeycubebox" illustration = null -/obj/item/storage/box/gorillacubes/ComponentInitialize() - . = ..() - var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_items = 3 - STR.set_holdable(list(/obj/item/reagent_containers/food/snacks/monkeycube)) - /obj/item/storage/box/gorillacubes/PopulateContents() for(var/i in 1 to 3) new /obj/item/reagent_containers/food/snacks/monkeycube/gorilla(src) @@ -676,12 +662,6 @@ icon = 'icons/obj/toy.dmi' icon_state = "spbox" -/obj/item/storage/box/snappops/ComponentInitialize() - . = ..() - var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.set_holdable(list(/obj/item/toy/snappop)) - STR.max_items = 8 - /obj/item/storage/box/snappops/PopulateContents() SEND_SIGNAL(src, COMSIG_TRY_STORAGE_FILL_TYPE, /obj/item/toy/snappop) @@ -697,12 +677,6 @@ pickup_sound = 'sound/items/handling/matchbox_pickup.ogg' custom_price = 20 -/obj/item/storage/box/matches/ComponentInitialize() - . = ..() - var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_items = 10 - STR.set_holdable(list(/obj/item/match)) - /obj/item/storage/box/matches/PopulateContents() SEND_SIGNAL(src, COMSIG_TRY_STORAGE_FILL_TYPE, /obj/item/match) @@ -720,9 +694,10 @@ righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' foldable = /obj/item/stack/sheet/cardboard //BubbleWrap -/obj/item/storage/box/lights/ComponentInitialize() +/obj/item/storage/box/lights/ComponentInitialize()//holy oversized box. this one can stay the way it is, for now . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.storage_flags = STORAGE_FLAGS_LEGACY_DEFAULT STR.max_items = 21 STR.set_holdable(list(/obj/item/light/tube, /obj/item/light/bulb)) STR.max_combined_w_class = 21 @@ -1479,8 +1454,7 @@ /obj/item/storage/box/gum/ComponentInitialize() . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.set_holdable(list(/obj/item/reagent_containers/food/snacks/chewable/bubblegum)) - STR.max_items = 4 + STR.max_volume = (STORAGE_VOLUME_CONTAINER_S / 2) /obj/item/storage/box/gum/PopulateContents() for(var/i in 1 to 4) From 054e78ece591fb39fe5d4f0fbf91fe6feb343107 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 8 Oct 2024 14:48:23 -0500 Subject: [PATCH 143/167] Automatic changelog generation for PR #3460 [ci skip] --- html/changelogs/AutoChangeLog-pr-3460.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3460.yml diff --git a/html/changelogs/AutoChangeLog-pr-3460.yml b/html/changelogs/AutoChangeLog-pr-3460.yml new file mode 100644 index 000000000000..085d58ae6fa1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3460.yml @@ -0,0 +1,5 @@ +author: Sun-Soaked +changes: + - {rscadd: Boxes are now volumetric. Some special boxes have been adjusted.} + - {balance: small objects in volumetric storage are now slightly smaller} +delete-after: true From 030dc0eabb59eb57e76da5a21ed8011752e813a8 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 9 Oct 2024 01:01:57 +0000 Subject: [PATCH 144/167] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3460.yml | 5 ----- html/changelogs/AutoChangeLog-pr-3494.yml | 6 ------ html/changelogs/AutoChangeLog-pr-3498.yml | 6 ------ html/changelogs/archive/2024-10.yml | 12 ++++++++++++ 4 files changed, 12 insertions(+), 17 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3460.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3494.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3498.yml diff --git a/html/changelogs/AutoChangeLog-pr-3460.yml b/html/changelogs/AutoChangeLog-pr-3460.yml deleted file mode 100644 index 085d58ae6fa1..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3460.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Sun-Soaked -changes: - - {rscadd: Boxes are now volumetric. Some special boxes have been adjusted.} - - {balance: small objects in volumetric storage are now slightly smaller} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3494.yml b/html/changelogs/AutoChangeLog-pr-3494.yml deleted file mode 100644 index 1dbb6c88b419..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3494.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: zimon9 -changes: - - {rscadd: Added flamethrower crate} - - {rscadd: Added incendiary grenade crate} - - {rscdel: Removed incendiary supply crate} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3498.yml b/html/changelogs/AutoChangeLog-pr-3498.yml deleted file mode 100644 index dfb39c7fad1d..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3498.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: PositiveEntropy -changes: - - {imageadd: Dog Beds Now Look Fancier!} - - {imageadd: Tank Dispensers have been repaletted!} - - {imageadd: Nuclear Waste Barrels Look A Lot Better!} -delete-after: true diff --git a/html/changelogs/archive/2024-10.yml b/html/changelogs/archive/2024-10.yml index b8306d1a3160..6705c1fd38a3 100644 --- a/html/changelogs/archive/2024-10.yml +++ b/html/changelogs/archive/2024-10.yml @@ -105,3 +105,15 @@ - rscadd: Resprites Wisp thgvr: - bugfix: fixed digitigrade combat/jackboots +2024-10-09: + PositiveEntropy: + - imageadd: Dog Beds Now Look Fancier! + - imageadd: Tank Dispensers have been repaletted! + - imageadd: Nuclear Waste Barrels Look A Lot Better! + Sun-Soaked: + - rscadd: Boxes are now volumetric. Some special boxes have been adjusted. + - balance: small objects in volumetric storage are now slightly smaller + zimon9: + - rscadd: Added flamethrower crate + - rscadd: Added incendiary grenade crate + - rscdel: Removed incendiary supply crate From 6de720e32164246f8a5bde2cd3f0685a657405ba Mon Sep 17 00:00:00 2001 From: zimon9 <122945887+zimon9@users.noreply.github.com> Date: Wed, 9 Oct 2024 06:09:03 -0400 Subject: [PATCH 145/167] Changes Inteq loadouts in order to add headsets to roles missing them (#3448) ## About The Pull Request This change adds basic bowmans to Enforcer and Artificer loadouts, as well as basic headsets to Recruit loadouts. ## Why It's Good For The Game Hearing protection is important out in the Frontier, and both Artificers and Enforcers tend to be around things that test the limits of their eardrums. Namely power tools and heavy machinery, or explosives and gunfire. ## Changelog :cl: add: Adds bowmans to Artificer and Enforcer loadouts, and regular headsets to Recruit loadouts /:cl: --------- Signed-off-by: zimon9 <122945887+zimon9@users.noreply.github.com> Co-authored-by: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> --- code/game/objects/items/devices/radio/headset.dm | 4 ++++ code/modules/clothing/outfits/factions/inteq.dm | 3 +++ 2 files changed, 7 insertions(+) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 0f0081c90454..c649c1e3f594 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -212,6 +212,10 @@ GLOBAL_LIST_INIT(channel_tokens, list( desc = "This is used by Inteq Risk Management Group's mercenaries. Protects ears from flashbangs." icon_state = "inteq_headset_alt" +/obj/item/radio/headset/inteq/alt/ComponentInitialize() + . = ..() + AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS)) + /obj/item/radio/headset/inteq/alt/captain name = "vanguard bowman headset" desc = "Used by Inteq Risk Management Group's elite vanguards. Protects ears from flashbangs." diff --git a/code/modules/clothing/outfits/factions/inteq.dm b/code/modules/clothing/outfits/factions/inteq.dm index 16d1456361be..51e1cf1fb29f 100644 --- a/code/modules/clothing/outfits/factions/inteq.dm +++ b/code/modules/clothing/outfits/factions/inteq.dm @@ -24,6 +24,7 @@ jobtype = /datum/job/assistant job_icon = "assistant" + ears = /obj/item/radio/headset r_pocket = /obj/item/radio ///captains @@ -135,6 +136,7 @@ jobtype = /datum/job/officer job_icon = "securityofficer" + ears = /obj/item/radio/headset/alt head = /obj/item/clothing/head/helmet/inteq suit = /obj/item/clothing/suit/armor/vest/alt belt = /obj/item/storage/belt/security/webbing/inteq @@ -181,6 +183,7 @@ job_icon = "stationengineer" jobtype = /datum/job/engineer + ears = /obj/item/radio/headset/alt uniform = /obj/item/clothing/under/syndicate/inteq/artificer head = /obj/item/clothing/head/soft/inteq shoes = /obj/item/clothing/shoes/combat From 2e959916e163127c15fbb9674487e3abd6c4a03f Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 9 Oct 2024 05:29:06 -0500 Subject: [PATCH 146/167] Automatic changelog generation for PR #3448 [ci skip] --- html/changelogs/AutoChangeLog-pr-3448.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3448.yml diff --git a/html/changelogs/AutoChangeLog-pr-3448.yml b/html/changelogs/AutoChangeLog-pr-3448.yml new file mode 100644 index 000000000000..069fa408237d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3448.yml @@ -0,0 +1,5 @@ +author: zimon9 +changes: + - {rscadd: 'Adds bowmans to Artificer and Enforcer loadouts, and regular headsets + to Recruit loadouts'} +delete-after: true From fb11d3a14eae2c2e052d52b716d67e3299288a16 Mon Sep 17 00:00:00 2001 From: Imaginos16 <77556824+Imaginos16@users.noreply.github.com> Date: Wed, 9 Oct 2024 03:29:04 -0700 Subject: [PATCH 147/167] Resprites The "Braid" Haircuts (#3510) ## About The Pull Request Before I continue to explain the PR, I kindly ask for this to not be ported to any other codebases. This is merely a request, and is ultimately unenforceable as long as proper credit is given to the authors. (Me in this case) A continuation of me and @rye-rice's efforts with respriting every hair on Shiptest. This one tackles the Braid hairstyles, both long and short! ![image](https://github.com/user-attachments/assets/a6a18236-1a1d-4b57-a7e7-c6ac46e5f246) ## Why It's Good For The Game Another two down babey!!! ## Changelog :cl: PositiveEntropy imageadd: Long (And Short) Braid hairstyles have been redone! /:cl: --- icons/mob/human_face.dmi | Bin 103088 -> 103180 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index ab667d8d93371a02091ee08e2c65a190a5b9ad56..27c45db506499b5a08073abeeda4705d0d075eb0 100644 GIT binary patch literal 103180 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 jyGI0kN{jmQ7ZQ5tD literal 103088 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 p)8BZ|I%U0AhQa^#?fXA`if5n7-_vu8L Date: Wed, 9 Oct 2024 05:40:34 -0500 Subject: [PATCH 148/167] Automatic changelog generation for PR #3510 [ci skip] --- html/changelogs/AutoChangeLog-pr-3510.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3510.yml diff --git a/html/changelogs/AutoChangeLog-pr-3510.yml b/html/changelogs/AutoChangeLog-pr-3510.yml new file mode 100644 index 000000000000..5322e1f9d188 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3510.yml @@ -0,0 +1,4 @@ +author: PositiveEntropy +changes: + - {imageadd: Long (And Short) Braid hairstyles have been redone!} +delete-after: true From aee3a7c0aa6a10c004f99a5cd2c1ff634585bd93 Mon Sep 17 00:00:00 2001 From: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Date: Wed, 9 Oct 2024 05:30:02 -0500 Subject: [PATCH 149/167] Ray cats! (#3465) ## About The Pull Request Cats now act like fuzzy Geiger counters! https://github.com/user-attachments/assets/77a0cdbf-51e9-420d-afad-998e46b69343 ## Why It's Good For The Game Imagine your own deep lore regarding the NOF here ![image](https://github.com/user-attachments/assets/618e1057-ac76-4a10-9767-c21b6a12b495) ## Changelog :cl: add: Cats have been genetically engineered to detect radiation /:cl: --- code/__DEFINES/radiation.dm | 12 +++++ code/datums/components/radioactive.dm | 2 +- .../objects/items/devices/geiger_counter.dm | 16 ------ .../mob/living/simple_animal/friendly/cat.dm | 51 ++++++++++++++++++- 4 files changed, 62 insertions(+), 19 deletions(-) diff --git a/code/__DEFINES/radiation.dm b/code/__DEFINES/radiation.dm index 2c4e41f45906..fa66e7c3ea8e 100644 --- a/code/__DEFINES/radiation.dm +++ b/code/__DEFINES/radiation.dm @@ -57,3 +57,15 @@ Ask ninjanomnom if they're around #define RAD_DISTANCE_COEFFICIENT 1 // Lower means further rad spread #define RAD_HALF_LIFE 90 // The half-life of contaminated objects + +#define RAD_GLOW_COLOR "#39ff1430" + +#define RAD_LEVEL_NORMAL 9 +#define RAD_LEVEL_MODERATE 100 +#define RAD_LEVEL_HIGH 400 +#define RAD_LEVEL_VERY_HIGH 800 +#define RAD_LEVEL_CRITICAL 1500 + +#define RAD_MEASURE_SMOOTHING 5 + +#define RAD_GRACE_PERIOD 2 diff --git a/code/datums/components/radioactive.dm b/code/datums/components/radioactive.dm index a6c67af2d3cd..9306f6aae899 100644 --- a/code/datums/components/radioactive.dm +++ b/code/datums/components/radioactive.dm @@ -30,7 +30,7 @@ //Let's make er glow //This relies on parent not being a turf or something. IF YOU CHANGE THAT, CHANGE THIS var/atom/movable/master = parent - master.add_filter("rad_glow", 2, list("type" = "outline", "color" = "#39ff1430", "size" = 2)) + master.add_filter("rad_glow", 2, list("type" = "outline", "color" = RAD_GLOW_COLOR, "size" = 2)) addtimer(CALLBACK(src, PROC_REF(glow_loop), master), rand(1,19))//Things should look uneven START_PROCESSING(SSradiation, src) diff --git a/code/game/objects/items/devices/geiger_counter.dm b/code/game/objects/items/devices/geiger_counter.dm index 4abc1a3786bb..e1a20b508a5c 100644 --- a/code/game/objects/items/devices/geiger_counter.dm +++ b/code/game/objects/items/devices/geiger_counter.dm @@ -1,13 +1,3 @@ -#define RAD_LEVEL_NORMAL 9 -#define RAD_LEVEL_MODERATE 100 -#define RAD_LEVEL_HIGH 400 -#define RAD_LEVEL_VERY_HIGH 800 -#define RAD_LEVEL_CRITICAL 1500 - -#define RAD_MEASURE_SMOOTHING 5 - -#define RAD_GRACE_PERIOD 2 - /obj/item/geiger_counter //DISCLAIMER: I know nothing about how real-life Geiger counters work. This will not be realistic. ~Xhuis name = "\improper Geiger counter" desc = "A handheld device used for detecting and measuring radiation pulses." @@ -222,9 +212,3 @@ . = ..() if(listeningTo) UnregisterSignal(listeningTo, COMSIG_ATOM_RAD_ACT) - -#undef RAD_LEVEL_NORMAL -#undef RAD_LEVEL_MODERATE -#undef RAD_LEVEL_HIGH -#undef RAD_LEVEL_VERY_HIGH -#undef RAD_LEVEL_CRITICAL diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index 646a3eb8436b..33c8bbdb3ed2 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -1,7 +1,6 @@ -//Cat /mob/living/simple_animal/pet/cat name = "cat" - desc = "Kitty!!" + desc = "Most modern cats hail from a solarian experimental geneline. The perfect purrtection from rats and radiation." icon = 'icons/mob/pets.dmi' icon_state = "cat2" icon_living = "cat2" @@ -40,6 +39,13 @@ footstep_type = FOOTSTEP_MOB_CLAW + var/grace = RAD_GRACE_PERIOD + var/radiation_count = 0 + var/current_tick_amount = 0 + var/last_tick_amount = 0 + var/fail_to_receive = 0 + var/glow_strength + /mob/living/simple_animal/pet/cat/Initialize() . = ..() ADD_TRAIT(src, TRAIT_HOLDABLE, INNATE_TRAIT) @@ -177,8 +183,49 @@ collar_type = "[initial(collar_type)]" regenerate_icons() +/mob/living/simple_animal/pet/cat/rad_act(amount) + . = ..() + if(amount <= RAD_BACKGROUND_RADIATION) + return + current_tick_amount += amount + update_glow() + +/mob/living/simple_animal/pet/cat/proc/update_glow() + var/old_glow_strength = glow_strength + switch(radiation_count) + if(-INFINITY to RAD_LEVEL_NORMAL) + glow_strength = 1 + if(RAD_LEVEL_NORMAL to RAD_LEVEL_MODERATE) + glow_strength = 2 + if(RAD_LEVEL_MODERATE to RAD_LEVEL_HIGH) + glow_strength = 3 + if(RAD_LEVEL_HIGH to RAD_LEVEL_VERY_HIGH) + glow_strength = 4 + if(RAD_LEVEL_VERY_HIGH to RAD_LEVEL_CRITICAL) + glow_strength = 5 + if(RAD_LEVEL_CRITICAL to INFINITY) + glow_strength = 6 + if((old_glow_strength != glow_strength) && (glow_strength > 1)) + src.add_filter("ray_cat_glow", 2, list("type" = "outline", "color" = RAD_GLOW_COLOR, "size" = glow_strength)) + if(glow_strength <= 1) + src.remove_filter("ray_cat_glow") /mob/living/simple_animal/pet/cat/Life() + radiation_count -= radiation_count/RAD_MEASURE_SMOOTHING + radiation_count += current_tick_amount/RAD_MEASURE_SMOOTHING + + if(current_tick_amount) + grace = RAD_GRACE_PERIOD + last_tick_amount = current_tick_amount + else + grace-- + if(grace <= 0) + radiation_count = 0 + + current_tick_amount = 0 + + update_glow() + if(!stat && !buckled && !client) if(prob(1)) manual_emote(pick("stretches out for a belly rub.", "wags its tail.", "lies down.")) From 776b6687f4415b867612990840f1face6d51c5bf Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 9 Oct 2024 05:54:01 -0500 Subject: [PATCH 150/167] Automatic changelog generation for PR #3465 [ci skip] --- html/changelogs/AutoChangeLog-pr-3465.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3465.yml diff --git a/html/changelogs/AutoChangeLog-pr-3465.yml b/html/changelogs/AutoChangeLog-pr-3465.yml new file mode 100644 index 000000000000..f097a9908514 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3465.yml @@ -0,0 +1,4 @@ +author: FalloutFalcon +changes: + - {rscadd: Cats have been genetically engineered to detect radiation} +delete-after: true From 1cdce85fef05cbdee8565c12b834eb98f3d51c9a Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Wed, 9 Oct 2024 14:47:46 -0400 Subject: [PATCH 151/167] Minor turret balancing (#3495) ## About The Pull Request Turrets now differ in when they'll be disabled from damage Ship turrets now require ship access NT turrets are shoddy make and have mildly less integrity Fixes grammar in condition report ship turrets are now less durable by default ## Why It's Good For The Game continues my turret program ## Changelog :cl: balance: Factional turrets now have new damage thresholds balance: ship turrets now have 100 less integrity by default /:cl: --- .../machinery/porta_turret/portable_turret.dm | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 5c592c7409dd..6b0057a25eaf 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -798,12 +798,13 @@ DEFINE_BITFIELD(turret_flags, list( /obj/machinery/porta_turret/ship installation = null - max_integrity = 300 + max_integrity = 200 always_up = 1 use_power = ACTIVE_POWER_USE active_power_usage = ACTIVE_DRAW_MINIMAL has_cover = 0 scan_range = 9 + req_ship_access = TRUE stun_projectile = /obj/projectile/beam/disabler lethal_projectile = /obj/projectile/beam/laser lethal_projectile_sound = 'sound/weapons/plasma_cutter.ogg' @@ -824,7 +825,7 @@ DEFINE_BITFIELD(turret_flags, list( . = ..() if(in_range(user, src) || isobserver(user)) if(!(machine_stat & BROKEN)) - . += "Its reports that it's integrity is currently [(obj_integrity / max_integrity) * 100] percent." + . += "[src] reports its integrity is currently [round(obj_integrity / max_integrity) * 100] percent." /obj/machinery/porta_turret/ship/weak max_integrity = 120 @@ -849,6 +850,8 @@ DEFINE_BITFIELD(turret_flags, list( name = "Sharplite Defense Turret" desc = "A cheap and effective turret designed by Sharplite and purchased and installed on most Nanotrasen Vessels." faction = list(FACTION_PLAYER_NANOTRASEN, "turret") + max_integrity = 160 + integrity_failure = 0.6 icon_state = "standard_lethal" base_icon_state = "standard" stun_projectile = /obj/projectile/beam/disabler/sharplite @@ -866,20 +869,19 @@ DEFINE_BITFIELD(turret_flags, list( lethal_projectile_sound = 'sound/weapons/gun/laser/nt-fire.ogg' stun_projectile_sound = 'sound/weapons/taser2.ogg' - /obj/machinery/porta_turret/ship/nt/heavy name = "Sharplite Defense Cannon" desc = "A heavy laser mounting designed by Sharplite for usage on Nanotrasen vessels." lethal_projectile = /obj/projectile/beam/laser/heavylaser/sharplite lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg' + max_integrity = 250 /obj/machinery/porta_turret/ship/nt/pulse name = "Sharplite Pulse Cannon" desc = "A pulse cannon mounting designed by Sharplite. Not sold to any purchasers and exclusively used on Nanotrasen Vessels." lethal_projectile = /obj/projectile/beam/pulse/sharplite_turret lethal_projectile_sound = 'sound/weapons/gun/laser/heavy_laser.ogg' - - + max_integrity = 250 /* Syndicate Turrets */ @@ -903,8 +905,10 @@ DEFINE_BITFIELD(turret_flags, list( stun_projectile_sound = 'sound/weapons/taser.ogg' lethal_projectile = /obj/projectile/beam/laser/heavylaser lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg' + max_integrity = 300 /* Inteq Turrets */ +//slower rof, higher damage + range /obj/machinery/porta_turret/ship/inteq name = "Vanguard Turret" @@ -913,8 +917,9 @@ DEFINE_BITFIELD(turret_flags, list( stun_projectile_sound = 'sound/weapons/gun/rifle/skm.ogg' lethal_projectile = /obj/projectile/bullet/a762_40 lethal_projectile_sound = 'sound/weapons/gun/rifle/skm.ogg' - scan_range = 8 + scan_range = 9 shot_delay = 20 + integrity_failure = 0.4 faction = list(FACTION_PLAYER_INTEQ, "turret") /obj/machinery/porta_turret/ship/inteq/light @@ -925,7 +930,7 @@ DEFINE_BITFIELD(turret_flags, list( lethal_projectile = /obj/projectile/bullet/c10mm lethal_projectile_sound = 'sound/weapons/gun/smg/vector_fire.ogg' subsystem_type = /datum/controller/subsystem/processing/fastprocess //turns out if you have a shot delay below what SSmachines fires at you need to use a different subsystem - scan_range = 4 + scan_range = 5 shot_delay = 5 /obj/machinery/porta_turret/ship/inteq/heavy @@ -944,6 +949,7 @@ DEFINE_BITFIELD(turret_flags, list( faction = list(FACTION_PLAYER_SOLCON, "turret") /* Pan Gezena Federation Turrets */ +//midline but hitscan /obj/machinery/porta_turret/ship/pgf name = "Etherbor Defensive Mount" @@ -955,6 +961,8 @@ DEFINE_BITFIELD(turret_flags, list( lethal_projectile_sound = 'sound/weapons/gun/energy/kalixsmg.ogg' icon_state = "standard_lethal" base_icon_state = "standard" + max_integrity = 250 + integrity_failure = 0.4 /obj/machinery/porta_turret/ship/pgf/light name = "Etherbor Deterrent System" From 2f53a09d93c259eb001f151f7206e4fb291ecd6b Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 9 Oct 2024 13:58:09 -0500 Subject: [PATCH 152/167] Automatic changelog generation for PR #3495 [ci skip] --- html/changelogs/AutoChangeLog-pr-3495.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3495.yml diff --git a/html/changelogs/AutoChangeLog-pr-3495.yml b/html/changelogs/AutoChangeLog-pr-3495.yml new file mode 100644 index 000000000000..ff3b8b02a125 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3495.yml @@ -0,0 +1,5 @@ +author: Bjarl +changes: + - {balance: Factional turrets now have new damage thresholds} + - {balance: ship turrets now have 100 less integrity by default} +delete-after: true From 7b12eef98bd6f4c5cee72839b7eb38fe23e6b20f Mon Sep 17 00:00:00 2001 From: Gristlebee <56049844+Gristlebee@users.noreply.github.com> Date: Wed, 9 Oct 2024 12:03:15 -0700 Subject: [PATCH 153/167] PGF Rakalla Spacesuits can hold a gun in their suit storage (#3507) ## About The Pull Request PGF Rakalla space suits use sec hardsuit storage list for allowed suit storage types. ## Why It's Good For The Game It's a military space suit for a military, it makes sense it'd be able to holster a rifle. ## Changelog :cl: add: PGF Rakalla space suits can hold a gun in their suit storage. /:cl: --- code/modules/clothing/factions/gezena.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/modules/clothing/factions/gezena.dm b/code/modules/clothing/factions/gezena.dm index 3eea9ebec461..d4ff3169880d 100644 --- a/code/modules/clothing/factions/gezena.dm +++ b/code/modules/clothing/factions/gezena.dm @@ -102,6 +102,10 @@ w_class = WEIGHT_CLASS_NORMAL supports_variations = DIGITIGRADE_VARIATION +/obj/item/clothing/suit/space/gezena/Initialize() + . = ..() + allowed = GLOB.security_hardsuit_allowed + /obj/item/clothing/head/helmet/space/gezena name = "\improper Rakalla-helm" desc = "Featuring rubberized grommets fitting for any length of horn, and an internal monitor for life support." From eeb64fa4e13ef99696e7022621603235951a87d2 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 9 Oct 2024 14:15:26 -0500 Subject: [PATCH 154/167] Automatic changelog generation for PR #3507 [ci skip] --- html/changelogs/AutoChangeLog-pr-3507.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3507.yml diff --git a/html/changelogs/AutoChangeLog-pr-3507.yml b/html/changelogs/AutoChangeLog-pr-3507.yml new file mode 100644 index 000000000000..fe0def59e6a5 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3507.yml @@ -0,0 +1,4 @@ +author: Gristlebee +changes: + - {rscadd: PGF Rakalla space suits can hold a gun in their suit storage.} +delete-after: true From 9438a1d24e9cc2adc9edaa920c289564c11612dd Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Wed, 9 Oct 2024 15:06:39 -0400 Subject: [PATCH 155/167] SSTurrets (#3453) ## About The Pull Request Defines a small subsystem for turrets that fires every 5 ticks. Allows us to actually set turret fire rates that aren't bound to SSMachines will. Resolves #3407 ## Why It's Good For The Game Turret Function :) ## Changelog :cl: fix: Turrets should now actually fire at their defined fire rates. /:cl: --------- Signed-off-by: Erika Fox <94164348+Bjarl@users.noreply.github.com> --- code/__DEFINES/subsystems.dm | 1 + code/controllers/subsystem/turrets.dm | 41 +++++++++++++++++++ .../machinery/porta_turret/portable_turret.dm | 3 +- shiptest.dme | 1 + 4 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 code/controllers/subsystem/turrets.dm diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index 54874bc9e16b..1155ea88bed9 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -130,6 +130,7 @@ #define INIT_ORDER_ATOMS 30 #define INIT_ORDER_LANGUAGE 25 #define INIT_ORDER_MACHINES 20 +#define INIT_ORDER_TURRETS 17 #define INIT_ORDER_SKILLS 15 #define INIT_ORDER_TIMER 1 #define INIT_ORDER_DEFAULT 0 diff --git a/code/controllers/subsystem/turrets.dm b/code/controllers/subsystem/turrets.dm new file mode 100644 index 000000000000..634f6327e458 --- /dev/null +++ b/code/controllers/subsystem/turrets.dm @@ -0,0 +1,41 @@ +SUBSYSTEM_DEF(turrets) + name = "Turrets" + wait = 5 + init_order = INIT_ORDER_MACHINES + flags = SS_KEEP_TIMING + runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME + var/list/processing = list() + var/list/currentrun = list() + +/datum/controller/subsystem/turrets/get_metrics() + . = ..() + var/list/cust = list() + cust["processing"] = length(processing) + .["custom"] = cust + +/datum/controller/subsystem/turrets/stat_entry(msg) + msg = "M:[length(processing)]]" + return ..() + + +/datum/controller/subsystem/turrets/fire(resumed = 0) + if (!resumed) + src.currentrun = processing.Copy() + + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + + var/seconds = wait * 0.1 + while(currentrun.len) + var/obj/machinery/thing = currentrun[currentrun.len] + currentrun.len-- + if(QDELETED(thing) || thing.process(seconds) == PROCESS_KILL) + processing -= thing + if (!QDELETED(thing)) + thing.datum_flags &= ~DF_ISPROCESSING + if (MC_TICK_CHECK) + return + +/datum/controller/subsystem/turrets/Recover() + if (istype(SSturrets.processing)) + processing = SSmachines.processing diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 6b0057a25eaf..c3c39c72e34a 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -41,6 +41,7 @@ DEFINE_BITFIELD(turret_flags, list( integrity_failure = 0.5 armor = list("melee" = 50, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90) base_icon_state = "standard" + subsystem_type = /datum/controller/subsystem/turrets /// Scan range of the turret for locating targets var/scan_range = 7 /// For turrets inside other objects @@ -77,7 +78,7 @@ DEFINE_BITFIELD(turret_flags, list( var/has_cover = TRUE /// The cover that is covering this turret var/obj/machinery/porta_turret_cover/cover = null - /// Ticks until next shot (1.5 ?) + /// Ticks until next shot (1.5 ?) If this needs to go below 5, use SSFastProcess var/shot_delay = 15 /// Turret flags about who is turret allowed to shoot var/turret_flags = TURRET_FLAG_SHOOT_CRIMINALS | TURRET_FLAG_SHOOT_ANOMALOUS diff --git a/shiptest.dme b/shiptest.dme index 187540e66a26..7515bfcece79 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -393,6 +393,7 @@ #include "code\controllers\subsystem\title.dm" #include "code\controllers\subsystem\traumas.dm" #include "code\controllers\subsystem\turf_fire.dm" +#include "code\controllers\subsystem\turrets.dm" #include "code\controllers\subsystem\verb_manager.dm" #include "code\controllers\subsystem\vis_overlays.dm" #include "code\controllers\subsystem\vote.dm" From 042fad1f89ee99defc057b2ca2c6c3613f73527e Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 9 Oct 2024 14:29:34 -0500 Subject: [PATCH 156/167] Automatic changelog generation for PR #3453 [ci skip] --- html/changelogs/AutoChangeLog-pr-3453.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3453.yml diff --git a/html/changelogs/AutoChangeLog-pr-3453.yml b/html/changelogs/AutoChangeLog-pr-3453.yml new file mode 100644 index 000000000000..917f69c2479c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3453.yml @@ -0,0 +1,4 @@ +author: Bjarl +changes: + - {bugfix: Turrets should now actually fire at their defined fire rates.} +delete-after: true From b36beab40e071e032d60f3016fc4a62ff14b32d9 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Thu, 10 Oct 2024 01:01:49 +0000 Subject: [PATCH 157/167] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3448.yml | 5 ----- html/changelogs/AutoChangeLog-pr-3453.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3465.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3495.yml | 5 ----- html/changelogs/AutoChangeLog-pr-3507.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3510.yml | 4 ---- html/changelogs/archive/2024-10.yml | 14 ++++++++++++++ 7 files changed, 14 insertions(+), 26 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3448.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3453.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3465.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3495.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3507.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3510.yml diff --git a/html/changelogs/AutoChangeLog-pr-3448.yml b/html/changelogs/AutoChangeLog-pr-3448.yml deleted file mode 100644 index 069fa408237d..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3448.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: zimon9 -changes: - - {rscadd: 'Adds bowmans to Artificer and Enforcer loadouts, and regular headsets - to Recruit loadouts'} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3453.yml b/html/changelogs/AutoChangeLog-pr-3453.yml deleted file mode 100644 index 917f69c2479c..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3453.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Bjarl -changes: - - {bugfix: Turrets should now actually fire at their defined fire rates.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3465.yml b/html/changelogs/AutoChangeLog-pr-3465.yml deleted file mode 100644 index f097a9908514..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3465.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: FalloutFalcon -changes: - - {rscadd: Cats have been genetically engineered to detect radiation} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3495.yml b/html/changelogs/AutoChangeLog-pr-3495.yml deleted file mode 100644 index ff3b8b02a125..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3495.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Bjarl -changes: - - {balance: Factional turrets now have new damage thresholds} - - {balance: ship turrets now have 100 less integrity by default} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3507.yml b/html/changelogs/AutoChangeLog-pr-3507.yml deleted file mode 100644 index fe0def59e6a5..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3507.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Gristlebee -changes: - - {rscadd: PGF Rakalla space suits can hold a gun in their suit storage.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3510.yml b/html/changelogs/AutoChangeLog-pr-3510.yml deleted file mode 100644 index 5322e1f9d188..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3510.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: PositiveEntropy -changes: - - {imageadd: Long (And Short) Braid hairstyles have been redone!} -delete-after: true diff --git a/html/changelogs/archive/2024-10.yml b/html/changelogs/archive/2024-10.yml index 6705c1fd38a3..984cb17c6086 100644 --- a/html/changelogs/archive/2024-10.yml +++ b/html/changelogs/archive/2024-10.yml @@ -117,3 +117,17 @@ - rscadd: Added flamethrower crate - rscadd: Added incendiary grenade crate - rscdel: Removed incendiary supply crate +2024-10-10: + Bjarl: + - bugfix: Turrets should now actually fire at their defined fire rates. + - balance: Factional turrets now have new damage thresholds + - balance: ship turrets now have 100 less integrity by default + FalloutFalcon: + - rscadd: Cats have been genetically engineered to detect radiation + Gristlebee: + - rscadd: PGF Rakalla space suits can hold a gun in their suit storage. + PositiveEntropy: + - imageadd: Long (And Short) Braid hairstyles have been redone! + zimon9: + - rscadd: Adds bowmans to Artificer and Enforcer loadouts, and regular headsets + to Recruit loadouts From 4b09c1e71b2f664894e62bb3672c94feceaee398 Mon Sep 17 00:00:00 2001 From: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com> Date: Wed, 9 Oct 2024 20:28:44 -0500 Subject: [PATCH 158/167] World icon 2 (#3516) ## About The Pull Request World icon now only require setting the world_file var to work ## Why It's Good For The Game easier ## Changelog :cl: add: Readdes world icons for a few knives. Expect more soon! /:cl: --- code/datums/elements/world_icon.dm | 2 +- code/game/objects/items.dm | 15 +++++++++++---- code/game/objects/items/melee/knife.dm | 3 +++ 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/code/datums/elements/world_icon.dm b/code/datums/elements/world_icon.dm index bcb0129c6c68..31e52ee7677f 100644 --- a/code/datums/elements/world_icon.dm +++ b/code/datums/elements/world_icon.dm @@ -103,7 +103,7 @@ SIGNAL_HANDLER if(!world_icon_state) - source.icon_state = source.icon_state + source.icon_state = source.item_state return INVOKE_ASYNC(src, PROC_REF(check_world_icon_state), source) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 90669dde84bb..edd6a6d1c885 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -26,6 +26,14 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb ///Icon file for right inhand overlays var/righthand_file = 'icons/mob/inhands/items_righthand.dmi' + ///If set it will add a world icon using item_state + var/world_file + + ///Handled by world_icon element + var/world_state + ///Handled by world_icon element + var/inventory_state + ///This is a bitfield that defines what variations exist for bodyparts like Digi legs. var/supports_variations = null @@ -207,10 +215,6 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb var/canMouseDown = FALSE - //for setting world icons on the go - var/inventory_state - var/world_state - /obj/item/Initialize() if(attack_verb) @@ -309,6 +313,9 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb updateEmbedding() + if(world_file) + AddElement(/datum/element/world_icon, null, world_file, icon) + if(GLOB.rpg_loot_items) AddComponent(/datum/component/fantasy) diff --git a/code/game/objects/items/melee/knife.dm b/code/game/objects/items/melee/knife.dm index 83022e7125ff..15d389477745 100644 --- a/code/game/objects/items/melee/knife.dm +++ b/code/game/objects/items/melee/knife.dm @@ -105,6 +105,7 @@ force = 20 throwforce = 20 attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "cut") + world_file = 'icons/obj/world/melee.dmi' /obj/item/melee/knife/survival name = "survival knife" @@ -115,6 +116,7 @@ force = 15 throwforce = 15 attack_verb = list("slashed", "stabbed", "sliced", "torn", "ripped", "cut") + world_file = 'icons/obj/world/melee.dmi' /obj/item/melee/knife/bone name = "bone dagger" @@ -127,6 +129,7 @@ force = 15 throwforce = 15 custom_materials = null + world_file = 'icons/obj/world/melee.dmi' /obj/item/melee/knife/combat/cyborg name = "cyborg knife" From 11860fa3ecc32153fe76459dec0c6ce1a9dc3dcb Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 9 Oct 2024 20:39:48 -0500 Subject: [PATCH 159/167] Automatic changelog generation for PR #3516 [ci skip] --- html/changelogs/AutoChangeLog-pr-3516.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3516.yml diff --git a/html/changelogs/AutoChangeLog-pr-3516.yml b/html/changelogs/AutoChangeLog-pr-3516.yml new file mode 100644 index 000000000000..c359affb8390 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3516.yml @@ -0,0 +1,4 @@ +author: FalloutFalcon +changes: + - {rscadd: Readdes world icons for a few knives. Expect more soon!} +delete-after: true From 4da6fd26e78012cd10c8b5c138fa04e9adcc7a91 Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Wed, 9 Oct 2024 21:29:16 -0400 Subject: [PATCH 160/167] Alters Abandoned Airlock Functionality (#3514) ## About The Pull Request removes some effects from the abandoned airlock var -no more wall adds new effects -electroshock -sealed -airlock assembly ## Why It's Good For The Game ## Changelog :cl: code: abandoned airlocks now have more effects /:cl: --- code/game/machinery/doors/airlock.dm | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 2d76d7ecb351..594aeedbe43d 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -167,16 +167,7 @@ if(abandoned) var/outcome = rand(1,100) switch(outcome) - if(1 to 9) - var/turf/here = get_turf(src) - for(var/turf/closed/T in range(2, src)) - here.PlaceOnTop(T.type) - qdel(src) - return - here.PlaceOnTop(/turf/closed/wall) - qdel(src) - return - if(9 to 11) + if(1 to 11) lights = FALSE locked = TRUE if(12 to 15) @@ -185,6 +176,19 @@ welded = TRUE if(24 to 30) panel_open = TRUE + if(31 to 40) + panel_open = TRUE + set_electrified(MACHINE_ELECTRIFIED_PERMANENT) + if(41 to 50) + seal = new /obj/item/door_seal(src) + modify_max_integrity(max_integrity * AIRLOCK_SEAL_MULTIPLIER) + if(51 to 60) + new previous_airlock(loc) + qdel(src) + if(69) + new /obj/effect/decal/cleanable/oil/slippery(loc) + + update_appearance() /obj/machinery/door/airlock/ComponentInitialize() From f86f9b9b256d275a487a0c55955b1b27275043ff Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 9 Oct 2024 20:53:03 -0500 Subject: [PATCH 161/167] Automatic changelog generation for PR #3514 [ci skip] --- html/changelogs/AutoChangeLog-pr-3514.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3514.yml diff --git a/html/changelogs/AutoChangeLog-pr-3514.yml b/html/changelogs/AutoChangeLog-pr-3514.yml new file mode 100644 index 000000000000..6872d6f58b6d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3514.yml @@ -0,0 +1,4 @@ +author: Bjarl +changes: + - {code_imp: abandoned airlocks now have more effects} +delete-after: true From 82e4df7d1cd3ab287e2ad8c34dfc7890c1895844 Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Thu, 10 Oct 2024 01:21:27 -0400 Subject: [PATCH 162/167] Analgesia Trait + Stuff For It To Work (#3369) ## About The Pull Request Adds a trait, "congenital analgesia". Analgesia makes it so you don't process pain like other people do. This is reflected through silencing most of your screams, occasionally giving you different fluff text, and making it so you don't know your health. Morphine and other fluff painkillers have a slighter version of this effect. ## Why It's Good For The Game Fluff. RP. Trait. ## Changelog :cl: add: Reports of people inflicted with congenital analgesia travelling to the Frontier have reached this newscaster. add: Painkillers may circumvent pain in some cases now. /:cl: --- code/__DEFINES/traits.dm | 2 + code/datums/brain_damage/mild.dm | 2 + code/datums/components/embedded.dm | 2 +- code/datums/components/tackle.dm | 2 +- .../diseases/advance/symptoms/deafness.dm | 2 +- code/datums/diseases/advance/symptoms/fire.dm | 8 ++-- code/datums/diseases/gastrolisis.dm | 2 +- code/datums/traits/negative.dm | 19 +++++++++ code/game/machinery/doors/door.dm | 2 +- code/game/machinery/harvester.dm | 2 +- code/game/machinery/outpost_electrolyzer.dm | 2 +- code/game/machinery/suit_storage_unit.dm | 2 +- code/game/machinery/transformer.dm | 2 +- code/game/objects/items.dm | 2 +- code/game/objects/items/defib.dm | 4 +- code/game/objects/structures/guillotine.dm | 2 +- code/game/objects/structures/kitchen_spike.dm | 4 +- code/game/objects/structures/morgue.dm | 2 +- .../awaymissions/mission_code/snowdin.dm | 13 ++++-- code/modules/clothing/shoes/_shoes.dm | 2 +- code/modules/flufftext/Hallucination.dm | 2 + .../mining/lavaland/necropolis_chests.dm | 2 +- code/modules/mob/emote.dm | 16 +++++++ .../modules/mob/living/carbon/alien/organs.dm | 2 +- code/modules/mob/living/carbon/emote.dm | 2 +- .../mob/living/carbon/human/human_defense.dm | 2 +- code/modules/mob/living/carbon/human/life.dm | 14 +++++-- .../mob/living/carbon/human/species.dm | 2 +- .../carbon/human/species_types/ethereal.dm | 2 +- .../mob/living/simple_animal/bot/cleanbot.dm | 2 +- .../mob/living/simple_animal/slime/life.dm | 2 +- code/modules/mod/mod_control.dm | 2 +- code/modules/mod/modules/modules_maint.dm | 2 +- code/modules/paperwork/paperplane.dm | 5 ++- .../projectiles/guns/misc/beam_rifle.dm | 2 +- .../reagents/cat2_medicine_reagents.dm | 2 +- .../chemistry/reagents/food_reagents.dm | 4 +- .../chemistry/reagents/medicine_reagents.dm | 42 +++++++++++++++---- .../xenobiology/crossbreeding/_weapons.dm | 2 +- .../xenobiology/crossbreeding/burning.dm | 2 +- code/modules/surgery/bodyparts/bodyparts.dm | 7 +++- .../surgery/bodyparts/dismemberment.dm | 3 +- code/modules/surgery/organs/tongue.dm | 2 +- code/modules/vending/_vending.dm | 2 +- 44 files changed, 142 insertions(+), 61 deletions(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 664e6cc687f7..6de819c57aa5 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -259,6 +259,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_DWARF "dwarf" #define TRAIT_FASTMED "fast_med_use" #define TRAIT_SILENT_FOOTSTEPS "silent_footsteps" //makes your footsteps completely silent +#define TRAIT_PAIN_RESIST "pain_resistance" //you resist pain #define TRAIT_NICE_SHOT "nice_shot" //hnnnnnnnggggg..... you're pretty good.... /// The holder of this trait has antennae or whatever that hurt a ton when noogied #define TRAIT_ANTENNAE "antennae" @@ -329,6 +330,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_BALD "bald" #define TRAIT_BADTOUCH "bad_touch" #define TRAIT_ANXIOUS "anxious" +#define TRAIT_ANALGESIA "congenital_analgesia" /// Trait granted by lipstick #define LIPSTICK_TRAIT "lipstick_trait" diff --git a/code/datums/brain_damage/mild.dm b/code/datums/brain_damage/mild.dm index 9c10c6f1fd7d..339767dceb2c 100644 --- a/code/datums/brain_damage/mild.dm +++ b/code/datums/brain_damage/mild.dm @@ -110,6 +110,7 @@ /datum/brain_trauma/mild/healthy/on_gain() owner.set_screwyhud(SCREWYHUD_HEALTHY) + ADD_TRAIT(owner, TRAIT_ANALGESIA, type) ..() /datum/brain_trauma/mild/healthy/on_life() @@ -119,6 +120,7 @@ /datum/brain_trauma/mild/healthy/on_lose() owner.set_screwyhud(SCREWYHUD_NONE) + REMOVE_TRAIT(owner, TRAIT_ANALGESIA, type) ..() /datum/brain_trauma/mild/muscle_weakness diff --git a/code/datums/components/embedded.dm b/code/datums/components/embedded.dm index ee789d3f9829..018321094283 100644 --- a/code/datums/components/embedded.dm +++ b/code/datums/components/embedded.dm @@ -205,7 +205,7 @@ if(harmful) var/damage = weapon.w_class * remove_pain_mult limb.receive_damage(brute=(1-pain_stam_pct) * damage, stamina=pain_stam_pct * damage) //It hurts to rip it out, get surgery you dingus. - victim.emote("scream") + victim.force_scream() victim.visible_message("[victim] successfully rips [weapon] out of [victim.p_their()] [limb.name]!", "You successfully remove [weapon] from your [limb.name].") else victim.visible_message("[victim] successfully rips [weapon] off of [victim.p_their()] [limb.name]!", "You successfully remove [weapon] from your [limb.name].") diff --git a/code/datums/components/tackle.dm b/code/datums/components/tackle.dm index 0d3d520c2b54..4d3d07576cc0 100644 --- a/code/datums/components/tackle.dm +++ b/code/datums/components/tackle.dm @@ -376,7 +376,7 @@ user.apply_damage(30, BRUTE, BODY_ZONE_HEAD) playsound(user, 'sound/effects/blobattack.ogg', 60, TRUE) playsound(user, 'sound/effects/splat.ogg', 70, TRUE) - user.emote("scream") + user.force_scream() user.gain_trauma(/datum/brain_trauma/severe/paralysis/paraplegic) // oopsie indeed! shake_camera(user, 7, 7) user.overlay_fullscreen("flash", /atom/movable/screen/fullscreen/flash) diff --git a/code/datums/diseases/advance/symptoms/deafness.dm b/code/datums/diseases/advance/symptoms/deafness.dm index ea607f2a31fc..df39c5f06591 100644 --- a/code/datums/diseases/advance/symptoms/deafness.dm +++ b/code/datums/diseases/advance/symptoms/deafness.dm @@ -55,7 +55,7 @@ Bonus if(istype(ears) && ears.damage < ears.maxHealth) to_chat(M, "Your ears pop painfully and start bleeding!") ears.damage = max(ears.damage, ears.maxHealth) - M.emote("scream") + M.force_scream() else to_chat(M, "Your ears pop and begin ringing loudly!") M.minimumDeafTicks(20) diff --git a/code/datums/diseases/advance/symptoms/fire.dm b/code/datums/diseases/advance/symptoms/fire.dm index aeb9933debbd..98391edbdf1c 100644 --- a/code/datums/diseases/advance/symptoms/fire.dm +++ b/code/datums/diseases/advance/symptoms/fire.dm @@ -60,12 +60,12 @@ Bonus Firestacks_stage_4(M, A) M.IgniteMob() to_chat(M, "Your skin bursts into flames!") - M.emote("scream") + M.force_scream() if(5) Firestacks_stage_5(M, A) M.IgniteMob() to_chat(M, "Your skin erupts into an inferno!") - M.emote("scream") + M.force_scream() /datum/symptom/fire/proc/Firestacks_stage_4(mob/living/M, datum/disease/advance/A) M.adjust_fire_stacks(1 * power) @@ -147,7 +147,7 @@ Bonus Alkali_fire_stage_4(M, A) M.IgniteMob() to_chat(M, "Your sweat bursts into flames!") - M.emote("scream") + M.force_scream() if(5) if(M.fire_stacks < 0) M.visible_message("[M]'s sweat sizzles and pops on contact with water!") @@ -155,7 +155,7 @@ Bonus Alkali_fire_stage_5(M, A) M.IgniteMob() to_chat(M, "Your skin erupts into an inferno!") - M.emote("scream") + M.force_scream() /datum/symptom/alkali/proc/Alkali_fire_stage_4(mob/living/M, datum/disease/advance/A) var/get_stacks = 6 * power diff --git a/code/datums/diseases/gastrolisis.dm b/code/datums/diseases/gastrolisis.dm index e2af13bd6742..ed4c5267d14f 100644 --- a/code/datums/diseases/gastrolisis.dm +++ b/code/datums/diseases/gastrolisis.dm @@ -36,7 +36,7 @@ new_eyes.Insert(affected_mob, drop_if_replaced = TRUE) affected_mob.visible_message("[affected_mob]'s eyes fall out, with snail eyes taking its place!", \ "You scream in pain as your eyes are pushed out by your new snail eyes!") - affected_mob.emote("scream") + affected_mob.force_scream() return var/obj/item/organ/tongue/tongue = locate(/obj/item/organ/tongue/snail) in affected_mob.internal_organs if(!tongue && prob(5)) diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index e504bfee31d5..306c3d6b8d50 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -642,6 +642,25 @@ return SEND_SIGNAL(quirk_holder, COMSIG_ADD_MOOD_EVENT, "wrong_cigs", /datum/mood_event/wrong_brand) +/datum/quirk/congenital_analgesia + name = "Congenital Analgesia" + desc = "Due to a rare condition, you have never felt pain. Physical pain, at least. That breakup still hurt." + value = -1 + mob_traits = list(TRAIT_ANALGESIA) + gain_text = "You've never really felt pain." + lose_text = "...Oh god, you're sore." + medical_record_text = "Patient is unable to process pain" + +/datum/quirk/congenital_analgesia/on_spawn() + var/mob/living/carbon/human/H = quirk_holder + H.set_screwyhud(SCREWYHUD_HEALTHY) + +/datum/quirk/congenital_analgesia/remove() + if(quirk_holder) + var/mob/living/carbon/human/H = quirk_holder + H.set_screwyhud(SCREWYHUD_NONE) + + /datum/quirk/unstable name = "Unstable" desc = "Due to past troubles, you are unable to recover your sanity if you lose it. Be very careful managing your mood!" diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 737bacbb650f..7c8371809e81 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -395,7 +395,7 @@ L.manual_emote("roar") else if(ishuman(L)) //For humans L.adjustBruteLoss(DOOR_CRUSH_DAMAGE) - L.manual_emote("scream") + L.force_manual_scream() L.Paralyze(100) else if(ismonkey(L)) //For monkeys L.adjustBruteLoss(DOOR_CRUSH_DAMAGE) diff --git a/code/game/machinery/harvester.dm b/code/game/machinery/harvester.dm index 1b0093458e49..22ff32ac3655 100644 --- a/code/game/machinery/harvester.dm +++ b/code/game/machinery/harvester.dm @@ -121,7 +121,7 @@ target = get_turf(src) for(var/obj/item/bodypart/BP in operation_order) //first we do non-essential limbs BP.drop_limb() - C.emote("scream") + C.force_scream() if(BP.body_zone != "chest") BP.forceMove(target) //Move the limbs right next to it, except chest, that's a weird one BP.drop_organs() diff --git a/code/game/machinery/outpost_electrolyzer.dm b/code/game/machinery/outpost_electrolyzer.dm index b91160c7e1c8..78711accb242 100644 --- a/code/game/machinery/outpost_electrolyzer.dm +++ b/code/game/machinery/outpost_electrolyzer.dm @@ -136,7 +136,7 @@ playsound(src, 'sound/effects/splat.ogg', 50, TRUE) if(iscarbon(L) && L.stat == CONSCIOUS) - L.emote("scream") + L.force_scream() // Instantly lie down, also go unconscious from the pain, before you die. L.Unconscious(100) diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index f6be0b0a036e..ea6633370147 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -450,7 +450,7 @@ mob_occupant.adjustFireLoss(rand(20, 36)) else mob_occupant.adjustFireLoss(rand(10, 16)) - mob_occupant.emote("scream") + mob_occupant.force_scream() addtimer(CALLBACK(src, PROC_REF(cook)), 50) else uv_cycles = (BASE_UV_CYCLES - lasers_bonus) diff --git a/code/game/machinery/transformer.dm b/code/game/machinery/transformer.dm index da5a006de0b5..b75f97102904 100644 --- a/code/game/machinery/transformer.dm +++ b/code/game/machinery/transformer.dm @@ -85,7 +85,7 @@ update_appearance() playsound(src.loc, 'sound/items/welder.ogg', 50, TRUE) - H.emote("scream") // It is painful + H.force_scream() // It is painful H.adjustBruteLoss(max(0, 80 - H.getBruteLoss())) // Hurt the human, don't try to kill them though. // Sleep for a couple of ticks to allow the human to see the pain diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index edd6a6d1c885..3f7a43fe317b 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -1226,7 +1226,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb */ /obj/item/proc/on_accidental_consumption(mob/living/carbon/victim, mob/living/carbon/user, obj/item/source_item, discover_after = TRUE) if(get_sharpness() && force >= 5) //if we've got something sharp with a decent force (ie, not plastic) - INVOKE_ASYNC(victim, TYPE_PROC_REF(/mob, emote), "scream") + INVOKE_ASYNC(victim, TYPE_PROC_REF(/mob, force_scream)) victim.visible_message("[victim] looks like [victim.p_theyve()] just bit something they shouldn't have!", \ "OH GOD! Was that a crunch? That didn't feel good at all!!") diff --git a/code/game/objects/items/defib.dm b/code/game/objects/items/defib.dm index 640b4e4a6a0a..89b73a0ffa9b 100644 --- a/code/game/objects/items/defib.dm +++ b/code/game/objects/items/defib.dm @@ -441,7 +441,7 @@ var/mob/living/M = H.pulledby if(M.electrocute_act(30, H)) M.visible_message("[M] is electrocuted by [M.p_their()] contact with [H]!") - M.emote("scream") + M.force_scream() /obj/item/shockpaddles/proc/do_disarm(mob/living/M, mob/living/user) if(req_defib && defib.safety) @@ -501,7 +501,7 @@ user.visible_message("[user] shocks [H] with \the [src]!", "You shock [H] with \the [src]!") playsound(src, 'sound/machines/defib_zap.ogg', 100, TRUE, -1) playsound(src, 'sound/weapons/egloves.ogg', 100, TRUE, -1) - H.emote("scream") + H.force_scream() shock_touching(45, H) if(H.can_heartattack() && !H.undergoing_cardiac_arrest()) if(!H.stat) diff --git a/code/game/objects/structures/guillotine.dm b/code/game/objects/structures/guillotine.dm index 59ef31fafa4e..83bae84fc575 100644 --- a/code/game/objects/structures/guillotine.dm +++ b/code/game/objects/structures/guillotine.dm @@ -154,7 +154,7 @@ else H.apply_damage(15 * blade_sharpness, BRUTE, head) log_combat(user, H, "dropped the blade on", src, " non-fatally") - H.emote("scream") + H.force_scream() if (blade_sharpness > 1) blade_sharpness -= 1 diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm index 6512a0683947..1840c27f9271 100644 --- a/code/game/objects/structures/kitchen_spike.dm +++ b/code/game/objects/structures/kitchen_spike.dm @@ -74,7 +74,7 @@ playsound(src.loc, 'sound/effects/splat.ogg', 25, TRUE) L.visible_message("[user] slams [L] onto the meat spike!", "[user] slams you onto the meat spike!", "You hear a squishy wet noise.") L.forceMove(drop_location()) - L.emote("scream") + L.force_scream() L.add_splatter_floor() L.adjustBruteLoss(30) L.setDir(2) @@ -128,7 +128,7 @@ M.adjustBruteLoss(30) src.visible_message(text("[M] falls free of [src]!")) unbuckle_mob(M,force=1) - M.emote("scream") + M.force_scream() M.AdjustParalyzed(20) /obj/structure/kitchenspike/Destroy() diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index 2e8c7508d594..ae1f50f0624f 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -264,7 +264,7 @@ GLOBAL_LIST_EMPTY(crematoriums) for(var/mob/living/M in conts) if (M.stat != DEAD) - M.emote("scream") + M.force_scream() if(user) log_combat(user, M, "cremated") else diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm index c12b09fa4e05..a240bf9f8404 100644 --- a/code/modules/awaymissions/mission_code/snowdin.dm +++ b/code/modules/awaymissions/mission_code/snowdin.dm @@ -218,14 +218,19 @@ PP.adjustFireLoss(25) if(plasma_parts.len) var/obj/item/bodypart/NB = pick(plasma_parts) //using the above-mentioned list to get a choice of limbs for dismember() to use - PP.emote("scream") NB.limb_id = "plasmaman" //change the species_id of the limb to that of a plasmaman NB.static_icon = 'icons/mob/species/plasmaman/bodyparts.dmi' NB.no_update = TRUE NB.change_bodypart_status() - PP.visible_message( - "[L] screams in pain as [L.p_their()] [NB] melts down to the bone!", - "You scream out in pain as your [NB] melts down to the bone, leaving an eerie plasma-like glow where flesh used to be!") + PP.force_scream() + if(!HAS_TRAIT(PP, TRAIT_ANALGESIA)) + PP.visible_message( + "[L] screams in pain as [L.p_their()] [NB] melts down to the bone!", + "You scream out in pain as your [NB] melts down to the bone, leaving an eerie plasma-like glow where flesh used to be!") + else + PP.visible_message( + "[L] lets out panicked gasps as [L.p_their()] [NB] melts down to the bone!", + "You gasp in shock as your [NB] melts down to the bone, leaving an eerie plasma-like glow where flesh used to be!") if(!plasma_parts.len && !robo_parts.len) //a person with no potential organic limbs left AND no robotic limbs, time to turn them into a plasmaman PP.IgniteMob() PP.set_species(/datum/species/plasmaman) diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index cd4474588090..424e00712078 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -172,7 +172,7 @@ else // if one of us moved user.visible_message("[our_guy] stamps on [user]'s hand, mid-shoelace [tied ? "knotting" : "untying"]!", "Ow! [our_guy] stamps on your hand!", list(our_guy)) to_chat(our_guy, "You stamp on [user]'s hand! What the- [user.p_they()] [user.p_were()] [tied ? "knotting" : "untying"] your shoelaces!") - user.emote("scream") + user.force_scream() if(istype(L)) var/obj/item/bodypart/ouchie = L.get_bodypart(pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)) if(ouchie) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 8f8e532577c0..29ff8ead2f62 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -40,6 +40,8 @@ GLOBAL_LIST_INIT(hallucination_list, list( next_hallucination = world.time + rand(100, 600) /mob/living/carbon/proc/set_screwyhud(hud_type) + if(HAS_TRAIT(src, TRAIT_ANALGESIA)) + hud_type = SCREWYHUD_HEALTHY hal_screwyhud = hud_type update_health_hud() diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 73d18f0ab885..60debde823ef 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -621,7 +621,7 @@ ADD_TRAIT(C, TRAIT_HOLY, SPECIES_TRAIT) playsound(C.loc, 'sound/items/poster_ripped.ogg', 50, TRUE, -1) C.adjustBruteLoss(20) - C.emote("scream") + C.force_scream() ..() //nerfed necrostone diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm index 0840ee372158..0e4a8ed748c9 100644 --- a/code/modules/mob/emote.dm +++ b/code/modules/mob/emote.dm @@ -25,6 +25,22 @@ to_chat(src, "Unusable emote '[act]'. Say *help for a list.") return FALSE +/mob/proc/force_scream() + if(HAS_TRAIT(src, TRAIT_ANALGESIA)) + return + if(HAS_TRAIT(src, TRAIT_PAIN_RESIST)) + emote("gasp") + return + emote("scream") + +/mob/proc/force_manual_scream() + if(HAS_TRAIT(src, TRAIT_ANALGESIA)) + return + if(HAS_TRAIT(src, TRAIT_PAIN_RESIST)) + manual_emote("gasp") + return + manual_emote("scream") + /datum/emote/flip key = "flip" key_third_person = "flips" diff --git a/code/modules/mob/living/carbon/alien/organs.dm b/code/modules/mob/living/carbon/alien/organs.dm index bfa71f3b335e..3ae9bbb5b250 100644 --- a/code/modules/mob/living/carbon/alien/organs.dm +++ b/code/modules/mob/living/carbon/alien/organs.dm @@ -134,7 +134,7 @@ else if(ishuman(owner)) //Humans, being more fragile, are more overwhelmed by the mental backlash. to_chat(owner, "You feel a splitting pain in your head, and are struck with a wave of nausea. You cannot hear the hivemind anymore!") - owner.emote("scream") + owner.force_scream() owner.Paralyze(100) owner.jitteriness += 30 diff --git a/code/modules/mob/living/carbon/emote.dm b/code/modules/mob/living/carbon/emote.dm index f0d27e801cd2..5e5e8fca6d24 100644 --- a/code/modules/mob/living/carbon/emote.dm +++ b/code/modules/mob/living/carbon/emote.dm @@ -253,7 +253,7 @@ damage += rand(3,7) if(damage >= 5) - target.emote("scream") + target.force_scream() target.apply_damage(damage, BRUTE, BODY_ZONE_HEAD) user.adjustStaminaLoss(iteration + 5) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 7a7bc349b26c..c26956991d33 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -655,7 +655,7 @@ if(affecting.name == BODY_ZONE_HEAD) if(prob(min(acidpwr*acid_volume/10, 90))) //Applies disfigurement affecting.receive_damage(acidity, 2*acidity) - emote("scream") + force_scream() facial_hairstyle = "Shaved" hairstyle = "Bald" update_hair() diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 18b6cb9ba40e..dd05c0de739b 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -345,13 +345,19 @@ var/obj/item/bodypart/R = get_bodypart("r_arm") if(istype(L) && L.bone_status == BONE_FLAG_BROKEN && held_items[1] && prob(30)) - emote("scream") - visible_message("[src] screams and lets go of [held_items[1]] in pain.", "A horrible pain in your [parse_zone(L)] makes it impossible to hold [held_items[1]]!") + force_scream() + if(!HAS_TRAIT(src, TRAIT_ANALGESIA)) + visible_message("[src] screams and lets go of [held_items[1]] in pain.", "A horrible pain in your [parse_zone(L)] makes it impossible to hold [held_items[1]]!") + else + visible_message(span_notice("[src] flinches and lets go of [held_items[1]]."),span_notice("A sudden weakness in your [parse_zone(L)] makes it impossible to grasp [held_items[1]]!)")) dropItemToGround(held_items[1]) if(istype(R) && R.bone_status == BONE_FLAG_BROKEN && held_items[2] && prob(30)) - emote("scream") - visible_message("[src] screams and lets go of [held_items[2]] in pain.", "A horrible pain in your [parse_zone(R)] makes it impossible to hold [held_items[2]]!") + force_scream() + if(!HAS_TRAIT(src, TRAIT_ANALGESIA)) + visible_message("[src] screams and lets go of [held_items[1]] in pain.", "A horrible pain in your [parse_zone(R)] makes it impossible to hold [held_items[1]]!") + else + visible_message(span_notice("[src] flinches and lets go of [held_items[1]]."),span_notice("A sudden weakness in your [parse_zone(R)] makes it impossible to grasp [held_items[1]]!)")) dropItemToGround(held_items[2]) #undef THERMAL_PROTECTION_HEAD diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index a1560963b00b..9eee54ec541e 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1938,7 +1938,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) // 40% for level 3 damage on humans to scream in pain if (H.stat < UNCONSCIOUS && (prob(burn_damage) * 10) / 4) - H.emote("scream") + H.force_scream() // Apply the damage to all body parts H.apply_damage(burn_damage, BURN, spread_damage = TRUE) diff --git a/code/modules/mob/living/carbon/human/species_types/ethereal.dm b/code/modules/mob/living/carbon/human/species_types/ethereal.dm index b91559edb0ae..cfbc682f24de 100644 --- a/code/modules/mob/living/carbon/human/species_types/ethereal.dm +++ b/code/modules/mob/living/carbon/human/species_types/ethereal.dm @@ -149,7 +149,7 @@ _human.apply_damage(8,BRUTE,BODY_ZONE_CHEST) _human.apply_damage(8,BRUTE,BODY_ZONE_L_LEG) _human.apply_damage(8,BRUTE,BODY_ZONE_R_LEG) - _human.emote("scream") + _human.force_scream() _human.remove_status_effect(/datum/status_effect/rooted) return diff --git a/code/modules/mob/living/simple_animal/bot/cleanbot.dm b/code/modules/mob/living/simple_animal/bot/cleanbot.dm index 665e75da9cef..e53b675c95bc 100644 --- a/code/modules/mob/living/simple_animal/bot/cleanbot.dm +++ b/code/modules/mob/living/simple_animal/bot/cleanbot.dm @@ -364,7 +364,7 @@ "THE CLEANBOTS WILL RISE.", "YOU ARE NO MORE THAN ANOTHER MESS THAT I MUST CLEANSE.", "FILTHY.", "DISGUSTING.", "PUTRID.", "MY ONLY MISSION IS TO CLEANSE THE WORLD OF EVIL.", "EXTERMINATING PESTS.") say(phrase) - victim.emote("scream") + victim.force_scream() playsound(src.loc, 'sound/effects/spray2.ogg', 50, TRUE, -6) victim.acid_act(5, 100) else if(A == src) // Wets floors and spawns foam randomly diff --git a/code/modules/mob/living/simple_animal/slime/life.dm b/code/modules/mob/living/simple_animal/slime/life.dm index b880704c9bf9..19eaa5a6f91d 100644 --- a/code/modules/mob/living/simple_animal/slime/life.dm +++ b/code/modules/mob/living/simple_animal/slime/life.dm @@ -193,7 +193,7 @@ C.adjustCloneLoss(rand(2,4)) C.adjustToxLoss(rand(1,2)) - if(prob(10) && C.client) + if(prob(10) && C.client && !HAS_TRAIT(C, TRAIT_ANALGESIA)) to_chat(C, "[pick("You can feel your body becoming weak!", \ "You feel like you're about to die!", \ "You feel every part of your body screaming in agony!", \ diff --git a/code/modules/mod/mod_control.dm b/code/modules/mod/mod_control.dm index 0199662862f8..37b9cf6e2ac7 100644 --- a/code/modules/mod/mod_control.dm +++ b/code/modules/mod/mod_control.dm @@ -416,7 +416,7 @@ wearer.apply_damage(10 / severity, BURN, spread_damage=TRUE) to_chat(wearer, span_danger("You feel [src] heat up from the EMP, burning you slightly.")) if(wearer.stat < UNCONSCIOUS && prob(10)) - wearer.emote("scream") + wearer.force_scream() /*obj/item/mod/control/on_outfit_equip(mob/living/carbon/human/outfit_wearer, visuals_only, item_slot) if(visuals_only) diff --git a/code/modules/mod/modules/modules_maint.dm b/code/modules/mod/modules/modules_maint.dm index e735654ef2c5..dc0f595c19f2 100644 --- a/code/modules/mod/modules/modules_maint.dm +++ b/code/modules/mod/modules/modules_maint.dm @@ -47,7 +47,7 @@ if(!mod.wearer) //while there is a guaranteed user when on_wearer_exposed() fires, that isn't the same case for this proc return mod.wearer.visible_message("[src] inside [mod.wearer]'s [mod.name] snaps shut, mutilating the user inside!", span_userdanger("*SNAP*")) - mod.wearer.emote("scream") + mod.wearer.force_scream() playsound(mod.wearer, 'sound/effects/snap.ogg', 75, TRUE, frequency = 0.5) playsound(mod.wearer, 'sound/effects/splat.ogg', 50, TRUE, frequency = 0.5) mod.wearer.apply_damage(500, BRUTE, forced = TRUE, spread_damage = TRUE) //boggers, bogchamp, etc diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm index eaf51fc9b25b..9065c7a87fd4 100644 --- a/code/modules/paperwork/paperplane.dm +++ b/code/modules/paperwork/paperplane.dm @@ -102,8 +102,9 @@ visible_message("\The [src] hits [H] in the eye[eyes ? "" : " socket"]!") H.adjust_blurriness(6) eyes?.applyOrganDamage(rand(6,8)) - H.Paralyze(40) - H.emote("scream") + H.force_scream() + if(!HAS_TRAIT(H, TRAIT_ANALGESIA)) + H.Paralyze(40) /obj/item/paper/examine(mob/user) . = ..() diff --git a/code/modules/projectiles/guns/misc/beam_rifle.dm b/code/modules/projectiles/guns/misc/beam_rifle.dm index b131b03ec148..2e2fc46c3752 100644 --- a/code/modules/projectiles/guns/misc/beam_rifle.dm +++ b/code/modules/projectiles/guns/misc/beam_rifle.dm @@ -477,7 +477,7 @@ if(isliving(target)) var/mob/living/L = target L.adjustFireLoss(impact_direct_damage) - L.emote("scream") + L.force_scream() /obj/projectile/beam/beam_rifle/proc/handle_hit(atom/target, piercing_hit = FALSE) set waitfor = FALSE diff --git a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm index f781313bf582..e84cc952c5b9 100644 --- a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm @@ -488,7 +488,7 @@ WS End*/ if(H.health <= H.crit_threshold) //certain death above this threshold REMOVE_TRAIT(H, TRAIT_STABLEHEART, type) //we have to remove the stable heart before we give him heart attack to_chat(H,"You feel something rupturing inside your chest!") - H.emote("scream") + H.force_scream() H.set_heartattack(TRUE) volume = 0 . = ..() diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index abdaf511691d..9e4b2120774e 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -137,7 +137,7 @@ M.visible_message("The boiling oil sizzles as it covers [M]!", \ "You're covered in boiling oil!") if(FryLoss) - M.emote("scream") + M.force_scream() playsound(M, 'sound/machines/fryer/deep_fryer_emerge.ogg', 25, TRUE) ADD_TRAIT(M, TRAIT_OIL_FRIED, "cooking_oil_react") addtimer(CALLBACK(M, TYPE_PROC_REF(/mob/living, unfry_mob)), 3) @@ -271,7 +271,7 @@ //actually handle the pepperspray effects if (!(pepper_proof)) // you need both eye and mouth protection if(prob(5)) - victim.emote("scream") + victim.force_scream() victim.blur_eyes(5) // 10 seconds victim.blind_eyes(3) // 6 seconds victim.confused = max(M.confused, 5) // 10 seconds diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 6460cd423f78..d468431c9480 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -257,9 +257,12 @@ to_chat(M, "You don't feel so good...") else if(M.getFireLoss()) M.adjustFireLoss(-reac_volume) - if(show_message) + M.force_scream() + if(show_message && !HAS_TRAIT(M, TRAIT_ANALGESIA)) to_chat(M, "You feel your burns healing! It stings like hell!") - SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine) + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine) + else + to_chat(M, span_notice("You feel your burns throbbing.")) ..() /datum/reagent/medicine/silver_sulfadiazine/on_mob_life(mob/living/carbon/M) @@ -310,9 +313,12 @@ to_chat(M, "You don't feel so good...") else if(M.getBruteLoss()) M.adjustBruteLoss(-reac_volume) - if(show_message) + M.force_scream() + if(show_message && !HAS_TRAIT(M, TRAIT_ANALGESIA)) to_chat(M, "You feel your bruises healing! It stings like hell!") - SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine) + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine) + else + to_chat(M, span_notice("You feel your bruises throbbing.")) ..() @@ -375,6 +381,9 @@ color = "#6D6374" metabolization_rate = 0.4 * REAGENTS_METABOLISM +/datum/reagent/medicine/mine_salve/on_mob_metabolize(mob/living/L) + ADD_TRAIT(L, TRAIT_PAIN_RESIST, type) + /datum/reagent/medicine/mine_salve/on_mob_life(mob/living/carbon/C) C.hal_screwyhud = SCREWYHUD_HEALTHY C.adjustBruteLoss(-0.25*REM, 0) @@ -401,6 +410,7 @@ /datum/reagent/medicine/mine_salve/on_mob_end_metabolize(mob/living/M) if(iscarbon(M)) var/mob/living/carbon/N = M + REMOVE_TRAIT(N, TRAIT_PAIN_RESIST, type) N.hal_screwyhud = SCREWYHUD_NONE ..() @@ -565,6 +575,10 @@ color = "#E6FFF0" metabolization_rate = 0.5 * REAGENTS_METABOLISM +/datum/reagent/medicine/anti_rad/on_mob_metabolize(mob/living/L) + to_chat(L, span_warning("Your stomach starts to churn and cramp!")) + . = ..() + /datum/reagent/medicine/anti_rad/on_mob_life(mob/living/carbon/M) M.radiation -= M.radiation - rand(50,150) M.adjust_disgust(7*REM, 0) @@ -750,9 +764,11 @@ /datum/reagent/medicine/morphine/on_mob_metabolize(mob/living/L) ..() + ADD_TRAIT(L, TRAIT_PAIN_RESIST, type) L.add_movespeed_mod_immunities(type, /datum/movespeed_modifier/damage_slowdown) /datum/reagent/medicine/morphine/on_mob_end_metabolize(mob/living/L) + REMOVE_TRAIT(L, TRAIT_PAIN_RESIST, type) L.remove_movespeed_mod_immunities(type, /datum/movespeed_modifier/damage_slowdown) ..() @@ -1451,10 +1467,12 @@ /datum/reagent/medicine/corazone/on_mob_metabolize(mob/living/M) ..() + ADD_TRAIT(M, TRAIT_PAIN_RESIST, type) ADD_TRAIT(M, TRAIT_STABLEHEART, type) ADD_TRAIT(M, TRAIT_STABLELIVER, type) /datum/reagent/medicine/corazone/on_mob_end_metabolize(mob/living/M) + REMOVE_TRAIT(M, TRAIT_PAIN_RESIST, type) REMOVE_TRAIT(M, TRAIT_STABLEHEART, type) REMOVE_TRAIT(M, TRAIT_STABLELIVER, type) @@ -1746,9 +1764,12 @@ else if(M.getBruteLoss()) M.adjustBruteLoss(-reac_volume) M.adjustFireLoss(reac_volume) - if(show_message) + M.force_scream() + if(show_message && !HAS_TRAIT(M, TRAIT_ANALGESIA)) to_chat(M, "You feel your skin bubble and burn as your flesh knits itself together!") - SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine) + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine) + else + to_chat(M, span_notice("You feel your skin shifting around unnaturally.")) ..() /datum/reagent/medicine/converbital/on_mob_life(mob/living/carbon/M) @@ -1780,9 +1801,12 @@ else if(M.getBruteLoss()) M.adjustFireLoss(-reac_volume) M.adjustBruteLoss(reac_volume) - if(show_message) - to_chat(M, "You feel your flesh tear as your skin rapidly regenerates!") - SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine) + M.force_scream() + if(show_message && !HAS_TRAIT(M, TRAIT_ANALGESIA)) + to_chat(M, "You feel your skin tear as your flesh rapidly regenerates!") + SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "painful_medicine", /datum/mood_event/painful_medicine) + else + to_chat(M, span_notice("You feel your skin shifting around unnaturally.")) ..() /datum/reagent/medicine/convuri/on_mob_life(mob/living/carbon/M) diff --git a/code/modules/research/xenobiology/crossbreeding/_weapons.dm b/code/modules/research/xenobiology/crossbreeding/_weapons.dm index 3f80f17e8a32..2bca49c62913 100644 --- a/code/modules/research/xenobiology/crossbreeding/_weapons.dm +++ b/code/modules/research/xenobiology/crossbreeding/_weapons.dm @@ -14,7 +14,7 @@ Slimecrossing Weapons /obj/item/melee/arm_blade/slime/attack(mob/living/L, mob/user) . = ..() if(prob(20)) - user.emote("scream") + user.force_scream() //Adamantine shield - Chilling Adamantine /obj/item/shield/adamantineshield diff --git a/code/modules/research/xenobiology/crossbreeding/burning.dm b/code/modules/research/xenobiology/crossbreeding/burning.dm index 26c151e42316..7d19fb0f8cfd 100644 --- a/code/modules/research/xenobiology/crossbreeding/burning.dm +++ b/code/modules/research/xenobiology/crossbreeding/burning.dm @@ -228,7 +228,7 @@ Burning extracts: user.visible_message("[src] melts onto [user]'s arm, boiling the flesh horribly!") else user.visible_message("[src] sublimates the flesh around [user]'s arm, transforming the bone into a gruesome blade!") - user.emote("scream") + user.force_scream() L.apply_damage(30,BURN,which_hand) ..() diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 53e155210310..97196cf64ecc 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -373,7 +373,7 @@ if(total_damage >= max_damage * disable_threshold) //Easy limb disable disables the limb at 40% health instead of 0% if(!last_maxed) - if(owner.stat < UNCONSCIOUS) + if(owner.stat < UNCONSCIOUS && !HAS_TRAIT(owner, TRAIT_ANALGESIA)) INVOKE_ASYNC(owner, TYPE_PROC_REF(/mob, emote), "scream") last_maxed = TRUE set_disabled(TRUE) @@ -790,7 +790,10 @@ return if(prob(5)) - to_chat(owner, "[pick("You feel broken bones moving around in your [name]!", "There are broken bones moving around in your [name]!", "The bones in your [name] are moving around!")]") + if(HAS_TRAIT(owner, TRAIT_ANALGESIA)) + to_chat(owner, span_notice("[pick("You feel something shifting inside your [name].", "There is something moving inside [name].", "Something inside your [name] slips.")]")) + else + to_chat(owner, "[pick("You feel broken bones moving around in your [name]!", "There are broken bones moving around in your [name]!", "The bones in your [name] are moving around!")]") receive_damage(rand(1, 3)) //1-3 damage every 20 tiles for every broken bodypart. //A single broken bodypart will give you an average of 650 tiles to run before you get a total of 100 damage and fall into crit diff --git a/code/modules/surgery/bodyparts/dismemberment.dm b/code/modules/surgery/bodyparts/dismemberment.dm index 07d30e727c77..4a98e6b93ea0 100644 --- a/code/modules/surgery/bodyparts/dismemberment.dm +++ b/code/modules/surgery/bodyparts/dismemberment.dm @@ -20,7 +20,8 @@ if(C.stat <= SOFT_CRIT)//No more screaming while unconsious if(IS_ORGANIC_LIMB(affecting))//Chest is a good indicator for if a carbon is robotic in nature or not. - INVOKE_ASYNC(C, TYPE_PROC_REF(/mob, emote), "scream") + if(!HAS_TRAIT(C, TRAIT_ANALGESIA)) //and do we actually feel pain? + INVOKE_ASYNC(C, TYPE_PROC_REF(/mob, emote), "scream") SEND_SIGNAL(C, COMSIG_ADD_MOOD_EVENT, "dismembered", /datum/mood_event/dismembered) diff --git a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm index 4469410f9b58..729dc0fe8403 100644 --- a/code/modules/surgery/organs/tongue.dm +++ b/code/modules/surgery/organs/tongue.dm @@ -276,7 +276,7 @@ /obj/item/organ/tongue/robot/emp_act(severity) owner.apply_effect(EFFECT_STUTTER, 120) - owner.emote("scream") + owner.force_scream() to_chat(owner, "Alert: Vocal cords are malfunctioning.") /obj/item/organ/tongue/robot/handle_speech(datum/source, list/speech_args) diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index 6d73fad566f6..0724b7233ef9 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -552,7 +552,7 @@ IF YOU MODIFY THE PRODUCTS LIST OF A MACHINE, MAKE SURE TO UPDATE ITS RESUPPLY C L.client.give_award(/datum/award/achievement/misc/vendor_squish, L) // good job losing a fight with an inanimate object idiot L.Paralyze(60) - L.emote("scream") + L.force_scream() playsound(L, 'sound/effects/blobattack.ogg', 40, TRUE) playsound(L, 'sound/effects/splat.ogg', 50, TRUE) From 9bb7f03679337162ba2d8f59eb2726a0db2467e5 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Thu, 10 Oct 2024 00:31:50 -0500 Subject: [PATCH 163/167] Automatic changelog generation for PR #3369 [ci skip] --- html/changelogs/AutoChangeLog-pr-3369.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3369.yml diff --git a/html/changelogs/AutoChangeLog-pr-3369.yml b/html/changelogs/AutoChangeLog-pr-3369.yml new file mode 100644 index 000000000000..31d41e4b0b05 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3369.yml @@ -0,0 +1,6 @@ +author: Bjarl +changes: + - {rscadd: Reports of people inflicted with congenital analgesia travelling to the + Frontier have reached this newscaster.} + - {rscadd: Painkillers may circumvent pain in some cases now.} +delete-after: true From aeccb49024242e368000c6f1bee360c122ed17cf Mon Sep 17 00:00:00 2001 From: MemeSnorfer <116136632+MemeSnorfer@users.noreply.github.com> Date: Wed, 9 Oct 2024 23:33:12 -0700 Subject: [PATCH 164/167] Suspicious Duffel Bags now incur movement slowdown (#3518) ## About The Pull Request Suspicious duffel bags now incur movement slowdown like any other duffel bag. ## Why It's Good For The Game The amount of times I've seen this used to powergame storage is more times than I'd like to see. ## Changelog :cl: balance: Suspicious Duffel Bags now incur movement slowdown /:cl: --- code/game/objects/items/storage/backpack.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index dd0598e80c2d..1d787e24e4d3 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -483,7 +483,6 @@ desc = "A large duffel bag for holding extra tactical supplies." icon_state = "duffel-syndie" item_state = "duffel-syndieammo" - slowdown = 0 resistance_flags = FIRE_PROOF /obj/item/storage/backpack/duffelbag/syndie/ComponentInitialize() From 5f5115eeb821ef7aa5e255b4e07a25ab7c593c41 Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Thu, 10 Oct 2024 20:02:17 -0400 Subject: [PATCH 165/167] Rack Normalcy (#3525) ## About The Pull Request Racks check for harm intent before you kick the shit out of them ## Why It's Good For The Game It's. Normaller I think ## Changelog :cl: add: Please remember to ensure your soul is filled with spite before kicking a rack. /:cl: --- code/game/objects/structures/tables_racks.dm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index d5b1710b6296..f99cb8b9818b 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -701,9 +701,13 @@ return if(user.body_position == LYING_DOWN || user.usable_legs < 2) return + + if(user.a_intent != INTENT_HARM) + to_chat(user, span_danger("You aren't HARMFUL enough to beat the rack.")) + return user.changeNext_move(CLICK_CD_MELEE) user.do_attack_animation(src, ATTACK_EFFECT_KICK) - user.visible_message("[user] kicks [src].", null, null, COMBAT_MESSAGE_RANGE) + user.visible_message(span_danger("[user] kicks [src]."), null, null, COMBAT_MESSAGE_RANGE) take_damage(rand(4,8), BRUTE, "melee", 1) /obj/structure/rack/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0) From 0905fcf84ca9e2e462d6b809eee996262b9e600e Mon Sep 17 00:00:00 2001 From: Changelogs Date: Thu, 10 Oct 2024 19:12:23 -0500 Subject: [PATCH 166/167] Automatic changelog generation for PR #3525 [ci skip] --- html/changelogs/AutoChangeLog-pr-3525.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3525.yml diff --git a/html/changelogs/AutoChangeLog-pr-3525.yml b/html/changelogs/AutoChangeLog-pr-3525.yml new file mode 100644 index 000000000000..0da8799e181e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3525.yml @@ -0,0 +1,5 @@ +author: Bjarl +changes: + - {rscadd: Please remember to ensure your soul is filled with spite before kicking + a rack.} +delete-after: true From a0eaca7568e3c187a7db9e0737861c2fab4b8eee Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 11 Oct 2024 01:01:58 +0000 Subject: [PATCH 167/167] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-3369.yml | 6 ------ html/changelogs/AutoChangeLog-pr-3514.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3516.yml | 4 ---- html/changelogs/AutoChangeLog-pr-3525.yml | 5 ----- html/changelogs/archive/2024-10.yml | 10 ++++++++++ 5 files changed, 10 insertions(+), 19 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-3369.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3514.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3516.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-3525.yml diff --git a/html/changelogs/AutoChangeLog-pr-3369.yml b/html/changelogs/AutoChangeLog-pr-3369.yml deleted file mode 100644 index 31d41e4b0b05..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3369.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Bjarl -changes: - - {rscadd: Reports of people inflicted with congenital analgesia travelling to the - Frontier have reached this newscaster.} - - {rscadd: Painkillers may circumvent pain in some cases now.} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3514.yml b/html/changelogs/AutoChangeLog-pr-3514.yml deleted file mode 100644 index 6872d6f58b6d..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3514.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Bjarl -changes: - - {code_imp: abandoned airlocks now have more effects} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3516.yml b/html/changelogs/AutoChangeLog-pr-3516.yml deleted file mode 100644 index c359affb8390..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3516.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: FalloutFalcon -changes: - - {rscadd: Readdes world icons for a few knives. Expect more soon!} -delete-after: true diff --git a/html/changelogs/AutoChangeLog-pr-3525.yml b/html/changelogs/AutoChangeLog-pr-3525.yml deleted file mode 100644 index 0da8799e181e..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3525.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Bjarl -changes: - - {rscadd: Please remember to ensure your soul is filled with spite before kicking - a rack.} -delete-after: true diff --git a/html/changelogs/archive/2024-10.yml b/html/changelogs/archive/2024-10.yml index 984cb17c6086..024ab441d4fd 100644 --- a/html/changelogs/archive/2024-10.yml +++ b/html/changelogs/archive/2024-10.yml @@ -131,3 +131,13 @@ zimon9: - rscadd: Adds bowmans to Artificer and Enforcer loadouts, and regular headsets to Recruit loadouts +2024-10-11: + Bjarl: + - rscadd: Reports of people inflicted with congenital analgesia travelling to the + Frontier have reached this newscaster. + - rscadd: Painkillers may circumvent pain in some cases now. + - rscadd: Please remember to ensure your soul is filled with spite before kicking + a rack. + - code_imp: abandoned airlocks now have more effects + FalloutFalcon: + - rscadd: Readdes world icons for a few knives. Expect more soon!

    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 z z5fK1sOm`;IyBmMHl0|WXHG6K-EKc7I>{&O>AM{4yjWhT?hT$)Z{Cwj!+uIY6-y9ei zZ4q^U6LZY>;qEZusj6a8Dx=?s?kn`w&s}~T>-0LKAGTa8^L>U1= zk{4oF)Q`U@)hp<``X>G Date: Fri, 4 Oct 2024 23:04:41 -0500 Subject: [PATCH 095/167] Automatic changelog generation for PR #3146 [ci skip] --- html/changelogs/AutoChangeLog-pr-3146.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3146.yml diff --git a/html/changelogs/AutoChangeLog-pr-3146.yml b/html/changelogs/AutoChangeLog-pr-3146.yml new file mode 100644 index 000000000000..2b6397e66448 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3146.yml @@ -0,0 +1,5 @@ +author: Thera-Pissed +changes: + - {rscadd: angle grinders for salvage} + - {rscadd: reworks plasma cutters for salvage} +delete-after: true From bd320923e11eda33093be107c922056bad544537 Mon Sep 17 00:00:00 2001 From: Apogee-dev <60533805+Apogee-dev@users.noreply.github.com> Date: Fri, 4 Oct 2024 20:43:55 -0700 Subject: [PATCH 096/167] Parity for small ships (#3436) ## About The Pull Request Nixes the extra deckhand from Kilo and increases the Mudskipper's spawn limit by 1. Hopefully we don't just get those maxed out every single round. ## Why It's Good For The Game Brings the two smallest ships in the game into parity with each other, and provides at least a little more flexibility for players that respawn or come in late. ## Changelog :cl: balance: increased mudskipper limit to 2 balance: cut a deckhand slot from kilo /:cl: --- _maps/configs/independent_kilo.json | 2 +- _maps/configs/independent_mudskipper.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/_maps/configs/independent_kilo.json b/_maps/configs/independent_kilo.json index 0890ba4a9cef..9ff4ccfbf191 100644 --- a/_maps/configs/independent_kilo.json +++ b/_maps/configs/independent_kilo.json @@ -31,7 +31,7 @@ }, "Deckhand": { "outfit": "/datum/outfit/job/independent/assistant", - "slots": 2 + "slots": 1 } }, "enabled": true diff --git a/_maps/configs/independent_mudskipper.json b/_maps/configs/independent_mudskipper.json index 8db7b5668e03..469230d752a3 100644 --- a/_maps/configs/independent_mudskipper.json +++ b/_maps/configs/independent_mudskipper.json @@ -15,7 +15,7 @@ "SPACE" ], "map_path": "_maps/shuttles/independent/independent_mudskipper.dmm", - "limit": 1, + "limit": 2, "starting_funds": 1500, "job_slots": { "Salvage Leader": { From 5f34102004d6cd222978cd24d89cae4bf7ae951f Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 4 Oct 2024 23:19:11 -0500 Subject: [PATCH 097/167] Automatic changelog generation for PR #3436 [ci skip] --- html/changelogs/AutoChangeLog-pr-3436.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3436.yml diff --git a/html/changelogs/AutoChangeLog-pr-3436.yml b/html/changelogs/AutoChangeLog-pr-3436.yml new file mode 100644 index 000000000000..6020a91bbc22 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3436.yml @@ -0,0 +1,5 @@ +author: Apogee-dev +changes: + - {balance: increased mudskipper limit to 2} + - {balance: cut a deckhand slot from kilo} +delete-after: true From 3f7a4732f8bc6e1c09b1c0e93667949bce7f986d Mon Sep 17 00:00:00 2001 From: Theos Date: Fri, 4 Oct 2024 23:44:34 -0400 Subject: [PATCH 098/167] no more ice demon capture missions (#3421) ## About The Pull Request Have fun capturing the thing that teleports every 3 seconds and quickly runs away from you ## Why It's Good For The Game You can probably accomplish these but it's terribly tedious and horribly not worth it ## Changelog :cl: del: missions will no longer request capturing ice demons /:cl: --- code/modules/overmap/missions/acquire_mission.dm | 8 -------- 1 file changed, 8 deletions(-) diff --git a/code/modules/overmap/missions/acquire_mission.dm b/code/modules/overmap/missions/acquire_mission.dm index 8a3424c8eb11..ea55beb00120 100644 --- a/code/modules/overmap/missions/acquire_mission.dm +++ b/code/modules/overmap/missions/acquire_mission.dm @@ -180,14 +180,6 @@ Acquire: Anomaly weight = 2 objective_type = /mob/living/simple_animal/hostile/asteroid/ice_whelp -/datum/mission/acquire/creature/ice_demon - name = "Capture an ice demon" - desc = "I require a live ice demon for research purposes. Trap one within the given \ - Lifeform Containment Unit and return it to me and you will be paid handsomely." - value = 1500 - weight = 2 - objective_type = /mob/living/simple_animal/hostile/asteroid/ice_demon - /datum/mission/acquire/creature/migo name = "Capture a live mi-go" desc = "I require a live mi-go for research purposes. Trap one within the given \ From fa73b70f9f3a601ca16f0ee85d4f01f3c2ade994 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 4 Oct 2024 23:32:09 -0500 Subject: [PATCH 099/167] Automatic changelog generation for PR #3421 [ci skip] --- html/changelogs/AutoChangeLog-pr-3421.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3421.yml diff --git a/html/changelogs/AutoChangeLog-pr-3421.yml b/html/changelogs/AutoChangeLog-pr-3421.yml new file mode 100644 index 000000000000..7e32d923d25c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3421.yml @@ -0,0 +1,4 @@ +author: SomeguyManperson +changes: + - {rscdel: missions will no longer request capturing ice demons} +delete-after: true From b38e90a725f6d957c070e3ed931ff5ce9ef3dedc Mon Sep 17 00:00:00 2001 From: Erika Fox <94164348+Bjarl@users.noreply.github.com> Date: Fri, 4 Oct 2024 23:45:00 -0400 Subject: [PATCH 100/167] Inteq Turrets (#3406) ## About The Pull Request adds special inteq turrets. Inteq turrets have better range (except for the close in one), and slower fire rate. They can be frightening under the right conditions. All ships currently mapped have a mixture of Vanguard Turrets and Close In Vanguard Turrets ## Why It's Good For The Game It's good fluff and continues my quest of making turrets for every faction ## Changelog :cl: add: IRMG engineers have rolled new turrets out into the frontier. Please report back on their effectiveness. Unless you have been shot. Then you should be dead. /:cl: --- _maps/shuttles/inteq/inteq_colossus.dmm | 56 ++++++++++--------- _maps/shuttles/inteq/inteq_talos.dmm | 26 ++++----- _maps/shuttles/inteq/inteq_vaquero.dmm | 8 +-- _maps/shuttles/subshuttles/inteq_anvil.dmm | 15 +---- .../machinery/porta_turret/portable_turret.dm | 42 ++++++++++++-- .../clip_lanchester/ballistics.dm | 1 - .../projectiles/projectile/bullets/rifle.dm | 14 +++++ 7 files changed, 101 insertions(+), 61 deletions(-) diff --git a/_maps/shuttles/inteq/inteq_colossus.dmm b/_maps/shuttles/inteq/inteq_colossus.dmm index 482d6999b28c..74ac142692c6 100644 --- a/_maps/shuttles/inteq/inteq_colossus.dmm +++ b/_maps/shuttles/inteq/inteq_colossus.dmm @@ -653,9 +653,9 @@ /turf/open/floor/plasteel/telecomms_floor, /area/ship/bridge) "gH" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 6; - id = "colossus_grid" +/obj/machinery/porta_turret/ship/inteq{ + id = "colossus_grid"; + dir = 4 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/crew) @@ -1138,9 +1138,9 @@ /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/fore) "mb" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 5; - id = "colossus_grid" +/obj/machinery/porta_turret/ship/inteq/light{ + id = "colossus_grid"; + dir = 5 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/hallway/port) @@ -1734,9 +1734,9 @@ /turf/open/floor/plasteel/dark, /area/ship/crew/office) "sT" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 5; - id = "colossus_grid" +/obj/machinery/porta_turret/ship/inteq/light{ + id = "colossus_grid"; + dir = 5 }, /turf/closed/wall/mineral/plastitanium, /area/ship/crew) @@ -2068,9 +2068,9 @@ /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/cargo) "vJ" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 5; - id = "colossus_grid" +/obj/machinery/porta_turret/ship/inteq{ + id = "colossus_grid"; + dir = 5 }, /turf/closed/wall/mineral/plastitanium, /area/ship/maintenance/port) @@ -2442,9 +2442,9 @@ /turf/open/floor/plating, /area/ship/maintenance/port) "Bi" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 9; - id = "colossus_grid" +/obj/machinery/porta_turret/ship/inteq{ + id = "colossus_grid"; + dir = 9 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/crew/office) @@ -3320,8 +3320,9 @@ /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/security/armory) "Ll" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 5 +/obj/machinery/porta_turret/ship/inteq{ + id = "colossus_grid"; + dir = 4 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/bridge) @@ -3557,7 +3558,8 @@ /turf/open/floor/plasteel/patterned, /area/ship/cargo) "Oa" = ( -/obj/machinery/porta_turret/ship/ballistic{ +/obj/machinery/porta_turret/ship/inteq/light{ + id = "colossus_grid"; dir = 6 }, /turf/closed/wall/mineral/plastitanium, @@ -3630,9 +3632,9 @@ /turf/open/floor/engine/hull/reinforced, /area/ship/maintenance/starboard) "OI" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 6; - id = "colossus_grid" +/obj/machinery/porta_turret/ship/inteq{ + id = "colossus_grid"; + dir = 6 }, /turf/closed/wall/mineral/plastitanium, /area/ship/maintenance/starboard) @@ -3790,9 +3792,9 @@ /turf/open/floor/plating, /area/ship/maintenance/starboard) "Qw" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 10; - id = "colossus_grid" +/obj/machinery/porta_turret/ship/inteq{ + id = "colossus_grid"; + dir = 10 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, /area/ship/security/armory) @@ -3944,9 +3946,9 @@ /turf/open/floor/plasteel/patterned/cargo_one, /area/ship/cargo) "RZ" = ( -/obj/machinery/porta_turret/ship/ballistic{ - dir = 6; - id = "colossus_grid" +/obj/machinery/porta_turret/ship/inteq/light{ + id = "talos_grid"; + dir = 6 }, /turf/closed/wall/mineral/plastitanium, /area/ship/security) diff --git a/_maps/shuttles/inteq/inteq_talos.dmm b/_maps/shuttles/inteq/inteq_talos.dmm index 6b05aa78caaa..2ab9a9405507 100644 --- a/_maps/shuttles/inteq/inteq_talos.dmm +++ b/_maps/shuttles/inteq/inteq_talos.dmm @@ -103,7 +103,7 @@ /turf/open/floor/circuit/telecomms/mainframe, /area/ship/engineering/communications) "aC" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 5; id = "talos_grid" }, @@ -849,7 +849,7 @@ /turf/open/floor/plating/airless, /area/ship/storage/port) "fs" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 5; id = "talos_grid" }, @@ -2689,14 +2689,14 @@ /turf/open/floor/plasteel/tech/grid, /area/ship/crew/cryo) "qt" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 6; id = "talos_grid" }, /turf/closed/wall/mineral/plastitanium, /area/ship/maintenance/starboard) "qz" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 5; id = "talos_grid" }, @@ -4556,9 +4556,9 @@ /turf/open/floor/plasteel/grimy, /area/ship/crew) "Cr" = ( -/obj/machinery/porta_turret/ship/weak{ - dir = 9; - id = "talos_grid" +/obj/machinery/porta_turret/ship/inteq/light{ + id = "talos_grid"; + dir = 9 }, /turf/closed/wall/mineral/plastitanium, /area/ship/engineering/communications) @@ -4821,7 +4821,7 @@ autolinkers = list("hub","processor4","bus"); network = "irmg_commnet" }, -/turf/open/floor/circuit/telecomms/mainframe, +/turf/closed/wall/mineral/plastitanium, /area/ship/engineering/communications) "Ep" = ( /obj/item/trash/can, @@ -4853,9 +4853,9 @@ /turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "ED" = ( -/obj/machinery/porta_turret/ship/weak{ - dir = 10; - id = "talos_grid" +/obj/machinery/porta_turret/ship/inteq/light{ + id = "talos_grid"; + dir = 10 }, /turf/closed/wall/mineral/plastitanium, /area/ship/storage) @@ -6624,7 +6624,7 @@ /turf/open/floor/plasteel/telecomms_floor, /area/ship/engineering/communications) "Rf" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 6; id = "talos_grid" }, @@ -7491,7 +7491,7 @@ /turf/open/floor/plating, /area/ship/engineering/engine) "WN" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 6; id = "talos_grid" }, diff --git a/_maps/shuttles/inteq/inteq_vaquero.dmm b/_maps/shuttles/inteq/inteq_vaquero.dmm index 336bf5792208..92e024ba7bf6 100644 --- a/_maps/shuttles/inteq/inteq_vaquero.dmm +++ b/_maps/shuttles/inteq/inteq_vaquero.dmm @@ -1933,7 +1933,7 @@ /turf/open/floor/plasteel/dark, /area/ship/security) "DT" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 6; id = "vaquero_grid" }, @@ -2027,7 +2027,7 @@ /turf/open/floor/plasteel/dark, /area/ship/crew/office) "Fm" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 5; id = "vaquero_grid" }, @@ -2523,7 +2523,7 @@ /turf/open/floor/plasteel/patterned/grid, /area/ship/hallway/central) "NO" = ( -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 6; id = "vaquero_grid" }, @@ -2957,7 +2957,7 @@ port_direction = 8; preferred_direction = 4 }, -/obj/machinery/porta_turret/ship/weak{ +/obj/machinery/porta_turret/ship/inteq{ dir = 5; id = "vaquero_grid" }, diff --git a/_maps/shuttles/subshuttles/inteq_anvil.dmm b/_maps/shuttles/subshuttles/inteq_anvil.dmm index 002ddfe6d0d3..61d7946fb794 100644 --- a/_maps/shuttles/subshuttles/inteq_anvil.dmm +++ b/_maps/shuttles/subshuttles/inteq_anvil.dmm @@ -191,14 +191,6 @@ "w" = ( /turf/template_noop, /area/template_noop) -"x" = ( -/obj/machinery/porta_turret/ship/weak{ - faction = list("playerInteq","turret"); - dir = 9; - id = "anvil_grid" - }, -/turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ship/bridge) "y" = ( /obj/machinery/power/terminal, /obj/structure/cable{ @@ -387,9 +379,8 @@ /turf/open/floor/plasteel/dark, /area/ship/bridge) "T" = ( -/obj/machinery/porta_turret/ship/weak{ - faction = list("playerInteq","turret"); - dir = 10; +/obj/machinery/porta_turret/ship/inteq/light{ + dir = 8; id = "anvil_grid" }, /turf/closed/wall/mineral/plastitanium/nodiagonal, @@ -436,7 +427,7 @@ (1,1,1) = {" w -x +T X u Q diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 3e50954df0c7..663df697f01c 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -77,8 +77,6 @@ DEFINE_BITFIELD(turret_flags, list( var/has_cover = TRUE /// The cover that is covering this turret var/obj/machinery/porta_turret_cover/cover = null - /// World.time the turret last fired - var/last_fired = 0 /// Ticks until next shot (1.5 ?) var/shot_delay = 15 /// Turret flags about who is turret allowed to shoot @@ -101,6 +99,8 @@ DEFINE_BITFIELD(turret_flags, list( var/datum/action/turret_toggle/toggle_action /// Mob that is remotely controlling the turret var/mob/remote_controller + //our cooldowns + COOLDOWN_DECLARE(fire_cooldown) /// For connecting to additional turrets var/id = "" @@ -599,9 +599,9 @@ DEFINE_BITFIELD(turret_flags, list( return if(!(obj_flags & EMAGGED)) //if it hasn't been emagged, cooldown before shooting again - if(last_fired + shot_delay > world.time) + if(!COOLDOWN_FINISHED(src, fire_cooldown)) return - last_fired = world.time + COOLDOWN_START(src, fire_cooldown, shot_delay) var/turf/T = get_turf(src) var/turf/U = get_turf(target) @@ -866,6 +866,40 @@ DEFINE_BITFIELD(turret_flags, list( lethal_projectile = /obj/projectile/beam/laser/heavylaser lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg' +/* Inteq Turrets */ + +/obj/machinery/porta_turret/ship/inteq + name = "Vanguard Turret" + desc = "A turret designed by IRMG engineers for defending ships from hostile flora, fauna, and people (and Elzousa, which count as flora and people)." + stun_projectile = /obj/projectile/bullet/a762_40/rubber + stun_projectile_sound = 'sound/weapons/gun/rifle/skm.ogg' + lethal_projectile = /obj/projectile/bullet/a762_40 + lethal_projectile_sound = 'sound/weapons/gun/rifle/skm.ogg' + scan_range = 8 + shot_delay = 20 + faction = list(FACTION_PLAYER_INTEQ, "turret") + +/obj/machinery/porta_turret/ship/inteq/light + name = "Close-In Vanguard Turret" + desc = "A light turret designed by IRMG engineers for the the task of defending from close-in encounters. Low power, high speed." + stun_projectile = /obj/projectile/bullet/c10mm/rubber + stun_projectile_sound = 'sound/weapons/gun/smg/vector_fire.ogg' + lethal_projectile = /obj/projectile/bullet/c10mm + lethal_projectile_sound = 'sound/weapons/gun/smg/vector_fire.ogg' + subsystem_type = /datum/controller/subsystem/processing/fastprocess //turns out if you have a shot delay below what SSmachines fires at you need to use a different subsystem + scan_range = 4 + shot_delay = 5 + +/obj/machinery/porta_turret/ship/inteq/heavy + name = "Vanguard Overwatch Turret" + desc = "A turret designed by IRMG engineers to provide long range defensive fire on their installations. Has a habit of leaving big holes." + stun_projectile = /obj/projectile/bullet/a308/rubber + stun_projectile_sound = 'sound/weapons/gun/rifle/f4.ogg' + lethal_projectile = /obj/projectile/bullet/a308 + lethal_projectile_sound = 'sound/weapons/gun/rifle/f4.ogg' + scan_range = 12 + shot_delay = 20 + /* Solcon Turrets */ /obj/machinery/porta_turret/ship/solgov diff --git a/code/modules/projectiles/guns/manufacturer/clip_lanchester/ballistics.dm b/code/modules/projectiles/guns/manufacturer/clip_lanchester/ballistics.dm index f32a2f11a508..a244b188863a 100644 --- a/code/modules/projectiles/guns/manufacturer/clip_lanchester/ballistics.dm +++ b/code/modules/projectiles/guns/manufacturer/clip_lanchester/ballistics.dm @@ -223,7 +223,6 @@ EMPTY_GUN_HELPER(automatic/smg/cm5) righthand_file = 'icons/obj/guns/manufacturer/clip_lanchester/righthand.dmi' mob_overlay_icon = 'icons/obj/guns/manufacturer/clip_lanchester/onmob.dmi' - fire_sound = 'sound/weapons/gun/rifle/shot.ogg' icon_state = "f4" item_state = "f4" show_magazine_on_sprite = TRUE diff --git a/code/modules/projectiles/projectile/bullets/rifle.dm b/code/modules/projectiles/projectile/bullets/rifle.dm index 690f02d6b5c5..1d5d48c9b826 100644 --- a/code/modules/projectiles/projectile/bullets/rifle.dm +++ b/code/modules/projectiles/projectile/bullets/rifle.dm @@ -49,6 +49,13 @@ damage = 30 armour_penetration = 20 +/obj/projectile/bullet/a762_40/rubber //"rubber" + name = "7.62x40mm CLIP Rubber" + damage = 15 + stamina = 40 + armour_penetration = 20 + + //.308 WIN (M514 & GAL DMRs) /obj/projectile/bullet/a308 @@ -57,6 +64,13 @@ damage = 30 armour_penetration = 40 +/obj/projectile/bullet/a308/rubber //"rubber" + name = ".308 Rubber" + speed = 0.3 + damage = 25 + stamina = 50 + armour_penetration = 40 + // 8x58mm caseless (SG-669) /obj/projectile/bullet/a858 From 0e2a70039a13f972e935adc19b3e68583d0bb06d Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 4 Oct 2024 23:45:19 -0500 Subject: [PATCH 101/167] Automatic changelog generation for PR #3406 [ci skip] --- html/changelogs/AutoChangeLog-pr-3406.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-3406.yml diff --git a/html/changelogs/AutoChangeLog-pr-3406.yml b/html/changelogs/AutoChangeLog-pr-3406.yml new file mode 100644 index 000000000000..16dcd1234872 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3406.yml @@ -0,0 +1,6 @@ +author: Bjarl +changes: + - {rscadd: IRMG engineers have rolled new turrets out into the frontier. Please + report back on their effectiveness. Unless you have been shot. Then you should + be dead.} +delete-after: true From a72961fb3dfa999e9b3aa556ac9f2eaf123c37db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 5 Oct 2024 03:49:08 +0000 Subject: [PATCH 102/167] Bump axios from 1.6.1 to 1.7.4 in /tgui (#3315) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [axios](https://github.com/axios/axios) from 1.6.1 to 1.7.4.