From c8c7cb927b013398cb4af9794783e964107513f5 Mon Sep 17 00:00:00 2001 From: blackdragonTOW <31581761+blackdragonTOW@users.noreply.github.com> Date: Sun, 5 Nov 2023 18:43:24 -0800 Subject: [PATCH 01/60] Replaces Nanotrasen cashcard icon with a W-Y cashcard icon. (#4832) Replacing SS13 icon sprites with CM sprites # Explain why it's good for the game SS13 holdovers bad. In-universe things good. # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: imageadd: Changed nanotrasen cashcard icon to W-Y /:cl: --- icons/obj/items/items.dmi | Bin 67525 -> 72789 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/items/items.dmi b/icons/obj/items/items.dmi index 076a93feb544b4af0445880a8543b7a98ef77295..52b53208e226d39434fd32faac8910e031355e2e 100644 GIT binary patch literal 72789 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 z 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 Uao95=4gdfE07*qoM6N<$g7xM3yZ`_I literal 67525 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

M;@Jw}i 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 LN>VivMnV4vZ4yn! From 048e608f4d067badbe2b3c54641f27fdfdf83752 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Mon, 6 Nov 2023 03:59:39 +0000 Subject: [PATCH 02/60] Automatic changelog for PR #4832 [ci skip] --- html/changelogs/AutoChangeLog-pr-4832.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4832.yml diff --git a/html/changelogs/AutoChangeLog-pr-4832.yml b/html/changelogs/AutoChangeLog-pr-4832.yml new file mode 100644 index 0000000000..9f9570a6cc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4832.yml @@ -0,0 +1,4 @@ +author: "blackdragonTOW" +delete-after: True +changes: + - imageadd: "Changed nanotrasen cashcard icon to W-Y" \ No newline at end of file From f790028b8417894c48946ca2578455ca9915facd Mon Sep 17 00:00:00 2001 From: Steelpoint <6595389+Steelpoint@users.noreply.github.com> Date: Mon, 6 Nov 2023 10:51:56 +0800 Subject: [PATCH 03/60] Adds Corpsman Sterile Gloves (#4826) # About the pull request Adds a set of marine corpsman sterile gloves that Corpsman can vend. The gloves are identical to regular gloves except they have the sterile glove sprite. # Explain why it's good for the game Helps increase loadout customization of Corpsman. Considering these gloves would further advertise the medical nature of the Corpsman, these gloves will not be a balance issue. # Testing Photographs and Procedure

Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: add: Corpsman can chose to optionally vend a set of armoured sterile gloves as a alternative to regular gloves. They provide full glove protection, but are otherwise an aesthetic choice. /:cl: Co-authored-by: Steelpoint --- .../vending/vendor_types/squad_prep/squad_medic.dm | 1 + code/modules/clothing/gloves/marine_gloves.dm | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm index 69399cfb1e..f6b99887bb 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_medic.dm @@ -117,6 +117,7 @@ GLOBAL_LIST_INIT(cm_vending_gear_medic, list( GLOBAL_LIST_INIT(cm_vending_clothing_medic, list( list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), list("Standard Marine Apparel", 0, list(/obj/item/clothing/under/marine/medic, /obj/item/clothing/shoes/marine/knife, /obj/item/clothing/gloves/marine, /obj/item/device/radio/headset/almayer/marine, /obj/item/clothing/head/helmet/marine/medic), MARINE_CAN_BUY_UNIFORM, VENDOR_ITEM_MANDATORY), + list("Combat Sterile Gloves", 0, /obj/item/clothing/gloves/marine/medical, MARINE_CAN_BUY_KIT, VENDOR_ITEM_REGULAR), list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), list("Map", 0, /obj/item/map/current_map, MARINE_CAN_BUY_KIT, VENDOR_ITEM_MANDATORY), diff --git a/code/modules/clothing/gloves/marine_gloves.dm b/code/modules/clothing/gloves/marine_gloves.dm index 15c596f9f6..9a3e9fd5bb 100644 --- a/code/modules/clothing/gloves/marine_gloves.dm +++ b/code/modules/clothing/gloves/marine_gloves.dm @@ -53,6 +53,14 @@ item_state = "brown" adopts_squad_color = FALSE +/obj/item/clothing/gloves/marine/medical + name = "marine medical combat gloves" + desc = "Standard issue marine sterile gloves, offers regular protection whilst offering the user a better grip when performing medical work." + icon_state = "latex" + item_state = "lgloves" + adopts_squad_color = FALSE + + /obj/item/clothing/gloves/marine/officer name = "officer gloves" desc = "Shiny and impressive. They look expensive." From 6d1256f5a9b2009025f0cb82045ed25b569131d5 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Mon, 6 Nov 2023 04:13:45 +0000 Subject: [PATCH 04/60] Automatic changelog for PR #4826 [ci skip] --- html/changelogs/AutoChangeLog-pr-4826.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4826.yml diff --git a/html/changelogs/AutoChangeLog-pr-4826.yml b/html/changelogs/AutoChangeLog-pr-4826.yml new file mode 100644 index 0000000000..b06b575cb8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4826.yml @@ -0,0 +1,4 @@ +author: "Steelpoint" +delete-after: True +changes: + - rscadd: "Corpsman can chose to optionally vend a set of armoured sterile gloves as a alternative to regular gloves. They provide full glove protection, but are otherwise an aesthetic choice." \ No newline at end of file From b68dc1b886bf24a907275fc1c91f71ae0fecf3fa Mon Sep 17 00:00:00 2001 From: TopHatPenguin Date: Mon, 6 Nov 2023 02:52:34 +0000 Subject: [PATCH 05/60] [NI] - Kutjevo Communications | Re-Addition of Kutjevo Blackbox (#4572) # About the pull request - Nightmare insert for Kutjevo; attaches onto the sensor tower by W8 H12. - Re-adds the Kutjevo blackbox after it was removed previously. # Explain why it's good for the game A nightmare insert for Kutjevo and re-adding blackbox hrp # Testing Photographs and Procedure Location: https://i.gyazo.com/aa80cd26fcfa5ec5585e9ab43a8956aa.png (Green square is where it is inserted from) The actual insert: https://i.gyazo.com/1f089ffa66f5893e89fd0ec7c5ab5778.png Kutjevo Blackbox Re-Addition: https://i.gyazo.com/5a68d21efa55b6d71d404574d579ff64.png # Changelog :cl: TopHatPenguin add: Adds a mostly built communications office nightmare insert to Kutjevo which attaches onto the sensor tower. add: Re-adds the Kutjevo blackbox. /:cl: --- maps/map_files/Kutjevo/Kutjevo.dmm | 18 +- .../Kutjevo/sprinkles/35.communications.dmm | 549 ++++++++++++++++++ 2 files changed, 565 insertions(+), 2 deletions(-) create mode 100644 maps/map_files/Kutjevo/sprinkles/35.communications.dmm diff --git a/maps/map_files/Kutjevo/Kutjevo.dmm b/maps/map_files/Kutjevo/Kutjevo.dmm index a79ef352f9..eb5f1afaba 100644 --- a/maps/map_files/Kutjevo/Kutjevo.dmm +++ b/maps/map_files/Kutjevo/Kutjevo.dmm @@ -2534,6 +2534,14 @@ icon = 'icons/turf/floors/desert_water_toxic.dmi' }, /area/kutjevo/interior/oob) +"dtV" = ( +/obj/structure/machinery/blackbox_recorder, +/obj/item/prop/almayer/flight_recorder/colony{ + pixel_x = 10; + pixel_y = 10 + }, +/turf/open/floor/kutjevo/grey/plate, +/area/kutjevo/interior/complex/botany/east_tech) "duu" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ name = "\improper South Power Shutters" @@ -17217,6 +17225,12 @@ /obj/structure/barricade/wooden, /turf/open/floor/kutjevo/colors/red/tile, /area/kutjevo/interior/complex/botany) +"xPU" = ( +/obj/effect/landmark/nightmare{ + insert_tag = "communications" + }, +/turf/open/auto_turf/sand/layer1, +/area/kutjevo/exterior/construction) "xQz" = ( /turf/open/floor/kutjevo/colors/cyan/inner_corner{ dir = 1 @@ -39694,7 +39708,7 @@ xWK bKH xWK xWK -xWK +xPU xWK jhx bKH @@ -40558,7 +40572,7 @@ hws qwg vcY jhS -htT +dtV dkE tfx dkE diff --git a/maps/map_files/Kutjevo/sprinkles/35.communications.dmm b/maps/map_files/Kutjevo/sprinkles/35.communications.dmm new file mode 100644 index 0000000000..235f370b43 --- /dev/null +++ b/maps/map_files/Kutjevo/sprinkles/35.communications.dmm @@ -0,0 +1,549 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aA" = ( +/obj/structure/girder/displaced, +/obj/effect/decal/cleanable/blood/oil, +/turf/open/auto_turf/sand/layer0, +/area/template_noop) +"cm" = ( +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 8 + }, +/area/template_noop) +"cL" = ( +/obj/item/clothing/suit/storage/hazardvest/yellow, +/turf/open/floor/kutjevo/tan, +/area/template_noop) +"cW" = ( +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"di" = ( +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 1 + }, +/area/template_noop) +"dl" = ( +/obj/structure/girder/displaced, +/obj/item/stack/sheet/metal, +/turf/open/auto_turf/sand/layer0, +/area/template_noop) +"gD" = ( +/obj/item/stack/rods, +/obj/item/tool/warning_cone, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"ix" = ( +/obj/item/tool/warning_cone, +/obj/item/paper/crumpled{ + pixel_x = 5; + pixel_y = -8 + }, +/obj/item/paper/crumpled{ + pixel_x = -4; + pixel_y = 14 + }, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"lD" = ( +/obj/structure/machinery/door_display{ + desc = "A work schedule monitor. It appears to be broken."; + name = "Schedule Monitor" + }, +/turf/closed/wall/kutjevo/colony, +/area/template_noop) +"lZ" = ( +/obj/structure/bed/chair{ + dir = 4; + pixel_x = 4; + pixel_y = 5 + }, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"mv" = ( +/obj/structure/girder, +/turf/open/floor/plating/kutjevo, +/area/template_noop) +"nn" = ( +/obj/structure/machinery/constructable_frame, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"oB" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/prop/almayer/computer/PC{ + dir = 8; + layer = 2.8 + }, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"oK" = ( +/obj/structure/machinery/photocopier, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"oU" = ( +/obj/structure/machinery/light, +/obj/structure/machinery/message_server, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"pP" = ( +/obj/structure/largecrate/random{ + pixel_y = 19; + layer = 3.02 + }, +/obj/structure/largecrate/random{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/structure/barricade/handrail/kutjevo{ + layer = 3.1 + }, +/obj/structure/barricade/handrail/kutjevo{ + dir = 4 + }, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"qp" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ + req_one_access = null + }, +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 1 + }, +/area/template_noop) +"qI" = ( +/obj/structure/window/framed/kutjevo, +/turf/open/space/basic, +/area/template_noop) +"qM" = ( +/obj/structure/machinery/light, +/obj/effect/decal/cleanable/blood/oil, +/obj/item/tool/warning_cone, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"rm" = ( +/obj/structure/surface/rack, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"ry" = ( +/obj/item/stack/rods, +/obj/structure/fence, +/turf/open/auto_turf/sand/layer1, +/area/template_noop) +"rG" = ( +/obj/item/stack/rods, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"rP" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"sQ" = ( +/obj/effect/decal/cleanable/blood, +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 1 + }, +/area/template_noop) +"uS" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/flashlight/lamp/on{ + pixel_x = 9; + pixel_y = 15; + layer = 3.04 + }, +/obj/item/clipboard{ + pixel_x = -6 + }, +/obj/item/tool/pen/blue/clicky{ + pixel_x = 9 + }, +/obj/item/paper_bin{ + pixel_x = 9; + pixel_y = 3 + }, +/obj/item/paper{ + info = "It has been three weeks since I was relocated to the 'finished' comms office. Me and Paul have been trying to work with this infernal racket going on, but by all that's holy I can't think- let alone recalibrate the new computers. Speaking of, these new computers are all fine and dandy but the sensor uplink tower still hasn't been setup properly after the accident with the apprentice, you know, the one that piled up those debris filled trash bags by Paul's 'desk' and then left. Anyway, like you said the builders didn't lay down the protective matting for the new flooring so there's dirt everywhere. For your sake Jeff, I hope your holiday doesn't end too soon, you still don't even have a desk yet."; + pixel_x = -5; + icon_state = "paper_words"; + name = "I should have gone on holiday" + }, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"wh" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/auto_turf/sand/layer0, +/area/template_noop) +"wC" = ( +/obj/structure/surface/rack, +/obj/item/notepad/blue, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"wO" = ( +/obj/structure/filingcabinet{ + density = 0; + layer = 3.0; + pixel_x = 8; + pixel_y = 18 + }, +/obj/structure/filingcabinet/chestdrawer{ + density = 0; + pixel_x = -8; + pixel_y = 18 + }, +/obj/structure/prop/rock{ + pixel_x = -8; + pixel_y = -5 + }, +/obj/structure/prop/rock{ + layer = 3.1; + pixel_y = 3 + }, +/obj/structure/prop/rock{ + pixel_x = 5; + pixel_y = -5 + }, +/obj/structure/flora/pottedplant/random/unanchored{ + pixel_y = 16; + layer = 3.3 + }, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"yQ" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/machinery/power/apc/weak{ + dir = 1 + }, +/obj/structure/surface/rack, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"zb" = ( +/turf/open/floor/kutjevo/tan/grey_edge, +/area/template_noop) +"zh" = ( +/obj/structure/surface/table/almayer, +/obj/effect/spawner/random/tool, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"Af" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 4 + }, +/area/template_noop) +"Ca" = ( +/obj/structure/window/framed/kutjevo, +/obj/structure/barricade/handrail/kutjevo{ + layer = 3.1 + }, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"Ci" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 1 + }, +/area/template_noop) +"DY" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ + dir = 1; + req_one_access = null + }, +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 4 + }, +/area/template_noop) +"EK" = ( +/obj/structure/window/framed/kutjevo, +/turf/open/floor/plating/kutjevo, +/area/template_noop) +"GH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/paper/crumpled{ + pixel_x = -4; + pixel_y = 14 + }, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"IR" = ( +/obj/item/paper/crumpled, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"Jg" = ( +/obj/effect/spawner/random/toolbox, +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 4 + }, +/area/template_noop) +"Jz" = ( +/obj/item/stack/sheet/metal, +/obj/item/stack/rods, +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 4 + }, +/area/template_noop) +"Ks" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"KC" = ( +/obj/structure/bed/chair/comfy{ + dir = 1; + pixel_y = 11 + }, +/obj/item/paper/crumpled{ + pixel_x = -12; + pixel_y = 14 + }, +/obj/item/paper/crumpled{ + pixel_x = -5; + pixel_y = -2 + }, +/obj/item/paper/crumpled{ + pixel_x = 5; + pixel_y = -8 + }, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"KD" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ + dir = 1; + req_one_access = null + }, +/turf/closed/wall/kutjevo/colony, +/area/template_noop) +"LG" = ( +/obj/structure/fence, +/turf/open/auto_turf/sand/layer0, +/area/template_noop) +"LO" = ( +/obj/effect/decal/cleanable/blood/drip, +/obj/item/prop/alien/hugger, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"LR" = ( +/obj/structure/prop/almayer/computers/sensor_computer2, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"MV" = ( +/obj/structure/largecrate/random{ + pixel_y = 1 + }, +/obj/structure/largecrate/random{ + pixel_y = 19; + layer = 3.02; + pixel_x = -3 + }, +/obj/structure/barricade/handrail/kutjevo{ + layer = 3.1 + }, +/obj/structure/barricade/handrail/kutjevo{ + dir = 4 + }, +/obj/structure/barricade/handrail/kutjevo{ + dir = 8 + }, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"Nr" = ( +/obj/effect/decal/cleanable/blood/drip, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"Or" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"Pp" = ( +/obj/structure/prop/almayer/computers/sensor_computer1, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"Re" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/tool/warning_cone, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"Rj" = ( +/obj/item/stack/rods, +/obj/effect/decal/cleanable/blood/oil, +/obj/item/tool/warning_cone, +/turf/open/auto_turf/sand/layer0, +/area/template_noop) +"RK" = ( +/turf/closed/wall/kutjevo/colony, +/area/template_noop) +"SZ" = ( +/turf/closed/wall/kutjevo/colony/reinforced, +/area/template_noop) +"Ul" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ + req_one_access = null + }, +/turf/open/floor/kutjevo/tan/grey_edge, +/area/template_noop) +"Um" = ( +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 4 + }, +/area/template_noop) +"Vc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/tool/warning_cone, +/turf/open/auto_turf/sand/layer0, +/area/template_noop) +"Xi" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/kutjevo/tan/grey_edge, +/area/template_noop) +"Xq" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 8 + }, +/area/template_noop) +"XS" = ( +/obj/structure/fence{ + desc = "A large metal mesh strewn between two poles. A 'Keep Out! Under Construction' sign dangles from one of the fence posts." + }, +/turf/open/auto_turf/sand/layer1, +/area/template_noop) +"Yo" = ( +/obj/item/clothing/head/hardhat/orange, +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 1 + }, +/area/template_noop) +"YG" = ( +/obj/structure/machinery/power/port_gen/pacman, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) +"YO" = ( +/obj/structure/machinery/door/airlock/almayer/maint/colony/autoname{ + dir = 1; + req_one_access = null + }, +/turf/open/floor/kutjevo/tan/grey_edge{ + dir = 8 + }, +/area/template_noop) +"Zf" = ( +/obj/structure/window/framed/kutjevo, +/obj/structure/barricade/handrail/kutjevo{ + layer = 3 + }, +/turf/open/floor/kutjevo/grey/plate, +/area/template_noop) + +(1,1,1) = {" +SZ +RK +RK +RK +qp +Ul +RK +RK +RK +RK +RK +RK +"} +(2,1,1) = {" +RK +pP +cW +cW +Ci +zb +Ca +Pp +oK +nn +oU +RK +"} +(3,1,1) = {" +KD +Nr +Ks +cW +di +Xi +Zf +uS +KC +IR +Or +RK +"} +(4,1,1) = {" +SZ +MV +Or +rP +Yo +zb +lD +LR +ix +GH +Re +EK +"} +(5,1,1) = {" +qI +wC +rG +LO +sQ +cL +cm +Xq +Xq +cm +cm +YO +"} +(6,1,1) = {" +qI +rm +lZ +nn +Or +Af +Um +Jg +Um +Jz +wh +DY +"} +(7,1,1) = {" +SZ +yQ +oB +wO +gD +zh +Rj +dl +YG +Vc +qM +RK +"} +(8,1,1) = {" +SZ +mv +RK +RK +aA +RK +LG +LG +mv +ry +XS +mv +"} From 30b578c1003c142758526f98aca9991659a678aa Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Mon, 6 Nov 2023 04:31:38 +0000 Subject: [PATCH 06/60] Automatic changelog for PR #4572 [ci skip] --- html/changelogs/AutoChangeLog-pr-4572.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4572.yml diff --git a/html/changelogs/AutoChangeLog-pr-4572.yml b/html/changelogs/AutoChangeLog-pr-4572.yml new file mode 100644 index 0000000000..5dd4e07a32 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4572.yml @@ -0,0 +1,5 @@ +author: "TopHatPenguin" +delete-after: True +changes: + - rscadd: "Adds a mostly built communications office nightmare insert to Kutjevo which attaches onto the sensor tower." + - rscadd: "Re-adds the Kutjevo blackbox." \ No newline at end of file From 3a28b7a3f2138d7ee2c01da03547cb99e06d0f3a Mon Sep 17 00:00:00 2001 From: tool mind <106038874+toolmind@users.noreply.github.com> Date: Sun, 5 Nov 2023 20:52:39 -0600 Subject: [PATCH 07/60] New Varadero Survivor Outfit Changes (#4819) # About the pull request This PR adds new equipment presets for the New Varadero survivors, replacing some of their uniforms with United American utility jumpsuits. The Researcher preset has been tweaked to be less mismatched and out of place with the outdated virologist's lab coat and purple scrubs. It also changes the Vehicle Operator's job title to Cargo Technician, but there's no changes for the skillset. This PR is solely visual changes, and includes no balance changes. # Explain why it's good for the game New Varadero is a UA outpost, so it makes sense that the people working and living there would have UA jumpsuits. It also gives the outfits some use outside of just being in the synth vendor, and makes some of the New Varadero survivors somewhat more visually distinct from the ones on LV, which New Varadero copies most of its presets from. # Testing Photographs and Procedure
Screenshots & Videos ![image](https://github.com/cmss13-devs/cmss13/assets/106038874/3ba45ac0-daee-47cc-a75b-2c2377927890) Left to Right - Cargo Technician, Medical Technician, Engineer, Researcher
# Changelog :cl:IowaPotatoFarmer add: Added new survivor presets for New Varadero to make them more visually distinct and unique to the map. /:cl: --- .../new_varadero/preset_new_varadero.dm | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/code/modules/gear_presets/survivors/new_varadero/preset_new_varadero.dm b/code/modules/gear_presets/survivors/new_varadero/preset_new_varadero.dm index f9af043aac..daa3a8ec01 100644 --- a/code/modules/gear_presets/survivors/new_varadero/preset_new_varadero.dm +++ b/code/modules/gear_presets/survivors/new_varadero/preset_new_varadero.dm @@ -17,10 +17,10 @@ assignment = "New Varadero Medical Technician" /datum/equipment_preset/survivor/doctor/nv/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/synthetic/utility(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/storage/firstaid/adv(new_human.back), WEAR_IN_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/boonie(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap(new_human), WEAR_HEAD) ..() /datum/equipment_preset/survivor/scientist/nv @@ -28,13 +28,14 @@ assignment = "New Varadero Researcher" /datum/equipment_preset/survivor/scientist/nv/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/purple(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/researcher(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/boonie(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/latex(new_human), WEAR_HANDS) new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(new_human), WEAR_FACE) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/science(new_human), WEAR_EYES) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/chem(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/purple(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/laceup(new_human), WEAR_FEET) ..() /datum/equipment_preset/survivor/interstellar_commerce_commission_liason/nv @@ -51,15 +52,16 @@ ..() /datum/equipment_preset/survivor/trucker/nv - name = "Survivor - New Varadero Vehicle Operator" - assignment = "New Varadero Vehicle Operator" + name = "Survivor - New Varadero Cargo Technician" + assignment = "New Varadero Cargo Technician" /datum/equipment_preset/survivor/trucker/nv/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/cargo(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist/wy_davisone(new_human), WEAR_BODY) new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/meson(new_human), WEAR_EYES) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/boonie(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/beanie/tan(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel/tech(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/brown(new_human), WEAR_HANDS) ..() /datum/equipment_preset/survivor/engineer/nv @@ -67,11 +69,11 @@ assignment = "New Varadero Engineer" /datum/equipment_preset/survivor/engineer/nv/load_gear(mob/living/carbon/human/new_human) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/rank/dispatch(new_human), WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/under/colonist/ua_civvies(new_human), WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/blue(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel/eng(new_human), WEAR_BACK) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/orange(new_human), WEAR_HEAD) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/dblue(new_human), WEAR_HEAD) ..() /datum/equipment_preset/survivor/chaplain/nv From b9626316b81e5fa11728f812951149a5e7c895c5 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Mon, 6 Nov 2023 04:53:32 +0000 Subject: [PATCH 08/60] Automatic changelog for PR #4819 [ci skip] --- html/changelogs/AutoChangeLog-pr-4819.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4819.yml diff --git a/html/changelogs/AutoChangeLog-pr-4819.yml b/html/changelogs/AutoChangeLog-pr-4819.yml new file mode 100644 index 0000000000..48abe60728 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4819.yml @@ -0,0 +1,4 @@ +author: "IowaPotatoFarmer" +delete-after: True +changes: + - rscadd: "Added new survivor presets for New Varadero to make them more visually distinct and unique to the map." \ No newline at end of file From 7628cf9cf8ab20f357cf9f82b36642e47391f19d Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Mon, 6 Nov 2023 02:53:08 +0000 Subject: [PATCH 09/60] Automatic TGS DMAPI Update (#4850) This pull request updates the TGS DMAPI to the latest version. Please note any breaking or unimplemented changes before merging. Co-authored-by: tgstation-server --- code/__DEFINES/tgs.dm | 2 +- code/modules/tgs/core/datum.dm | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm index d468d60441..0cc106ec9c 100644 --- a/code/__DEFINES/tgs.dm +++ b/code/__DEFINES/tgs.dm @@ -1,6 +1,6 @@ // tgstation-server DMAPI -#define TGS_DMAPI_VERSION "6.6.1" +#define TGS_DMAPI_VERSION "6.6.2" // All functions and datums outside this document are subject to change with any version and should not be relied on. diff --git a/code/modules/tgs/core/datum.dm b/code/modules/tgs/core/datum.dm index de420a2a32..07ce3b6845 100644 --- a/code/modules/tgs/core/datum.dm +++ b/code/modules/tgs/core/datum.dm @@ -12,8 +12,13 @@ TGS_DEFINE_AND_SET_GLOBAL(tgs, null) src.version = version /datum/tgs_api/proc/TerminateWorld() - del(world) - sleep(1) // https://www.byond.com/forum/post/2894866 + while(TRUE) + TGS_DEBUG_LOG("About to terminate world. Tick: [world.time], sleep_offline: [world.sleep_offline]") + world.sleep_offline = FALSE // https://www.byond.com/forum/post/2894866 + del(world) + world.sleep_offline = FALSE // just in case, this is BYOND after all... + sleep(1) + TGS_DEBUG_LOG("BYOND DIDN'T TERMINATE THE WORLD!!! TICK IS: [world.time], sleep_offline: [world.sleep_offline]") /datum/tgs_api/latest parent_type = /datum/tgs_api/v5 From 18cd71a0f1f2ee1539499038125d31b03bf22e73 Mon Sep 17 00:00:00 2001 From: fira Date: Mon, 6 Nov 2023 03:55:45 +0100 Subject: [PATCH 10/60] Removes Unused Stuff (#4835) # About the pull request This just removes unused odds and ends that are still active in repo and we have to maintain. Check commit list for a detailed overview. What this basically means is it: - Removes some SS13 Machinery that is unused, mass drivers and such, making them props - Refactors some global-list backed subsystems to use GLOB - Removes some oldschool subsystems that can be integrated into processing subsystems - Removes completely unused stuff like SSxenocon - Removes SSfail_to_topic because it doesn't work on Linux hosts anyway # Explain why it's good for the game Less surface to maintain = better maintaining! # Testing Photographs and Procedure I just checked game didn't blow up when played. # Changelog :cl: del: Removed unused magnet and mass driver legacy SS13 machinery. /:cl: --- code/__DEFINES/subsystems.dm | 25 +- code/_globalvars/global_lists.dm | 3 - code/_globalvars/lists/object_lists.dm | 3 + .../configuration/configuration.dm | 17 - code/controllers/subsystem/admin.dm | 40 -- code/controllers/subsystem/disease.dm | 11 +- code/controllers/subsystem/fail_to_topic.dm | 81 ---- code/controllers/subsystem/fast_machinery.dm | 27 -- code/controllers/subsystem/htmlui.dm | 57 --- code/controllers/subsystem/midi.dm | 45 -- .../subsystem/processing/defprocess.dm | 5 + code/controllers/subsystem/smoke_system.dm | 31 -- code/controllers/subsystem/stamina.dm | 25 -- code/controllers/subsystem/stats_collector.dm | 17 - code/controllers/subsystem/teleporter.dm | 10 - code/controllers/subsystem/xenocon.dm | 18 - code/datums/disease.dm | 6 +- code/datums/diseases/advance/advance.dm | 4 +- code/datums/stamina/_stamina.dm | 6 +- .../colonialmarines/whiskey_outpost.dm | 3 - .../gamemodes/colonialmarines/xenovsxeno.dm | 3 - code/game/machinery/buttons.dm | 12 - code/game/machinery/computer/pod.dm | 160 +------ code/game/machinery/door_control.dm | 41 -- code/game/machinery/machinery.dm | 2 +- code/game/machinery/magnet.dm | 421 ------------------ code/game/machinery/mass_driver.dm | 32 +- .../objects/effects/effect_system/smoke.dm | 4 +- .../objects/items/circuitboards/computer.dm | 15 +- code/game/world.dm | 5 - code/modules/admin/verbs/debug.dm | 2 +- code/modules/client/client_procs.dm | 2 - code/modules/defenses/defenses.dm | 4 +- .../living/carbon/xenomorph/xeno_defines.dm | 1 - .../reagents/chemistry_machinery/pandemic.dm | 2 +- .../teleporters/teleporter_admin_verbs.dm | 2 +- .../modules/teleporters/teleporter_console.dm | 24 +- .../teleporters/teleporter_landmarks.dm | 32 +- colonialmarines.dme | 12 +- 39 files changed, 60 insertions(+), 1150 deletions(-) delete mode 100644 code/controllers/subsystem/admin.dm delete mode 100644 code/controllers/subsystem/fail_to_topic.dm delete mode 100644 code/controllers/subsystem/fast_machinery.dm delete mode 100644 code/controllers/subsystem/htmlui.dm delete mode 100644 code/controllers/subsystem/midi.dm create mode 100644 code/controllers/subsystem/processing/defprocess.dm delete mode 100644 code/controllers/subsystem/smoke_system.dm delete mode 100644 code/controllers/subsystem/stamina.dm delete mode 100644 code/controllers/subsystem/stats_collector.dm delete mode 100644 code/controllers/subsystem/teleporter.dm delete mode 100644 code/controllers/subsystem/xenocon.dm delete mode 100644 code/game/machinery/magnet.dm diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index 158c59aff3..ac9cfd3e12 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -109,36 +109,22 @@ // Subsystems shutdown in the reverse of the order they initialize in // The numbers just define the ordering, they are meaningless otherwise. -#define SS_INIT_TICKER_SPAWN 999 #define SS_INIT_INPUT 85 -#define SS_INIT_FAIL_TO_TOPIC 84 #define SS_INIT_TOPIC 83 #define SS_INIT_LOBBYART 82 -#define SS_INIT_RUST 30 #define SS_INIT_INFLUXDRIVER 28 -#define SS_INIT_SUPPLY_SHUTTLE 25 #define SS_INIT_GARBAGE 24 #define SS_INIT_EVENTS 23.5 -#define SS_INIT_JOB 23 #define SS_INIT_REDIS 22.5 #define SS_INIT_REAGENTS 22.1 #define SS_INIT_MAPPING 22 #define SS_INIT_NIGHTMARE 21.5 #define SS_INIT_TIMETRACK 21.1 #define SS_INIT_HUMANS 21 -#define SS_INIT_MAP 20 -#define SS_INIT_COMPONENT 19.5 #define SS_INIT_POWER 19 -#define SS_INIT_OBJECT 18 -#define SS_INIT_PIPENET 17.5 -#define SS_INIT_XENOARCH 17 -#define SS_INIT_MORE_INIT 16 -#define SS_INIT_AIR 15 -#define SS_INIT_TELEPORTER 13 #define SS_INIT_INFLUXMCSTATS 12 #define SS_INIT_INFLUXSTATS 11 #define SS_INIT_LIGHTING 10 -#define SS_INIT_DEFCON 9 #define SS_INIT_LAW 6 #define SS_INIT_FZ_TRANSITIONS 5 #define SS_INIT_PROJECTILES 4.1 @@ -152,12 +138,9 @@ #define SS_INIT_RADIO 2 #define SS_INIT_TIMER 100 #define SS_INIT_UNSPECIFIED 0 -#define SS_INIT_EMERGENCY_SHUTTLE -19 #define SS_INIT_ASSETS -20 #define SS_INIT_TICKER -21 #define SS_INIT_VOTE -23 -#define SS_INIT_FINISH -24 -#define SS_INIT_ADMIN -26 #define SS_INIT_DATABASE -27 #define SS_INIT_ENTITYMANAGER -28 #define SS_INIT_PLAYTIME -29 @@ -176,7 +159,6 @@ #define SS_PRIORITY_SOUND 250 #define SS_PRIORITY_TICKER 200 #define SS_PRIORITY_NIGHTMARE 180 -#define SS_PRIORITY_MAPVIEW 170 #define SS_PRIORITY_QUADTREE 160 #define SS_PRIORITY_CHAT 155 #define SS_PRIORITY_STATPANEL 154 @@ -194,20 +176,16 @@ #define SS_PRIORITY_VOTE 110 #define SS_PRIORITY_FAST_OBJECTS 105 #define SS_PRIORITY_OBJECTS 104 -#define SS_PRIORITY_FACEHUGGERS 100 #define SS_PRIORITY_DECORATOR 99 #define SS_PRIORITY_POWER 95 #define SS_PRIORITY_EFFECTS 92 #define SS_PRIORITY_MACHINERY 90 #define SS_PRIORITY_FZ_TRANSITIONS 88 -#define SS_PRIORITY_PIPENET 85 #define SS_PRIORITY_ROUND_RECORDING 83 #define SS_PRIORITY_SHUTTLE 80 -#define SS_PRIORITY_TELEPORTER 75 #define SS_PRIORITY_EVENT 65 #define SS_PRIORITY_DISEASE 60 -#define SS_PRIORITY_FAST_MACHINERY 55 -#define SS_PRIORITY_MIDI 40 +#define SS_PRIORITY_DEFENSES 55 #define SS_PRIORITY_ENTITY 37 #define SS_PRIORITY_DEFCON 35 #define SS_PRIORITY_ACID_PILLAR 34 @@ -226,7 +204,6 @@ #define SS_PRIORITY_INFLUXSTATS 8 #define SS_PRIORITY_PLAYTIME 5 #define SS_PRIORITY_PERFLOGGING 4 -#define SS_PRIORITY_CORPSESPAWNER 3 #define SS_PRIORITY_GARBAGE 2 #define SS_PRIORITY_INACTIVITY 1 #define SS_PRIORITY_ADMIN 0 diff --git a/code/_globalvars/global_lists.dm b/code/_globalvars/global_lists.dm index 36058a44fc..1e1e9cefd5 100644 --- a/code/_globalvars/global_lists.dm +++ b/code/_globalvars/global_lists.dm @@ -1,6 +1,3 @@ - -var/list/unansweredAhelps = list() //This feels inefficient, but I can't think of a better way. Stores the message indexed by CID - GLOBAL_LIST_EMPTY(PressFaxes) GLOBAL_LIST_EMPTY(WYFaxes) //Departmental faxes GLOBAL_LIST_EMPTY(USCMFaxes) diff --git a/code/_globalvars/lists/object_lists.dm b/code/_globalvars/lists/object_lists.dm index 3a41762553..3db9bd28cb 100644 --- a/code/_globalvars/lists/object_lists.dm +++ b/code/_globalvars/lists/object_lists.dm @@ -31,3 +31,6 @@ GLOBAL_LIST_EMPTY_TYPED(all_multi_vehicles, /obj/vehicle/multitile) GLOBAL_LIST_EMPTY_TYPED(lifeboat_almayer_docks, /obj/docking_port/stationary/lifeboat_dock) GLOBAL_LIST_EMPTY_TYPED(lifeboat_doors, /obj/structure/machinery/door/airlock/multi_tile/almayer/dropshiprear/lifeboat/blastdoor) + +GLOBAL_LIST_EMPTY_TYPED(teleporters, /datum/teleporter) +GLOBAL_LIST_EMPTY(teleporters_by_id) diff --git a/code/controllers/configuration/configuration.dm b/code/controllers/configuration/configuration.dm index 0066fee5d2..147f57fcb1 100644 --- a/code/controllers/configuration/configuration.dm +++ b/code/controllers/configuration/configuration.dm @@ -20,7 +20,6 @@ var/policy var/static/regex/ic_filter_regex - var/list/fail_to_topic_whitelisted_ips var/is_loaded = FALSE @@ -55,7 +54,6 @@ loadmaplist(CONFIG_GROUND_MAPS_FILE, GROUND_MAP) loadmaplist(CONFIG_SHIP_MAPS_FILE, SHIP_MAP) LoadChatFilter() - LoadTopicRateWhitelist() is_loaded = TRUE @@ -337,18 +335,3 @@ /datum/controller/configuration/proc/DelayedMessageAdmins(text) addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(message_admins), text), 0) -/datum/controller/configuration/proc/LoadTopicRateWhitelist() - LAZYINITLIST(fail_to_topic_whitelisted_ips) - if(!fexists("[directory]/topic_rate_limit_whitelist.txt")) - log_config("Error 404: topic_rate_limit_whitelist.txt not found!") - return - - log_config("Loading config file topic_rate_limit_whitelist.txt...") - - for(var/line in file2list("[directory]/topic_rate_limit_whitelist.txt")) - if(!line) - continue - if(findtextEx(line, "#", 1, 2)) - continue - - fail_to_topic_whitelisted_ips[line] = 1 diff --git a/code/controllers/subsystem/admin.dm b/code/controllers/subsystem/admin.dm deleted file mode 100644 index 8aab64b048..0000000000 --- a/code/controllers/subsystem/admin.dm +++ /dev/null @@ -1,40 +0,0 @@ -SUBSYSTEM_DEF(admin) - name = "Admin" - wait = 5 MINUTES - flags = SS_NO_INIT | SS_KEEP_TIMING - runlevels = RUNLEVELS_DEFAULT|RUNLEVEL_LOBBY - var/list/currentrun = list() - var/times_repeated = 0 - -/datum/controller/subsystem/admin/stat_entry(msg) - msg = "P:[unansweredAhelps.len]" - return ..() - -/datum/controller/subsystem/admin/fire(resumed = FALSE) - if (!resumed) - currentrun = unansweredAhelps.Copy() - - if(!currentrun.len) - times_repeated = 0 - return - - var/msg = "Unheard Ahelps (Repeated [times_repeated] times):" - - while (currentrun.len) - var/ahelp_msg = currentrun[currentrun.len] - currentrun.len-- - - if (!ahelp_msg) - continue - - msg += unansweredAhelps[ahelp_msg] + "\n" - - if (MC_TICK_CHECK) - return - - for(var/client/C in GLOB.admins) - if(C && C.admin_holder && (C.admin_holder.rights & R_MOD)) - if(C.prefs.toggles_sound & SOUND_ADMINHELP) - sound_to(C, 'sound/effects/adminhelp_new.ogg') - to_chat(C, msg) - times_repeated++ diff --git a/code/controllers/subsystem/disease.dm b/code/controllers/subsystem/disease.dm index 25200cce11..b98187ca25 100644 --- a/code/controllers/subsystem/disease.dm +++ b/code/controllers/subsystem/disease.dm @@ -1,22 +1,19 @@ -var/list/active_diseases = list() - - SUBSYSTEM_DEF(disease) name = "Disease" wait = 2 SECONDS flags = SS_NO_INIT | SS_KEEP_TIMING priority = SS_PRIORITY_DISEASE - var/list/currentrun = list() + var/list/datum/disease/all_diseases = list() + var/list/datum/disease/currentrun = list() /datum/controller/subsystem/disease/stat_entry(msg) - msg = "P:[active_diseases.len]" + msg = "P:[all_diseases.len]" return ..() - /datum/controller/subsystem/disease/fire(resumed = FALSE) if (!resumed) - currentrun = active_diseases.Copy() + currentrun = all_diseases.Copy() while (currentrun.len) var/datum/disease/D = currentrun[currentrun.len] diff --git a/code/controllers/subsystem/fail_to_topic.dm b/code/controllers/subsystem/fail_to_topic.dm deleted file mode 100644 index 45674683a4..0000000000 --- a/code/controllers/subsystem/fail_to_topic.dm +++ /dev/null @@ -1,81 +0,0 @@ -SUBSYSTEM_DEF(fail_to_topic) - name = "Fail to Topic" - init_order = SS_INIT_FAIL_TO_TOPIC - flags = SS_BACKGROUND - runlevels = ALL - - var/list/rate_limiting = list() - var/list/fail_counts = list() - var/list/active_bans = list() - var/list/currentrun = list() - - var/rate_limit - var/max_fails - var/enabled = FALSE - -/datum/controller/subsystem/fail_to_topic/Initialize(timeofday) - rate_limit = ((CONFIG_GET(number/topic_rate_limit)) SECONDS) - max_fails = CONFIG_GET(number/topic_max_fails) - enabled = CONFIG_GET(flag/topic_enabled) - - if (world.system_type == UNIX && enabled) - enabled = FALSE - WARNING("fail_to_topic subsystem disabled. UNIX is not supported.") - return SS_INIT_NO_NEED - - if (!enabled) - can_fire = FALSE - return SS_INIT_NO_NEED - - return SS_INIT_SUCCESS - -/datum/controller/subsystem/fail_to_topic/fire(resumed = FALSE) - if(!resumed) - currentrun = rate_limiting.Copy() - //cache for sanic speed (lists are references anyways) - var/list/current_run = currentrun - - while(current_run.len) - var/ip = current_run[current_run.len] - var/last_attempt = current_run[ip] - current_run.len-- - - // last_attempt list housekeeping - if(world.time - last_attempt > rate_limit) - rate_limiting -= ip - fail_counts -= ip - - if(MC_TICK_CHECK) - return - -/datum/controller/subsystem/fail_to_topic/proc/IsRateLimited(ip) - if(!enabled) - return FALSE - - var/last_attempt = rate_limiting[ip] - - if (config.fail_to_topic_whitelisted_ips[ip]) - return FALSE - - if (active_bans[ip]) - return TRUE - - rate_limiting[ip] = world.time - - if (isnull(last_attempt)) - return FALSE - - if (world.time - last_attempt > rate_limit) - fail_counts -= ip - return FALSE - else - var/failures = fail_counts[ip] - - if (isnull(failures)) - fail_counts[ip] = 1 - return TRUE - else if (failures > max_fails) - return TRUE - else - fail_counts[ip] = failures + 1 - return TRUE diff --git a/code/controllers/subsystem/fast_machinery.dm b/code/controllers/subsystem/fast_machinery.dm deleted file mode 100644 index 8211b3b5e3..0000000000 --- a/code/controllers/subsystem/fast_machinery.dm +++ /dev/null @@ -1,27 +0,0 @@ -var/list/fast_machines = list() - - -SUBSYSTEM_DEF(fast_machinery) - name = "Fast Machinery" - wait = 0.7 SECONDS - priority = SS_PRIORITY_FAST_MACHINERY - flags = SS_NO_INIT - var/list/currentrun = list() - -/datum/controller/subsystem/fast_machinery/stat_entry(msg) - msg = "FP:[fast_machines.len]" - return ..() - -/datum/controller/subsystem/fast_machinery/fire(resumed = FALSE) - if(!resumed) - currentrun = fast_machines.Copy() - while(currentrun.len) - var/obj/structure/machinery/M = currentrun[currentrun.len] - currentrun.len-- - - if(QDELETED(M)) - continue - - M.process() - if(MC_TICK_CHECK) - return diff --git a/code/controllers/subsystem/htmlui.dm b/code/controllers/subsystem/htmlui.dm deleted file mode 100644 index 5dc885abc6..0000000000 --- a/code/controllers/subsystem/htmlui.dm +++ /dev/null @@ -1,57 +0,0 @@ -// What in the name of god is this? -// You'd think it'd be some form of process for the HTML interface module. -// But it isn't? -// It's some form of proc queue but ??? -// Does anything even *use* this? - -SUBSYSTEM_DEF(html_ui) - name = "HTMLUI" - wait = 1.7 SECONDS - flags = SS_NO_INIT - runlevels = RUNLEVELS_DEFAULT|RUNLEVEL_LOBBY - var/list/update = list() - -/datum/controller/subsystem/html_ui/fire(resumed = FALSE) - if (update.len) - var/list/L = list() - var/key - - for (var/datum/procqueue_item/item in update) - key = "[item.ref]_[item.procname]" - - if (item.args) - key += "(" - var/first = 1 - for (var/a in item.args) - if (!first) - key += "," - key += "[a]" - first = 0 - key += ")" - - if (!(key in L)) - if (item.args) - call(item.ref, item.procname)(arglist(item.args)) - else - call(item.ref, item.procname)() - - L.Add(key) - - update.Cut() - - -/datum/controller/subsystem/html_ui/proc/queue(ref, procname, ...) - var/datum/procqueue_item/item = new - item.ref = ref - item.procname = procname - - if (args.len > 2) - item.args = args.Copy(3) - - update.Insert(1, item) - - -/datum/procqueue_item - var/ref - var/procname - var/list/args diff --git a/code/controllers/subsystem/midi.dm b/code/controllers/subsystem/midi.dm deleted file mode 100644 index 158d67cf25..0000000000 --- a/code/controllers/subsystem/midi.dm +++ /dev/null @@ -1,45 +0,0 @@ -/datum/midi_record - var/target - var/midi - -SUBSYSTEM_DEF(midi) - name = "Midi" - wait = 2 SECONDS - flags = SS_NO_INIT|SS_BACKGROUND - runlevels = RUNLEVELS_DEFAULT|RUNLEVEL_LOBBY - priority = SS_PRIORITY_MIDI - - var/list/datum/midi_record/prepped_midis = list() - - var/list/datum/midi_record/currentrun = list() - - -/datum/controller/subsystem/midi/stat_entry(msg) - msg = "MR:[prepped_midis.len]" - return ..() - - -/datum/controller/subsystem/midi/fire(resumed = FALSE) - if (!resumed) - currentrun = prepped_midis - prepped_midis = list() - - while (currentrun.len) - var/datum/midi_record/E = currentrun[currentrun.len] - currentrun.len-- - - if (!E) - continue - - E.target << E.midi - - if (MC_TICK_CHECK) - return - -/datum/controller/subsystem/midi/proc/queue(target, midi) - if(!prepped_midis) - prepped_midis = list() - var/datum/midi_record/MR = new() - MR.target = target - MR.midi = midi - prepped_midis.Add(MR) diff --git a/code/controllers/subsystem/processing/defprocess.dm b/code/controllers/subsystem/processing/defprocess.dm new file mode 100644 index 0000000000..3701a0617a --- /dev/null +++ b/code/controllers/subsystem/processing/defprocess.dm @@ -0,0 +1,5 @@ +PROCESSING_SUBSYSTEM_DEF(defprocess) + name = "Defenses Processing" + priority = SS_PRIORITY_DEFENSES + flags = SS_NO_INIT + wait = 0.7 SECONDS diff --git a/code/controllers/subsystem/smoke_system.dm b/code/controllers/subsystem/smoke_system.dm deleted file mode 100644 index 2010687fcb..0000000000 --- a/code/controllers/subsystem/smoke_system.dm +++ /dev/null @@ -1,31 +0,0 @@ -var/list/active_smoke_effects = list() - - -SUBSYSTEM_DEF(smoke_effects) - name = "Smoke Effects" - wait = 1 SECONDS - flags = SS_NO_INIT | SS_KEEP_TIMING - priority = SS_PRIORITY_OBJECTS - - var/list/currentrun = list() - -/datum/controller/subsystem/smoke_effects/stat_entry(msg) - msg = "P:[active_smoke_effects.len]" - return ..() - - -/datum/controller/subsystem/smoke_effects/fire(resumed = FALSE) - if(!resumed) - currentrun = active_smoke_effects.Copy() - - while(currentrun.len) - var/obj/effect/particle_effect/smoke/E = currentrun[currentrun.len] - currentrun.len-- - - if(!E || QDELETED(E)) - continue - - E.process() - - if(MC_TICK_CHECK) - return diff --git a/code/controllers/subsystem/stamina.dm b/code/controllers/subsystem/stamina.dm deleted file mode 100644 index 84d5b4038c..0000000000 --- a/code/controllers/subsystem/stamina.dm +++ /dev/null @@ -1,25 +0,0 @@ -var/global/list/active_staminas = list() - -SUBSYSTEM_DEF(stamina) - name = "Stamina" - wait = 2 SECONDS - priority = SS_PRIORITY_STAMINA - flags = SS_NO_INIT - var/list/currentrun = list() - - -/datum/controller/subsystem/stamina/fire(resumed = FALSE) - if (!resumed) - currentrun = active_staminas.Copy() - - while (currentrun.len) - var/datum/stamina/S = currentrun[currentrun.len] - currentrun.len-- - - if (!S || QDELETED(S)) - continue - - S.process() - - if (MC_TICK_CHECK) - return diff --git a/code/controllers/subsystem/stats_collector.dm b/code/controllers/subsystem/stats_collector.dm deleted file mode 100644 index de66e3b2c6..0000000000 --- a/code/controllers/subsystem/stats_collector.dm +++ /dev/null @@ -1,17 +0,0 @@ -/// Collects simple round statistics periodically -SUBSYSTEM_DEF(stats_collector) - name = "Round Stats" - wait = 30 SECONDS - priority = SS_PRIORITY_PAGER_STATUS - runlevels = RUNLEVELS_DEFAULT | RUNLEVEL_LOBBY - flags = SS_KEEP_TIMING | SS_NO_INIT - - var/stat_ticks = 0 - var/players_counter = 0 - -/datum/controller/subsystem/stats_collector/fire(resumed = FALSE) - players_counter += length(GLOB.clients) - stat_ticks++ - -/datum/controller/subsystem/stats_collector/proc/get_avg_players() - return players_counter / stat_ticks diff --git a/code/controllers/subsystem/teleporter.dm b/code/controllers/subsystem/teleporter.dm deleted file mode 100644 index b753bdb0d5..0000000000 --- a/code/controllers/subsystem/teleporter.dm +++ /dev/null @@ -1,10 +0,0 @@ -// Master teleporter controller. -SUBSYSTEM_DEF(teleporter) - name = "Teleporter" - wait = 5 SECONDS - init_order = SS_INIT_TELEPORTER - priority = SS_PRIORITY_TELEPORTER - flags = SS_NO_FIRE|SS_NO_INIT - - var/list/teleporters_by_id = list() // Associative list of teleporters by ID, master list of teleporters to process - var/list/teleporters = list() // Process list (identical contents to teleporters_by_id) diff --git a/code/controllers/subsystem/xenocon.dm b/code/controllers/subsystem/xenocon.dm deleted file mode 100644 index d16e59bd98..0000000000 --- a/code/controllers/subsystem/xenocon.dm +++ /dev/null @@ -1,18 +0,0 @@ -SUBSYSTEM_DEF(xenocon) - name = "XENOCON" - wait = 5 SECONDS - priority = SS_PRIORITY_INACTIVITY - flags = SS_NO_INIT - var/rewarded = FALSE - -/datum/controller/subsystem/xenocon/fire(resumed = FALSE) - if(rewarded) - return - - var/datum/hive_status/hive - for(var/hivenumber in GLOB.hive_datum) - hive = GLOB.hive_datum[hivenumber] - if(hive.xenocon_points >= XENOCON_THRESHOLD) - var/datum/emergency_call/em_call = new /datum/emergency_call/xenos/platoon() - em_call.activate() - rewarded = TRUE diff --git a/code/datums/disease.dm b/code/datums/disease.dm index 92986b668b..d2f466ebeb 100644 --- a/code/datums/disease.dm +++ b/code/datums/disease.dm @@ -131,7 +131,7 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease /datum/disease/process() if(!holder) - active_diseases -= src + SSdisease.all_diseases -= src return if(prob(65)) spread(holder) @@ -176,7 +176,7 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease /datum/disease/New(process=TRUE)//process = 1 - adding the object to global list. List is processed by master controller. cure_list = list(cure_id) // to add more cures, add more vars to this list in the actual disease's New() if(process) // Viruses in list are considered active. - active_diseases += src + SSdisease.all_diseases += src initial_spread = spread /datum/disease/proc/IsSame(datum/disease/D) @@ -191,5 +191,5 @@ var/list/diseases = typesof(/datum/disease) - /datum/disease /datum/disease/Destroy() affected_mob = null holder = null - active_diseases -= src + SSdisease.all_diseases -= src . = ..() diff --git a/code/datums/diseases/advance/advance.dm b/code/datums/diseases/advance/advance.dm index 6440c97343..ad4703ba65 100644 --- a/code/datums/diseases/advance/advance.dm +++ b/code/datums/diseases/advance/advance.dm @@ -391,7 +391,7 @@ var/list/advance_cures = list( D.AssignName(new_name) D.Refresh() - for(var/datum/disease/advance/AD in active_diseases) + for(var/datum/disease/advance/AD in SSdisease.all_diseases) AD.Refresh() for(var/mob/living/carbon/human/H in shuffle(GLOB.alive_mob_list.Copy())) @@ -409,7 +409,7 @@ var/list/advance_cures = list( /* /mob/verb/test() - for(var/datum/disease/D in active_diseases) + for(var/datum/disease/D in SSdisease.all_diseases) to_chat(src, "[D.name] - [D.holder]") */ diff --git a/code/datums/stamina/_stamina.dm b/code/datums/stamina/_stamina.dm index 36705e3be3..e233aaa816 100644 --- a/code/datums/stamina/_stamina.dm +++ b/code/datums/stamina/_stamina.dm @@ -37,13 +37,11 @@ current_stamina = Clamp(current_stamina - amount, 0, max_stamina) if(current_stamina < max_stamina) - if(!(src in active_staminas)) - active_staminas.Add(src) - + START_PROCESSING(SSobj, src) if(amount > 0) apply_rest_period(STAMINA_REST_PERIOD) else - active_staminas.Remove(src) + STOP_PROCESSING(SSobj, src) update_stamina_level() diff --git a/code/game/gamemodes/colonialmarines/whiskey_outpost.dm b/code/game/gamemodes/colonialmarines/whiskey_outpost.dm index 6669dc058e..9b3ef1df4c 100644 --- a/code/game/gamemodes/colonialmarines/whiskey_outpost.dm +++ b/code/game/gamemodes/colonialmarines/whiskey_outpost.dm @@ -152,9 +152,6 @@ spawn(0) //Deleting Almayer, for performance! SSitem_cleanup.delete_almayer() - if(SSxenocon) - //Don't need XENOCON - SSxenocon.wait = 30 MINUTES //PROCCESS diff --git a/code/game/gamemodes/colonialmarines/xenovsxeno.dm b/code/game/gamemodes/colonialmarines/xenovsxeno.dm index 5623295f19..a19c3e3582 100644 --- a/code/game/gamemodes/colonialmarines/xenovsxeno.dm +++ b/code/game/gamemodes/colonialmarines/xenovsxeno.dm @@ -79,9 +79,6 @@ spawn(0) //Deleting Almayer, for performance! SSitem_cleanup.delete_almayer() - if(SSxenocon) - //Don't need XENOCON - SSxenocon.wait = 30 MINUTES //////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////// diff --git a/code/game/machinery/buttons.dm b/code/game/machinery/buttons.dm index ee83c430c2..8d4b27778c 100644 --- a/code/game/machinery/buttons.dm +++ b/code/game/machinery/buttons.dm @@ -1,15 +1,3 @@ -/obj/structure/machinery/driver_button - name = "mass driver button" - icon = 'icons/obj/objects.dmi' - icon_state = "launcherbtt" - desc = "A remote control switch for a mass driver." - var/id = null - var/active = 0 - anchored = TRUE - use_power = USE_POWER_IDLE - idle_power_usage = 2 - active_power_usage = 4 - /obj/structure/machinery/ignition_switch name = "ignition switch" icon = 'icons/obj/objects.dmi' diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index f6adaa8edd..7ec97874bb 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -1,158 +1,8 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 - -/obj/structure/machinery/computer/pod - name = "Pod Launch Control" - desc = "A control for launching pods. Some people prefer firing Mechas." +// Legacy SS13 machinery turned into props +/obj/structure/machinery/computer/pod/old + name = "DoorMex Control Computer" + desc = "A control for launching pods." icon_state = "computer_generic" density = TRUE - circuit = /obj/item/circuitboard/computer/pod - var/id = 1 - var/obj/structure/machinery/mass_driver/connected = null - var/timing = 0 - var/time = 30 - var/title = "Mass Driver Controls" + circuit = /obj/item/circuitboard/computer/pod/old processing = TRUE - - -/obj/structure/machinery/computer/pod/New() - ..() - spawn( 5 ) - for(var/obj/structure/machinery/mass_driver/M in machines) - if(M.id == id) - connected = M - return - return - - -/obj/structure/machinery/computer/pod/proc/alarm() - if(inoperable()) - return - - if(!( connected )) - to_chat(viewers(null, null), "Cannot locate mass driver connector. Cancelling firing sequence!") - return - - for(var/obj/structure/machinery/door/poddoor/M in machines) - if(M.id == id) - M.open() - - sleep(20) - - for(var/obj/structure/machinery/mass_driver/M in machines) - if(M.id == id) - M.power = connected.power - M.drive() - - sleep(50) - for(var/obj/structure/machinery/door/poddoor/M in machines) - if(M.id == id) - M.close() - return - return - -/obj/structure/machinery/computer/pod/attack_remote(mob/user as mob) - return attack_hand(user) - -/obj/structure/machinery/computer/pod/attack_hand(mob/user as mob) - if(..()) - return - - var/dat = "[title]" - user.set_interaction(src) - if(connected) - var/d2 - if(timing) //door controls do not need timers. - d2 = "Stop Time Launch" - else - d2 = "Initiate Time Launch" - var/second = time % 60 - var/minute = (time - second) / 60 - dat += "
\nTimer System: [d2]\nTime Left: [minute ? "[minute]:" : null][second] - - + +" - var/temp = "" - var/list/L = list( 0.25, 0.5, 1, 2, 4, 8, 16 ) - for(var/t in L) - if(t == connected.power) - temp += "[t] " - else - temp += "[t] " - dat += "
\nPower Level: [temp]
\nFiring Sequence
\nTest Fire Driver
\nToggle Outer Door
" - else - dat += "
\nToggle Outer Door
" - dat += "

Close
" - show_browser(user, dat, "computer", "size=400x500") - add_fingerprint(usr) - return - - -/obj/structure/machinery/computer/pod/process() - if(!..()) - return - if(timing) - if(time > 0) - time = round(time) - 1 - else - alarm() - time = 0 - timing = 0 - updateDialog() - return - - -/obj/structure/machinery/computer/pod/Topic(href, href_list) - if(..()) - return - if((usr.contents.Find(src) || (in_range(src, usr) && istype(loc, /turf))) || (isRemoteControlling(usr))) - usr.set_interaction(src) - if(href_list["power"]) - var/t = text2num(href_list["power"]) - t = min(max(0.25, t), 16) - if(connected) - connected.power = t - if(href_list["alarm"]) - alarm() - if(href_list["drive"]) - for(var/obj/structure/machinery/mass_driver/M in machines) - if(M.id == id) - M.power = connected.power - M.drive() - - if(href_list["time"]) - timing = text2num(href_list["time"]) - if(href_list["tp"]) - var/tp = text2num(href_list["tp"]) - time += tp - time = min(max(round(time), 0), 120) - if(href_list["door"]) - for(var/obj/structure/machinery/door/poddoor/M in machines) - if(M.id == id) - if(M.density) - M.open() - else - M.close() - updateUsrDialog() - return - - - -/obj/structure/machinery/computer/pod/old - name = "DoorMex Control Computer" - title = "Door Controls" - -/obj/structure/machinery/computer/pod/old/syndicate - name = "ProComp Executive IIc" - desc = "The Syndicate operate on a tight budget. Operates external airlocks." - icon_state = "syndicomp" - title = "External Airlock Controls" - req_access = list(ACCESS_ILLEGAL_PIRATE) - -/obj/structure/machinery/computer/pod/old/syndicate/attack_hand(mob/user as mob) - if(!allowed(user)) - to_chat(user, SPAN_DANGER("Access Denied")) - return - else - ..() - -/obj/structure/machinery/computer/pod/old/swf - name = "Magix System IV" - icon_state = "wizard" - desc = "An arcane artifact that holds much magic. Running E-Knock 2.2: Sorceror's Edition" diff --git a/code/game/machinery/door_control.dm b/code/game/machinery/door_control.dm index 8be8609d60..8b73588f1d 100644 --- a/code/game/machinery/door_control.dm +++ b/code/game/machinery/door_control.dm @@ -150,47 +150,6 @@ else icon_state = initial(icon_state) + "0" -/obj/structure/machinery/driver_button/attack_remote(mob/user as mob) - return src.attack_hand(user) - -/obj/structure/machinery/driver_button/attackby(obj/item/W, mob/user as mob) - return src.attack_hand(user) - -/obj/structure/machinery/driver_button/attack_hand(mob/user as mob) - - src.add_fingerprint(usr) - if(inoperable()) - return - if(active) - return - add_fingerprint(user) - - use_power(5) - - active = 1 - icon_state = "launcheract" - - for(var/obj/structure/machinery/door/poddoor/M in machines) - if(M.id == src.id) - INVOKE_ASYNC(M, TYPE_PROC_REF(/obj/structure/machinery/door, open)) - - sleep(20) - - for(var/obj/structure/machinery/mass_driver/M in machines) - if(M.id == src.id) - M.drive() - - sleep(50) - - for(var/obj/structure/machinery/door/poddoor/M in machines) - if(M.id == src.id) - INVOKE_ASYNC(M, TYPE_PROC_REF(/obj/structure/machinery/door, close)) - - icon_state = "launcherbtt" - active = 0 - - return - // Controls elevator railings /obj/structure/machinery/door_control/railings name = "railing controls" diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index f4ad7a63ba..4ce295aa99 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -105,7 +105,7 @@ Class Procs: var/list/component_parts //list of all the parts used to build it, if made from certain kinds of frames. var/manual = 0 layer = OBJ_LAYER - var/machine_processing = 0 // whether the machine is busy and requires process() calls in scheduler. + var/machine_processing = 0 // whether the machine is busy and requires process() calls in scheduler. // Please replace this by DF_ISPROCESSING in another refactor --fira throwpass = 1 projectile_coverage = PROJECTILE_COVERAGE_MEDIUM var/power_machine = FALSE //Whether the machine should process on power, or normal processor diff --git a/code/game/machinery/magnet.dm b/code/game/machinery/magnet.dm deleted file mode 100644 index 591cec1f5b..0000000000 --- a/code/game/machinery/magnet.dm +++ /dev/null @@ -1,421 +0,0 @@ -// Magnetic attractor, creates variable magnetic fields and attraction. -// Can also be used to emit electron/proton beams to create a center of magnetism on another tile - -// tl;dr: it's magnets lol -// This was created for firing ranges, but I suppose this could have other applications - Doohl - -/obj/structure/machinery/magnetic_module - - icon = 'icons/obj/objects.dmi' - icon_state = "floor_magnet-f" - name = "Electromagnetic Generator" - desc = "A device that uses station power to create points of magnetic energy." - level = 1 // underfloor - layer = UNDERFLOOR_OBJ_LAYER - anchored = TRUE - use_power = USE_POWER_IDLE - idle_power_usage = 50 - - var/freq = 1449 // radio frequency - var/electricity_level = 1 // intensity of the magnetic pull - var/magnetic_field = 1 // the range of magnetic attraction - var/code = 0 // frequency code, they should be different unless you have a group of magnets working together or something - var/turf/center // the center of magnetic attraction - var/on = 0 - var/pulling = 0 - - // x, y modifiers to the center turf; (0, 0) is centered on the magnet, whereas (1, -1) is one tile right, one tile down - var/center_x = 0 - var/center_y = 0 - var/max_dist = 20 // absolute value of center_x,y cannot exceed this integer - -/obj/structure/machinery/magnetic_module/Initialize(mapload, ...) - . = ..() - - var/turf/T = loc - hide(T.intact_tile) - center = T - - SSradio.add_object(src, freq, RADIO_MAGNETS) - - INVOKE_ASYNC(src, PROC_REF(magnetic_process)) - -/obj/structure/machinery/magnetic_module/Destroy() - center = null - SSradio.remove_object(src, freq) - . = ..() - - - // update the invisibility and icon -/obj/structure/machinery/magnetic_module/hide(intact) - invisibility = intact ? 101 : 0 - updateicon() - - // update the icon_state -/obj/structure/machinery/magnetic_module/proc/updateicon() - var/state="floor_magnet" - var/onstate="" - if(!on) - onstate="0" - - if(invisibility) - icon_state = "[state][onstate]-f" // if invisible, set icon to faded version - // in case of being revealed by T-scanner - else - icon_state = "[state][onstate]" - -/obj/structure/machinery/magnetic_module/receive_signal(datum/signal/signal) - - var/command = signal.data["command"] - var/modifier = signal.data["modifier"] - var/signal_code = signal.data["code"] - if(command && (signal_code == code)) - - Cmd(command, modifier) - - - -/obj/structure/machinery/magnetic_module/proc/Cmd(command, modifier) - - if(command) - switch(command) - if("set-electriclevel") - if(modifier) electricity_level = modifier - if("set-magneticfield") - if(modifier) magnetic_field = modifier - - if("add-elec") - electricity_level++ - if(electricity_level > 12) - electricity_level = 12 - if("sub-elec") - electricity_level-- - if(electricity_level <= 0) - electricity_level = 1 - if("add-mag") - magnetic_field++ - if(magnetic_field > 4) - magnetic_field = 4 - if("sub-mag") - magnetic_field-- - if(magnetic_field <= 0) - magnetic_field = 1 - - if("set-x") - if(modifier) center_x = modifier - if("set-y") - if(modifier) center_y = modifier - - if("N") // NORTH - center_y++ - if("S") // SOUTH - center_y-- - if("E") // EAST - center_x++ - if("W") // WEST - center_x-- - if("C") // CENTER - center_x = 0 - center_y = 0 - if("R") // RANDOM - center_x = rand(-max_dist, max_dist) - center_y = rand(-max_dist, max_dist) - - if("set-code") - if(modifier) code = modifier - if("toggle-power") - on = !on - - if(on) - INVOKE_ASYNC(src, PROC_REF(magnetic_process)) - - -/obj/structure/machinery/magnetic_module/process() - if(stat & NOPOWER) - on = 0 - - // Sanity checks: - if(electricity_level <= 0) - electricity_level = 1 - if(magnetic_field <= 0) - magnetic_field = 1 - - - // Limitations: - if(abs(center_x) > max_dist) - center_x = max_dist - if(abs(center_y) > max_dist) - center_y = max_dist - if(magnetic_field > 4) - magnetic_field = 4 - if(electricity_level > 12) - electricity_level = 12 - - // Update power usage: - if(on) - use_power = USE_POWER_ACTIVE - active_power_usage = electricity_level*15 - else - use_power = USE_POWER_NONE - - - // Overload conditions: - /* // Eeeehhh kinda stupid - if(on) - if(electricity_level > 11) - if(prob(electricity_level)) - explosion(loc, 0, 1, 2, 3) // ooo dat shit EXPLODES son - spawn(2) - qdel(src) - */ - - updateicon() - - -/obj/structure/machinery/magnetic_module/proc/magnetic_process() // proc that actually does the pulling - if(pulling) return - while(on) - - pulling = 1 - center = locate(x+center_x, y+center_y, z) - if(center) - for(var/obj/M in orange(magnetic_field, center)) - if(!M.anchored && (M.flags_atom & CONDUCT)) - step_towards(M, center) - - for(var/mob/living/silicon/S in orange(magnetic_field, center)) - if(isAI(S)) continue - step_towards(S, center) - - use_power(electricity_level * 5) - sleep(13 - electricity_level) - - pulling = 0 - -/obj/structure/machinery/magnetic_controller - name = "Magnetic Control Console" - icon = 'icons/obj/structures/machinery/airlock_machines.dmi' // uses an airlock machine icon, THINK GREEN HELP THE ENVIRONMENT - RECYCLING! - icon_state = "airlock_control_standby" - density = TRUE - anchored = TRUE - use_power = USE_POWER_IDLE - idle_power_usage = 45 - var/frequency = 1449 - var/code = 0 - var/list/magnets = list() - var/title = "Magnetic Control Console" - var/autolink = 0 // if set to 1, can't probe for other magnets! - - var/pathpos = 1 // position in the path - var/path = "NULL" // text path of the magnet - var/speed = 1 // lowest = 1, highest = 10 - var/list/rpath = list() // real path of the magnet, used in iterator - - var/moving = 0 // 1 if scheduled to loop - var/looping = 0 // 1 if looping - - var/datum/radio_frequency/radio_connection - -/obj/structure/machinery/magnetic_controller/Initialize(mapload, ...) - . = ..() - if(autolink) - for(var/obj/structure/machinery/magnetic_module/M in machines) - if(M.freq == frequency && M.code == code) - magnets.Add(M) - - SSradio.add_object(src, frequency, RADIO_MAGNETS) - - if(path) // check for default path - filter_path() // renders rpath - -/obj/structure/machinery/magnetic_controller/Destroy() - QDEL_NULL_LIST(magnets) - SSradio.remove_object(src, frequency) - . = ..() - - -/obj/structure/machinery/magnetic_controller/process() - if(magnets.len == 0 && autolink) - for(var/obj/structure/machinery/magnetic_module/M in machines) - if(M.freq == frequency && M.code == code) - magnets.Add(M) - -/obj/structure/machinery/magnetic_controller/attack_remote(mob/user as mob) - return src.attack_hand(user) - -/obj/structure/machinery/magnetic_controller/attack_hand(mob/user as mob) - if(inoperable()) - return - user.set_interaction(src) - var/dat = "Magnetic Control Console

" - if(!autolink) - dat += {" - Frequency: [frequency]
- Code: [code]
- Probe Generators
- "} - - if(magnets.len >= 1) - - dat += "Magnets confirmed:
" - var/i = 0 - for(var/obj/structure/machinery/magnetic_module/M in magnets) - i++ - dat += "     < \[[i]\] ([M.on ? "On":"Off"])|Electricity level: - [M.electricity_level] +; Magnetic field: - [M.magnetic_field] +
" - - dat += "
Speed: - [speed] +
" - dat += "Path: {[path]}
" - dat += "Moving: [moving ? "Enabled":"Disabled"]" - - - show_browser(user, dat, name, "magnet", "size=400x500") - -/obj/structure/machinery/magnetic_controller/Topic(href, href_list) - . = ..() - if(.) - return - if(inoperable()) - return - usr.set_interaction(src) - src.add_fingerprint(usr) - - if(href_list["radio-op"]) - - // Prepare signal beforehand, because this is a radio operation - var/datum/signal/signal = new - signal.transmission_method = 1 // radio transmission - signal.source = src - signal.frequency = frequency - signal.data["code"] = code - - // Apply any necessary commands - switch(href_list["radio-op"]) - if("togglepower") - signal.data["command"] = "toggle-power" - - if("minuselec") - signal.data["command"] = "sub-elec" - if("pluselec") - signal.data["command"] = "add-elec" - - if("minusmag") - signal.data["command"] = "sub-mag" - if("plusmag") - signal.data["command"] = "add-mag" - - - // Broadcast the signal - - radio_connection.post_signal(src, signal, filter = RADIO_MAGNETS) - - addtimer(CALLBACK(src, PROC_REF(updateUsrDialog)), 1) - - if(href_list["operation"]) - switch(href_list["operation"]) - if("plusspeed") - speed ++ - if(speed > 10) - speed = 10 - if("minusspeed") - speed -- - if(speed <= 0) - speed = 1 - if("setpath") - var/newpath = copytext(sanitize(input(usr, "Please define a new path!",,path) as text|null),1,MAX_MESSAGE_LEN) - if(newpath && newpath != "") - moving = 0 // stop moving - path = newpath - pathpos = 1 // reset position - filter_path() // renders rpath - - if("togglemoving") - moving = !moving - if(moving) - INVOKE_ASYNC(src, PROC_REF(MagnetMove)) - - - updateUsrDialog() - -/obj/structure/machinery/magnetic_controller/proc/MagnetMove() - if(looping) return - - while(moving && rpath.len >= 1) - - if(inoperable()) - break - - looping = 1 - - // Prepare the radio signal - var/datum/signal/signal = new - signal.transmission_method = 1 // radio transmission - signal.source = src - signal.frequency = frequency - signal.data["code"] = code - - if(pathpos > rpath.len) // if the position is greater than the length, we just loop through the list! - pathpos = 1 - - var/nextmove = uppertext(rpath[pathpos]) // makes it un-case-sensitive - - if(!(nextmove in list("N","S","E","W","C","R"))) - // N, S, E, W are directional - // C is center - // R is random (in magnetic field's bounds) - qdel(signal) - break // break the loop if the character located is invalid - - signal.data["command"] = nextmove - - - pathpos++ // increase iterator - - // Broadcast the signal - spawn() - radio_connection.post_signal(src, signal, filter = RADIO_MAGNETS) - - if(speed == 10) - sleep(1) - else - sleep(12-speed) - - looping = 0 - - -/obj/structure/machinery/magnetic_controller/proc/filter_path() - // Generates the rpath variable using the path string, think of this as "string2list" - // Doesn't use params2list() because of the akward way it stacks entities - rpath = list() // clear rpath - var/maximum_character = min( 50, length(path) ) // chooses the maximum length of the iterator. 50 max length - - for(var/i=1, i<=maximum_character, i++) // iterates through all characters in path - - var/nextchar = copytext(path, i, i+1) // find next character - - if(!(nextchar in list(";", "&", "*", " "))) // if char is a separator, ignore - rpath += copytext(path, i, i+1) // else, add to list - - // there doesn't HAVE to be separators but it makes paths syntatically visible - - - - - - - - - - - - - - - - - - - - - - - diff --git a/code/game/machinery/mass_driver.dm b/code/game/machinery/mass_driver.dm index d1e2fecce2..f1b0081e3a 100644 --- a/code/game/machinery/mass_driver.dm +++ b/code/game/machinery/mass_driver.dm @@ -1,5 +1,4 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 - +// Legacy SS13 machinery turned into a prop /obj/structure/machinery/mass_driver name = "mass driver" desc = "Shoots things into space." @@ -9,32 +8,3 @@ use_power = USE_POWER_IDLE idle_power_usage = 2 active_power_usage = 50 - - var/power = 1 - var/code = 1 - var/id = 1 - var/drive_range = 50 //this is mostly irrelevant since current mass drivers throw into space, but you could make a lower-range mass driver for interstation transport or something I guess. - - -/obj/structure/machinery/mass_driver/proc/drive(amount) - if(inoperable()) - return - use_power(500) - var/O_limit - var/atom/target = get_edge_target_turf(src, dir) - for(var/atom/movable/O in loc) - if(!O.anchored) - if(O_limit >= 20) - for(var/mob/M in hearers(src, null)) - to_chat(M, SPAN_NOTICE(" The mass driver lets out a screech, it mustn't be able to handle any more items.")) - break - use_power(500) - INVOKE_ASYNC(O, TYPE_PROC_REF(/atom/movable, throw_atom), target, drive_range * power, 100/power) - flick("mass_driver1", src) - return - -/obj/structure/machinery/mass_driver/emp_act(severity) - if(inoperable()) - return - drive() - ..(severity) diff --git a/code/game/objects/effects/effect_system/smoke.dm b/code/game/objects/effects/effect_system/smoke.dm index 78aa01b5da..b80f53b14d 100644 --- a/code/game/objects/effects/effect_system/smoke.dm +++ b/code/game/objects/effects/effect_system/smoke.dm @@ -31,13 +31,13 @@ amount = oldamount - 1 cause_data = new_cause_data time_to_live += rand(-1,1) - active_smoke_effects += src + START_PROCESSING(SSeffects, src) /obj/effect/particle_effect/smoke/Destroy() . = ..() if(opacity) set_opacity(0) - active_smoke_effects -= src + STOP_PROCESSING(SSeffects, src) cause_data = null /obj/effect/particle_effect/smoke/initialize_pass_flags(datum/pass_flags_container/PF) diff --git a/code/game/objects/items/circuitboards/computer.dm b/code/game/objects/items/circuitboards/computer.dm index 7276e8a7f0..122136f6f2 100644 --- a/code/game/objects/items/circuitboards/computer.dm +++ b/code/game/objects/items/circuitboards/computer.dm @@ -96,9 +96,9 @@ /obj/item/circuitboard/computer/atmos_alert name = "Circuit board (Atmospheric Alert)" build_path = /obj/structure/machinery/computer/atmos_alert -/obj/item/circuitboard/computer/pod - name = "Circuit board (Massdriver control)" - build_path = /obj/structure/machinery/computer/pod +/obj/item/circuitboard/computer/pod/old + name = "Circuit board (DoorMex)" + build_path = /obj/structure/machinery/computer/pod/old /obj/item/circuitboard/computer/robotics name = "Circuit board (Robotics Control)" build_path = /obj/structure/machinery/computer/robotics @@ -117,15 +117,6 @@ /obj/item/circuitboard/computer/powermonitor name = "Circuit board (Power Monitor)" build_path = /obj/structure/machinery/power/monitor -/obj/item/circuitboard/computer/olddoor - name = "Circuit board (DoorMex)" - build_path = /obj/structure/machinery/computer/pod/old -/obj/item/circuitboard/computer/syndicatedoor - name = "Circuit board (ProComp Executive)" - build_path = /obj/structure/machinery/computer/pod/old/syndicate -/obj/item/circuitboard/computer/swfdoor - name = "Circuit board (Magix)" - build_path = /obj/structure/machinery/computer/pod/old/swf /obj/item/circuitboard/computer/prisoner name = "Circuit board (Prisoner Management)" build_path = /obj/structure/machinery/computer/prisoner diff --git a/code/game/world.dm b/code/game/world.dm index 450f724279..82a9ae45de 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -174,11 +174,6 @@ var/world_topic_spam_protect_time = world.timeofday response["response"] = "Payload too large" return json_encode(response) - if(SSfail_to_topic?.IsRateLimited(addr)) - response["statuscode"] = 429 - response["response"] = "Rate limited" - return json_encode(response) - var/logging = CONFIG_GET(flag/log_world_topic) var/topic_decoded = rustg_url_decode(T) if(!rustg_json_is_valid(topic_decoded)) diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 0297145c7e..a7ee69469f 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -329,7 +329,7 @@ set desc = "For scheduler debugging" var/list/individual_counts = list() - for(var/datum/disease/M in active_diseases) + for(var/datum/disease/M in SSdisease.all_diseases) individual_counts["[M.type]"]++ for(var/mob/M in SShuman.processable_human_list) individual_counts["[M.type]"]++ diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 82540d6cbf..181133edc2 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -145,7 +145,6 @@ GLOBAL_LIST_INIT(whitelisted_client_procs, list( if(!receiver_client) to_chat(src, SPAN_WARNING("The person you were attempting to PM has gone offline!")) return - if(unansweredAhelps[receiver_client.computer_id]) unansweredAhelps.Remove(receiver_client.computer_id) cmd_admin_pm(receiver_client, null) return @@ -467,7 +466,6 @@ GLOBAL_LIST_INIT(whitelisted_client_procs, list( GLOB.clients -= src SSping.currentrun -= src - unansweredAhelps?.Remove(computer_id) log_access("Logout: [key_name(src)]") if(CLIENT_IS_STAFF(src)) message_admins("Admin logout: [key_name(src)]") diff --git a/code/modules/defenses/defenses.dm b/code/modules/defenses/defenses.dm index d2c5e63fee..b39128b1a8 100644 --- a/code/modules/defenses/defenses.dm +++ b/code/modules/defenses/defenses.dm @@ -147,12 +147,12 @@ /obj/structure/machinery/defenses/start_processing() if(!machine_processing) machine_processing = TRUE - fast_machines += src + START_PROCESSING(SSdefprocess, src) /obj/structure/machinery/defenses/stop_processing() if(machine_processing) machine_processing = FALSE - fast_machines -= src + STOP_PROCESSING(SSdefprocess, src) /obj/structure/machinery/defenses/proc/earn_kill() kills++ diff --git a/code/modules/mob/living/carbon/xenomorph/xeno_defines.dm b/code/modules/mob/living/carbon/xenomorph/xeno_defines.dm index a74fa74138..f1fff4fb76 100644 --- a/code/modules/mob/living/carbon/xenomorph/xeno_defines.dm +++ b/code/modules/mob/living/carbon/xenomorph/xeno_defines.dm @@ -279,7 +279,6 @@ var/allowed_nest_distance = 15 //How far away do we allow nests from an ovied Queen. Default 15 tiles. var/obj/effect/alien/resin/special/pylon/core/hive_location = null //Set to ref every time a core is built, for defining the hive location var/crystal_stored = 0 //How much stockpiled material is stored for the hive to use. - var/xenocon_points = 0 //Xeno version of DEFCON var/datum/mutator_set/hive_mutators/mutators = new var/tier_slot_multiplier = 1 diff --git a/code/modules/reagents/chemistry_machinery/pandemic.dm b/code/modules/reagents/chemistry_machinery/pandemic.dm index aef4823eff..c9e34f7960 100644 --- a/code/modules/reagents/chemistry_machinery/pandemic.dm +++ b/code/modules/reagents/chemistry_machinery/pandemic.dm @@ -132,7 +132,7 @@ if(archive_diseases[id]) var/datum/disease/advance/A = archive_diseases[id] A.AssignName(new_name) - for(var/datum/disease/advance/AD in active_diseases) + for(var/datum/disease/advance/AD in SSdisease.all_diseases) AD.Refresh() updateUsrDialog() diff --git a/code/modules/teleporters/teleporter_admin_verbs.dm b/code/modules/teleporters/teleporter_admin_verbs.dm index 930f9209d4..61f21fdb34 100644 --- a/code/modules/teleporters/teleporter_admin_verbs.dm +++ b/code/modules/teleporters/teleporter_admin_verbs.dm @@ -3,7 +3,7 @@ set desc = "Force a teleporter to teleport" set category = "Admin.Game" - var/available_teleporters = SSteleporter.teleporters + var/list/datum/teleporter/available_teleporters = GLOB.teleporters var/datum/teleporter/teleporter = tgui_input_list(usr, "Which teleporter do you want to use?", "Select a teleporter:", available_teleporters) if(!teleporter) diff --git a/code/modules/teleporters/teleporter_console.dm b/code/modules/teleporters/teleporter_console.dm index b9a3629c88..88384578a9 100644 --- a/code/modules/teleporters/teleporter_console.dm +++ b/code/modules/teleporters/teleporter_console.dm @@ -40,19 +40,13 @@ if(linked_teleporter) // Maybe should debug log this because it's indicative of bad logic, but I'll leave it out for the sake of (potential) spam return TRUE - if(SSteleporter) - - var/datum/teleporter/found_teleporter = SSteleporter.teleporters_by_id[teleporter_id] - if(found_teleporter) - linked_teleporter = found_teleporter - linked_teleporter.linked_consoles += src - else - log_debug("Couldn't find teleporter matching ID [linked_teleporter]. Code: TELEPORTER_CONSOLE_2") - log_admin("Couldn't find teleporter matching ID [linked_teleporter]. Tell the devs. Code: TELEPORTER_CONSOLE_2") - return FALSE + var/datum/teleporter/found_teleporter = GLOB.teleporters_by_id[teleporter_id] + if(found_teleporter) + linked_teleporter = found_teleporter + linked_teleporter.linked_consoles += src else - log_debug("Couldn't find teleporter SS to pull teleporter from. Code: TELEPORTER_CONSOLE_3") - log_admin("Couldn't find teleporter SS to pull teleporter from. Tell the devs. Code: TELEPORTER_CONSOLE_3") + log_debug("Couldn't find teleporter matching ID [linked_teleporter]. Code: TELEPORTER_CONSOLE_2") + log_admin("Couldn't find teleporter matching ID [linked_teleporter]. Tell the devs. Code: TELEPORTER_CONSOLE_2") return FALSE return TRUE @@ -181,9 +175,9 @@ if(SSmapping.configs[GROUND_MAP].map_name != MAP_CORSAT) // Bad style, but I'm leaving it here for now until someone wants to add a teleporter to another map return - if(SSteleporter.teleporters.len) // already made the damn thing + if(GLOB.teleporters.len) // already made the damn thing return var/datum/teleporter/corsat/teleporter = new - SSteleporter.teleporters_by_id[teleporter.id] = teleporter - SSteleporter.teleporters += teleporter + GLOB.teleporters_by_id[teleporter.id] = teleporter + GLOB.teleporters += teleporter diff --git a/code/modules/teleporters/teleporter_landmarks.dm b/code/modules/teleporters/teleporter_landmarks.dm index 75ce77550f..fe0ab46489 100644 --- a/code/modules/teleporters/teleporter_landmarks.dm +++ b/code/modules/teleporters/teleporter_landmarks.dm @@ -41,30 +41,24 @@ /obj/effect/landmark/teleporter_loc/LateInitialize() . = ..() - if (SSteleporter) - var/datum/teleporter/T = SSteleporter.teleporters_by_id[linked_teleporter] - if (T) - if (!T.locations[location_id]) - T.locations[location_id] = list() + var/datum/teleporter/T = GLOB.teleporters_by_id[linked_teleporter] + if (T) + if (!T.locations[location_id]) + T.locations[location_id] = list() - var/list/location = T.locations[location_id] + var/list/location = T.locations[location_id] - if (!location) - log_debug("Teleporter locations turf list not properly instantiated. Code: TELEPORTER_LANDMARK_1") - log_admin("Teleporter locations turf list not properly instantiated. Tell the devs. Code: TELEPORTER_LANDMARK_1") - qdel(src) - return - - location[index] = get_turf(src) - - else - log_debug("Couldn't find teleporter matching ID [linked_teleporter]. Code: TELEPORTER_LANDMARK_2") - log_admin("Couldn't find teleporter matching ID [linked_teleporter]. Tell the devs. Code: TELEPORTER_LANDMARK_2") + if (!location) + log_debug("Teleporter locations turf list not properly instantiated. Code: TELEPORTER_LANDMARK_1") + log_admin("Teleporter locations turf list not properly instantiated. Tell the devs. Code: TELEPORTER_LANDMARK_1") qdel(src) return + + location[index] = get_turf(src) + else - log_debug("Couldn't find teleporter SS to register with. Code: TELEPORTER_LANDMARK_3") - log_admin("Couldn't find teleporter SS to register with. Tell the devs. Code: TELEPORTER_LANDMARK_3") + log_debug("Couldn't find teleporter matching ID [linked_teleporter]. Code: TELEPORTER_LANDMARK_2") + log_admin("Couldn't find teleporter matching ID [linked_teleporter]. Tell the devs. Code: TELEPORTER_LANDMARK_2") qdel(src) return diff --git a/colonialmarines.dme b/colonialmarines.dme index 192217ea59..37c34d443c 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -227,7 +227,6 @@ #include "code\controllers\mc\master.dm" #include "code\controllers\mc\subsystem.dm" #include "code\controllers\subsystem\acid_pillar.dm" -#include "code\controllers\subsystem\admin.dm" #include "code\controllers\subsystem\assets.dm" #include "code\controllers\subsystem\atoms.dm" #include "code\controllers\subsystem\autofire.dm" @@ -238,11 +237,8 @@ #include "code\controllers\subsystem\decorator.dm" #include "code\controllers\subsystem\disease.dm" #include "code\controllers\subsystem\events.dm" -#include "code\controllers\subsystem\fail_to_topic.dm" -#include "code\controllers\subsystem\fast_machinery.dm" #include "code\controllers\subsystem\fz_transitions.dm" #include "code\controllers\subsystem\garbage.dm" -#include "code\controllers\subsystem\htmlui.dm" #include "code\controllers\subsystem\human.dm" #include "code\controllers\subsystem\inactivity.dm" #include "code\controllers\subsystem\influxdriver.dm" @@ -254,7 +250,6 @@ #include "code\controllers\subsystem\lighting.dm" #include "code\controllers\subsystem\machinery.dm" #include "code\controllers\subsystem\mapping.dm" -#include "code\controllers\subsystem\midi.dm" #include "code\controllers\subsystem\minimap.dm" #include "code\controllers\subsystem\mob.dm" #include "code\controllers\subsystem\nanoui.dm" @@ -274,15 +269,11 @@ #include "code\controllers\subsystem\round_recording.dm" #include "code\controllers\subsystem\shuttle.dm" #include "code\controllers\subsystem\shuttles.dm" -#include "code\controllers\subsystem\smoke_system.dm" #include "code\controllers\subsystem\sound.dm" #include "code\controllers\subsystem\sound_loops.dm" #include "code\controllers\subsystem\soundscape.dm" -#include "code\controllers\subsystem\stamina.dm" #include "code\controllers\subsystem\statpanel.dm" -#include "code\controllers\subsystem\stats_collector.dm" #include "code\controllers\subsystem\techtree.dm" -#include "code\controllers\subsystem\teleporter.dm" #include "code\controllers\subsystem\tgui.dm" #include "code\controllers\subsystem\ticker.dm" #include "code\controllers\subsystem\time_track.dm" @@ -292,10 +283,10 @@ #include "code\controllers\subsystem\weather.dm" #include "code\controllers\subsystem\x_evolution.dm" #include "code\controllers\subsystem\xeno.dm" -#include "code\controllers\subsystem\xenocon.dm" #include "code\controllers\subsystem\init\landmarks.dm" #include "code\controllers\subsystem\init\law.dm" #include "code\controllers\subsystem\init\lobby_art.dm" +#include "code\controllers\subsystem\processing\defprocess.dm" #include "code\controllers\subsystem\processing\effects.dm" #include "code\controllers\subsystem\processing\fastobj.dm" #include "code\controllers\subsystem\processing\hive_status.dm" @@ -805,7 +796,6 @@ #include "code\game\machinery\lightswitch.dm" #include "code\game\machinery\line_nexter.dm" #include "code\game\machinery\machinery.dm" -#include "code\game\machinery\magnet.dm" #include "code\game\machinery\mass_driver.dm" #include "code\game\machinery\mining.dm" #include "code\game\machinery\misc.dm" From bdecde4ce267b151ab7fa9dfbd72cb8e932ff56f Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Mon, 6 Nov 2023 05:17:07 +0000 Subject: [PATCH 11/60] Automatic changelog for PR #4835 [ci skip] --- html/changelogs/AutoChangeLog-pr-4835.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4835.yml diff --git a/html/changelogs/AutoChangeLog-pr-4835.yml b/html/changelogs/AutoChangeLog-pr-4835.yml new file mode 100644 index 0000000000..6fcce13e1e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4835.yml @@ -0,0 +1,4 @@ +author: "fira" +delete-after: True +changes: + - rscdel: "Removed unused magnet and mass driver legacy SS13 machinery." \ No newline at end of file From 8cc8778dc20e394d56f876081d97d93ce84a1ff7 Mon Sep 17 00:00:00 2001 From: BeagleGaming1 <56142455+BeagleGaming1@users.noreply.github.com> Date: Sun, 5 Nov 2023 21:57:51 -0500 Subject: [PATCH 12/60] Tent code changes (#4796) # About the pull request Using the tents map template datum directly makes it easier to edit # Explain why it's good for the game Makes it possible to vv edit it # Changelog :cl: code: Tents now hold the datum directly, instead of the typepath admin: Added a proc for staff to change tent dmm's /:cl: --- code/controllers/subsystem/mapping.dm | 11 ++++- code/modules/tents/folded_tents.dm | 59 ++++++++++++++------------ icons/obj/structures/tents_folded.dmi | Bin 560 -> 1181 bytes 3 files changed, 43 insertions(+), 27 deletions(-) diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 6f0f060305..913e5dcd50 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -6,10 +6,13 @@ SUBSYSTEM_DEF(mapping) var/list/datum/map_config/configs var/list/datum/map_config/next_map_configs + ///Name of all maps var/list/map_templates = list() - + ///Name of all shuttles var/list/shuttle_templates = list() var/list/all_shuttle_templates = list() + ///map_id of all tents + var/list/tent_type_templates = list() var/list/areas_in_z = list() @@ -201,6 +204,7 @@ SUBSYSTEM_DEF(mapping) map_templates[T.name] = T preloadShuttleTemplates() + preload_tent_templates() /proc/generateMapList(filename) . = list() @@ -242,6 +246,11 @@ SUBSYSTEM_DEF(mapping) all_shuttle_templates[item] = S map_templates[S.shuttle_id] = S +/datum/controller/subsystem/mapping/proc/preload_tent_templates() + for(var/template in subtypesof(/datum/map_template/tent)) + var/datum/map_template/tent/new_tent = new template() + tent_type_templates[new_tent.map_id] = new_tent + /datum/controller/subsystem/mapping/proc/RequestBlockReservation(width, height, z, type = /datum/turf_reservation, turf_type_override) UNTIL(initialized && !clearing_reserved_turfs) var/datum/turf_reservation/reserve = new type diff --git a/code/modules/tents/folded_tents.dm b/code/modules/tents/folded_tents.dm index 08b8142ab3..2bed879a0a 100644 --- a/code/modules/tents/folded_tents.dm +++ b/code/modules/tents/folded_tents.dm @@ -1,20 +1,34 @@ /obj/item/folded_tent name = "Folded Abstract Tent" icon = 'icons/obj/structures/tents_folded.dmi' + icon_state = "tent" w_class = SIZE_LARGE /// Required cleared area along X axis var/dim_x = 1 /// Required cleared area along Y axis var/dim_y = 1 - /// Deployment X offset - var/off_x = 0 - /// Deployment Y offset - var/off_y = 0 - /// Map Template to use for the tent - var/template + /// Tents map template typepath + var/template_preset = "abstract" + ///Map template datum used for tent + var/datum/map_template/template /// If this tent can be deployed anywhere var/unrestricted_deployment = FALSE +/obj/item/folded_tent/Initialize(mapload, ...) + . = ..() + if(template_preset == "abstract") //So spawning an abstract tent wont fail create and destroy + return + set_template(SSmapping.tent_type_templates[template_preset]) + if(!template) + CRASH("[src] initialized with template preset, \"[template_preset]\", that does not exist.") + +/obj/item/folded_tent/proc/set_template(datum/map_template/new_template) + if(!istype(new_template)) + return + template = new_template + dim_x = template.width + dim_y = template.height + /// Check an area is clear for deployment of the tent /obj/item/folded_tent/proc/check_area(turf/ref_turf, mob/message_receiver, display_error = FALSE) SHOULD_NOT_SLEEP(TRUE) @@ -47,9 +61,11 @@ return FALSE return TRUE -/obj/item/folded_tent/proc/unfold(turf/ref_turf) - var/datum/map_template/template_instance = new template() - template_instance.load(ref_turf, FALSE, FALSE) +/obj/item/folded_tent/proc/unfold(mob/user, turf/ref_turf) + if(!istype(template)) + to_chat(user, SPAN_BOLDWARNING("[src] does not contain a tent! It is broken!")) + CRASH("[src] attempted to unfold \"[template]\" as a tent.") + template.load(ref_turf, FALSE, FALSE) /obj/item/folded_tent/proc/get_deployment_area(turf/ref_turf) RETURN_TYPE(/list/turf) @@ -58,11 +74,13 @@ /obj/item/folded_tent/attack_self(mob/living/user) . = ..() + var/off_x = -(tgui_input_number(user, "If facing North or South", "Set X Offset", 0, dim_x, 0, 30 SECONDS, TRUE)) + var/off_y = -(tgui_input_number(user, "If facing East or West", "Set Y Offset", 0, dim_y, 0, 30 SECONDS, TRUE)) var/turf/deploy_turf = user.loc if(!istype(deploy_turf)) return // In a locker or something. Get lost you already have a home. - switch(user.dir) // Fix up offset deploy location so tent is better centered + can be deployed under all angles + switch(user.dir) //Handles offsets when deploying if(NORTH) deploy_turf = locate(deploy_turf.x + off_x, deploy_turf.y + 1, deploy_turf.z) if(SOUTH) @@ -103,7 +121,7 @@ QDEL_IN(gfx, 1.5 SECONDS) return - unfold(deploy_turf) + unfold(user, deploy_turf) user.visible_message(SPAN_INFO("[user] finishes deploying the [src]!"), SPAN_INFO("You finish deploying the [src]!")) for(var/gfx in turf_overlay) qdel(gfx) @@ -113,36 +131,25 @@ name = "folded USCM Command Tent" icon_state = "cmd" desc = "A standard USCM Command Tent. This one comes equipped with a self-powered Overwatch Console and a Telephone. Unfold in a suitable location to maximize usefulness. Staff Officer not included. ENTRANCE TO THE SOUTH." - dim_x = 2 - dim_y = 4 - off_x = -1 - template = /datum/map_template/tent/cmd + template_preset = "tent_cmd" /obj/item/folded_tent/med name = "folded USCM Medical Tent" icon_state = "med" desc = "A standard USCM Medical Tent. This one comes equipped with advanced field surgery facilities. Unfold in a suitable location to maximize health gains. Surgical Tray not included. ENTRANCE TO THE SOUTH." - dim_x = 2 - dim_y = 4 - template = /datum/map_template/tent/med + template_preset = "tent_med" /obj/item/folded_tent/reqs name = "folded USCM Requisitions Tent" icon_state = "req" desc = "A standard USCM Requisitions Tent. Now, you can enjoy req line anywhere you go! Unfold in a suitable location to maximize resource distribution. ASRS not included. ENTRANCE TO THE SOUTH." - dim_x = 4 - dim_y = 4 - off_x = -2 - template = /datum/map_template/tent/reqs + template_preset = "tent_reqs" /obj/item/folded_tent/big name = "folded USCM Big Tent" icon_state = "big" desc = "A standard USCM Tent. This one is just a bigger, general purpose version. Unfold in a suitable location for maximum FOB vibes. Mess Tech not included. ENTRANCE TO THE SOUTH." - dim_x = 3 - dim_y = 4 - off_x = -2 - template = /datum/map_template/tent/big + template_preset = "tent_big" /obj/effect/overlay/temp/tent_deployment_error icon = 'icons/effects/effects.dmi' diff --git a/icons/obj/structures/tents_folded.dmi b/icons/obj/structures/tents_folded.dmi index e9f4555ae6a12a2c8aef0901dd5a273027a96759..e93702d7b2f9c6a01885f643496432e1943240c9 100644 GIT binary patch delta 1090 zcmdnMGM7`eGr-TCmrII^fq{Y7)59eQNGAZX0|y(Bd}>m}2c+sICgs#mSTJkSl|4c+ zT~kD3{>B{G$HJiT)lo@^XO=Ys1M@9U7srr_Id5nCW(Yfq99ORsyqL6h!j%S&Z$cZU zDSdh1c*4>4g`g=49*186u$Lagocl!`xe2g8Qqo zhS1;jdp6uW^G0p==HJ`C{Z%-_SFdRO{_Ov=Z_YgPT^6IK-Pm7xhiy%%3qu-KWcH)B zGW$!8?WwccQ_uTZn*Gxe{w5b==90TT*1AWTf$hutx52G*twp?kZHad0+_fz)Ncph4 zv*qDb=PPB_8C3Q=hCu*>Q>S#{+@kpZk0Oe?Xk}H#tjZjcvsddRk%9@DSW#4^TET`)vu1fk6%@= z$-K}y=khfz4rPXVr3aIba9n82e17I{;BzTeU+2|x9T)}PPVJw3&ZdpuWkGgLM&IXa ztFNZMKK4km<%Ii87Pb3UYkz-jeJ^5SYMOm_r9pr|!@ti*mnkq5OjvjKtA^u*Dev7F zpFI~3-FRd5s`z~?=e><~x-0Yjfbjfz{}LZ?FiG!w{ch#!?rEtSYguyY8`$n{+0E0+ zyR+u{{gr7)vjkXlopXP^J9o41P z!OyY$z3s^Z6D&hB|5)&JJTM6OUC83NJJNK)?nYGo~D3`w~1Z*w=u zyYs!@RAjc`)5Gel|Dl(;CR};QVt?W1i57#@y{uOQ7sWnd{`xlX>z1wypO)J^J>Fh= zC)(Ze@1wnjhF;(GI_j z`mg9aKR$8NU-($6hD_zpsu!h=> zi`@R%qLMkQX_DQX2ke~!OJl#E@P56zV_G^xXTs)*8!Ueb99$-wd8EQcGt>E+*2?=G jf8Td7oIyi>7)8oF*O@dBEW5>gTe~DWM4fbTkDA delta 463 zcmV;=0WkiZ39tlWiBL{Q4GJ0x0000DNk~Le0000$0000$1Oos709Z$C?EnA(Bv4FL zMZmzoMnxSXA_{VFKww@lFfI^SRw%2YqLqt_MhO^C3>`{HA^eMF0RR910d!JMQvg8b z*k%9#0C$lkY=01!8f67nKNqkE08kP($z@z7!2kdOH%UZ6R7i>KltFI7Fc3wPMGg?G zutt$`05Hk{ij{pLnSIqjdxQ1>NaX-sRJ}l@u93K2ga6FL4$v;>s>=7uqc`@%@P8DI z`a8ubG?`I>_GwOgwbE|gHPo=wZY>LR#JYWHO}7>n1%FlU-*=U%Rs}lhho|SA2PD(- z^)m$8eH#KFUvJ?F=9d$ANC5^jY%J6;AYVbidb)Mm6a-L%C4jfK$pK{dXxKIY5~Z}$ zoB-*_=_zY^*$hBb&(WYK1SE0=?fJLh!kOfX*%e^asGF3g!$1hdalnBP3r~rnN>gFM zjGQN&C}f>i10dFq$D{G`U Date: Mon, 6 Nov 2023 05:31:15 +0000 Subject: [PATCH 13/60] Automatic changelog for PR #4796 [ci skip] --- html/changelogs/AutoChangeLog-pr-4796.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4796.yml diff --git a/html/changelogs/AutoChangeLog-pr-4796.yml b/html/changelogs/AutoChangeLog-pr-4796.yml new file mode 100644 index 0000000000..b314142a6e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4796.yml @@ -0,0 +1,5 @@ +author: "BeagleGaming1" +delete-after: True +changes: + - code_imp: "Tents now hold the datum directly, instead of the typepath" + - admin: "Added a proc for staff to change tent dmm's" \ No newline at end of file From 46be29791d052d7062df5f6a68a7badd6bd0ce61 Mon Sep 17 00:00:00 2001 From: spartanbobby <71467726+spartanbobby@users.noreply.github.com> Date: Mon, 6 Nov 2023 02:59:14 +0000 Subject: [PATCH 14/60] Big Red Changes Part 1: Admin (#4838) # About the pull request This (hopefully) string of PRs aims to re-detail areas of big red that visually don't have a lot going on, such as breaking up copy-pasted bedrooms, adding dirt and grime floor decals, and placing props / adding new ways into underused areas This PR focuses entirely on colony admin and the nightmare inserts in it I've added to that funny little middle room that no one goes into to hopefully make it more seen and used and widened some hallways, of course, some minor retailing and honestly not much else # Explain why it's good for the game Honestly feel like Big Red is one of the maps in most need of a glow up, it can get pretty barebones in places and has a lot of underused rooms I'm not aiming to rework the entire map just small additions piece by piece because the last time I did this I did it all at once and my map file corrupted trying to fix merge conflicts # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: SpartanBobby maptweak: Alot of changes to big reds admin area, including new windows, prop placement, room detailing, new doors /:cl: --- maps/map_files/BigRed/BigRed.dmm | 1184 ++++++++++++----- .../BigRed/sprinkles/40.admin_pmc.dmm | 451 +++---- .../BigRed/standalone/medbay-passage.dmm | 41 +- 3 files changed, 1077 insertions(+), 599 deletions(-) diff --git a/maps/map_files/BigRed/BigRed.dmm b/maps/map_files/BigRed/BigRed.dmm index bf9fc77718..b13a1d6842 100644 --- a/maps/map_files/BigRed/BigRed.dmm +++ b/maps/map_files/BigRed/BigRed.dmm @@ -11058,21 +11058,10 @@ /turf/closed/wall/solaris/rock, /area/bigredv2/outside/sw) "aFd" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4; - health = 80 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" +/obj/structure/flora/jungle/plantbot1{ + pixel_y = 10 }, +/turf/open/jungle, /area/bigredv2/outside/admin_building) "aFf" = ( /obj/structure/closet/secure_closet/scientist, @@ -12526,10 +12515,7 @@ "aIY" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/medium, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aIZ" = ( /obj/effect/decal/warning_stripes{ @@ -14231,7 +14217,6 @@ /area/bigredv2/outside/admin_building) "aNC" = ( /obj/structure/machinery/computer/station_alert, -/obj/structure/machinery/camera/autoname, /obj/structure/surface/table, /turf/open/floor{ icon_state = "white" @@ -14286,6 +14271,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 10 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ dir = 9; icon_state = "darkred2" @@ -14298,6 +14284,7 @@ }, /area/bigredv2/outside/admin_building) "aNK" = ( +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ dir = 9; icon_state = "darkred2" @@ -14321,6 +14308,7 @@ /area/bigredv2/outside/admin_building) "aNN" = ( /obj/structure/machinery/vending/coffee, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ dir = 1; icon_state = "darkred2" @@ -14342,6 +14330,9 @@ /area/bigredv2/outside/admin_building) "aNQ" = ( /obj/structure/bed, +/obj/item/bedsheet/brown{ + layer = 3.1 + }, /turf/open/floor{ icon_state = "wood" }, @@ -15145,16 +15136,22 @@ }, /area/bigredv2/outside/admin_building) "aPP" = ( -/turf/open/floor{ +/obj/structure/stairs/perspective{ dir = 1; - icon_state = "rampbottom" + icon_state = "p_stair_full" + }, +/turf/open/floor{ + icon_state = "dark" }, /area/bigredv2/outside/admin_building) "aPQ" = ( /obj/structure/pipes/standard/simple/hidden/green, -/turf/open/floor{ +/obj/structure/stairs/perspective{ dir = 1; - icon_state = "rampbottom" + icon_state = "p_stair_full" + }, +/turf/open/floor{ + icon_state = "dark" }, /area/bigredv2/outside/admin_building) "aPS" = ( @@ -15182,7 +15179,17 @@ }, /area/bigredv2/outside/admin_building) "aPW" = ( -/obj/structure/coatrack, +/obj/structure/coatrack{ + pixel_x = -5; + pixel_y = 13 + }, +/obj/item/clothing/shoes/dress{ + pixel_y = -13 + }, +/obj/item/clothing/under/suit_jacket/trainee{ + pixel_x = -6; + pixel_y = 15 + }, /turf/open/floor{ icon_state = "wood" }, @@ -15653,6 +15660,7 @@ name = "Storm Shutters"; pixel_y = -32 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "darkred2" }, @@ -15987,9 +15995,8 @@ }, /area/bigredv2/outside/admin_building) "aRZ" = ( -/obj/structure/machinery/door/airlock/almayer/command/colony{ - dir = 1; - name = "\improper Operations EVA" +/obj/structure/machinery/door/airlock/almayer/maint{ + dir = 1 }, /turf/open/floor{ icon_state = "delivery" @@ -16309,6 +16316,14 @@ }, /area/bigredv2/outside/general_store) "aSQ" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_y = -1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1 + }, /obj/structure/machinery/door/airlock/almayer/command/colony{ dir = 1; name = "\improper Operations" @@ -16319,6 +16334,8 @@ /area/bigredv2/outside/admin_building) "aSR" = ( /obj/structure/pipes/vents/pump, +/obj/structure/surface/rack, +/obj/item/weapon/gun/smg/mp27, /turf/open/floor{ dir = 8; icon_state = "redcorner" @@ -16355,6 +16372,7 @@ /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, +/obj/item/prop/alien/hugger, /turf/open/floor{ dir = 1; icon_state = "darkred2" @@ -16370,8 +16388,14 @@ }, /area/bigredv2/outside/admin_building) "aSX" = ( -/obj/structure/machinery/suit_storage_unit/carbon_unit, -/turf/open/floor/plating, +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/turf/open/floor{ + icon_state = "white" + }, /area/bigredv2/outside/admin_building) "aSZ" = ( /obj/structure/machinery/power/apc{ @@ -16384,10 +16408,12 @@ /turf/open/floor/plating, /area/bigredv2/outside/admin_building) "aTb" = ( -/obj/structure/surface/table/woodentable, -/obj/effect/landmark/objective_landmark/close, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/floor{ - icon_state = "wood" + icon_state = "white" }, /area/bigredv2/outside/admin_building) "aTc" = ( @@ -16696,7 +16722,10 @@ }, /area/bigredv2/outside/general_store) "aTU" = ( -/obj/structure/machinery/message_server, +/obj/structure/prop/server_equipment/yutani_server{ + density = 0; + pixel_y = 16 + }, /turf/open/floor{ icon_state = "podhatchfloor" }, @@ -16706,12 +16735,6 @@ icon_state = "podhatchfloor" }, /area/bigredv2/outside/admin_building) -"aTX" = ( -/obj/structure/machinery/computer3/server, -/turf/open/floor{ - icon_state = "dark" - }, -/area/bigredv2/outside/admin_building) "aTY" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ @@ -16720,8 +16743,6 @@ }, /area/bigredv2/outside/admin_building) "aTZ" = ( -/obj/structure/surface/rack, -/obj/item/weapon/gun/smg/mp27, /obj/structure/machinery/light{ dir = 4 }, @@ -16747,28 +16768,34 @@ }, /area/bigredv2/outside/admin_building) "aUd" = ( -/obj/structure/machinery/alarm{ - dir = 1; - pixel_y = -30 +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 5; + icon_state = "darkred2" }, -/turf/open/floor/plating, /area/bigredv2/outside/admin_building) "aUe" = ( /obj/structure/machinery/light{ dir = 4 }, +/obj/structure/machinery/alarm{ + dir = 1; + pixel_y = -30 + }, +/obj/structure/machinery/suit_storage_unit/carbon_unit, /turf/open/floor/plating, /area/bigredv2/outside/admin_building) "aUf" = ( /obj/effect/landmark/good_item, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ dir = 8; icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "aUg" = ( -/obj/structure/surface/table/woodentable, -/obj/item/device/camera, +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/effect/landmark/objective_landmark/close, /turf/open/floor{ icon_state = "wood" }, @@ -17148,12 +17175,10 @@ dir = 4 }, /turf/open/floor{ - icon_state = "dark" + icon_state = "podhatchfloor" }, /area/bigredv2/outside/admin_building) "aVk" = ( -/obj/structure/surface/rack, -/obj/item/weapon/gun/pistol/mod88, /turf/open/floor{ dir = 8; icon_state = "redcorner" @@ -17382,13 +17407,11 @@ dir = 1; network = list("interrogation") }, -/obj/structure/machinery/computer3/server, /turf/open/floor{ icon_state = "podhatchfloor" }, /area/bigredv2/outside/admin_building) "aVT" = ( -/obj/structure/machinery/computer3/server, /turf/open/floor{ dir = 9; icon_state = "darkblue2" @@ -17404,7 +17427,6 @@ /obj/structure/machinery/light{ dir = 1 }, -/obj/structure/machinery/photocopier, /turf/open/floor{ dir = 1; icon_state = "darkblue2" @@ -17420,13 +17442,16 @@ phone_id = "Operations"; pixel_y = 24 }, +/obj/item/prop/alien/hugger, /turf/open/floor{ dir = 1; icon_state = "darkblue2" }, /area/bigredv2/outside/admin_building) "aVX" = ( -/obj/structure/machinery/computer/cameras, +/obj/structure/machinery/computer/cameras{ + dir = 8 + }, /obj/structure/surface/table, /turf/open/floor{ dir = 5; @@ -17608,7 +17633,6 @@ }, /area/bigredv2/outside/admin_building) "aWD" = ( -/obj/structure/machinery/computer3/server, /turf/open/floor{ dir = 8; icon_state = "darkblue2" @@ -17628,7 +17652,9 @@ }, /area/bigredv2/outside/admin_building) "aWG" = ( -/obj/structure/machinery/computer/communications, +/obj/structure/machinery/computer/communications{ + dir = 8 + }, /obj/structure/surface/table, /turf/open/floor{ dir = 6; @@ -17636,10 +17662,10 @@ }, /area/bigredv2/outside/admin_building) "aWH" = ( -/obj/structure/surface/table/woodentable, -/obj/item/device/pinpointer, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ - icon_state = "wood" + dir = 1; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "aWI" = ( @@ -17797,6 +17823,10 @@ pixel_y = 32 }, /obj/effect/landmark/good_item, +/obj/structure/stairs/perspective{ + dir = 10; + icon_state = "p_stair_full" + }, /turf/open/floor{ dir = 1; icon_state = "darkred2" @@ -17811,12 +17841,9 @@ }, /area/bigredv2/outside/admin_building) "aXk" = ( -/obj/structure/machinery/light{ - dir = 4 - }, +/obj/item/prop/alien/hugger, /turf/open/floor{ - dir = 4; - icon_state = "darkred2" + icon_state = "white" }, /area/bigredv2/outside/admin_building) "aXl" = ( @@ -17976,16 +18003,17 @@ /turf/open/floor/plating, /area/bigredv2/outside/cargo) "aXL" = ( +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ - dir = 10; + dir = 8; icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "aXM" = ( -/obj/structure/pipes/standard/simple/hidden/green, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ - dir = 8; - icon_state = "darkredcorners2" + dir = 4; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "aXN" = ( @@ -17994,12 +18022,16 @@ density = 0; req_one_access_txt = "200" }, +/obj/structure/machinery/light{ + dir = 8 + }, /turf/open/floor{ dir = 10; icon_state = "darkblue2" }, /area/bigredv2/outside/admin_building) "aXO" = ( +/obj/item/prop/alien/hugger, /turf/open/floor{ icon_state = "darkblue2" }, @@ -18082,22 +18114,23 @@ /area/bigredv2/outside/cargo) "aYh" = ( /obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/light{ - dir = 8 - }, /turf/open/floor{ dir = 8; - icon_state = "darkred2" + icon_state = "darkredcorners2" }, /area/bigredv2/outside/admin_building) "aYi" = ( /obj/effect/spawner/random/toolbox, +/obj/structure/platform_decoration, /turf/open/floor{ icon_state = "dark" }, /area/bigredv2/outside/admin_building) "aYk" = ( /obj/effect/landmark/survivor_spawner, +/obj/structure/platform_decoration{ + dir = 1 + }, /turf/open/floor{ icon_state = "dark" }, @@ -18119,23 +18152,33 @@ }, /area/bigredv2/outside/admin_building) "aYo" = ( -/obj/structure/machinery/door/airlock/almayer/generic{ - name = "\improper Operations Toilet" +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_y = -1 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ - icon_state = "delivery" + dir = 5; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "aYp" = ( +/obj/structure/machinery/door/airlock/almayer/generic{ + name = "\improper Operations Toilet" + }, /turf/open/floor{ - icon_state = "freezerfloor" + icon_state = "delivery" }, /area/bigredv2/outside/admin_building) "aYq" = ( -/obj/structure/machinery/light{ - dir = 1 - }, /obj/effect/landmark/objective_landmark/far, +/obj/structure/sink{ + pixel_x = 1; + pixel_y = 20 + }, +/obj/structure/mirror{ + pixel_y = 29 + }, /turf/open/floor{ icon_state = "freezerfloor" }, @@ -18144,6 +18187,10 @@ /obj/structure/toilet{ dir = 8 }, +/obj/item/prop/alien/hugger, +/obj/structure/machinery/light{ + dir = 4 + }, /turf/open/floor{ icon_state = "freezerfloor" }, @@ -18263,21 +18310,25 @@ }, /area/bigredv2/outside/c) "aYL" = ( +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ - dir = 8; - icon_state = "carpet6-2" + icon_state = "dark" }, /area/bigredv2/outside/admin_building) "aYM" = ( +/obj/item/prop/alien/hugger, /turf/open/floor{ - dir = 8; - icon_state = "carpet14-10" + dir = 4; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "aYN" = ( +/obj/structure/machinery/door/airlock/almayer/command/colony{ + dir = 1; + name = "\improper Operations Meeting Room" + }, /turf/open/floor{ - dir = 8; - icon_state = "carpet10-8" + icon_state = "delivery" }, /area/bigredv2/outside/admin_building) "aYO" = ( @@ -18294,6 +18345,7 @@ name = "Weyland-Yutani Automatic Teller Machine"; pixel_y = 30 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ dir = 1; icon_state = "darkred2" @@ -18303,6 +18355,7 @@ /obj/structure/machinery/light{ dir = 1 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ dir = 1; icon_state = "darkred2" @@ -18479,9 +18532,9 @@ /obj/structure/machinery/light{ dir = 8 }, +/obj/item/prop/alien/hugger, /turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" + icon_state = "wood" }, /area/bigredv2/outside/admin_building) "aZA" = ( @@ -18492,16 +18545,10 @@ /area/bigredv2/outside/admin_building) "aZB" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aZC" = ( -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aZE" = ( /turf/open/floor{ @@ -18587,27 +18634,26 @@ /turf/open/floor, /area/bigredv2/outside/cargo) "aZS" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/camera/autoname{ + dir = 1 + }, /turf/open/floor{ - dir = 8; - icon_state = "carpet7-3" + icon_state = "white" }, /area/bigredv2/outside/admin_building) "aZT" = ( /obj/structure/surface/table, -/obj/structure/machinery/computer3/laptop/secure_data, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/obj/structure/prop/server_equipment/laptop/on, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aZU" = ( -/obj/structure/bed/chair/office/dark{ +/obj/structure/bed/chair/comfy/blue{ dir = 8 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aZW" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -18831,13 +18877,10 @@ }, /area/bigredv2/outside/cargo) "baG" = ( -/obj/structure/bed/chair/office/dark{ +/obj/structure/bed/chair/comfy/blue{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "baI" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/comdoor/colony{ @@ -18849,6 +18892,7 @@ /area/bigredv2/outside/admin_building) "baJ" = ( /obj/structure/pipes/standard/simple/hidden/green, +/obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/admin_building) "baK" = ( @@ -18989,10 +19033,7 @@ "bbj" = ( /obj/structure/surface/table, /obj/item/alienjar, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "bbk" = ( /obj/structure/machinery/light{ @@ -19018,7 +19059,9 @@ /area/bigredv2/outside/admin_building) "bbm" = ( /obj/structure/surface/table, -/obj/structure/machinery/computer/med_data/laptop, +/obj/structure/machinery/computer/med_data/laptop{ + dir = 4 + }, /turf/open/floor{ dir = 8; icon_state = "carpet15-15" @@ -19033,11 +19076,14 @@ }, /area/bigredv2/outside/admin_building) "bbo" = ( -/obj/structure/bed/chair, +/obj/structure/bed/chair/comfy/blue, +/obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/admin_building) "bbp" = ( -/obj/structure/bed/chair, +/obj/structure/bed/sofa/south/grey/left{ + pixel_y = 6 + }, /obj/structure/machinery/atm{ name = "Weyland-Yutani Automatic Teller Machine"; pixel_y = 30 @@ -19045,7 +19091,9 @@ /turf/open/floor, /area/bigredv2/outside/admin_building) "bbq" = ( -/obj/structure/bed/chair, +/obj/structure/bed/sofa/south/grey{ + pixel_y = 6 + }, /obj/structure/machinery/light{ dir = 1 }, @@ -19055,6 +19103,7 @@ /obj/structure/surface/table, /obj/item/storage/photo_album, /obj/item/tool/pen/red, +/obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/admin_building) "bbs" = ( @@ -19276,14 +19325,16 @@ }, /area/bigredv2/outside/admin_building) "bbY" = ( -/obj/structure/bed/chair/office/dark, +/obj/structure/bed/chair/comfy/blue, /turf/open/floor{ icon_state = "wood" }, /area/bigredv2/outside/admin_building) "bbZ" = ( /obj/structure/surface/table, -/obj/structure/machinery/computer/cameras/wooden_tv, +/obj/structure/machinery/computer/cameras/wooden_tv{ + dir = 8 + }, /obj/structure/machinery/light{ dir = 4 }, @@ -19494,53 +19545,47 @@ /obj/structure/pipes/vents/pump{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/obj/item/prop/alien/hugger, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "bcF" = ( -/obj/structure/bed/chair/office/dark{ +/obj/structure/bed/chair/comfy/blue{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "bcG" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, -/turf/open/floor{ - dir = 8; - icon_state = "carpet11-12" - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "bcH" = ( /obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 + dir = 4 + }, +/turf/open/floor{ + icon_state = "wood" }, -/turf/open/floor, /area/bigredv2/outside/admin_building) "bcI" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ dir = 8; icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "bcJ" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, +/obj/structure/pipes/standard/simple/hidden/green, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ - dir = 4; + dir = 8; icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) @@ -19704,45 +19749,38 @@ }, /area/bigredv2/outside/c) "bdl" = ( +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ - dir = 8; - icon_state = "carpet9-4" + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "bdm" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 +/obj/structure/surface/table/woodentable, +/turf/open/floor{ + icon_state = "wood" }, -/turf/open/floor, /area/bigredv2/outside/admin_building) "bdn" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 - }, -/obj/structure/machinery/door/airlock/almayer/command/colony{ - name = "\improper Operations Meeting Room" +/obj/structure/machinery/light{ + dir = 1 }, +/obj/structure/surface/table/woodentable, +/obj/item/device/camera, /turf/open/floor{ - icon_state = "delivery" + icon_state = "wood" }, /area/bigredv2/outside/admin_building) "bdo" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 9 - }, /turf/open/floor{ - icon_state = "dark" + dir = 10; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "bdp" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - frequency = 1469; - name = "General Listening Channel"; - pixel_x = 30 - }, +/obj/effect/decal/cleanable/dirt, +/obj/item/prop/alien/hugger, /turf/open/floor{ - dir = 4; + dir = 6; icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) @@ -19755,6 +19793,7 @@ /area/bigredv2/outside/admin_building) "bdr" = ( /obj/structure/machinery/vending/snack, +/obj/effect/decal/cleanable/dirt, /turf/open/floor, /area/bigredv2/outside/admin_building) "bds" = ( @@ -19877,7 +19916,9 @@ /area/bigredv2/outside/cargo) "bdO" = ( /obj/structure/machinery/vending/coffee, -/turf/open/floor, +/turf/open/floor{ + icon_state = "wood" + }, /area/bigredv2/outside/admin_building) "bdP" = ( /obj/structure/machinery/photocopier, @@ -27127,6 +27168,15 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_se) +"bMa" = ( +/obj/structure/surface/rack, +/obj/item/weapon/gun/pistol/mod88, +/obj/item/weapon/gun/pistol/mod88, +/turf/open/floor{ + dir = 8; + icon_state = "redcorner" + }, +/area/bigredv2/outside/admin_building) "bMf" = ( /turf/open/floor{ icon_state = "asteroidwarning" @@ -27166,6 +27216,10 @@ icon_state = "mars_cave_18" }, /area/bigredv2/outside/lz2_west_cas) +"bQe" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor, +/area/bigredv2/outside/admin_building) "bQi" = ( /turf/open/floor{ icon_state = "darkish" @@ -27278,10 +27332,7 @@ "caN" = ( /obj/structure/surface/table, /obj/effect/landmark/objective_landmark/close, -/turf/open/floor{ - dir = 8; - icon_state = "carpet15-15" - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "ccP" = ( /obj/structure/surface/table, @@ -27489,6 +27540,10 @@ /obj/structure/surface/table/reinforced/prison, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"czS" = ( +/obj/effect/landmark/objective_landmark/medium, +/turf/open/floor/plating, +/area/bigredv2/outside/admin_building) "czV" = ( /obj/item/tool/pickaxe, /turf/open/mars_cave{ @@ -27588,6 +27643,23 @@ /obj/item/paper/bigred/smuggling, /turf/open/floor, /area/bigredv2/outside/cargo) +"cJa" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1 + }, +/obj/structure/machinery/door/airlock/almayer/command/colony{ + dir = 1; + name = "\improper Operations" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/admin_building) "cJh" = ( /obj/structure/bed/chair{ dir = 8; @@ -27701,6 +27773,14 @@ "cVY" = ( /turf/open/mars, /area/bigredv2/outside/space_port_lz2) +"cXG" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/admin_building) "cYI" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 @@ -27770,6 +27850,16 @@ icon_state = "mars_cave_2" }, /area/bigredv2/outside/filtration_cave_cas) +"din" = ( +/obj/structure/machinery/blackbox_recorder, +/obj/item/prop/almayer/flight_recorder/colony{ + pixel_x = -6; + pixel_y = 10 + }, +/turf/open/floor{ + icon_state = "podhatchfloor" + }, +/area/bigredv2/outside/admin_building) "dlr" = ( /obj/effect/landmark/static_comms/net_two, /turf/open/floor, @@ -27921,6 +28011,14 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"dBm" = ( +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "dBE" = ( /obj/item/trash/cigbutt/cigarbutt{ pixel_x = 2; @@ -28354,6 +28452,12 @@ }, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"eoU" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "w-y2" + }, +/area/bigredv2/outside/admin_building) "epe" = ( /turf/open/floor{ dir = 1; @@ -28640,6 +28744,15 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) +"eSN" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "eTj" = ( /obj/structure/reagent_dispensers/fueltank/gas, /turf/open/mars{ @@ -28773,6 +28886,15 @@ /obj/effect/landmark/static_comms/net_two, /turf/open/floor, /area/bigredv2/outside/engineering) +"fhy" = ( +/obj/structure/bed/chair/comfy/blue{ + dir = 8 + }, +/turf/open/floor{ + dir = 8; + icon_state = "carpet15-15" + }, +/area/bigredv2/outside/admin_building) "fhI" = ( /obj/effect/landmark/hunter_secondary, /turf/open/mars_cave{ @@ -29108,6 +29230,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"fPB" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/bigredv2/outside/admin_building) "fQv" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "A heavy duty power cable for high voltage applications"; @@ -29382,8 +29508,8 @@ /area/bigredv2/caves/lambda/breakroom) "gvI" = ( /obj/structure/transmitter/colony_net{ - do_not_disturb = 1; dir = 4; + do_not_disturb = 1; phone_category = "Lambda Labs"; phone_color = "red"; phone_id = "Secure Storage"; @@ -29563,6 +29689,19 @@ icon_state = "darkblue2" }, /area/bigredv2/caves/eta/research) +"gWU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "gXp" = ( /turf/open/mars_cave{ icon_state = "mars_cave_6" @@ -29652,6 +29791,15 @@ /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, /area/bigredv2/caves/eta/storage) +"hkY" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/turf/open/floor{ + dir = 4; + icon_state = "darkred2" + }, +/area/bigredv2/outside/admin_building) "hmm" = ( /turf/open/floor{ icon_state = "delivery" @@ -29757,6 +29905,13 @@ icon_state = "dark" }, /area/bigredv2/caves/lambda/research) +"hxs" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/obj/effect/landmark/objective_landmark/far, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/admin_building) "hyv" = ( /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, @@ -30289,6 +30444,17 @@ icon_state = "darkgreencorners2" }, /area/bigredv2/caves/eta/research) +"iDT" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "darkredcorners2" + }, +/area/bigredv2/outside/admin_building) "iDW" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_wall, /obj/effect/landmark/structure_spawner/setup/distress/xeno_wall, @@ -30455,6 +30621,14 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/filtration_plant) +"iZc" = ( +/obj/structure/stairs/perspective{ + icon_state = "p_stair_full" + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "iZh" = ( /obj/effect/decal/warning_stripes{ icon_state = "E-corner" @@ -30589,6 +30763,12 @@ /obj/structure/reagent_dispensers/fueltank/gas, /turf/open/floor/plating, /area/bigredv2/caves/mining) +"jna" = ( +/obj/item/prop/alien/hugger, +/turf/open/floor{ + icon_state = "darkred2" + }, +/area/bigredv2/outside/admin_building) "jnR" = ( /turf/open/floor{ dir = 9; @@ -30696,8 +30876,13 @@ }, /area/bigredv2/caves/lambda/virology) "jAm" = ( -/obj/structure/closet/secure_closet/personal/cabinet, -/obj/effect/landmark/objective_landmark/far, +/obj/structure/coatrack{ + pixel_x = -8; + pixel_y = 16 + }, +/obj/item/clothing/shoes/black{ + pixel_y = -7 + }, /turf/open/floor{ icon_state = "wood" }, @@ -31192,6 +31377,14 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) +"khP" = ( +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "khR" = ( /obj/structure/machinery/floodlight, /turf/open/mars_cave{ @@ -31417,6 +31610,13 @@ icon_state = "asteroidfloor" }, /area/bigredv2/outside/space_port_lz2) +"kIv" = ( +/obj/structure/curtain/red, +/obj/item/prop/alien/hugger, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/admin_building) "kIW" = ( /obj/structure/fence, /turf/open/floor{ @@ -31510,6 +31710,10 @@ "kRo" = ( /turf/open/floor/plating, /area/bigredv2/outside/telecomm/warehouse) +"kRK" = ( +/obj/structure/window/framed/solaris/reinforced, +/turf/open/floor/plating, +/area/bigredv2/outside/admin_building) "kSm" = ( /obj/item/storage/belt/grenade, /obj/structure/closet/crate, @@ -32141,13 +32345,9 @@ }, /area/bigredv2/caves/mining) "mrH" = ( -/obj/structure/machinery/blackbox_recorder, -/obj/item/prop/almayer/flight_recorder/colony{ - pixel_x = -6; - pixel_y = 10 - }, +/obj/structure/machinery/computer3/server, /turf/open/floor{ - icon_state = "dark" + icon_state = "podhatchfloor" }, /area/bigredv2/outside/admin_building) "mrS" = ( @@ -32263,6 +32463,16 @@ icon_state = "mars_cave_15" }, /area/bigredv2/outside/lz1_north_cas) +"mEH" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 1; + icon_state = "darkred2" + }, +/area/bigredv2/outside/admin_building) "mFT" = ( /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, /obj/effect/landmark/corpsespawner/russian, @@ -32280,7 +32490,7 @@ "mGS" = ( /obj/effect/landmark/static_comms/net_one, /turf/open/floor{ - icon_state = "dark" + icon_state = "podhatchfloor" }, /area/bigredv2/outside/admin_building) "mHp" = ( @@ -32371,6 +32581,18 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/c) +"mST" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "SE-out"; + pixel_x = 1; + pixel_y = -1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + dir = 8; + icon_state = "darkred2" + }, +/area/bigredv2/outside/admin_building) "mUy" = ( /turf/open/mars_cave{ icon_state = "mars_cave_7" @@ -32482,6 +32704,11 @@ icon_state = "mars_dirt_6" }, /area/bigredv2/outside/lz2_south_cas) +"nky" = ( +/obj/structure/machinery/vending/coffee, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor, +/area/bigredv2/outside/admin_building) "nkQ" = ( /turf/open/mars_cave{ icon_state = "mars_cave_23" @@ -32584,6 +32811,16 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"nuw" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NE-out"; + pixel_x = 1; + pixel_y = 1 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "nwS" = ( /obj/item/ore{ pixel_x = -7; @@ -32843,6 +33080,14 @@ /obj/item/tool/warning_cone, /turf/open/mars, /area/bigredv2/outside/s) +"nZD" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "nZK" = ( /obj/item/ore/diamond, /obj/item/stack/sheet/mineral/diamond{ @@ -32984,6 +33229,12 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"ole" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "w-y0" + }, +/area/bigredv2/outside/admin_building) "olT" = ( /obj/effect/landmark/corpsespawner/engineer, /turf/open/shuttle/escapepod{ @@ -33204,12 +33455,30 @@ icon_state = "vault" }, /area/bigredv2/outside/general_offices) +"oDW" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor{ + dir = 8; + icon_state = "darkred2" + }, +/area/bigredv2/outside/admin_building) "oEJ" = ( /obj/structure/surface/table, /obj/effect/spawner/random/toolbox, /obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot, /turf/open/floor, /area/bigredv2/outside/cargo) +"oFY" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/item/prop/alien/hugger, +/turf/open/floor{ + dir = 8; + icon_state = "darkred2" + }, +/area/bigredv2/outside/admin_building) "oIc" = ( /obj/effect/decal/cleanable/blood{ base_icon = 'icons/obj/items/weapons/grenade.dmi'; @@ -33378,6 +33647,16 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves_sw) +"oWe" = ( +/obj/structure/machinery/photocopier{ + density = 0; + pixel_y = 16 + }, +/turf/open/floor{ + dir = 1; + icon_state = "darkblue2" + }, +/area/bigredv2/outside/admin_building) "oWC" = ( /obj/structure/prop/invuln/minecart_tracks{ desc = "A heavy duty power cable for high voltage applications"; @@ -33500,6 +33779,12 @@ icon_state = "mars_dirt_10" }, /area/bigredv2/outside/filtration_plant) +"pdG" = ( +/obj/item/prop/alien/hugger, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/admin_building) "pdN" = ( /obj/effect/landmark/nightmare{ insert_tag = "lz1entrance" @@ -33653,6 +33938,31 @@ icon_state = "mars_cave_14" }, /area/bigredv2/caves/mining) +"pxH" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) +"pyU" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "SW-out"; + pixel_y = -1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "pBD" = ( /turf/open/floor{ dir = 4; @@ -33756,6 +34066,16 @@ icon_state = "darkred2" }, /area/bigredv2/caves/eta/research) +"pNU" = ( +/obj/structure/bed, +/obj/item/prop/alien/hugger, +/obj/item/bedsheet/brown{ + layer = 3.1 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/admin_building) "pOL" = ( /obj/structure/closet/crate/miningcar/yellow, /turf/open/mars_cave{ @@ -34060,6 +34380,12 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) +"qoN" = ( +/obj/structure/pipes/standard/manifold/hidden/green, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "qpn" = ( /obj/item/tool/warning_cone{ pixel_x = -6 @@ -34126,6 +34452,16 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"qyi" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "NW-out"; + pixel_y = 1 + }, +/turf/open/floor{ + dir = 4; + icon_state = "darkredcorners2" + }, +/area/bigredv2/outside/admin_building) "qzO" = ( /obj/structure/blocker/forcefield/multitile_vehicles, /obj/structure/machinery/door/poddoor/almayer/closed{ @@ -34332,6 +34668,13 @@ icon_state = "mars_cave_17" }, /area/bigredv2/caves/mining) +"qXi" = ( +/obj/structure/surface/table/woodentable, +/obj/item/device/pinpointer, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/admin_building) "qYY" = ( /obj/structure/prop/invuln/minecart_tracks{ dir = 8 @@ -34508,6 +34851,16 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"rpI" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5 + }, +/turf/open/floor{ + dir = 4; + icon_state = "darkred2" + }, +/area/bigredv2/outside/admin_building) "rqa" = ( /obj/structure/tunnel{ id = "hole4" @@ -35229,6 +35582,15 @@ icon_state = "delivery" }, /area/bigredv2/caves_lambda) +"szi" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "darkred2" + }, +/area/bigredv2/outside/admin_building) "szw" = ( /turf/open/mars_cave{ icon_state = "mars_dirt_6" @@ -35351,7 +35713,7 @@ }, /area/bigredv2/caves_sw) "sLS" = ( -/obj/effect/landmark/objective_landmark/medium, +/obj/structure/machinery/suit_storage_unit/carbon_unit, /turf/open/floor/plating, /area/bigredv2/outside/admin_building) "sNQ" = ( @@ -35390,6 +35752,17 @@ icon_state = "mars_cave_23" }, /area/bigredv2/outside/lz1_telecomm_cas) +"sRy" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door/airlock/almayer/command/colony{ + name = "\improper Operations Meeting Room" + }, +/turf/open/floor{ + icon_state = "delivery" + }, +/area/bigredv2/outside/admin_building) "sSU" = ( /turf/open/mars_cave{ icon_state = "mars_cave_19" @@ -35460,6 +35833,12 @@ icon_state = "dark" }, /area/bigredv2/caves/eta/xenobiology) +"tap" = ( +/obj/structure/machinery/message_server, +/turf/open/floor{ + icon_state = "podhatchfloor" + }, +/area/bigredv2/outside/admin_building) "tcb" = ( /obj/structure/surface/table/reinforced/prison, /obj/item/pizzabox/meat, @@ -35625,6 +36004,11 @@ icon_state = "mars_dirt_4" }, /area/bigredv2/caves_research) +"toA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/prop/alien/hugger, +/turf/open/floor, +/area/bigredv2/outside/admin_building) "tpR" = ( /obj/structure/bed/chair{ dir = 4; @@ -35778,6 +36162,12 @@ icon_state = "platingdmg3" }, /area/bigredv2/caves/mining) +"tBD" = ( +/turf/open/floor/almayer{ + dir = 1; + icon_state = "w-y1" + }, +/area/bigredv2/outside/admin_building) "tBK" = ( /obj/structure/surface/rack, /obj/item/tool/pickaxe{ @@ -35871,6 +36261,19 @@ }, /turf/open/floor, /area/bigred/ground/garage_workshop) +"tJn" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "E"; + pixel_x = 1 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "tJv" = ( /obj/structure/tunnel{ id = "hole3" @@ -36173,6 +36576,7 @@ /area/bigred/ground/garage_workshop) "upV" = ( /obj/structure/pipes/standard/simple/hidden/green, +/obj/effect/decal/cleanable/dirt, /turf/open/floor{ icon_state = "delivery" }, @@ -36381,6 +36785,16 @@ icon_state = "mars_cave_2" }, /area/bigredv2/caves/mining) +"uKH" = ( +/obj/structure/stairs/perspective{ + dir = 6; + icon_state = "p_stair_full" + }, +/turf/open/floor{ + dir = 1; + icon_state = "darkred2" + }, +/area/bigredv2/outside/admin_building) "uNW" = ( /obj/effect/decal/cleanable/blood{ dir = 8; @@ -36659,6 +37073,15 @@ icon_state = "mars_cave_3" }, /area/bigredv2/caves/mining) +"vpx" = ( +/obj/structure/platform, +/obj/structure/flora/jungle/planttop1{ + pixel_y = 10 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "vpY" = ( /obj/structure/machinery/door/poddoor/almayer/closed{ id = "eta"; @@ -36865,6 +37288,19 @@ icon_state = "mars_cave_5" }, /area/bigredv2/caves_virology) +"vOs" = ( +/obj/structure/coatrack{ + pixel_x = 12 + }, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/suit/storage/windbreaker/windbreaker_gray{ + pixel_x = 11; + pixel_y = 4 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/admin_building) "vPP" = ( /obj/effect/decal/cleanable/blood/drip{ pixel_x = 6 @@ -37018,6 +37454,22 @@ /obj/effect/decal/cleanable/dirt, /turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/mining) +"wfk" = ( +/obj/structure/filingcabinet/medical{ + density = 0; + pixel_x = -8; + pixel_y = 16 + }, +/obj/structure/filingcabinet/medical{ + density = 0; + pixel_x = 7; + pixel_y = 16 + }, +/obj/effect/landmark/objective_landmark/close, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/admin_building) "wfm" = ( /obj/structure/bed/chair{ buckling_y = 5; @@ -37223,6 +37675,12 @@ icon_state = "delivery" }, /area/bigredv2/caves/lambda/virology) +"wxo" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor{ + icon_state = "asteroidwarning" + }, +/area/bigredv2/outside/c) "wBi" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -37288,6 +37746,24 @@ /obj/structure/closet/firecloset/full, /turf/open/mars, /area/bigredv2/outside/c) +"wGD" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "W"; + layer = 2.5 + }, +/obj/item/prop/alien/hugger, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "wGF" = ( /obj/item/tool/warning_cone, /turf/open/floor{ @@ -37301,6 +37777,16 @@ icon_state = "asteroidwarning" }, /area/bigredv2/outside/c) +"wHx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/turf/open/floor{ + dir = 4; + icon_state = "darkredcorners2" + }, +/area/bigredv2/outside/admin_building) "wIw" = ( /obj/effect/landmark/structure_spawner/xvx_hive/xeno_door, /obj/effect/landmark/structure_spawner/setup/distress/xeno_door, @@ -37503,6 +37989,15 @@ icon_state = "mars_dirt_7" }, /area/bigredv2/caves/mining) +"xej" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S"; + pixel_y = -1 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "xeN" = ( /obj/effect/landmark/lv624/xeno_tunnel, /turf/open/mars_cave{ @@ -37803,6 +38298,14 @@ }, /turf/open/floor, /area/bigredv2/outside/engineering) +"xBn" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) "xBr" = ( /obj/item/ore{ pixel_x = 9 @@ -37889,6 +38392,13 @@ /obj/structure/prop/server_equipment/yutani_server, /turf/open/floor/greengrid, /area/bigredv2/caves/lambda/research) +"xKG" = ( +/obj/structure/bed/sofa/south/grey/right{ + pixel_y = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor, +/area/bigredv2/outside/admin_building) "xLM" = ( /obj/structure/machinery/light{ dir = 1 @@ -54602,7 +55112,7 @@ aHF aHF apC apC -apC +apJ apJ apJ apC @@ -54612,7 +55122,7 @@ apC apC apJ apJ -apC +apJ apC apC apC @@ -54825,19 +55335,19 @@ aRT aof aTV mGS -aTV +tap aof aNK aXL +bdo aof -aYL -aZz -aZS -aZS -aZS -aZS aZz -bcM +aOO +aOO +aOO +aOO +cXG +aOO apC apC aHD @@ -55038,23 +55548,23 @@ aGD aMf aPL aMf -aMf +aXk aof aTV -aOM aTV +din aof -aNL -aUb +aWH +aOM +jna asT -aYM -aZA -aZA +aZC +aZC baG -aZA +aZC baG -aZA -bcN +aZC +aOO bdO apC aHD @@ -55258,21 +55768,21 @@ aQW aRU aof aTU -aOM +wGD aTV aof aYU +aOM aUb asT -aYM aZB aZT aIY bbj caN bcE -bcN -aYO +aOO +aOO apC aHD aBR @@ -55466,7 +55976,7 @@ awQ aJl aKo aKo -aKo +aSX aMF aNz aKo @@ -55475,21 +55985,21 @@ aQX aRV aof aTV -aOM +gWU aVS aof aXg +aOM aUb -asT -aYM -aZA +aof +aZC aZU -aZA +aZC aZU -aZA +aZC bcF -bcN -aYO +aOO +aOO apD aHD aBR @@ -55683,7 +56193,7 @@ aDN ayN aKp aQW -aMf +aTb kmm aNA aMf @@ -55691,13 +56201,13 @@ aMf aQY aMf aSQ +tJn +pyU +tJn +cJa +iZc aOM aOM -aOM -aSQ -aNL -aUb -asT aYN aZC aZC @@ -55705,8 +56215,8 @@ aZC aZC aZC bcG -bdl -aYO +aOO +aOO apD aHD aBR @@ -55908,22 +56418,22 @@ aPM aQZ aRX aof -aTX +mrH aVj mrH aof -aNL +uKH +aOM aUb -asT -aYO -aYO -aYO -aYO -aYO -aYO +aof +aOO +aOO +aOO +aOO +aOO bcH -bdm -aYO +aOO +aOO apC aHD aBR @@ -56118,7 +56628,7 @@ alu aKq aHF aHF -apC +apD aNC aMf aPN @@ -56130,19 +56640,19 @@ aof aof aof aNL +aOM aUb aof -asT -asT -asT +aof asT asT asT aof -bdn +sRy +aof aof apC -aHD +wxo aBR aBR bhi @@ -56337,9 +56847,9 @@ aHF aHF apD aND +aXk aMf -aMf -aQZ +aZS aof aSR aTY @@ -56347,19 +56857,19 @@ aTY aTY aWC aXj -aXM +aOI aYh -aRd -aRd +oDW +oFY bcI -aRd +bcJ aRd aVl -bcI +qoN bdo -aXL -apC -aHD +apD +bhU +wxo aBR aBR bhi @@ -56561,21 +57071,21 @@ aof aSS aTZ aVk -aVk +bMa aof -aSV +mEH aOM aYi -aOM -aOM +xBn +nZD aPS aOM aOM aOM aPS -aOM -aUb -apC +bdl +apD +bhU aHD aBR aBR @@ -56780,19 +57290,19 @@ aof aof aof aof -aSV -aOM +mEH aOM +vpx aFd -aOM +khP aZW aOK bbk aOK -bcJ +aPS bdp -aUc -apC +apD +aHF aHD aBR aBR @@ -56996,12 +57506,12 @@ aST aRd aVl aRd -aRd +bcJ aSW aOM aYk -aOM -aOM +dBm +pxH aZX aof aof @@ -57211,11 +57721,11 @@ aRc aof aSU aUa +aXM aOK aOK aOK -aXk -aOK +hkY aYl aYS aOM @@ -57427,11 +57937,11 @@ aof aof aof aSV -aUb -aof -aof +bdl aof aof +kRK +kRK aof aof aYT @@ -57641,17 +58151,17 @@ apD aNI aRd bcI -aRd +bcJ aRY aSW -aUb -aof +bdl +kRK aVT aWD aWD aXN -aof -aYU +kRK +aWH aOM aZY aof @@ -57659,7 +58169,7 @@ bbm aJb bcN aof -aJT +wfk apC aHD aIn @@ -57855,27 +58365,27 @@ aBR aBR aMc apD -aNJ -aOK +aUd +aXM aPS aOM aOK aOK aUc -aof +aYm aVU aOM aOM aXO -aof +kRK aNL aOM aZX aof -aZU +fhy aZA bcN -aOO +kIv aOO apC aHD @@ -58290,21 +58800,21 @@ aBR aMc apD aNK -aOL +aXL aPS aOM aof wvK -aSX +wvK aof -aVU +oWe aOM aXl aXP aof aNL aOM -aZX +szi aof aNQ aOO @@ -58512,16 +59022,16 @@ aPS aOM aRZ aTa -aUd -aof +aTa +aRZ aVU aWE aXm aXQ -aof +kRK aYV aOM -aZX +szi aof aOO bbY @@ -58729,12 +59239,12 @@ aPS aUb aof aSZ -aTa +czS aof aVW aWF aof -aof +kRK aof aYU aOM @@ -58943,18 +59453,18 @@ apC aNN aOM aPS -aUb +bdl aof sLS aUe aof aVX aWG -aof +kRK aNK -aOL -aYW -aOM +mST +iDT +nuw aZX aof aof @@ -59157,7 +59667,7 @@ aBR aBR aMc apD -aNL +aWH aOM aPS aRh @@ -59165,20 +59675,20 @@ aof aof aof aof +kRK +kRK aof -aof -aof -aNL -aOM -aOM -aOM +aWH +xej +ole +eSN aPS baI aYO bca bcQ bdr -bdO +nky apC beC aNw @@ -59378,24 +59888,24 @@ aNL aOM aPV aRi -aOL -aOL +aXL +aXL aUf aVm aOL aOL aOL aYW -aOM -aOM -aOM +xej +tBD +eSN aZZ upV baJ bcb bcR bcc -aYO +toA apC aTh aIn @@ -59591,28 +60101,28 @@ aKr aBR aMc apC -aNJ -aOM -aOK +aUd +aYL +aYM aOK aOK aOM aOK aOK aOK -aOM -aOK -aOK -aOM +aYL +aXM aOK -aYS -aUb +wHx +eoU +eSN +bdl aof bbo bcc bcS bcc -aYO +bQe apD aTh aIn @@ -59821,9 +60331,9 @@ aON aof aof aYo -aof -aNL -aUb +rpI +qyi +bdl aof bbp bcc @@ -60029,17 +60539,17 @@ aNO aOO aPW aof -aNO +bdm aOO -aPW +vOs aof jAm aOO -aPW +hxs aof aYp aof -aNL +aWH aUb aof bbq @@ -60246,20 +60756,20 @@ aNP aOO aOO aof -aNP +bdn aOO aOO aof aNP -aOO -aOO +pdG +qXi aof aYq aof -aNL +aWH aUb aof -bbo +xKG aTa bcV bdt @@ -60463,12 +60973,12 @@ aNQ aGG aPX aof -aNQ -aTb +pNU +aOO aUg aof aNQ -aWH +aOO aXn aof aYr @@ -60477,10 +60987,10 @@ aNJ aUc aof bbr +toA aYO -aYO -aTa -aYO +fPB +bQe bek bjZ aMg diff --git a/maps/map_files/BigRed/sprinkles/40.admin_pmc.dmm b/maps/map_files/BigRed/sprinkles/40.admin_pmc.dmm index e2b3e939a2..7a66b24228 100644 --- a/maps/map_files/BigRed/sprinkles/40.admin_pmc.dmm +++ b/maps/map_files/BigRed/sprinkles/40.admin_pmc.dmm @@ -2,10 +2,6 @@ "ab" = ( /turf/closed/wall/solaris/reinforced, /area/bigredv2/outside/admin_building) -"ac" = ( -/obj/effect/acid_hole, -/turf/closed/wall/solaris, -/area/bigredv2/outside/admin_building) "ad" = ( /obj/structure/window/framed/solaris, /turf/open/floor/plating, @@ -15,88 +11,68 @@ /area/bigredv2/outside/admin_building) "af" = ( /obj/structure/pipes/standard/simple/hidden/green, -/obj/structure/machinery/light{ - dir = 8 - }, /obj/effect/decal/cleanable/blood/xeno, /turf/open/floor{ - icon_state = "darkred2"; - dir = 8 + dir = 8; + icon_state = "darkredcorners2" }, /area/bigredv2/outside/admin_building) "ag" = ( /obj/effect/spawner/random/toolbox, +/obj/structure/platform_decoration, /turf/open/floor{ icon_state = "dark" }, /area/bigredv2/outside/admin_building) "ai" = ( /obj/effect/landmark/survivor_spawner, +/obj/structure/platform_decoration{ + dir = 1 + }, /turf/open/floor{ icon_state = "dark" }, /area/bigredv2/outside/admin_building) "aj" = ( +/turf/open/floor{ + icon_state = "darkred2" + }, +/area/bigredv2/outside/admin_building) +"ak" = ( /obj/structure/window_frame/solaris, /obj/item/shard, /turf/open/floor/plating, /area/bigredv2/outside/admin_building) -"ak" = ( -/obj/structure/barricade/metal/wired{ - icon_state = "metal_2"; - dir = 1 - }, -/turf/open/floor{ - icon_state = "carpet14-10"; - dir = 8 - }, -/area/bigredv2/outside/admin_building) "al" = ( -/obj/structure/barricade/metal/wired{ - dir = 1 +/obj/structure/machinery/door/airlock/almayer/command/colony{ + dir = 1; + name = "\improper Operations Meeting Room" }, /turf/open/floor{ - icon_state = "carpet10-8"; - dir = 8 + icon_state = "delivery" }, /area/bigredv2/outside/admin_building) "am" = ( -/obj/structure/barricade/metal/wired{ - dir = 1 - }, -/obj/structure/barricade/metal/wired{ - icon_state = "metal_2"; - dir = 4 +/obj/structure/platform, +/obj/structure/flora/jungle/planttop1{ + pixel_y = 10 }, -/obj/item/ammo_magazine/rifle{ - current_rounds = 0; - pixel_x = -9; - pixel_y = -4 +/turf/open/floor{ + icon_state = "dark" }, -/turf/open/floor, /area/bigredv2/outside/admin_building) "an" = ( /obj/structure/pipes/standard/simple/hidden/green, /turf/open/floor{ - icon_state = "darkred2"; - dir = 8 + dir = 8; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "ap" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced, -/turf/open/jungle{ - bushes_spawn = 0; - icon_state = "grass_impenetrable" +/obj/structure/flora/jungle/plantbot1{ + pixel_y = 10 }, +/turf/open/jungle, /area/bigredv2/outside/admin_building) "ar" = ( /obj/structure/machinery/light{ @@ -106,38 +82,30 @@ icon_state = "gib6" }, /turf/open/floor{ - icon_state = "carpet7-3"; - dir = 8 - }, -/area/bigredv2/outside/admin_building) -"as" = ( -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 + icon_state = "wood" }, /area/bigredv2/outside/admin_building) "at" = ( /obj/structure/bed/chair/comfy/black, -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "au" = ( /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/floor{ - icon_state = "carpet11-12"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "av" = ( /obj/structure/barricade/metal/wired{ - icon_state = "metal_2"; - dir = 4 + dir = 4; + icon_state = "metal_2" + }, +/turf/open/floor{ + icon_state = "wood" }, -/turf/open/floor, /area/bigredv2/outside/admin_building) "aw" = ( +/obj/structure/platform_decoration{ + dir = 8 + }, /obj/effect/decal/cleanable/blood/xeno, /turf/open/floor{ icon_state = "dark" @@ -151,33 +119,23 @@ "aA" = ( /obj/effect/landmark/corpsespawner/wygoon, /turf/open/floor{ - icon_state = "carpet7-3"; - dir = 8 + icon_state = "wood" }, /area/bigredv2/outside/admin_building) "aB" = ( /obj/structure/surface/table, -/obj/structure/machinery/computer3/laptop/secure_data, -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 - }, +/obj/structure/prop/server_equipment/laptop/on, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aC" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8 - }, -/turf/open/floor{ - icon_state = "carpet15-15"; +/obj/structure/bed/chair/comfy/blue{ dir = 8 }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aD" = ( -/obj/item/stack/sheet/metal/small_stack, -/turf/open/floor{ - icon_state = "carpet6-2"; - dir = 8 - }, +/obj/effect/acid_hole, +/turf/closed/wall/solaris, /area/bigredv2/outside/admin_building) "aG" = ( /obj/structure/pipes/standard/simple/hidden/green{ @@ -196,20 +154,11 @@ icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) -"aI" = ( -/turf/open/floor{ - icon_state = "carpet7-3"; - dir = 8 - }, -/area/bigredv2/outside/admin_building) "aJ" = ( -/obj/structure/bed/chair/office/dark{ +/obj/structure/bed/chair/comfy/blue{ dir = 4 }, -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aK" = ( /obj/structure/surface/table, @@ -219,54 +168,41 @@ name = "dented M4A3 service pistol" }, /obj/item/ammo_magazine/pistol/rubber, -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aL" = ( /obj/structure/reagent_dispensers/fueltank, -/turf/open/floor{ - icon_state = "carpet11-12"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aM" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/structure/barricade/sandbags/wired, /turf/open/floor{ - icon_state = "darkred2"; - dir = 8 + dir = 8; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "aN" = ( /obj/structure/barricade/sandbags/wired, /turf/open/floor{ - icon_state = "darkred2"; - dir = 4 + dir = 4; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "aO" = ( /obj/item/storage/secure/briefcase, -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aP" = ( /obj/structure/barricade/metal/wired{ dir = 4 }, -/turf/open/floor, -/area/bigredv2/outside/admin_building) -"aQ" = ( /turf/open/floor{ - icon_state = "carpet11-12"; - dir = 8 + icon_state = "wood" }, /area/bigredv2/outside/admin_building) -"aR" = ( -/turf/open/floor, +"aQ" = ( +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aS" = ( /obj/item/ammo_magazine/rifle/rubber{ @@ -274,10 +210,7 @@ pixel_x = -3; pixel_y = -6 }, -/turf/open/floor{ - icon_state = "carpet11-12"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aT" = ( /obj/effect/decal/cleanable/blood, @@ -291,38 +224,32 @@ }, /obj/item/storage/toolbox/syndicate, /turf/open/floor{ - icon_state = "darkred2"; - dir = 4 + dir = 4; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "aV" = ( /obj/structure/surface/table, /obj/item/ammo_magazine/rifle/rubber, -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aW" = ( /obj/effect/decal/cleanable/blood, /obj/item/tool/weldingtool, -/turf/open/floor{ - icon_state = "carpet11-12"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "aX" = ( /obj/structure/pipes/standard/simple/hidden/green, /obj/effect/landmark/crap_item, /turf/open/floor{ - icon_state = "darkred2"; - dir = 8 + dir = 8; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "aY" = ( /turf/open/floor{ - icon_state = "darkred2"; - dir = 4 + dir = 4; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "aZ" = ( @@ -338,8 +265,7 @@ num_of_magazines = 2 }, /turf/open/floor{ - icon_state = "carpet7-3"; - dir = 8 + icon_state = "wood" }, /area/bigredv2/outside/admin_building) "ba" = ( @@ -348,52 +274,45 @@ dir = 4 }, /obj/item/clothing/head/helmet/marine/veteran/pmc/leader, -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "bb" = ( -/obj/structure/bed/chair/office/dark{ +/obj/structure/bed/chair/comfy/blue{ dir = 8 }, /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/landmark/corpsespawner/wygoon, -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "bc" = ( /obj/structure/pipes/standard/simple/hidden/green{ dir = 4 }, /obj/effect/decal/cleanable/blood, -/turf/open/floor{ - icon_state = "carpet11-12"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "bd" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 10 - }, /obj/item/ammo_magazine/rifle{ current_rounds = 0; pixel_x = -8; pixel_y = 9 }, -/turf/open/floor, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "wood" + }, /area/bigredv2/outside/admin_building) "be" = ( /obj/structure/pipes/standard/manifold/hidden/green{ dir = 8 }, /turf/open/floor{ - icon_state = "darkred2"; - dir = 8 + dir = 8; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "bf" = ( @@ -409,8 +328,8 @@ dir = 4 }, /turf/open/floor{ - icon_state = "darkred2"; - dir = 4 + dir = 4; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "bh" = ( @@ -429,43 +348,28 @@ num_of_magazines = 1 }, /turf/open/floor{ - icon_state = "carpet5-1"; - dir = 8 - }, -/area/bigredv2/outside/admin_building) -"bj" = ( -/turf/open/floor{ - icon_state = "carpet13-5"; - dir = 8 - }, -/area/bigredv2/outside/admin_building) -"bk" = ( -/turf/open/floor{ - icon_state = "carpet9-4"; - dir = 8 + icon_state = "wood" }, /area/bigredv2/outside/admin_building) "bl" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 5 +/turf/open/floor{ + icon_state = "wood" }, -/turf/open/floor, /area/bigredv2/outside/admin_building) "bm" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 4 +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/machinery/light{ + dir = 8 }, -/obj/structure/machinery/door/airlock/almayer/command/colony{ - name = "\improper Operations Meeting Room" +/turf/open/floor{ + dir = 8; + icon_state = "darkred2" }, -/turf/open/floor, /area/bigredv2/outside/admin_building) "bn" = ( -/obj/structure/pipes/standard/simple/hidden/green{ - dir = 9 - }, /turf/open/floor{ - icon_state = "dark" + dir = 10; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "bo" = ( @@ -476,30 +380,21 @@ pixel_x = 30 }, /turf/open/floor{ - icon_state = "darkred2"; - dir = 4 + dir = 6; + icon_state = "darkred2" }, /area/bigredv2/outside/admin_building) "bp" = ( /obj/structure/machinery/vending/coffee, /turf/open/floor, /area/bigredv2/outside/admin_building) -"bq" = ( -/turf/open/floor{ - icon_state = "darkred2"; - dir = 10 - }, -/area/bigredv2/outside/admin_building) -"br" = ( -/turf/open/floor{ - icon_state = "darkred2" - }, -/area/bigredv2/outside/admin_building) "bs" = ( -/turf/open/floor{ - icon_state = "darkred2"; - dir = 6 +/obj/structure/window/framed/solaris/reinforced, +/obj/structure/machinery/door/poddoor/shutters/almayer{ + id = "Operations"; + name = "\improper Operations Shutters" }, +/turf/open/floor/plating, /area/bigredv2/outside/admin_building) "dp" = ( /obj/item/ammo_magazine/rifle/rubber{ @@ -507,28 +402,24 @@ pixel_x = -6; pixel_y = -4 }, -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "is" = ( /obj/item/ammo_magazine/pistol/rubber{ current_rounds = 0 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "wood" + }, /area/bigredv2/outside/admin_building) "jq" = ( /obj/item/weapon/gun/rifle/m41a/corporate{ current_mag = /obj/item/ammo_magazine/rifle/rubber; + desc = "A Weyland-Yutani creation, this M41A MK2 comes equipped in corporate white. Uses 10x24mm caseless ammunition. It seems to be pretty battered and broken up."; name = "battered M41A pulse rifle MK2"; - pixel_x = 4; - desc = "A Weyland-Yutani creation, this M41A MK2 comes equipped in corporate white. Uses 10x24mm caseless ammunition. It seems to be pretty battered and broken up." - }, -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 + pixel_x = 4 }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "lz" = ( /obj/item/ammo_magazine/rifle/rubber{ @@ -536,8 +427,7 @@ pixel_y = 11 }, /turf/open/floor{ - icon_state = "carpet7-3"; - dir = 8 + icon_state = "wood" }, /area/bigredv2/outside/admin_building) "rv" = ( @@ -545,8 +435,7 @@ current_rounds = 0 }, /turf/open/floor{ - icon_state = "carpet7-3"; - dir = 8 + icon_state = "wood" }, /area/bigredv2/outside/admin_building) "si" = ( @@ -564,15 +453,52 @@ pixel_y = 17 }, /turf/open/floor{ - icon_state = "carpet13-5"; - dir = 8 + icon_state = "wood" }, /area/bigredv2/outside/admin_building) "uv" = ( /obj/item/ammo_magazine/rifle{ current_rounds = 0; - pixel_y = 7; - pixel_x = -9 + pixel_x = -9; + pixel_y = 7 + }, +/turf/open/floor{ + icon_state = "wood" + }, +/area/bigredv2/outside/admin_building) +"vH" = ( +/obj/structure/platform{ + dir = 8 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) +"vO" = ( +/obj/structure/platform{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) +"yf" = ( +/obj/structure/platform_decoration{ + dir = 4 + }, +/turf/open/floor{ + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) +"za" = ( +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 + }, +/obj/structure/machinery/door/airlock/almayer/command/colony{ + name = "\improper Operations Meeting Room" + }, +/obj/structure/pipes/standard/simple/hidden/green{ + dir = 4 }, /turf/open/floor, /area/bigredv2/outside/admin_building) @@ -580,17 +506,25 @@ /obj/item/ammo_magazine/pistol/rubber{ current_rounds = 0 }, -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) "Br" = ( /obj/structure/surface/table, /obj/item/storage/firstaid/regular/empty, +/turf/open/floor/carpet, +/area/bigredv2/outside/admin_building) +"ND" = ( +/obj/structure/pipes/standard/manifold/hidden/green, /turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 + icon_state = "dark" + }, +/area/bigredv2/outside/admin_building) +"Pk" = ( +/obj/structure/platform{ + dir = 1 + }, +/turf/open/floor{ + icon_state = "dark" }, /area/bigredv2/outside/admin_building) "QR" = ( @@ -600,7 +534,9 @@ /obj/item/ammo_magazine/pistol/rubber{ current_rounds = 0 }, -/turf/open/floor, +/turf/open/floor{ + icon_state = "wood" + }, /area/bigredv2/outside/admin_building) "Sz" = ( /obj/item/ammo_magazine/rifle/rubber{ @@ -608,14 +544,11 @@ pixel_x = 5; pixel_y = -5 }, -/turf/open/floor{ - icon_state = "carpet15-15"; - dir = 8 - }, +/turf/open/floor/carpet, /area/bigredv2/outside/admin_building) (1,1,1) = {" -ab +aj ab ab ab @@ -627,12 +560,12 @@ ab ab "} (2,1,1) = {" -ac +aj aD ar aA lz -aI +bl rv aZ bi @@ -646,7 +579,7 @@ AC aJ aO aJ -as +aQ si bp "} @@ -659,23 +592,23 @@ aK Br aV ba -bj +bl uv "} (5,1,1) = {" aj -ak +ae jq aC -as +aQ aC Sz bb -bj -aR +bl +bl "} (6,1,1) = {" -ad +ay al au aW @@ -683,12 +616,12 @@ aL aS aQ bc -bk +bl is "} (7,1,1) = {" -ad -am +aj +ae av aP aP @@ -696,35 +629,35 @@ QR aP bd bl -aR +bl "} (8,1,1) = {" -ae -aj aj -ad +ae +ae ad ad ad ae -bm +za +ae ae "} (9,1,1) = {" af -an +bm an be aM an aX -be +ND bn -bq +bs "} (10,1,1) = {" ag -ay +vO aw bf ay @@ -732,12 +665,12 @@ aT ay bf ay -br +bs "} (11,1,1) = {" -ay +am ap -ay +Pk aG aN aU @@ -748,8 +681,8 @@ bs "} (12,1,1) = {" ai -ay -ay +vH +yf aH ae ae diff --git a/maps/map_files/BigRed/standalone/medbay-passage.dmm b/maps/map_files/BigRed/standalone/medbay-passage.dmm index 75d323f011..d5b7db11d8 100644 --- a/maps/map_files/BigRed/standalone/medbay-passage.dmm +++ b/maps/map_files/BigRed/standalone/medbay-passage.dmm @@ -61,6 +61,31 @@ "m" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/oil, +/obj/structure/stairs/perspective{ + dir = 5; + icon_state = "p_stair_full" + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/c) +"n" = ( +/obj/structure/stairs/perspective{ + dir = 9; + icon_state = "p_stair_full" + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/c) +"w" = ( +/obj/structure/pipes/standard/simple/hidden/green, +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, /turf/open/floor{ dir = 1; icon_state = "asteroidfloor" @@ -83,6 +108,16 @@ icon_state = "white" }, /area/bigredv2/outside/admin_building) +"X" = ( +/obj/structure/stairs/perspective{ + dir = 1; + icon_state = "p_stair_full" + }, +/turf/open/floor{ + dir = 1; + icon_state = "asteroidfloor" + }, +/area/bigredv2/outside/c) (1,1,1) = {" a @@ -97,7 +132,7 @@ a a c h -l +n R "} (3,1,1) = {" @@ -105,7 +140,7 @@ a a d i -d +w S "} (4,1,1) = {" @@ -113,7 +148,7 @@ a a e l -l +X T "} (5,1,1) = {" From da03a5ba444c83e022f9f3fee9f123128bb238ca Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Mon, 6 Nov 2023 05:46:11 +0000 Subject: [PATCH 15/60] Automatic changelog for PR #4838 [ci skip] --- html/changelogs/AutoChangeLog-pr-4838.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4838.yml diff --git a/html/changelogs/AutoChangeLog-pr-4838.yml b/html/changelogs/AutoChangeLog-pr-4838.yml new file mode 100644 index 0000000000..0bde8de19b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4838.yml @@ -0,0 +1,4 @@ +author: "SpartanBobby" +delete-after: True +changes: + - maptweak: "Alot of changes to big reds admin area, including new windows, prop placement, room detailing, new doors" \ No newline at end of file From 1e53b7d2622655a8619f7ba642e5071453e8b913 Mon Sep 17 00:00:00 2001 From: AndroBetel <44546836+AndroBetel@users.noreply.github.com> Date: Mon, 6 Nov 2023 06:02:15 +0300 Subject: [PATCH 16/60] fixes typo in ro sign (#4811) # About the pull request fixes a typo in req rules sign # Explain why it's good for the game typo fix also replaces deleted RO with QM # Testing Photographs and Procedure
Screenshots & Videos cyrosleep => cryosleep
# Changelog :cl: spellcheck: Fixed a typo in RO rules sign. spellcheck: RO mention is no more, replaced with QM. /:cl: --- code/game/objects/structures/signs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/signs.dm b/code/game/objects/structures/signs.dm index ec277929fa..adabf0c541 100644 --- a/code/game/objects/structures/signs.dm +++ b/code/game/objects/structures/signs.dm @@ -570,7 +570,7 @@ /obj/structure/sign/ROsign name = "\improper USCM Requisitions Office Guidelines" - desc = " 1. You are not entitled to service or equipment. Attachments are a privilege, not a right.\n 2. You must be fully dressed to obtain service. Cyrosleep underwear is non-permissible.\n 3. The Requsitions Officer has the final say and the right to decline service. Only the Acting Commanding Officer may override their decisions.\n 4. Please treat your Requsitions staff with respect. They work hard." + desc = " 1. You are not entitled to service or equipment. Attachments are a privilege, not a right.\n 2. You must be fully dressed to obtain service. Cryosleep underwear is non-permissible.\n 3. The Quartermaster has the final say and the right to decline service. Only the Acting Commanding Officer may override their decisions.\n 4. Please treat your Requsitions staff with respect. They work hard." icon_state = "roplaque" /obj/structure/sign/prop1 From 1bed6d5b12dd9914ce1d57792b65c31aca469b1b Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Mon, 6 Nov 2023 06:00:46 +0000 Subject: [PATCH 17/60] Automatic changelog for PR #4811 [ci skip] --- html/changelogs/AutoChangeLog-pr-4811.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4811.yml diff --git a/html/changelogs/AutoChangeLog-pr-4811.yml b/html/changelogs/AutoChangeLog-pr-4811.yml new file mode 100644 index 0000000000..c679e21335 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4811.yml @@ -0,0 +1,5 @@ +author: "AndroBetel" +delete-after: True +changes: + - spellcheck: "Fixed a typo in RO rules sign." + - spellcheck: "RO mention is no more, replaced with QM." \ No newline at end of file From b5123f5eee970af61b41063dbb0d1e8e2823a5b1 Mon Sep 17 00:00:00 2001 From: forest2001 <41653574+realforest2001@users.noreply.github.com> Date: Mon, 6 Nov 2023 03:11:58 +0000 Subject: [PATCH 18/60] Nightmare Survivor Hostility Indicator (#4628) # About the pull request Adds a big bold message for Nightmare survivors to know if they're hostile to marines or not. This does not apply to natural map-specific survivors, only those in nightmare inserts. # Explain why it's good for the game Makes it clearer for nightmare inserts to indicate if survivors are hostile. Good example of this is UPP on trijent are non hostile but this isn't always clear. # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: add: Added a big line to Nightmare survivor spawns that indicates hostility. /:cl: --- .../jobs/job/civilians/other/survivors.dm | 29 +++++++++++++------ .../effects/landmarks/survivor_spawner.dm | 5 ++++ 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/code/game/jobs/job/civilians/other/survivors.dm b/code/game/jobs/job/civilians/other/survivors.dm index 5c82241c47..23097e139e 100644 --- a/code/game/jobs/job/civilians/other/survivors.dm +++ b/code/game/jobs/job/civilians/other/survivors.dm @@ -10,6 +10,8 @@ job_options = SURVIVOR_VARIANT_LIST var/intro_text var/story_text + /// Whether or not the survivor is an inherently hostile to marines. + var/hostile = FALSE /datum/job/civilian/survivor/set_spawn_positions(count) spawn_positions = Clamp((round(count * SURVIVOR_TO_TOTAL_SPAWN_RATIO)), 2, 8) @@ -59,23 +61,32 @@ if(picked_spawner.story_text) story_text = picked_spawner.story_text + + if(picked_spawner.hostile) + hostile = TRUE + new /datum/cm_objective/move_mob/almayer/survivor(H) -/datum/job/civilian/survivor/generate_entry_message(mob/living/carbon/human/H) +/datum/job/civilian/survivor/generate_entry_message(mob/living/carbon/human/survivor) if(intro_text) for(var/line in intro_text) - to_chat(H, line) + to_chat(survivor, line) else - to_chat(H, "

You are a survivor!

") - to_chat(H, SPAN_NOTICE(SSmapping.configs[GROUND_MAP].survivor_message)) - to_chat(H, SPAN_NOTICE("You are fully aware of the xenomorph threat and are able to use this knowledge as you see fit.")) - to_chat(H, SPAN_NOTICE("You are NOT aware of the marines or their intentions. ")) + to_chat(survivor, "

You are a survivor!

") + to_chat(survivor, SPAN_NOTICE(SSmapping.configs[GROUND_MAP].survivor_message)) + to_chat(survivor, SPAN_NOTICE("You are fully aware of the xenomorph threat and are able to use this knowledge as you see fit.")) + to_chat(survivor, SPAN_NOTICE("You are NOT aware of the marines or their intentions. ")) if(story_text) - to_chat(H, story_text) - H.mind.memory += story_text + to_chat(survivor, story_text) + survivor.mind.memory += story_text + else + tell_survivor_story(survivor) + + if(hostile) + to_chat(survivor, SPAN_HIGHDANGER("You are HOSTILE to the USCM!")) else - tell_survivor_story(H) + to_chat(survivor, SPAN_XENOHIGHDANGER("You are NON-HOSTILE to the USCM!")) /datum/job/civilian/survivor/proc/tell_survivor_story(mob/living/carbon/human/H) var/list/survivor_story = list( diff --git a/code/game/objects/effects/landmarks/survivor_spawner.dm b/code/game/objects/effects/landmarks/survivor_spawner.dm index fe4254982d..a53fead0d3 100644 --- a/code/game/objects/effects/landmarks/survivor_spawner.dm +++ b/code/game/objects/effects/landmarks/survivor_spawner.dm @@ -8,6 +8,8 @@ var/roundstart_damage_min = 0 var/roundstart_damage_max = 0 var/roundstart_damage_times = 1 + /// Whether or not the spawner is for an inherently hostile survivor subtype. + var/hostile = FALSE var/spawn_priority = LOWEST_SPAWN_PRIORITY @@ -27,6 +29,7 @@ return TRUE /obj/effect/landmark/survivor_spawner/lv624_crashed_clf + hostile = TRUE equipment = /datum/equipment_preset/survivor/clf synth_equipment = /datum/equipment_preset/clf/synth intro_text = list("

You are a survivor of a crash landing!

",\ @@ -40,6 +43,7 @@ spawn_priority = SPAWN_PRIORITY_HIGH /obj/effect/landmark/survivor_spawner/lv624_crashed_clf_engineer + hostile = TRUE equipment = /datum/equipment_preset/clf/engineer synth_equipment = /datum/equipment_preset/clf/synth intro_text = list("

You are a survivor of a crash landing!

",\ @@ -53,6 +57,7 @@ spawn_priority = SPAWN_PRIORITY_VERY_HIGH /obj/effect/landmark/survivor_spawner/lv624_crashed_clf_medic + hostile = TRUE equipment = /datum/equipment_preset/clf/medic synth_equipment = /datum/equipment_preset/clf/synth intro_text = list("

You are a survivor of a crash landing!

",\ From a6344b3382c359502434fba32a307279d55678f5 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Mon, 6 Nov 2023 06:18:19 +0000 Subject: [PATCH 19/60] Automatic changelog for PR #4628 [ci skip] --- html/changelogs/AutoChangeLog-pr-4628.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4628.yml diff --git a/html/changelogs/AutoChangeLog-pr-4628.yml b/html/changelogs/AutoChangeLog-pr-4628.yml new file mode 100644 index 0000000000..e00fa73838 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4628.yml @@ -0,0 +1,4 @@ +author: "realforest2001" +delete-after: True +changes: + - rscadd: "Added a big line to Nightmare survivor spawns that indicates hostility." \ No newline at end of file From b421490d22d9e38f5d540af908e3889c0ffc2f0e Mon Sep 17 00:00:00 2001 From: fira Date: Mon, 6 Nov 2023 04:21:22 +0100 Subject: [PATCH 20/60] Reimplements halloween pumpkin helmets event (#4623) # About the pull request This reimplements the Halloween Pumpkins spawning on map and being carvable as helmets which was apparetnly a thing a number of years ago # Explain why it's good for the game Variety # Changelog :cl: Firartix and Frans_Feiffer add: Readded Halloween pumpkin helmets. /:cl: --------- Co-authored-by: harryob --- code/controllers/subsystem/game_decorator.dm | 35 ++++++ code/game/turfs/open.dm | 4 + code/modules/cm_aliens/weeds.dm | 2 +- code/modules/decorators/halloween.dm | 63 ---------- code/modules/holidays/halloween/decorators.dm | 108 ++++++++++++++++++ .../holidays/halloween/pumpkins/patches.dm | 65 +++++++++++ .../holidays/halloween/pumpkins/wearable.dm | 72 ++++++++++++ colonialmarines.dme | 5 +- icons/misc/events/pumpkins.dmi | Bin 0 -> 6867 bytes 9 files changed, 289 insertions(+), 65 deletions(-) create mode 100644 code/controllers/subsystem/game_decorator.dm delete mode 100644 code/modules/decorators/halloween.dm create mode 100644 code/modules/holidays/halloween/decorators.dm create mode 100644 code/modules/holidays/halloween/pumpkins/patches.dm create mode 100644 code/modules/holidays/halloween/pumpkins/wearable.dm create mode 100644 icons/misc/events/pumpkins.dmi diff --git a/code/controllers/subsystem/game_decorator.dm b/code/controllers/subsystem/game_decorator.dm new file mode 100644 index 0000000000..cfee0406f8 --- /dev/null +++ b/code/controllers/subsystem/game_decorator.dm @@ -0,0 +1,35 @@ +// Essentially the same as decorators but that apply to the whole game state instead of individual atoms +SUBSYSTEM_DEF(game_decorator) + name = "Game Decorator" + init_order = SS_INIT_DECORATOR + flags = SS_NO_FIRE + +/datum/controller/subsystem/game_decorator/Initialize() + . = ..() + for(var/decorator_type in subtypesof(/datum/game_decorator)) + var/datum/game_decorator/decorator = new decorator_type() + if(!decorator.is_active_decor()) + continue + if(!decorator.defer_decoration) + decorator.decorate() + CHECK_TICK + + return SS_INIT_SUCCESS + +/datum/game_decorator + var/defer_decoration = TRUE //! So map decoration is done post-setup after nightmare and spawners + +/datum/game_decorator/New() + if(defer_decoration) + RegisterSignal(SSdcs, COMSIG_GLOB_MODE_POSTSETUP, PROC_REF(defered_decoration)) + +/datum/game_decorator/proc/is_active_decor() + return FALSE + +/datum/game_decorator/proc/defered_decoration(dcs) + SIGNAL_HANDLER + decorate() + +/datum/game_decorator/proc/decorate() + set waitfor = FALSE + return diff --git a/code/game/turfs/open.dm b/code/game/turfs/open.dm index a4781e1a66..93eb45c3b7 100644 --- a/code/game/turfs/open.dm +++ b/code/game/turfs/open.dm @@ -185,6 +185,7 @@ name = "cave" icon = 'icons/turf/floors/bigred.dmi' icon_state = "mars_cave_1" + is_groundmap_turf = TRUE /turf/open/mars_cave/Initialize(mapload, ...) @@ -283,6 +284,7 @@ name = "ground dirt" icon = 'icons/turf/ground_map.dmi' icon_state = "desert" + is_groundmap_turf = TRUE /turf/open/gm/attackby(obj/item/I, mob/user) @@ -646,6 +648,7 @@ baseturfs = /turf/open/gm/riverdeep supports_surgery = FALSE minimap_color = MINIMAP_WATER + is_groundmap_turf = FALSE // Not real ground /turf/open/gm/riverdeep/Initialize(mapload, ...) @@ -724,6 +727,7 @@ allow_construction = FALSE var/bushes_spawn = 1 var/plants_spawn = 1 + is_groundmap_turf = TRUE name = "wet grass" desc = "Thick, long, wet grass." icon = 'icons/turf/floors/jungle.dmi' diff --git a/code/modules/cm_aliens/weeds.dm b/code/modules/cm_aliens/weeds.dm index eb4fc3cd6f..736d4f9474 100644 --- a/code/modules/cm_aliens/weeds.dm +++ b/code/modules/cm_aliens/weeds.dm @@ -196,7 +196,7 @@ var/parent_type = /obj/effect/alien/weeds/node if(weed_strength >= WEED_LEVEL_HIVE) parent_type = /obj/effect/alien/weeds/node/pylon - + var/obj/effect/alien/weeds/node/found = locate(parent_type) in orange(node_range, get_turf(src)) if(found) found.add_child(src) diff --git a/code/modules/decorators/halloween.dm b/code/modules/decorators/halloween.dm deleted file mode 100644 index af19d80bbb..0000000000 --- a/code/modules/decorators/halloween.dm +++ /dev/null @@ -1,63 +0,0 @@ -/datum/decorator/halloween - priority = DECORATOR_MONTH_SPECIFIC - -/datum/decorator/halloween/is_active_decor() - return (get_event_progress() != -1) - -/datum/decorator/halloween/proc/get_event_progress() - . = -1 - var/cur_day = text2num(time2text(world.timeofday, "DD")) - var/cur_mon = text2num(time2text(world.timeofday, "MM")) - if(cur_mon == 10) - return min(0, 31 - cur_day) - if(cur_mon == 11 && cur_day < 4) - return 0 - -/// Cobweb decorator: adds more and more cobwebs as you go through the month -/datum/decorator/halloween/cobwebs - /// How much prob() chance to put a cobweb during halloween proper - var/base_chance = 25 - /// How much to remove per day before date - var/ramp_chance = 0.3 - /// How much to scale cobwebs alpha down per day (1 - ramp_scale * days, affects alpha & size) - var/ramp_scale = 0.01 - /// Extra randomness removed onto scale before full blown halloween - var/scale_rand = 0.3 - -/datum/decorator/halloween/cobwebs/decorate(turf/closed/wall/almayer/T) - var/static/list/order = list(NORTHWEST, SOUTHEAST, NORTHEAST, SOUTHWEST) // Ordering of wall_connections - if(length(T.wall_connections) < 4) - return - - var/event_progress = get_event_progress() - var/placement_chance = base_chance - (event_progress * ramp_chance) - for(var/i = 1 to 4) - var/diag = order[i] - if(T.wall_connections[i] != "5") // CORNER_CLOCKWISE | CORNER_COUNTERCLOCKWISE as string - don't ask me - continue - if(!prob(placement_chance)) - continue - - // Skip this if this corner is result of a door connection (mostly for Almayer shutters) - var/valid = TRUE - for(var/a_cardinal in cardinal) - var/cardinal_dir = diag & a_cardinal - if(!a_cardinal) // We check cardinals contributing to that diagonal - continue - var/turf/target = get_step(T, cardinal_dir) - if(locate(/obj/structure/machinery/door) in target) - valid = FALSE - break - - if(valid) // Actually place cobweb - var/turf/target = get_step(T, diag) - if(istype(target, /turf/open)) - var/scale = 1 - ramp_scale * event_progress - scale -= scale_rand * rand() - new /obj/effect/decal/cleanable/cobweb2/dynamic(target, diag, scale) - -/// Ship specific cobweb decorator -/datum/decorator/halloween/cobwebs/ship - -/datum/decorator/halloween/cobwebs/ship/get_decor_types() - return typesof(/turf/closed/wall/almayer) diff --git a/code/modules/holidays/halloween/decorators.dm b/code/modules/holidays/halloween/decorators.dm new file mode 100644 index 0000000000..b25d6ff6b9 --- /dev/null +++ b/code/modules/holidays/halloween/decorators.dm @@ -0,0 +1,108 @@ +/datum/game_decorator/halloween + +/datum/game_decorator/halloween/is_active_decor() + return (get_days_remaining() != -1) + +/// Get the number of days remaining to event, or -1 if not applicable +/datum/game_decorator/halloween/proc/get_days_remaining() + . = -1 + var/cur_day = text2num(time2text(world.timeofday, "DD")) + var/cur_mon = text2num(time2text(world.timeofday, "MM")) + if(cur_mon == 10) + return max(0, 31 - cur_day) + if(cur_mon == 11 && cur_day < 4) + return 0 + +/// Pumpkins decorator: adds patches of carvable/wearable pumpkins around the ground level +/datum/game_decorator/halloween/pumpkins + var/pumpkin_count = 60 //! Amount of pumpkins to place + var/pumpkin_count_decrease = 1 //! Amount of pumpkins to remove per day to halloween + var/pumpkin_prob_corruption = 20 + var/pumpkin_prob_decrease = 0.5 //! Chance reduction per day before halloween + var/exclusion_range = 10 + +/datum/game_decorator/halloween/pumpkins/decorate() + var/list/turf/valid_turfs = list() + var/list/ground_levels = SSmapping.levels_by_trait(ZTRAIT_GROUND) + for(var/ground_z in ground_levels) + var/list/turf/all_turfs = block(locate(1, 1, ground_z), locate(world.maxx, world.maxy, ground_z)) + for(var/turf/open/turf in all_turfs) + if(turf.is_groundmap_turf) + var/valid = TRUE + for(var/atom/movable/movable as anything in turf.contents) + if(movable.density && movable.can_block_movement) + valid = FALSE + break + if(valid) + valid_turfs += turf + CHECK_TICK + + var/list/turf/picked_turfs = list() + for(var/step in 1 to (pumpkin_count - pumpkin_count_decrease * get_days_remaining())) + if(!length(valid_turfs)) + break + var/turf/considered_turf = pick(valid_turfs) + var/x_min = max(1, considered_turf.x - exclusion_range) + var/y_min = max(1, considered_turf.y - exclusion_range) + var/x_max = min(world.maxx, considered_turf.x + exclusion_range) + var/y_max = min(world.maxy, considered_turf.y + exclusion_range) + var/list/turf/denied_turfs = block(locate(x_min, y_min, considered_turf.z), locate(x_max, y_max, considered_turf.z)) + valid_turfs -= denied_turfs + picked_turfs += considered_turf + + var/corruption_chance = pumpkin_prob_corruption - (get_days_remaining() * pumpkin_prob_decrease) + for(var/turf/target in picked_turfs) + if(prob(corruption_chance)) + new /obj/structure/pumpkin_patch/corrupted(target) + else + new /obj/structure/pumpkin_patch(target) + +/// Cobweb decorator: adds more and more cobwebs as you go through the month +/datum/game_decorator/halloween/cobwebs + /// How much prob() chance to put a cobweb during halloween proper + var/base_chance = 25 + /// How much to remove per day before date + var/ramp_chance = 0.5 + /// How much to scale cobwebs alpha down per day (1 - ramp_scale * days, affects alpha & size) + var/ramp_scale = 0.01 + /// Extra randomness removed onto scale before full blown halloween + var/scale_rand = 0.3 + +/datum/game_decorator/halloween/cobwebs/decorate() + for(var/turf/closed/wall/almayer/turf in world) + if(is_mainship_level(turf.z)) + decorate_turf(turf) + CHECK_TICK + +/datum/game_decorator/halloween/cobwebs/proc/decorate_turf(turf/closed/wall/almayer/turf) + var/static/list/order = list(NORTHWEST, SOUTHEAST, NORTHEAST, SOUTHWEST) // Ordering of wall_connections + if(length(turf.wall_connections) < 4) + return + + var/event_progress = get_days_remaining() + var/placement_chance = base_chance - (event_progress * ramp_chance) + for(var/i = 1 to 4) + var/diag = order[i] + if(turf.wall_connections[i] != "5") // CORNER_CLOCKWISE | CORNER_COUNTERCLOCKWISE as string - don't ask me + continue + if(!prob(placement_chance)) + continue + + // Skip this if this corner is result of a door connection (mostly for Almayer shutters) + var/valid = TRUE + for(var/a_cardinal in cardinal) + var/cardinal_dir = diag & a_cardinal + if(!a_cardinal) // We check cardinals contributing to that diagonal + continue + var/turf/target = get_step(turf, cardinal_dir) + if(locate(/obj/structure/machinery/door) in target) + valid = FALSE + break + + if(valid) // Actually place cobweb + var/turf/target = get_step(turf, diag) + if(istype(target, /turf/open)) + var/scale = 1 - ramp_scale * event_progress + scale -= scale_rand * rand() + new /obj/effect/decal/cleanable/cobweb2/dynamic(target, diag, scale) + diff --git a/code/modules/holidays/halloween/pumpkins/patches.dm b/code/modules/holidays/halloween/pumpkins/patches.dm new file mode 100644 index 0000000000..b84ba24ef4 --- /dev/null +++ b/code/modules/holidays/halloween/pumpkins/patches.dm @@ -0,0 +1,65 @@ +/// Patches of pumpkins spawned at roundstart from where marines can get their carvable pumpkins +/obj/structure/pumpkin_patch + icon = 'icons/misc/events/pumpkins.dmi' + name = "patch of pumpkins" + var/empty_name = "\proper vines" + + can_block_movement = FALSE + unslashable = TRUE + health = 400 // To avoid explosions and stray gunfire destroying them too easily + layer = LOWER_ITEM_LAYER + + var/has_vines = TRUE //! Whether there's still vines to display or not + var/pumpkin_count = 3 //! Amount of pumpkins currently in the patch + var/icon_prefix //! Prefix to prepend to icon states, for corrupted pumpkins + var/pumpkin_type = /obj/item/clothing/head/pumpkin + +/obj/structure/pumpkin_patch/Initialize(mapload, ...) + . = ..() + update_icon() + +/obj/structure/pumpkin_patch/update_icon() + overlays?.Cut() + . = ..() + switch(pumpkin_count) + if(3) icon_state = "[icon_prefix]pumpkins_full" + if(2) icon_state = "[icon_prefix]pumpkins_half" + if(1) icon_state = "[icon_prefix]pumpkin" + else icon_state = "empty" + if(has_vines) + overlays += image(icon, loc, "[icon_prefix]vines") + +/obj/structure/pumpkin_patch/attack_hand(mob/user) + if(pumpkin_count < 1) + to_chat(user, SPAN_WARNING("No more pumpkins here...")) + return + if(!user.get_active_hand()) //if active hand is empty + pumpkin_count-- + var/obj/item/clothing/head/pumpkin/pumpkin = new pumpkin_type(loc) + user.put_in_hands(pumpkin) + playsound(loc, 'sound/effects/vegetation_hit.ogg', 25, 1) + update_icon() + if(pumpkin_count < 1) + if(!has_vines) + qdel(src) + else + name = empty_name + return + return ..() + +/obj/structure/pumpkin_patch/attackby(obj/item/tool, mob/user) + if(has_vines && (tool.sharp == IS_SHARP_ITEM_ACCURATE || tool.sharp == IS_SHARP_ITEM_BIG)) + to_chat(user, SPAN_NOTICE("You cut down the vines.")) + playsound(loc, "alien_resin_break", 25) + has_vines = FALSE + update_icon() + if(pumpkin_count < 1 && !has_vines) + qdel(src) + return + return ..() + +/obj/structure/pumpkin_patch/corrupted + icon_prefix = "cor_" + name = "patch of corrupted pumpkins" + empty_name = "\proper corrupted vines" + pumpkin_type = /obj/item/clothing/head/pumpkin/corrupted diff --git a/code/modules/holidays/halloween/pumpkins/wearable.dm b/code/modules/holidays/halloween/pumpkins/wearable.dm new file mode 100644 index 0000000000..74db2b4c85 --- /dev/null +++ b/code/modules/holidays/halloween/pumpkins/wearable.dm @@ -0,0 +1,72 @@ +/// Carved Pumpkin from the Halloween event +/obj/item/clothing/head/pumpkin + name = "pumpkin" + icon = 'icons/misc/events/pumpkins.dmi' + item_icons = list( + WEAR_HEAD = 'icons/misc/events/pumpkins.dmi', + ) + desc = "An ominous looking pumpkin. Would look pretty spooky if worn on your head..." + w_class = SIZE_MEDIUM + flags_inv_hide = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEALLHAIR + flags_armor_protection = BODY_FLAG_HEAD|BODY_FLAG_EYES + flags_inventory = COVEREYES|BLOCKSHARPOBJ|COVERMOUTH + flags_cold_protection = BODY_FLAG_HEAD + flags_heat_protection = BODY_FLAG_HEAD + min_cold_protection_temperature = HELMET_MIN_COLD_PROT + max_heat_protection_temperature = HELMET_MAX_HEAT_PROT + armor_melee = CLOTHING_ARMOR_MEDIUM + armor_bullet = CLOTHING_ARMOR_MEDIUM + armor_laser = CLOTHING_ARMOR_MEDIUMLOW + armor_energy = CLOTHING_ARMOR_NONE + armor_bomb = CLOTHING_ARMOR_LOW + armor_bio = CLOTHING_ARMOR_MEDIUM + armor_rad = CLOTHING_ARMOR_LOW + armor_internaldamage = CLOTHING_ARMOR_MEDIUM + health = 5 + force = 15 + var/prefix = "" //! Icon state prefix for corrupted pumpkin variants + var/carved_icon = "" //! Currently carved pumpkin overlay + var/carvable_icons = list("smile", "cheeky", "bugeyes", "upside_down_smile", "skelly", "ff") + +/obj/item/clothing/head/pumpkin/Initialize(mapload, ...) + . = ..() + update_icon() + +/obj/item/clothing/head/pumpkin/update_icon() + . = ..() + if(carved_icon) + icon_state = "[prefix]pumpkin_carved" + else + icon_state = "[prefix]pumpkin" + item_state_slots = list( + WEAR_HEAD = "[prefix]pumpkin_onmob", + ) + +/obj/item/clothing/head/pumpkin/mob_can_equip(mob/user, slot, disable_warning) + if(slot == WEAR_HEAD && !carved_icon) + to_chat(user, SPAN_WARNING("You can't put on a full pumpkin! Empty and carve it with a sharp object first.")) + return FALSE + . = ..() + +/obj/item/clothing/head/pumpkin/attackby(obj/item/tool, mob/user) + if(!carved_icon && (tool.sharp == IS_SHARP_ITEM_ACCURATE || tool.sharp == IS_SHARP_ITEM_BIG)) + var/choice = tgui_input_list(user, "Select the pattern to carve on your pumpkin!", "Pumpkin Carving", carvable_icons) + if(choice) + playsound(loc, 'sound/effects/vegetation_hit.ogg', 25, 1) + carved_icon = choice + name = "carved pumpkin" + update_icon() + else + return ..() + +/obj/item/clothing/head/pumpkin/get_mob_overlay(mob/user_mob, slot) + var/image/pumpkin = ..() + if(carved_icon && slot == WEAR_HEAD) + var/image/overlay = overlay_image(icon, "[prefix]pumpkin_[carved_icon]") + pumpkin.overlays += overlay + return pumpkin + +/obj/item/clothing/head/pumpkin/corrupted + name = "corrupted pumpkin" + prefix = "cor_" + carvable_icons = list("cry", "sob", "sad", "why", "spooky", "ff") diff --git a/colonialmarines.dme b/colonialmarines.dme index 37c34d443c..25aa4df30a 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -238,6 +238,7 @@ #include "code\controllers\subsystem\disease.dm" #include "code\controllers\subsystem\events.dm" #include "code\controllers\subsystem\fz_transitions.dm" +#include "code\controllers\subsystem\game_decorator.dm" #include "code\controllers\subsystem\garbage.dm" #include "code\controllers\subsystem\human.dm" #include "code\controllers\subsystem\inactivity.dm" @@ -1627,7 +1628,6 @@ #include "code\modules\decorators\admin_runtime_decorator.dm" #include "code\modules\decorators\cassette_decorator.dm" #include "code\modules\decorators\christmas.dm" -#include "code\modules\decorators\halloween.dm" #include "code\modules\decorators\mass_xeno_decorator.dm" #include "code\modules\decorators\weapon_decorator.dm" #include "code\modules\decorators\weapon_map_decorator.dm" @@ -1723,6 +1723,9 @@ #include "code\modules\gear_presets\survivors\sorokyne_strata\preset_sorokyne_strata.dm" #include "code\modules\gear_presets\survivors\trijent\crashlanding_upp_bar_insert_trijent.dm" #include "code\modules\gear_presets\survivors\trijent\preset_trijent.dm" +#include "code\modules\holidays\halloween\decorators.dm" +#include "code\modules\holidays\halloween\pumpkins\patches.dm" +#include "code\modules\holidays\halloween\pumpkins\wearable.dm" #include "code\modules\hydroponics\botany_disks.dm" #include "code\modules\hydroponics\grown_inedible.dm" #include "code\modules\hydroponics\hydro_tools.dm" diff --git a/icons/misc/events/pumpkins.dmi b/icons/misc/events/pumpkins.dmi new file mode 100644 index 0000000000000000000000000000000000000000..e3087e7c444c1220f013aaa279769d06ab851bf7 GIT binary patch literal 6867 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 Date: Mon, 6 Nov 2023 06:33:33 +0000 Subject: [PATCH 21/60] Automatic changelog for PR #4623 [ci skip] --- html/changelogs/AutoChangeLog-pr-4623.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4623.yml diff --git a/html/changelogs/AutoChangeLog-pr-4623.yml b/html/changelogs/AutoChangeLog-pr-4623.yml new file mode 100644 index 0000000000..d79a53a45b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4623.yml @@ -0,0 +1,4 @@ +author: "Firartix and Frans_Feiffer" +delete-after: True +changes: + - rscadd: "Readded Halloween pumpkin helmets." \ No newline at end of file From 0991f38801d9fc5c7b7e073cb5788ef42822ad08 Mon Sep 17 00:00:00 2001 From: Zonespace <41448081+Zonespace27@users.noreply.github.com> Date: Mon, 6 Nov 2023 01:37:36 -0800 Subject: [PATCH 22/60] Hijack Objectives & Self Destruct (#4699) # About the pull request This PR adds hijack objectives to be held for lifeboats to safely launch and lifepods to have a better chance not to crash. These objectives are currently: https://cdn.discordapp.com/attachments/604397850675380234/1150809693556592711/image.png This PR removes the auto launch of lifepods/boats after 10 minutes This PR adds red alert sentries at fuel pumps This PR adds Corporate liaison evac shuttle now can be launched at any time even if evac has not been called This PR kills EvacuationAuthority This PR adds an optional self destruct method once fuel is at 100%. Should the marines be confident in their hold, they can move to engineering and hold it for 5-15 minutes (time dependent on how many fusion reactors are overloaded, use a multitiool on them to do so) to manually melt down the fusion reactors, detonating the accumulated fuel and acting as a self destruct. # Explain why it's good for the game Hijack is stale, let's work on making it not stale. # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: Morrow, Zonespace add: Added objectives to hijack. You now must hold different sections of the ship to successfully launch lifeboats or pods add: The areas that contribute to hijack objectives are the lifeboat pumps, astronav, and engineering add: Fuel pumps now have red alert sentries add: Corporate liaison evac shuttle now can be launched at any time even if evac has not been called add: You can now self-destruct the ship by overloading the fusion generators in engineering once lifeboat fuel is at 100%. del: Removed auto launch of lifeboats and pods code: Refactored EvacuationAuthority into SShijack /:cl: --------- Co-authored-by: Morrow Co-authored-by: fira --- code/__DEFINES/atmospherics.dm | 2 + code/__DEFINES/dcs/signals/signals_global.dm | 9 +- code/__DEFINES/hijack.dm | 13 + code/__DEFINES/subsystems.dm | 2 + code/controllers/subsystem/hijack.dm | 429 ++++ code/game/area/almayer.dm | 24 + code/game/gamemodes/cm_self_destruct.dm | 478 ----- .../colonialmarines/colonialmarines.dm | 34 +- code/game/gamemodes/extended/infection.dm | 2 +- code/game/gamemodes/game_mode.dm | 7 +- code/game/machinery/ARES/ARES_interface.dm | 6 +- .../machinery/computer/almayer_control.dm | 21 +- .../game/machinery/computer/communications.dm | 41 +- code/game/machinery/fusion_engine.dm | 139 +- code/game/machinery/nuclearbomb.dm | 33 +- code/game/machinery/sentry_holder.dm | 62 +- code/game/machinery/status_display.dm | 11 +- code/game/objects/items/devices/cictablet.dm | 6 +- code/game/world.dm | 2 - .../admin/player_panel/player_panel.dm | 26 +- code/modules/admin/tabs/event_tab.dm | 4 +- code/modules/admin/topic/topic.dm | 38 +- code/modules/defenses/sentry.dm | 4 + code/modules/mob/dead/observer/observer.dm | 9 +- code/modules/mob/living/carbon/human/human.dm | 8 +- code/modules/mob/living/silicon/silicon.dm | 6 +- code/modules/mob/new_player/new_player.dm | 12 +- .../security_levels/security_levels.dm | 1 - code/modules/shuttle/computer.dm | 6 +- .../shuttle/computers/escape_pod_computer.dm | 14 +- code/modules/shuttle/dropship_hijack.dm | 1 + .../shuttles/crashable/escape_shuttle.dm | 8 +- .../shuttle/shuttles/crashable/lifeboats.dm | 4 +- code/modules/shuttles/marine_ferry.dm | 12 - colonialmarines.dme | 3 +- icons/obj/structures/machinery/fusion_eng.dmi | Bin 2209 -> 2388 bytes maps/map_files/USS_Almayer/USS_Almayer.dmm | 1763 +++++++++-------- maps/shuttles/escape_shuttle_e_cl.dmm | 7 +- sound/effects/creak1.ogg | Bin 0 -> 125071 bytes sound/effects/creak2.ogg | Bin 0 -> 102788 bytes sound/effects/creak3.ogg | Bin 0 -> 52507 bytes .../tgui/interfaces/EscapePodConsole.tsx | 4 + 42 files changed, 1681 insertions(+), 1570 deletions(-) create mode 100644 code/__DEFINES/hijack.dm create mode 100644 code/controllers/subsystem/hijack.dm delete mode 100644 code/game/gamemodes/cm_self_destruct.dm create mode 100644 sound/effects/creak1.ogg create mode 100644 sound/effects/creak2.ogg create mode 100644 sound/effects/creak3.ogg diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index 3abd79708f..de7eb672e8 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -23,6 +23,8 @@ #define T0C 273.15 // 0degC #define T20C 293.15 // 20degC +#define T90C 363.15 // 90degC +#define T120C 393.15 // 120degC #define TCMB 2.7 // -270.3degC #define ICE_COLONY_TEMPERATURE 223 //-50degC #define SOROKYNE_TEMPERATURE 223 // Same as Ice for now diff --git a/code/__DEFINES/dcs/signals/signals_global.dm b/code/__DEFINES/dcs/signals/signals_global.dm index 032a1891a8..dc5e70fcd5 100644 --- a/code/__DEFINES/dcs/signals/signals_global.dm +++ b/code/__DEFINES/dcs/signals/signals_global.dm @@ -60,8 +60,11 @@ #define COMSIG_GLOB_GROUNDSIDE_FORSAKEN_HANDLING "!groundside_forsaken_handling" /// From -#define COMSIG_GLOB_YAUTJA_ARMORY_OPENED "yautja_armory_opened" +#define COMSIG_GLOB_YAUTJA_ARMORY_OPENED "!yautja_armory_opened" /// From /proc/biohazard_lockdown() -#define COMSIG_GLOB_RESEARCH_LOCKDOWN "research_lockdown_closed" -#define COMSIG_GLOB_RESEARCH_LIFT "research_lockdown_opened" +#define COMSIG_GLOB_RESEARCH_LOCKDOWN "!research_lockdown_closed" +#define COMSIG_GLOB_RESEARCH_LIFT "!research_lockdown_opened" + +/// From /obj/structure/machinery/power/fusion_engine/proc/set_overloading() : (set_overloading) +#define COMSIG_GLOB_GENERATOR_SET_OVERLOADING "!generator_set_overloading" diff --git a/code/__DEFINES/hijack.dm b/code/__DEFINES/hijack.dm new file mode 100644 index 0000000000..85d4c227ae --- /dev/null +++ b/code/__DEFINES/hijack.dm @@ -0,0 +1,13 @@ +#define EVACUATION_TYPE_NONE 0 +#define EVACUATION_TYPE_ADDITIVE 1 +#define EVACUATION_TYPE_MULTIPLICATIVE 2 + +#define HIJACK_ANNOUNCE "ARES Emergency Procedures" +#define XENO_HIJACK_ANNOUNCE "You sense something unusual..." + +#define EVACUATION_STATUS_NOT_INITIATED 0 +#define EVACUATION_STATUS_INITIATED 1 + +#define HIJACK_OBJECTIVES_NOT_STARTED 0 +#define HIJACK_OBJECTIVES_STARTED 1 +#define HIJACK_OBJECTIVES_COMPLETE 2 diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index ac9cfd3e12..301ca04096 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -115,6 +115,7 @@ #define SS_INIT_INFLUXDRIVER 28 #define SS_INIT_GARBAGE 24 #define SS_INIT_EVENTS 23.5 +#define SS_INIT_HIJACK 22.6 #define SS_INIT_REDIS 22.5 #define SS_INIT_REAGENTS 22.1 #define SS_INIT_MAPPING 22 @@ -177,6 +178,7 @@ #define SS_PRIORITY_FAST_OBJECTS 105 #define SS_PRIORITY_OBJECTS 104 #define SS_PRIORITY_DECORATOR 99 +#define SS_PRIORITY_HIJACK 97 #define SS_PRIORITY_POWER 95 #define SS_PRIORITY_EFFECTS 92 #define SS_PRIORITY_MACHINERY 90 diff --git a/code/controllers/subsystem/hijack.dm b/code/controllers/subsystem/hijack.dm new file mode 100644 index 0000000000..55b5aa75ca --- /dev/null +++ b/code/controllers/subsystem/hijack.dm @@ -0,0 +1,429 @@ +SUBSYSTEM_DEF(hijack) + name = "Hijack" + wait = 2 SECONDS + flags = SS_KEEP_TIMING + priority = SS_PRIORITY_HIJACK + init_order = SS_INIT_HIJACK + + ///Required progress to evacuate safely via lifeboats + var/required_progress = 100 + + ///Current progress towards evacuating safely via lifeboats + var/current_progress = 0 + + /// How much progress is required to early launch + var/early_launch_required_progress = 25 + + ///The estimated time left to get to the safe evacuation point + var/estimated_time_left = 0 + + ///Areas that are marked as having progress, assoc list that is progress_area = boolean, the boolean indicating if it was progressing or not on the last fire() + var/list/area/progress_areas = list() + + ///The areas that need cycled through currently + var/list/area/current_run = list() + + ///The progress of the current run that needs to be added at the end of the current run + var/current_run_progress_additive = 0 + + ///Holds what the current_run_progress_additive should be multiplied by at the end of the current run + var/current_run_progress_multiplicative = 1 + + ///Holds the progress change from last run + var/last_run_progress_change = 0 + + ///Holds the next % point progress should be announced, increments on itself + var/announce_checkpoint = 25 + + ///What stage of evacuation we are currently on + var/evac_status = EVACUATION_STATUS_NOT_INITIATED + + ///What stage of hijack are we currently on + var/hijack_status = HIJACK_OBJECTIVES_NOT_STARTED + + ///Whether or not evacuation has been disabled by admins + var/evac_admin_denied = FALSE + + /// If TRUE, self destruct has been unlocked and is possible with a hold of reactor + var/sd_unlocked = FALSE + + /// Admin var to manually prevent self destruct from occurring + var/admin_sd_blocked = FALSE + + /// Maximum amount of fusion generators that can be overloaded at once for a time benefit + var/maximum_overload_generators = 18 + + /// How many generators are currently overloaded + var/overloaded_generators = 0 + + /// How long the manual self destruct will take on the high end + var/sd_max_time = 15 MINUTES + + /// How long the manual self destruct will take on the low end + var/sd_min_time = 5 MINUTES + + /// How much time left until SD detonates + var/sd_time_remaining = 0 + + /// Roughly what % of the SD countdown remains + var/percent_completion_remaining = 100 + + /// If the engine room has been heated, occurs at 33% SD completion + var/engine_room_heated = FALSE + + /// If the engine room has been superheated, occurs at 66% SD completion + var/engine_room_superheated = FALSE + + /// If the self destruct has/is detonating + var/sd_detonated = FALSE + + /// If a generator has ever been overloaded in the past this round + var/generator_ever_overloaded = FALSE + + /// If ARES has announced the 50% point yet for SD + var/ares_sd_announced = FALSE + +/datum/controller/subsystem/hijack/Initialize(timeofday) + RegisterSignal(SSdcs, COMSIG_GLOB_GENERATOR_SET_OVERLOADING, PROC_REF(on_generator_overload)) + return SS_INIT_SUCCESS + +/datum/controller/subsystem/hijack/stat_entry(msg) + if(!SSticker?.mode?.is_in_endgame) + msg = " Not Hijack" + return ..() + + if(current_progress >= required_progress) + msg = " Complete" + return ..() + + msg = " Progress: [current_progress]% | Last run: [last_run_progress_change]" + return ..() + +/datum/controller/subsystem/hijack/fire(resumed = FALSE) + if(!SSticker?.mode?.is_in_endgame) + return + + if(hijack_status < HIJACK_OBJECTIVES_STARTED) + hijack_status = HIJACK_OBJECTIVES_STARTED + + if(current_progress >= required_progress) + if(hijack_status < HIJACK_OBJECTIVES_COMPLETE) + hijack_status = HIJACK_OBJECTIVES_COMPLETE + + if(sd_unlocked && overloaded_generators) + sd_time_remaining -= wait + if(!engine_room_heated && (sd_time_remaining <= (max((1 - round(overloaded_generators / maximum_overload_generators, 0.01)) * sd_max_time, sd_min_time) * 0.66))) + heat_engine_room() + + if(!ares_sd_announced && (sd_time_remaining <= (max((1 - round(overloaded_generators / maximum_overload_generators, 0.01)) * sd_max_time, sd_min_time) * 0.5))) + announce_sd_halfway() + + if(!engine_room_superheated && (sd_time_remaining <= (max((1 - round(overloaded_generators / maximum_overload_generators, 0.01)) * sd_max_time, sd_min_time) * 0.33))) + superheat_engine_room() + + if((sd_time_remaining <= 0) && !sd_detonated) + detonate_sd() + + return + + if(!resumed) + current_run = progress_areas.Copy() + + for(var/area/almayer/cycled_area as anything in current_run) + current_run -= cycled_area + + if(progress_areas[cycled_area] != cycled_area.power_equip) + progress_areas[cycled_area] = !progress_areas[cycled_area] + announce_area_power_change(cycled_area) + + if(progress_areas[cycled_area]) + switch(cycled_area.hijack_evacuation_type) + if(EVACUATION_TYPE_ADDITIVE) + current_run_progress_additive += cycled_area.hijack_evacuation_weight + if(EVACUATION_TYPE_MULTIPLICATIVE) + current_run_progress_multiplicative *= cycled_area.hijack_evacuation_weight + + if (MC_TICK_CHECK) + return + + last_run_progress_change = current_run_progress_additive * current_run_progress_multiplicative + current_progress += last_run_progress_change + + if(last_run_progress_change) + estimated_time_left = ((required_progress - current_progress) / last_run_progress_change) * wait + else + estimated_time_left = INFINITY + + if(current_progress >= announce_checkpoint) + announce_progress() + announce_checkpoint += initial(announce_checkpoint) + + current_run_progress_additive = 0 + current_run_progress_multiplicative = 1 + +///Called when the xeno dropship crashes into the Almayer and announces the current status of various objectives to marines +/datum/controller/subsystem/hijack/proc/announce_status_on_crash() + var/message = "" + + for(var/area/cycled_area as anything in progress_areas) + message += "[cycled_area] - [cycled_area.power_equip ? "Online" : "Offline"]\n" + progress_areas[cycled_area] = cycled_area.power_equip + + message += "\nDue to low orbit, extra fuel is required for non-surface evacuations.\nMaintain fueling functionality for optimal evacuation conditions." + + marine_announcement(message, HIJACK_ANNOUNCE) + +///Called when an area power status is changed to announce that it has been changed +/datum/controller/subsystem/hijack/proc/announce_area_power_change(area/changed_area) + var/message = "[changed_area] - [changed_area.power_equip ? "Online" : "Offline"]" + + marine_announcement(message, HIJACK_ANNOUNCE) + +///Called to announce to xenos the state of evacuation progression +/datum/controller/subsystem/hijack/proc/announce_progress() + var/announce = announce_checkpoint / initial(announce_checkpoint) + + var/marine_warning_areas = "" + var/xeno_warning_areas = "" + + for(var/area/cycled_area as anything in progress_areas) + if(cycled_area.power_equip) + xeno_warning_areas += "[cycled_area], " + continue + marine_warning_areas += "[cycled_area], " + + if(xeno_warning_areas) + xeno_warning_areas = copytext(xeno_warning_areas, 1, -2) + + if(marine_warning_areas) + marine_warning_areas = copytext(marine_warning_areas, 1, -2) + + var/datum/hive_status/hive + for(var/hivenumber in GLOB.hive_datum) + hive = GLOB.hive_datum[hivenumber] + if(!length(hive.totalXenos)) + continue + + switch(announce) + if(1) + xeno_announcement(SPAN_XENOANNOUNCE("The talls are a quarter of the way towards their goals. Disable the following areas: [xeno_warning_areas]"), hive.hivenumber, XENO_HIJACK_ANNOUNCE) + if(2) + xeno_announcement(SPAN_XENOANNOUNCE("The talls are half way towards their goals. Disable the following areas: [xeno_warning_areas]"), hive.hivenumber, XENO_HIJACK_ANNOUNCE) + if(3) + xeno_announcement(SPAN_XENOANNOUNCE("The talls are three quarters of the way towards their goals. Disable the following areas: [xeno_warning_areas]"), hive.hivenumber, XENO_HIJACK_ANNOUNCE) + if(4) + xeno_announcement(SPAN_XENOANNOUNCE("The talls have completed their goals!"), hive.hivenumber, XENO_HIJACK_ANNOUNCE) + + switch(announce) + if(1) + marine_announcement("Emergency fuel replenishment at 25 percent. Lifeboat emergency early launch now available.[marine_warning_areas ? "\nTo increase speed restore power to the following areas: [marine_warning_areas]" : " All fueling areas operational."]", HIJACK_ANNOUNCE) + if(2) + marine_announcement("Emergency fuel replenishment at 50 percent.[marine_warning_areas ? "\nTo increase speed restore power to the following areas: [marine_warning_areas]" : " All fueling areas operational."]", HIJACK_ANNOUNCE) + if(3) + marine_announcement("Emergency fuel replenishment at 75 percent.[marine_warning_areas ? "\nTo increase speed restore power to the following areas: [marine_warning_areas]" : " All fueling areas operational."]", HIJACK_ANNOUNCE) + if(4) + marine_announcement("Emergency fuel replenishment at 100 percent. Safe utilization of lifeboats now possible.", HIJACK_ANNOUNCE) + if(!admin_sd_blocked) + addtimer(CALLBACK(src, PROC_REF(unlock_self_destruct)), 8 SECONDS) + +/// Passes the ETA for status panels +/datum/controller/subsystem/hijack/proc/get_evac_eta() + switch(hijack_status) + if(HIJACK_OBJECTIVES_STARTED) + if(estimated_time_left == INFINITY) + return "Never" + return "[duration2text_sec(estimated_time_left)]" + + if(HIJACK_OBJECTIVES_COMPLETE) + return "Complete" + +/datum/controller/subsystem/hijack/proc/get_sd_eta() + if(!sd_time_remaining) + return "Complete" + + if(overloaded_generators <= 0) + return "Never" + + return "[duration2text_sec(sd_time_remaining)]" + +//~~~~~~~~~~~~~~~~~~~~~~~~ EVAC STUFF ~~~~~~~~~~~~~~~~~~~~~~~~// + +/// Initiates evacuation by announcing and then prepping all lifepods/lifeboats +/datum/controller/subsystem/hijack/proc/initiate_evacuation() + if(evac_status == EVACUATION_STATUS_NOT_INITIATED && !(evac_admin_denied & FLAGS_EVACUATION_DENY)) + evac_status = EVACUATION_STATUS_INITIATED + ai_announcement("Attention. Emergency. All personnel must evacuate immediately.", 'sound/AI/evacuate.ogg') + + for(var/obj/structure/machinery/status_display/cycled_status_display in machines) + if(is_mainship_level(cycled_status_display.z)) + cycled_status_display.set_picture("evac") + for(var/obj/docking_port/mobile/crashable/escape_shuttle/shuttle in SSshuttle.mobile) + shuttle.prepare_evac() + activate_lifeboats() + return TRUE + +/// Cancels evacuation, tells lifepods/lifeboats and status_displays +/datum/controller/subsystem/hijack/proc/cancel_evacuation() + if(evac_status == EVACUATION_STATUS_INITIATED) + evac_status = EVACUATION_STATUS_NOT_INITIATED + deactivate_lifeboats() + ai_announcement("Evacuation has been cancelled.", 'sound/AI/evacuate_cancelled.ogg') + + for(var/obj/structure/machinery/status_display/cycled_status_display in machines) + if(is_mainship_level(cycled_status_display.z)) + cycled_status_display.set_sec_level_picture() + + for(var/obj/docking_port/mobile/crashable/escape_shuttle/shuttle in SSshuttle.mobile) + shuttle.cancel_evac() + return TRUE + +/// Opens the lifeboat doors and gets them ready to launch +/datum/controller/subsystem/hijack/proc/activate_lifeboats() + for(var/obj/docking_port/stationary/lifeboat_dock/lifeboat_dock in GLOB.lifeboat_almayer_docks) + var/obj/docking_port/mobile/crashable/lifeboat/lifeboat = lifeboat_dock.get_docked() + if(lifeboat && lifeboat.available) + lifeboat.status = LIFEBOAT_ACTIVE + lifeboat_dock.open_dock() + +/// Turns off ability to manually take off lifeboats +/datum/controller/subsystem/hijack/proc/deactivate_lifeboats() + for(var/obj/docking_port/stationary/lifeboat_dock/lifeboat_dock in GLOB.lifeboat_almayer_docks) + var/obj/docking_port/mobile/crashable/lifeboat/lifeboat = lifeboat_dock.get_docked() + if(lifeboat && lifeboat.available) + lifeboat.status = LIFEBOAT_INACTIVE + + +/// Once refueling is done, marines can optionally hold SD for a time for a stalemate instead of a xeno minor +/datum/controller/subsystem/hijack/proc/unlock_self_destruct() + sd_time_remaining = sd_max_time + sd_unlocked = TRUE + marine_announcement("Fuel reserves full. Manual detonation of fuel reserves by overloading the on-board fusion reactors now possible.", HIJACK_ANNOUNCE) + +/datum/controller/subsystem/hijack/proc/on_generator_overload(obj/structure/machinery/power/fusion_engine/source, new_overloading) + SIGNAL_HANDLER + + if(!generator_ever_overloaded) + generator_ever_overloaded = TRUE + var/datum/hive_status/hive + for(var/hivenumber in GLOB.hive_datum) + hive = GLOB.hive_datum[hivenumber] + if(!length(hive.totalXenos)) + continue + + xeno_announcement(SPAN_XENOANNOUNCE("The talls may be attempting to take their ship down with them in Engineering, stop them!"), hive.hivenumber, XENO_HIJACK_ANNOUNCE) + + adjust_generator_overload_count(new_overloading ? 1 : -1) + +/datum/controller/subsystem/hijack/proc/adjust_generator_overload_count(amount = 1) + var/generator_overload_percent = round(overloaded_generators / maximum_overload_generators, 0.01) + var/old_required_time = sd_min_time + ((1 - generator_overload_percent) * (sd_max_time - sd_min_time)) + percent_completion_remaining = sd_time_remaining / old_required_time + overloaded_generators = clamp(overloaded_generators + amount, 0, maximum_overload_generators) + generator_overload_percent = round(overloaded_generators / maximum_overload_generators, 0.01) + var/new_required_time = sd_min_time + ((1 - generator_overload_percent) * (sd_max_time - sd_min_time)) + sd_time_remaining = percent_completion_remaining * new_required_time + +/datum/controller/subsystem/hijack/proc/heat_engine_room() + engine_room_heated = TRUE + var/area/engine_room = GLOB.areas_by_type[/area/almayer/engineering/engine_core] + engine_room.firealert() + engine_room.temperature = T90C + for(var/mob/current_mob as anything in GLOB.mob_list) + var/area/mob_area = get_area(current_mob) + if(istype(mob_area, /area/almayer/engineering/engine_core)) + to_chat(current_mob, SPAN_BOLDWARNING("You feel the heat of the room increase as the fusion engines whirr louder.")) + +/datum/controller/subsystem/hijack/proc/superheat_engine_room() + engine_room_superheated = TRUE + var/area/engine_room = GLOB.areas_by_type[/area/almayer/engineering/engine_core] + engine_room.firealert() + engine_room.temperature = T120C //slowly deals burn at this temp + for(var/mob/current_mob as anything in GLOB.mob_list) + var/area/mob_area = get_area(current_mob) + if(istype(mob_area, /area/almayer/engineering/engine_core)) + to_chat(current_mob, SPAN_BOLDWARNING("The room feels incredibly hot, you can't take much more of this!")) + +/datum/controller/subsystem/hijack/proc/announce_sd_halfway() + ares_sd_announced = TRUE + marine_announcement("ALERT: Fusion reactor meltdown has reached fifty percent.", HIJACK_ANNOUNCE) + +/datum/controller/subsystem/hijack/proc/detonate_sd() + set waitfor = FALSE + sd_detonated = TRUE + var/creak_picked = pick('sound/effects/creak1.ogg', 'sound/effects/creak2.ogg', 'sound/effects/creak3.ogg') + for(var/mob/current_mob as anything in GLOB.mob_list) + var/turf/current_turf = get_turf(current_mob) + if(!current_mob?.loc || !current_mob.client || !current_turf || !is_mainship_level(current_turf.z)) + continue + + to_chat(current_mob, SPAN_BOLDWARNING("The ship's deck worryingly creaks underneath you.")) + playsound_client(current_mob.client, creak_picked, vol = 50) + + sleep(7 SECONDS) + shakeship(2, 10, TRUE) + + marine_announcement("ALERT: Fusion reactors dangerously overloaded. Runaway meltdown in reactor core imminent.", HIJACK_ANNOUNCE) + sleep(5 SECONDS) + + var/sound_picked = pick('sound/theme/nuclear_detonation1.ogg','sound/theme/nuclear_detonation2.ogg') + for(var/client/player as anything in GLOB.clients) + playsound_client(player, sound_picked, 90) + + var/list/alive_mobs = list() //Everyone who will be destroyed on the zlevel(s). + var/list/dead_mobs = list() //Everyone who only needs to see the cinematic. + for(var/mob/current_mob as anything in GLOB.mob_list) //This only does something cool for the people about to die, but should prove pretty interesting. + var/turf/current_turf = get_turf(current_mob) + if(!current_mob?.loc || !current_turf) + continue + + if(current_mob.stat == DEAD) + dead_mobs |= current_mob + continue + + if(is_mainship_level(current_turf.z)) + alive_mobs |= current_mob + shake_camera(current_mob, 110, 4) + + + sleep(10 SECONDS) + /*Hardcoded for now, since this was never really used for anything else. + Would ideally use a better system for showing cutscenes.*/ + var/atom/movable/screen/cinematic/explosion/explosive_cinematic = new() + + for(var/mob/current_mob as anything in (alive_mobs + dead_mobs)) + if(current_mob?.loc && current_mob.client) + current_mob.client.add_to_screen(explosive_cinematic) //They may have disconnected in the mean time. + + sleep(1.5 SECONDS) //Extra 1.5 seconds to look at the ship. + flick("intro_nuke", explosive_cinematic) + + sleep(3.5 SECONDS) + for(var/mob/current_mob as anything in alive_mobs) + var/turf/current_mob_turf = get_turf(current_mob) + if(!current_mob?.loc || !current_mob_turf) //Who knows, maybe they escaped, or don't exist anymore. + continue + + if(is_mainship_level(current_mob_turf.z)) + if(istype(current_mob.loc, /obj/structure/closet/secure_closet/freezer/fridge)) + continue + + current_mob.death(create_cause_data("nuclear explosion")) + else + current_mob.client.remove_from_screen(explosive_cinematic) //those who managed to escape the z level at last second shouldn't have their view obstructed. + + flick("ship_destroyed", explosive_cinematic) + explosive_cinematic.icon_state = "summary_destroyed" + + for(var/client/player as anything in GLOB.clients) + playsound_client(player, 'sound/effects/explosionfar.ogg', 90) + + + sleep(0.5 SECONDS) + if(SSticker.mode) + SSticker.mode.check_win() + + if(!SSticker.mode) //Just a safety, just in case a mode isn't running, somehow. + to_world(SPAN_ROUNDBODY("Resetting in 30 seconds!")) + sleep(30 SECONDS) + log_game("Rebooting due to nuclear detonation.") + world.Reboot() diff --git a/code/game/area/almayer.dm b/code/game/area/almayer.dm index 6ced81a22b..742ae7a1ad 100644 --- a/code/game/area/almayer.dm +++ b/code/game/area/almayer.dm @@ -13,6 +13,21 @@ ambience_exterior = AMBIENCE_ALMAYER ceiling_muffle = FALSE + ///Whether this area is used for hijack evacuation progress + var/hijack_evacuation_area = FALSE + + ///The weight this area gives towards hijack evacuation progress + var/hijack_evacuation_weight = 0 + + ///Whether this area is additive or multiplicative towards evacuation progress + var/hijack_evacuation_type = EVACUATION_TYPE_NONE + +/area/almayer/Initialize(mapload, ...) + . = ..() + + if(hijack_evacuation_area) + SShijack.progress_areas[src] = power_equip + /area/shuttle/almayer/elevator_maintenance/upperdeck name = "\improper Maintenance Elevator" icon_state = "shuttle" @@ -160,6 +175,9 @@ fake_zlevel = 2 // lowerdeck soundscape_playlist = SCAPE_PL_ENG soundscape_interval = 15 + hijack_evacuation_area = TRUE + hijack_evacuation_weight = 0.2 + hijack_evacuation_type = EVACUATION_TYPE_ADDITIVE /area/almayer/engineering/starboard_atmos name = "\improper Atmospherics Starboard" @@ -183,6 +201,9 @@ name = "\improper Astronavigational Deck" icon_state = "astronavigation" fake_zlevel = 2 // lowerdeck + hijack_evacuation_area = TRUE + hijack_evacuation_weight = 1.1 + hijack_evacuation_type = EVACUATION_TYPE_MULTIPLICATIVE /area/almayer/shipboard/panic name = "\improper Hangar Panic Room" @@ -712,6 +733,9 @@ icon_state = "lifeboat_pump" requires_power = 1 fake_zlevel = 1 + hijack_evacuation_area = TRUE + hijack_evacuation_weight = 0.1 + hijack_evacuation_type = EVACUATION_TYPE_ADDITIVE /area/almayer/lifeboat_pumps/north1 name = "North West Lifeboat Fuel Pump" diff --git a/code/game/gamemodes/cm_self_destruct.dm b/code/game/gamemodes/cm_self_destruct.dm deleted file mode 100644 index 07c9c43a47..0000000000 --- a/code/game/gamemodes/cm_self_destruct.dm +++ /dev/null @@ -1,478 +0,0 @@ -/* -TODO -Look into animation screen not showing on self-destruct and other weirdness -Intergrate distress into this controller. -Finish nanoui conversion for comm console. -Make sure people who get nuked and wake up from SSD don't live. -Add flashing lights to evac. //DEFERRED TO BETTER LIGHTING -Finish the game mode announcement thing. -Fix escape doors to work properly. -*/ - -/* -How this works: - -First: All of the linking is done automatically on world start, so nothing needs to be done on that end other than making -sure that objects are actually placed in the game world. If not, the game will error and let you know about it. But you -don't need to modify variables or worry about area placement. It's all done for you. -The rods, for example, configure the time per activation based on their number. Shuttles link their own machines via area. -Nothing in this controller is linked to game mode, so it's stand alone, more or less, but it's best used during a game mode. -Admins have a lot of tools in their disposal via the check antagonist panel, and devs can access the VV of this controller -through that panel. - -Second: The communication console handles most of the IC triggers for activating these functions, the rest is handled elsewhere. -Check communications.dm for that. shuttle_controller.dm handles the set up for the escape pods. escape_pods.dm handles most of the -functions of the escape pods themselves. This file would likely need to be broken down into individual parts at some point in the -future. - -Evacuation takes place when sufficient alert level is reaised and a distress beacon was launched. All of the evac pods come online -and open their doors to allow entry inside. Characters may then get inside of the cryo units to before the shuttles automatically launch. -If wanted, a nearby controller object may launch each individual shuttle early. Only three people may ride on a shuttle to escape, -otherwise the launch will fail and the shuttle will become inoperable. -Any launched shuttles are taken out of the game. If the evacuation is canceled, any persons inside of the cryo tubes will be ejected. -They may temporarily open the door to exit if they are stuck inside after evac is canceled. - -When the self-destruct is enabled, the console comes online. This usually happens during an evacuation. Once the console is -interacted with, it fires up the self-destruct sequence. Several rods rise and must be interacted with in order to arm the system. -Once that happens, the console must be interacted with again to trigger the self-destruct. The self-destruct may also be -canceled from the console. - -The self-destruct may also happen if a nuke is detonated on the ship's zlevel; if it is detonated elsewhere, the ship will not blow up. -Regardless of where it's detonated, or how, a successful detonation will end the round or automatically restart the game. - -All of the necessary difines are stored under mode.dm in defines. -*/ - -var/global/datum/authority/branch/evacuation/EvacuationAuthority //This is initited elsewhere so that the world has a chance to load in. - -/datum/authority/branch/evacuation - var/name = "Evacuation Authority" - var/evac_time //Time the evacuation was initiated. - var/evac_status = EVACUATION_STATUS_STANDING_BY //What it's doing now? It can be standing by, getting ready to launch, or finished. - - var/obj/structure/machinery/self_destruct/console/dest_master //The main console that does the brunt of the work. - var/dest_rods[] //Slave devices to make the explosion work. - var/dest_cooldown //How long it takes between rods, determined by the amount of total rods present. - var/dest_index = 1 //What rod the thing is currently on. - var/dest_status = NUKE_EXPLOSION_INACTIVE - var/dest_started_at = 0 - - var/flags_scuttle = NO_FLAGS - -/datum/authority/branch/evacuation/New() - ..() - dest_master = locate() - if(!dest_master) - log_debug("ERROR CODE SD1: could not find master self-destruct console") - to_world(SPAN_DEBUG("ERROR CODE SD1: could not find master self-destruct console")) - return FALSE - dest_rods = new - for(var/obj/structure/machinery/self_destruct/rod/I in dest_master.loc.loc) dest_rods += I - if(!dest_rods.len) - log_debug("ERROR CODE SD2: could not find any self-destruct rods") - to_world(SPAN_DEBUG("ERROR CODE SD2: could not find any self-destruct rods")) - QDEL_NULL(dest_master) - return FALSE - dest_cooldown = SELF_DESTRUCT_ROD_STARTUP_TIME / dest_rods.len - dest_master.desc = "The main operating panel for a self-destruct system. It requires very little user input, but the final safety mechanism is manually unlocked.\nAfter the initial start-up sequence, [dest_rods.len] control rods must be armed, followed by manually flipping the detonation switch." - -/** - * This proc returns the ship's z level list (or whatever specified), - * when an evac/self-destruct happens. - */ -/datum/authority/branch/evacuation/proc/get_affected_zlevels() - //Nuke is not in progress, end the round on ship only. - if(dest_status < NUKE_EXPLOSION_IN_PROGRESS && SSticker?.mode.is_in_endgame) - . = SSmapping.levels_by_any_trait(list(ZTRAIT_MARINE_MAIN_SHIP)) - return - -//========================================================================================= -//========================================================================================= -//=====================================EVACUATION========================================== -//========================================================================================= -//========================================================================================= - - -/datum/authority/branch/evacuation/proc/initiate_evacuation(force=0) //Begins the evacuation procedure. - if(force || (evac_status == EVACUATION_STATUS_STANDING_BY && !(flags_scuttle & FLAGS_EVACUATION_DENY))) - evac_time = world.time - evac_status = EVACUATION_STATUS_INITIATING - ai_announcement("Attention. Emergency. All personnel must evacuate immediately. You have [round(EVACUATION_ESTIMATE_DEPARTURE/60,1)] minute\s until departure.", 'sound/AI/evacuate.ogg') - xeno_message_all("A wave of adrenaline ripples through the hive. The fleshy creatures are trying to escape!") - - for(var/obj/structure/machinery/status_display/SD in machines) - if(is_mainship_level(SD.z)) - SD.set_picture("evac") - for(var/obj/docking_port/mobile/crashable/escape_shuttle/shuttle in SSshuttle.mobile) - shuttle.prepare_evac() - activate_lifeboats() - process_evacuation() - return TRUE - -/datum/authority/branch/evacuation/proc/cancel_evacuation() //Cancels the evac procedure. Useful if admins do not want the marines leaving. - if(evac_status == EVACUATION_STATUS_INITIATING) - evac_time = null - evac_status = EVACUATION_STATUS_STANDING_BY - deactivate_lifeboats() - ai_announcement("Evacuation has been cancelled.", 'sound/AI/evacuate_cancelled.ogg') - - if(get_security_level() == "red") - for(var/obj/structure/machinery/status_display/SD in machines) - if(is_mainship_level(SD.z)) - SD.set_picture("redalert") - - for(var/obj/docking_port/mobile/crashable/escape_shuttle/shuttle in SSshuttle.mobile) - shuttle.cancel_evac() - return TRUE - -/datum/authority/branch/evacuation/proc/begin_launch() //Launches the pods. - if(evac_status == EVACUATION_STATUS_INITIATING) - evac_status = EVACUATION_STATUS_IN_PROGRESS //Cannot cancel at this point. All shuttles are off. - spawn() //One of the few times spawn() is appropriate. No need for a new proc. - ai_announcement("WARNING: Evacuation order confirmed. Launching escape pods.", 'sound/AI/evacuation_confirmed.ogg') - addtimer(CALLBACK(src, PROC_REF(launch_lifeboats)), 10 SECONDS) // giving some time to board lifeboats - - for(var/obj/docking_port/mobile/crashable/escape_shuttle/shuttle in SSshuttle.mobile) - shuttle.evac_launch() - sleep(50) - - sleep(300) //Sleep 30 more seconds to make sure everyone had a chance to leave. - var/lifesigns = 0 - // lifesigns += P.passengers - var/obj/docking_port/mobile/crashable/lifeboat/lifeboat1 = SSshuttle.getShuttle(MOBILE_SHUTTLE_LIFEBOAT_PORT) - lifeboat1.check_for_survivors() - lifesigns += lifeboat1.survivors - var/obj/docking_port/mobile/crashable/lifeboat/lifeboat2 = SSshuttle.getShuttle(MOBILE_SHUTTLE_LIFEBOAT_STARBOARD) - lifeboat2.check_for_survivors() - lifesigns += lifeboat2.survivors - ai_announcement("ATTENTION: Evacuation complete. Outbound lifesigns detected: [lifesigns ? lifesigns : "none"].", 'sound/AI/evacuation_complete.ogg') - evac_status = EVACUATION_STATUS_COMPLETE - return TRUE - -/datum/authority/branch/evacuation/proc/process_evacuation() //Process the timer. - set background = 1 - - spawn while(evac_status == EVACUATION_STATUS_INITIATING) //If it's not departing, no need to process. - if(world.time >= evac_time + EVACUATION_AUTOMATIC_DEPARTURE) begin_launch() - sleep(10) //One second. - -/datum/authority/branch/evacuation/proc/get_status_panel_eta() - switch(evac_status) - if(EVACUATION_STATUS_INITIATING) - var/eta = EVACUATION_ESTIMATE_DEPARTURE - . = "[(eta / 60) % 60]:[add_zero(num2text(eta % 60), 2)]" - if(EVACUATION_STATUS_IN_PROGRESS) . = "NOW" - -// LIFEBOATS CORNER -/datum/authority/branch/evacuation/proc/activate_lifeboats() - for(var/obj/docking_port/stationary/lifeboat_dock/lifeboat_dock in GLOB.lifeboat_almayer_docks) - var/obj/docking_port/mobile/crashable/lifeboat/lifeboat = lifeboat_dock.get_docked() - if(lifeboat && lifeboat.available) - lifeboat.status = LIFEBOAT_ACTIVE - lifeboat_dock.open_dock() - - -/datum/authority/branch/evacuation/proc/deactivate_lifeboats() - for(var/obj/docking_port/stationary/lifeboat_dock/lifeboat_dock in GLOB.lifeboat_almayer_docks) - var/obj/docking_port/mobile/crashable/lifeboat/lifeboat = lifeboat_dock.get_docked() - if(lifeboat && lifeboat.available) - lifeboat.status = LIFEBOAT_INACTIVE - -/datum/authority/branch/evacuation/proc/launch_lifeboats() - for(var/obj/docking_port/stationary/lifeboat_dock/lifeboat_dock in GLOB.lifeboat_almayer_docks) - var/obj/docking_port/mobile/crashable/lifeboat/lifeboat = lifeboat_dock.get_docked() - if(lifeboat && lifeboat.available) - lifeboat.evac_launch() - -//========================================================================================= -//========================================================================================= -//=====================================SELF DETRUCT======================================== -//========================================================================================= -//========================================================================================= - -/datum/authority/branch/evacuation/proc/enable_self_destruct(force=0) - if(force || (dest_status == NUKE_EXPLOSION_INACTIVE && !(flags_scuttle & FLAGS_SELF_DESTRUCT_DENY))) - dest_status = NUKE_EXPLOSION_ACTIVE - dest_master.lock_or_unlock() - dest_started_at = world.time - set_security_level(SEC_LEVEL_DELTA) //also activate Delta alert, to open the SD shutters. - spawn(0) - for(var/obj/structure/machinery/door/poddoor/shutters/almayer/D in machines) - if(D.id == "sd_lockdown") - D.open() - return TRUE - -//Override is for admins bypassing normal player restrictions. -/datum/authority/branch/evacuation/proc/cancel_self_destruct(override) - if(dest_status == NUKE_EXPLOSION_ACTIVE) - var/obj/structure/machinery/self_destruct/rod/I - var/i - for(i in EvacuationAuthority.dest_rods) - I = i - if(I.active_state == SELF_DESTRUCT_MACHINE_ARMED && !override) - dest_master.state(SPAN_WARNING("WARNING: Unable to cancel detonation. Please disarm all control rods.")) - return FALSE - - dest_status = NUKE_EXPLOSION_INACTIVE - dest_master.in_progress = 1 - dest_started_at = 0 - for(i in dest_rods) - I = i - if(I.active_state == SELF_DESTRUCT_MACHINE_ACTIVE || (I.active_state == SELF_DESTRUCT_MACHINE_ARMED && override)) I.lock_or_unlock(1) - dest_master.lock_or_unlock(1) - dest_index = 1 - ai_announcement("The emergency destruct system has been deactivated.", 'sound/AI/selfdestruct_deactivated.ogg') - if(evac_status == EVACUATION_STATUS_STANDING_BY) //the evac has also been cancelled or was never started. - set_security_level(SEC_LEVEL_RED, TRUE) //both SD and evac are inactive, lowering the security level. - return TRUE - -/datum/authority/branch/evacuation/proc/initiate_self_destruct(override) - if(dest_status < NUKE_EXPLOSION_IN_PROGRESS) - var/obj/structure/machinery/self_destruct/rod/I - var/i - for(i in dest_rods) - I = i - if(I.active_state != SELF_DESTRUCT_MACHINE_ARMED && !override) - dest_master.state(SPAN_WARNING("WARNING: Unable to trigger detonation. Please arm all control rods.")) - return FALSE - dest_master.in_progress = !dest_master.in_progress - for(i in EvacuationAuthority.dest_rods) - I = i - I.in_progress = 1 - ai_announcement("DANGER. DANGER. Self-destruct system activated. DANGER. DANGER. Self-destruct in progress. DANGER. DANGER.") - trigger_self_destruct(,,override) - return TRUE - -/datum/authority/branch/evacuation/proc/trigger_self_destruct(list/z_levels = SSmapping.levels_by_trait(ZTRAIT_MARINE_MAIN_SHIP), origin = dest_master, override = FALSE, end_type = NUKE_EXPLOSION_FINISHED, play_anim = TRUE, end_round = TRUE) - set waitfor = 0 - if(dest_status < NUKE_EXPLOSION_IN_PROGRESS) //One more check for good measure, in case it's triggered through a bomb instead of the destruct mechanism/admin panel. - dest_status = NUKE_EXPLOSION_IN_PROGRESS - playsound(origin, 'sound/machines/Alarm.ogg', 75, 0, 30) - world << pick('sound/theme/nuclear_detonation1.ogg','sound/theme/nuclear_detonation2.ogg') - - var/ship_status = 1 - for(var/i in z_levels) - if(is_mainship_level(i)) - ship_status = 0 //Destroyed. - break - - var/list/alive_mobs = list() //Everyone who will be destroyed on the zlevel(s). - var/list/dead_mobs = list() //Everyone who only needs to see the cinematic. - for(var/mob/current_mob as anything in GLOB.mob_list) //This only does something cool for the people about to die, but should prove pretty interesting. - var/turf/current_turf = get_turf(current_mob) - if(!current_mob || !current_mob.loc || !current_turf) - continue //In case something changes when we sleep(). - if(current_mob.stat == DEAD) - dead_mobs |= current_mob - continue - if(current_turf.z in z_levels) - alive_mobs |= current_mob - shake_camera(current_mob, 110, 4) - - - sleep(100) - /*Hardcoded for now, since this was never really used for anything else. - Would ideally use a better system for showing cutscenes.*/ - var/atom/movable/screen/cinematic/explosion/C = new - - if(play_anim) - for(var/mob/current_mob as anything in alive_mobs + dead_mobs) - if(current_mob && current_mob.loc && current_mob.client) - current_mob.client.add_to_screen(C) //They may have disconnected in the mean time. - - sleep(15) //Extra 1.5 seconds to look at the ship. - flick(override ? "intro_override" : "intro_nuke", C) - sleep(35) - for(var/mob/current_mob in alive_mobs) - if(current_mob && current_mob.loc) //Who knows, maybe they escaped, or don't exist anymore. - var/turf/current_mob_turf = get_turf(current_mob) - if(!current_mob_turf) - continue - if(current_mob_turf.z in z_levels) - if(istype(current_mob.loc, /obj/structure/closet/secure_closet/freezer/fridge)) - continue - current_mob.death(create_cause_data("nuclear explosion")) - else - if(play_anim) - current_mob.client.remove_from_screen(C) //those who managed to escape the z level at last second shouldn't have their view obstructed. - if(play_anim) - flick(ship_status ? "ship_spared" : "ship_destroyed", C) - C.icon_state = ship_status ? "summary_spared" : "summary_destroyed" - world << sound('sound/effects/explosionfar.ogg') - - if(end_round) - dest_status = end_type - - sleep(5) - if(SSticker.mode) - SSticker.mode.check_win() - - if(!SSticker.mode) //Just a safety, just in case a mode isn't running, somehow. - to_world(SPAN_ROUNDBODY("Resetting in 30 seconds!")) - sleep(300) - log_game("Rebooting due to nuclear detonation.") - world.Reboot() - return TRUE - -/datum/authority/branch/evacuation/proc/process_self_destruct() - set background = 1 - - spawn while(dest_master && dest_master.loc && dest_master.active_state == SELF_DESTRUCT_MACHINE_ARMED && dest_status == NUKE_EXPLOSION_ACTIVE && dest_index <= dest_rods.len) - var/obj/structure/machinery/self_destruct/rod/I = dest_rods[dest_index] - if(world.time >= dest_cooldown + I.activate_time) - I.lock_or_unlock() //Unlock it. - if(++dest_index <= dest_rods.len) - I = dest_rods[dest_index]//Start the next sequence. - I.activate_time = world.time - sleep(10) //Checks every second. Could integrate into another controller for better tracking. - -//Generic parent base for the self_destruct items. -/obj/structure/machinery/self_destruct - icon = 'icons/obj/structures/machinery/self_destruct.dmi' - icon_state = "console_1" - var/base_icon_state = "console" - use_power = USE_POWER_NONE //Runs unpowered, may need to change later. - density = FALSE - anchored = TRUE //So it doesn't go anywhere. - unslashable = TRUE - unacidable = TRUE //Cannot C4 it either. - mouse_opacity = FALSE //No need to click or interact with this initially. - var/in_progress = 0 //Cannot interact with while it's doing something, like an animation. - var/active_state = SELF_DESTRUCT_MACHINE_INACTIVE //What step of the process it's on. - -/obj/structure/machinery/self_destruct/Initialize(mapload, ...) - . = ..() - icon_state = "[base_icon_state]_1" - -/obj/structure/machinery/self_destruct/Destroy() - . = ..() - machines -= src - operator = null - -/obj/structure/machinery/self_destruct/ex_act(severity) - return FALSE - -/obj/structure/machinery/self_destruct/attack_hand() - if(..() || in_progress) - return FALSE //This check is backward, ugh. - return TRUE - -//Add sounds. -/obj/structure/machinery/self_destruct/proc/lock_or_unlock(lock) - set waitfor = 0 - in_progress = 1 - flick("[base_icon_state]" + (lock? "_5" : "_2"),src) - sleep(9) - mouse_opacity = !mouse_opacity - icon_state = "[base_icon_state]" + (lock? "_1" : "_3") - in_progress = 0 - active_state = active_state > SELF_DESTRUCT_MACHINE_INACTIVE ? SELF_DESTRUCT_MACHINE_INACTIVE : SELF_DESTRUCT_MACHINE_ACTIVE - -/obj/structure/machinery/self_destruct/console - name = "self-destruct control panel" - icon_state = "console_1" - base_icon_state = "console" - req_one_access = list(ACCESS_MARINE_CO, ACCESS_MARINE_SENIOR) - -/obj/structure/machinery/self_destruct/console/Destroy() - . = ..() - EvacuationAuthority.dest_master = null - EvacuationAuthority.dest_rods = null - -/obj/structure/machinery/self_destruct/console/lock_or_unlock(lock) - playsound(src, 'sound/machines/hydraulics_1.ogg', 25, 1) - ..() - -//TODO: Add sounds. -/obj/structure/machinery/self_destruct/console/attack_hand(mob/user) - if(inoperable()) - return - - tgui_interact(user) - -/obj/structure/machinery/self_destruct/console/tgui_interact(mob/user, datum/tgui/ui) - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "SelfDestructConsole", name) - ui.open() - -/obj/structure/machinery/sleep_console/ui_status(mob/user, datum/ui_state/state) - . = ..() - if(inoperable()) - return UI_CLOSE - - -/obj/structure/machinery/self_destruct/console/ui_data(mob/user) - var/list/data = list() - - data["dest_status"] = active_state - - return data - -/obj/structure/machinery/self_destruct/console/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) - . = ..() - if(.) - return - - switch(action) - if("dest_start") - to_chat(usr, SPAN_NOTICE("You press a few keys on the panel.")) - to_chat(usr, SPAN_NOTICE("The system must be booting up the self-destruct sequence now.")) - playsound(src.loc, 'sound/items/rped.ogg', 25, TRUE) - sleep(2 SECONDS) - ai_announcement("Danger. The emergency destruct system is now activated. The ship will detonate in T-minus 20 minutes. Automatic detonation is unavailable. Manual detonation is required.", 'sound/AI/selfdestruct.ogg') - active_state = SELF_DESTRUCT_MACHINE_ARMED //Arm it here so the process can execute it later. - var/obj/structure/machinery/self_destruct/rod/I = EvacuationAuthority.dest_rods[EvacuationAuthority.dest_index] - I.activate_time = world.time - EvacuationAuthority.process_self_destruct() - . = TRUE - - if("dest_trigger") - EvacuationAuthority.initiate_self_destruct() - . = TRUE - - if("dest_cancel") - if(!allowed(usr)) - to_chat(usr, SPAN_WARNING("You don't have the necessary clearance to cancel the emergency destruct system!")) - return - EvacuationAuthority.cancel_self_destruct() - . = TRUE - -/obj/structure/machinery/self_destruct/rod - name = "self-destruct control rod" - desc = "It is part of a complicated self-destruct sequence, but relatively simple to operate. Twist to arm or disarm." - icon_state = "rod_1" - base_icon_state = "rod" - layer = BELOW_OBJ_LAYER - var/activate_time - -/obj/structure/machinery/self_destruct/rod/Destroy() - . = ..() - if(EvacuationAuthority && EvacuationAuthority.dest_rods) - EvacuationAuthority.dest_rods -= src - -/obj/structure/machinery/self_destruct/rod/lock_or_unlock(lock) - playsound(src, 'sound/machines/hydraulics_2.ogg', 25, 1) - ..() - if(lock) - activate_time = null - density = FALSE - layer = initial(layer) - else - density = TRUE - layer = ABOVE_OBJ_LAYER - -/obj/structure/machinery/self_destruct/rod/attack_hand(mob/user) - if(..()) - switch(active_state) - if(SELF_DESTRUCT_MACHINE_ACTIVE) - to_chat(user, SPAN_NOTICE("You twist and release the control rod, arming it.")) - playsound(src, 'sound/machines/switch.ogg', 25, 1) - icon_state = "rod_4" - active_state = SELF_DESTRUCT_MACHINE_ARMED - if(SELF_DESTRUCT_MACHINE_ARMED) - to_chat(user, SPAN_NOTICE("You twist and release the control rod, disarming it.")) - playsound(src, 'sound/machines/switch.ogg', 25, 1) - icon_state = "rod_3" - active_state = SELF_DESTRUCT_MACHINE_ACTIVE - else to_chat(user, SPAN_WARNING("The control rod is not ready.")) diff --git a/code/game/gamemodes/colonialmarines/colonialmarines.dm b/code/game/gamemodes/colonialmarines/colonialmarines.dm index df04873ac1..7b1c695ade 100644 --- a/code/game/gamemodes/colonialmarines/colonialmarines.dm +++ b/code/game/gamemodes/colonialmarines/colonialmarines.dm @@ -297,29 +297,25 @@ if(SSticker.current_state != GAME_STATE_PLAYING) return - var/living_player_list[] = count_humans_and_xenos(EvacuationAuthority.get_affected_zlevels()) + var/living_player_list[] = count_humans_and_xenos(get_affected_zlevels()) var/num_humans = living_player_list[1] var/num_xenos = living_player_list[2] if(force_end_at && world.time > force_end_at) round_finished = MODE_INFESTATION_X_MINOR - if(EvacuationAuthority.dest_status == NUKE_EXPLOSION_FINISHED) - round_finished = MODE_GENERIC_DRAW_NUKE //Nuke went off, ending the round. - if(EvacuationAuthority.dest_status == NUKE_EXPLOSION_GROUND_FINISHED) - round_finished = MODE_INFESTATION_M_MINOR //Nuke went off, ending the round. - if(EvacuationAuthority.dest_status < NUKE_EXPLOSION_IN_PROGRESS) //If the nuke ISN'T in progress. We do not want to end the round before it detonates. - if(!num_humans && num_xenos) //No humans remain alive. - round_finished = MODE_INFESTATION_X_MAJOR //Evacuation did not take place. Everyone died. - else if(num_humans && !num_xenos) - if(SSticker.mode && SSticker.mode.is_in_endgame) - round_finished = MODE_INFESTATION_X_MINOR //Evacuation successfully took place. - else - SSticker.roundend_check_paused = TRUE - round_finished = MODE_INFESTATION_M_MAJOR //Humans destroyed the xenomorphs. - ares_conclude() - addtimer(VARSET_CALLBACK(SSticker, roundend_check_paused, FALSE), MARINE_MAJOR_ROUND_END_DELAY) - else if(!num_humans && !num_xenos) - round_finished = MODE_INFESTATION_DRAW_DEATH //Both were somehow destroyed. + + if(!num_humans && num_xenos) //No humans remain alive. + round_finished = MODE_INFESTATION_X_MAJOR //Evacuation did not take place. Everyone died. + else if(num_humans && !num_xenos) + if(SSticker.mode && SSticker.mode.is_in_endgame) + round_finished = MODE_INFESTATION_X_MINOR //Evacuation successfully took place. + else + SSticker.roundend_check_paused = TRUE + round_finished = MODE_INFESTATION_M_MAJOR //Humans destroyed the xenomorphs. + ares_conclude() + addtimer(VARSET_CALLBACK(SSticker, roundend_check_paused, FALSE), MARINE_MAJOR_ROUND_END_DELAY) + else if(!num_humans && !num_xenos) + round_finished = MODE_INFESTATION_DRAW_DEATH //Both were somehow destroyed. /datum/game_mode/colonialmarines/check_queen_status(hivenumber) set waitfor = 0 @@ -367,7 +363,7 @@ round_statistics.current_map.total_marine_victories++ round_statistics.current_map.total_marine_majors++ if(MODE_INFESTATION_X_MINOR) - var/list/living_player_list = count_humans_and_xenos(EvacuationAuthority.get_affected_zlevels()) + var/list/living_player_list = count_humans_and_xenos(get_affected_zlevels()) if(living_player_list[1] && !living_player_list[2]) // If Xeno Minor but Xenos are dead and Humans are alive, see which faction is the last standing var/headcount = count_per_faction() var/living = headcount["total_headcount"] diff --git a/code/game/gamemodes/extended/infection.dm b/code/game/gamemodes/extended/infection.dm index 04e0545361..a6b909022a 100644 --- a/code/game/gamemodes/extended/infection.dm +++ b/code/game/gamemodes/extended/infection.dm @@ -95,7 +95,7 @@ possible_survivors -= new_survivor //either we drafted a survivor, or we're skipping over someone, either or - remove them /datum/game_mode/infection/check_win() - var/living_player_list[] = count_humans_and_xenos(EvacuationAuthority.get_affected_zlevels()) + var/list/living_player_list = count_humans_and_xenos(get_affected_zlevels()) var/num_humans = living_player_list[1] var/zed = living_player_list[2] diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 5382d80f37..e467631c91 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -111,6 +111,10 @@ var/global/cas_tracking_id_increment = 0 //this var used to assign unique tracki log_game("Server IP: [world.internet_address]:[world.port]") return TRUE +/datum/game_mode/proc/get_affected_zlevels() + if(is_in_endgame) + . = SSmapping.levels_by_any_trait(list(ZTRAIT_MARINE_MAIN_SHIP)) + return ///process() ///Called by the gameticker @@ -119,8 +123,7 @@ var/global/cas_tracking_id_increment = 0 //this var used to assign unique tracki /datum/game_mode/proc/check_finished() //to be called by ticker - if(EvacuationAuthority.dest_status == NUKE_EXPLOSION_FINISHED || EvacuationAuthority.dest_status == NUKE_EXPLOSION_GROUND_FINISHED ) - return TRUE + return /datum/game_mode/proc/cleanup() //This is called when the round has ended but not the game, if any cleanup would be necessary in that case. return diff --git a/code/game/machinery/ARES/ARES_interface.dm b/code/game/machinery/ARES/ARES_interface.dm index 64755897bc..0e45d5ee17 100644 --- a/code/game/machinery/ARES/ARES_interface.dm +++ b/code/game/machinery/ARES/ARES_interface.dm @@ -79,7 +79,7 @@ data["access_level"] = authentication data["alert_level"] = security_level - data["evac_status"] = EvacuationAuthority.evac_status + data["evac_status"] = SShijack.evac_status data["worldtime"] = world.time data["access_log"] = datacore.interface_access_list @@ -397,12 +397,12 @@ playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE - if(EvacuationAuthority.flags_scuttle & FLAGS_EVACUATION_DENY) + if(SShijack.evac_admin_denied) to_chat(usr, SPAN_WARNING("The USCM has placed a lock on deploying the evacuation pods.")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE - if(!EvacuationAuthority.initiate_evacuation()) + if(!SShijack.initiate_evacuation()) to_chat(usr, SPAN_WARNING("You are unable to initiate an evacuation procedure right now!")) playsound(src, 'sound/machines/buzz-two.ogg', 15, 1) return FALSE diff --git a/code/game/machinery/computer/almayer_control.dm b/code/game/machinery/computer/almayer_control.dm index 145d0d278c..fb9f7a0375 100644 --- a/code/game/machinery/computer/almayer_control.dm +++ b/code/game/machinery/computer/almayer_control.dm @@ -81,9 +81,9 @@ data["worldtime"] = world.time - data["evac_status"] = EvacuationAuthority.evac_status - if(EvacuationAuthority.evac_status == EVACUATION_STATUS_INITIATING) - data["evac_eta"] = EvacuationAuthority.get_status_panel_eta() + data["evac_status"] = SShijack.evac_status + if(SShijack.evac_status == EVACUATION_STATUS_INITIATED) + data["evac_eta"] = SShijack.get_evac_eta() if(!messagetitle.len) data["messages"] = null @@ -120,11 +120,11 @@ to_chat(usr, SPAN_WARNING("The ship must be under red alert in order to enact evacuation procedures.")) return FALSE - if(EvacuationAuthority.flags_scuttle & FLAGS_EVACUATION_DENY) + if(SShijack.evac_admin_denied) to_chat(usr, SPAN_WARNING("The USCM has placed a lock on deploying the evacuation pods.")) return FALSE - if(!EvacuationAuthority.initiate_evacuation()) + if(!SShijack.initiate_evacuation()) to_chat(usr, SPAN_WARNING("You are unable to initiate an evacuation procedure right now!")) return FALSE @@ -134,12 +134,10 @@ . = TRUE if("evacuation_cancel") - if(!EvacuationAuthority.cancel_evacuation()) + if(!SShijack.cancel_evacuation()) to_chat(usr, SPAN_WARNING("You are unable to cancel the evacuation right now!")) return FALSE - addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/structure/machinery/computer/almayer_control, cancel_evac)), 4 SECONDS) - log_game("[key_name(usr)] has canceled the emergency evacuation.") message_admins("[key_name_admin(usr)] has canceled the emergency evacuation.") log_ares_security("Cancel Evacuation", "[usr] has cancelled the emergency evacuation.") @@ -276,10 +274,3 @@ // end tgui interact \\ // end tgui \\ - -/obj/structure/machinery/computer/almayer_control/proc/cancel_evac() - if(EvacuationAuthority.evac_status == EVACUATION_STATUS_STANDING_BY)//nothing changed during the wait - //if the self_destruct is active we try to cancel it (which includes lowering alert level to red) - if(!EvacuationAuthority.cancel_self_destruct(1)) - //if SD wasn't active (likely canceled manually in the SD room), then we lower the alert level manually. - set_security_level(SEC_LEVEL_RED, TRUE) //both SD and evac are inactive, lowering the security level. diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index d4d45de8db..3332577683 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -138,11 +138,11 @@ to_chat(usr, SPAN_WARNING("The ship must be under delta alert in order to enact evacuation procedures.")) return FALSE - if(EvacuationAuthority.flags_scuttle & FLAGS_EVACUATION_DENY) + if(SShijack.evac_admin_denied) to_chat(usr, SPAN_WARNING("The USCM has placed a lock on deploying the evacuation pods.")) return FALSE - if(!EvacuationAuthority.initiate_evacuation()) + if(!SShijack.initiate_evacuation()) to_chat(usr, SPAN_WARNING("You are unable to initiate an evacuation procedure right now!")) return FALSE @@ -155,17 +155,10 @@ if("evacuation_cancel") if(state == STATE_EVACUATION_CANCEL) - if(!EvacuationAuthority.cancel_evacuation()) + if(!SShijack.cancel_evacuation()) to_chat(usr, SPAN_WARNING("You are unable to cancel the evacuation right now!")) return FALSE - spawn(35)//some time between AI announcements for evac cancel and SD cancel. - if(EvacuationAuthority.evac_status == EVACUATION_STATUS_STANDING_BY)//nothing changed during the wait - //if the self_destruct is active we try to cancel it (which includes lowering alert level to red) - if(!EvacuationAuthority.cancel_self_destruct(1)) - //if SD wasn't active (likely canceled manually in the SD room), then we lower the alert level manually. - set_security_level(SEC_LEVEL_RED, TRUE) //both SD and evac are inactive, lowering the security level. - log_game("[key_name(usr)] has canceled the emergency evacuation.") message_admins("[key_name_admin(usr)] has canceled the emergency evacuation.") log_ares_security("Cancel Evacuation", "[usr] has cancelled the emergency evacuation.") @@ -327,8 +320,8 @@ user.set_interaction(src) var/dat = "Communications Console" - if(EvacuationAuthority.evac_status == EVACUATION_STATUS_INITIATING) - dat += "Evacuation in Progress\n
\nETA: [EvacuationAuthority.get_status_panel_eta()]
" + if(SShijack.evac_status == EVACUATION_STATUS_INITIATED) + dat += "Evacuation in Progress\n
\nETA: [SShijack.get_evac_eta()]
" switch(state) if(STATE_DEFAULT) if(authenticated) @@ -351,9 +344,11 @@ dat += "
Award a medal" dat += "
Send Distress Beacon" dat += "
Activate Self-Destruct" - switch(EvacuationAuthority.evac_status) - if(EVACUATION_STATUS_STANDING_BY) dat += "
Initiate emergency evacuation" - if(EVACUATION_STATUS_INITIATING) dat += "
Cancel emergency evacuation" + switch(SShijack.evac_status) + if(EVACUATION_STATUS_NOT_INITIATED) + dat += "
Initiate emergency evacuation" + if(EVACUATION_STATUS_INITIATED) + dat += "
Cancel emergency evacuation" else dat += "
LOG IN" @@ -408,20 +403,8 @@ if(STATE_ALERT_LEVEL) dat += "Current alert level: [get_security_level()]
" - if(security_level == SEC_LEVEL_DELTA) - if(EvacuationAuthority.dest_status >= NUKE_EXPLOSION_ACTIVE) - dat += SET_CLASS("The self-destruct mechanism is active. [EvacuationAuthority.evac_status != EVACUATION_STATUS_INITIATING ? "You have to manually deactivate the self-destruct mechanism." : ""]", INTERFACE_RED) - dat += "
" - switch(EvacuationAuthority.evac_status) - if(EVACUATION_STATUS_INITIATING) - dat += SET_CLASS("Evacuation initiated. Evacuate or rescind evacuation orders.", INTERFACE_RED) - if(EVACUATION_STATUS_IN_PROGRESS) - dat += SET_CLASS("Evacuation in progress.", INTERFACE_RED) - if(EVACUATION_STATUS_COMPLETE) - dat += SET_CLASS("Evacuation complete.", INTERFACE_RED) - else - dat += "Blue
" - dat += "Green" + dat += "Blue
" + dat += "Green" if(STATE_CONFIRM_LEVEL) dat += "Current alert level: [get_security_level()]
" diff --git a/code/game/machinery/fusion_engine.dm b/code/game/machinery/fusion_engine.dm index 4158727e37..8e3097ef52 100644 --- a/code/game/machinery/fusion_engine.dm +++ b/code/game/machinery/fusion_engine.dm @@ -15,6 +15,7 @@ unacidable = TRUE //NOPE.jpg anchored = TRUE density = TRUE + power_machine = TRUE var/power_gen_percent = 0 //50,000W at full capacity var/buildstate = 0 //What state of building it are we on, 0-3, 1 is "broken", the default @@ -24,7 +25,8 @@ var/obj/item/fuelCell/fusion_cell = new //Starts with a fuel cell loaded in. Maybe replace with the plasma tanks in the future and have it consume plasma? Possibly remove this later if it's irrelevent... var/fuel_rate = 0 //Rate at which fuel is used. Based mostly on how long the generator has been running. - power_machine = TRUE + /// If the generator is overloaded. Only possible during hijack once fuel is at 100%. + var/overloaded = FALSE /obj/structure/machinery/power/fusion_engine/Initialize(mapload, ...) . = ..() @@ -35,11 +37,25 @@ /obj/structure/machinery/power/fusion_engine/Destroy() QDEL_NULL(fusion_cell) - . = ..() + return ..() +/obj/structure/machinery/power/fusion_engine/attack_alien(mob/living/carbon/xenomorph/xeno) + if(!overloaded) + to_chat(xeno, SPAN_WARNING("You see no reason to attack [src].")) + return XENO_NO_DELAY_ACTION + + xeno.animation_attack_on(src) + playsound(src, 'sound/effects/metalhit.ogg', 25, 1) + xeno.visible_message(SPAN_DANGER("[xeno] [xeno.slashes_verb] [src], stopping its overload process!"), \ + SPAN_DANGER("You [xeno.slash_verb] [src], stopping its overload process!"), null, 5, CHAT_TYPE_XENO_COMBAT) + set_overloading(FALSE) + return XENO_ATTACK_ACTION /obj/structure/machinery/power/fusion_engine/power_change() - return + . = ..() + if(overloaded) + set_overloading(FALSE) + visible_message("[icon2html(src, viewers(src))] [src]'s overload suddenly ceases as primary power is lost.") /obj/structure/machinery/power/fusion_engine/process() if(!is_on || buildstate || !anchored || !powernet || !fusion_cell) //Default logic checking @@ -60,9 +76,18 @@ stop_processing() return FALSE - if(!check_failure()) + if(overloaded && prob(1)) // up to 18 generators at 1% every 3.5 seconds means that every ~21 seconds or so, one generator will make noise assuming all are overloaded + switch(rand(1, 2)) + if(1) + visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] loudly hums.")]") + playsound(src, 'sound/machines/resource_node/node_idle.ogg', 60, TRUE) + if(2) + visible_message("[icon2html(src, viewers(src))] [SPAN_NOTICE("[src] makes a worrying hiss.")]") + playsound(src, 'sound/machines/hiss.ogg', 60, TRUE) - if(power_gen_percent < 100) power_gen_percent++ + if(!check_failure()) + if(power_gen_percent < 100) + power_gen_percent++ switch(power_gen_percent) //Flavor text! if(10) @@ -96,6 +121,10 @@ to_chat(user, SPAN_NOTICE("Use a wrench to repair it.")) return FALSE if(is_on) + if(overloaded) + to_chat(user, SPAN_WARNING("You can't shut off [src] while it's overloaded!")) + return + visible_message("[icon2html(src, viewers(src))] [SPAN_WARNING("[src] beeps softly and the humming stops as [usr] shuts off the generator.")]") is_on = 0 power_gen_percent = 0 @@ -208,11 +237,18 @@ if(buildstate) to_chat(user, SPAN_WARNING("You must repair the generator before working with its fuel cell.")) return + + if(overloaded) + to_chat(user, SPAN_WARNING("You must restore the safeties on the generator before working with its fuel cell.")) + return + if(is_on) to_chat(user, SPAN_WARNING("You must turn off the generator before working with its fuel cell.")) return + if(!fusion_cell) to_chat(user, SPAN_WARNING("There is no cell to remove.")) + else if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) user.visible_message(SPAN_WARNING("[user] fumbles around figuring out [src]'s fuel receptacle."), @@ -232,23 +268,73 @@ fusion_cell = null update_icon() return TRUE + + else if(HAS_TRAIT(O, TRAIT_TOOL_MULTITOOL)) + if(!skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) + to_chat(user, SPAN_WARNING("You have no idea what to do with [src].")) + return + + if(!overloaded) + if(!SShijack.sd_unlocked) + to_chat(user, SPAN_WARNING("You consider overloading [src]'s safeties, but you decide against it.")) + return + + if(inoperable()) + to_chat(user, SPAN_WARNING("[src] needs to be working and have external power in order to overload it!")) + return + + to_chat(user, SPAN_WARNING("You start overloading the safeties on [src]...")) + if(!do_after(user, 1.5 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) + return + + if(inoperable()) + return + + to_chat(user, SPAN_WARNING("You finish overloading the safeties on [src].")) + set_overloading(TRUE) + log_game("[key_name(user)] has overloaded a generator.") + + else + to_chat(user, SPAN_WARNING("You start restoring the safeties on [src]...")) + if(!do_after(user, 1.5 SECONDS, INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) + return + + if(inoperable()) + return + + to_chat(user, SPAN_WARNING("You finish restoring the safeties on [src].")) + log_game("[key_name(user)] has restored the safeties of a generator.") + set_overloading(FALSE) + + return TRUE + else return ..() /obj/structure/machinery/power/fusion_engine/get_examine_text(mob/user) . = ..() - if(ishuman(user)) + if(isxeno(user)) + if(overloaded) + . += SPAN_INFO("You could attack this to stop the overload process.") + + else if(ishuman(user)) if(buildstate) . += SPAN_INFO("It's broken.") switch(buildstate) if(1) - . += SPAN_INFO("Use a blowtorch, then wirecutters, then wrench to repair it.") + . += SPAN_INFO("Use a blowtorch, then wirecutters, then wrench to repair it.") if(2) - . += SPAN_INFO("Use a wirecutters, then wrench to repair it.") + . += SPAN_INFO("Use a wirecutters, then wrench to repair it.") if(3) - . += SPAN_INFO("Use a wrench to repair it.") + . += SPAN_INFO("Use a wrench to repair it.") return FALSE + if(SShijack.sd_unlocked && skillcheck(user, SKILL_ENGINEER, SKILL_ENGINEER_ENGI)) + if(!overloaded) + . += SPAN_INFO("You could overload this with a multitool.") + else + . += SPAN_INFO("You could restore its safeties with a multitool.") + if(!is_on) . += SPAN_INFO("It looks offline.") else @@ -274,18 +360,21 @@ switch(buildstate) if(0) if(fusion_cell) - var/pstatus = is_on ? "on" : "off" - switch(fusion_cell.get_fuel_percent()) - if(0 to 10) - icon_state = "[pstatus]-10" - if(10 to 25) - icon_state = "[pstatus]-25" - if(25 to 50) - icon_state = "[pstatus]-50" - if(50 to 75) - icon_state = "[pstatus]-75" - if(75 to INFINITY) - icon_state = "[pstatus]-100" + if(overloaded) + icon_state = "overloaded" + else + var/pstatus = is_on ? "on" : "off" + switch(fusion_cell.get_fuel_percent()) + if(0 to 10) + icon_state = "[pstatus]-10" + if(10 to 25) + icon_state = "[pstatus]-25" + if(25 to 50) + icon_state = "[pstatus]-50" + if(50 to 75) + icon_state = "[pstatus]-75" + if(75 to INFINITY) + icon_state = "[pstatus]-100" else icon_state = "off" @@ -317,9 +406,13 @@ else return 0 +/obj/structure/machinery/power/fusion_engine/proc/set_overloading(new_overloading) + if(overloaded == new_overloading) + return - - + overloaded = new_overloading + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_GENERATOR_SET_OVERLOADING, overloaded) + update_icon() diff --git a/code/game/machinery/nuclearbomb.dm b/code/game/machinery/nuclearbomb.dm index 743f53e4f0..28ebbecc75 100644 --- a/code/game/machinery/nuclearbomb.dm +++ b/code/game/machinery/nuclearbomb.dm @@ -394,7 +394,38 @@ var/bomb_set = FALSE update_icon() safety = TRUE - EvacuationAuthority.trigger_self_destruct(list(z), src, FALSE, NUKE_EXPLOSION_GROUND_FINISHED, FALSE, end_round) + playsound(src, 'sound/machines/Alarm.ogg', 75, 0, 30) + world << pick('sound/theme/nuclear_detonation1.ogg','sound/theme/nuclear_detonation2.ogg') + + var/list/alive_mobs = list() //Everyone who will be destroyed on the zlevel(s). + var/list/dead_mobs = list() //Everyone who only needs to see the cinematic. + for(var/mob/current_mob as anything in GLOB.mob_list) + if(!current_mob?.loc) + continue + if(current_mob.stat == DEAD) + dead_mobs |= current_mob + continue + var/turf/current_turf = get_turf(current_mob) + if(z == current_turf.z) + alive_mobs |= current_mob + shake_camera(current_mob, 110, 4) + + for(var/mob/current_mob in alive_mobs) + if(current_mob && current_mob.loc) + var/turf/current_mob_turf = get_turf(current_mob) + if(z == current_mob_turf.z) + if(istype(current_mob.loc, /obj/structure/closet/secure_closet/freezer/fridge)) + continue + current_mob.death(create_cause_data("nuclear explosion")) + + for(var/mob/current_mob in (alive_mobs + dead_mobs)) + if(current_mob && current_mob.loc) + var/turf/current_mob_turf = get_turf(current_mob) + if(z == current_mob_turf.z) + if(istype(current_mob.loc, /obj/structure/closet/secure_closet/freezer/fridge)) + continue + for(var/obj/item/alien_embryo/embryo in current_mob) + qdel(embryo) sleep(100) cell_explosion(loc, 500, 150, EXPLOSION_FALLOFF_SHAPE_LINEAR, null, create_cause_data(initial(name))) diff --git a/code/game/machinery/sentry_holder.dm b/code/game/machinery/sentry_holder.dm index 61f8725128..fe676e9103 100644 --- a/code/game/machinery/sentry_holder.dm +++ b/code/game/machinery/sentry_holder.dm @@ -10,13 +10,12 @@ idle_power_usage = 1000 power_channel = 1 use_power = USE_POWER_IDLE - machine_processing = 1 var/deployment_cooldown var/turret_path = /obj/structure/machinery/defenses/sentry/premade/deployable // Path of the turret used var/obj/structure/machinery/defenses/sentry/premade/deployable/deployed_turret var/ox = 0 var/oy = 0 - var/ind = FALSE + var/require_red_alert = FALSE /obj/structure/machinery/sentry_holder/Initialize() . = ..() @@ -36,34 +35,38 @@ . += "It's offline." /obj/structure/machinery/sentry_holder/attack_hand(mob/user) - if(deployed_turret) - if(deployment_cooldown > world.time) - to_chat(user, SPAN_WARNING("[src] is busy.")) - return //prevents spamming deployment/undeployment - if(deployed_turret.loc == src) //not deployed - if(stat & NOPOWER) - to_chat(user, SPAN_WARNING("[src] is non-functional.")) - else - to_chat(user, SPAN_NOTICE("You deploy [src].")) - deploy_sentry() - else - to_chat(user, SPAN_NOTICE("You retract [src].")) - undeploy_sentry() - else + if(!deployed_turret) to_chat(user, SPAN_WARNING("[src] is unresponsive.")) + return -/obj/structure/machinery/sentry_holder/process() - if(stat & NOPOWER) - if(deployed_turret) - undeploy_sentry() - ind = FALSE - else - icon_state = "sentry_system_destroyed" - else - update_use_power(USE_POWER_IDLE) - if(!ind) - deploy_sentry() - ind = TRUE + if(deployment_cooldown > world.time) + to_chat(user, SPAN_WARNING("[src] is busy.")) + return + + if(deployed_turret.loc == src) //not deployed + if(stat & NOPOWER) + to_chat(user, SPAN_WARNING("[src] is non-functional.")) + return + + if(require_red_alert && (seclevel2num(get_security_level()) < SEC_LEVEL_RED)) + to_chat(user, SPAN_WARNING("[src] can only be activated in emergencies.")) + return + + to_chat(user, SPAN_NOTICE("You deploy [src].")) + deploy_sentry() + return + + to_chat(user, SPAN_NOTICE("You retract [src].")) + undeploy_sentry() + return + +/obj/structure/machinery/sentry_holder/update_use_power(new_use_power) + ..() + + if(!(stat & NOPOWER)) + return + + undeploy_sentry() /obj/structure/machinery/sentry_holder/proc/deploy_sentry() if(!deployed_turret) @@ -111,3 +114,6 @@ desc = "A box that deploys a sentry turret for protection of the residents in the area." turret_path = /obj/structure/machinery/defenses/sentry/premade/deployable/colony +/obj/structure/machinery/sentry_holder/almayer + turret_path = /obj/structure/machinery/defenses/sentry/premade/deployable/almayer + require_red_alert = TRUE diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm index 6c6d2bda8b..c56f8da361 100644 --- a/code/game/machinery/status_display.dm +++ b/code/game/machinery/status_display.dm @@ -78,7 +78,7 @@ return 1 if(STATUS_DISPLAY_TRANSFER_SHUTTLE_TIME) //emergency shuttle timer message1 = "EVAC" - message2 = EvacuationAuthority.get_status_panel_eta() + message2 = SShijack.get_evac_eta() if(message2) if(length(message2) > CHARS_PER_LINE) message2 = "Error" update_display(message1, message2) @@ -163,6 +163,15 @@ if(maptext) maptext = "" +/obj/structure/machinery/status_display/proc/set_sec_level_picture() + switch(security_level) + if(SEC_LEVEL_GREEN) + set_picture("default") + if(SEC_LEVEL_BLUE) + set_picture("bluealert") + if(SEC_LEVEL_RED, SEC_LEVEL_DELTA) + set_picture("redalert") + /obj/structure/machinery/ai_status_display icon = 'icons/obj/structures/machinery/status_display.dmi' icon_state = "frame" diff --git a/code/game/objects/items/devices/cictablet.dm b/code/game/objects/items/devices/cictablet.dm index f355b39c46..6abd709801 100644 --- a/code/game/objects/items/devices/cictablet.dm +++ b/code/game/objects/items/devices/cictablet.dm @@ -61,7 +61,7 @@ var/list/data = list() data["alert_level"] = security_level - data["evac_status"] = EvacuationAuthority.evac_status + data["evac_status"] = SShijack.evac_status data["endtime"] = announcement_cooldown data["distresstime"] = distress_cooldown data["worldtime"] = world.time @@ -135,11 +135,11 @@ to_chat(usr, SPAN_WARNING("The ship must be under red alert in order to enact evacuation procedures.")) return FALSE - if(EvacuationAuthority.flags_scuttle & FLAGS_EVACUATION_DENY) + if(SShijack.evac_admin_denied) to_chat(usr, SPAN_WARNING("The USCM has placed a lock on deploying the evacuation pods.")) return FALSE - if(!EvacuationAuthority.initiate_evacuation()) + if(!SShijack.initiate_evacuation()) to_chat(usr, SPAN_WARNING("You are unable to initiate an evacuation procedure right now!")) return FALSE diff --git a/code/game/world.dm b/code/game/world.dm index 82a9ae45de..f5388ed6fd 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -71,8 +71,6 @@ var/list/reboot_sfx = file2list("config/reboot_sfx.txt") RoleAuthority = new /datum/authority/branch/role() to_world(SPAN_DANGER("\b Job setup complete")) - if(!EvacuationAuthority) EvacuationAuthority = new - initiate_minimap_icons() change_tick_lag(CONFIG_GET(number/ticklag)) diff --git a/code/modules/admin/player_panel/player_panel.dm b/code/modules/admin/player_panel/player_panel.dm index 12686e6835..4b79c8c915 100644 --- a/code/modules/admin/player_panel/player_panel.dm +++ b/code/modules/admin/player_panel/player_panel.dm @@ -389,15 +389,15 @@ dat += "Round Duration: [round(world.time / 36000)]:[add_zero(world.time / 600 % 60, 2)]:[world.time / 100 % 6][world.time / 100 % 10]
" if(check_rights(R_DEBUG, 0)) - dat += "
VV Evacuation Controller
" dat += "VV Shuttle Controller

" if(check_rights(R_MOD, 0)) - dat += "Evacuation: " - switch(EvacuationAuthority.evac_status) - if(EVACUATION_STATUS_STANDING_BY) dat += "STANDING BY" - if(EVACUATION_STATUS_INITIATING) dat += "IN PROGRESS: [EvacuationAuthority.get_status_panel_eta()]" - if(EVACUATION_STATUS_COMPLETE) dat += "COMPLETE" + dat += "Evacuation Goals: " + switch(SShijack.evac_status) + if(EVACUATION_STATUS_NOT_INITIATED) + dat += "STANDING BY" + if(EVACUATION_STATUS_INITIATED) + dat += "IN PROGRESS" dat += "
" dat += "Initiate Evacuation
" @@ -405,20 +405,6 @@ dat += "Toggle Evacuation Permission (does not affect evac in progress)
" if(check_rights(R_ADMIN, 0)) dat += "Force Evacuation Now
" - if(check_rights(R_ADMIN, 0)) - dat += "Self-Destruct: " - switch(EvacuationAuthority.dest_status) - if(NUKE_EXPLOSION_INACTIVE) dat += "INACTIVE" - if(NUKE_EXPLOSION_ACTIVE) dat += "ACTIVE" - if(NUKE_EXPLOSION_IN_PROGRESS) dat += "IN PROGRESS" - if(NUKE_EXPLOSION_FINISHED, NUKE_EXPLOSION_GROUND_FINISHED) dat += "FINISHED" - dat += "
" - - dat += "Unlock Self-Destruct control panel for humans
" - dat += "Lock Self-Destruct control panel for humans
" - dat += "Destruct the [MAIN_SHIP_NAME] NOW
" - dat += "Toggle Self-Destruct Permission (does not affect evac in progress)
" - dat += "
[SSticker.delay_end ? "End Round Normally" : "Delay Round End"]
" dat += "" show_browser(usr, dat, "Round Status", "roundstatus", "size=600x500") diff --git a/code/modules/admin/tabs/event_tab.dm b/code/modules/admin/tabs/event_tab.dm index 8bcd15cb04..fcc604c9cf 100644 --- a/code/modules/admin/tabs/event_tab.dm +++ b/code/modules/admin/tabs/event_tab.dm @@ -250,7 +250,7 @@ if(!SSticker.mode || !check_rights(R_ADMIN)) return set_security_level(SEC_LEVEL_RED) - EvacuationAuthority.initiate_evacuation() + SShijack.initiate_evacuation() message_admins("[key_name_admin(usr)] forced an emergency evacuation.") @@ -261,7 +261,7 @@ if(!SSticker.mode || !check_rights(R_ADMIN)) return - EvacuationAuthority.cancel_evacuation() + SShijack.cancel_evacuation() message_admins("[key_name_admin(usr)] canceled an emergency evacuation.") diff --git a/code/modules/admin/topic/topic.dm b/code/modules/admin/topic/topic.dm index f78b6a844d..d60377123c 100644 --- a/code/modules/admin/topic/topic.dm +++ b/code/modules/admin/topic/topic.dm @@ -131,50 +131,20 @@ if(href_list["evac_authority"]) switch(href_list["evac_authority"]) if("init_evac") - if(!EvacuationAuthority.initiate_evacuation()) + if(!SShijack.initiate_evacuation()) to_chat(usr, SPAN_WARNING("You are unable to initiate an evacuation right now!")) else message_admins("[key_name_admin(usr)] called an evacuation.") if("cancel_evac") - if(!EvacuationAuthority.cancel_evacuation()) + if(!SShijack.cancel_evacuation()) to_chat(usr, SPAN_WARNING("You are unable to cancel an evacuation right now!")) else message_admins("[key_name_admin(usr)] canceled an evacuation.") if("toggle_evac") - EvacuationAuthority.flags_scuttle ^= FLAGS_EVACUATION_DENY - message_admins("[key_name_admin(usr)] has [EvacuationAuthority.flags_scuttle & FLAGS_EVACUATION_DENY ? "forbidden" : "allowed"] ship-wide evacuation.") - - if("force_evac") - if(!EvacuationAuthority.begin_launch()) - to_chat(usr, SPAN_WARNING("You are unable to launch the pods directly right now!")) - else - message_admins("[key_name_admin(usr)] force-launched the escape pods.") - - if("init_dest") - if(!EvacuationAuthority.enable_self_destruct()) - to_chat(usr, SPAN_WARNING("You are unable to authorize the self-destruct right now!")) - else - message_admins("[key_name_admin(usr)] force-enabled the self-destruct system.") - - if("cancel_dest") - if(!EvacuationAuthority.cancel_self_destruct(1)) - to_chat(usr, SPAN_WARNING("You are unable to cancel the self-destruct right now!")) - else - message_admins("[key_name_admin(usr)] canceled the self-destruct system.") - - if("use_dest") - - var/confirm = alert("Are you sure you want to self-destruct the Almayer?", "Self-Destruct", "Yes", "Cancel") - if(confirm != "Yes") - return - message_admins("[key_name_admin(usr)] forced the self-destrust system, destroying the [MAIN_SHIP_NAME].") - EvacuationAuthority.trigger_self_destruct() - - if("toggle_dest") - EvacuationAuthority.flags_scuttle ^= FLAGS_SELF_DESTRUCT_DENY - message_admins("[key_name_admin(usr)] has [EvacuationAuthority.flags_scuttle & FLAGS_SELF_DESTRUCT_DENY ? "forbidden" : "allowed"] the self-destruct system.") + SShijack.evac_admin_denied = !SShijack.evac_admin_denied + message_admins("[key_name_admin(usr)] has [SShijack.evac_admin_denied ? "forbidden" : "allowed"] ship-wide evacuation.") //====================================================== //====================================================== diff --git a/code/modules/defenses/sentry.dm b/code/modules/defenses/sentry.dm index 10d1b16dd9..999df7c225 100644 --- a/code/modules/defenses/sentry.dm +++ b/code/modules/defenses/sentry.dm @@ -526,6 +526,10 @@ choice_categories[SENTRY_CATEGORY_IFF] = list(FACTION_COLONY, FACTION_WEYLAND) selected_categories[SENTRY_CATEGORY_IFF] = FACTION_COLONY +/obj/structure/machinery/defenses/sentry/premade/deployable/almayer + fire_delay = 4 + omni_directional = TRUE + //the turret inside the shuttle sentry deployment system /obj/structure/machinery/defenses/sentry/premade/dropship density = TRUE diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 4d06d1e071..ee8b694150 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -1200,10 +1200,13 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp else . += "Hijack Over" - if(EvacuationAuthority) - var/eta_status = EvacuationAuthority.get_status_panel_eta() + if(SShijack) + var/eta_status = SShijack.get_evac_eta() if(eta_status) - . += "Evacuation: [eta_status]" + . += "Evacuation Goal: [eta_status]" + + if(SShijack.sd_unlocked) + . += "Self Destruct Goal: [SShijack.get_sd_eta()]" if(client.prefs?.be_special & BE_ALIEN_AFTER_DEATH) if(larva_queue_cached_message) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index c9092ed479..6bceb994a2 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -123,10 +123,12 @@ if(marksman_aura) . += "Active Order: FOCUS" - if(EvacuationAuthority) - var/eta_status = EvacuationAuthority.get_status_panel_eta() + if(SShijack) + var/eta_status = SShijack.get_evac_eta() if(eta_status) - . += "Evacuation: [eta_status]" + . += "Evacuation Goals: [eta_status]" + if(SShijack.sd_unlocked) + . += "Self Destruct Status: [SShijack.get_sd_eta()]" /mob/living/carbon/human/ex_act(severity, direction, datum/cause_data/cause_data) if(lying) diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index b0f08acc33..bccd740366 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -83,10 +83,10 @@ // this function displays the shuttles ETA in the status panel if the shuttle has been called /mob/living/silicon/proc/show_emergency_shuttle_eta() - if(EvacuationAuthority) - var/eta_status = EvacuationAuthority.get_status_panel_eta() + if(SShijack) + var/eta_status = SShijack.get_evac_eta() if(eta_status) - stat(null, "Evacuation: [eta_status]") + stat(null, "Evacuation Goal: [eta_status]") // this function displays the stations manifest in a separate window diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index dda2487c24..a6b654ba2d 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -248,8 +248,8 @@ RoleAuthority.equip_role(character, player_rank, late_join = TRUE) EquipCustomItems(character) - if((security_level > SEC_LEVEL_BLUE || EvacuationAuthority.evac_status) && player_rank.gets_emergency_kit) - to_chat(character, SPAN_HIGHDANGER("As you stagger out of hypersleep, the sleep bay blares: '[EvacuationAuthority.evac_status ? "VESSEL UNDERGOING EVACUATION PROCEDURES, SELF DEFENSE KIT PROVIDED" : "VESSEL IN HEIGHTENED ALERT STATUS, SELF DEFENSE KIT PROVIDED"]'.")) + if((security_level > SEC_LEVEL_BLUE || SShijack.hijack_status) && player_rank.gets_emergency_kit) + to_chat(character, SPAN_HIGHDANGER("As you stagger out of hypersleep, the sleep bay blares: '[SShijack.evac_status ? "VESSEL UNDERGOING EVACUATION PROCEDURES, SELF DEFENSE KIT PROVIDED" : "VESSEL IN HEIGHTENED ALERT STATUS, SELF DEFENSE KIT PROVIDED"]'.")) character.put_in_hands(new /obj/item/storage/box/kit/cryo_self_defense(character.loc)) GLOB.data_core.manifest_inject(character) @@ -295,10 +295,10 @@ var/dat = "
" dat += "Round Duration: [round(hours)]h [round(mins)]m
" - if(EvacuationAuthority) - switch(EvacuationAuthority.evac_status) - if(EVACUATION_STATUS_INITIATING) dat += "The [MAIN_SHIP_NAME] is being evacuated.
" - if(EVACUATION_STATUS_COMPLETE) dat += "The [MAIN_SHIP_NAME] has undergone evacuation.
" + if(SShijack) + switch(SShijack.evac_status) + if(EVACUATION_STATUS_INITIATED) + dat += "The [MAIN_SHIP_NAME] is being evacuated.
" dat += "Choose from the following open positions:
" var/roles_show = FLAG_SHOW_ALL_JOBS diff --git a/code/modules/security_levels/security_levels.dm b/code/modules/security_levels/security_levels.dm index ba842fb0bf..8221b8771c 100644 --- a/code/modules/security_levels/security_levels.dm +++ b/code/modules/security_levels/security_levels.dm @@ -43,7 +43,6 @@ var/input = "DANGER, THE EMERGENCY DESTRUCT SYSTEM IS NOW ACTIVATED. PROCEED TO THE SELF-DESTRUCT CHAMBER FOR CONTROL ROD INSERTION." marine_announcement(input, name, 'sound/AI/selfdestruct_short.ogg', logging = log) security_level = SEC_LEVEL_DELTA - EvacuationAuthority.enable_self_destruct() /proc/get_security_level() switch(security_level) diff --git a/code/modules/shuttle/computer.dm b/code/modules/shuttle/computer.dm index 26869cfcf4..3d0c8fca14 100644 --- a/code/modules/shuttle/computer.dm +++ b/code/modules/shuttle/computer.dm @@ -297,10 +297,14 @@ return var/mob/living/carbon/human/human_user = user - if(!(ACCESS_MARINE_SENIOR in human_user.wear_id?.access)) + if(!(ACCESS_MARINE_COMMAND in human_user.wear_id?.access)) to_chat(user, SPAN_NOTICE("[src]'s screen says \"Awaiting confirmation of the evacuation order\".")) return + if(SShijack.current_progress < SShijack.early_launch_required_progress) + to_chat(user, SPAN_NOTICE("[src]'s screen says \"Unable to launch, fuel insufficient\".")) + return + if(tgui_alert(user, "Early launch the lifeboat?", "Confirm", list("Yes", "No"), 10 SECONDS) == "Yes") to_chat(user, SPAN_NOTICE("[src]'s screen blinks and says \"Early launch accepted\".")) lifeboat.evac_launch() diff --git a/code/modules/shuttle/computers/escape_pod_computer.dm b/code/modules/shuttle/computers/escape_pod_computer.dm index 6f9292cfc0..eb81a4a98a 100644 --- a/code/modules/shuttle/computers/escape_pod_computer.dm +++ b/code/modules/shuttle/computers/escape_pod_computer.dm @@ -12,6 +12,7 @@ unslashable = TRUE unacidable = TRUE var/pod_state = STATE_IDLE + var/launch_without_evac = FALSE /obj/structure/machinery/computer/shuttle/escape_pod_panel/ex_act(severity) return FALSE @@ -56,6 +57,7 @@ .["door_state"] = door.density .["door_lock"] = shuttle.door_handler.is_locked .["can_delay"] = TRUE//launch_status[2] + .["launch_without_evac"] = launch_without_evac /obj/structure/machinery/computer/shuttle/escape_pod_panel/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) @@ -66,7 +68,7 @@ var/obj/docking_port/mobile/crashable/escape_shuttle/shuttle = SSshuttle.getShuttle(shuttleId) switch(action) if("force_launch") - if(pod_state != STATE_READY && pod_state != STATE_DELAYED) + if(!launch_without_evac && pod_state != STATE_READY && pod_state != STATE_DELAYED) return shuttle.evac_launch() @@ -83,6 +85,9 @@ shuttle.door_handler.control_doors("force-lock-launch") . = TRUE +/obj/structure/machinery/computer/shuttle/escape_pod_panel/liaison + launch_without_evac = TRUE + //========================================================================================= //================================Evacuation Sleeper======================================= //========================================================================================= @@ -208,10 +213,12 @@ unslashable = TRUE unacidable = TRUE var/obj/docking_port/mobile/crashable/escape_shuttle/linked_shuttle + var/start_locked = TRUE /obj/structure/machinery/door/airlock/evacuation/Initialize() . = ..() - INVOKE_ASYNC(src, PROC_REF(lock)) + if(start_locked) + INVOKE_ASYNC(src, PROC_REF(lock)) /obj/structure/machinery/door/airlock/evacuation/Destroy() if(linked_shuttle) @@ -250,3 +257,6 @@ if(!density) return -1 return ..() + +/obj/structure/machinery/door/airlock/evacuation/liaison + start_locked = FALSE diff --git a/code/modules/shuttle/dropship_hijack.dm b/code/modules/shuttle/dropship_hijack.dm index 7796ed0510..36bc879ace 100644 --- a/code/modules/shuttle/dropship_hijack.dm +++ b/code/modules/shuttle/dropship_hijack.dm @@ -72,6 +72,7 @@ break sleep(10) + SShijack.announce_status_on_crash() SSticker.hijack_ocurred() /datum/dropship_hijack/almayer/proc/fire() diff --git a/code/modules/shuttle/shuttles/crashable/escape_shuttle.dm b/code/modules/shuttle/shuttles/crashable/escape_shuttle.dm index 6029d345b6..1f0a8fd502 100644 --- a/code/modules/shuttle/shuttles/crashable/escape_shuttle.dm +++ b/code/modules/shuttle/shuttles/crashable/escape_shuttle.dm @@ -11,7 +11,7 @@ /// The % chance of the escape pod crashing into the groundmap before lifeboats leaving var/early_crash_land_chance = 75 /// The % chance of the escape pod crashing into the groundmap - var/crash_land_chance = 25 + var/crash_land_chance = 0 /// How many people can be in the escape pod before it crashes var/max_capacity = 3 @@ -103,7 +103,7 @@ /obj/docking_port/mobile/crashable/escape_shuttle/crash_check() . = ..() - if(prob((EvacuationAuthority.evac_status >= EVACUATION_STATUS_IN_PROGRESS ? crash_land_chance : early_crash_land_chance))) + if(prob((SShijack.hijack_status >= HIJACK_OBJECTIVES_COMPLETE ? crash_land_chance : early_crash_land_chance))) return TRUE /obj/docking_port/mobile/crashable/escape_shuttle/open_doors() @@ -124,8 +124,8 @@ id = ESCAPE_SHUTTLE_EAST_CL width = 4 height = 5 - early_crash_land_chance = 25 - crash_land_chance = 5 + early_crash_land_chance = 0 + crash_land_chance = 0 /obj/docking_port/mobile/crashable/escape_shuttle/w id = ESCAPE_SHUTTLE_WEST diff --git a/code/modules/shuttle/shuttles/crashable/lifeboats.dm b/code/modules/shuttle/shuttles/crashable/lifeboats.dm index 93489ee4a3..11b376563d 100644 --- a/code/modules/shuttle/shuttles/crashable/lifeboats.dm +++ b/code/modules/shuttle/shuttles/crashable/lifeboats.dm @@ -51,10 +51,10 @@ /obj/docking_port/mobile/crashable/lifeboat/crash_check() . = ..() - if(EvacuationAuthority.evac_status >= EVACUATION_STATUS_IN_PROGRESS) + if(SShijack.hijack_status >= HIJACK_OBJECTIVES_COMPLETE) return FALSE - if(prob(abs(((world.time - EvacuationAuthority.evac_time) / EVACUATION_AUTOMATIC_DEPARTURE) - 1) * 100)) + if(prob(abs((SShijack.current_progress - SShijack.required_progress) / SShijack.required_progress) * 100)) return TRUE /obj/docking_port/mobile/crashable/lifeboat/open_doors() diff --git a/code/modules/shuttles/marine_ferry.dm b/code/modules/shuttles/marine_ferry.dm index 6d84881fe9..032294a45b 100644 --- a/code/modules/shuttles/marine_ferry.dm +++ b/code/modules/shuttles/marine_ferry.dm @@ -267,17 +267,11 @@ in_transit_time_left = 0 - if(EvacuationAuthority.dest_status >= NUKE_EXPLOSION_IN_PROGRESS) - return FALSE //If a nuke is in progress, don't attempt a landing. - playsound_area(get_area(turfs_int[sound_target]), sound_landing, 100) playsound(turfs_trg[sound_target], sound_landing, 100) playsound_area(get_area(turfs_int[sound_target]), channel = SOUND_CHANNEL_AMBIENCE, status = SOUND_UPDATE) sleep(100) //Wait for it to finish. - if(EvacuationAuthority.dest_status == NUKE_EXPLOSION_FINISHED) - return FALSE //If a nuke finished, don't land. - target_turf = T_trg target_rotation = trg_rot shuttle_turfs = turfs_int @@ -434,9 +428,6 @@ in_transit_time_left = 0 - if(EvacuationAuthority.dest_status >= NUKE_EXPLOSION_IN_PROGRESS) - return FALSE //If a nuke is in progress, don't attempt a landing. - //This is where things change and shit gets real marine_announcement("DROPSHIP ON COLLISION COURSE. CRASH IMMINENT." , "EMERGENCY", 'sound/AI/dropship_emergency.ogg', logging = ARES_LOG_SECURITY) @@ -449,9 +440,6 @@ sleep(85) - if(EvacuationAuthority.dest_status == NUKE_EXPLOSION_FINISHED) - return FALSE //If a nuke finished, don't land. - if(security_level < SEC_LEVEL_RED) //automatically set security level to red. set_security_level(SEC_LEVEL_RED, TRUE) diff --git a/colonialmarines.dme b/colonialmarines.dme index 25aa4df30a..9c3a5868d6 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -61,6 +61,7 @@ #include "code\__DEFINES\fonts.dm" #include "code\__DEFINES\generators.dm" #include "code\__DEFINES\guns.dm" +#include "code\__DEFINES\hijack.dm" #include "code\__DEFINES\html.dm" #include "code\__DEFINES\hud.dm" #include "code\__DEFINES\human.dm" @@ -240,6 +241,7 @@ #include "code\controllers\subsystem\fz_transitions.dm" #include "code\controllers\subsystem\game_decorator.dm" #include "code\controllers\subsystem\garbage.dm" +#include "code\controllers\subsystem\hijack.dm" #include "code\controllers\subsystem\human.dm" #include "code\controllers\subsystem\inactivity.dm" #include "code\controllers\subsystem\influxdriver.dm" @@ -699,7 +701,6 @@ #include "code\game\cas_manager\datums\cas_signal.dm" #include "code\game\gamemodes\cm_initialize.dm" #include "code\game\gamemodes\cm_process.dm" -#include "code\game\gamemodes\cm_self_destruct.dm" #include "code\game\gamemodes\events.dm" #include "code\game\gamemodes\game_mode.dm" #include "code\game\gamemodes\colonialmarines\colonialmarines.dm" diff --git a/icons/obj/structures/machinery/fusion_eng.dmi b/icons/obj/structures/machinery/fusion_eng.dmi index 038fae342b64884d6717eda5eff480f2ddb8dd58..4d42baac72556c79fcf7fbd7dcb738214fb6497b 100644 GIT binary patch delta 2250 zcmYjTcTm%b5{@E8B!C3r7n&j*f>Hi%no?( zk*%0tv0-Ljq2OZJ| zzN{DCzsm@78U2_TJoZM=lt8TKMs6vME37Z>#|HTP$ZS_tC(E3w6aE;;JjSw@OPZrjV?ql><#2uXgrSrXTY` zAJ$aArNaMGc{jt`I6Er@h1!5BO7=HF;suH(j!;*+X7X!P_EIJpHLM3Dfu#tk^j@S=x+^v_*&cOkbbPmS{ZeI6hU9LDq-Ehb zo0}b4_mdxrpno>Qbrpts)oqWm) z@uWiTbx`qCDN@%i1>vTtQizPGf3>>&^Cu3djUtu^EFfYSEB9A{n;PrGHH9u~m9Z{P z?l;8Q14{mAQ6av%lU*QWp+^VmC5v?KcXDd1b7m)sum_0HuPur7E7dS0xw6kcvnJK} zNlp$kcm#{yrijn*(J7_#@CfVTfM-2nbrlF3rZW zcYB>u(&gIK4(!A&r!!2$t}|YQCcv0OV+u2>C)q<9G@4-wQHwx-s`JuH3n4n+a=RnL z!Fy2&*+-J7%G+2m*F>fZWX!7wd@v*;Bg!A#s%cj93n#cNa+|Z*YHaFWoaGGlu>z?W z07kYPe%@?VXq+-ao&xkAgiu1055g}8d5Ks(ZzPwDDsZEHz zTK@excD^~jE(zM!Df{eeWEa3a<45uAW4IAorGeUj%l)I7V&ASfmD7oUtfffUa1Jv_ z=0ECs&a^wn_1WKQTvG3s>Po;W*Hhwyt2Mj8w*&IytePrj?}9|_gzV$<;O{kcG$}r| zOg(+`)!@tFq6e6=iL8=#^Twbj+Mfj}z zZ0UN&2pI(2We`BUhTe9wUIWuSt>jTDq1!f3ZQ8?3VZ(+X#HLzES^zxN>cN*sS<~TV z^F{lp8MpairrI2vR*6~?xA}B9A!DFE6-=`66#$+>AFlqKe1uhBJ*L#4O@1}##OviV zZh|@3NVylcZOROi`%P5))s~JOfTE@;h; z;N(EQY8Kt{=69#^YNc&Ic+>>OX4^d(9w!&!dziCw zCPr)-!QQ!C%B@40*!IX@9vWG2{FltP>v{Rxl^Brdo$3-PSAILUQabn5-#P7y)!-pp zuGP>lHbcJbg&U4w+Hki$EYy=F){unGqQ8>PP2;|Qf3Ci3AsJM6o|7e#?-fqhO!=}M z_Ld`)^<3H_oRj*Xpj+NjC&M{Xu9Ie`F&d(&(l2j`oZS*)=tf7%{k#me0qh@q#+Ns^ zq%>BYHdyUqL`p;zY)%Q0;LDk!yreaEAC;=Ow4n%*tt*K9!uZ~q{<)w&fE^@wR8YpO zqA?@nnsyMiGA<^X7#)LmPiHQzqY;5!GXV$nF}pXd4Lzvw&bycVQ{bmNe?pIEgk(t? zAlSYjzy7+0kwC*&@g6?fYX6+^On7|CpcYi&&YU*#s)a>a{YbGEH-dlejczLG zN-Z1J`p1tcTfSj=F%@rFo&?X#Jz!v(FY29>44Xvzq&Q8qRtlr3&xX(j>l4LV3a(N5 zda}djkx~Ry-04DT1rF^)okzmGFW)R}Wt`7HWJ0K@205!mt${MM@#AEs_#PdxrM%Z3 z$nWKgb&~VE9=B`{gr7gx&wSg`k2@j=w|%m8_wx-<`)d6{@W)7nw+F^m9qT6Xw5Xhw zF$$)YKx|r}LP4Rw4!Dq+lUZXRaG-DBTu=jaD(B?K~6)2B{KLJ-_PmTZp delta 2070 zcmY+AdpOgJAIGO6q14Y>JDXCmximC)qmo-_SfXbx311`Ypo1u3a#;>TB+V@5M?1%5 zG=z!HsBM|K9MrJajA58n%2~Cl;yB%O zzo76yE`7%!JZAB()&a7!B1SE>u}Viry-%CH1ExQof7O>ZRw9P1?Xq&MVmR+LsZ2&r z)HzRU2KQm*R@CgC$v-$9EqUR&b&52;o zRKthPJnffvJj%-*!)hNKU{!2A_Wo+|`@7O*`If2zL_unx0tlqg=xl%1^CtZZO_}u0 z49p8Z0fp0e(GaHrlsqr6;A+8O6!^*s)259SYdnUlz(D3 z_Ux;k&gKIi3DsDVqwujtm7YRgE2d+pA=s!MwTT-wy)>M}EYW@eTMWBkFlFQKI5tYB z*0P5?`+JB_KV`Gdj0^9?Q(%&32}vq8h{UEU;$!0L_L`bEac$@yf0}72q}_@5zK#an zAkvsjcz8{fus-cJ0zNqa4Trt#ZFw$jI$`X6LD$rEIDc`%RI`oU|gX~{g20ws#>rb#Ju&nV;xM(Tz}+QO~Z;}<=yWj_k|+-pMiD=x#` z-hMJ_oouGM>gw9$>v1OKCZJ&txck;>X9ZT{a*ur!+4O{A~=yoZpLnhu?$qt>?cRn4?8 zCI})xH^C>NbLx`=wd3{Zs~(t;u8({Rek`C4SgkA?K6%>L=Q}G^SP16?RtHt8Z>;Tt z)60F2Z#IuZyYLZ|;8;cp&}evdo-<(`bM5p{gRbuc8naJBQfUQ*oAZB$lc2-+T8+#a zwD|2Nxd6)&Lm#5;X4^-Pmul?HKGl$2X$ALv+{@MTU~#Sc#;Nwi zcjpDLrkNk~>7^A*Y2T+Jia!p^e>>uD5<3@(I^?i%scJv-nP^}pSJ)q|;$|@UenGmx zK(CecqJJoDx_#&E$Rul!h>&w=`-Feziu(C5ytdEgzEjSttzPW1x_&9Hj;@c+0-z7! zXlRq3S)yR&uK|brs)N-*gK?UDya0Rk)j~i{)}D?^WQ}wr$$h&+s}^wmuvf=NMSKI5 z%xMJ35>u>2Y_+b*RVM?j}hs>_q8>yvT^uMtXIQTiRs8zb;*;_%TcLz%bk=O*TdzgJ z41XPK);w?FqwvV+kQ?pnAENY&M&3d{3&edB0+x1_FHD%`iz1lim=Nc=_uG(=_t*j1 zG1a!rpsrx_Hw;ghU`MTRp($&JqX-7{R(3Gw>p>Fi{C#EZ2-IZ*dJDQ1%(?D@=t;kC zCjOzw0Gl3K+48E^hN$T;?hVN38}dmU%HXMlx(-GKE`LFttf-o(%B-uq?7)T^AGY47 zm4Qvwopb{z(!sE^JYTuy)~&;4>&cKMz3tteU?i&Va36G!B6x{^=F@Zbo=M6hjU(F-G9+#FJh3_0*dt%_3E=qIC3S{?mwfOJ z?twClDT1iED(9<;4jL+{6;3+_k=*?7%QBdJ6`dmgoaS7r_C_K7#c=N02kmPP z=YsOZot1E_N-F2%(d#*C0{3!>j;z_1wt#;vyAQh`=a`p&FoXuuu{5h8BPa0dwHfV zxcu+Ea2a2A+~%5z(kN<8&3H|Dl|?tW-A~Iu&i^h`!}Q0T?H8grp2?;>e=t-vUXHaT v|7e)H@ec(8I}N#fkC_RBBmeWP^oC?#BGwDXaQGmQ5(wn%;AUTI8<6rJ%BS-7 diff --git a/maps/map_files/USS_Almayer/USS_Almayer.dmm b/maps/map_files/USS_Almayer/USS_Almayer.dmm index 1f61d2d99a..95352008b2 100644 --- a/maps/map_files/USS_Almayer/USS_Almayer.dmm +++ b/maps/map_files/USS_Almayer/USS_Almayer.dmm @@ -529,17 +529,6 @@ icon_state = "red" }, /area/almayer/hallways/aft_hallway) -"abQ" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/obj/structure/machinery/cm_vending/clothing/staff_officer_armory, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/command/cic) "abR" = ( /obj/item/tank/phoron, /turf/open/floor/almayer{ @@ -1650,10 +1639,6 @@ icon_state = "outerhull_dir" }, /area/space) -"afo" = ( -/obj/structure/safe/co_office, -/turf/open/floor/wood/ship, -/area/almayer/living/commandbunks) "afq" = ( /obj/effect/step_trigger/clone_cleaner, /obj/effect/decal/warning_stripes{ @@ -2761,12 +2746,6 @@ "ajl" = ( /turf/closed/wall/almayer/white, /area/almayer/medical/upper_medical) -"ajm" = ( -/obj/structure/closet/secure_closet/securecom, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/command/cic) "ajp" = ( /obj/structure/surface/table/almayer, /obj/structure/dropship_equipment/fuel/cooling_system{ @@ -3706,15 +3685,6 @@ icon_state = "blue" }, /area/almayer/hallways/aft_hallway) -"amE" = ( -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/engineering/upper_engineering) "amF" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, @@ -3937,47 +3907,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_a_s) -"anp" = ( -/obj/structure/sign/safety/hazard{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/closet/secure_closet/guncabinet/red/armory_m4a3_pistol, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/medical/upper_medical) -"anq" = ( -/obj/item/device/radio/intercom{ - freerange = 1; - name = "General Listening Channel"; - pixel_y = 28 - }, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/structure/surface/rack, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/obj/item/clothing/suit/storage/marine/light/vest, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/medical/upper_medical) -"anr" = ( -/obj/structure/sign/safety/intercom{ - pixel_x = 8; - pixel_y = 32 - }, -/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/medical/upper_medical) "ans" = ( /turf/open/floor/almayer{ dir = 8; @@ -5613,16 +5542,6 @@ /obj/structure/surface/table/almayer, /turf/open/floor/almayer, /area/almayer/engineering/engineering_workshop/hangar) -"asu" = ( -/obj/structure/sign/safety/hazard{ - pixel_x = 32; - pixel_y = -8 - }, -/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/medical/upper_medical) "asv" = ( /obj/effect/decal/cleanable/blood/oil, /obj/structure/machinery/light{ @@ -6040,12 +5959,6 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/engineering/engineering_workshop/hangar) -"atx" = ( -/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_shotgun, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/command/cic) "aty" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/almayer{ @@ -6645,12 +6558,6 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/command/cic) -"auR" = ( -/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_mk1_rifle_ap, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/command/cic) "auS" = ( /obj/item/tool/warning_cone, /obj/item/tool/warning_cone, @@ -8022,12 +7929,6 @@ icon_state = "plating" }, /area/almayer/engineering/upper_engineering) -"azp" = ( -/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/engineering/upper_engineering) "azq" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -9831,6 +9732,12 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/operating_room_four) +"aGi" = ( +/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_mk1_rifle_ap, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/command/cic) "aGj" = ( /obj/structure/machinery/door/poddoor/almayer/open{ dir = 2; @@ -10181,6 +10088,12 @@ }, /turf/open/floor/engine, /area/almayer/engineering/airmix) +"aHT" = ( +/obj/structure/bed/chair/wood/normal, +/obj/item/bedsheet/brown, +/obj/item/toy/plush/farwa, +/turf/open/floor/wood/ship, +/area/almayer/shipboard/brig/cells) "aHU" = ( /obj/structure/platform{ dir = 1 @@ -10407,12 +10320,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering) -"aIV" = ( -/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/engineering/upper_engineering) "aIX" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -12770,11 +12677,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north1) -"aUb" = ( -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/combat_correspondent) "aUd" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/machinery/door/airlock/almayer/secure/reinforced{ @@ -15417,10 +15319,6 @@ icon_state = "bluefull" }, /area/almayer/living/bridgebunks) -"bhM" = ( -/obj/structure/safe/cl_office, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "bhT" = ( /obj/structure/cargo_container/lockmart/mid{ layer = 3.1; @@ -17195,28 +17093,6 @@ /obj/structure/surface/table/woodentable/fancy, /turf/open/floor/carpet, /area/almayer/command/corporateliason) -"bsd" = ( -/obj/item/device/flashlight/lamp/green{ - pixel_x = 5; - pixel_y = 3 - }, -/obj/structure/machinery/door_control{ - id = "cl_shutters"; - name = "Privacy Shutters"; - pixel_x = -5; - pixel_y = 6; - req_access_txt = "200" - }, -/obj/structure/machinery/door_control{ - id = "RoomDivider"; - name = "Room Divider"; - pixel_x = -5; - pixel_y = -3; - req_access_txt = "200" - }, -/obj/structure/surface/table/woodentable/fancy, -/turf/open/floor/carpet, -/area/almayer/command/corporateliason) "bse" = ( /obj/structure/machinery/computer/arcade, /turf/open/floor/wood/ship, @@ -20184,16 +20060,6 @@ icon_state = "green" }, /area/almayer/squads/req) -"bGz" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 9; - icon_state = "green" - }, -/area/almayer/squads/req) "bGF" = ( /obj/structure/machinery/landinglight/ds2{ dir = 1 @@ -21054,52 +20920,6 @@ icon_state = "red" }, /area/almayer/shipboard/navigation) -"bKg" = ( -/obj/item/bedsheet/blue{ - layer = 3.2 - }, -/obj/item/bedsheet/blue{ - pixel_y = 13 - }, -/obj/item/toy/plush/therapy/red{ - desc = "A USCM approved plush doll. It's not soft and hardly comforting!"; - force = 15; - layer = 4.1; - name = "Sergeant Huggs"; - pixel_y = 15; - throwforce = 15 - }, -/obj/item/clothing/head/cmcap{ - layer = 4.1; - pixel_x = -1; - pixel_y = 22 - }, -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = -2; - pixel_y = 4 - }, -/obj/structure/window/reinforced{ - dir = 8; - layer = 3.3; - pixel_y = 4 - }, -/obj/structure/bed{ - can_buckle = 0 - }, -/obj/structure/bed{ - buckling_y = 13; - layer = 3.5; - pixel_y = 13 - }, -/obj{ - name = "---Merge conflict marker---" - }, -/obj/structure/bed/chair/comfy/charlie, -/turf/open/floor/almayer{ - icon_state = "emeraldfull" - }, -/area/almayer/living/briefing) "bKh" = ( /turf/open/floor/almayer, /area/almayer/hallways/vehiclehangar) @@ -22185,14 +22005,6 @@ icon_state = "emeraldcorner" }, /area/almayer/hallways/port_hallway) -"bOw" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/combat_correspondent) "bOx" = ( /obj/structure/machinery/door/airlock/almayer/marine/charlie/tl, /turf/open/floor/almayer{ @@ -22728,12 +22540,6 @@ }, /turf/closed/wall/almayer, /area/almayer/squads/req) -"bQS" = ( -/obj/structure/machinery/cm_vending/sorted/cargo_ammo/cargo/blend, -/turf/open/floor/almayer{ - icon_state = "green" - }, -/area/almayer/squads/req) "bQU" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 @@ -23503,19 +23309,6 @@ icon_state = "blue" }, /area/almayer/squads/charlie_delta_shared) -"bUo" = ( -/obj/structure/sign/safety/ammunition{ - pixel_x = 15; - pixel_y = -32 - }, -/obj/structure/sign/safety/hazard{ - pixel_y = -32 - }, -/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/squads/req) "bUp" = ( /obj/structure/surface/table/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -24337,13 +24130,6 @@ /obj/structure/machinery/light, /turf/open/floor/almayer, /area/almayer/hallways/vehiclehangar) -"bYa" = ( -/obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo/blend, -/turf/open/floor/almayer{ - dir = 10; - icon_state = "green" - }, -/area/almayer/squads/req) "bYc" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/plating/plating_catwalk, @@ -26314,6 +26100,12 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha) +"cij" = ( +/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/engineering/upper_engineering) "cil" = ( /obj/structure/machinery/light, /obj/structure/sign/safety/waterhazard{ @@ -26700,6 +26492,42 @@ icon_state = "test_floor4" }, /area/almayer/hull/upper_hull/u_a_s) +"ckE" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 3.3; + pixel_y = 4 + }, +/obj/structure/bed{ + can_buckle = 0 + }, +/obj/structure/bed{ + buckling_y = 13; + layer = 3.5; + pixel_y = 13 + }, +/obj/item/bedsheet/yellow{ + layer = 3.2 + }, +/obj/item/bedsheet/yellow{ + pixel_y = 13 + }, +/obj/structure/sign/safety/bathunisex{ + pixel_x = -16; + pixel_y = 8 + }, +/obj/item/toy/plush/barricade, +/obj{ + name = "---Merge conflict marker---" + }, +/obj/structure/pipes/standard/simple/hidden/supply, +/turf/open/floor/almayer, +/area/almayer/living/briefing) "ckI" = ( /obj/structure/disposalpipe/segment, /obj/item/device/radio/intercom{ @@ -29057,15 +28885,6 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_p) -"cVu" = ( -/obj/structure/pipes/vents/pump{ - dir = 1 - }, -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/combat_correspondent) "cVw" = ( /obj/structure/machinery/light/small{ dir = 4 @@ -29527,6 +29346,12 @@ icon_state = "plating" }, /area/almayer/engineering/engine_core) +"ddN" = ( +/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/squads/req) "deb" = ( /obj/structure/bed, /obj/structure/machinery/flasher{ @@ -29765,6 +29590,14 @@ icon_state = "cargo_arrow" }, /area/almayer/squads/alpha_bravo_shared) +"diM" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/combat_correspondent) "djm" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -31066,19 +30899,6 @@ icon_state = "red" }, /area/almayer/shipboard/brig/processing) -"dGS" = ( -/obj/structure/surface/table/almayer, -/obj/structure/machinery/computer/emails{ - pixel_x = 2; - pixel_y = 5 - }, -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/combat_correspondent) "dHd" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -31416,28 +31236,6 @@ icon_state = "dark_sterile" }, /area/almayer/shipboard/brig/surgery) -"dQx" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/camera{ - pixel_x = -8; - pixel_y = 12 - }, -/obj/item/paper_bin/uscm{ - pixel_y = 6; - pixel_x = 6 - }, -/obj/item/tool/pen{ - pixel_x = 4; - pixel_y = -4 - }, -/obj/item/storage/box/donkpockets{ - pixel_x = -8; - pixel_y = -1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/combat_correspondent) "dQE" = ( /obj/structure/machinery/light{ dir = 1 @@ -31790,16 +31588,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) -"dXs" = ( -/obj/structure/sign/safety/terminal{ - pixel_x = 7; - pixel_y = 29 - }, -/obj/structure/filingcabinet, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/combat_correspondent) "dXy" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer, @@ -31961,6 +31749,26 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) +"ebt" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/machinery/camera/autoname/almayer{ + name = "ship-grade camera" + }, +/obj/structure/closet/secure_closet/guncabinet/blue/riot_control, +/turf/open/floor/plating/almayer, +/area/almayer/shipboard/brig/armory) +"ebz" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/machinery/light/small{ + dir = 1 + }, +/obj/structure/closet/secure_closet/guncabinet/blue/riot_control, +/turf/open/floor/plating/almayer, +/area/almayer/shipboard/brig/armory) "ebD" = ( /obj/structure/machinery/light/small{ dir = 1 @@ -32167,12 +31975,6 @@ icon_state = "kitchen" }, /area/almayer/living/grunt_rnr) -"eeB" = ( -/obj/structure/bed/chair/wood/normal, -/obj/item/bedsheet/brown, -/obj/item/toy/plush/farwa, -/turf/open/floor/wood/ship, -/area/almayer/shipboard/brig/cells) "eeN" = ( /obj/structure/bed/chair, /turf/open/floor/almayer{ @@ -33187,6 +32989,12 @@ icon_state = "cargo" }, /area/almayer/shipboard/brig/cryo) +"eyv" = ( +/obj/structure/machinery/sentry_holder/almayer, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/south1) "eyG" = ( /obj/structure/platform, /turf/open/floor/almayer{ @@ -33339,24 +33147,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/starboard_umbilical) -"eBE" = ( -/obj/structure/surface/table/almayer, -/obj/effect/landmark/map_item{ - pixel_x = -8 - }, -/obj/item/toy/plush/therapy/red{ - desc = "A USCM approved plush doll. It's not soft and hardly comforting!"; - force = 15; - layer = 4.1; - name = "Sergeant Huggs"; - pixel_x = 7; - pixel_y = -1; - throwforce = 15 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/briefing) "eBO" = ( /obj/structure/bed, /turf/open/floor/almayer{ @@ -34002,6 +33792,19 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_a_p) +"eRt" = ( +/obj/structure/sign/safety/ammunition{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/sign/safety/hazard{ + pixel_y = 32 + }, +/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/hull/lower_hull/l_f_s) "eRu" = ( /obj/structure/machinery/door/firedoor/border_only/almayer{ dir = 2 @@ -34079,6 +33882,27 @@ /obj/effect/landmark/crap_item, /turf/open/floor/almayer, /area/almayer/living/briefing) +"eTh" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/structure/surface/rack, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/medical/upper_medical) "eTo" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -34092,6 +33916,13 @@ }, /turf/open/floor/almayer, /area/almayer/shipboard/brig/cells) +"eTx" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_shotgun, +/turf/open/floor/plating/almayer, +/area/almayer/shipboard/brig/armory) "eTO" = ( /obj/structure/sign/safety/maint{ pixel_x = -17 @@ -35141,20 +34972,6 @@ icon_state = "red" }, /area/almayer/shipboard/starboard_missiles) -"frJ" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/sign/safety/ammunition{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/hazard{ - pixel_y = 32 - }, -/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_shotgun, -/turf/open/floor/plating/almayer, -/area/almayer/shipboard/brig/armory) "frM" = ( /obj/effect/decal/warning_stripes{ icon_state = "S"; @@ -35265,42 +35082,6 @@ icon_state = "plating_striped" }, /area/almayer/living/cryo_cells) -"ftg" = ( -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = -2; - pixel_y = 4 - }, -/obj/structure/window/reinforced{ - dir = 8; - layer = 3.3; - pixel_y = 4 - }, -/obj/structure/bed{ - can_buckle = 0 - }, -/obj/structure/bed{ - buckling_y = 13; - layer = 3.5; - pixel_y = 13 - }, -/obj/item/bedsheet/yellow{ - layer = 3.2 - }, -/obj/item/bedsheet/yellow{ - pixel_y = 13 - }, -/obj/structure/sign/safety/bathunisex{ - pixel_x = -16; - pixel_y = 8 - }, -/obj/item/toy/plush/barricade, -/obj{ - name = "---Merge conflict marker---" - }, -/obj/structure/pipes/standard/simple/hidden/supply, -/turf/open/floor/almayer, -/area/almayer/living/briefing) "fti" = ( /obj/structure/machinery/door/poddoor/railing{ dir = 2; @@ -35791,6 +35572,16 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/morgue) +"fFq" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_shotgun, +/turf/open/floor/plating/almayer, +/area/almayer/shipboard/brig/armory) "fFD" = ( /obj/structure/window/reinforced{ dir = 4; @@ -36243,6 +36034,13 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/aft_hallway) +"fOh" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 4; + icon_state = "exposed01-supply" + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/command/combat_correspondent) "fOk" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 @@ -36400,14 +36198,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/starboard_hallway) -"fTh" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 10 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/combat_correspondent) "fTi" = ( /obj/structure/largecrate/supply/floodlights, /turf/open/floor/almayer{ @@ -36531,6 +36321,16 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/medical/morgue) +"fXt" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "green" + }, +/area/almayer/squads/req) "fXx" = ( /obj/structure/surface/rack, /turf/open/floor/almayer{ @@ -37187,23 +36987,10 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_a_s) -"gka" = ( -/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/hull/lower_hull/l_f_s) "gks" = ( /obj/structure/largecrate/random/secure, /turf/open/floor/plating, /area/almayer/hull/lower_hull/l_f_p) -"gkv" = ( -/obj/structure/surface/table/almayer, -/obj/item/device/taperecorder, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/combat_correspondent) "gkJ" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 8 @@ -37419,6 +37206,15 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_f_s) +"gqF" = ( +/obj/structure/machinery/photocopier, +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/combat_correspondent) "gqK" = ( /obj/structure/machinery/light/small{ dir = 1 @@ -38120,6 +37916,36 @@ icon_state = "plate" }, /area/almayer/engineering/upper_engineering/port) +"gEI" = ( +/obj/item/device/flashlight/lamp/green{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/structure/machinery/door_control{ + id = "cl_shutters"; + name = "Privacy Shutters"; + pixel_x = -5; + pixel_y = 8; + req_access_txt = "200" + }, +/obj/structure/machinery/door_control{ + id = "RoomDivider"; + name = "Room Divider"; + pixel_x = -5; + pixel_y = -4; + req_access_txt = "200" + }, +/obj/structure/surface/table/woodentable/fancy, +/obj/structure/machinery/door_control{ + pixel_x = -5; + pixel_y = 2; + req_access_txt = "200"; + name = "Evac Pod Door Control"; + id = "cl_evac"; + normaldoorcontrol = 1 + }, +/turf/open/floor/carpet, +/area/almayer/command/corporateliason) "gEK" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -38167,6 +37993,31 @@ icon_state = "plate" }, /area/almayer/squads/delta) +"gGl" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/taperecorder, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/combat_correspondent) +"gGo" = ( +/obj/structure/surface/table/almayer, +/obj/effect/landmark/map_item{ + pixel_x = -8 + }, +/obj/item/toy/plush/therapy/red{ + desc = "A USCM approved plush doll. It's not soft and hardly comforting!"; + force = 15; + layer = 4.1; + name = "Sergeant Huggs"; + pixel_x = 7; + pixel_y = -1; + throwforce = 15 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/briefing) "gGr" = ( /obj/structure/machinery/vending/cigarette, /turf/open/floor/almayer{ @@ -38299,6 +38150,12 @@ icon_state = "orange" }, /area/almayer/engineering/lower_engineering) +"gJs" = ( +/obj/structure/machinery/cm_vending/sorted/cargo_ammo/cargo/blend, +/turf/open/floor/almayer{ + icon_state = "green" + }, +/area/almayer/squads/req) "gJP" = ( /obj/structure/machinery/light, /obj/structure/disposalpipe/segment{ @@ -38754,6 +38611,14 @@ icon_state = "green" }, /area/almayer/living/grunt_rnr) +"gUr" = ( +/obj/item/stack/folding_barricade/three, +/obj/item/stack/folding_barricade/three, +/obj/structure/surface/rack, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/hull/lower_hull/l_f_s) "gUv" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -39094,16 +38959,6 @@ icon_state = "silver" }, /area/almayer/living/auxiliary_officer_office) -"hbI" = ( -/obj/structure/sign/safety/ammunition{ - pixel_x = 32; - pixel_y = 7 - }, -/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/medical/upper_medical) "hbZ" = ( /obj/structure/surface/table/almayer, /obj/structure/sign/safety/terminal{ @@ -39269,6 +39124,13 @@ icon_state = "plate" }, /area/almayer/engineering/engine_core) +"hey" = ( +/obj/effect/decal/cleanable/blood/oil/streak, +/obj/structure/machinery/sentry_holder/almayer, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/south1) "heH" = ( /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer{ @@ -39737,19 +39599,6 @@ icon_state = "sterile_green" }, /area/almayer/medical/hydroponics) -"hnI" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 2 - }, -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic2{ - access_modified = 1; - name = "\improper Flight Crew Quarters"; - req_one_access_txt = "19;22" - }, -/turf/open/floor/almayer{ - icon_state = "test_floor4" - }, -/area/almayer/living/pilotbunks) "hnV" = ( /obj/structure/machinery/light, /turf/open/floor/almayer, @@ -40495,6 +40344,14 @@ /obj/structure/largecrate/random/barrel/red, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_p) +"hGa" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m39_submachinegun, +/turf/open/floor/plating/almayer, +/area/almayer/shipboard/brig/armory) "hGB" = ( /obj/structure/machinery/light, /turf/open/floor/wood/ship, @@ -40620,6 +40477,19 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_a_s) +"hJh" = ( +/obj/structure/surface/table/almayer, +/obj/structure/machinery/computer/emails{ + pixel_x = 2; + pixel_y = 5 + }, +/obj/structure/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/combat_correspondent) "hJk" = ( /obj/structure/stairs/perspective{ dir = 4; @@ -41611,6 +41481,15 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/north1) +"ift" = ( +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/item/clothing/suit/storage/marine/light/vest, +/obj/structure/surface/rack, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/engineering/upper_engineering) "ifR" = ( /obj/structure/sign/safety/hvac_old{ pixel_x = 8; @@ -41713,6 +41592,19 @@ icon_state = "test_floor4" }, /area/almayer/hull/upper_hull/u_m_p) +"iii" = ( +/obj/structure/sign/safety/ammunition{ + pixel_x = 15; + pixel_y = -32 + }, +/obj/structure/sign/safety/hazard{ + pixel_y = -32 + }, +/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/squads/req) "iit" = ( /obj/effect/decal/warning_stripes{ icon_state = "W"; @@ -41917,6 +41809,14 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/living/offices/flight) +"imW" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 10 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/combat_correspondent) "ina" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/computer/emails{ @@ -43432,6 +43332,14 @@ icon_state = "mono" }, /area/almayer/medical/hydroponics) +"iUC" = ( +/obj/structure/machinery/faxmachine, +/obj/structure/surface/table/almayer, +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/combat_correspondent) "iUW" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 4 @@ -43494,6 +43402,16 @@ }, /turf/open/floor/carpet, /area/almayer/living/commandbunks) +"iWb" = ( +/obj/structure/sign/safety/hazard{ + pixel_x = 32; + pixel_y = -8 + }, +/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/medical/upper_medical) "iWc" = ( /obj/structure/surface/table/almayer, /obj/structure/pipes/standard/simple/hidden/supply{ @@ -44553,6 +44471,20 @@ /obj/structure/machinery/door/firedoor/border_only/almayer, /turf/open/floor/plating, /area/almayer/command/cic) +"jog" = ( +/obj/structure/surface/table/almayer, +/obj/item/storage/photo_album{ + pixel_x = -4; + pixel_y = 5 + }, +/obj/item/folder/black{ + pixel_y = -3; + pixel_x = 7 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/combat_correspondent) "jox" = ( /obj/structure/machinery/brig_cell/cell_3{ pixel_x = -32 @@ -44717,6 +44649,12 @@ icon_state = "greencorner" }, /area/almayer/hallways/starboard_hallway) +"juf" = ( +/obj/structure/machinery/sentry_holder/almayer, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/north1) "jup" = ( /obj/effect/decal/warning_stripes{ icon_state = "NW-out"; @@ -45634,6 +45572,15 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) +"jRZ" = ( +/obj/structure/machinery/light{ + dir = 8 + }, +/obj/structure/closet/secure_closet/guncabinet/red/armory_m4a3_pistol, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/engineering/upper_engineering) "jSo" = ( /obj/item/tool/warning_cone, /turf/open/floor/almayer{ @@ -46128,6 +46075,14 @@ icon_state = "bluefull" }, /area/almayer/squads/charlie_delta_shared) +"kaJ" = ( +/obj/structure/bed/chair{ + dir = 4 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/combat_correspondent) "kaN" = ( /obj/structure/platform{ dir = 1 @@ -46594,6 +46549,10 @@ /obj/structure/machinery/light, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/grunt_rnr) +"knT" = ( +/obj/structure/safe/cl_office, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliason) "koc" = ( /obj/structure/machinery/status_display{ pixel_y = -30 @@ -46847,6 +46806,12 @@ icon_state = "cargo" }, /area/almayer/squads/bravo) +"ksv" = ( +/obj/structure/closet/secure_closet/securecom, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/command/cic) "ksA" = ( /obj/structure/closet/secure_closet/freezer/fridge/groceries, /obj/structure/machinery/light{ @@ -46892,17 +46857,6 @@ icon_state = "red" }, /area/almayer/shipboard/brig/evidence_storage) -"ktn" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m4ra_rifle, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/shipboard/brig/armory) "ktB" = ( /obj/structure/largecrate/random/barrel/white, /turf/open/floor/almayer{ @@ -48089,16 +48043,6 @@ icon_state = "plating" }, /area/almayer/squads/req) -"kTc" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_shotgun, -/turf/open/floor/plating/almayer, -/area/almayer/shipboard/brig/armory) "kTq" = ( /obj/structure/largecrate/supply/supplies/mre, /turf/open/floor/almayer{ @@ -48154,18 +48098,23 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"kUh" = ( -/obj/structure/machinery/door/firedoor/border_only/almayer, -/obj/structure/machinery/door/airlock/multi_tile/almayer/generic2{ - access_modified = 1; - dir = 1; - name = "\improper Flight Crew Quarters"; - req_one_access_txt = "19;22" - }, +"kUb" = ( +/obj/structure/closet/secure_closet, +/obj/item/device/camera_film, +/obj/item/device/camera_film, +/obj/item/device/camera_film, +/obj/item/storage/box/tapes, +/obj/item/clothing/head/fedora, +/obj/item/clothing/suit/storage/marine/light/reporter, +/obj/item/clothing/head/helmet/marine/reporter, +/obj/item/clothing/head/cmcap/reporter, +/obj/item/device/flashlight, +/obj/item/device/toner, +/obj/item/device/toner, /turf/open/floor/almayer{ - icon_state = "test_floor4" + icon_state = "plate" }, -/area/almayer/living/pilotbunks) +/area/almayer/command/combat_correspondent) "kUt" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -48952,6 +48901,22 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"llt" = ( +/obj/structure/machinery/conveyor{ + id = "req_belt" + }, +/obj/structure/plasticflaps, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, +/turf/open/floor/almayer, +/area/almayer/squads/req) +"llD" = ( +/obj/structure/pipes/standard/simple/hidden/supply{ + dir = 5 + }, +/turf/open/floor/plating/plating_catwalk, +/area/almayer/command/combat_correspondent) "llM" = ( /obj/structure/pipes/vents/scrubber, /turf/open/floor/almayer, @@ -49795,6 +49760,20 @@ icon_state = "plate" }, /area/almayer/engineering/engineering_workshop/hangar) +"lCn" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/sign/safety/ammunition{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/sign/safety/hazard{ + pixel_y = 32 + }, +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_shotgun, +/turf/open/floor/plating/almayer, +/area/almayer/shipboard/brig/armory) "lCt" = ( /turf/open/floor/almayer{ dir = 10; @@ -50267,6 +50246,20 @@ /obj/structure/surface/table/almayer, /turf/open/floor/almayer, /area/almayer/squads/charlie) +"lLN" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = -30 + }, +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m4ra_rifle, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/brig/armory) "lLS" = ( /obj/structure/sign/safety/galley{ pixel_x = 32 @@ -50431,15 +50424,6 @@ icon_state = "test_floor4" }, /area/almayer/medical/medical_science) -"lOR" = ( -/obj/structure/machinery/photocopier, -/obj/structure/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/combat_correspondent) "lPB" = ( /obj/structure/surface/table/almayer, /obj/item/device/lightreplacer, @@ -50618,6 +50602,12 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_p) +"lUv" = ( +/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/hull/lower_hull/l_f_s) "lVl" = ( /obj/structure/machinery/cm_vending/sorted/tech/electronics_storage, /turf/open/floor/almayer, @@ -51642,13 +51632,6 @@ icon_state = "silver" }, /area/almayer/command/cichallway) -"mtX" = ( -/obj/structure/machinery/light, -/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_mk1_rifle_ap, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/command/cic) "mub" = ( /obj/structure/barricade/handrail{ dir = 4 @@ -51664,6 +51647,48 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/north1) +"mus" = ( +/obj/item/bedsheet/blue{ + layer = 3.2 + }, +/obj/item/bedsheet/blue{ + pixel_y = 13 + }, +/obj/item/toy/plush/therapy/red{ + desc = "A USCM approved plush doll. It's not soft and hardly comforting!"; + force = 15; + layer = 4.1; + name = "Sergeant Huggs"; + pixel_y = 15; + throwforce = 15 + }, +/obj/item/clothing/head/cmcap{ + layer = 4.1; + pixel_x = -1; + pixel_y = 22 + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 3.3; + pixel_y = 4 + }, +/obj/structure/bed{ + can_buckle = 0 + }, +/obj/structure/bed{ + buckling_y = 13; + layer = 3.5; + pixel_y = 13 + }, +/turf/open/floor/almayer{ + icon_state = "blue" + }, +/area/almayer/living/port_emb) "mux" = ( /obj/structure/pipes/standard/simple/hidden/supply, /obj/structure/disposalpipe/segment, @@ -51883,13 +51908,6 @@ /obj/effect/spawner/random/tool, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"mAr" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/closet/secure_closet/guncabinet/blue/riot_control, -/turf/open/floor/plating/almayer, -/area/almayer/shipboard/brig/armory) "mAT" = ( /obj/structure/machinery/door/poddoor/shutters/almayer{ dir = 8; @@ -53169,6 +53187,15 @@ icon_state = "test_floor4" }, /area/almayer/living/gym) +"nbr" = ( +/obj/structure/machinery/light{ + dir = 1 + }, +/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_shotgun, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/command/cic) "nbB" = ( /obj/structure/closet/secure_closet/freezer/fridge/full, /turf/open/floor/almayer{ @@ -54086,14 +54113,6 @@ icon_state = "bluefull" }, /area/almayer/living/briefing) -"nuL" = ( -/obj/structure/machinery/faxmachine, -/obj/structure/surface/table/almayer, -/obj/structure/machinery/light/small, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/combat_correspondent) "nuN" = ( /obj/effect/landmark/start/marine/medic/alpha, /obj/effect/landmark/late_join/alpha, @@ -54161,6 +54180,17 @@ /obj/item/tool/lighter/zippo/gold, /turf/open/floor/carpet, /area/almayer/living/commandbunks) +"nww" = ( +/obj/item/device/radio/intercom{ + freerange = 1; + name = "General Listening Channel"; + pixel_y = 28 + }, +/obj/structure/machinery/cm_vending/clothing/staff_officer_armory, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/command/cic) "nwx" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/almayer{ @@ -54442,19 +54472,6 @@ icon_state = "plate" }, /area/almayer/command/lifeboat) -"nDd" = ( -/obj/structure/sign/safety/ammunition{ - pixel_x = 15; - pixel_y = 32 - }, -/obj/structure/sign/safety/hazard{ - pixel_y = 32 - }, -/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/hull/lower_hull/l_f_s) "nDh" = ( /obj/structure/transmitter/rotary{ name = "CL Office Telephone"; @@ -54927,6 +54944,52 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_s) +"nMM" = ( +/obj/item/bedsheet/blue{ + layer = 3.2 + }, +/obj/item/bedsheet/blue{ + pixel_y = 13 + }, +/obj/item/toy/plush/therapy/red{ + desc = "A USCM approved plush doll. It's not soft and hardly comforting!"; + force = 15; + layer = 4.1; + name = "Sergeant Huggs"; + pixel_y = 15; + throwforce = 15 + }, +/obj/item/clothing/head/cmcap{ + layer = 4.1; + pixel_x = -1; + pixel_y = 22 + }, +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 3.3; + pixel_y = 4 + }, +/obj/structure/bed{ + can_buckle = 0 + }, +/obj/structure/bed{ + buckling_y = 13; + layer = 3.5; + pixel_y = 13 + }, +/obj{ + name = "---Merge conflict marker---" + }, +/obj/structure/bed/chair/comfy/charlie, +/turf/open/floor/almayer{ + icon_state = "emeraldfull" + }, +/area/almayer/living/briefing) "nMV" = ( /obj/structure/machinery/cm_vending/sorted/medical/wall_med{ pixel_y = 25 @@ -55148,6 +55211,13 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/almayer, /area/almayer/engineering/upper_engineering) +"nSj" = ( +/obj/structure/machinery/cm_vending/sorted/cargo_guns/cargo/blend, +/turf/open/floor/almayer{ + dir = 10; + icon_state = "green" + }, +/area/almayer/squads/req) "nSG" = ( /obj/structure/machinery/door_control{ id = "tcomms"; @@ -55747,54 +55817,22 @@ icon_state = "plate" }, /area/almayer/hull/upper_hull/u_f_p) -"ogZ" = ( -/obj/item/bedsheet/blue{ - layer = 3.2 - }, -/obj/item/bedsheet/blue{ - pixel_y = 13 - }, -/obj/item/toy/plush/therapy/red{ - desc = "A USCM approved plush doll. It's not soft and hardly comforting!"; - force = 15; - layer = 4.1; - name = "Sergeant Huggs"; - pixel_y = 15; - throwforce = 15 - }, -/obj/item/clothing/head/cmcap{ - layer = 4.1; - pixel_x = -1; - pixel_y = 22 - }, -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = -2; - pixel_y = 4 - }, -/obj/structure/window/reinforced{ - dir = 8; - layer = 3.3; - pixel_y = 4 - }, -/obj/structure/bed{ - can_buckle = 0 - }, -/obj/structure/bed{ - buckling_y = 13; - layer = 3.5; - pixel_y = 13 - }, -/turf/open/floor/almayer{ - icon_state = "blue" - }, -/area/almayer/living/port_emb) "ohj" = ( /obj/structure/machinery/cryopod, /turf/open/floor/almayer{ icon_state = "cargo" }, /area/almayer/squads/charlie) +"ohl" = ( +/obj/structure/window/framed/almayer, +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 1 + }, +/turf/open/floor/almayer{ + dir = 9; + icon_state = "green" + }, +/area/almayer/squads/req) "ohA" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -56112,13 +56150,6 @@ /obj/structure/pipes/standard/simple/hidden/supply, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/cells) -"omu" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_shotgun, -/turf/open/floor/plating/almayer, -/area/almayer/shipboard/brig/armory) "omy" = ( /obj/structure/disposalpipe/segment{ dir = 1; @@ -56332,16 +56363,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/living/port_emb) -"oqY" = ( -/obj/structure/machinery/conveyor{ - id = "req_belt" - }, -/obj/structure/plasticflaps, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/turf/open/floor/almayer, -/area/almayer/squads/req) "oqZ" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/microwave{ @@ -56492,6 +56513,18 @@ "otu" = ( /turf/closed/wall/almayer/research/containment/wall/connect_w, /area/almayer/medical/containment/cell) +"otK" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic2{ + access_modified = 1; + dir = 1; + name = "\improper Flight Crew Quarters"; + req_one_access_txt = "19;22" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/living/pilotbunks) "otX" = ( /obj/effect/decal/warning_stripes{ icon_state = "W" @@ -56895,22 +56928,6 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/medical_science) -"oDk" = ( -/obj/structure/surface/table/almayer, -/obj/item/clothing/mask/cigarette/pipe{ - pixel_x = 8 - }, -/obj/structure/transmitter/rotary{ - name = "Reporter Telephone"; - phone_category = "Almayer"; - phone_id = "Reporter"; - pixel_x = -4; - pixel_y = 6 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/combat_correspondent) "oDv" = ( /turf/open/floor/almayer{ dir = 9; @@ -56953,6 +56970,12 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) +"oDO" = ( +/obj/structure/machinery/sentry_holder/almayer, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/south2) "oDR" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 9 @@ -57378,14 +57401,6 @@ icon_state = "mono" }, /area/almayer/engineering/ce_room) -"oNf" = ( -/obj/item/stack/folding_barricade/three, -/obj/item/stack/folding_barricade/three, -/obj/structure/surface/rack, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/hull/lower_hull/l_f_s) "oNj" = ( /obj/structure/sign/prop1{ pixel_x = -32; @@ -57905,6 +57920,15 @@ icon_state = "red" }, /area/almayer/shipboard/brig/main_office) +"pbl" = ( +/obj/structure/bed, +/obj/item/toy/plush/farwa{ + pixel_x = 5 + }, +/obj/item/clothing/under/redpyjamas, +/obj/item/bedsheet/orange, +/turf/open/floor/wood/ship, +/area/almayer/command/corporateliason) "pbp" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/almayer{ @@ -59822,12 +59846,6 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_p) -"pVx" = ( -/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/squads/req) "pVA" = ( /obj/item/trash/cigbutt/ucigbutt{ pixel_x = 2; @@ -60151,6 +60169,15 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_f_s) +"qbh" = ( +/obj/structure/pipes/vents/pump{ + dir = 1 + }, +/obj/structure/machinery/light/small, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/combat_correspondent) "qbt" = ( /obj/structure/pipes/vents/pump, /turf/open/floor/almayer{ @@ -60484,15 +60511,6 @@ icon_state = "plate" }, /area/almayer/hallways/stern_hallway) -"qhl" = ( -/obj/structure/bed, -/obj/item/toy/plush/farwa{ - pixel_x = 5 - }, -/obj/item/clothing/under/redpyjamas, -/obj/item/bedsheet/orange, -/turf/open/floor/wood/ship, -/area/almayer/command/corporateliason) "qhx" = ( /obj/structure/flora/pottedplant{ icon_state = "pottedplant_22" @@ -60942,15 +60960,6 @@ }, /turf/open/floor/wood/ship, /area/almayer/living/basketball) -"qqr" = ( -/obj/structure/machinery/light{ - dir = 8 - }, -/obj/structure/closet/secure_closet/guncabinet/red/armory_m4a3_pistol, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/engineering/upper_engineering) "qqu" = ( /turf/open/floor/almayer{ dir = 1; @@ -61335,6 +61344,28 @@ icon_state = "plating" }, /area/almayer/hallways/vehiclehangar) +"qyJ" = ( +/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_shotgun, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/command/cic) +"qyM" = ( +/obj/structure/surface/table/almayer, +/obj/item/clothing/mask/cigarette/pipe{ + pixel_x = 8 + }, +/obj/structure/transmitter/rotary{ + name = "Reporter Telephone"; + phone_category = "Almayer"; + phone_id = "Reporter"; + pixel_x = -4; + pixel_y = 6 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/combat_correspondent) "qyW" = ( /obj/structure/bed/chair{ dir = 4 @@ -61706,15 +61737,6 @@ icon_state = "mono" }, /area/almayer/medical/medical_science) -"qJf" = ( -/obj/structure/machinery/light{ - dir = 4 - }, -/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/engineering/upper_engineering) "qJj" = ( /obj/structure/desertdam/decals/road_edge{ icon_state = "road_edge_decal3"; @@ -62163,6 +62185,19 @@ icon_state = "red" }, /area/almayer/shipboard/brig/general_equipment) +"qRL" = ( +/obj/structure/machinery/door/firedoor/border_only/almayer{ + dir = 2 + }, +/obj/structure/machinery/door/airlock/multi_tile/almayer/generic2{ + access_modified = 1; + name = "\improper Flight Crew Quarters"; + req_one_access_txt = "19;22" + }, +/turf/open/floor/almayer{ + icon_state = "test_floor4" + }, +/area/almayer/living/pilotbunks) "qRT" = ( /obj/effect/decal/warning_stripes{ icon_state = "SE-out"; @@ -62863,6 +62898,17 @@ icon_state = "emeraldcorner" }, /area/almayer/living/briefing) +"rhD" = ( +/obj/structure/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m39_submachinegun, +/turf/open/floor/plating/almayer, +/area/almayer/shipboard/brig/armory) "rhO" = ( /obj/structure/machinery/vending/cola/research{ pixel_x = 4 @@ -63568,6 +63614,12 @@ /obj/structure/largecrate/random/case/double, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/upper_hull/u_f_s) +"rwT" = ( +/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/engineering/upper_engineering) "rwY" = ( /obj/structure/window/framed/almayer, /obj/structure/machinery/door/poddoor/shutters/almayer{ @@ -63628,12 +63680,6 @@ icon_state = "mono" }, /area/almayer/lifeboat_pumps/north1) -"ryR" = ( -/obj/structure/machinery/cm_vending/clothing/staff_officer_armory, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/command/cic) "rzf" = ( /obj/effect/landmark/late_join/working_joe, /obj/effect/landmark/start/working_joe, @@ -64236,6 +64282,11 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_m_s) +"rJg" = ( +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/combat_correspondent) "rJh" = ( /obj/item/storage/backpack/marine/satchel{ desc = "It's the heavy-duty black polymer kind. Time to take out the trash!"; @@ -64360,23 +64411,6 @@ dir = 8 }, /area/almayer/medical/containment/cell/cl) -"rNg" = ( -/obj/structure/closet/secure_closet, -/obj/item/device/camera_film, -/obj/item/device/camera_film, -/obj/item/device/camera_film, -/obj/item/storage/box/tapes, -/obj/item/clothing/head/fedora, -/obj/item/clothing/suit/storage/marine/light/reporter, -/obj/item/clothing/head/helmet/marine/reporter, -/obj/item/clothing/head/cmcap/reporter, -/obj/item/device/flashlight, -/obj/item/device/toner, -/obj/item/device/toner, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/combat_correspondent) "rNF" = ( /obj/structure/machinery/light{ unacidable = 1; @@ -65694,15 +65728,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/starboard) -"ssW" = ( -/obj/structure/machinery/light{ - dir = 1 - }, -/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_shotgun, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/command/cic) "ssX" = ( /obj/structure/pipes/standard/simple/hidden/supply{ dir = 6 @@ -66097,14 +66122,6 @@ icon_state = "silver" }, /area/almayer/shipboard/brig/cic_hallway) -"sDm" = ( -/obj/structure/bed/chair{ - dir = 4 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/combat_correspondent) "sDu" = ( /obj/item/clothing/under/marine/dress, /turf/open/floor/almayer{ @@ -66614,15 +66631,6 @@ }, /turf/open/floor/almayer, /area/almayer/lifeboat_pumps/south1) -"sOZ" = ( -/obj/structure/sign/safety/ammunition{ - pixel_y = 32 - }, -/obj/structure/closet/secure_closet/guncabinet/red/armory_m4a3_pistol, -/turf/open/floor/almayer{ - icon_state = "redfull" - }, -/area/almayer/medical/upper_medical) "sPc" = ( /obj/structure/machinery/light{ dir = 1 @@ -67047,14 +67055,6 @@ icon_state = "red" }, /area/almayer/lifeboat_pumps/south2) -"sYB" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m39_submachinegun, -/turf/open/floor/plating/almayer, -/area/almayer/shipboard/brig/armory) "sYC" = ( /obj/structure/machinery/door/airlock/almayer/maint, /obj/structure/machinery/door/poddoor/almayer/open{ @@ -67910,6 +67910,12 @@ icon_state = "test_floor4" }, /area/almayer/hull/lower_hull/l_m_s) +"tpt" = ( +/obj/structure/machinery/sentry_holder/almayer, +/turf/open/floor/almayer{ + icon_state = "mono" + }, +/area/almayer/lifeboat_pumps/north2) "tpD" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -69126,6 +69132,10 @@ /obj/structure/machinery/light, /turf/open/floor/plating/plating_catwalk, /area/almayer/hallways/hangar) +"tQM" = ( +/obj/structure/safe/co_office, +/turf/open/floor/wood/ship, +/area/almayer/living/commandbunks) "tQV" = ( /turf/closed/wall/almayer/outer, /area/almayer/lifeboat_pumps/south1) @@ -69214,6 +69224,28 @@ icon_state = "orangecorner" }, /area/almayer/living/briefing) +"tSF" = ( +/obj/structure/surface/table/almayer, +/obj/item/device/camera{ + pixel_x = -8; + pixel_y = 12 + }, +/obj/item/paper_bin/uscm{ + pixel_y = 6; + pixel_x = 6 + }, +/obj/item/tool/pen{ + pixel_x = 4; + pixel_y = -4 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = -8; + pixel_y = -1 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/combat_correspondent) "tTp" = ( /obj/structure/surface/table/almayer, /obj/item/reagent_container/food/condiment/hotsauce/sriracha{ @@ -69628,14 +69660,6 @@ /obj/item/frame/table, /turf/open/floor/plating/plating_catwalk, /area/almayer/hull/lower_hull/l_a_p) -"ubf" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/combat_correspondent) "ubA" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -69677,6 +69701,15 @@ icon_state = "plate" }, /area/almayer/command/cic) +"udb" = ( +/obj/structure/sign/safety/ammunition{ + pixel_y = 32 + }, +/obj/structure/closet/secure_closet/guncabinet/red/armory_m4a3_pistol, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/medical/upper_medical) "udi" = ( /turf/open/floor/almayer{ icon_state = "red" @@ -69843,6 +69876,16 @@ icon_state = "cargo" }, /area/almayer/squads/req) +"ufS" = ( +/obj/structure/sign/safety/terminal{ + pixel_x = 7; + pixel_y = 29 + }, +/obj/structure/filingcabinet, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/combat_correspondent) "ugs" = ( /obj/structure/surface/table/almayer, /obj/item/book/manual/marine_law{ @@ -70202,6 +70245,40 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_medbay) +"uoh" = ( +/obj/structure/window/reinforced{ + dir = 4; + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 3.3; + pixel_y = 4 + }, +/obj/structure/bed{ + can_buckle = 0 + }, +/obj/structure/bed{ + buckling_y = 13; + layer = 3.5; + pixel_y = 13 + }, +/obj/item/bedsheet/yellow{ + layer = 3.2 + }, +/obj/item/bedsheet/yellow{ + pixel_y = 13 + }, +/obj/structure/sign/safety/bathunisex{ + pixel_x = -16; + pixel_y = 8 + }, +/obj/item/toy/plush/barricade, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/living/port_emb) "uoi" = ( /obj/effect/decal/warning_stripes{ icon_state = "S" @@ -71983,13 +72060,6 @@ icon_state = "tcomms" }, /area/almayer/engineering/upper_engineering/starboard) -"uXW" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 4; - icon_state = "exposed01-supply" - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/command/combat_correspondent) "uYa" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 4 @@ -72026,16 +72096,6 @@ /obj/structure/window/framed/almayer, /turf/open/floor/plating, /area/almayer/hallways/repair_bay) -"uZY" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/machinery/light/small{ - dir = 1 - }, -/obj/structure/closet/secure_closet/guncabinet/blue/riot_control, -/turf/open/floor/plating/almayer, -/area/almayer/shipboard/brig/armory) "uZZ" = ( /obj/structure/machinery/door/airlock/multi_tile/almayer/generic{ name = "\improper Basketball Court" @@ -72083,16 +72143,6 @@ icon_state = "orange" }, /area/almayer/squads/bravo) -"vbR" = ( -/obj/structure/window/framed/almayer, -/obj/structure/machinery/door/firedoor/border_only/almayer{ - dir = 1 - }, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "green" - }, -/area/almayer/squads/req) "vbS" = ( /obj/structure/closet/secure_closet/personal/patient{ name = "morgue closet" @@ -73045,16 +73095,6 @@ icon_state = "plate" }, /area/almayer/hallways/hangar) -"vsI" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "S" - }, -/obj/structure/machinery/camera/autoname/almayer{ - name = "ship-grade camera" - }, -/obj/structure/closet/secure_closet/guncabinet/blue/riot_control, -/turf/open/floor/plating/almayer, -/area/almayer/shipboard/brig/armory) "vsJ" = ( /obj/structure/machinery/door/airlock/almayer/maint{ access_modified = 1; @@ -74058,6 +74098,14 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/port_hallway) +"vMC" = ( +/obj/structure/bed/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/almayer{ + icon_state = "plate" + }, +/area/almayer/command/combat_correspondent) "vME" = ( /turf/open/floor/almayer{ dir = 9; @@ -74785,6 +74833,16 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull) +"vZJ" = ( +/obj/structure/sign/safety/intercom{ + pixel_x = 8; + pixel_y = 32 + }, +/obj/structure/closet/secure_closet/guncabinet/red/armory_m39_submachinegun, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/medical/upper_medical) "wan" = ( /obj/structure/surface/table/almayer, /obj/item/facepaint/brown, @@ -74997,6 +75055,15 @@ icon_state = "red" }, /area/almayer/shipboard/brig/main_office) +"wdv" = ( +/obj/structure/machinery/light{ + dir = 4 + }, +/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/engineering/upper_engineering) "wdz" = ( /obj/effect/landmark/start/marine/engineer/charlie, /obj/effect/landmark/late_join/charlie, @@ -76071,6 +76138,13 @@ icon_state = "sterile_green" }, /area/almayer/medical/lower_medical_medbay) +"wAd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/machinery/light{ + dir = 8 + }, +/turf/open/floor/almayer, +/area/almayer/hull/upper_hull/u_f_p) "wAR" = ( /obj/effect/decal/warning_stripes{ icon_state = "E"; @@ -76150,12 +76224,6 @@ icon_state = "ai_floors" }, /area/almayer/command/airoom) -"wDl" = ( -/obj/effect/decal/cleanable/blood/oil/streak, -/turf/open/floor/almayer{ - icon_state = "mono" - }, -/area/almayer/lifeboat_pumps/south1) "wDm" = ( /obj/effect/decal/warning_stripes{ icon_state = "NE-out"; @@ -76350,13 +76418,6 @@ /obj/effect/landmark/late_join/delta, /turf/open/floor/plating/plating_catwalk, /area/almayer/squads/delta) -"wGI" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/machinery/light{ - dir = 8 - }, -/turf/open/floor/almayer, -/area/almayer/hull/upper_hull/u_f_p) "wGX" = ( /obj/structure/pipes/standard/manifold/hidden/supply{ dir = 1 @@ -76757,6 +76818,16 @@ icon_state = "bluefull" }, /area/almayer/command/cichallway) +"wQa" = ( +/obj/structure/sign/safety/hazard{ + pixel_x = 15; + pixel_y = 32 + }, +/obj/structure/closet/secure_closet/guncabinet/red/armory_m4a3_pistol, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/medical/upper_medical) "wQg" = ( /turf/open/floor/almayer{ dir = 1; @@ -77018,17 +77089,6 @@ "wVb" = ( /turf/closed/wall/almayer/outer, /area/almayer/hull/lower_hull/l_a_s) -"wVw" = ( -/obj/structure/machinery/light/small{ - dir = 8 - }, -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m39_submachinegun, -/turf/open/floor/plating/almayer, -/area/almayer/shipboard/brig/armory) "wVy" = ( /obj/structure/window/reinforced{ dir = 8 @@ -77957,20 +78017,6 @@ icon_state = "orange" }, /area/almayer/engineering/upper_engineering/port) -"xoS" = ( -/obj/effect/decal/warning_stripes{ - icon_state = "N"; - pixel_y = 2 - }, -/obj/structure/reagent_dispensers/peppertank{ - pixel_y = -30 - }, -/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m4ra_rifle, -/turf/open/floor/almayer{ - dir = 5; - icon_state = "plating" - }, -/area/almayer/shipboard/brig/armory) "xpd" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/manifold/hidden/supply{ @@ -78149,6 +78195,12 @@ icon_state = "cargo" }, /area/almayer/hallways/vehiclehangar) +"xtg" = ( +/obj/structure/machinery/cm_vending/clothing/staff_officer_armory, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/command/cic) "xtD" = ( /obj/structure/surface/table/almayer, /obj/item/tool/weldpack, @@ -78166,6 +78218,17 @@ icon_state = "sterile_green_side" }, /area/almayer/medical/lower_medical_lobby) +"xub" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "N"; + pixel_y = 2 + }, +/obj/structure/closet/secure_closet/guncabinet/red/mp_armory_m4ra_rifle, +/turf/open/floor/almayer{ + dir = 5; + icon_state = "plating" + }, +/area/almayer/shipboard/brig/armory) "xuc" = ( /obj/structure/surface/table/almayer, /obj/item/tool/extinguisher, @@ -78614,12 +78677,6 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"xBb" = ( -/obj/structure/pipes/standard/simple/hidden/supply{ - dir = 5 - }, -/turf/open/floor/plating/plating_catwalk, -/area/almayer/command/combat_correspondent) "xBe" = ( /turf/closed/wall/almayer/reinforced, /area/almayer/engineering/upper_engineering) @@ -79024,40 +79081,6 @@ }, /turf/open/floor/almayer, /area/almayer/hallways/hangar) -"xKt" = ( -/obj/structure/window/reinforced{ - dir = 4; - pixel_x = -2; - pixel_y = 4 - }, -/obj/structure/window/reinforced{ - dir = 8; - layer = 3.3; - pixel_y = 4 - }, -/obj/structure/bed{ - can_buckle = 0 - }, -/obj/structure/bed{ - buckling_y = 13; - layer = 3.5; - pixel_y = 13 - }, -/obj/item/bedsheet/yellow{ - layer = 3.2 - }, -/obj/item/bedsheet/yellow{ - pixel_y = 13 - }, -/obj/structure/sign/safety/bathunisex{ - pixel_x = -16; - pixel_y = 8 - }, -/obj/item/toy/plush/barricade, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/living/port_emb) "xKM" = ( /obj/structure/machinery/status_display{ pixel_x = 16; @@ -79805,6 +79828,13 @@ }, /turf/open/floor/plating/plating_catwalk, /area/almayer/engineering/upper_engineering) +"xZf" = ( +/obj/structure/machinery/light, +/obj/structure/closet/secure_closet/guncabinet/red/cic_armory_mk1_rifle_ap, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/command/cic) "xZz" = ( /obj/structure/surface/table/almayer, /obj/structure/machinery/faxmachine/uscm/command/capt, @@ -80126,6 +80156,13 @@ }, /turf/open/floor/wood/ship, /area/almayer/shipboard/brig/chief_mp_office) +"yeX" = ( +/obj/effect/decal/warning_stripes{ + icon_state = "S" + }, +/obj/structure/closet/secure_closet/guncabinet/blue/riot_control, +/turf/open/floor/plating/almayer, +/area/almayer/shipboard/brig/armory) "yfm" = ( /obj/effect/landmark/start/marine/delta, /obj/effect/landmark/late_join/delta, @@ -80209,6 +80246,16 @@ icon_state = "plate" }, /area/almayer/hull/lower_hull/l_m_s) +"ygM" = ( +/obj/structure/sign/safety/ammunition{ + pixel_x = 32; + pixel_y = 7 + }, +/obj/structure/closet/secure_closet/guncabinet/red/armory_shotgun, +/turf/open/floor/almayer{ + icon_state = "redfull" + }, +/area/almayer/medical/upper_medical) "yhI" = ( /turf/open/floor/almayer{ dir = 4; @@ -80256,20 +80303,6 @@ }, /turf/open/floor/almayer, /area/almayer/engineering/engineering_workshop/hangar) -"yiL" = ( -/obj/structure/surface/table/almayer, -/obj/item/storage/photo_album{ - pixel_x = -4; - pixel_y = 5 - }, -/obj/item/folder/black{ - pixel_y = -3; - pixel_x = 7 - }, -/turf/open/floor/almayer{ - icon_state = "plate" - }, -/area/almayer/command/combat_correspondent) "yiW" = ( /obj/structure/machinery/cryopod/right{ layer = 3.1; @@ -91259,7 +91292,7 @@ eZH ohJ thL thL -eeB +aHT liZ rUk jVa @@ -91841,9 +91874,9 @@ pCi rPC rwS lrq -kTc +fFq uqo -wVw +rhD cqn gTx eRL @@ -92044,9 +92077,9 @@ ahE rPC nfI lrq -omu +eTx uqo -sYB +hGa cqn ldu eRL @@ -92247,9 +92280,9 @@ ahE rPC heV lrq -frJ +lCn uqo -ktn +xub cqn nBb mdS @@ -92450,9 +92483,9 @@ ahE wcn nBc lrq -vsI +ebt uqo -xoS +lLN lrq mAT lrq @@ -92653,7 +92686,7 @@ pCi wcn wcn lrq -mAr +yeX uqo fsT jnA @@ -92856,7 +92889,7 @@ pCi oCL wcn lrq -uZY +ebz uqo uqo uqo @@ -93059,7 +93092,7 @@ pCi rPC aou lrq -mAr +yeX uqo uvy tfO @@ -97215,7 +97248,7 @@ aaa nXP ndx uNL -nDd +eRt soS sgy nsu @@ -97418,9 +97451,9 @@ aaa nXP hJp uNL -gka +lUv bwQ -oNf +gUr uNL aNw kXJ @@ -97762,7 +97795,7 @@ ukU bfP fvv vcK -wGI +wAd tuA tuA tuA @@ -101187,7 +101220,7 @@ sBF amY vtT wVW -abQ +nww atN cEl sOi @@ -101390,9 +101423,9 @@ agj aic aov wVW -atx +qyJ qEk -ajm +ksv wVW arP alX @@ -101404,7 +101437,7 @@ hkG wVW fvB qEk -auR +aGi wVW aKn aKz @@ -101593,7 +101626,7 @@ agj aic aov wVW -atx +qyJ qEk ato wVW @@ -101607,7 +101640,7 @@ aEB wVW fvB qEk -auR +aGi wVW aKn aKz @@ -101796,7 +101829,7 @@ agj aic aov wVW -ssW +nbr qEk hrm wVW @@ -101810,7 +101843,7 @@ aEC wVW dNZ qEk -mtX +xZf wVW aKn aKz @@ -101988,7 +102021,7 @@ cnX lIh agj mXj -afo +tQM lue ahw aiG @@ -101999,7 +102032,7 @@ agj aic aoA wVW -atx +qyJ jvX ato wVW @@ -102011,9 +102044,9 @@ alX aIf aED wVW -ryR +xtg jvX -auR +aGi wVW aKn aKy @@ -103810,7 +103843,7 @@ awW add add add -add +juf add add add @@ -103856,7 +103889,7 @@ baw aJU aJU aJU -wDl +hey aJU aJU aJU @@ -104440,7 +104473,7 @@ umS yjM qbO aqw -hnI +qRL bYe amO wZM @@ -105231,7 +105264,7 @@ aoC add add add -add +juf add add add @@ -105277,7 +105310,7 @@ baw aJU aJU aJU -aJU +eyv aJU aJU aJU @@ -106060,7 +106093,7 @@ aiX aiX aiX sHM -kUh +otK aiX aiX aiX @@ -108697,7 +108730,7 @@ dtM akU ajC sqf -anp +wQa wjz fnA jZY @@ -108900,7 +108933,7 @@ dtM aii ajC sqf -sOZ +udb oNJ eDo eDo @@ -109103,7 +109136,7 @@ dtM ajt aik sqf -anq +eTh awn xsz jTj @@ -109306,11 +109339,11 @@ dtM aii ajC sqf -anr +vZJ awn tEi -asu -hbI +iWb +ygM sqf ajl vtx @@ -112377,7 +112410,7 @@ awE bqy bYj eUR -bsd +gEI nDh bYj xne @@ -114205,7 +114238,7 @@ rne rne fAo awE -bhM +knT wQv bBi awE @@ -114612,7 +114645,7 @@ rne wft awE hpf -qhl +pbl igp awE hoX @@ -115883,7 +115916,7 @@ wNl nGh fPp lqN -xKt +uoh nsY xCN pOB @@ -115896,7 +115929,7 @@ aLJ eBg dAO cEG -ftg +ckE dYX tBF lBz @@ -116537,7 +116570,7 @@ bJz bdg wLV wLV -bKg +nMM wLV wLV wNT @@ -116550,7 +116583,7 @@ uVh nsY kzK lFh -ogZ +mus pVA mzV pML @@ -116702,7 +116735,7 @@ aLf tRc qEW bdd -eBE +gGo mLb wmz vpt @@ -120783,7 +120816,7 @@ rbY gwD bOK bPD -bYa +nSj bPD jOk bNB @@ -120986,7 +121019,7 @@ rbY bEc bKA bCA -bQS +gJs bCA bKA bEc @@ -121064,7 +121097,7 @@ aeA aeC aeC aeC -aeC +tpt aeC aeC aeC @@ -121112,7 +121145,7 @@ lJY vcE vcE vcE -vcE +oDO vcE vcE vcE @@ -122485,7 +122518,7 @@ amH aeC aeC aeC -aeC +tpt aeC aeC aeC @@ -122533,7 +122566,7 @@ kKR vcE vcE vcE -vcE +oDO vcE vcE vcE @@ -122618,7 +122651,7 @@ bZr bNQ bNQ bNQ -bGz +ohl hMs cbw iEb @@ -122821,7 +122854,7 @@ bZr krN krN krN -oqY +llt can buH iEb @@ -122927,9 +122960,9 @@ alG anG apf oIB -dQx -oDk -yiL +tSF +qyM +jog oIB sFR vuv @@ -123024,7 +123057,7 @@ bZr ibc uly bNN -vbR +fXt pky cbv cbS @@ -123130,9 +123163,9 @@ alG aYD uPI oIB -dGS -bOw -nuL +hJh +vMC +iUC oIB sFR vuv @@ -123333,9 +123366,9 @@ sUF anG apd oIB -dXs +ufS bZw -sDm +kaJ oIB sFR hPo @@ -123430,7 +123463,7 @@ bZr bKA dyx eYr -bUo +iii uys cbz cbU @@ -123537,8 +123570,8 @@ aYD aTS qgK tEB -xBb -gkv +llD +gGl oIB lBR nVu @@ -123633,7 +123666,7 @@ bmD bKA dyx hGN -pVx +ddN uys ttM iEb @@ -123740,8 +123773,8 @@ anG mPX oIB wKF -uXW -ubf +fOh +diM oIB fbx cFA @@ -123942,9 +123975,9 @@ aSC aZH iAB oIB -lOR -fTh -cVu +gqF +imW +qbh oIB fbx cxo @@ -124145,8 +124178,8 @@ rFY ctC gPF oIB -rNg -aUb +kUb +rJg pxj oIB fbx @@ -126167,8 +126200,8 @@ auu aoT aFm xBe -aIV -qqr +cij +jRZ arH xBe alG @@ -126575,7 +126608,7 @@ anO nFX atv auV -amE +ift xBe alG aDZ @@ -126778,7 +126811,7 @@ atc nFX atv auV -amE +ift xBe alG aYj @@ -127182,8 +127215,8 @@ atq aDr aFu xBe -azp -qJf +rwT +wdv anV xBe alG diff --git a/maps/shuttles/escape_shuttle_e_cl.dmm b/maps/shuttles/escape_shuttle_e_cl.dmm index df10125c3a..490f0abdfa 100644 --- a/maps/shuttles/escape_shuttle_e_cl.dmm +++ b/maps/shuttles/escape_shuttle_e_cl.dmm @@ -42,7 +42,7 @@ /turf/open/shuttle/escapepod, /area/shuttle/escape_pod) "v" = ( -/obj/structure/machinery/computer/shuttle/escape_pod_panel{ +/obj/structure/machinery/computer/shuttle/escape_pod_panel/liaison{ pixel_y = 30 }, /turf/open/shuttle/escapepod{ @@ -50,8 +50,9 @@ }, /area/shuttle/escape_pod) "y" = ( -/obj/structure/machinery/door/airlock/evacuation{ - name = "\improper Evacuation Airlock CL-1" +/obj/structure/machinery/door/airlock/evacuation/liaison{ + name = "\improper Evacuation Airlock CL-1"; + id_tag = "cl_evac" }, /turf/open/floor/almayer{ icon_state = "test_floor4" diff --git a/sound/effects/creak1.ogg b/sound/effects/creak1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..0cad4802ffa95dbf56228e95ce6ecafcf78c9f1a GIT binary patch literal 125071 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°%C$)iBM+kCr0ubHuqeVx2_YWYAj4e{bj9uPEyPg3XZis{*d zUx8?TqfOmMK4yQ{JNBENT-v#W{x$!({D-z1az~IXpM0*o=@s*DM?asvt+!B3;V#e4 z*%M+M7J#aFrY+BNHP^St!agaCk>UHuxl-NpZ{4SrPA^Dsj<>}Io)o;wF@duI&?LO; zzBd95fDgxVk$~7qPh8l0EqN<$>2@rDQA#PjjEr!aQl-oQ005wP=1WYl{xr^2nDMHh zZsKCQRF2EAYgH{b8^^W%&F`;x)3V=n`{(NutMPi%>W1hUr1p84-H`kFweDS4+o8Na z``J+2%Xl2z<7rIjEPf|8=ybk--rRC+PmR6m{oT#S=l1pshoW9?Iqz3{naznYKJh)X zgdz63x+=!K>KI+W4=`$X=MHqzb03H>yYyodj~Y~HUqCW z-YYie=+R{6Vg>V0-upQ(0Ql11XZ~WTuU|F?G9U9iUsM@%pM8$(lSfa>zSx_oTAz%L zDxQ`|sk-DPAD7+FvTw8O_whWsyjR~b&>&y!?;rAPfwq`!IsNBreZsRTYg(C%O@F`W zoSpslm|?MjnbGEiXL0;sdj zI~%D~>YhegPlmjUwR7FIo>X`Hpa1}#C486ZTsQ}W22H}d8Mh!XKnY&#Q!pU7fAnz3 zWlj40{aTm3wzioV&m{N4x_~mu$PM5EJ%yQeNTqCL5&!^zQiE`y3WrtTtOKlM%D?zXVpUGPQgWZ&-SR=Kt zA8cAWl+-8QPptGO=4(lQxyb#mS@N9t_xHo&pVI51`T6u0hm7}`{MrxQZPTmlX>{)& zn%x(^Ep$0qS^7pl={raji;A`715cJ+;>_%JT9&T2*|b=W(>}=G=})Kg?HBa09n0zF zx`}G(MfP1Og}G&p*P)GM#m@X6tS_&wb#gnsWekkZ@Sm6P-aEGBtK*JSPr5yKXv)Ye zP5rKK_lW*h0|(Wc{6z*e?v#(FE*Br~%KJR#70;|{QuL+Y?)lQhxwQ8LJG#g1mpnB=Wu;jb5Jo==AqN>@Bl>9@J74@(X(rv)UjIUUQeR55ZyL9VZ$&nor!K zdE^WxWFy|JNS_B4AxJZ;`!Cm!{$4fxJI%j?actWC7Cg3~*-z5^Q2kTMH@Ci<>Z=Z- zy^3_)Z_lN44%qX$U*MkH^l@AZ-fJP@0sv2EXHx(KK#PKPd0f4LEYo1P*MgpON7vlk)k^KGfnwzDK=a#EW-=p;~ z&^H$sSO7}_7QmPRHUL1+(pvyaTh)@80RR91?9kx0Jx|YAs|qqM(S6S#_}~0q@7u%A zFGLIJpLyRcEf2}oZnDeJpNcXW0w+;iCfnqPh~K#$zoHcEt+*G9%{LsWi5FUdN?be3 z{c9__M%6^0kg$Mt#}@VDhAzx1K`~+=)Xt?cZ$E7~Td^%(9UW_2e9HWF@;BZ0dG)A< z`$AKB*6YX2{(VN_!}Dv*!Q$X@|A6+U;(J>0Kd*;*Xy!``aj^mG zw&B4*ZJ!uGQ%QdttY%9{vZrFcRHOOb5h?GS350k^{d�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

k`qm`WvGx`rAwpGozW0a z$P|>}EkWi7>5YM7L3G5s6;x}o8L)H()jJv`S999Z=K(C6ekEJZ=p$|)54;YZA|N>o z^fygZ(~2Hl8A8*rLR|sF4h2mmZ{ne)D%3Q6nYKA?06M*#mZk3)&aw^#fxFgOPoP9Y zXRVhX&*CK61K%&+sL7c1qMg z=6%q<4FG%hc*v9KaYm{M&os+!%*fcLxp`aU2M5z!cjO`c5y9}@l5EuRCB26ihgVn^ zx<1x@lRcPA__`uJHsacb)D7Nz4zGn>5?(Ua=uMXX?B>y=1Nj*6BT<&w<=7CV?k+Q! zy!=ja#G$lFFD$kEY3Iqr>G@QSyLq>exgGkH@X7ge zvovENpOu!=bEO=M&Fo>N9JCa+Yzk|NXbv6MVIh;)4HlWhxe^7N-lk2;aLdaZcO%aN zY!QBlbLSW+)UPzZLVQAR>p7>5Bg!EebWh-Yee4=t{&Kujj)w_E8%3sS79l6dIifX! zkS=CJ@RNoRyKoFdM(0NP?eyDzVytBsRG%1|YfpIB*KyEh=h|H>ayRAMTf1vgq&=HI zI0TI#_l7GsW$bx=z0El0V$0DL^y;mP56|0zmbpV;d_Vs(UTlN?HSVBn;nhELi=0*2 zvWAGTeT5A_$?S|cN{2$UPY&ybE+s7W$AE!ZE$*@-m7xE28s};dJ>rLahFL0kEuf)C zC2w)3C23W#F&4XC$wW|ev4@)A%@cEeQWdp3t%V|? z$jb1nA+f}JH#{Yr0eF-Oa^=%&8F;*gXlO=gj&KH4N^eDS)07SBd@@7`>=8p~dT1JP zGmZ6pxepeDR;$2V?n2YP7A>dOb`~n`d3Ve#c|G@!o@=q_IFT?~F`=5qU`+2IfNzQc z&H_{a9OnrESnhFc#sE_-`=@fpvVp_QWI3>N+4iq^JO;>@aGxCeu$Hww;k<>*@hlY5uyM;K!glR3SPK*X6ABLFz}4c-R@j(@o{wZ3#K`NiyVzLC7= z%caTnrGDgv*-~sOdDohW*zmr?kB(WmxL?VjG@TcE{h%tYHG1Z+TD4)|Y7lXR9cVF- z#-LPU0==gtG<2VhO9ISO#Z&u!CTJNUfz2lwE^*`4$`&@hT z&zAAAO|wU-RBUOsOa5V~x9|CHSa+NpCP z)i7{W5&C{Gd4Fx=om{J{{|H><1q=pe+jnKqzP36%UJ253XFz)@p*>gPL7Cn+z26*u@H!uB1+(4hxn#A!pwhA>DtR}!67huYrM=Yy5r51uw z3mO-PIp~L&jn7``z}#89*F?S6<5f`a$zH2LnJfj`8~;>jssBhb_hN2UXuiSYOx=l< z%AWkb5Y*c7yK^f}Ts?j2!1Ci&=c+Gr9SAjw=^HOgdOkT4fF*#6)%P7FP>&pWVH|#e zm(&(_`_~u7ZRmIBmQuGNkenVBUXSMXkjo3u-?ef>1+Fi9LaT~hgPOnN@llR2nT{*( z-x2SuU1+Iyn+JYrkai?NVZ2p{Y1F*jF;SK0Ze#5}%q?*yriOSzdthzym+N#lTZ zuKFhD-1o_RB0yq3Tt~oOl5Wdhw;CI;%*-+GzV!6@*Q%eyiOX&G!fV6-`Stin4yE2R z61?27wrNR_Ye*g_*}_GbB5)FU0m30C-ZDpHMvBc(k1{{ha7>DlcX9yqd1z0(hOuWd zAP?g9>Zk3sf&VoBH6L5Ui~4CF_2!nI%KNyEbAR32sGH*9Eu4~JY=}&3W0O0mHXbUw z7V9GS8KUs~MSZA{Dti0iTAx1y3r$~gJ@Y08Z~0xSgIo&V^606PYi2<%X3MD+w|AR2 zU(n%%o5RZ!;_FWfrWC1b8^S~UdZVUvvOJH%&Z74&LN!loCTS%CdV2f<@j}muA0|i#l@Z6_1_bR{@uzZttq3t?KA% z@z~P#{MVqWV}IP!RaJ%6mTrJat7vfW2t!tMW1+Q3pcF$_1lShKX4{;jc{fvM&Pni2N ziCI=KCVu>+%M@EDC!3_36zkYYwp#O#FM5te#Tqm!-p6z3; zmCp*&%22aBIK9@GP&@{-ONjuZg(n&Z2=)NfSqPE)V6XlSa7Xy^d&-E#A{KgV}StWF3&m2GJ_wYa1MSu%Kx zx@EzmoTW9czF|YF39jacc`J8p`cKd@AR#3SZ@?_cG&0tR?;5)ggaBMu+&l_jRm@`c zql+=>HczNJFhGYS_0P$w`fmj9XdRQmOKE1lxf9+jUZyu2%g_(Z28e>YPWmc+CoTmODZ=qeP#$lLGlew_+IG5%0Y6mQ zq}~LPgwF+M8ZJM~pZQZc9uuX$_9!j$z~n2=NKcp3{oEA{-$Ub9&G(-0+w<4ekHvem z=TYxhtF0wDjo**1{Py?Q9&ekami^+KVK~ch-3#9rkLBC4HUFFwoM}m(+NZl|d)j`^ zYQaPFE4SJX-8(cJ?JVfAgPj;3tsy!dvgE= z$_d)3W)Npes5<{v=~9WEeN~kwr@{sa6Y{Xl6m=5fi3Q!(2~5E=r)U-iKd?+#8FT(N zE1iw;qM;OgrLn9YA4-z;AyX+*xzsDPP~%gpM$Iy#i6PCI^7J?sq{~$p4Up9ed8+A0 zi<(SH_b)f}P(_6_Pohmma7+98{caVwZ4LBO^^SVnYYT(k+wZn3!|MFj%>BzY{VWdl zK1`)yF5#1F4$U7rX%ZDR_$jB#(eBNrt1)$zfB22HBw@DhwCQn5xK7|dyQR<04TJ#e zMtwh@s0ty^Eu38O(B+@jU*dkfj_BDLG`45Q+554~iy7zH%n1+MD?|OkO*{Up_fwv@ z*75dPx2&?#J~(v2^VreR+jf^^+3i7ZNAnLbOMjd+D6T(q{$AkbCCo;QgM9!J8i2t> z+7K|THE-1lN3UKER2oC>XC=#KHy=iwrY)bA}VB!8^-b1!>U|wP~1i%X%*c( zS_HFP8JO!XK+%p0aqKabm;s6S*^iD}md(53<Mg(0sW{yz9D<=b9r)TuH{q9k51mp6j&+lD_r>+lsBpr;7+FyRDxwYvy z_iFg1=FjoF9S458`^)yWwMRJ3v59S7+IuT&Qm$543C5H6Io#ZSAg<3KX3g3=k3S{= z&nk3#F8rKz@@B*DRvE7i zm%|dlUVGaM`BA|(gi12IRb@u`)8QU3_)@5ezp4ZsFa{Om*o6~Kp4;n8Glj|XEWD^6 z$Mkhuhq4W?rGlAI;V@yb7Apet;XvCASxy<|>FfC+rZJCfd@rS2{5=L8u*+dA+`wd8 zVooXp1@t;1>vUj|@#fIVppxWj34%C=BdrgG0Ot*^{y7GLS&u$h5&rCo_jh=fzNsYW zk~AgUF3H3>o1_*q3)=p)S^8@C663823}-q73Oq9G4F#J-tEUH!ZDa2<&$3u7-U7S! zsVbGdui!!K#@hoVpY3iPh2_>KZ;-(80=(bGx6+L-kC;ko>8Fc$F|VO6AHAmq#(v2N zA+GWC$q{B4Aw0~M0QYMUOLE2b&Jpy0lA6*QW_e@TWE}uK3iH!9eK_SNRJ&rl5Y*Jo zS^j1r6q}{Tv0@SnZwsAGlN)X&rSVN?-0NeJ7PzHptKZhgW~?h>=i`U+1^U)>N)a&! zh{&8j7w&Im`jGJg5euW!>B}Qt;4u+SxhlD3Z1GE=MJzslkI1YE*hcVp-1 zFnSNLi1_kTC2L72r#Z+9ljC^oupZRpYm-k}@v)4erkG3T63-0h82{@^`_1QG?L6wu z8M{a80%ciN$$wb{y|OrKaxMB*b4BfPBG};gj$VGVgNE5<*>vId*{@43r|CcN%$p~z zs=5YCC3AzIYxn2*U99SJ-+ul-Zc)mzQg5`m?Dg*cgpaxLX2C2MdsEY8`JFB^uLUCz za~aZAyLGh`({e4vv6f z2v%B@d=_Xm+*Yg&!_$qtUCOl)d|fPrpGm<48r92u$Y_KY)-1YofJp2OdP0X|;UZ@x z@64}=4YhV)fP4nibU;oj@o}ogm)X?M(l}{Rl@PNnIvelF`b-x!V7x)k?lJVQycZpT zz?Um1gyU=E!8fuwE+W?AWDH;RTmDP4GOyo5f#lwS6-!R|Rj$gqd$4Uo{Bl8k^?TQK z;XBH@C9K*^hu^_O{RKwA(&goxuh2y)0;l8w@Cd*3reeH_U2gHl~L#8gya4-8%J zFyL=|*>9~J((c`+riAxX7lv9wPe~9`ZxG7haaesMX%DmBR;j?I6Cn&1>r$xy0I@ID z8X?torA`V056bqG9zJa5_lsw<&E%5(cvc#Xu@;IkgJ37UI007bSs~jR=7%6b<7buw z`54mjZ)?IGcHPaKDBE@M-GR{)th-OB!5>##CLgN)*Sfy^Mzk?D!Oe~PCqqjaj^o>c4jM)a&*LX z2>?#a2cOrs>=@J9ueXm*g0KGf!uwwY_f?{xLxJ756mMfX+2Rf#$w~hwXdhV7-8&;U zen_PI-eL!ud=DImj(JUU=~h2tG zrZYERhuPGXBFJc8qJ)Y;Id>H`}Qb%W_#AD z-jj1N&{WX|)DtP=(-i9xZ~WykVl1-W`R3Vodkmb{=J|Da|GB3|cS~4^reKg;ri_puiGQb60>~jeILj?2ZIAO6o@E}eA7KZAkxrsEXK_s zA$}~r$ctbWE8{uZ_|zHSxFN7cLp_2D&9Dp0fg7ztb19e3X1m)`Nc#Ci7zWP*^S!1d zR1m_o;@IzgdJUL{jrYsg&qeUe9T4o0w7@K*yWQAIp_v{!{1em4)X(34ZtgswiV*Vh z2Z{Oo4zgAsi#9f5$q8jP1#%m(5O}itg0Cy`yM(B7sJykOIXtmn6D?~AejHKVzDkWg{$@3{7F^W)3&(gpF1VO z{GNq=c17e(b$xJrA8oCNWxD5(t5_WVpX@Y198d$t`<6^kN1v{>@(odP?r<|Ri$7rWimQMG zQ~4+<`j1-+KV5-u`R9Qp1WjUl3IW4M`+Gn9@+3!k`mrt``_YTc2fjWO&BKs7BVTOw z$N~gu{O))NH$7xlnk$V@{I9hI2)N_Dw9q4tnvHZSe~YWQ`ApE^;F5pD`Dz*w73dVO z7cuxWtx4#flB?gO!=w8Z+8$307`tCq&A_0;!^))f3JF$6(o9h0nSe?T*0wARLxi=5 zK!?QbJ~_!;{lDb`g*J+pKA#bn&biay&5d6c>!#yjR-i(MAgJTbU_E!g7@=^-UQA~q z@CBz~rgAw98-@3Q^0#qh6b;xLw};yImDJt3LAqOl=n7kK0_+f;@*)JH&%GPbfQ9G{ znhRw{64?JDDh~V~%JHKU&1*@bT7YN<2lQ`n7DE=7fyxThmqo}T<=;<#|NA|tcf%s* zj1_BD=08_fym#BV^z!bKhr03=u6#s7FBHEVYMV7-du3@{VnXzzsRDebcTJC0O3PK@g1GA+AfO>2*##B`) z$x}89c)p>uU59qdri-B-<9d(CIgVy!$Y5;^1!)H^SP)|dVJlV_3%YF^#w_X%lRK#q z`DB2kmG@wBGEs6%LyfdUTzhAiDS6PN57TQfov|=e#4E*=MWRB+9SBsNL;tj~0Eug~ zL+pIx2{K8Ol70#M4FngVH39Tm^=0EVvcaEBO4B0j`g(QN?@wP(1G;2iu6Un1=t}WF zn)=WxZjk9r(nJ3!%6?zp5(521(N#|U-}RmyOP0LM%gzL{t|JPOw`n#*t>>LQeqg7h z)t91222IlX>(P49Llx4|(V&R5|Bt9Mk4rN9-~J5(0-}L}qG=(b0-AwonPmZj;Tj+q znig*5(xRp93nD5a8k(h+7UG7ejkenEUfD91=u}gUS~hBXQ!`D|^4!gQpV!a7;7{<} zhjXsab-k}o)cJD*r68+tJn>WKmoJV`D2I(Y4*cD{ZijtTX}uRwM6iY-4$77E+>ydV zAx(O;kt$=75t+_V6^`F5Sak>pts*&VR2Ck3Lv|-PIcDR`5p1A^!@4LnAhmMwYu{$C1Yqos@I|W_c2{Wi@Cs+e=eDp zzY8^=IM`SV3eYAH0|ImWT(-&W0mRvk@4cH(bHld>lAs~=rm#cccL>OKQ0HG=df2Xf zuK0@fJy;p*hbf5PNrm^CEn9YYoS{74E~73Fq)}PGp!1+;#zBng!vbtJbmksll^Caz zzzGr!9FBF5>dqnHJ?LZvJaGg%(E=Eu3Cf!Mpiy?up6d3mMyhNWGYl`LQEpVZW-&jrkxqREnu>rGNvIItJfoOl zQ4B_3WGN?*!PwVFJCWEU!G$pnd|SXJXhmQyQaN#AD5}QVUFg3#)B&Q-s%^Ue{9w@$ z6&#z_TEFZ4!=vKIQ_@uptK8eR30|BE!fnt1^3Qev(2mfaJNsh+j;_5Mes?T5a_{^P zG5c4X3(j>9KeO?nQHRAp?X2Cpvx+G=JdZ!ANkYt4Rqk--v=tVjwYd%G_Y^m$Z^pda~LdYzuI; z>UX9i)iM1KY$X;^*oObUsGY{xxVeI#G2sX300vi+!ryU+-Ky_p`^+JLdD8k%+3mkiAdM zHfA)Gza73Jk!`c7quxlv>hZ@)o<)?A_TxU>YI42rxcv69rGQh#TMO2Y1z5iPZn$nN zcsuz=SyrNtV1d|sAh2mh2QE+HTbcZ;FS@(UfD4k zukj_zJ2)Yhbh)+M8t_I@v_^75qRf3<^BU7Q#X3v9IkE**lWRK3IDo(;Sg?k<3EQQw(Fe6 zicEWAb}^Y7)3&!apQ}I9821lu-owX}ey1WgY)$3Xz&uXh-HEyv{nyv0+T|e);fyC* z_Gv%|-M8ejY5)3IKkTMp-w*w-K8O|_@5m-SDodN{KYVIl{vB+3^ita1CA=0vdQu0$9)J1S%y3+9N{ zsd3B!719{N>m~v?*ZvDhn7ZvfSou^IC5hh|6*s;>FiAHyxREiFMJzZ2H!tm$bxR>6y1W>QP+~B-7P(f3W>4^=3YO9wVo#*3^`WlO zZ#94PawL#>WAW1H@PGvE$w45N4xYv?H-5LSC{Y}}G8}rjVgJ*L63)^OH6CKM{ zh+~Zx@GiCz=LF~}$|zMS(>wR($NTtqa%upS*+3_^9hp$f;lO@O zFhmZykcFxJz`7q{o%bY}J-0ANjuYU-Kt^()Lxt5q!zy$FTP$XqoW1&;)o6pC@4`Bl znF8l~WMCp|&0O1JG?GS<)~LkxAnM%9aVCftcact=Ig5w~gi;8=*Fo(J)?E#)<4Zhc zmigKJNB~~&{a>cln&+fQ^l)R8Z4Nxa)6;D#p$q6^mLqJBV_0T= z7QbzOw>hJ~h*UEY8N{PEsF18XGP8X}m&1-0cTQe6l6<1{hj=4&F{*0)B=3~ zm<{*bw>#kB{y&KL!d-ruy90jxZRazD>8Q=B@(^KEOCA<=abeKmml4cYzH%7EhVkzy zR_=42!KF#PSB)LI)_c4lUR6GB=6!yHxq)Vq2A4L|#kF{}Br1g46H+F+AqqCgCtywL zY`TICVEeX0X6jBr@LU!d+GXuob*QY^uN`!PpWuoG7AloKC8vsj&g0ZVO90mR&SU0& zd*?2l<+ycc#TvWATH7(U#siuug$Y;~PP$P-IGQ({LkFC)cNV0H8FU~hj;gXiEFHEfvJ(g|s8I>^DR)CMX^4kH z(0T7bST7Vpygr$EceVWnbVlJm*Z>v<5bgYY8iY09Y8@(|cI>%NLcqo08T@LCz?g!o zQGQE{=KSgU`VTp-5cu}v8s`=SnP{B9?WbSguTAsms-5pOm|7}~kTk$bYNlwKfqPln zAJ6=chokGF!^QG%W<@$b)Hr1GVH^7^FrV3{12H9TCVpfdIVz-hG=WeM$|F<{IJgJ| zT&J-NA`H&OG9p&=tp;>vQaYq8jDk;tMG% zE$=8vIt5t|-Eaf@T@kdY;9C!OA?^PdGJsjuWZe>m!VENZTsbrj3ds>!C#stJvv5d;z!*IY~I zugbqNCRUk|ViwLOb}|5T7v{bI@}%YQ!2U){Xu^XJ2jgDZf3I3dy`Btm1aNt24S!ax zaKmg#deehnjd%rxkbwW5j2-_>_izph`O}K=_1zLWU%F;relJpD;vzYb#UT=jtA!nJR~q+ZLB2JYJ1S)TzQssN=<8&V4eHEzSW&2jLFIj63d0`UN+LvTj$DVx+LDlwBZ)kb?gMPLRq*clW|e!vEC2U#!G# z@)ALALT(3n-*}7LRI-P>f}}m*TAJ?TS|H|dWAe-Jsw%t;Bo9Kh8~Tw7oR}3`Qu10^ z!r-=9ctnXoBgjmbLwbjmqZc?xQQ5Erpw=&-7r^ZzavcbGVTW4Ab5aPasYogFSXWme zvRWl!3or?Ah%epGBrTZm8ATf83Cvo5JDCAt$-$-dj4lqwhO+6h299I_8g6m8RUolx zjew%JC;)>BkVA(6%m1kpo&Tp!putsqzB26EoIk&PxBCwLIQ8=H@3X!mzT1AcW^s7z zpwPAJf4m02udn;7&MT_Vu_Je#S^d}AbzY?310zqcs!uFVZ{Q4eeW*+%ubb{c2IGhA zZ(@<8?*IIA_*kC>vB&wW>yB1-srgRl9q%1|J9)1>bn@Ns(l4M*^IG7}#TevGMk_!o zFv~w)aApkqROFbTIb-FXQ^iL|C1)dVSUK7PpzE*`JA+hW8J%@wRxkjQIzpx!Vls{D zqHcH(klRfxu+T_z4ME%R><=K?s-)8~Z+TCh4mmEyWjw&u72^D{E(k6h=Qz=m7YK4p zsSG!aji#{M9j{_op>W_FLDm)s-!p?7Ps-8*^38xZ%M9386fpRF0isvy^m)Q|clqu0 zTNplfnI=2CL2r-bjnOdgU$UZ3+#ynXHY6Rn4^M!~e~i$;MAOkyG--nBtT_N?dXs1Q zeTiMx_zQ@9YG~b)UvRu@3*goi*}NegVr(Tn&lZWIk|m&~(lve0d1I>;gIRAy;`+a_ zXS3}E10cSiQ7)@BA|Ti%-HARmRYho$Q*%%uPY1y#W+5=3KbYRyP-53GuNcPdFY^i?$XFv&cFxNMg4i zg>os+$|gT4mIcM~yH;wodm!IdUp{*~u{ANKXILCM_wRGNT8^%8yVkD!)o}QV-wjW4 zx~Ux5AH&4qT!;a#eiNCJ75*i#K#T zlV{K_23=Gu3B>qXSeJD4P>*L^DWv43N9`4hsVi7~q>F4j9`4 zjbZ_UuLtZ&?D-+@g6mbA9uc7#o5YXcz?I#XKkt89S8JFSF#a@>1+Xj?H~mEtIEQZH^R?yoQn4_B5Evu-0i;^D{G0C9 z1d-lbmWu?I9ev#YyznkI>u=(RgTKCPUbIq^ue*6ocYJ9M=bs`i47TxSYhnHUKsEqn z{QEfEXSo$_2;XOQQ(_hzev%a36NtpY6*q9Cs}D0dAug7!g-6^%va=h~r0JP-TfDi^ z=*Jw$QDskCHz9S#kky$wz-Ul(c}BZ<6e9b8mTagBh~j=I#XTT5_`4|1jK)+%d6JzA zOS&evx>Yu2EJ)BSGh)s3 zIKR0xSSt_O$UkEv;v1}y^=zJZ=`%k}A>s|q02*y@V5|!`_G`e$tEsagHL1q;HIH65 ze-Hl^ITg0`(3>w%ZaGkhN~~{Rm!wX1|8HXj*N{TzfOkxF!f9JZybT`i(TsGvpHYX-2;d~pV>0qE-M z^F(17foXEJ-eX|&0#}TmQAxVTvi#Yc;ychN9PW%2LD;0DlZ5AS$ zJybQE(_5&f0<4!)Q!Aijr;#L`A703qq11}CdCaV%qzER4K}<&JGzESO~;~Gp)}`LK?uaotgg|obl8c#%XFwBnE_B%uJF3E#;F9Ehmqt@P&&p zbzat%_V+p+&o3oGyn!o6FWn6siCx3lxd1HB8uR{gtj=g3MK#4AF=mSy4qzL$ zMPGce!wemv=q#>;cb#+@VteOSRl&?!bw2oGf}gn*UK6(nfbzlVE6_JnkEfWXK9cZI zMIJ?0mvVq(i{o->YVZ!LQjygmZHE3MCI(5TZtxFa6aDbne#KD3SQg{1Z+rr*Yxkg` zY2HlGIHRt&Zz?c^AZgcf(9R?GRhj;PdqTf`+6e7F7qZ8-$9%T8%-(?nXu%J@dhhi& zs^Z)gyZkl2rQ6$9{_XS_pMg=KOlC)Un1DkCaZm6>YO%j#No>aX zrAtlO6JiOAhbNHe@47&XJ4iHu zIgD{e)|VjV+%0)1OOy@#gL5$(;|DR*nHQ>tX3uv(TuJFhbt#5p?5q-F{Rjd(R=6C1 z=c45I6w6GLdJ-l9Td*)c8EY~>H!wF(15beps5nA$3?7OA{-eu%qr|d5u zw5HZ`Ws~2t-s_OhI&bERg&sB+B0++z-y$Q+^;`YBhH=dhloX z_|wGB#TkcJy4X8g-}aroLT~JGRf^+p2$J2hn@>@=cpjl*R6SZvqEBG4Jc66}cW5>< zv|(51wjL7lL7A9LR;c)GDKjbI5-tO2fI2JnX0UPvi+hZi7^?xV?tS*-G_@Y8){j1z zb)h3WI=v>M2n>Kth-zlUJe&k3cYa%fIKpQMacqLG6~UgY6(qg}Mh#GA1l!{&lr_ZP zHXS$TpV^5T<^b{O0|4XGKCcv~MYdMvH~KFYCyMrUSkDv53 z_q1~a^Qe>Fm`~9h>EVKmu1Q~zdw>&S8`Hrqd2 zPYU)VVza^fgj_|QVEukQHP&k;iBaAvqw;ghkYHbn6$I3<>3%RtlU${573Xq-LA(&v z2@RbMx&IIOoTKlj!f18xxpOHcCJ&N!>kKr7?fpZ z+V$()$HTm5r}EademuMULX*YUjkUo%NjMdzkm~```Z~Q(PHp!ET8Cx=gRt4Q5?n#; z35K+Z%pf5(JjkOh2i9jc9sNzv)3o~aJ95PN>D+r6Xu`;;aw>!ek$W9HwXwd5cw65u zlhmZ)J<>8{asEo9A37n!KRVEyJ57R@(!T%hyQ^t?VQ{7KI1yZ+f=A)>&i-EIgwM+#_rdP)VZ! z%)2phZ7x*%n4ucLTwxDXr@gv3m~m|GXQ*XgWZT|@_9uQXh|FP3&TFAiA%}>vk4qi* zJ8t?X9zKGi0IoruXozQ{IwDxeyRc2W>71 zV#8=CPZf#M0Ye?WMG}QTcst~eke2YFj?6pH!r`V($CpjMJn%4b;Nh#`Cc`(5k-w{vaf^};SXO4=FMGvGIR-I~1l2}UEAvoY(gQ%d2LX?A;#soxY?bo&H z9n0%WNGv`C!CuecWi{Va^dnI$k60J&E5mBQq2=-98}Vz>*`scc(&oQjMc%IcHQZ*+ zNlmrKEaP>oeS=7K<3osTm2j&upPF1u3iM)?PgMn*A0+*2y#=?lYv0`yjnAqc-qRQ# zOucB#W5oVKD$$<%71OKR&aBMC0~M3MGxlJl%dRu6cZY>Ei&sSs;{}mvbdu?=J#@x9 zj0KDjI4rFOjui|;s6Ok}N>x>1mmUneOFE*8ryL!u9mY{z)-$ByTh=o&wj|C0-%7VK z<)G;iV*HP)V{m-u7=bG=M1uKol>s>edzvxPCpGsg?sry@R5sb5N19!mXB+rO-)a)c zsy2v@5mA+HK)MoULq_|;TjcggCxzDKL$4}~#DRG#(E#YDxVW9XGHdkRWb2E|%O0&r z;Af5g*(kht{Ya(bpf}m3^7Qa2Zf8+p;2{+C-@+S!)Li-Iv1=ZQV!kG4@t4?@jZc^1Y^smY>fY#LYKON;UyIO_%C;nzA5PL zTiRPNKEXYL4FLlg5_1KWtSc+bR1DqqvDA^E>UrvoLUAoRyOuK}7!C_1>8&aFkmp#U zg1mHT&YUUF)5zatAFX{56U4EY!3*;4_ucoG0;|EFM_XMRG$T~=|8pcC{!hcO__5P| zyf{7QI}yx~P{Aq?>~|dKwqSw=3*>i8@U<7nu&@B9AD`c7-5FPW?(S+i_sJ$`o;03KOY)qRQT)~P*dr2gIU`PhI(FijKG&%=Sv{41a*44Dii=ADBbin ztColq=~z7m0lg;*+z{6X#%7hq5(y0Z6v>^nYKIimGjs}xDMwYF&_*3V>o5_Wjx&zx zY`=aKiQctj9y9|z)I^sn`g8OgG_u(Z-+KP}42PasJCTL5bs43dUE&NJsr^+msu{v! zAduPgn_bGxMdu+fbDJbhss7^|-s%kLx4b^-Kx34LX8&6P=@jJ3lFL)u_rz-d+HaKS zZ)s@y!Y{U%__mTTG_>&Z9W+M&*F-t(Pg(Mk@_#2~tW)I;8%tPT^MBftf72r|vi(ay z;^n}2MqE;-$OdV5rP(FNg5Wuj>)+CjA+aAt&~d-w;BT?8({4IJ zBujw9@=lA`zk)GE3-loyl@YWRl5xKxKxrnB#?g+BQ5cVD}Nh zJ}o#?hEL?;Ux40s92>T@J5NPI8oaslx`2!nYF?`B{zQ7F%sbhRx^IIszuT5@1{H-I`nnhnlI1a zS@g<&`w(}b=@+vluO613yb;EXlb$Mn@IPQJapA0^N2j;`{WsXwbMtnuS^ngqpWpv{ zN?EXW*};Y{Zj)A5!C*ORiKNPlb!NV-r zNwlRoR*nSrg!$>* zoN+A%A?@ZWs_acdn#=5290SiYyWKcyB%v(~8BJ^+yUdx7og4k;V?+=epF!+18WqyF zcaTrBk*VD-NzxupHPW(>DoqRV1f{jgXd)+cfPu^a?z|MX zMZBVCYVUn;?jwz(N~ucKX|i|uty07(K?NEs4VgL+|8|9A%!(INQz@FlQ=pk)-rJJy zTA&AJ1sQt?3|VYwlEP({j)m!K0}{eQ{7TA>-lfD5dZkBDb!nc6EzZ%tpbLFBcpNWu zmj7Ab{Al;(Prt<@WlN_6uc*8Yc03lBpSA0-W=_JZgtF%Ub}H~6@qEEwFy^Uq8)i9s zysUq3|Dq@P@1a8LkP<;@`aMN?X5_V4H&cJ}z%ypCI=xX?$6f)g^xaz&(|BS-?6 z+vb&tU0exV3?i5a5a0!p7g%w1kkCYL+vfsRZaj4{9ns@tsOmo;bw60kW*Z)_C$6%#N) zZRDu_X0W0F084r2lD5_DXoP%{FE`s@4g{x|0ej#839o|?cg)JmvyuY#$BHgbznO9y zYMxI0sj#}}a@CJFFYXPmvH2U9r)ouzpUZR=r^A?;m8i<3f87oM%q_a~O7{zUU-Wf$`u% zY_+X~z?I9%whqW!GBUk(9S_DU(nk^c{WL1o86!+4%gFywE^Qz4#$3=+tcjL)YgM7Y z=!3)(vBsa!3L*v3Gg}1M*MvzgvjFmGsAxzum&K zcHE=BiP`@5q6Kj5F(0E{ax+yQrC``zgbpRovQO~0q1+0)eT(wLfXE7I{}NZm=6Ju` zy7)ag{@@dG=H!;>3Hu|HgVxL5TF=QJZ%`&rW}o7{3L z*?MM1DZ~{7g7-|8p#*oVyS9Ve>7z$Zz_iu^I;l!GK!P_JESgk$q|Q&+N(9|Ql=`Bs zW{beyKX=K65~qk4t+y!oFyN6Kwqu7m^pgdk1ye+wUgwYB zsVcBoKGt&ri3GU7z9n%Vf7)>vx#bf`BzzokZeoeQn_>Dz`F4}jWn3V_eh?old~-P| zAM>zXG??%|gN%iC@b~AVt-vYAZ;lIZoJNPSvl4<)JO6kmv~|*l)NU9KaZUA3sJ3FY z8p$VM%nn-;7gy(!ZrLJdo38yO5WL_LXtbMCcXw>W>+)v{W)qtfBt4RBAas*P{lP@9 zq@R`+8za$>4MsY>pKLVHW4Nqts-fvZd$CKwF5@{vofXc-%1%KCs0nfYk}fEcRqIk3 z*D+t!7T8p$Wb8m7-D>6j9cm5@-#%vFYdwQ0^2++>D|4*q^IpV6;qa=g<=C*6faU+F zl%eKVcl)vqIm-TdPR;NOOb#Y5Z{Ek~hr55gUhwbhT@9Qd;ZI^pPuJ@n;suSC))*HI<$#^P;F1DJWfxTa`dn0; z^$G27&$d!40{`X>_{A=R_MlIC`d!*^*qc(zJt>N-m1(`PSPY7q=g=X7xXAq^ENu4l z2VGxq?^(5w5m7BoWVew9z!p%e3jD5KV#quq+*5HOOPV7H#PF^&G8Si9ZziwKG<6xQf>ybqry1%$~Wu1FKhg65&i;&1rfH6oKl|EzyH8lXsa8O$U_lTrK78`yPczEi7Wx&3cfCnCj+!g!wjI5s7bmr8TkkG=uFY(R0t!a7# zLVo&dN{D(vkEH}Efr1Ji_!oFTByr|zeW@1JTpvO;U+NgNX4cLv_?>xsjyQOtZwG^D zrVL9Cx^}RJIzj+!O1M>(s;Z&32Fdav>X{8c3);&~YPwEjtUI|7QJc$QbD3Rz6KEl! zdwV(?^ha4LV)`8%(>#r%bb175s-#e5)Jr=evQ;Dm&~5CP>2jvi<^DWR+ammvU{p5^ zWOSLRBpKivizCy zcRUd6bLAHYY}c8q9Ci+jFNXnyD=m9Z{(QaI`NhLmZ8zQS#l4E$6ST=G`j<_cFKi%R z&f}Dy8A;*`ivb>?D!E}%kLLA}(;f?wp+7`oaJ#)1+umlK!791XeuuD`93xaB9?N6FPTbhwYiQxQ{6qQXTBmEpF z1Q~$NNaY=JAdzP7sX@)sD`4bBrE6uqj1Bmgscqm`uI6An_DwO9CGD9aNBR}kM#$+* zGZ~SY&j`bWtGZvr>M(BQCS{UVDPAQshPYa_7-IVJ5=fj`P&D!DzN^2nx0f#rB7U74 zyCFz-d^+gTgRhDXcwoTLtbteFPShb_4|t4gel@m6f|G;_i(Xfb;KtCEgSzF&OfsF5|8A$2}bNLy0)U3$`OOMXRsbkBIA zVUO2Zj=e336zt`SVJ#Nd?V6p9sb9z2eKB~`PDx8H%EPMv-ibo{+Wgb+97;JXq@RXB zXyM9#uRB9FVR7$98Ve@$G7F>8p!35?&LGL^U4v8g{yW%RF@5pf$cR~;u^5d}VUQFA z@@misY+qro14JTem-XfOD(+0Hhw|Rxc_X!8KOi01fZ)F24XK{kcLM=wu4tVBIyiOq zo9+x`fDOP{i&f;)P>U^2R^zJjnm#jvTWa!S!A4 zxq}MA1CKDrJoZ-pTp2D;-jiy)S+nfJs#|WT2i{jA8=AM}8C04OZMpO0Nm6M5*(GJw z;91&1(vL+$Spla$5Y^$5>)E;Q?=}Z!NP2vCBG(9(LG9-gZ5`*hts@!nA;=7KQ>`a` zl-NP^*kMpypdpPDVrv$2m6*8AMm(kMB9FN zG8H#eNF^&QTA&7q1lJPLoytHIkVhe40=u9IT!U;LZ)BVW1I)sdcYvI`NVqFTb1V-X zN}xtJ3$@UDMyAn=+iEm)_;*364W$uI1xw1Dt^tmKQx2pZcB2EhZcIlKUEi*He(2B4 zo1)oBC=UA#N|8o{hR7_hb7Rhk<}O&;hu!Bq4Z0iuoEnT0NO1!Un=I&dMYOhvqx$24i#(sbyf- zY!(S61OnAyu+GD`2FWSV>-KrSICC~*tNkQ{gX2JM|2Wm@kTFn#&%3!=)($}B%rCnx zyEK9HF{U5E1px!KRY|pR28)B?Bp$}7OgLDx$+9FOGYbcZdjVIky_BEW3fItLbQE0$ zDL|C>m;r?uIoI5_dk*Nza*)7KTHq(^xx~}yBh_6j@~VtQo&Pgw(Er;?g1{%~$M4OD z^)FaX-yxsB2L^44U;jP%`||ILK&2xbbZrp7)4%h+yIyH|ob^uCi59=u_xT{d?o!KF z`~g+yiZgebmb357gmRT3K-sP9o=NImCC5svoiBO=Wj~f30QlELG(=Y6VKB>scxLWt z-_1{y*po*@sAjB_3z|Ao-dgTZUJnyjO7Pk~Pfi$@B&uj7(Im`=UNyOD3Ak5sagqv! z{Z$ToZV~Xb1c#h5VBPj691Kkjz4z+K;g< z4u)j$;>k+VnY#+A8q=<$`|LYt90m$W`vE}KsEFmI%Fg9Sd?XG5;~9+ksZ&@G{i8JcPF!*KXy%v zs-<=0v}&ss^9DDCAc0&>DU0099J9v#XqU3!aUl$-k!)KaC#m&{Q&a)l63!Jv3KY=d zp|Fe?pC_r+PcHPOdK3sVRhclDtC@qU($TtS8YZqLlfiVrt3)^n>Inn1Lny%8HuUoO z;|yZ^aUbi|m(Q<_&yX!o?TI^ZeOL7EhDK|g$k~Oi7CHZswXwxXF=c_Rs>@0!lFQab zHU2xLAStaBSx<$3MqFqu=J?D#i@bB*e{Mly?BLtXom&Xi%A4M@t_(j%D`LL0-TSibNJ4AFj9jUe0*8Z5M-^m0CdMoPX1yI#J!#<&TK zO{Lo~puE-$%WQ2o5R546o`$LIs*B6uU>Iulk>EX|Ef>8~Hso@Ck(DWkXoV9OsOQS}mNcCp@;_>sNQR?J%Yd5yFC*>dv1xDhb08&BY)@{8+8xrq# ze)l5Z^kD7G!^!2kse|C5^thJ-4%}LE;Hqu1q}OM6z_$x27aba-5~G9YY3f!<^YiAV zp~{Dm;U?pCg9l;ITOac)VvtA@4My8Dy^m3X{uGTE0Gl;kQ97ezD&B;R#N zF1L(c?V9eJ6x3`eJQY-4Xb%{>lCYNQqv$MjZa&e6G_?HO_b-T5P)`bl-9vNVUW+TX z`}?O~@Bi+YaVgDX0~zqAe_Z!RitSX&=6RvwV;$RtZJB zQ(c~Sq#TxIw-yXHViZ1&`LI@ZWgGDi1GD? zuADU{~o~TTK824?TQF+TWqXZw7UCTKD@Xdk?^}?;f5q`1>3Q_sN;EoCuNMfYn{`D3$6wx9ggxh9_ln8(#c?Z~b0?~x71dVxa>L8X00HGc06iN;}tiI7G zbV`GAKVGlxUkmr6y1NUJ(ISpp4WOQ}8Gh%2(Fskgf@pxPS@Y30B*we19I(iqI0_NY|0{ zB(Qs|n;2_AOPo!?AkUlebU+Oz!$q{bI}VE`U==}vnG_w_&ty~4ixfEVC7T(;r%L{M7;drV46Hd1nVaU9E-+Gq zty_%2dF5zduLKZeYX@cYV~H^9)8H~-&F*4T5kOS+=XKl-vo%?wYqFWqc04VDw`Sf_+u?Cu;pnR6*mE48$26^9cB|{lYxYnNLsae?Bzl z+mhQ0cV&Ocy!TrY?UaE_S|A+s*7+T}d;?j93D1Vt$mY5EIOk<07zu;ga zg=_83os)VTdR1efC%1Z`mNKpEyufr}flVK1Gra-JCa~uPjh|!@V{KtgRB3EyMrs_f zV$?5AHNjzVLAnTd^z|DFrsm#xaXAL=Zlwv7wE5TXTG`_VyR>Kk+C$9rfR3h0co-v6 zEr@PX#W0PE2{9JOnD7Aub;#Ja$8Z3|Nd_9uqQS&{d8;0Rc1?|Pv0*!xi)gj_M*YA` zmB?%*B<5-!Duyisd`MBVyKp#kOMOnWa!0Qt%gGdT^Z5E?z9DbXTj*~eR#@!0jgC2q z`T3e~R_m{AZf72KrlZm!DkPf)rO1KVS1ba)ESYz7YNo)4x#6#!ovY~Krh)mX3HNPx zBb_|_X)9JvV>(vD1nZUi^N$lU3f+_bZZw3+z z-=A6_RaRNQhUw_dcFRI?|~2z>Ty!iF#O?JVAgv;to;3HTlIk;EIO*V`GF2lx^1` z36IcFg5L4d)_m8VCGf=7%v2U!d?AxlRBC?7xt5`+^_qx7gi(S~5L6x|yc)76wr5Ar z{aFQ^+^Z~~j0J(_&g1(EJQv>0`}JJSj^3=Bm!tuUSxlcdswX%67!$+RSA$DYneVXe z!I$DXzMcPL^{z|hp?5CsAH0Tj)h8{uEsXT}uzLRnhm$b{kTN603$!{t{(O~<7~1q% zySb(5pWy_KV%u=R9>U-)&2V;bkZd66Kv zm9Jb_K@I8}7sVR<;?SdHc_et+vn60HkjBwk0~U@Qw@2oxA_)W&*|wi#3&(<|x~O*j z037XwiD-&xRkMM1gR}rD6VqQ{2_9&O9)kdB{(>D0qMUO;Fj2NKg(e=+>B+zHS^fk; zTOos=@Bs&1@4)J7lXK>dnYEwXQ`QB|V|fk}An;yvOUD=8jGU_R@q}4Yba)Ir zCl6_MnKv^;6q;KV$so8~emtj}1=uY$V=ZOLwQd7L39D9}6tfOd4w?+Y+%n&?pl*7a z=%l)=GTFVTul5*rsELKZ0xQKhZ4%b}Ro&WaUPrNWWZTa!cRaG~(@;)oaZj%xmE>|V z+0&~RzHm+G-l?DZu%yPO?dnnD<4YM8U@AB1li>l68*i|yCseAS-xIT||PWfzkIYcoGgVncP9n=5xN zc5EkkzR*QQzGxb}V= z`~~K=6-dzGIiLu|CK8Kzejoc{;M~?wHmpU_Z#ZM+LQXIgCdGQC`DY;!@QSEnvrH<` zpH|P9gN1j@zBGq~v?+_Okv8M$pmM3FegI98SWlPs~Dq=>*7Ej!kXM z%7u2V_-4HQg^HRyJ6rZ9d&{wvrVU3rtH9e3_gOI-#KKzat$cIZvvl5cu%vmL#oo@f z%}cfO#v6?lA4;gM(FaI)NV8k%J*-`3J!S$kmF|6JQU)+Zc1`7U)T z=C1RQXR>{M1BN}=4t1H?Md@)N(842cpiA^Z&JDEU0=nx~58uKnQQQ|}=QVY1)6tZU z&FnY>6FgDCn_0#~6h0#d1TqtF5_dgkcA`F8(r@ToXvGx|UEeh~?+)}5Nd-5j(p5+> zEKoqtN2YPS{ZAUqn$85_;E;awOnaJS9u#4PGIJ%S00i)6CRWU&XVFUhPt-{3RH;Q^ z2MFG*Pv%1f%Ag-#?-drge`oz-vITOFZ}{Tv-x|^WuJ_`J@R0O5AJa8ni`yalh5WGd zP8iME2rI>6T-+iL)uB7z`$r-1Sp}W{Pzi?miHpxjTj8oJ7C+Ej&kLXVeBKr*q1V*B zp4`m0`uumjv0zUrGyXY`%eQyq#jxFWW%?hqVg}PB|KffC80!0ne@K-+9ha^Ls~k69 zQ@npaxIXpGqYa0#9~#q1!JCdyPLJeFxP{bX!^)PZrPekJ0=3UdJc~R0#BeyfoutB< z+hXg)?h0*KD+M~HQr14P&%c2A0Kz<(R!y0H5^>waJ(^l>lnQ2aO>5>Nc4-Bl_)nBv ziGZt)zzGShW<>yiCK60E5DX+I!J!b+y|i4;%IweWEbCy)TVw$QkernLKlNlNYM8c-}&F!-$maOzpvfr zarxt$8ym?ncPi+PF`GXy_g(w(<|sY(;S-ldL<^hCH#9F3Ca{dNBZL1Iyi}5ZgO?W^ zJQrqB|9*k;pob`DsiJP{*2xqv!jMhfy@?1;rZ}!nThD%AllR=ir&(3?s41 z>am=#x-p z+hfSDebQdspAJcO7w{iU%N~>hwrRrtc&GsWa=APw2R*d8>uJLBae4RJpZ%qLzh3H> z{{FoI2d8-c$6gm_KH54&hm=3_c+)6-EV{VfR%d>c8gXIqhf7nc%e9zc+qoR-anSd; zFa7f9)w^u=<8$Nwb-8O^BtBeV5qG4+sjlK*4Yo;sP{tmRTtvZc{)oSLH5OX=-~QE+ljBvH%yNnOc_Fa%YZ)slCcx zrM4UmGaEL4r`P-YyFS;&ABR8qgLB>IzR&%cGwecAKSw;OmiO+ukvh%-J}V>%DgEGH)b@Tcz9C{z*B)52>k8`a5>?xv z2m|CP66KZ95Q19kQ5y<$YFoHChx;@5VWJw9rwZ)wxG{FC%g%gH^qkY$nT|zq?Du8n=StrgADHySS!-DqPg^q5`&kh3fLj&)uoko z(^B|Q{6;12>Jqu+34(2nFe8tH(BnSQ;Dy%rKvEUJseQ3T$*I9kiYe8(vSzHANExMH z4+;lvqSj2Q1Dy+s`7y2WA-ZEvs)V`*Yx&v{jjJQZtgF2We+&Cc{0z!|BdE}`3s1dn zIhGI{&T*#Mdn@03+Y}C8`c%6vZtu&q&5gUW^2vRMy~~3D%-_cd3d`ojfi}Ruo65yI zFEAuD1xVo|GmVY)Q!UM2y@D+Rgc$D0gD&E+1^VG^ zjJ{M6&O;~t$j2}u7#BW?4GhHn0@^7LE{ny&Z#-I&aC^CEVf~uwxLZLgmNu9hKvTBu zrNH~=g8Y8wuT;pHkb|oCt&ce3p{{<}v%A0wf?R*JTsb1obrL&SXL9Rfk1lcypJc`Q z7AvTTRo@3`bd&?mD&81>{?RmLrMljF)!~L)FUY))H5saN`x^-<`mcl4^B)hOk05$E zv6G&EA2l8wy?G;yGo!yR+x*o&WI6-bL(IiwH!7tSvW<%#x>OisHFQc@LEkhu|0a(U z{NOgpz3rE%0>`|8_jZ&bUWtHrF$N`~Y;cSteht{2%M?P}d&^-6J>@LmQ>X$kJD#Nb#bae#% zzEM+1^dF}iffE-z%5QckE8KMFZ>+xNGQYm1++>SN+u|nIY&EZvT9v@gj~1@`Hkbqy zyJ^U2HA8MbIrH#D{cwvkYV@9Ymhpko;qw%txggVjlq$prW|!kEqOOQ-ZNB^H$j_6jVgs+(ttXPJsQBq9T& zD71^0CEF%#tf!@^SO_U#ne!Q`;}{YZI`&Vqqp}T0A(a|Vr{ORP0!*e4)+T-OFkxa@#h+YxPS`>4F%O6}b}x_hbu zH-Rn2_dduE!N_@t1v<{I2EKY{Q{vO(GjoD$RA6f2t=FsfIOeWAj&5@NT*+?9$eTXm zywl-8@J8x)kM`EfVx#psVj}>Q|)Qpgw{iZ zPIBz}%zfWpDGm-qcdg#yyTl#{dr1+SibX}{gw6gXJ$k0_2s;#j9_}5cRH~#CGGKuD zSeD|R16=|UAPA@)V-BLDdxN**F%5p`lL4Iqe4Qj?mS+wV^Sh)x8B51Zmn0Fw6-j6M zU+K}GhH8g!yUcXR3p zGDI-vR05*ZE0@_-BSQ%6TI3yjA`L=FpT*Dcp(2$rP;N>W0#pe>B?Vn&L>N0*xoeTx zo0mU2&xSQ(SHDh*u#iRzB&Y-VQ}l?h;6CVHR;8X z^gyId&hGVA2fNQ3Zd4w%%5bYH^L0CdxOrtj{p`BJk}D;(#iy&fE;Y;w9KUl;9q3;d zA^5E#5|9;uoWib2Z^u@zY;n>zPjGh%Ts+XVUQJpPXTVR0pA=j6? z{oR*cvQ%X+`rI{2dtF?bY1rLe>>@rGiBLVI!l26?*98qmOC=QIjI_$neKQSqy|11q zBStfAyc#G{p%jcx^lr-Tb#(%RIToP^kSiS02|}-Boi4U83%zlsLL(v?zDUScT4coP zM~mtr`~1SuREvBbM@HMO{<*o*Xqcml?gva$|9mJ@Pm+u8-syM}*dN&8YE}VwBVe!5 zsS%%o1D#NaQ66vC-Ahp?_PtTl9$CNMVX0zhcB#yI%;I6@wuF&2@%!%`2s2I`uRL>e z@K>vnl$!&JsZMe`6pvlrX;D>Z7jxvhaQ)!L`$txA8*S_7ClgoN*XQpb4>8W8F?xAD z-Iwz$Ep?Lw8>=fU@B9@22-T;%pyWHlEiF2WckWph9Hq4yi3$0)Pczl1-RC?GQW0D= z*hM>pCtZ~&UR?a%405vBEhs7fFjlN_{o$;xu!lGyb?g%Q!9d!L0M7h?;Q3%PwPJu$ zevcR=DBIE)@MKXm%LL#Dv$#6)T{EG}Y3*l>#^my)tA#xV?VJ{8m^4LC$*#2aRFg_) zK7_d7YFVEbe5WzEUY=)gVDn8m4-Hd6AE}APae^RlRHxsirEngwigq8kzh|w%y|Qz- zXw|7x^0Tf5aieW%WplY+IWC(f13S@CmyvUu{SKK566mUin` zgPR(kqRVdYcI7F-?E(AmXP!PkxG!@21Bg-|eefpycdt+L#XZmeLe?Rz8N)^4u9^dl zLz^RrQbV=F&eeUraMy@UoW}n|6o6h$>`+>*iLgi(#CVqHYaCW5mPfLX1wlH{WGe0 z!JZ(kaSj)ashR9fJFY{O%aP}xow%L4#kzJ#Iky^N5hJa<3$5y78ld;eHE$|)$8u9s z%g!^}_eRq#;=VpV`FS`i=-r9tbw0f=FRB!jXv)_MY|hzQ&9$0CT3Wr(*q6A@GADa`|MI|DvTpBwBr`fNmGT!iLe+exwC40{;*i2|Bge9|JC5~{E-OXw ztv;G-95PFX)E3Q^@XQg!css6UVA8+XnhhJ-FX(cICm}{tsaNHxo3ROo;Bv=i!WK_T zB*6eSLf&bUUbEuZbi7^fG>65))%l>YI<}mrAd@~22X7>ie9e88&6l*o1*qlF3C z+%n7If}pT=4#YeosYB6{>EJ9&g)Kl4Z1YZ3I(sXU zMD&>-v%-)50z{gi&>iQ>aee+scDrwM-B8-MBJNV+K(eo2B|3llAH%M6{a4;TG3O(1 z4ThIA^%X80y4vI!=2v?v6Sq@E*L>c1FguXjL2-N<`#A!KP&HCKQg90mq_m%VTdx%w zy!DuB1+U7@El_ifFW(9{Tk*92L)lggaaWV-&6^G92R&A@H7l@viR%=0u6c4vxM^M4XyN-VEw~xfP*`SXYYfHYt>| z#hSrRc5oVG8kt%tFxCrpU#KQtU&j)y3hNVlaa-g$TfH+ z4VwQsXq)~T))kUeC~<~YDZ1%f(f8_fxdjKAVNyv@S1CU90a91w93M3<6Jl^wyE#)k z2&NKdOvFS-={P6n*(ri&K~)%#+NGQJc6onZ?Rmfw8zPQBv^f>EWmV3Dc+u>}!kpOJ z$&1~dnbhEoELMlYt=}iE=XWUX@24;izQN561+Ep8ZT$BKM}-*)|6KOX!>*^3x4uBU zx*Zy)iMD$fvcE1%_Zz32fvmpp)Z9n7zSi5l_C~+1j|j5yuG%%xgDQ8n(cr|)o-{r zseUYXwDHr9TUz<0MhnmO9yvC!%6~vgKp{upUk_93&K^)&4aJl_Szq(t;T$4F(K$?a zb8xbAS?;2C2+UM5zSHXEBBLqdA8WD5D>2yguHAfmNFz7ZBcd6srgjP)L)d7bLh}j` zFb<tPUg`mm}xSQkL|SnocQLge0L;`}jSUky!q3N-3Q4Em z7V@>ZEvR3LfJ~A$F#rWL)`NF8SFn{I z@ofFEZ7!u>moWdr{QBc+J}haoi&)&qjBHB@$;7Z6^U!MOU*l^?-DML!_8rqLg0&`4 zNEQ1_^M7^JycBcwhpwt4_rfwt=ZbZzM-3Ee5)IT2!Qm+PecdXU0e#dsaU6cC;<`5g27Aqa2N*Q;I4@J5t7gt1Zv_;vXl;0%Drse zKpzu2cMVs&K&qt-Fo4u|7>C2;CyDPL{GeY3d8oHu-c+i^w9vY#NGh+n5AbkAV$4hc z90GSj7XN_}n>TDOi#nxIU%L7XFbuohcj(@Q2NUXBRvoc4@_ZcM?^)WraLMqH{{01Q z?Gst}v@K_e#!l?43OezMquIf-_sIg<`jXKOgIwnD@lVlBSD=@pChujfUl8wyM9sa zr9W5wj~Jr-^ht6*pZ{wI+7}3}n*HAp+YOAlVBg9eS1_=+!_GAQZEr`V$>II{4Rv?U zCmw)vjHcHpLU!znDl%gT9a0D@t~FhD%Q31r2&5c|?MXZmYpu0hasH&Njb8cM?o1Qa z886y^8t_VZ0R&^V8ClNE&F;F~;k`5wsE&ilKX$^zW!Gfy@1~2ddq^x^Zz&>7k6<7) z0>00Dru2~M^_;6xpUn(i+zUg(jI5i`Jxe~%YOIpKbl&0k_ClY_&7qZP_6ubnm)8QG zMjx*bFrOx$j=qhyME*gUvTlvA1FDZI?;>9$A_j^iK%#u~=$(3-KJxlyyIlTmnyLAB zLau89)sxzIs_ER_*T=^go@f4TTHPJ9UnPkBY3GKy*^G|`6~7Z&|E&v=QA*1Ve8w|c z+4bRVJGf`;USzYmHS8?Ebwd@>iG_MCrVxhqxb{F)YuiL?d#ZEW)I8yQ$n5UjTb;*0 ztF>6E^V{vj84XpxNEbSeVV6Tg2H8vXsaj06^xuIh_ zxjvn`ZJm`QyLDL97{$#TmQV%-(IJP=3MB!9jpQMBl=M175GYx3}rsfyTR&oP8}d!>S1D=Zc5FKdp0U z(Y{TzKli0#u6E-_B5TWW0oV!d!ema^wE z1aWcbZBj`8o~>=E75|0*f`NRx0z=Nz$-+m;HOYv%i|jx2k7k|#U64kMBu4wqS(^6j>$D6iG1NIuUm-iZ+Qk?QyYBNr*o%h8NMIIN_j&>^ zxU#?Fl6-b@z>6e&r&e8;os$y;0y6~L;JN%rFr3!K6M7^tcZJW^*SL(Q2zYi_8bb#J zw6YRVDxG{;Pl!jd?RXKJl&(}(3|Jgxt)+EB5PYg2-Z{1h&?+~8xyWlp6Z?jBLgNeq zQdH4CcHU79(rR_s*|8m?4pwp&hXj_>z&D3QOp58j zgEZT;X$#`Oy&-cQmCQ84&9;Bx={f@!cm6v3~<4rJj58%ZQM&g zurZZKz_YS#NVZIDolt0F+neGiM-ghFX}Fm9S5FqQGF8NkVHl)2t-w~z1t!i3*6Fvk zc!1M)+Qdg2)@GC=bq(dz06~`ELY=%k0nfE*-xrt78|_NV(zrD71YklK9H)hLSpM#? z^w@l6((D)#Mk9Y~f3Zo;#I8}3kk5vfI%CXH_o;}(t>(zK?l%2#uZ;`qSJ^(xGZB=e zygy7M5Zl<1%{JF9HuWUrf69{Cl-<5(J#$?5@r^YJ|0HZ#8vnR2%UP~dfU-h$$%?Vs z7iOLATA1%mxqKdTVe`z`4akueDv6q|3amc;H0QbA+SKb;J{kqYE?FLPxhPpXZ}0n^ z=}o6pkrc~qoUXPSny1ZW6E1_Sb1UTrFaiZG@ZlTu(lHk8-R#Yq8v#S6ep!GGI zpI{fnLr4S?r_YOC-BfWCC(dv}3xFL4y&*J*_D}$%)J309AP^8n$q>Y-C|p9AI$4Z{ zAZdV-WcI}LZST3qJBkc1w7QZ78MG zrTcx_S;Go!SpJC(wg=tz_0x-1g3zd4AEUa166^PqAqRfjhGko2ezo6NeV^Z9_p0fN zY8g9|vdQrkbVtXTU)#>WSC0F*%r#X~R(-{-8ZmgjbKZ96leMj92L+z~c9HP~Y8G2x z&eF>*Q+MQrGuUJ9FA>9U5rO|51yO|!K1a5Pw~@SuCB-*VQe0!)BQ*@ti@ff;BUcb1 z{^g$i>kyibEm|VQD)SMzI*S8ZJyAq%B$_%8n9wZ558QpXK}`rkbs*d2r8xnkQLQE7 z%r8F@CgVK?-R=iMH$OGJ_H2$hhdzUOdF{p3j>35 zsh32cS}WRfg~TRdnds1I}NUn%+dom^+ndY^qs4qwmK zv>tx&!Sa_~6BRaVwSf28%}@9!QRXFB3wmlfs2r+GUK}1aw23$$z1K-jJgG>K&_h z6fCkbreC~KUrJmdIlvXWU+WdM8iZ)BMx&lgzlb<=2>DI(xV)(Y$Y9$_)uO4PxHuc% zRyz|Qv|t#xSgXb8m1;TlhK$z;xphvsY(5G-9e&@3g6CRz#cOd*?)xwf%FDli%GIRt z)j3KOGx$Ohl;^0W(JU2t$qCwfYizTjQ0G%UHCku*LJE(7D3Ao8H=xYmOt6bY{QSf2 z?Z48F13;Bj+9&X+dbB{g2#Hn1Ry|M#>Z>HjD)+XQpqTBSpDM;rZg$W)R(R}CRJB~* zssNX-gW@$8Zw4HH)vu#?A@J*!hNdp}qaCw90|Z)Q{aC}}IZuMhjUCR^qI(XQ7VfFM zv!G!s_#+{ITLbK03HtXysCC}ghqv#ST7Nq9?OyM!VE)jLvSq_#+!+zQniH;JiOL@| z9g~d}2M*dy7Pw{S`?o$+Hc5$k5R>akH}5V9!QTSJk_U-fI;E(J~wZ1YXp;dboC zrPni6isH;4xt8Bgyt=@Ccyn?!=$$jx7SQlk*Yn*TT)y9QtLx-lMvXJ`;m2)S{r#q4e`_g;DL zY`Uw)E%!9@b89vNri_UIG{`jLVe1-E^tf1Mi!##23vJ2-HcPzP)bT^#6dtx0?s<>d z^?FN84Cvti!s)L{9rl$g!=V$AoL?x5`wm4@Mw|&W6lzIh@m>=3!+eLsE5Gw)T%8Ba zy22?2tWF<~8=*Bk^?#h3lgR1}+?3^TPR(Pa@Lnts?)$3Lanpip?d#lO%AffBrsE#Z zLPbYReDauDDH4Eqoua3wZQiH|2|MEj2|IX0gh}xwm+fxZ> zC+DCGGfS4n*7m=SxtZ@iSHHJn5dQzdAA%TSAaIL;HB_pSnMxe+t=q6aTdT z+4U#PZEI}MpQ1kof5_o>3%B;Io~Wp{BR_onyZBg8Ou>Bh-ByYdMi_k~+ubk*$EvTd z=aMK+V<)ry$--Drl#!NTvQt8C=B$HY2(CuviuunFT}^F{YA_lKQ8L`!J&|q8H>)|l z@lpQN(_IY~i!sG-2EzLvhT)QLyqMk8Fl1ubX1Etq@wFb2&91xkyP9S7kd*v=!CPys z)ede^d43I1B50gvONAuGh_+fO_licjwtu}!1y#P2BM~^)0CM>pyGmM(`J87qCS8=} z>dGUis&3=$b5>$$g^qJ4dPlBM>Qsf1-cJ_io)`H3{QZ5y88xjAo!cY&>(u>qZ`Teo zeg);cI9E2r7&|q&qnLHfsz{vOn3i2MP8=kXs{$A|YDe7uQNG0B6>LA_7S!2P7BOfP z_n*-Q5?J)fN^bLck8ULd-01w;w3OtE=FWiD>v_iLspyG%!Q_kUhA@wBL5Gk<34kuri~VUjn$4y*N^;Rn5nF& zYbAp0o$DqUBh%k~RX+*ZGxUo-|M~IwXI4+2n|NZr5Dq~ee{%iWy|R;xH#RxX^KLfO zja*w1T#rxM@nUX6b*^+rQL$269cT$QZ>ic99(f<`N%5Iu`pUq84q#lm=t*5@!?IWT z`e}|*^+n^sfnAyzt-%|Q9@W{XVxrFIWA~!9(qt&IW<>$VmDdB-$k}1!l;jca$+VYP zFzf}#G^o(fU1F)&K40LS_V5XC&g&VqHtW9_OwZkb2j*qUfFzl_p)3!Eu772Y3*Q}{Ye?m zN*{b{92%9I7wrVr<5e4ljkngA)Ib8szjMC~T&llaeylFbrSiS^2a|uJ_U8R!NPZ~3 z>R)bU7p}$60&q|qS7=`atnb)dcPk|R{s+gcM;TQ^i9dChfL~YZ@6;_TJNc7jgCqot zBwQLEu;fTMO=mam&o0Q{G6$ZS>5uvvg8CV6qZK>FC8?n{wWTYpgR%jg1sdNeO_2K4MNZm#(Ev#sK9ZJ7Is0d>0UW|b} zvFiH_8p?>s76^pkz|QnYz@u5L7F(wlqQ;n1_}4XsC_8@RuAxveMaOVhI=)WaF{n^h zVNg&&8@mf@1Nj?flse8Lg|>~kvdcTH$vHyT@}t=)mn*L3nv)F zNHmkv(QHz=k_{8`6frE?F}uR;Dey^$-8^vi*Q*$WvZ!Z`bZ_L9muagmQK{MYmRq4S za>n0oKW28fsou}>F1ezz59f#cXa>LqmNu$Kb6?GzTB9+ z+3Y>1B0w_tJ7|CFlP?*`#`6vu2KM&~Bi?3o+9>@4kM=aOF;7*Jo9)C!@n=SZ)p4z*16;S6U*`ZgcDej(uWzh{B-sS_g@~ z<&0Xs_)r<-tpc9@qT^p>5z;qzu^{o~1`QyVoxAsBQuvGP(_=3t4JvzV!?=b%1C3*2 z9HD!gQH-!6(l@4SIr93O#)!k;?jhT8`r*gP&?^E1 z?rpP%JDl1I%V?8IjCb*1MMc?;NEo-Kt$dcj1*qw$QS z#cwoWkPB(MBhES@IW778{Zc)Y^_+>SarZA0G?E%>Ok3HNIS()0H>l!qzT|JQ%+j{4 ztuh9O^O0J+t$$$!!8v;RSbD!~00$`$J)b=2B;1zw`-rPjGMr>v=61>3FW;yLopBm0 zW6q4Uy`EjSIf%aTI+ifYsY}j|tvkS^_``R%Ve_waDv^+RAr%)|cnR+YLrrb#NipqSgz#7p#sUZrj;w7Ai0 z@_)wiHDyYwYgDP^p`};TFGC*GAxm4y+o)vM)n+8UB1==L&bA#X_YrOdpd7?@rsvl) z5g^OR$$*!}>(ZlWa6phsLO@s_REP?N0QCBP07Gpwf;Y%0Vi=GoB!asb4z5lBz$`3M z5sXG7-T9EIB)qeBLfSu|Y=MJuF@1KYgfwapQ6v;PGHDoQ3t|R<^D;iJRv$wo;Gt9) z*jEMD=X-R)XS!{xb6N-`*2GXILjT(J$OiJmmo>MGdc5pdzDs*=v?OjhGO;<}`fM}x zi%I_Ll46axXGN~ffgc(lz1iaEEXXw7Dw`RNR$Y@5#cx`Cgudx;^IOWHq;`mnwBRH< zX=!-m@|&4f^2{~aiQEIlP4~OrK0e~`{z~+r#VS{>@ftmaEt^pUraKYNLqxEXf{x5OqG5%P6o^%RcMx zjGi=CK$KCENfF?)0r2t%gPEE^3ij{p7-Bb_{?w49QA4SjRXoUH)Uu7uA77nP$!Vd0Aoq_ub$xBTkQ+xkx92 zsYQ}6e6lW2MW2mi9o&=+sFjyPB2juWWrtOTKA|3&@G2ShJV){Hv2fMFd6_8-uC-h> z=f3K9a)$Q274gKdWyKT>$o6`3%bu0P!MoIb+If!TLdo79_Ia3uWislJHGmyoOEyMW4|{jiu~d5eo9R?l2oDlr#;m}dikM3eKpAv$MC%uo0r^H z48k8H!p@iPTAx?kdbu$RS_bX>t)XrJ^)$zO8quoUiAY3FCFX$)M$m& ze#3x^H~Od_3=7W!` zuDB7)iv$|VkZi*ZVUq+%ceWu7V{En^EcW5R%&|&r7C);r&W)kX0M;A~BG;x_lr z2OIIa2+c&ERKPmvk(n&^N}d9G$rO@ArBo%EfIz8$7E%t&x_8f&tx1s8O^XXhU3^_9 z2Hef{g7$aYf}K#VjPkRl|BQFacgmZ^mp%$s{1o#(ygIU}$#3Q4faQk}UA@FNM+Xj^ z(5jY$UuoRp!8=@M)*f=A4aAg$WV(~{ZWzDIzWu@PgvY+0!cC<#_vJAD?|b4Zt)+z5 zzh)LL4tSBxboHyAZEm68nOjMbT#3@V_1+HI+P&=?94JBUK1)BM! z9A-oA-cu5XH1tDEYDd;qm=n{ghU%j-fbMHVo9nmf=+ zLKG>qo0rxxwIppZ(=j^}3>XmKHaqsL>B4IObaOxPmlQH%8HV&E;vS;dvIaXqFBbtzR?$-rOKKbi)^T=(e3OIERDgW|Hbj{&MvV zyVLT}!(x#c&<>yAZbxi%r+CS;#L1ZHjgQ3O5cIo?}?8$FQDxIYx!-lNR^x4x4i zx||N90445Qa!!O<)`(*(3jXhMi9N0bPwp%0+4XR#UCUUiV-yTMCPy$4PU-7pU_7q!Z>m)#9!;Mcr*6M-~TDh)v>+CymW z=6*=S7*6LjHaS3v*QbR;xZ-Nq2)!|YY{Qb(N9CbW@YFJF1qBjqgsDMmg0J0jC-yYwspBKBec76b$Z z7&Bl~$Iw(bx~M`XC5;R4p8085n6O&imz8e0&lxt3hlNu8Ai*gpaNSsoica?i_ZtxD z{e2Kujb>3nI|5|ttZ_qG0+#>NDR?vgr&FN8pY$@wJ61dG-3DqBN+6tbEeNp?xH(22 z1ThxM;I-W!Z}0HXcWeF>U4C3m*N=>R=fHBS3vw5;aIa)&QVQ6db(UW593PJ@fP*d> z46aTnm31gSBa9soCodvJ+Nf=VcUuxk8fomW=j>S;5}R7){O?H@|8~llxGBnC!--kX zy|8UaQee{-9SxS*Z9nf`QJ?K+?R@r(=FZ4ZuTcaKH9*%1?BglAz6WXU3N5Iinopg( z5sH3u%ROw*dnPmgwbgTlj~_=tjB&uh?_3}0_O>c$?4E^n>YKP}^@)?m%m2AU^yJ>o z#$qJ3vWm9S7Lx3O^>WB&(X# zU~@I6c__P&|Lg~125JP$hC$r^6Ey+b*0^=(QjDZ8{XB5%rjNo=u7!TqKUKqJI~SS9 zfuOUo{LNEz9x!dGr0NL7BYM=B@<0tRVzs!>j>1hVGN45_zLhq~BgkSFFdvPwNls_W z^67VAXap36z8I`rfkLO2yYdBa*hP5_B^A&l9wZ_{BZ=}HYks*OoW;s~NQO%703&u7 z9}3Q*G96X3e#i6T& zT&K!-g#ul>Q&|8rP+`3diwXhY>#=Gg=;h*rv0zH$*!vR&>oY_qx4&K@w~gKYZoJzd^8y)1}>iWiyaj4MU2j!0t8& zNR24X+!Qe#(H`8%gNSwL$RS(1=>g|w6Grfu`~O5|4JiA<8e}B1&Zzq+0MZC~kYtB7 zNAc2OP8DTTLS!mD28#nDv)lwJ-?0UX2fJ9t36zO+m9u)Ws(6?D&-Ss7r}P;I*EsKV z;Zhp~S}mmL?EsiM7HI^bCWN?7bF~XqhpB=V2dy!YGYey`QjCHYQd~)8n`A8>Ed)U{ zh{3gAg9GHgEly|2Bg=cr8w@VJI(d}P3TT@>+jL|5Z{xEj%=O3aZ@RJPkMUVDD&nC+ z;I7ETLfs>H|9nC?0}UFX%&q=c--M`10}Dz&eIBMB&scoj98}@B4{V0??u2FM4n=BK zFuPmR;PBlqE4_qXozy^u_Z;j~G8>Txovtq8ce{c>WambKKrXdq21dh;L7mN2a6o6e zPj4`~w_a#fls1;GcOTQKIjx@>%urHE#pnxc862vq6hDuFR3?xG2wyJuJa>&2dFf<<*+q zQ}9@dPic)}cEXIIYrP`W1QFZK(}GuY$zT7~&>W6~0-er3D%YOa zc&6ybdxd$23vE+Lafut>Zd>WNF!!h9?7ZCuJ^WMq`OUoqqaeit@F%H&D-*E)asAzi zZoFu(_xHTJ_IrPP$Ws7K)wN4!_3KuluU*woCs&nSj#}kfTYvdKcNA}F--@l0gF|Vq z{)>Iz{ODJeN?*ZCGc%W3l#0Dc?VbgWK-xQliSBCO<1>-idRGS7(IL5+6Y{25^n8BQa zc#hj=pvlwFOm!ztAH?>Ipq<*~quXudr4NS8{jjW6&Ts~!at6)iuy7pecBu$9l7({z zVDddR2#P>G$PVY1h#O@j8X0BqkyG+%b`%ul*ZmGmzQuPisWQ)`aX5^4mK+(nyHi1} z{|1yf)v0KDe}_F{A~|5)I(xIz&l{d-p9^_Ub8uF&dG=|;2F9}%7`60lk9XbI;pr2c z`6xfb-VF?~T%6YPQP1J7$A`W~w%$8>x_tN5C$9wo9udh`JXN8E%WLy^h3``2el>sce;=PaWojbj6J zqe!L2t&q0b%NFVxv8OWXii*A?9!Ni9(s;}2eRzGlw6v$U8~3e`ikY|qe+-MgJW2wr z?OyD?p;Tviz2$-CiG>K;;^|Y{Z_wL{K4;J|Hf^_CNm`b|3>j9~N@-w~j5o?2$*>V? zLz3!o0>HYL;VF+pY83dpcbUS}oAYWFh7HQ9i%h5ZbnWY#+A8uaWZS@Xgr)l%SoJs8z+jm>6iCg=X}8x&-U81=b_!@C`(9w zTUv!@Yk(gaHW{e4j4iERdy!ydUNbiQcdqSRvzMsXqpLcT(^$Ir1SyPK#W%9%w3}BFFI&xa4#hU7d>5$Ri+6-5>DO z^4E9M_e#!k9FJmQ%`w)y2i1bz(C)ZMs+wc7Rv~@79nFoW08+k83uMl&5=vC!ZJlVk zLKMNQE2}+TYua-|1<+ZKn2(o|T(^tU)OykGR4wCv@BI~g zcOu75L|J)p_}}{mIIQb=HPoXA*5#q>(M&zupdTGZP#DzD7plaO7}1EZ9J~h7MF<%A zs&x{euJw65CRHwF+Cbw>KIt=0(2nJD6`$bxgmKpL=DTh6kElNB zSex??U{|VcdKg_uFe)L8NTnBr1q570M7?tXU^^b|CZwQHe!LGpSn$9_8|~cI+0PZm zd?Y18sGGiXfA4XFt-pJM4we4R^q8J54UG@HJZ5a;v{9pD`})23r$uW&yKQAX)7FgC z_b2bdaoLg!MGRr)TL(n2#N%I{2QgtGL z499jI`{VUj&85Ps$Uf3oi=d-<9u{cYC*b4i$pSVAZaKcy0$M;HZbSlZ5+uR(6pO~d z&QlKGxcbaC$@NBp>#=b9S^`Nxm`SqZCa29WcMOE+*n)E4g1y+8f0)q_4BIDjobcV%|%DOSNd>; z;gi4-w55)Z8furvm)p~cQ0zZ|{le2nCu$q@(a){jcUAuQey=DQHgno}?%Dc6V1M=w z`ub73qI&DL0s^??0E5$Y$Te$vdWM>>7r`@o?kQxTyCZC;LJr!nTzx}ax8l_JSQ(0& z>}G%u21gU%)))+dyD7u!Y)>WdWq?3LY-eydfIM2b9Uc4ORu|#h#u3MN&-6%);OyI@)~Oo&wMUo z14=OcOUJe2nuBQu#qN3{O*SHwXWftmC1|)ge?Ry@TTTslPk*#QHM_K{(ZircTin*(=Ae)*}gEf zxBRI5D5aDaYYoS@Jv8(IF0Y)qJyLa*cqIL_Y)3e~?&cxJ9>ER}VWF`1a&EMLky{3q zgJKQHE8DPqx5ZwQR9XC5@X&KcpZ5vOf-zT@)$)qit>Jp< zQ!<^iO5Q4lNL&9sd*Xe%r`cfAth7}pqu2!o?^^um)+ow`rcoggPv_ig(76gi=Vrj-uBCHw*R=!XYf=MvPQh}4d$?Y^opmZ z;ZGLJOM^z#w?qZMFdcZ}KL&`sU~FSmb6Z@9et38^yUdvl=V^W2`|Iw7=Yb~zpZAzK zEY}P-Y5xBeA27MUcNzFgzyv#Q0iWxK9vHZ}d$Cv^JNJW0ip_uaxNr6J_VV&RT9*80 z@1N?e&dh{;aet0kJ9n)soSy63$sg$_eT%Uyo5{TZi`yGPR!8aiC;`XL2ZbszOI6zX zg;S$4g6&$3zWyA{nMVv(`C?V-!p+qmlNug)Cr*u%4d`7CMy75gJ>O95Pa90*H^+OA zo(2(;N7*X7Y*7;3wXV8Wj=GSzmYFUtSV^r=MK% zbw*W7VDKrmsTSNm+T)63UYl%&*(-A7%>GR>Dc;kfC(nQHFZGDctvr*)B2DakdiN9U zU8P*m`jK^|Dh(>jO2;2xx}~$mSlwMZ*Kqy`^PT`}od$!0Dg_~Z^1NTR;+r;vk2*Rm zXr&2aK3|z6Y(v5_Ws};cw;z39|7J4nwT|oZl_)a+>y`XR?seOSBKecu^=sShv&c5!$o((f6TsgElZ9E*Dbnziz0pv~5GUzwg55)@RJ~k!@$ATYbm=Kce0{ zEUEVa{|5v`T%e$6?hTIIky)aG14p1>YMLWgYNh5VGetthRqmCRTO=)KYFX~Bxy!Pl zrkS?Pre*o#{rP@>*Z1PO;QRxBaL#$o^W4vUziuQ`vMoqM$r}dfi|x`iJd@8s2q@wk zm4T-K$_NY6mXti&wjhFZ#qsumgSiv8R{U<87=M+U`IzWCY!&cty!L33@370=h7k4U zALjnK*b0(`2Q`(gz+w-$`9330Qu(K)YO7$(Opw^L{?xqF(>@bm%oBE#f# zh^F63ng7kIbnq8W^Wrb`sZ*ioBuEdVzz+}Y z)(3;xHgpujl@n}Ps-(uHm;q4`um%_;p3JeB2XOo4RS-}TKy$vD3$c|JcQ=-<;NXyg z>dS!nO>!8wECNR)%yYHKx;`*~Fi!!h=h?$8-idK}Xu0z6;T0JvfV9SGbz}9Jfl2$< z2IGS_e#qnP0R)JKi<1};0!Be%a0sJHt0QHzo4OV-8__zoP+)23Mrhjjq){W!a_yQY zpS<$jK(*G>3WK#KFXz5Hu_ z_Y}T9H!2b3=!mnGS@d1!IraR-c>GMm1Bl2WT3N2q&mGT*_vd=oYcMCAH6nd|v3dL< zruTLH#>za3@}B?C?L&tvgZUNBz>MXc5f@=TFW0fD{_yfTM`#9JRg=a_sVi~GL3eZuAZjNc_$7#a2aQ{S|@~jehUQIZ^fha;>-laqyfaPF=dcA3QX>o#y8T02g zO&GVlk&V+$r2x57Nph--GzN&ZSJxp+SD2E9?nPVnSo~T(r^)P8j7QyYl>HY751n|Q_`T}&Eo*>Wq>5Hzy{r$t^J5X^^JGf>q z2%MzC49D%oYRaMGv|UKO!{Ja1uIdQFRP$nhQ08qLXdU?-`DyulxrIm>Pt{?7D(_Vr zn*ji#j4I|8=ABL>AZ~L~iEs!aQV|9Rz~!0ubIpN?bUKn;K&Qgk{B@ZivNax-zG8$H zzzK=JX>>{MUukryxA4FuQq6hEcs{ONI@VTaML*8dSx_@FXhzu<0v7GMsArkpf ziK_X7H^gCGPU82ph!d!PvTpAwL?p|OpFnKG7I`I(aIF(0iwIZ(vfd$k1~I_MNiefY z9g!!Q!65D6w@(%Nl=hXPLfcWB8=i4qKwsmzT9O;uj6dGP_-p%iR5o+A3&n9J_$op{ zgMgz(d0E;>y63kmo&r)qb{z$IK`)J0t9XUO7D@GhjIC^~yCvxx`@c@MIzB9c-ZtH=od-soHFYQhV12u_A|F z)(MEQJJRhrdaO30jPK*&^QSyeA=)2J<6J7^nINr&0^8lYBB#IIpt?nv``v&x_GAOl zcj#8sGS_)r1Dv~ClU|>!WLX*zp?K43;`bqyc0+@NXs1U+z}nLH>pL#}*Fk-rE8hp0A4hc1Z$cu~ zEoVa4^t(T4w$bw*Oqp!%uGlF6lvO7s)KhoEu&qX7d2a=B(-f|hFK7q3srY4%8?99-toZR0ia15HN`HO z#o)^gAF2E8L!$z0&s->PTWN4pCWCs_>F1s(pjyMml8w{lElcxiQ#%&4Tu>ECl-o|* zPV4_<_?PsazRkScWzfDU(r_yqXlL~FR!shbkHgLnRd2j+zq$VG?J$+^;O*)O%?fpv z)R>F2Vw&3wyaK-9mrFFI;ZmHo*83`!mq`FTYp6;;!E#y>nj`4i%-qxlj>6RsOI^NO zguXdKDVj?AWRbAlo0T(v(FdfuFdUFcJ6mKG+qBZ2_T4nJQz1>|94R9 zCVRBvkIKQ$I@7LIn?mBp)QWo*6H;vfPqc$ku60%1iko6m)^|OJBMb06k}I1tMrhvn z*wCIFZSZvOiux_@67lZ%+7)wPl9725kx+?NsX}Ihp^R3IjGE7#-uLlo7b6r7pKp== z5wH->ulv)b;1zW1sIb$AJ#Wr+mq*duw!Rh238UCGVdk4)rJdRn3P zH`C|#WwH+Newog-4=CCH%zB~2O0MZj4U$w;($6Y#ePXQ_Ot7DA4^dfJvWDzYli=z_A>2l!P{SM<@(kue*$-gtF!m=Mva1K!BNtOH+k7tzNxC zyS@zMHlWUZSSfNCpf{lydjBS#Qfon}q^i#+A{_w$FxuRrpV$2ROPm`N2*Uv(R0B}c z<0huC3NuKo3IzkYD#6S&+*g28@TRISYpl|`}IvXgc3C?iU$@0SVm~&@?I?7-2FyAg^YJpvtA5sTD?l|2ktQlp)p?kz3itv%VfaYj>P%4n5JEz~ONHj0&*j&{Q`2 ze#9mddxqManrdFItd7P?rBG7~up~pv(S!HFMEnw1OE`(~JFN@_z|+(z0OfJs zww+7XH;h`zlrQXAQD>HuK$8$V?ZtN7&z58VSgm8jf1=uoF1@(9^`OE2%qy!G$9Dx@ zt$Z95Iiodn$!ZsRg=XSYoqEu-L;2U#<6`0oE!y7qxP}zU?}D zQ~4?{Vp}JL9aGxNw)}?yeZ-+5&*lqt43)G<&K^oKeveFBiQ^@^hcIkId3NM?s`au%MN~RE4_B z$JQUeeQa_p_h#EkTV6Zo$@tE55x+{QfvKaM-SNmJ+neOTvi5LEJU_RKwXYtBT0^X| zXjgGu4nBRAkPh?i5>eV3m|bj%dgE;S>aWq+SPdS6(ZZq92Z?IcOfAJ5TWX~bDBKNt z)Yz6@IXFQSpecy;GR}ERZd;|&BH3j@G#E>CG$oVK4+-Ra%Qys&9{wIT=Jwr4M#f=y ze{b(Jx0~8{>3H01=YoOEv86+%>(6I#G@6ZMonwX@(cX1ZO32l}y2iPtg^*(ZzL%57hC>U#1skf;A`aJbF`O>o=!NUPo z-|hRYPWt6KbOtUgv5y0&$Cf-bhHO%fI3IiOsUeb+dL;6D1(H@#!+ttHq8CiV=IKds zxX^Xi44ejqTUIef_xAR^pBaivQj%f} zM%)aaxh6_Eo^>^1)z|8cB|WRCKQZo<7lN??!FMk?%IE5^AXUhTGO{{V)htn&S62xV zy|5?l)BWI2+oL1Vk3bPl%A)j9%0}r$}n9^LzfE*MOcX)xvjQ@M>l}}hlmwVrofN+Pqxfy#5);MH%$Nlon z+l>Gq=qMxm@IVy_fb*aW2slWadjNgZdpTsi7LXJbsHlSwODF~0K(qj_ zCU37Inp(of-T(U}Fab@FG9$q?0J9dK4P+78n%o8m7DEd6T^y61{~VTTdzBLiX6Gzs z+(AJoVL^3<1=@u;n{rG`s;H*n1_Dg$bw!c@rwAZ`S-#k>OEn#@9lhNvtxZ)#Cp^K| zRe#3c9vN-znZ2LyOk~tAoM?1E=y(N-E=gnXg}jeA$Uz|GIaRmiBqn zy|Ojhm;K>z{3GJ;1P%Y4jeP^dgzD9kS-)!U0+!#a0aAq$z~m?Ye_+Jm|7j`zdHy!x zCYk8{EBnD*CIxl>DEB>p`x(rAkKT`x4U%4Zo!RD}DV!0`4y)g{T&qJ@xi+M9oe+sR zAl)RIg8Y#wDckEHVS59^{n^kSsB8ZCO2L#$=iyFfyh5%;oU22Us=bs#|?*r~n&iz%&xhXkXbV1XJ?L*{b&IoPDO0D2@A1Hhuxd6~Evb_ix}Iol(4{`t!^2 zMKD}Mi1I4jMl>qgOwm`Q=&g25em-{Yzng-~r_LYU{_+LxD<*v0C|OPto>as1j4Or* z6qT49X3DQ{OU27A=>E^Q8vwjkslE4|s?ZU3#S^TOiM<9E+0MjJk8scphdhY&p%h`Kiw$`2?p-=Az>V%M%t{?el1~a$&Ot4i6<6#f4Osal}tk$q`&j_H?gHn{a_RnH-iPAh1QH z>iT#T>xj!p^1w?SK5JzMf+>x{Z5)t8tvWpw%iy8Xw0!EtdM^SjJahmIf{nsLA)W+c z@kf|$INz6W+ z?o)ezSYm*1`l&6)Vd}!p+RSY-fNm7UbB50F#7Y1jjhVdNPYD1H*gLruZR~Z66#>6Y z^PQ|s23noJe>01WhwE98=E@b$p3(SEV5hHT$=z(cBr48SJS1X!#;Bj1J?gi%u>$={ z$j>eUj)F%WWu7FmBUh*>4Q)Xz<34`g8(uOmSu_n@6%?v_>O^95*kZ|CWww5fYQ!B9~(Fr|VP0d5Q4ZJVWq<*6i?N@WyQS;L}`>8yUb?T8&ku9hX0CPzx=h zfH$9;JdICsPl%YyoqyZ;Pa>RW%wEo2@c`CUG0~vvSp8!V<}#Bi(UNk{{=Y3Cx^f|_ zY8lFl=+~%XCSUg}lK1L}9TEbOcLfD@1y{By{a#B~cs#i6As`TF`nh zkO=2`4{YIZ29Z*$K>^CJ(~L79npfa4I?G`*pvrRDr-I*v)wGCV%c0^;xb)M^Y{_{H z06yj#(Z4sa_y zin~hoEze1_a@^{E8FaqfKfBn$8%Ea1I%jnw-D6E!LpYrEK}s)BY#?*ioA%#0(8FDj zj<-ZjSeWhBrE7>KjtyI3`lkg0$NF=|$D;GEhwr*1-J%x=Bsr33hSk}ulqw)xf`Nu- zk)H~ug&_`#lcjNhG@7CMDjr^GSq-l-qf08I$!@igXsQQ`!FG!Xj8Kqt7Yu`+E^|=B zQR~&&s}Bz;M55x~Ig(!*7-Ae>ag#zAHK8IGx2i! z0qd5vgpKDKkAmmET>5J)D$%6esTSa7ZcrBLc^xL7@%Hw&u0Nkk$j3Yx%Z1?$jTc)N zf`LYWV=*s=yE8`mrgd%`X64IX-#o9>Ja3R5WM6gJejG3~GSSHU(I-e!ub!jKy;=#t z(=OYgyPYP2+$qHPaZG{t?k*sS+ss|TNvZKl@>i&mPrA=Q$)mLEDggSo2hs1ze5s87 zL@0~xrKuidMkRB*v0E#&sqSc9XDTAS%^{r|;ahE`^N^8L1dqIr2dinQPP^7ASsflH zaE*5vV>pnZ+qWsC@L1h^fwb`F`p8s%0X|oIS^PH>iRXF1Fi5m}F?am(H zt1(CX09yrEcgs%?e)T`JJ8^8y*Tzo2cmHe7=I1DhvvSL3p_O?l3U#l~i?SYn+WfO5 zlBs4gSD#i)i>!_LF{u-`w<$xtQyQM&kFu3sJN=Z~UU@7Yy#v9oLY5u#gSj~2`(3j8 z4nCn`(#6@_!+5o<2mHbrvuXAD6ei2gYZy^^q#tulblzcU?7xj+JQ!1j;MFWvB*=tV1!1ta1&R=RTAeUP;?X{rax zYr$76^bhwwPhQ+8PSHw=?nWOx^XRX#=e~OUk2kNafY!u?`m^`Wp6~h`9;`csKbAy_ zPoDb1!LlPQkA4S=3IJqdUObLJaL=1==45%j;QR4K)l4aS!jd#XU%_d>`?0bR#;L?Z z^MPBU_l;s3?xicA9GciylzGBSwfa&_mh_rVtfs<_%OxtLXG9tEi-Hz zaV2yYzVet#0m-Pv`8KR&215g)VlYoPvnp|*QRmft;EmcIskY!A&MKIoBa8$}0#Nl% z=}nerJ>%aUcyh)J4o`#hRs%pV7oL2&F@O$SwFEahPyxN(sHRjmVxo2vvquqd-W{n1 z-~}U4&)^UMGDx)Emu(C)UpFv>&x{@6Jcv!=G=>gdV@y5k# z&1vIGc1>+3?WE^8)Qj{|;-!(!71-v`5ylAW{_ndd&;2zu;JbC{q?~lsi$v+ClYV}x zb9c_)XSGFGuWbm_+TH&8_TLU{#}yXqZa)N?V`#R#UzfA7c`I&ZNZyvQax%aTTWEuC zog-v$u(B8V1dauDX?CA>l6O5T1+E+#-#MZxpd5@=eq5pTM^-SZfuQKetS%J3r{viD zKiCMIq^{7#jgPJP;XBHhx7GuG{o+=7i3&@AAPieqGlgnJgy=D5RVEzaTV=y2BrHI= ztRXZWbv4yuU!oq1Zf@B4Tj? zOpU5>u~Kgqa%+Srr~-iWk+iVdjj2Q?p{JV7m?!f;eS;te_-<+`KUmJ4m`XKwejTc^RYp*Cn(o#BGQ!mIJ9WVuqa9l3@SYN-l zIuChlD%9-aE;`@JI?|b@#ttSsHSA*_XS#Zvyz6H)75}9bH}K-% z--cV^Vj~`MYdmJ`R3%;=KSf7I1N|;;Ss~f`gotzrd z+vm@H(%z)L?Y6jye`a89kyY^KI2r`aQC-zi9rCFUc^c*`XPom)e@@oNb`#pBC&nE` z*0yzHbKj17o1w?7nC{vl>IdaaO_RyOa_cAv*P9iq@Q}a-~gw`h^VRw zft=V@9rDU9BDoXXd_4d?U?(LH6Vxf0R-6R@Fi)e0|H$A;7Jpyx>hJIbmNG*ihiX4{ zC$W6pu1yQ;T)q`j=0E(v>F2eQ*RRTL-b@57DVxHMxtb2$KD=ER{pmE1M4;#a-J-U*1I&oWKM9=7TsOEz$ zB6iIhB(V+L2L7KY3c&0CDIov-wXx?G#U=JH?1yokBO&|r{j~jzea3#${`2GXOaENm zuf<=rvr{hK<{s@c1O*L>8*7#1ao;9Jc^!>b4D3hq9iNl(xNT+hYQgpOmGy8J;gyX_ z_qhCml}73O^_{Pc%RAw}I;8vba&4h}g6nO#_c%cp4ej()fd(usQeBb7g%j~Om+%q? zi6)h=G8=J-;81RnF`4IyrUuGOhliv5&D+UCU8NjAchm71FjTk(-*scpN#>7G=pcp2 zc`HJcC}NvR;6|8fJyHm+iJA`aQ9LZe=!JLuM#JRv5oXgzGV~e7W-=hI*3Z@dT@aob zVVEHwWQj+QBu^aP>lA?R@cG%&&kxT&jC%aJbZMz%_a`(=%ti2rsO$LZohDASa%A!H zA&nFI#b(#XE=gSZ#KRIal4<4jkDV257a^YvM8FOHm3#{<_}-cK18bOT_%a?wE9 zpsr8xeT8_80sMbQXgs!LK`R4b<2K5xsIPxjIFeayG07c`xS-CRgo5h@e!b(>x!Wz$ z`L;IOy1D&U>LUH+nj-3Q2g{iS$&Jb=Kvi)u6^d6U5Fx$%48we#-{b%n_a4})8<9wy zmqN91xZ)2jEP)l~Lc7hluanA#a)fKS``ZwJ1iH3NoJ)=Zsxc6?W||;w3EYrRNvabV zk1&H!@eMpm3`!UeteV(hrgaYAbAp71CbE}wb!YGo=ip2|^n^K^HKN=x-P@F1CQP>p z*s%`N6LgSY|9a-Uh^IDUq;jF_cI$UHQ8%Z&xBGJQfZQnYUZ}Dsd$3TBzx5U_YyC(Sh=N1UVvlI!(#_zm^gk^qn+`WnBNFha$mBMrZ56Dc_yk97 z<-Tf7+lxIbD>MQr4`c3|q@bs)xM@Jkz+&s?IrqvqHNN6oB-(APB@s|UmQhgnZU9PS zOVPkO!ie6ER$;SrLma$Ql%xRE!Q^G5uJ)GW;K18Y#R|8TM8C)<&FHuovJvFS1eR^u ztDXbsci$Y|R0x}eLWS$WSR7f$8G>rOi2mHl%G4c-dw*{+BI0yASJhY4hSV<_6KUQ$ zXL9M{Aplk-wD8IDe%GD9-^lav580TDW3Qeas~z3?XK06`8iCOsf*z>?P>vdw*>|@5Bn0Rp$6~t9?emJ^ z0}WVK*PniT?FG^a^s*0ls`LJ8tM<{-Rdf(Gms1? z{^OT^sVDE$rC4i}y9RROFgYZ}O|qG;HaMB~-e5@VojXFI)M0BjQ3wQkf(9U@K@62( zFCfSa%Ty&*Gx*I%37PfW=6LeFmylvAXHa1a4A&_O3QYk)uA2Qi!xoWjyGgdtN`*mP zLPwE^EVm|03NVNZn{h-U5_ENa8qMtiNHBuxe(F3_@v^`FH5+S8N?sO?uP3O4A_|&V zz!%0s1zn7*{umUfCDW6+_hT;kq3eT3dvy-xci@n&kLO6{a3GS#(*^fWl1KFO(`ILi;u2w z=XH+c$8y7j-TixWkoCorH7vq=o%D!J5^vT}-ZE zEo$Q!h+W9VlI-)O$|?}@qgBd4!%?zzGVN+xsyq?3Af+BeiG*UYFdTq}QWD>i;+Ba$ zSBMPSGLWY}9z%yA6BEfiI3#evv16hP8zdMpbVji*GT{J`rb7e*`qmkb2jOw%Xs>!C z5nsZQXQ_kOI08*8#zN5~{f?v^=ysXUAV!g$T4h{HPawb1)wRBDW(-mU4Q^iYu?ynC z=f9bhzaKLfBFkX1Y|7poIj^FSkM!ib25l(*T5wcZ18BCR;(k>+b$CYK_2qF9ZGUy- z1)psRla)XIZw>>_83Lx4nuC7LjFx=~ayaUw=Pu~G+3)`#v`yCt`*A5g{wF8@U+>>S z%5HBYbM8&WHIniz;U9k#&JG+?s|g2n&j?dPt+l5<8vo6=`W)Ns1n<%Pt|$cQ619E} zlEst^-(sCr6uU7-k;at#IX+;N;ErPzMD@H7@vaF-S{zjgS=wx+aaWz-9RVF%MzV^a z91o-9g*4VHw^{ntvO?#j4yTIJB!@Gzyoq|vRcleL?QIp_nCbfE)?$4qhCKwe5O?&SPt zXoI3Up+3Q-SlGvvROhzrr%5;7>(?G4$72qR2;YlK=dfj5uGC zgv)<=W723VPqk6@PZ;re&~oh5dc3LfavnfH?h(f1+>K#XJ|D*`K28^37+tp)hH{RF zJQHD(t?$IGCV6Pzg&vhF;_sHv1I7Ywg}#6J z=_R5lN7}dB*7AzKWPk|3<<+-hEo0j$lOsn4f3^m!HdGd=t^fEHG^E_L#4AU4AQqH- zUe=~2mRKpgj=1?c3`cTKEXv%=P_Ghefmb2P~UZREmDJ0J1# zFUH0)FHi1|yK|}EawNsTQH5H*SN3s4(Apj3PQ>ypf>vBi#OLRpIaa97ijlKB-FhjS zm&l8BLBJ`@i=VH1c{4-vH4-=ei8TYRkd!CuH|LT}UpU5q!|9_1>|#4zGPI|E!D%K{cq%aB=HX@{J#dE60WDw$r3IcfKOsFQSpLo9 z6>60H(tm(#ExJ+nKA73JR{uAhC(CLV6ck*)9(w5#;FK^ogSQgiD|$*>ZY7&KLoLT9VsoUb zq^$Bt{<9+>!F!%Mwn7B52DuTNHuh&KeUEXM+&b zCizqj-^^jb%?u8E3_W1za@AHzQ63O9h@-Padni*tV-v#C7|(H9Ud1Sv&tn&Vbi5ycvMFzHW&k!F#wD z+NLuvvTSU2Cssor>=7frf;D3aP_Y`7 zE^;k~$$!w%;GUgac($@YwmEdvk&);difjO5pgZ9yI|&HI>n3=e@o?8m_1qOgKk%Y! zezF8}oDU#P>PbAT!>nGCi}@sKz{P@*@F=V~kyB@@po}!fTHDCOn=++n3Mg2litZa~ z7~43^IE*V8r=XQiS3-4wYg7foHFy*w@h9*~U>6&b z3Q#b2sm_uJAK)*;)sPunNIIPxcMf$;w7|4LLYG7H9VpLNdUgfn{pzUIijE05TdaET zs5}Ju9#16>xO+e^`N+9PyF5G*rOMI|5C~Q(s%=_7~QS+;K2Rf0PUNPa3A`ZTWU6k1h@ZP zd$_wzd>g+%Gd8id@bbFpA4!FGG~!l$%4_>uW|Mnxf3@VJKNHcyP7mvCRi9Myh18Pj zid^4FbABa%pW?_7gDylLpEyt)1*{c!{7p?Vkro5D_FuSkvrfP@fu>wlnk;Uj0@#DB zKhTgEICO#Yv!`tD+grlB2V^zDw)03)hEENkj+X#q;!mhm;AURuzL{q%M^sq=dk?z3 zo^uyT(Z+*vA^S>uk}f4qNv{}%U^yMKdA`OM$X+b@i{7_xC| z);;M=xdVSQsduHRG~V{|X3b4w?ov ztBwaP{iMTyV~LU{XF6W>?ezk&sFw4IUWs2qTmXPNY3r-YTyN)mWgebDze5guBW@6M zhtr$r$gZf1u%2P$@69)HTSs?_eS(jyEDC=YpW!rDb`#7;2epgR7biw%cBH%h_R?ei z?1-!{QjDTSjgQLdU-x*a{(F4w*#kt@(!=9s@6z5yPIWFl7WZqfylUq7nSXIF+Q;z% zseS+Qx^3Xgao9rgna!ONmXKfDtK`2oy3f3Hdm*cICP#YSHPH0g@#l#pSK{jOjO6_N zO@vNCM@c&wFQTI!eY|j==2ykI_cf_5{9BTGx8fE0gtJ)!O!lz*+itC^OK^~VinR9E zTlpp-&=gg7$`cq74AaAJ706G2oA{uhsn_Q%Is0GVbf%XgZ{0jW4fp@Y59Tj?q)Y$@N za2bjzBFsm|CzQjZ@uYl+Q?V-GaGP;`833NQgQi3#_G8qg@)>3nKK5LB5Z8^PbTjoN z*hV2Og~a9oV6i@5WE^M!W(7SJfnV`r&iyh!pd(fpy=adYq(cc_2w*i%CEcY!SVBB) z)0so%qqC4V36OcgkJ5qW#*d1QO>g_cU)pJ2$_adg>Z1JA=Wo86{9R>dcM_*%N^7QYs{{Z6l+o>N^=fa&3d`mCBm`{F4ZKC9N z$OZf~cEZnKwUPb_gM5Hvm=`y@$20{jR8;vN+riqGZs|>dP-YCVrI`bnSB~E?npAAD z^3Cy35puF^!Q^nCOxuVQKf);oS%>FGZe$bUva_c8HFCks^_@l-6m|(54mDLuiPdYY zhk>smvy~A@m^~#K&BJ1aN%g?WxK}!qgM}sCOHFm6nR%$2uOlfKKn5LbQ>Tyds1ZQW zA~{lR4g;xeLteVPr)9FFjnk*!mxvQ?_o^^BES7D70R5`GlwXYozM3Ep2t#kMobVXc zL@ApK*#I6Oz}rfdJEnwHDDq&ZVPq#=$5!^jP?m)&=49UhzrHq>nCTei!RR)H{WxXs zHoS6+-zx0_pVrT}nFl}CsY)FEDWO;6as27bNxy$SQ7`P3E-QbnUH_w%_W0D5hI1-% zWj$N3`MRTuE5j{=OdmGm4sTdge;jQYlsF`^Wm0(C-73K}_Sf&HQ?hf;cTDX=#?N_Q z7^$JX`|K~Hk6Z!>+`Mc1;^@@4>A$mEh3{7m=8XTFYd3)WFu!;72(95lkIC2b_Dh$j zn+YKKzkH;q(NRm@W9lJ)qtp2bj+qHlg0PeODOm~DSiS8O`v|>ve$Y!})(}btxJW^1 z?q~&*luY~I`7tfO^y~1RbV7OwIRAwDoAO*Mc~c8V{#fSqC7*n5UmKW-^s37gbu@$3 zF{i2C8R`yHWG|aV>oN9lp$uTTHwux02xS>JxB)ZaP1-`j^+0!YZDQ5}e=-x7t|&Sq zS(!Y?sv|UtD_IJnywkO4w#gJLrs#1c6FLP|kda?-*^--gvu+U0bcUyC-Jj!fsW^YLO(Km{4|_z7mjjDY1eX5NaI>Vplj#P(+zGa zA|rdpd|S%qOLIiD8%-rQAB4PxO!~rR8pJ=JM`v_~K$4Gt^3)-L4I0asC5Oga*4uvn zopJ4%nwrwvy|o9VJihUhUA%LD^M%371D@MzchCCi{%UzYs}SUm<(ZvaOYP}Mmw zehS9s_6V!Lcr2%j$^6ci_duT8h_=J}9>q2uQWe7p+fGfS+dW&zzjrn{56snHuJdU3 z5BI-u?>o-j*hu!n^!Ib^rN1tM{ix+Nb@M${^Hj59KSvG@)nA)y_XCbiVWQ ztijielm}7soM$LK{^c8ea2+%EN`qQKl)4T@L#ks60HoYpRjCHNUEu+|Qa35M8%VNG zT7wzDrq)}gk;Um1jCa`!T*CS~1ypL_ETSJy2&?&U@9asp|Am`bRicg-_cFmC=Dhsy zw%)QREXj%<>wZjp8PdPgvZvVt&*U)5y&9*z(ks-R>sNKWJSto&*%ezLfD0QakB2%Z zn{)JYvoXR_@17_QVOSK%9D)LO2}Q3E(ota;%k;7*gS{@cc8mpipc!S_TD$g@OKX{a zy3P@9EU2F6G=(ysuapphNEY*HQ&gKOdu*YST`m z5sAqBVzOUKMBbq0S=T@%o!AR?7s>8#FDC8&`FrHoUd}=!%cbq(v%i<`jGl*oJrFx~ z^@EfAkFZy~MKizhH|JXJ^4>k$xxTg|_|x^?hXWA9v4TN#89f zPGOWbXs&E}pUl4bcgec5nxK1Ic*owhWBv9h3or4qXmAYMVKmX~Pp)6m-HX$%YLdmu z)n2-JE% z0jzuXM0i42Dhvg`ER4fSqyAY;bM`WD2JXXt>Y90h;4tL3F$$-oAN16MXP^{L;N1TLthctgL*$TWY#HvcCv$0Gv{P!5!4{0r>K57gKW*8K})^Yvx9u6`Biz zh2$^$cZ_PEAtl?(_;c4#;+bo(W@RQkn`xWm!BYa&bvRMi6;_e$E*ax%b>2hH}jZ4jK-N^`8m z21k}+9WmS{xhHKr5J)wEi&dzH-hr46N>FsO=M`X5-aX4;OR%|d#k=Pe@YQh{bp=I& zK?ST3k1Ff;0~$Y7;Q)KywedR7XtzwTyD*uN4{&y6M~`T6f@hnrir;&hclVVciK^j$ zSR-}$PiX~y*F1+=__`As*?L86P_37Z6_cp}_Hej{gB2zZfvig6$P1>HbFQY+VS&|9?ItaH1^erLLTsj> zZ&b^YX6ur5tfz4T#~D_9)(MmNB+G~2wOE^JjX!4 za8#4^e;g3_JO58uKyh!1mTiIza=&6fXFqGdem`aZ=01DBWWR1dKTh4G-BaNLV3~aJ zT(|jKK#vLsQRHf_%-8f>Jl`S8|NyhIA;IO&V@BJ7Tl|B4OJC_4Y);O8InVo*?agS(mv$CGUq~s@9Q*%@daJ0onrLgZY1|u^;O@a4 zg1dF&?(Xivp>cQD#)EqZ?ryu~%{7HZ9RnGU@VYar z#RwDlnd`>u3DWJe0l7<4N*`GdYE$F8wR|!%u2Fp=ahWfQ(4PUqJxtag-wnRoH9Ec# z1Q?f0a<_GazSe{aXgtDR-gRdf3ADOr!cK3bviv!wB5poUqx$hb=C>3{qNYuUI;BK5 z=re@{Yy9(mcPs*ZVXjNh)^hC@tJ4fOO%a}F7xDZ9+Z-T;si}jGFIRsVjPjnj=+a&s z8Q{T8ab>@Y0`Rcikg>6&(Y7+KOodKy#c3OfGInOei&1n|q%+`gbu${Io(`&nhNV$KAk<$hK@QLX&MC!sSHLqYoda@%8=GEJcO4o4;me= z6a(eJ3y%h@$yMp;l&5q;mshT2$z;)A8e8Q_CIBU0@z>K1aS51g2sxf{1XR9&=r5O6 z9A#yFJ=9697hPgj=v9ee2oRuN`E803GuA5B!7rtrMt}z}L^NLe=D~@q_`|Sf?aS}zuvGi;zWtUEiO$R)D6R~~whIYZ zVtImsHvt0J%Ex1PbGQ}&{8;X{byTto`*Q9MDG~%N*&$v5pSFgiqB^5PI$I`oBSump z=-AQ-!{~-4{k!3jFF%wZ8y#%H4#Vv?!F~9S+5Al*X zUQK#kj?NlnZ;Rqq){p1@jASg%5F>I-+X4S=6%Mp~v|I(~)WDQGIo91Z9mrJ#23WT0 z=J_Akle@Y*Z<>f|O)94cJu`kEMcyfFF5QfREk0yEl>bQyqtrCQmxs7@O4cdRVSCOE zGTypJ0pP@W)lo2h2;IvlV9K04IUbyF%wEk8ef zS<#>#UmZU80UXQ3$W(Kqt09(w@}|JjBU&RZ;#lwEM%zr@?;#N$XuTh?4Jfm)qD8pz zfRH#P(9l^W*L4I@Y_RrV6H@?8%jvn~rK;ES{HE1FV_3C_CW;~KT*$dNumo9?cmwOT z`U<67oJLZlaZ8!REV`~n`W_w6JiNM*ll%B{G7DOM=`STggZKxBr=$pSG#zV^bz_+L zIy{&4cWY=T{AuYD7Hcm1-my?0h810~thVSf6>`*{+*skNnt=cjY4@?n+|0eOnOn+qPRf5u#eYvXe^I=DuGA#nGHbb=#7^u_MxPsu(Vx7K&74f} z!SV;^!>i;hbqny6I?&ZRGQ`&}V`a#AUA`@7gYw&{Vk$LIYUw*?;0XJ9)VhpWZxloB zInK=UcA-Mfs&OkzbCU54@9oHVZ!slLa`))p0g5xB6VFe-B>6ru{Kj75yQq~ciOF-^ zr07+#d_Ncq*$Md9LtQuc5cucupB_43k9im7-@rN-i)8;4{rApEpn6N|U~c1Li)@aA z6K%PDnn^}b&e2iZw(!4l^Us0>5yOlMo`om*K9(h7%y#&OHzdo}fQ)(;gu*eph&i(2 zCtyVcT#H6QCSZlGt!2+yDAO?FIruafuSdM$j2P1&+xD=ayo8f>4G41;bYl8|jdY|C z1jZX9)-#U1ZFpID>9t1%N$S2R>ACtN;W2#68-pvn4u0x4pbKnpK zfOJiS8L!rTYRa^Pov|vl4br4crx{UJ%@n#_e|m9%8`7nsAEt<~6+Z=NySU%aeGV4bH%t-KnG=`|;I!~}j zyZvW2k&}~)5Kiw$U9Sw)GD4Eh4-AiET9qjRRLJ4-Zbf{R6m6M`sl7GW3@xqW*$8IL zCN=sd3@X4EN#W01`YDo#l>Q`B- zpEeG;F_;=tWfd7+t9`HX)YgqDvyE0u+@H^pTD0^D)Qo8S*?U+OMnOLoB$a82;v<;l z^PRqW0S73pw5|C$k=AFdW#YM{oIm@LdFZY%i)8Avv~fAo+~>H7iD%=99xYG(*;!_| zT|RguC`eQ-*mtRcMN&_|7WwUkkUr)=r{3mz;-g?BBvh*jsqBk{P5hlcFY8vb1pi5at*2$h zmbq$63wS8=X;4qoS8zYJ&&p~~O(N7*Vvce`_23$Ki3;SbHPC-QlY5iq0+3`bda~aY z71hG@9;yCB2X|*MUg08cZKXw+`nJVKz7@kef)l3>zaZf!_%pJ-S&aWe>P4dCnCX>7 zCjshhOvbD(A|EkBNrj?S7V1ys8t_A%#quXki93TwB-l@dDdiWnjcgbFg{&6`@Au= zMS};+7YVRu73p|h(KiY22`m?zS02|xSiv)2C3~fsWTn%Z_^*`O*myu z`8vv=gmSS>jZhl+9@O<~Eu=+I=FuxL9?dNaf@Ug(TOVU^V)S)9PaX2-R*r>O=eBzP zjIKxVd@*8P%(rV?Z(!c|9DXVe3?Lxk+a>1qV%TEF!&Cf(9--7RdZapHLb>BRho+3N zlJNKV-w&d94tX^cFNe4%Ag&J1ZT=dC6QR9>CFLT>`-zHFW{fJ_W!}Gc$6q|YH7WgE z3n?0$6*zF54I9%mY>wL6)&*o*H|>ZC|SXHWF&*RC$_H6Lzn@ooNcH&mXHRJB1eb_ zmmk+o$4|}xf3}fg6X2FrVo`QXDwrK-HC^>uTWdnFEjH5DcQ%5-DJvrK^%yEZ-OIH# zCvdt^C08ShhU0$sgs*=!8&p(=)LJ`f9PT+vE4a<}XDY~w<8sMrY>llv8!lwDOg?AX z?ntZBKoH*S}^yoRrdqDVml0 z=TffM;aBO2ey=l~?LU}PB;5QKtn5~EQu3GflMzQE2BLSq4t0y78^3M}E`j<|g6jhQ zuk=EZ>I+DBn3mdwQ%T^i!85|p*s+0JX5OUAlU#*+A!eOYi^`q-cbSDDwm4omO5T|FRK+%Wo1EwzsggQ zNr?0AEiPhi>1gECFE0m%bcll#!sIN6UayQ~7G2}>9xt!5#WL^NjE5?SkDUCb6u3L}>W zNoxU&FfZG1NF%d3nZ=irOTJt7?iG;Aa#j8+6Uj4>PnJMr=jBV<=If>|*`~Moe9k~< zZJQwh8}{wA;(yn57LvR=*jkSJTUJaAW6ECt5|emNsN)Da<-N9=D7$9!BD1t&Fq=JK zT6%rJy7&iAEH2~8e|VoJSGl@#z<`xo()m;R!W!`(UfS<%D;k}Kjkj#20^y$`5e-5- zjL7qQ(q<%Tepw`4%&G+y+`&%uR`hpeRPb9Tek2{p|k6CDsXK6dP8F zPVoIeY_xsjDYgC~0xQMH;-GZ5+}B{8w=_Au5Fa#`#~uk@m$A;C&ua*NDh3)PxiINI zwzW2JQ*gy&y%6vIrB5ddLSYOb`0-q#l%i2WIGjVfB%5SNcL7h?oSK7Hb=9%z!jE-E z7VTXw+$H$B-GnN3)OLtQ*hC?%bXF-VH5^Eh(~_kriSV{ngB=IPgOWRV&?ZfDVNols zATp~Dvi>!W!PHEPCoA8`he=jzsDw`kBPIw(0V}yh)YF3#jn@*6Vj&##PIBcOl#u`h zc~W)_&sqze<-7W8p24)Q@sYa2eLl!MK(&$z3kDu8><<2gNU@PkNV{~XR^8#lM=?eM zk(FxH1#Ks>&NRtI-4NT?Xv)EU;V=5IFfg+-xhuh6XaAX1VwHGzsT`&Dw^Vw&FS~q< zlsuA667Qh&cJl=W&cx^0#~A}73hx$70|Gva1dB%f4(P`F_Y=FQN}ayK+v@D6PN{)n zeg+Rh)Qi#{^9k?I1$%c@gj=@}lnZCQ$qBIYm1G^w#k7*aCNas(7Ql{Rsuo!SEhc&dlfz{8;d6z||k?&_ffv3Y-2%iC&NY32g zbG@^D9G;!L`E`w-W9P_(dx$t6?nKB|0LDmWYfNJ#YIH;djjyv3tHTHw6uE5at$>Ls zAgpjlc3}Ov4X+32wX&%6g^#?^6}I3=?mlnCL6%`uhm$M#pD z%HRy6{ZnS4DjVKZ4jgIJf8_2{+k*4T3vF%8l7H+iN66o(`lA{^=W&UH{jMHOTFx|O zudxe&+Zd0ll&)|)P;r&v`J$-8}%bl(JNgtaxNb<}_u)(PF z^WH{`dsZ(tb)G)*T%6rb;_-naYz_Rhz29!%=Kse?g)4*rd zAiJbEMVm8~f@=s@{xn%GD%xgHy8(zN$dT?#wKqx&VZnCR6dco$I-brn7@2*mHN|*i z;DMA44;+(Ic|;$r&T_xDCzp?~s(@Y+g3Fs1(lccwA|1Sa(F8C^FP*|MdKoTQ4Tb@5 zpJsVbww02x9;7`>Z>hx%Oq8v6|L^CjEc*xs0F450&SJ%nJ%lyQVPJ|gif7je;}jiV z>(m=2QfR4}ifkFu!*K2}LS^Axb8Un~>e2Z+&UJYD^sqwy$gL0C8Ovh%o9bf<#S+ta zBQkd|*&GZbtHlsCr19k7B`QAnRh>18Q+o(664xI zjDpTTD63{b>FeV9})uZ98+~dQ#Z=Y4ZCAs_RB(gs-ZZ>K9PhDG})& z(Ot+Q11hJT>5YA|ZW`BLSc&J$KmQj&e^QYNx2~!833bflZatR6D{r}8jNOnrV9D>D zT_f>-c6!cvvH864o~RlN{-UV{;saG6k0z2b+4DCZ z9J9=&rH3#wD!3&nf^9%xGFVH|4sN~;iIJ~DlQRk*g64()po@G$me!HivIAfwBdMS; z$aS(6`yvk|7*HSen@EWb0L*=s=_k*c5!e+ge_?)~cEWAh zWX>+oERKWw+MLC_@Zm?zqBlr0r}(t8VJYrBY;%fZ`4af|pL$)Wpc&uR{`tqLxKO++ z;gaV4{EzFfzq27fnV@E8aSLhPCoNf{YV@B-2c3S6Suo`D+~qSHpM;9xhN!dqe|O+I z=kbdz7P&Q@WT}i#XN<$Y{rF^wXIs6}w88o8jUD*+U(bmT8}wR!(x*hPDQxdg6jwCu z;(aL1OKS2Z)$PoiH)R8>w%Tit=z5&N@RXFfqYO5mikpdN8#EfzZ+e&8?QZf(~*CNtn`Nj0Yky#6@JISx2J_;3S=KRFxygMS}q>G;9@gq$mW&Huz8k zjAFb^h^k& z;uPR4A*7R%dp@bqBvTs|gWnC_cdU|VoKBCRzL2KrGsx3N-&V2@-ycdFR`mE_0Gak z)K${FdFB2GF704{rSG=LA3r8hs-6m&|6-yN-|VcY?@4htPCa{+k};87IPxSvP^U6R znF7AB%`PflH&eQ@7l*;4!JaWBnTlYFNGZr!797Irsc2XdETdgp8A(_?^uccrnPh9! zcDnHY%cNn+#ivpsi=90=oV}5mLTk&)9i3_wKUf?+(bx4>r^DWmD^|u%NSV{h1nzd= zv11l6wrYR?`q0v{!S#Y+a^)5bfHZS521|U!t}>&O?r3~M3Xt8HvNgv*iK$!-(#oYn z!3H#FW+}#=fFXljlpqE{(vi>038;_ZY_Uk@-E($sMm-YrpL)xvOg3RTo{uvtHR;_vwDF ze$`Y)j-G)sA&KXrim3Niw40xy%g-A|_opSGRv~%0Hf-QR>&0T+jrVF_}ynuZeOW%H?~IQG>Ann?Z%Vq86f+zvn!R z>~P~KovPtPT>#f?ImZcY2*q`4ps+Xx^|U2Lbh>t|`JAj%0b?~`s|_2cvM-Xl96wEM zS+Q8PUe%=&7ZiYpCJ*JEZ5umW-UBS4SX{CU(L~a4>2fO2u9xG3J%}6c*_9L3(Yx!- zNx}EFz_GVk89HBO1Ih_aNXX6GTHbnw);&eOl?;f2+9R7N)J2lg5yn=QohYv#ZIcP# zYW=iD_sy;?Xeh$!!;9`|B;K`Ylv*;`dN4cmvj0ZX-G{Qz)pVQ3w@#JnyqI`Rry!A^ zUOvK=m#SX*SLmiy(sy!FQLM|G`b9%HhTJKcRUdtEu^7s~LTM>pq1;=_K+N zfe46Yy}Iw(7v9y!bd$e}Aty-DAVj%kM<`*W_$!fc2qfCXUw9^0k4=2jlJ}m6S5cux zEuZx}+W*o&WWCWc3+)~WsB-LvE931BY*ym8<(2p@3lx*&>d4dua_Q8-ywMK^s+SDX zD#gAr4D&3y5?W=O-on)`I)4SV0M_HRYzF#W>yzCm4HZ`MTCi9$5*%IIV?Zq;VVw=~ z8()LM-2|pdInYK-dtcvfWKNc?qtp1TPTQN_fm(+zX&6N`4qKN4eeaupw$K@Kzpx^Q zsoBUCHX*wX+=bq2BQE3|W#Gp51rtg@qw7!y-b3yyzmT+-T6raf+#l1nD@SP@$4&F4 zVqVco7RNvBRv6xhUU?3chJK1PpMLPG=KT9EXkVA;t%w?|w2o*p)5Kkm{MF^-;3??o z*GQs%q)!~a>a3VsU^c^c((CQOG}CX1e|$Rfoj>ayLO!HrFSAl=_%h05_dV#m^yNNb;2N(R z$XPLN+cn$SX8QvLg_ZRc=Als=jo*0}P*D5mqwk!gZdf$*NOXjYJm(kI5! zzAf5&r>5!%f@-^&Df_^eVd0vHGs`Mvr+}N!OFt^u`Jc#HslAAz;N&pU67BB;V>Kry1TzQ6JtYs6IDj!4z(@M-M443tp#fsvN*l@!d|Ga> ztSEVYc}0VmiS~6!hZIz|T&^i4Qu%&80<+TTi)*@8CR{Ehgklb61cQF@&&&0DNJ3Ms zBciRc@-D&$63qI?TXnDykjQ*=*cFNW)f4J(%eX1?8Xp(hr)#S-=0Ekl<1u}AlOGcX zYkm18yp?WW06b(BqO|A@R|wDP!$)qFy7XZ)`I#y z|BD}9{tsdxfj@WXK*TCSIJEEq&QmCREqHB(%O9Fv%U{dQ7%5gcV=NJL%h`l$jL8!) z*G8Cpy^yC2fKwS{DOf^yj>i9^@deO^{1Z2niAkEuw7j`SMLwLereV=cLm-j!8EK0Y zvDhU;6NqKJ+KYzL82aGrR?2^fjFb_Sk6Pod6;)*zXB|-@hXHHquQG_Rv}mTB7^kHI zj6@PsAVo)*7ro`E92i8|vPu1Vfd+UJ=o7MidiEhip7qoyx{TG*u;y{wWi9K#sL$1P z4WpbZeq^Xmf0XHhG9$IUbiYWTf&E`qcD)`Cpc%r-&xNsmXVC%OZ2{NK{g8dGkKX<6 z!Oy$`Z&Ep<7ehS;XD)MHXRKCcbL^&aVV?wWs}DxwVJb=W<52UxB;xVd5Q4}puaCK> zjW}CJ6Y}4k*YOlT|GeDvMnQ1x?U4w5_>{VuwEIZE&@;s)O_4aBHlOhRn253V%g4Ml z+`lJ}u-iWUkIPMB4>~t_nk}5x)f?{HwRcj&69PvAFj99G<0Mht*Yop#OUi7S?Rk}# znv%GMiZWiOPaLJSX z*{XwRZA77i62-f5nNL;Dz|KyEtgA^4jswNc(<=oSHV=TN=4lUBIGAMvy&c$?0VCJ( zy8<+8P5wU^OrmwN$jS-uz;zI0C%gt0^*RPAdWIo~0}PzG3x&i9q3~3#`bzn6gu_B^ zUDLRP{TSXgy(7pv>4n~+)5VBhiXN*GpMZ06z09`4inOTCdNJ4tOrN&bkIy!~(3kSG zs^RF7r_<=Tdz`*nNgly7xB5K?{aN+rd2d=Rn@9gR1 zq)$$f`NrFitj_^4%E67k|D^PWlfLqZe*PKzBLP<6!29jY3uBS|!LE#q?sP}!$~9rM zCgdzWTdZzzzNP<{qDu)^zQPhgCf@4N^LdV1l|SpXYiWho6X|EaN5=P~->pslNF)`0 z-oY2%;p-NSTqIJs)X??%5s;!6N`!bxa2cb0J>H`oI6|@6Dp(+h&wJqLH!GoCukVU& z0FY$dh4Dei?^h0^(V_S$tBe-s(gGaq#K9S405C7_2p%I}m8+BOe;mgX)yJ6ZR74y^ zlmSptsZIS9vu4Wakv#;&m2NE+$cksfs-MA1PswUq77r1~mInX1+y*S?EQ8ED^N`7y zeO)51;Hf@x1h{}Bkai24IjXX4*f;DdYZ90$^vA5DplBX!IL+1f*4??u0IsD|qc_9u z#DOu>r)MU!Bxp};aEOY3;?7zAFf*D4xq|Q&8V-!9t7kb-hth;gmPA5_nY1S}KatAd z3mW;#cl=B_^OF8#osv2hS_l&_NF@^6HHu-QpLC&A3knR>Qh8e0tIqKEL_Z+u8+)Wx z(ETLh9rH@En8oAnT8(&~=eR{;{1rLImMu9R1~Ob)V_NR?@ohL6wNXiZIC{#?V_*C7 zu!l^+LRuXfor^bq`k zA5al&w!{Nqp(3og!+8i8YU^#GAa1kqG^oMKU+IF>sKD=%hcFooWWl7Va2`2xdRQ59 zfK08NI$?#d#{15ZoPI+Z~;**Mo z0wd`IU(b$oiEN)`RP9rzcUn|`m&gQe8|rM`tW_GbMvFC$X!DxGrXMBtwno)@o%P1X*m2nhWHOYav&+`uC^wZ))qUsY-@Rn&~B!sKD!QnK;g)vs$}8w8PS#j$%o~` zg`+nNS(>+St>}b?+S^*bOsPUuglxg(Duv4_Fn)Sn#f-DAKrL`A1ImklDnLm1Ni~Y@ zNJd5{WWB@HB*7av{xyo&nUQWVQgk4rZIg=vSpfOWVzP!uSbM3Uz`#Sd0pL;?pQ804yenhRlfDxu*pl)RE z3iel=?#`~P{M;TjS$Xy)c%2O$LG+?HbS5)hl_9%V_8R@)|0= z{kDD1=8rUh6@Ky}1G8+Ao}K;X7Vb=dCM9wX$@5{8S`kdPsb5}IiK=P$;;Dhc>Vpg6 z1}GfRbg`Xw#MPECKg%|uw&;_8TIcdjXYM6V@D~x{Tl7?)0D1sam;ruoOj4}N5wL`p z2~9o=pifqyZu-%eSMrTqqAFxctje&`(~sIYwP(QXJq?&Lzql=*rI&^in2g}Dq|P5_ zAHh|o2#Qoh7M7$r3hc*Pk0Kv|!W!j92gKx(2r1&-#LGto)_`R^N7U1rpJu_>{Y)f^ zIxFk)!MMnt#U+~@VleK6NH(?^$~qbl|1N;Zi$%5BL@VjKo>zK43)c!dLpQ@@e6+KmE3*K!4UdXGhIjU5jK zN(r9X`;qq~T7y1^|0Vnv9Wg2^?ag&_-D6!*Xl7l4b0#}A-6%O*A|@Ie_lvzC<>#>s z4jTWH75VEN(eL2Fy9Xni8cDlt@V8FVP;Z1<&hbNQN%fg9Tk|?M&HfvlMaqXLYuVI$ zpN-i{4vkOuQ_;-ak*xl*Tl~CTy|_HveU=LfuXL07kyf$C!9|5Nu^P+PY5kS&%zQMj>e3$2$9E>$&TcVkfIk1Kso-hZM05 z53Ju$yxK%LIS#F&i4Hni!?k}(4D>}y6o)awlfj;>UzLmmOz;H7eQWW?Sx~fnYquc@ z^$HG4ZA8W?=80Z9dCd;akxMQyvskxUs!(?}Z^fiv&N_8ITa=%E^7MZ>Rp@ScVCmHK zdOf$;EsehBNHpKw(EM;Jizz;wLwvO}Ihm8Uz0gKvDEMu$c}M*AcSqb0MClu_ubGF{ zOJ0(IUPpa=d?RJt?>uW+G5YRX+gZx?zxi2t-QTXnjJCLN2+{IW<6oFtpHN;DyAbv(&7H;0Le)!Q&r^&(NU`IR zV=S6;zZSvxz0*+WUXw)rwPIx0xvi#Z-BOIC`{LSYoM3t3r*E$-mC{<~8 zLf&IAsX0PI1(Zbp9Vh_-hLB~*?&qM;^f`le?x55pCd%~m!xkHO^dtZP%CK?YVu4VF z&mTE+>T6ZR50vx{(=+1@H;PyA7TOKJJ*H!rQ!X@GpPE)xm*`#9k1-7jXbIN8jDR|| z5|dFu;(z*4(tIrY(kBC@A@XgAJQ~Uhr_sEu^5qn~#s9qFD<56WY((6@7Hoydv(;Rp zM&C8!oAjzZj9o9uvdWWF?wo(ICD}al#o0xWb0Q-K&{~C?YJ<5Ns(z6zh&?>m#-D~7+1 z7GdIUuC4C!Z+riCr`LZ_{a#ak+5euanBUWImxnWHcO818bbQoJ{eJCarC)N>nE{{m zB>hc1cueEvpWSzA5fSB%Z)Y#}WPjFwtn$nCLYl-(eu4a|apLSD5)`bs^B}ZO?_b)1 zDTa>m{F)=;MO;y>{Yu$|0|y`4{eA_bX3eNwh5I>w@Ufpw7E|%Mc>d-yQM%(e)J#!( zu!VaQQMv6dwI^U5r3-jrDEfRv2SnnyW+?i7J3?7C0xX=P-;$dW;Jzy%%ZJ#>ZPqyH z!D%Rfp~G^ZN4la2`rBDc+?|Lbakg(>f8-`u4Z)2rs>&G^ z#S~e^DC|y9ByE-3D%+}BOKz6Vxj`FWn{Y%{p8)MID6g(^Voii=j!mB_A+=F}X1_$l zU-G(0o_(WQl*N835p;ec$b4KkywaLS$|_1CDip{BTXN%jDVFL6^zxJ1p}R6c1_XA4-YRK_^8KBBlTOtoX7K*0B%w-* zUol0E|C0()SfDmB2kX|YXbRsza~-d?re&Ye#%so|4&7L*lB)e>r@iqku0reAs}R0Q z{qA=>zP2xjdOwSU_Pt`G87j}eefW9X_cM?CgiT>+dSF%M+O{yCV$XChZTj!S(-?VD za%R;pqQAe6#&w8YQkK*DvtGshKlF`6>0xodk+NH!wc{K|$Z4(1MXrwEFpeu3C?yL_ zz1bWQKl^|Y&RwZ%qIClV!0%G7wYLmVrA)c!?d@qak|Meb1QX$D*~i{Sv>0z?ZLaaZ z-Uu`TilAd=oSDqVQ=U4^W=>4Z*_^#78rCfn=wZX26xpc>@qjykRSBeHy z27YIVJT?afPX}s_isk3H%h43EKCJ{g4EY*mUb}})8jUyu={5aIiV^o^iEp+4sMEPV z1)VVxEH#NXYA3J(t&oo*>zQ)Fz11snE}4}ylC;gjTI`aPl;)m0SRC)HAI`&8of^i^<3r4oeVYBf&SILL}<+ipTxq2wfKy0_VWv&@{S*(X6NYY zUori!_D-U|E36B#ejWu+7G)Y}s8_gRBmJcw5bu97w{3X9x-&nb6%q;4MHq8^Z(K|` zS^1bx`_ti6FT2#fnW@~VDWLdu^+^GLR`vSx?u;$z=>e>%efDMa}HkMh6;AG*Sq0vwk3FL@Ya@_LRGjzPG=H4~|D*GTJEk5`*l z^H-)UHw}BO6EGfY^8- z%{0O~Q#YQyX)z%`m)YN%Mk#1ez4(@7So1UII(t1n#^!j`#8NQm7*6AXjMKtB#-*aC ze}&pR1ksc$AiI7($_|h%=QY?jlX<7yVNLGa1hL18J2G*5_ivWUe?uVtmjn#^pAt?n z<9C5FeO-po@xu`aRo0j=gnzqy+F;gV5?lHQJL>t>KbK}OqP3KKp%&Tgc<>*EvkYUa z4%_Byem>)Gu?uTyRiv7*OQgB_HulAB>K$5!LzvOm$a|lQxzGLR>)`GtweA- zoam6a``NJA<=x-#^TyvZ(`JfJ5(K8$?G5G~E6$A1^S}xKRbtHM-_B3bqgF;+i4Edld}!fXqKy#uTj4y|*@h&0?5?ArbrkS#^VaQ8 zCCZ(L`Y;t3cA(C+db;Gt(IP2Wa(VSr~a0$15E244@Sj^ki*BV`d=ve%{Ndur>%g0uYrh<7pGo2C1bE%A`q6L%b zqwVf57D_ykOEjU&hiXLt5m@sXjKntSKo_0VBAP!s7=((f-FKcZ*1i3Q=&gO>u$`iY zvNXRv#(OB*OA_HXJ@*iHjdA@#g*)&v(>4?(&fiXxUb4S=%|L=ZzB$|a{OS5l+`Y;O z`Hz^%%cOa^UAs*B=Vumea>4}z)j}voIqPL!VkLv}T)>i&?{3q+^;*0aFXy+dIMURO zEqWc)cJ^fa3WfFT(~CKB(pYiz?jy|Po0DhavK_0K%X97Z-tUEBJ)T-GXtq%RgCP_% zq5;ZT5(+>q{@%lV0}`O6{2iL=6l1s~@9N=HmSqF)|E8j;)DC6cKq*uLj_nx*N7GB0 z534xTH`Np*ee+qS7}*{#vA!P@PtslIt-sMD@QluBCQqOr0rxS4+sZZxqJX0;$^dB; z2xyU{cm+8?SGYiFthI4MNvnH=a0zU_ynxT-QI4~(xeo(Ik*~#H>TG1o%4uQgH6qD7 z$0WGuk`43~yl4H9SLUMAz|#@RD9SlfE(NDP8Y>1sY;&spB}y!O2%gR@$t~$F{ENd( z?$_=Q*Yczus9s!g<+ui_KmL;VoCH)=*I?BK#O5U zv@Jg)pRAp*OMBh_Xo~?-G-+{hUPx0nb|UDwZ_|(Qr@)flgB)+EouOrb%=!sAhH)dD zt6J}&V-M!?nl=^vR5BzyNSg-8w)>Qj3bw$VMVxIFLz-UE1068srxZEmb9+kLc7n0d=ljn{+L0bXtv#E z_mb6P{zKJSBokQ4eVSj#A-kJI@((Mh4^a;7K-E zCSDD$$PLbykPWg=OEK%A^jeAOK{vlgqGndDmPX8xzrOPQ;p07Yx_5c{ViGm__N8=K zm)|JmU-g~GPi+=-K6SXoJfBajP4mdfk1iLkLe#Ip@Bi@9d6~u*yKr?SAxR5Gz(i!J zQKFnJbSXM!oXD<{)2v#)*46}H58SJY);}(t{GR`qEtSUd$$m#ZpkIc{?zWWu(Geyn z#@?kJ6K_k%z=g;qAFtW@`nfTJ$45FRpifg%GY#Hc4w(EFVxh$HNWnL2o_s^NG~`Qb zsZ66fg?5<+_wI-MPatp^z!u%s0OxHkw@%qNh*Hl$mK4=n+GxKjJw#t3Lk=CeXl}+z zq6j6K&ZZ~`t8x@MlIwn*uUtC~NDADtgd&ZARbRG17}?B}Jp)8ksFDIZ%dOKv`3~|; zaOR^WXK;dX4DqLb`XmO?XCpf^$c>b#tPz?IX<;t7_1?uJaAj%e=yu}Qi{bWlQEv6otUl!u=*m?IH_j)?>4ammm#Z zXaS5^x!3LJ`okD@@|E2zjSQX63QmOS_?)`xVom5Vjx_^^Xrer-w+{xbbt(>INI7 zoxT}k<(n_c)Cw_r87Zz99xKJh+R(C^M7VZsPzdE|h6?A9bhQm1*E)ULl7)74PlQq*nv(@%+`B9s43)5V zE`ErYsCKI|nT+W;nQ&iMTo6CnTI_XY>n21SZi2&d3(yKRw+(VDb0q;Hwv6MyhGY*~e@==oU*EV(i zPecNDNP%VDlq~v5239UAK>2G*)eM8B9EBkocAXZ9#U-h_cY-9npTF-7vIUZUrw#z(_inAKkH4mL5$PD3OjUEtCFq%% zxN=ww<2%-`nLE$%R~RlH&4y<^C=X=u zv|xzNw_JnM?nP=@o1M-5gBRa3>H{HZ=XI&{`j(ex z0{7VU*>XIH)WiU)lYY~MZn|)!$=ZWwuR$UNEQ_RXywzEj#<5#=|IwEK0O<%cnPIJL z$V^&WGJgw`$_n9Sfzw)6BwAGsmruq_3Z;}xJtiwep}ChPLrcY1a-Rc6vdlMq3y1i`H%Enj; zW4U1E#=`kHTP*U;;A>zImqDW`2xT;Zd~uqvLF`Cik^`|(*UwpI=VJ5of5+alE;L6ELBGM-88umP*C9EXCLB=0iG zg|Iv_Drap48yzV!<&|F_M3IynhNMvoBsFgoPA0bvPn5Aoyj(F2D7UojsHo=Eb9N%& zT(4Eblusb+q>zE$=3KFo6Edj7||W zG0TOQf+%5D!e~Cmm66iGCB4Kdso0MQR7C%_7Thg{P%0wd?L1;*Z333J`1t1a?Ck#Y zf`f06a^+i#iE;(m)(bU7E@lFPDA_nHlF{h)v?XJ3%Ykbim)7 zY_%4_BYbT%o`AzfV~qx0E@#qMOIU3$D~YWg71dGk{evPms+cfhnUr0U)5yDu{*hAq zIqFuBL?j~mtufG zG5^%JpTiRojQ$9#wZ3X-nEv-c*)3L8?}?s77z{f>zWP zxxy){-a$G`q0%12?o@=cFASH?!*)oVwLt9HSpu5LtD|oc^}aKWm`0aB=zgVigHigK zCmk=fpSN4CvR{-<(0xUq!j2Jxt&JfjwN_NnvKjf1hx$ZNV(-3ja_~gmS?G5cPp!GS z^yM1o6@yP6kHrf@jr)6lO|;cu(JOEHI9H|bUexfdD5(h*rz==(aEK|-8TDAqpbLG~ gr2Vb%zt9EJki!2#7yp3{7{3A5s0jbNaQ=7we;oj$tpET3 literal 0 HcmV?d00001 diff --git a/sound/effects/creak3.ogg b/sound/effects/creak3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..88ff37a339ed5b1f068d3e874d5b0f724aaa968a GIT binary patch literal 52507 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 { @@ -21,6 +22,9 @@ export const EscapePodConsole = (_props, context) => { case 4: statusMessage = 'NO EVACUATION'; buttonColor = 'neutral'; + if (data.launch_without_evac) { + operable = 1; + } break; case 5: statusMessage = 'SYSTEMS DOWN'; From 467d441244c4dc8594349b3d3bcb909c0a16c966 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Mon, 6 Nov 2023 09:50:49 +0000 Subject: [PATCH 23/60] Automatic changelog for PR #4699 [ci skip] --- html/changelogs/AutoChangeLog-pr-4699.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4699.yml diff --git a/html/changelogs/AutoChangeLog-pr-4699.yml b/html/changelogs/AutoChangeLog-pr-4699.yml new file mode 100644 index 0000000000..691f38c5f4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4699.yml @@ -0,0 +1,10 @@ +author: "Morrow, Zonespace" +delete-after: True +changes: + - rscadd: "Added objectives to hijack. You now must hold different sections of the ship to successfully launch lifeboats or pods" + - rscadd: "The areas that contribute to hijack objectives are the lifeboat pumps, astronav, and engineering" + - rscadd: "Fuel pumps now have red alert sentries" + - rscadd: "Corporate liaison evac shuttle now can be launched at any time even if evac has not been called" + - rscadd: "You can now self-destruct the ship by overloading the fusion generators in engineering once lifeboat fuel is at 100%." + - rscdel: "Removed auto launch of lifeboats and pods" + - code_imp: "Refactored EvacuationAuthority into SShijack" \ No newline at end of file From 21d1d10f28dbf6c29e5da2f9d318918c2b11caa6 Mon Sep 17 00:00:00 2001 From: 567Turtle <91508746+567Turtle@users.noreply.github.com> Date: Mon, 6 Nov 2023 03:39:00 -0600 Subject: [PATCH 24/60] new whistle (#4847) # About the pull request This replaces the normal whistle sound (lame) with the sound of a WW1 era trench whistle (cool). It's just a sound change, nothing more nothing less. # Explain why it's good for the game The sound of a trench whistle fucks hard for signaling pushes. Plus, the old one was really lame (lame). # Testing Photographs and Procedure

Screenshots & Videos https://voca.ro/1i3RumMIm8qm
# Changelog :cl: soundadd: New whistle sound effect /:cl: --- sound/items/whistle.ogg | Bin 23959 -> 33015 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/sound/items/whistle.ogg b/sound/items/whistle.ogg index 8e276d522669a55f4cbde4ef11c71da717dfa4f4..3223f52cae3699044a36a33b40c68a6e715da48b 100644 GIT binary patch literal 33015 zcmdqJ1yo$ywys+^!9755_u%gC?h+h=I|K_BG(d1D9D-}G5G)YfU4n<;9z5uLwbmkQ z?{nY1=d^R$+dH?t*;+NKs99CB=2w3ofA4*aDJRJR1NvhV*3{6Dg8b!#+!V!>q{z5A z&1~G=$UH4w-E5p3$v9Z}cv;xV=w73-QPbnIypJ>b#Zm| z`{wTM!SU(k<@Fr^`7F~vzRn+q?+X3*(cuJA!FM=94&smFkmOJr0>@5Hu{lG$J(A z8z>Av;M-4OG-yyD86phi9(qV%AlY$9U`Qd<+3B}$WQasJ-l734f9`-Exrzmi2_i!e z`Qs%5CwxV!Ry3|&PvRn;Z=EjEIEJEm=2;i>+i469MSq#;5_l-&&q%|v^6?~s2FbGG zqfmG3bl}6+eKdcGDc;R)GKxbBcOq`vYE8osolK4i;^1M$gNA{@fMP`ib&s=0V1>X0 zCXqvp2a0;wm_7U`MVP4+MIsD8m}igwuH>uDJlKRbn?EVa#{1UsrbF}R)m0e2<7bf+ zm!3$bV~)<@sy?>|K;$~xa2w!jJ2t9G^*RgscKj4~Qd|aQ{%*b*w}FR-tSBFxN|gDO z;9vIp_zTe4u*J+VfeHK{fWCpCu-7siii8AtA%FrQe3WHWLC^`F3nqGeQYXAJIiA&F z`2usQU}Xkjgg4s?hE}^NZbI_Da>ssb(Q7a?q+w1~yob@|0`IQc$zoTn~beJY|+ranekcTH>jMj~4#*gy89xseZWdAZgpuYf}&suBR@GC+-2NiOILf6aE2yws&d<4Xx+W`V05+1m} zb`DWT(2?UmP(I2*rI>mx3z`}geu9!_PR2S4uQC(YvP|z+*3$tmDn&5xMt+b@|LR48 zvv%DQdFnfP4IKi7%e*H0_l~}#IYR(1OAt2(216oV(p*dW?CRLjF^k6?aHSfoG=Z(w zY^2+qPA)v;UY+QekJ8=aycBk2@jxYdpg1{GLjOw5O(BX1kNqVq&amV>EC@vWH9m12 zj`ZWmv?=WntKa$y@i$Yf8*wF~+|Gyag!^D09;!nP_!y#MLh|6vje)QR98-81nw*Lo zVr9{(R~RpL`22=oZ(ti?)eXHk;k7a*xDoxFn|zW}NCm_PtAH+5BxzD(`T$GeKN z%$|LZ^cs(jMpBox1lhwZufsKb61bZ#jb$)p-scd(;B@CPT2dUrRb#q~vHM)oD6&V| zto7zqZH8m}Edcz?0f3Scuaxnj+r97Qn+*GFKAY!8*Wt28rVT-*7N8&cq^L+;a0{o9 z1BB;Z3j-mELbIBxMKkW^3-&TqYGB|+^5e?|b=4;#qeHVjv}QIdP5UXTb`=&8n@@(! zS^3k~=V`L-Xl@YV%T8(9vgkJ(OQ@C+%9~BR0{~!WM{`O*EnFdEyjLfCS7&^)mZ8dy zYqh+zD4q~Hv`@F>+T!1I@*!XEzuX=}+^x0N%SB1DUx0eRdU?AT5swO@Zoq`R4`%9Y zs8rgvExlp7rk)fDg#^A)S(?T9Q1Cov;R~+LGjb2h@SGCbQyCZr2DW2=pGZP|#2nHY z2E{2VMFlc1E3k}g^3U(pTlB>ZG!z*ACr&44#V!EwmG21mpM>2Ow?+lW#xb21PibpDqpG!)r5UWqR_tm7EMv*`nxSv64DukrX_StT+N z!y)Ypw=di#(MeEwpRTVi;`SpvSlJ4H-`o9J*p0m*8I*Pc++P=lqHkuElY}`d^{4=M z0l?@PUX0)wsn&V2(b@D8&8~yI@MOQF+-Dn%8n4Xw^<5Pcs^1LjF~lKTYl{8@5E^Ex zPKeFlAr3JKgvwl6%^-J3@SQJ>4}(m8@@M`6EC#`uYHnn`XFB4pJMxvf0bl4f)FM)d z8)dm1F*I?NAYAwu_H@i^wGw4JdMucZxDU@Um4ZONN-`I4b6hspC>K3v%K?yI^wL~u zvc8=brT{QG;>DhE#XW8&fTdYk@XjSwBx#$2q3dx zQpIc&r1L*h?${rT#9*wy0!~7lSQoiAQ#M~%ipI9LdG$QW+P`@yug4b% z(}@BOAs-3Zk{_~do2LxwKNphN&3-?Y-zoBK|McQhZ3ML%oO)VtdX$x+tFxiSfB6gl zSMTtspiZlq9bcwj3PPPvHGn8c_SYDs2e}8rq`OG1g2Z=GoBkSFF6k1g9~~ZuRG&DycvPBfqJUu$#&qlM61De zYvruLfpoOUx4IsgFqmJ7dXnzJ7&xupRhM>**_49;&++Kdb z71QEd0@uk@OG$c)sFwZvIn|TZBf^BH_~%?~z|$Yi4Z6U7HnTf0D{^_1H*GVc9MujO z-2+E;gbhpn^)7BA?O5ST=&X{OtVA0#njIk6zyv7`1a=0T_qa!n@7lvu2PiPfLQ0n` z7`gKDdA3vtrBzJVUmR&pDe_|S9}H)-3(dLXM3eFvPET6X$i+xig5$O-_5!pl4Oa6B ziwJv}+u}knJS8>NLro^&xh`MX81_!n^XGqMn!(J*k6Wi>}n8lgiZmKe|iq`!^!qye|}*i-k5PazavCd|WK3bsiB zsznXtc!bKH;pv}0vjdI|ZVaMuznH{wk?b8k2jA)E=kAeA>A0{dmoDuBXD7f48yRq< z^KkPbz38UYX{!48LP=O>r9?}fPI#zMDDnSdPLF^*Ej4$1nEqDKb)o|Kq3W+ODA)jE zvsJN5o*-N~#}V?8aV>#cE2VSAOIfk5m@eCc;(-W+=-yZ#K1&iZzH#r2IcrAl=+2k$ zc!c#)Di3Od=JASd^}A)1HL{b<^hb#cB`zUpNtYLPjN7I27Q*u_MBa8BWpT1D@@g`u zxP)ZPk|2(JzuA*ylDhlLwpC`UIScba`Y8N^@ks+Ctr6d6WB)0NRBwk$;89? z@8v7%$fJ*{)~G}Gy5D^FRWB=N-Pa9f2V|+poRT0Gu4wXwhG)OP3k8`Bw*isx-ZIeFXTJYs zKn}bXb2;GVweRDnM&<3xc3W1V*H^pi-N|Ce?sq|1dC2lliM2WOwCU4QJ)3c~iZ+XX zhg`uB4R=9=4HrOOxFcI0@7|61cBh# zvCweT2T}rC1)|bMJh{qN4A4|z-^{{oqq{39<7cQHivYv#G8?`AFUtBDPxME zHxRzv_k8gGoMMZ&6WXX;qEi?TR%>J)VIR}z*Agq#At7RQ#_Om1-6_#ufX;<1)z)yC zTz>(QONN9v=U)nf?u4L%jWyAa#-lLW5->m9&X*5$j-yk`MMOr@2*W2*f+ZD2MGQAJ z?j!TWm93rj`xFT-tvUTZ=&CsZp4mMxi?>Nor?MGe$BPGdG6ZGhX34~RJ|(f_ofgjw zjgNoPz1dz!e7_aXPeNCgI9%jK6`_tab2iUn;jL+{9{NP_yJ^Rds|t4!6F4p;s8QBr z8u%CobtIZf!nf6NHRSK!GBnLdm$HFSUiSt7ACd$qEQi^%Sd2)rwO#X@jx+W$P$DyT zP-)J>hsS1as~ud>&G$s)J!fyrixiDyM1V7+wnc(xulcsx+K)f^%?~bj5wNWe2{X*I zmeS~0u;$JmWBo=-e*%I(=d_qubYfP21cc#{As5ryAo{2v+NdB9RJ%{gh~UaafVX9~ zP^ocCsZTYg9;6dwvPpLUn*Q5HjtlTbQLPNK2#Yw^1pc{d4 zg@vxVBfV*`qqsLuhu!RQZjvqfSO~|p&PWSMzG%TcUlfSJBkM2XJ|BKX!gGSM<#&5l4Q9nP z1_1Yk0tc;645l1gjbk1qGr@b@7fSovyjSTTRt;Xu$#CK=T)Y*_&^QKOxGUf%e#(e1 zofxxl<=OX`$qc4e>>q7>9T7WxWVZbEz+JCUU~g1>=FOmKFnI^BIkEI_FyxO460uS< ze~0@E5c&yN#*xY6mq~!pf`TXrVL4hiyijANorrHyU`wlVv9Q4wtA#YT$*<2`aKw!r zOf3b;ZEnD!kxl5jkzViuTksRd23BuM<^cZXhc$_J*4a~A$ln&D7WD``s9hAaSBZn- zaWI$F!U-~mEhL!hSAp_RsVY7f=J-|2{ef|N$)lx)<%hW(baeQlCOwRyILN`UAjc-= z(RRACqoRNx<@yPQ(M@mIgoow`0)wb=^LGiq6JFr~z$Z`HBWA51L34`c=J-Q=O%uyf z0}XaegF==cK~K^bBVS_BE-jWHg(TBSD(7Zz=KUCZ0Dvy`$*R&!qWhZGGSbRsU`YXgSC(4cf1CVS- z1PH3h{Apzv;i}h?udlb~eGA_45Y?Iqb_$3B|4uR(MrAnl{S8Dy5Wv}%|r}%^5 zWZ+*R(0xfEXV)?}mUJ5mxDKqR3j0Gvyk8l;(GYwx2U;lWIKiq~Phu_`*pF27U{af2RK@AeeKp zKNLj#OF1W_peuKYzyu8v|6r>t7C4iSAw3J28k6_zO_SZ~f3~8{q_0R=Hc?t*F1^*}6cf-t znp9wmqHeGGspnyHvu*cbn$mF$ujaXIM76fP6MYVvI1O`sq47)63CR!6l$hi5m{3%K z0%i{%#z-vNJRkTL8cN%HuV|4UYM#iM1TMft>#@0jI5C+6fS<~=UyX#!!Wj?zg|xma z4MeTt^>9TW>$Vrx@4?xVvz>7C^QZtPe#d7l2JGD!d(#X#W&HY;mjWEoTGn|O^ATBK z1iq+*D}F*r0;;3S_qplA{WM6OcfTXA{Sy%A{DsAM*E{CUUtOH^h_0m z*rFiTa(BzS9eYw-II|k=B*A?sv5Sn!N{%u|u1UeBto9W-B*(TH02D5x^G|$cJ4hj{|fKzsLY8&eI9xgOJ`HtSW;+%Mg#)h&z86A3Bm+zvUj48|6lT;!o zx`)6X=j^xpZ`Rafh=aFM`!@5pi^H%1OPOoB^gjZU?!tnMLGS2T;wH(Zzw25qmVIrU z3d=WRFbPb87ev7@2{w@ozK(i+ZL!-4GSd`vn3VJ}r!njmnmE>am=whicCPM&uPYfr5i651j8nEslLf1{2E_kSrVbjX700 zZMJWc_$?!udee5H`VJ8%d+t=X83Sr-iTkyQeJWh*gqviUIudoMdX|`1|FOy+%?F|9 zr6^tg&Vxj$ML{6w`V_ov+z`!8qjm9k7Bg=%ZVhNulp~^~ zv~)R}R4zvVc&Jbt7T{2C%G`PVz+a8F7m`YM?fYr})q_y`$}y2wi`LKnAB}802GuOD z)<>^^C`H984e7S?lpJ@!V+OzbqnCMN9e$M-d)v(D@P1i&QVNx9Rm2+IIub%0G7iyD zwI2v$*A&lOi%2{%Wbu;)vLc!c>n44~m%vf+qBKjsJ?@J7uMJ~B$SwLG8{NVL zd+7#tG0?<^F!mz9?+p4>7nW35qCk-W)>@M$sprtWr6p>{xBdEZ=ErgSwZ|2U?+AYE zgK5rFtucTp)t92G;(Rgs*5W9A_a-S+igh{VwZ*?(NsoXStku>8{!vL-1IxtJ|7{YG zImiE~B-k*HFbn7rxi^LJH)?e^iFJV-$niVuD!wg?6hf)uUF85bw7M_P+_*|BQaS?p z(`}yi5!a=Xj&W;-HD7d0kZ;`3d|g!el=D{Fwu~@lMi9VeyJabR-qgMxd2>&_*u?m~ z?7Fo1ebyB1?U7{-#-QKanP#~FElV#>8+W7jli^$t4BFwBo9M4~X6Wa+fEl_qF;`L zh?z9ih(UF42*sJx0D=j$dh=x#Xv9j`VWVU1Gg|!hh}{jFbJZsy+h0$@)NN9R>_5kB zgTIcxv*l|5t08G|DbDO9x3DEmu*)aOt_8z%$)NE@9KvDQZ*{;eFU$sfdhprOFE#gR z@@3TZ+jCC0ZaXp%?|Sh!IhpeHHMD9CaPm-yS_|)b$2n3mCnl6`Nc6| zd+!OH^1)Fr)4dQ)xgu3w)#glD=az_yXTcy4 zmD}P8T~o8q!Y$uSOZfT)qhTfb5G)ydASF4$OITQ_^j;Nu5_1h709cdIrnGriwysmh z)A}`gbz85<%hqwGl46#5KDY>$SX6g_V#MaKWhK~NO@iEr9Z`wQf3WTI=jDilYA>U$ zVXuZpwq>M7Hw7y%;Rc#3BK0^`VKm+-BE{cQ@c9!E=p4gJHP;Wv^;e>L4>1W2&c74{ zH7N>$@laD!TF^uZl*dU^1SeD2#z~slnCzg;C2hpx!gYJJL-3e8_E7t8md)Af+b^x~ zYOD^OZ8gQdvi9sV$MrU==63d!t1{eI<@wDs_kpggec9M`F8_JIS#+p#Ki@<=c+v0sj#jd^|FD^a1 zDCY*pi#HdsiPR_0sPAtl68D!%;r>$$k({6rPx8NV$iI*K(U( z5!Xt;$4R?`!1lX`pAR>Y-%F>^%-7#K+$kAp1He|%anpA*^KeI>H);I#!A>Z@2hCr~ z`U}w6y_LGT(?3c*F3D1+(>1?rwnHMM9~8nf6UMl-6;Sb^k9qR)2&d`whY|NrQX0;k z9?w~ikwt&%R|CL_T?zhYC#N$h&BIy+tm|2hlMH<>4^HGUn~S{Yk*Mx>qeL3oy#W)r z_2wo(S=)v`0Y=4xZ@7$IYfpn4Fty4OF5l^hB^SrQBF6$WllhA4SZ5Z|YS&_rZ2+q+?##G=vyO-?D?ijG&gVE38j z7J6F!c-H4nr(93+`~;Dh@~xy2aBLH*2hE8U8!Y%ZK7M{10N4^$PMizvGwpjxWWDpB z_wv8-dlfjDhSCo03 zFgp4gPEh%o=Z9Ah-t>oOOGO09qxYGWr(6~E$!(t6UJdQl_dP^9DN7+6*8E8_Y-ld_ z#aiA{l|~ci0_0E<9nSb_5vB)G6}crcFJU`Ib)CXW+oO%_xK2PF{Xs$BOcSVT*D!GV zh9KFDPK6t>LX&y(W+tV6b*wwD`PhSP75;ubX_)|cv2$>ysMF`*2pk}=VrK|o7md23 zyDarf0&_Q);fId%u z$j>Q&so#rnMZdjVcr-`Jt_`iKY?c}vKO!=~L5!*IVP#ckK-Oz1dkWLbOF__el*~W{ z0(q%FkDl9(#aCc!NKSt(?_A3BnpQCCDAzE`^ouMfudOTtK7st(bpUvET|7TA<-z*W57uq0*k%SLhB zc>>HvY7c9+gIR`|>55TSa%cvI9TxK6*U$UQB%IAzsGHmUU5i7z2P=d){GA8IG(n1V zp!8CBY2D zV#Cm!vJMPGBRBej{Dcz6B>}`dm{)Nb;E+;2Yq#0hBwuFVCJI}U8b2aiKYgEa1pvPE zD_0fQ7GlUH%bq|V%2xh#OW3mvkem;9o=@OguDjPEzQsq^kiq7-Er;}Esav7!eC4>@ ze{_ZKCUR|RZbzZW;ml3Phn^!v2&Oz!*qkLwnD6%i`CnD|7ohX!)@rg#M9#lL95q-j zra}ktQ9&1mAkY&>=*i0Cr^0Ddiqi$yBL>JI>m)3Cf=t(?1cG}r$)Y@UaqT74$JL2i;y5gc1oj5^w?VgRKh zZ&RE*tB4o-z)#|HVb~=`?HrZj-&q1cw(8Cfhgg5>F`B7>bg55!wI5Z*^(}9ivNL>r z9wK=sKTePQ=!HW7089yWkD!E+&_nJz7}W9oq2f)z=mh}GztoQK(N+-6ia_82yGKA7xIr{sY(K5bcFqwlCBR~ z4NxopG0EZ{D;^iU-xeAg5sIvHwgV+h2-~*36ctMkYmasWQ*Vnls z-&R<&v!ziVz0L?qk-F2-rj3Iv*m_EWhCzRi%J5sw!7mv-0wT4TFo^rZW+Onf0)@T| zmVvYzATEwH5GooL8%`C{@-DUi_!-~MdttParlzIYX!Y8mFj&=D)P#H*9*T%7EXIVN zfch?pWS=Uc=~anU(Ahyen0sTOGsI?GZs|6SJ+0YNaC=yyH*km5EU4rafu_T_hoLWh zmETH$uNK3;{=ugIO7so^u~C6c3QscKn(T*a6n*y6@i_dDIR4-dGio3ZK~}h53Rsz9 z*TTGrcS;>a=gM%G1I41bIt7vLAN2a2KU_2jP_sBl-qGERTja*C$Gt8Q(XTYVBMx zHtX5j##P*_&D%NH>&*68yrN)xgG?X|N7N1g1A(x)Sb1O)dY4mE`fzeu*d;|1wdzab zIH!A3h|dkUc=_KP(*9HsyxY+q{U9P&3fTTQXuWX^heQcSK^;&4HboMKsgLxyCWHB~L47tKTw$mh{QA??-1~PoGQC@ z6r&bzxMKU2;bc%6B{2lPi;|SEkWGk!p)jFZnB^KUy9kT8X^_79BKA}VK)?Vs=uy;} zN3PTBZgv^%smFqi!}KnL>91)T&4Qun!C$_OKgrur#g8UxqqBi@d@VVkNeNVRtIMN# zo*R9RaeeW#@4A;~*LDkzk&vQZB)>-R)g~+-V~oVZ;u;L45Odjz<-vl;(AImlBAUYB ziB;8Mi!-W(6)WEI=8ABgWI~)RUNNMC_*2M%JYD#1ma++3>IZyyFC`WZ+SQVlM3o3= zhq$Nzd6np|5O?;|d_n?Z5-1A#En(4L#6@O6@}LG$Dl9Tl&^s{|0??D$>HtQguC_TQ zJJd;|&R*?GE$Isc@s86x)%P8%>VZy4l{+%aB0rwt<5nifRGvg1GRoo`SJqr)F0L;> z*rf4}<}yEFWU5L<+0Wm9>bp{X57k=~W>TW%d$|wXuq~G@GB%rgw(Ui^YYAY`bX%~# z7ee?pZx-i?fCLG;@EXS3KH(tr?+~|Xl(X;$w<+94-smpwPf3z^`iI-#Zh3?d9 z#|9~$SniT8R00%awRuadaya?>TVm!6&OtI5@c(ldzs8+^{`&~1(n`bJmiQadMt>mG z&v7)dWTp3znWbLXW`QVnq8~LEK%nr4qSflvD?y%|HQ%gKp4Nt}L#4sNP$&>aVlIa* zLm^U=0&G-UZ(;q(waAlQzduQ?!JZ2c=0HNv%|Q`1^7MEUjnF zyoG&Th~G6hEB3^xHOqVeQOd?N3{UDh4*`qZghmD6jZhim<}xJ1K~3OO-GnJb46MiP zp;{{j9%2iYYvMpQ(s5abami~i2PJ|HvqxoRsj|{=*`y{uQyN-!Il$dHK~tGShWeWb zNfA2bl_agb@H!x|x` zNx-v&TfDBWqt9k`%!#Tr4Ug|fmbpE1eb8lL4l-qttpJrqqfrDZmbb=VwkFqE~{IC!3y-r zDMZt9T|MlEpNJFXz?*fp`lVWXPI|)`Yz1|PXw-N zpAS58au!@zx*lXsQzL6j`dJH<=x`)yE~Xl&U}>CbI@v%5lAFyy4u9vrIr{viqrb+W za|SC&Ee^K>MHC?yL;=Dej)$0phF^IQy&`{K{NsLa&Z1TKuC;Emf%V@if zsoCLho|`|dn4QhBKdg1QfX!O0IDUu^J>EcbtQJGIBiIZyWG46T>m5CYxE~g3XRd$G zEJdGBmWgTg_ytJTlH-q6#Abu%Y<7Z7@*L%5s~6X=i~L%YY;Q3w^TfwzIBCB*jlRK_$MLa8Zg3Zrg2>sqP@!fINHGq=uBu|pQfsC3%b z9eU-2##K)nhzQyc9q%-12t;~v5fcC$%)RC4|ClZ8;d%9d-uiWv`9YZD`SSNkqZQfw znU4%rOY3p>TPr!=x00f8?JH_CdHwzn<{Aa&i|qGFlw@<7;)6{hIab9viFn1$g?rli zRHfkGUG#Ybv}QSJ?(lal4&CydltYCV;$x}DlM%uPM);8T=faUdZ$)v=JC+Asjfd0s zzLejoVUXd;U^o}0NuJQH4Bd<*7G)4C;p_?W563e~W#^PC@9DeGh(C+sP@6K(*NsxF zzjUV%XSx`X-&d+{&jElOYn$SYAFgrPPs%bF*|M|@Zz_1x&PTC{JKtpjODa#IPtHB9VU4Oq@(Hu*^x64QbQQiTl!-O zq^!$`wuxgDeU=;XQz7l*=rvY$(Gm>|Av^duEPQ}_-wlPMB;kFu=4GRjjdv-ZA`X#T zvITtmwS>kskp8xCW%XWPwa<6L(v~D0Hv`{Q-@YAnqPlQwGRByL$@wKLS(vz_g(~F2 z2u7CKPxrOKEvefr+LibA*KSBBn_G758uAKI&#?(ySZsT`?12d9h_LQ?!8Fu5zkK#2omN z7e(Fsf+H<+pq(cy6|1?CNBntP+ORV|r^~zlkB!)WIN|@@2agK6vVgR_|8Ce}=w(PT zw|a;^0+NveA>5q%tsH)B@zQ;bdwo%*aAaGtPhlDw5@CpB{5~mCJpy51Yv1R5Mep*A zxM7-UUAHY^(SuO-eAe#1@@fAK%Zbo2jAJM^?h6{*RuLO)-;?%1Vx|50Qhf);xxMVF z5^Iw%H}a7QV>7j{p+wor<`?svRQ#v$ua zwc_RfjYXeFK#P{@CjWG$5#r>3uEi;7U_fkw4hEEi&kH_+i2)ybsqEHU2CFY7aq-SC z#kz+o*rPQ2j1T*xH_!x4_Q@>VbNkfEumOOlVJY5woD)QE9#Z!N3N3Nr=kw36+iY!3 z`N8dP_e)ibZ@iOk*S*iRljOc#J@~vWll3vJRADP%&Y3Ys)=LckaKbc?B?`Sbz9l{5 zj-w&`#a+c>bW0o&O&1<1P;CjX0>!xiZ5N)naD*o2-eu2ZK!-| zFz&^POBp&tY))<})_mVuCnB5^-!Q~t`4FHGY0FkUq_+E7%WbIL-!Du{@Q|rKycPuG zoDcPqj(qd~j`#+V+asW9NXy#}xAU>xfMJ;`6Z4_**BB%|_XHB?R`4fH-RSRr)H$x4 zv>3NN=+(tsDmQ&W5ufTQW0y}eML%!@PR(VZ^-jgQFUI(fv?#YKHD}wmsE*?8+g%GDc{Y-?lE5x79C775xQ>fToLY_%J~%b3VDv(gqVAKc3R@qZ^8r3T zr(HZ5lvYx0_}MJqrkxkVq;}z*z{2xNt(2+>*e_whC@5KilMS-^#0M8;8o|Tp_3hV@{9#Mx!JCH4O8;gqFV2sc zbf-qkD2L0-X~#;lJpvoHcpNwumLzzriZ-eyzf(Pbgu_Qb>z0!{zJJdwMO%xPgIr80 z;xWWQbFM-5M5C3}u`Bd>5)}K2Jd(;B`GYrd9DOjc0Hu~s*_;UaysNV82#1?q@nUf@ zYF%xlU%**2%jI)FQr?mv*D2a$cv>K<@~zWF!{JuGnb6dkn_d$xxMU8mO7$@#R#%dGqkCOng^z|W#41DE1Y z-ypCH;Qowh&$3?C*dww%-dGs?i1j@n)89u<(TaxoDR*F#bp+S?$G#w;P~tj=n}Df_ zRg589mYm{;sE_Ja7Uj(btzk&L^ovOqU;De2hOEWGL}e)!7_Iw?f!2;bDeY|S*}f|T zmKW{M3mSNs^<6ril%RF9u)6#-`DWpf)3yqHCpX_7C^o`nCL1zIY7!g$c!IaSYe09( zY6i|N;T$EV#qQ6iu0LRJe{l*JO-^y}6uPzNY+r9XaEOQ(FNAlh-;KQ~ea34$Y~v>U z)5{wvi`6kQ?0=M9{_oHA|LDJeDd?QmTHW~{{UD5nRH>kYnvO>WiG@;;L*BfRTiSGB z-hKv~%1#jfZ5A(C?l&kJRWz$0kSsp4B-4jEjAA8#W^2%+boLyXx{*t1NRz%O>lvB- zpy+p7Jz)((>fq~0*#YsW3z1=Wa2+MKV>(~5LjJ?F;9xq{h0=I4!PlApG}G2OXi=c)F<2!2}FS8=vxmG7^a}shI=@&rzg% zC-&p50ibnn+nW9@|IjO=^?)}9s`f`sl>xx!h*R28V}K^xtdpa;^XxaeoU8WsJHMjJ zj~v2wWrfu;m5p4QBU&01jD|B4biM+r2S+l!{*>p5qt%`&WcN z0(xSlZYp4y@T=u*3Yq%*kC~-z29Rb9LbE=sW37cfO7hjsaAfom=-8U9uEd$OXBh>-!s< znxCzFZ7_V`=?i8#E6V-74nJvr`SCN#$%|d9rHbL<=5{i+7CJdIG^8sw&PRz z*m3PXi*Cp|5-djkI~G0uN1^=*2>x8jYQo&cp+MX{a7XPbIQ)c zx{%aB@bl(d@Z?dp88HJK`#MO1aUC|4v=yID7WGX!YCBK`Ui-iw+tYe|@s_4yy>OA0G`Dg$7@OLu2g$S-S%2z-@OS(k=Xt$R~<#(8@fw+Dx zuK5G7ZbfW=|0O>I9|EZCq_dFhqh|E-4A0yO?#VV+n^EboOIM2N?hPEha&Q1^Q)#sk zOF{{@>OJs~_oemwq+y5x`3k4yse|f3dDPn0n0+_@oMH%KMW-oMy*TVF_o`q+_lkS$ zr}4LfLud83n}FMxjrz^A4XZFc36cKe_dl=@j#-l5ouVK~<5cS6Yp4F6VD}fGvlB?m z`yZDh!-!9oisk&f7KcO)fr_yBZNmOsHZ#m)!DN%z3wWqzjyb?~l{RHT!EM|UqW>h zqm`=EpHKI7P1KxJm|%DHrjpZii#&d|OD{PsfZ8)1+C)E`-)47Y8Fz@9(5@j;che%q3BgheCp8GqtwY= z&Kz$;T9ashjoFQ_Y|{WlhibisCK_q75Pw(&hITDG-#87VHVnk|SRTEQA9`Uly=#yx z3|~AfMMNgpqaF!4C@8OCv7xM2ocz9xTa$d056NB)d2mqN<2!53{qHHH`UR>Vitr;8 zs9E<|V|~**w;$>$xqZr&m^5+8*E``6`uf^(1_%zPOFhQeSG8AFF1XFpUHJ*!RIh}_ zST3l9Tk_n-GE3C5N6Z=B6O&$cm)5>PkS(10*R>G-V-Wk#AN>XB9PR+w-bR$lDE_W;=(Ph(}FZ{z(dh1Ys!%L>|PE!ddJJr;W2%Q`6u2 z-c}SQGKd|650<2ao(Z|%*yyu`S;A9~x{rDm3dnQ?A>>*CSDPGGVlnY_*>=F83V(fU zX|Zh1yCPp|I$IsvZ@t-a@lQ2)w>-fn55Ubcg(TfzH9j#CRw|^?h%Thx6Vd)(wEhGH zeU4?V+V3lA@~9xpCs`tBtc{SJ|E$G2zO*qPpS^Z9XGAq;`l~JLWcP14bS8kw} zJp8!OQm=ff8t;JX0i{Fp%F`mDMhU(X1FnV~CSZN+er?6lm}NH3q*n@w%%_9UX-?3e zc|=QE>3N-ulGlu+i;owP3(@GvU1d9PB-0) zoW94QMbhP~(`*Ai&V0PrY@%CCW4)F&*RY_ZXTWio^R=cW$ij@r#JtQ)P8QJc{~Vr_ zERaF;J?+BMu)ytOR#KGs^O(tlMAh$QSoAQ1YZJfW`k0S^_$^f-mx6)hJAYo#50fq9 zp8+|PLhKzJn^lJOrD`q_sWMZ<8}%pxDOEb?NE%vc4-loauqT$znU&WDBSE<=uDVy?6U{dgIO@z1SCyk}kJrj8>ryo^R_a<1<0N3V38 z(k*Hk%Chd*&6_^0mlbZ6%FG=rW#n62?wUq&=`e}uR@fqTsC+HA^I4^@yu8#KR#INh ztP8hVqUd2+64c)b8cG$c)SZhA*f4so+_YDX0eyj#i&}n6T#b1B{#`lM((Jt+ ziPF9A?_nTy3Kup}-uO|re`gEg5fG}inkmuWAr2!REEdc3ce}y%{R9Nii#}1&=u6R3 z53rjfNyM0~e1&NTn=HO4nfniOwhU-h#94meUYy96W?RG7>wx%jPVe(j>4QVv^uzz`FpYisyQ!_X{Rq@BsZF;$z_D_rR_{&m< zBdjLZp=XICQ%M%huQ~!j+P9<%Zq3yr=Akd_h`hKsUbl9AG<>7MCP@_4VOm2z-bMap zGm)jRVeGy;89#`rVLViXM4O(2jrg5W;_9NEhXzBo0a=o~AavLu~fL18nMR!S*)uMnp!S6#Kwqq=kp4 zgpb+>OY!YADDYGC#<`>AkvjeVQ{I_}L;b#cd`z}b*2*5nn%y*H-v)#1#xBb+cFCG8 zr3I0Fo5@hJ%Q9q_NR}`Z$xd0bWhcb^97(@(oj=Y$=lb=%t}}l;GoShQ^|{~o{k)(1 zx*ywqh=1Ke4srb_D0E^+T1#=Y`dcy+u3mq`FvVwMV)NjZ&e@RS7YXRr@hhfTOn=Lh zI|f9!Nrcoz`~gH6fl-cTJGFY$d5*HtL*tRdDH1hY`4o=|lk4#{5+m*oyGz>7xYX=+- zEBz9hH0P;@6A`{FK}pl;tP z+S6$1TEwGg>`{ao(f_wSI{%{v_+S4x21LBc?VxKtYH@U`aGZmv&SGSvIgNi82};fi zM^)Uup3IqRda)N*18(k#8g3eCit7@JqD7dAfO<_965n3OcjEoSe?WzWaeOg3F-5FJ zkfKqw?ODE?(L&Z6WF|M=DB3Q5D=xSeXkHQ9GCrT5gMA|-KIsryT!-l`*J4=1L2(0j z7E)0|H(j+p8E#1zES5a-Sq(Zs>#egICkl}Da)zKUo4-%=UDpW)Ah&Y+jTXOso3ajdUqj^m?m;J3x~f| z)SW~SgPjf{;?I${9!CDi>N&!4T*U#Ej!+R9HEc7M1g7<5cnQMW0+uqJb?e*j=cPJ% z@`b)@rA(w>GP!}xEVK;ysoCVEK|6ZmQ)IDe;`g(zRqmJ0)+XR~J|+;y3QAqTkn$7b zAF9c{&VvShjun$YNV`=XkR=;~>o-OHtH5F^`XkGz{W!)oRNZ%#4?`EvPo{E)>hfeM zum|fDSU67wc#)^&KP;(=mg=ET;{RNDoxz|d<)BSUr1q4{Y10UmC`$54)~UpiaUX3KiTbT7d?Azv zT#MU~jPW`vxM+6dh<5)C><>p$g)zDFF70*0VDPm-lJ)4)}QthOte!?cE#CwKAq5yGmR6)zK=47FAC)V(lsOxBrMelp|D!)R$@F6E^G=@I_^&zEv$j6!C z<)d49R|7;^Z5&7+YpAFL09O_ax@~lfQR8h)5RW#=I)lobva-@EMh>;eOhE#a| zG|5G~oS_LB%Vi1N@GR=w6-#mmS8`bUZE%uRCPK#LXk?uWk@fSe@Zw4k1B!(Bd?#Qck|yvhbNlen|x_s`UEAo=z;QiZt68(lS=g#&e88^&8?&XOmgfc z6?N75f$MQCek#e2%--3@<2~Dxa*ha;AidL~btaPDUP%8_rLSShaeQ zaJ>vZ{}$PhA{v?pWfb<>+zUy*Y3 z2Es&_-@in92dI`pd+u+k+cBqKfHsmewVkA(zxP3u7tV-6zkN93bu4jY|Fr^y+B}`? z$k~64EMmFl1-{aK30dtVJ#(=J3TjL1XRnXyr(Bdt&Dot4)^cW^z-w=S3x?w z&JheS!_dsFt1lU~$c?jLbRtpo9#(5i2Gq>`Du5a>%I@2Ff;Bzr_A(LfOJV*d;{op_ z?Ime7^;%yDtpsQMn74!2(5!36lK`L^8MF9(hRqBY`;;Wzu{-8BE6iVTl`3e{a=1OX zPC$2ivs>Vjpo&~t1RU|0g!Z4|?;NA~wfvH}jRtv5(Wied*C5>G=l*kd0}udMwYYS- zdZ)P(87)wpmYxz7s`m~(q4-t=Y-cHH(8xBQLXzyS;wKqdlK9dHIw|>0HdY-@lS$V2 z03`0eAmIWNwZ$)J@Kd&AnQ-!Y2{u*Fe6icGkRYw{Id@RBqcYtLz~&OdQm+v3(7VO* z%@AbE@9Ac-ak8CR)phO78=KlOytaoc_-0h^JJkG@05ma(twlk8()BUgejU%}T1y;mR8O7$PSq@braR0cq$53TH!RfVLg+Yx02}i<>YCU8Ok8}T z$)QDm>LdV(0i;fslt}W%N{R%RYk!sm29=nn&2>pYlsJGy;~WCE1gYxQUj^wI=%W|- z+pfj%48IW^`wRW1Zy3trZ63y#@ZgBM(!Zr$$ZUBlypK~FcS*8 z79%U)v6lMF{yhq*GMx!~urwYe*N{6{=K@kX^DMGqZ(4vd93@XCh zIZFHzTf7i0VXH6d2pui}X=FzTb1} zaF-nT7beL5H*x#*a1ufLdTJ4SS5J!sx?PZ2SI}B7{M%d?0 zdnOo~qNMu+tQ6kL3#M;XsEb}|kU)e~0&_l9Nc#(}u4@!149n_&AHoc;^t)#}Ct=HA znC|-TeV^o5Oy;y|v~xU5d6>L{zpD?BRz0n;ZJ2%S2C1|!H|jIpeBm*ev>bEjz!kF( zsrlgoU{@fk;Cur7=u8w1-(z%bKyDj{EDeo8@+*dOqY{-32tm@XLU!)~FKNy!cDoGa z&8y&@Ta)rUrx8Qp8x_x08Epv zL|mp0oGheBKG{9FSqmRLti zdbhTQ6ISFwRqla;=^LJYEsO600(OJsl2BF#?=6CAceYGt#-OUvU1$H3=Jjtbr{Bkb z&TfobsTHdJ0Ysg`O!3U8@dOY75a@hY6+B1K(JbwYL~IV&8!eBwk$aiIZMv>D$4F;J z0rY0u<#vdS7bLJoB=($k7Z0+TJqPbGbO?!OuS@Tbe=J=wYoeY>M~`i#2&u|Ew^Rme zbRz50ANap*$1gOC`Pt;d!CX=$;$jb6ouLwzKE=9CXX;UJ>shiceo2+QE-jRm9cfiH zA`WrSew_CDCh;v1JMKHLG^n%a*Kqq8fDaImxe1>(1XQD`#;EwvqA5kUrRqtQnQ8^y z4HDAkJY>Gn237OqYX)1(tYQu+|N5_F9D5msCi(X}3hFNa`cl=Sd`a}yNktO|sIT+} zttGL?K~@{nVicABdWY#TpmUoS5N+gt?hm4Z2QyRHok|?lWrV14{EoL*)#Vt4WE+%p z2@=5|;Jzcx={4MF2T(L19qrfb_=3F;YRziwLz{Ai$yVPIMRGDB)V?Ll6`DU)M+tdN z4yJ?-xqT0=Ns)jSTaW0N)Wm;)!qLn6h>D$P?QDMD0QE}2yq9dl0dl~XR2UxH41=+?yh;gw>fdvfkOK9jgR8b}--w6wUp>r+9@`{+x%k}q>Pqc98h z@cVZ=O|N97o0Puey`J{aY++nl+Yd6^(10vi6B4C=tET=gr z&YoR>-Us$u;@AM3R8&+~XXHjRQA*QByw>eWdFMe8orkw)8fFB|ofEAVd~tD)6L$uy z^5@@o|1eQw4Yp+j&Ja96p^NI<2l<5crj4mCe8&>ZVPcSr1yOl6T}RUK|3>Ex6>WA|{mZW|oReNiNSwF=4rf4dfodDvtSBoTtu>E$kMIW-}rh5O*L4>pvCY_J6D7joW*1yf<*T|3rc!n}Q zn)gf`Nq1d-r=-76+MehIinMXm9X8kAL_MsHMGHghyIjZZq=I$m+KrSbRW1V_bKH+} zb?(FGBs<2B9isY!)1Tp979`y1am3**55bcRyS8q%kP_6mQ>G)v5^M^`ZCn;(7EiU^ zuG`8jHK7Jj0n}-A&6yp|cDqviALYzN=9{D7I_zcDrs3BVOw~z0+$`@FE|931Peh5g zsYk!UCW^mm2&4BCS2Zlpau(Lz)U&l#A=aG;6wj(=%cRl|6K@x#`}T-3Mwk8}2s|$I z!hjYgJLz#b0w#5J3}$axZbxxhAxhjD$BPzt6cX^4nn;cT5p29OZh!xSndY|_7i+PdRx9ve9a_}b>YQqE?s};V1_!1&G7v@eT6(kc(%P^6i1=&n=xKTI>&G!5 zz$QJiU38Yk<2N8vOB#~WQ$WPPj%PqppXVg#j_1<+E69bD&{!U*FJ9T833WHu%C?SacUToTY?$pma|Bt1C|3C@4T);3wyy^^IoPC zPNTL1Vg9iTZwPicM8Yzs^=#E;w*B284CsQPEodAnV^&ce?w_oQ3~CzLN5_0#kBn1m y()y{Dm|9ZC7j)q-Yuqs)%2fcs=?EC<3814+w5+2?wv!z6kJu0VdY}IPt^WdR`fgbO literal 23959 zcmeFYcUV(R_b56ENeB=yfdoP|^bi8l1#AhuO9>c25JHhEQtcY5p-PvgLg-amP_YFB z1Vp5RV8x2Pz4lkmM&Iu{-~HX+bIyI9^W6W=u(O#xZS7fQ)|xeIZ{NM!4Zy)aX+Pml zX7uL{BuoL85Ea7;ja@5(TeSSsB>GR|^RVq}J^!87dcvTmM6CRG@lC7$CFKeH8A=ms z!3^CSqP;z4Hz^{Ne!{vdAQ2$?Q0ekAY>%#YpYp9|{J(1A70nJ7+ z74N!sV{sJIh|ul0T+FayeMO8grJ*uOSZ|n=?4Y+&Q{ZH}(omga`hwg&VJ4#0J!R*h zJL?h9b{XY!ICk9RS;ap$q2Kc$LGNOQk`Bb0q1T4zXw;R&KtuhR774JSX#(p!yln^m zMu*(ZNtNv%s4fzQllqo!3`ch;#ry0?2%1lbpHDdAS(55~{)p%KRPTjUpD(HY#I%2| zuSf2GS-XBuodg4w$|l8+G`LDK++`E4KuTH*90abRgd~)&q>*23TNfPG7FymD(%chy zqmz206Z5+XL{-Gv+knc@vbz7*73^6Y^uNDoA;T0vgK&90TJCzZilwW{^%$z)ZwwCu zh^91G>R^n4b*#bl*v-&o9cM98=y3Cs!@7SFVU6qn&~)Vnqvb{*Y`AJo#~AL2-7+8R zI1iy>4I}^Sl=z!ppou7+3N8*~qxEzBf1`yB4NI&-n`8b!f*NqD9+S!@%0AvS5i5IA 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

46Vl;`K2^sR{?_s2W;t)p))3h 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 Date: Mon, 6 Nov 2023 10:21:56 +0000 Subject: [PATCH 25/60] Automatic changelog for PR #4847 [ci skip] --- html/changelogs/AutoChangeLog-pr-4847.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4847.yml diff --git a/html/changelogs/AutoChangeLog-pr-4847.yml b/html/changelogs/AutoChangeLog-pr-4847.yml new file mode 100644 index 0000000000..492ab7973c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4847.yml @@ -0,0 +1,4 @@ +author: "567Turtle" +delete-after: True +changes: + - soundadd: "New whistle sound effect" \ No newline at end of file From 38a22b8e7c08160c29d27ed8d5116dc9ea36d883 Mon Sep 17 00:00:00 2001 From: fira Date: Mon, 6 Nov 2023 10:40:08 +0100 Subject: [PATCH 26/60] Hotfixes being able to put anything in your boots (#4845) ![](https://cdn.discordapp.com/attachments/862155128441012234/1170748366125277214/dreamseeker_Akwa4enIMm.gif) # About the pull request Typechecks weren't actually acted upon, letting you put anything in your boots. Like, anything. It's funny but it's both breaking things and problematic for balance # Explain why it's good for the game Self evident i think # Testing Photographs and Procedure Can only put knives in now, as CM Dev intended # Changelog :cl: fix: Fixed being able to put anything in your boots. You're not wizards! /:cl: --- code/modules/clothing/clothing.dm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index a8f2a17767..bffbda9f53 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -341,9 +341,13 @@ return if(stored_item) return + var/allowed = FALSE for(var/allowed_item in items_allowed) - if(!istype(attacking_item, allowed_item)) - continue + if(istype(attacking_item, allowed_item)) + allowed = TRUE + break + if(!allowed) + return if(!insert_after) return TRUE insert_item(user, attacking_item) From b35b658d99534b8a48aa8117bfa42e837ed788bd Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Mon, 6 Nov 2023 10:44:56 +0000 Subject: [PATCH 27/60] Automatic changelog for PR #4845 [ci skip] --- html/changelogs/AutoChangeLog-pr-4845.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4845.yml diff --git a/html/changelogs/AutoChangeLog-pr-4845.yml b/html/changelogs/AutoChangeLog-pr-4845.yml new file mode 100644 index 0000000000..6f72d4bf62 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4845.yml @@ -0,0 +1,4 @@ +author: "fira" +delete-after: True +changes: + - bugfix: "Fixed being able to put anything in your boots. You're not wizards!" \ No newline at end of file From 28f373823043b3eecd21e722212a1efed3bbc470 Mon Sep 17 00:00:00 2001 From: tool mind <106038874+toolmind@users.noreply.github.com> Date: Mon, 6 Nov 2023 03:43:01 -0600 Subject: [PATCH 28/60] Xeno Tunnel and Shuttle Building/Anchoring Changes (#4831) # About the pull request This PR removes the ability to build walls (and other ground structures) on top of xeno tunnels, and removes the ability to anchor wall girders on shuttle tiles and tunnels. Barricades can still be moved on top of the tunnel's tile and anchored, though they can't be built while standing on it. # Explain why it's good for the game Being able to build walls on top of a gaping hole in the ground is pretty dumb, and results in weird interactions like having to right click to use the tunnel that's currently being covered up by a wall. The shuttle tiles were changed because, while you can't complete the girders if they're in a shuttle, you can still anchor them down. That doesn't seem intended since you can't build them while in a shuttle, and you also can't build/anchor barricades in shuttles. # Testing Photographs and Procedure

Screenshots & Videos
# Changelog :cl:IowaPotatoFarmer del: Removed the ability to build ground structures or anchor wall girders on top of xeno tunnels. fix: Fixed wall girders being anchorable on shuttle tiles. /:cl: --- code/game/objects/items/stacks/stack.dm | 5 +++++ code/game/objects/structures/girders.dm | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index d85e615bc1..3912e2d641 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -182,6 +182,11 @@ Also change the icon to reflect the amount of sheets, if possible.*/ to_chat(usr, SPAN_WARNING("The [R.title] cannot be built here!")) //might cause some friendly fire regarding other items like barbed wire, shouldn't be a problem? return + var/obj/structure/tunnel/tunnel = locate(/obj/structure/tunnel) in usr.loc + if(tunnel) + to_chat(usr, SPAN_WARNING("The [R.title] cannot be constructed on a tunnel!")) + return + if((R.flags & RESULT_REQUIRES_SNOW) && !(istype(usr.loc, /turf/open/snow) || istype(usr.loc, /turf/open/auto_turf/snow))) to_chat(usr, SPAN_WARNING("The [R.title] must be built on snow!")) return diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index e719359ab4..6cd6a5cd03 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -173,6 +173,14 @@ return do_reinforced_wall(W, user) if(STATE_DISPLACED) if(HAS_TRAIT(W, TRAIT_TOOL_CROWBAR)) + var/turf/open/floor = loc + if(!floor.allow_construction) + to_chat(user, SPAN_WARNING("The girder must be secured on a proper surface!")) + return + var/obj/structure/tunnel/tunnel = locate(/obj/structure/tunnel) in loc + if(tunnel) + to_chat(user, SPAN_WARNING("The girder cannot be secured on a tunnel!")) + return playsound(loc, 'sound/items/Crowbar.ogg', 25, 1) to_chat(user, SPAN_NOTICE("Now securing the girder...")) if(!do_after(user, 40 * user.get_skill_duration_multiplier(SKILL_CONSTRUCTION), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) From 7244b0f13bdba38bec45e61005f8b548bda67a4a Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Mon, 6 Nov 2023 11:05:55 +0000 Subject: [PATCH 29/60] Automatic changelog for PR #4831 [ci skip] --- html/changelogs/AutoChangeLog-pr-4831.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4831.yml diff --git a/html/changelogs/AutoChangeLog-pr-4831.yml b/html/changelogs/AutoChangeLog-pr-4831.yml new file mode 100644 index 0000000000..f405e983a4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4831.yml @@ -0,0 +1,5 @@ +author: "IowaPotatoFarmer" +delete-after: True +changes: + - rscdel: "Removed the ability to build ground structures or anchor wall girders on top of xeno tunnels." + - bugfix: "Fixed wall girders being anchorable on shuttle tiles." \ No newline at end of file From 8e7909df0e4d860bcfc3baff8679207ab53b93ef Mon Sep 17 00:00:00 2001 From: Doubleumc Date: Mon, 6 Nov 2023 04:43:29 -0500 Subject: [PATCH 30/60] Vehicles hear exterior audio (#4815) # About the pull request As described in issue #4777 while vehicle interiors are intended to hear external sounds, it is largely nonfunctional. Sounds are either not heard or are inaudibly quiet. This is due to several smaller issues working together. First, interiors are not detected as interiors. In commit https://github.com/cmss13-devs/cmss13/commit/0808500777f390bbe1d59142e955678344ef6d3e the types stored in the `used_turfs` list were changed to weakrefs, but the `is_interior()` function still checked for the old type, causing it to always return `FALSE`: https://github.com/cmss13-devs/cmss13/blob/5fbe14390f80225a5d295f07b9acf781fb8aa2b2/code/controllers/subsystem/interior.dm#L54-L58 Fixed by checking for the correct type. Second, the `get_interior_by_coords()` function returned an object on success, but returned `FALSE` on failure - which still counted as an object. Since shuttles add turfs to `used_turfs` but don't have actual interiors, they would pass `is_interior()` but fail `get_interior_by_coords()`. The sound code expected any object received at this point to be valid, but using `FALSE` would thrown an error: https://github.com/cmss13-devs/cmss13/blob/5fbe14390f80225a5d295f07b9acf781fb8aa2b2/code/game/sound.dm#L82-L84 Fixed by returning `null` on failure. Third, the audio was now playing but in the wrong part of the interior. It was offset to the top-right corner because `get_middle_coords()` got the difference between the bounds, but never actually averaged them: https://github.com/cmss13-devs/cmss13/blob/5fbe14390f80225a5d295f07b9acf781fb8aa2b2/code/modules/vehicles/interior/interior.dm#L321 Fixed by dividing the difference by two. Fourth, the sound playback zone was oriented incorrectly because the width and height were transposed when creating the zone. Rectangles were defined as width then height, but the sound subsystem was passing height then width: https://github.com/cmss13-devs/cmss13/blob/5fbe14390f80225a5d295f07b9acf781fb8aa2b2/code/controllers/subsystem/sound.dm#L44 Fixed by passing width then height. # Explain why it's good for the game Vehicle interiors were intended to hear external sounds. This restores that functionality. # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: fix: vehicle interiors can hear exterior noises /:cl: --------- Co-authored-by: harryob --- code/controllers/subsystem/interior.dm | 4 ++-- code/controllers/subsystem/sound.dm | 2 +- code/modules/vehicles/interior/interior.dm | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/controllers/subsystem/interior.dm b/code/controllers/subsystem/interior.dm index 389e95fe60..8fb7ffbfee 100644 --- a/code/controllers/subsystem/interior.dm +++ b/code/controllers/subsystem/interior.dm @@ -42,7 +42,7 @@ SUBSYSTEM_DEF(interior) continue if(x >= bounds[1].x && x <= bounds[2].x && y >= bounds[1].y && y <= bounds[2].y) return current_interior - return FALSE + return /// Checks if an atom is in an interior /datum/controller/subsystem/interior/proc/in_interior(loc) @@ -51,7 +51,7 @@ SUBSYSTEM_DEF(interior) if(!isturf(loc)) loc = get_turf(loc) - var/datum/turf_reservation/interior/reservation = SSmapping.used_turfs[loc] + var/datum/weakref/reservation = SSmapping.used_turfs[loc] if(!istype(reservation)) return FALSE diff --git a/code/controllers/subsystem/sound.dm b/code/controllers/subsystem/sound.dm index 1935294394..4fdfd79353 100644 --- a/code/controllers/subsystem/sound.dm +++ b/code/controllers/subsystem/sound.dm @@ -41,5 +41,5 @@ SUBSYSTEM_DEF(sound) if(VI?.ready) var/list/bounds = VI.get_middle_coords() if(bounds.len >= 2) - hearers |= SSquadtree.players_in_range(RECT(bounds[1], bounds[2], VI.map_template.height, VI.map_template.width), bounds[3]) + hearers |= SSquadtree.players_in_range(RECT(bounds[1], bounds[2], VI.map_template.width, VI.map_template.height), bounds[3]) template_queue[template] = hearers diff --git a/code/modules/vehicles/interior/interior.dm b/code/modules/vehicles/interior/interior.dm index 046b42495a..f2afcd5ae5 100644 --- a/code/modules/vehicles/interior/interior.dm +++ b/code/modules/vehicles/interior/interior.dm @@ -318,7 +318,7 @@ var/turf/min = reservation.bottom_left_coords var/turf/max = reservation.top_right_coords - return list(Floor(min[1] + (max[1] - min[1])), Floor(min[2] + (max[2] - min[2])), min[3]) + return list(Floor(min[1] + (max[1] - min[1])/2), Floor(min[2] + (max[2] - min[2])/2), min[3]) /datum/interior/proc/get_middle_turf() var/list/turf/bounds = get_bound_turfs() From c05a9cb0f521efac20b07f9566929bfb3a267e25 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Mon, 6 Nov 2023 11:23:48 +0000 Subject: [PATCH 31/60] Automatic changelog for PR #4815 [ci skip] --- html/changelogs/AutoChangeLog-pr-4815.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4815.yml diff --git a/html/changelogs/AutoChangeLog-pr-4815.yml b/html/changelogs/AutoChangeLog-pr-4815.yml new file mode 100644 index 0000000000..029707a4b8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4815.yml @@ -0,0 +1,4 @@ +author: "Doubleumc" +delete-after: True +changes: + - bugfix: "vehicle interiors can hear exterior noises" \ No newline at end of file From 2bf2540ce3ac14b2845f16a340f3d6028f976e9b Mon Sep 17 00:00:00 2001 From: Blundir <100090741+Blundir@users.noreply.github.com> Date: Tue, 7 Nov 2023 01:03:00 +0200 Subject: [PATCH 32/60] Shotgun tube toggle hotkey (#4794) # About the pull request Adds hotkey to toggling multi magazine on multi tube shotgun. # Explain why it's good for the game Having hotkeys for combat related actions is very important.
# Changelog :cl: add: added shotgun tube toggle hotkey /:cl: --------- Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com> --- code/__DEFINES/keybinding.dm | 1 + code/datums/keybinding/human_combat.dm | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/code/__DEFINES/keybinding.dm b/code/__DEFINES/keybinding.dm index 88f194bb33..5a0809d83a 100644 --- a/code/__DEFINES/keybinding.dm +++ b/code/__DEFINES/keybinding.dm @@ -87,6 +87,7 @@ #define COMSIG_KB_HUMAN_WEAPON_UNLOAD "keybinding_human_weapon_unload" #define COMSIG_KB_HUMAN_WEAPON_ATTACHMENT "keybinding_human_weapon_attachment" #define COMSIG_KB_HUMAN_WEAPON_ATTACHMENT_RAIL "keybinding_human_weapon_attachment_rail" +#define COMSIG_KB_HUMAN_WEAPON_SHOTGUN_TUBE "keybinding_human_weapon_shotgun_tube" #define COMSIG_KB_HUMAN_WEAPON_TOGGLE_IFF "keybinding_human_weapon_toggle_iff" diff --git a/code/datums/keybinding/human_combat.dm b/code/datums/keybinding/human_combat.dm index 2f37efc614..d30414d685 100644 --- a/code/datums/keybinding/human_combat.dm +++ b/code/datums/keybinding/human_combat.dm @@ -190,3 +190,20 @@ var/obj/item/weapon/gun/rifle/m46c/COgun = held_item COgun.toggle_iff(human) return TRUE + +/datum/keybinding/human/combat/toggle_shotgun_tube + hotkey_keys = list("Unbound") + classic_keys = list("Unbound") + name = "toggle_shotgun_tube" + full_name = "Toggle Shotgun Tube" + keybind_signal = COMSIG_KB_HUMAN_WEAPON_SHOTGUN_TUBE + +/datum/keybinding/human/combat/toggle_shotgun_tube/down(client/user) + . = ..() + if(.) + return + var/mob/living/carbon/human/human = user.mob + var/obj/item/weapon/gun/shotgun/pump/dual_tube/held_item = human.get_held_item() + if(istype(held_item)) + held_item.toggle_tube() + return TRUE From ca2ccf345cb2a1826ff4f2619a77afc52047a779 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Mon, 6 Nov 2023 23:15:31 +0000 Subject: [PATCH 33/60] Automatic changelog for PR #4794 [ci skip] --- html/changelogs/AutoChangeLog-pr-4794.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4794.yml diff --git a/html/changelogs/AutoChangeLog-pr-4794.yml b/html/changelogs/AutoChangeLog-pr-4794.yml new file mode 100644 index 0000000000..2cfd2f357e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4794.yml @@ -0,0 +1,4 @@ +author: "Blundir" +delete-after: True +changes: + - rscadd: "added shotgun tube toggle hotkey" \ No newline at end of file From 329074ce3fdca18d25252537c226064209d6e6c1 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 7 Nov 2023 01:09:53 +0000 Subject: [PATCH 34/60] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-4572.yml | 5 -- html/changelogs/AutoChangeLog-pr-4623.yml | 4 -- html/changelogs/AutoChangeLog-pr-4628.yml | 4 -- html/changelogs/AutoChangeLog-pr-4699.yml | 10 ---- html/changelogs/AutoChangeLog-pr-4794.yml | 4 -- html/changelogs/AutoChangeLog-pr-4796.yml | 5 -- html/changelogs/AutoChangeLog-pr-4811.yml | 5 -- html/changelogs/AutoChangeLog-pr-4815.yml | 4 -- html/changelogs/AutoChangeLog-pr-4819.yml | 4 -- html/changelogs/AutoChangeLog-pr-4823.yml | 4 -- html/changelogs/AutoChangeLog-pr-4825.yml | 4 -- html/changelogs/AutoChangeLog-pr-4826.yml | 4 -- html/changelogs/AutoChangeLog-pr-4830.yml | 4 -- html/changelogs/AutoChangeLog-pr-4831.yml | 5 -- html/changelogs/AutoChangeLog-pr-4832.yml | 4 -- html/changelogs/AutoChangeLog-pr-4834.yml | 4 -- html/changelogs/AutoChangeLog-pr-4835.yml | 4 -- html/changelogs/AutoChangeLog-pr-4838.yml | 4 -- html/changelogs/AutoChangeLog-pr-4841.yml | 4 -- html/changelogs/AutoChangeLog-pr-4845.yml | 4 -- html/changelogs/AutoChangeLog-pr-4847.yml | 4 -- html/changelogs/archive/2023-11.yml | 60 +++++++++++++++++++++++ 22 files changed, 60 insertions(+), 94 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-4572.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4623.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4628.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4699.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4794.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4796.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4811.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4815.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4819.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4823.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4825.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4826.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4830.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4831.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4832.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4834.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4835.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4838.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4841.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4845.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-4847.yml diff --git a/html/changelogs/AutoChangeLog-pr-4572.yml b/html/changelogs/AutoChangeLog-pr-4572.yml deleted file mode 100644 index 5dd4e07a32..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4572.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "TopHatPenguin" -delete-after: True -changes: - - rscadd: "Adds a mostly built communications office nightmare insert to Kutjevo which attaches onto the sensor tower." - - rscadd: "Re-adds the Kutjevo blackbox." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4623.yml b/html/changelogs/AutoChangeLog-pr-4623.yml deleted file mode 100644 index d79a53a45b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4623.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Firartix and Frans_Feiffer" -delete-after: True -changes: - - rscadd: "Readded Halloween pumpkin helmets." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4628.yml b/html/changelogs/AutoChangeLog-pr-4628.yml deleted file mode 100644 index e00fa73838..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4628.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "realforest2001" -delete-after: True -changes: - - rscadd: "Added a big line to Nightmare survivor spawns that indicates hostility." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4699.yml b/html/changelogs/AutoChangeLog-pr-4699.yml deleted file mode 100644 index 691f38c5f4..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4699.yml +++ /dev/null @@ -1,10 +0,0 @@ -author: "Morrow, Zonespace" -delete-after: True -changes: - - rscadd: "Added objectives to hijack. You now must hold different sections of the ship to successfully launch lifeboats or pods" - - rscadd: "The areas that contribute to hijack objectives are the lifeboat pumps, astronav, and engineering" - - rscadd: "Fuel pumps now have red alert sentries" - - rscadd: "Corporate liaison evac shuttle now can be launched at any time even if evac has not been called" - - rscadd: "You can now self-destruct the ship by overloading the fusion generators in engineering once lifeboat fuel is at 100%." - - rscdel: "Removed auto launch of lifeboats and pods" - - code_imp: "Refactored EvacuationAuthority into SShijack" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4794.yml b/html/changelogs/AutoChangeLog-pr-4794.yml deleted file mode 100644 index 2cfd2f357e..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4794.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Blundir" -delete-after: True -changes: - - rscadd: "added shotgun tube toggle hotkey" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4796.yml b/html/changelogs/AutoChangeLog-pr-4796.yml deleted file mode 100644 index b314142a6e..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4796.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "BeagleGaming1" -delete-after: True -changes: - - code_imp: "Tents now hold the datum directly, instead of the typepath" - - admin: "Added a proc for staff to change tent dmm's" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4811.yml b/html/changelogs/AutoChangeLog-pr-4811.yml deleted file mode 100644 index c679e21335..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4811.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "AndroBetel" -delete-after: True -changes: - - spellcheck: "Fixed a typo in RO rules sign." - - spellcheck: "RO mention is no more, replaced with QM." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4815.yml b/html/changelogs/AutoChangeLog-pr-4815.yml deleted file mode 100644 index 029707a4b8..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4815.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Doubleumc" -delete-after: True -changes: - - bugfix: "vehicle interiors can hear exterior noises" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4819.yml b/html/changelogs/AutoChangeLog-pr-4819.yml deleted file mode 100644 index 48abe60728..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4819.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "IowaPotatoFarmer" -delete-after: True -changes: - - rscadd: "Added new survivor presets for New Varadero to make them more visually distinct and unique to the map." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4823.yml b/html/changelogs/AutoChangeLog-pr-4823.yml deleted file mode 100644 index 75e0f58074..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4823.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Drathek" -delete-after: True -changes: - - bugfix: "Fixed various job's entry messages having broken links to the wiki" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4825.yml b/html/changelogs/AutoChangeLog-pr-4825.yml deleted file mode 100644 index a63550514e..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4825.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xander3359" -delete-after: True -changes: - - bugfix: "Fixes being able to create ghost tanks from a Broiler-T unit." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4826.yml b/html/changelogs/AutoChangeLog-pr-4826.yml deleted file mode 100644 index b06b575cb8..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4826.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Steelpoint" -delete-after: True -changes: - - rscadd: "Corpsman can chose to optionally vend a set of armoured sterile gloves as a alternative to regular gloves. They provide full glove protection, but are otherwise an aesthetic choice." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4830.yml b/html/changelogs/AutoChangeLog-pr-4830.yml deleted file mode 100644 index 2eaaf3f208..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4830.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "fira" -delete-after: True -changes: - - admin: "Added better logging for orbital bombardment." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4831.yml b/html/changelogs/AutoChangeLog-pr-4831.yml deleted file mode 100644 index f405e983a4..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4831.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "IowaPotatoFarmer" -delete-after: True -changes: - - rscdel: "Removed the ability to build ground structures or anchor wall girders on top of xeno tunnels." - - bugfix: "Fixed wall girders being anchorable on shuttle tiles." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4832.yml b/html/changelogs/AutoChangeLog-pr-4832.yml deleted file mode 100644 index 9f9570a6cc..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4832.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "blackdragonTOW" -delete-after: True -changes: - - imageadd: "Changed nanotrasen cashcard icon to W-Y" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4834.yml b/html/changelogs/AutoChangeLog-pr-4834.yml deleted file mode 100644 index 7778f38607..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4834.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Alexguinea" -delete-after: True -changes: - - rscadd: "Added toners to the rec vendor" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4835.yml b/html/changelogs/AutoChangeLog-pr-4835.yml deleted file mode 100644 index 6fcce13e1e..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4835.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "fira" -delete-after: True -changes: - - rscdel: "Removed unused magnet and mass driver legacy SS13 machinery." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4838.yml b/html/changelogs/AutoChangeLog-pr-4838.yml deleted file mode 100644 index 0bde8de19b..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4838.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SpartanBobby" -delete-after: True -changes: - - maptweak: "Alot of changes to big reds admin area, including new windows, prop placement, room detailing, new doors" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4841.yml b/html/changelogs/AutoChangeLog-pr-4841.yml deleted file mode 100644 index d6f6b2fae8..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4841.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Releasethesea" -delete-after: True -changes: - - balance: "Makes it so that Pill packets fit in helmets" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4845.yml b/html/changelogs/AutoChangeLog-pr-4845.yml deleted file mode 100644 index 6f72d4bf62..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4845.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "fira" -delete-after: True -changes: - - bugfix: "Fixed being able to put anything in your boots. You're not wizards!" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-4847.yml b/html/changelogs/AutoChangeLog-pr-4847.yml deleted file mode 100644 index 492ab7973c..0000000000 --- a/html/changelogs/AutoChangeLog-pr-4847.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "567Turtle" -delete-after: True -changes: - - soundadd: "New whistle sound effect" \ No newline at end of file diff --git a/html/changelogs/archive/2023-11.yml b/html/changelogs/archive/2023-11.yml index 2d89cade63..18b35afdd3 100644 --- a/html/changelogs/archive/2023-11.yml +++ b/html/changelogs/archive/2023-11.yml @@ -48,3 +48,63 @@ you pack and send crates and items via disposals again. - balance: Whiskey Outpost supply drops should now be more interesting and impactful. - rscadd: Added missing Synth vendors on WO. +2023-11-07: + 567Turtle: + - soundadd: New whistle sound effect + Alexguinea: + - rscadd: Added toners to the rec vendor + AndroBetel: + - spellcheck: Fixed a typo in RO rules sign. + - spellcheck: RO mention is no more, replaced with QM. + BeagleGaming1: + - code_imp: Tents now hold the datum directly, instead of the typepath + - admin: Added a proc for staff to change tent dmm's + Blundir: + - rscadd: added shotgun tube toggle hotkey + Doubleumc: + - bugfix: vehicle interiors can hear exterior noises + Drathek: + - bugfix: Fixed various job's entry messages having broken links to the wiki + Firartix and Frans_Feiffer: + - rscadd: Readded Halloween pumpkin helmets. + IowaPotatoFarmer: + - rscadd: Added new survivor presets for New Varadero to make them more visually + distinct and unique to the map. + - rscdel: Removed the ability to build ground structures or anchor wall girders + on top of xeno tunnels. + - bugfix: Fixed wall girders being anchorable on shuttle tiles. + Morrow, Zonespace: + - rscadd: Added objectives to hijack. You now must hold different sections of the + ship to successfully launch lifeboats or pods + - rscadd: The areas that contribute to hijack objectives are the lifeboat pumps, + astronav, and engineering + - rscadd: Fuel pumps now have red alert sentries + - rscadd: Corporate liaison evac shuttle now can be launched at any time even if + evac has not been called + - rscadd: You can now self-destruct the ship by overloading the fusion generators + in engineering once lifeboat fuel is at 100%. + - rscdel: Removed auto launch of lifeboats and pods + - code_imp: Refactored EvacuationAuthority into SShijack + Releasethesea: + - balance: Makes it so that Pill packets fit in helmets + SpartanBobby: + - maptweak: Alot of changes to big reds admin area, including new windows, prop + placement, room detailing, new doors + Steelpoint: + - rscadd: Corpsman can chose to optionally vend a set of armoured sterile gloves + as a alternative to regular gloves. They provide full glove protection, but + are otherwise an aesthetic choice. + TopHatPenguin: + - rscadd: Adds a mostly built communications office nightmare insert to Kutjevo + which attaches onto the sensor tower. + - rscadd: Re-adds the Kutjevo blackbox. + Xander3359: + - bugfix: Fixes being able to create ghost tanks from a Broiler-T unit. + blackdragonTOW: + - imageadd: Changed nanotrasen cashcard icon to W-Y + fira: + - rscdel: Removed unused magnet and mass driver legacy SS13 machinery. + - bugfix: Fixed being able to put anything in your boots. You're not wizards! + - admin: Added better logging for orbital bombardment. + realforest2001: + - rscadd: Added a big line to Nightmare survivor spawns that indicates hostility. From 37f49c3906a76c6d9d9782578411a0b18db8f929 Mon Sep 17 00:00:00 2001 From: Releasethesea <135743398+Releasethesea@users.noreply.github.com> Date: Tue, 7 Nov 2023 04:11:48 -0600 Subject: [PATCH 35/60] Cigars now fit in helmets (#4851) # About the pull request Cigars couldnt fit in helmets, i *think* it was unintentional so im fixing/adding it # Explain why it's good for the game if cigarettes could fit, why couldnt cigars? well now they can. # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: add: Makes it so cigars fit in helmets. /:cl: --- code/modules/clothing/head/helmet.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 2c89d31e04..45ee972e70 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -217,6 +217,8 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( /obj/item/storage/fancy/cigarettes/arcturian_ace = "helmet_cig_aapack", /obj/item/storage/fancy/cigarettes/lucky_strikes_4 = "hat_cig_ls_mre", /obj/item/storage/fancy/cigar/matchbook = "helmet_matches_mre", + /obj/item/clothing/mask/cigarette/cigar = "helmet_cig_cig", + /obj/item/clothing/mask/electronic_cigarette = "helmet_cig_cig", // CARDS /obj/item/toy/deck = "helmet_card_deck", From ffdb0546a19d02e595ab952494e377b1222d8938 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Tue, 7 Nov 2023 10:21:04 +0000 Subject: [PATCH 36/60] Automatic changelog for PR #4851 [ci skip] --- html/changelogs/AutoChangeLog-pr-4851.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4851.yml diff --git a/html/changelogs/AutoChangeLog-pr-4851.yml b/html/changelogs/AutoChangeLog-pr-4851.yml new file mode 100644 index 0000000000..e6e261c03e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4851.yml @@ -0,0 +1,4 @@ +author: "Releasethesea" +delete-after: True +changes: + - rscadd: "Makes it so cigars fit in helmets." \ No newline at end of file From 830e002a27b7b4115815e450b8506832cb403a02 Mon Sep 17 00:00:00 2001 From: QuickLode <63271983+QuickLode@users.noreply.github.com> Date: Tue, 7 Nov 2023 03:22:07 -0800 Subject: [PATCH 37/60] Adds a Colony Synthetic variant, with bug fixes (#4760) # About the pull request 1. should fix fax machine problem(thx forest) 2. gives trucker synth the frontier jumpsuit(Thwomplert) 3. adds Freelancer Synthetic. This Synth is one that was bought off a civi market and reprogrammed, or stolen and reprogrammed, or hacked, You get the point - its going with a band of freelancers. The idea behind it is that this synth's team is dead and they are just programmed as a merc for pay - hoping to someday find their boss boss and give the money as set up. I always thought about this one for a long time and decided to put him in the civilian category, where its hard to roll and also gives you freedom to choose your allegiance. In this case I hope that a freelancer synthetic will open up unique avenue of RP and allegiance. I've only explored it once ingame, but it was very good for RP! Hopefully people can recreate this success. was hard to make this guy look cool and I also wasn't sure on what his loadout would be. I ended up giving him random generic stuff while looking like a beat up freelancer(missing the armor especially hurt his look, since thats the largest piece of a freelancer - the curiass, but I don't want to give armor for balance reasons) and no beret because its for a SL only. as usual, if a synth wants to change RP avenues and don different clothes for different RP, no one would know the difference # Explain why it's good for the game 1. bug bad 2. a beat up UA laborer that so happens to be synthetic. you wouldn't expect it because there's so many similar looking people! exactly the job of a synth - to blend in. 3. Freelancer colony synth hopefully will open up a unique avenue of RP. If they don't want to they can always ditch it - but its on a relatively rare and uncommon roll anyways. # Testing Photographs and Procedure
[Screenshots & Videos](https://cdn.discordapp.com/attachments/490668342357786645/1166307813719556187/image.png?ex=654a03cb&is=65378ecb&hm=7108218bbaab61c78c0bedcecbfdcc07bdf9db87a3fefe9fb94b28d3430cc815&) Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: add: adds another Colony Synthetic variant, changes up some existing ones(trucker,CMB) fix: fixes a small problem with WY-Colony Synthetic access(thx forest), adds WY subtype of Synthetics for admin building/faxes fix: fixes problems with organic spawning ferret industries Trucker Synthetic /:cl: --- code/datums/map_config.dm | 8 +++-- code/modules/clothing/under/marine_uniform.dm | 2 +- code/modules/gear_presets/synths.dm | 30 ++++++++++++++++--- 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/code/datums/map_config.dm b/code/datums/map_config.dm index 1f3c265ead..3bf5c601ce 100644 --- a/code/datums/map_config.dm +++ b/code/datums/map_config.dm @@ -87,12 +87,14 @@ /datum/equipment_preset/synth/survivor/janitor_synth, /datum/equipment_preset/synth/survivor/chef_synth, /datum/equipment_preset/synth/survivor/teacher_synth, + /datum/equipment_preset/synth/survivor/freelancer_synth, + /datum/equipment_preset/synth/survivor/trucker_synth, /datum/equipment_preset/synth/survivor/bartender_synth, /datum/equipment_preset/synth/survivor/detective_synth, /datum/equipment_preset/synth/survivor/cmb_synth, - /datum/equipment_preset/synth/survivor/security_synth, - /datum/equipment_preset/synth/survivor/protection_synth, - /datum/equipment_preset/synth/survivor/corporate_synth, + /datum/equipment_preset/synth/survivor/wy/security_synth, + /datum/equipment_preset/synth/survivor/wy/protection_synth, + /datum/equipment_preset/synth/survivor/wy/corporate_synth, /datum/equipment_preset/synth/survivor/radiation_synth, ) diff --git a/code/modules/clothing/under/marine_uniform.dm b/code/modules/clothing/under/marine_uniform.dm index 59cc02b125..847652636e 100644 --- a/code/modules/clothing/under/marine_uniform.dm +++ b/code/modules/clothing/under/marine_uniform.dm @@ -581,7 +581,7 @@ worn_state = "freelancer_uniform" min_cold_protection_temperature = ICE_PLANET_MIN_COLD_PROT has_sensor = UNIFORM_NO_SENSORS - suit_restricted = list(/obj/item/clothing/suit/storage/marine/faction/freelancer) + suit_restricted = list(/obj/item/clothing/suit/storage/marine/faction/freelancer, /obj/item/clothing/suit/storage/webbing, /obj/item/clothing/suit/storage/utility_vest) //=========================//Dutch Dozen\\================================\\ diff --git a/code/modules/gear_presets/synths.dm b/code/modules/gear_presets/synths.dm index be0efb1bcc..9ac7950b72 100644 --- a/code/modules/gear_presets/synths.dm +++ b/code/modules/gear_presets/synths.dm @@ -147,6 +147,10 @@ . = ..() access = get_access(ACCESS_LIST_WY_PMC) +/datum/equipment_preset/synth/survivor/wy/New() + . = ..() + access = get_access(ACCESS_LIST_COLONIAL_ALL) + get_region_accesses(2) + get_region_accesses(4) + ACCESS_MARINE_RESEARCH + ACCESS_WY_GENERAL // for WY synths - admin building and wy fax machines access + /datum/equipment_preset/synth/survivor/load_gear(mob/living/carbon/human/new_human) for(var/equipment in equipment_to_spawn) var/equipment_path = islist(equipment_to_spawn[equipment]) ? pick(equipment_to_spawn[equipment]) : equipment_to_spawn[equipment] @@ -300,11 +304,28 @@ WEAR_L_HAND = /obj/item/storage/large_holster/machete/full ) +/datum/equipment_preset/synth/survivor/freelancer_synth + name = "Survivor - Synthetic - Freelancer Synth" + equipment_to_spawn = list( + WEAR_HEAD = /obj/item/clothing/head/welding, + WEAR_FACE = /obj/item/clothing/mask/rebreather/scarf, + WEAR_BODY = /obj/item/clothing/under/marine/veteran/freelancer, + WEAR_BACK = /obj/item/storage/backpack/lightpack, + WEAR_IN_BACK = /obj/item/tool/weldpack/minitank, + WEAR_JACKET = /obj/item/clothing/suit/storage/utility_vest, + WEAR_IN_JACKET = /obj/item/explosive/grenade/smokebomb, + WEAR_WAIST = /obj/item/storage/belt/marine, + WEAR_HANDS = /obj/item/clothing/gloves/marine/veteran, + WEAR_R_HAND = /obj/item/storage/pouch/flare/full, + WEAR_FEET = /obj/item/clothing/shoes/marine/upp, + WEAR_L_HAND = /obj/item/storage/large_holster/katana/full + ) + /datum/equipment_preset/synth/survivor/trucker_synth name = "Survivor - Synthetic - Trucker Synth" equipment_to_spawn = list( WEAR_HEAD = /obj/item/clothing/head/soft/ferret, - WEAR_BODY = /obj/item/clothing/under/colonist, + WEAR_BODY = /obj/item/clothing/under/rank/synthetic/frontier, WEAR_BACK = /obj/item/storage/backpack/satchel/norm, WEAR_IN_BACK = /obj/item/pamphlet/skill/powerloader, WEAR_R_HAND = /obj/item/tool/weldingtool/hugetank, @@ -359,6 +380,7 @@ WEAR_L_EAR = /obj/item/device/radio/headset/distress/CMB/limited, WEAR_EYES = /obj/item/clothing/glasses/sunglasses/sechud, WEAR_BODY = /obj/item/clothing/under/CM_uniform, + WEAR_ACCESSORY = /obj/item/clothing/accessory/holobadge/cord, WEAR_BACK = /obj/item/storage/backpack/satchel/sec, WEAR_IN_BACK = /obj/item/device/camera, WEAR_IN_BACK = /obj/item/device/taperecorder, @@ -373,7 +395,7 @@ survivor_variant = SECURITY_SURVIVOR -/datum/equipment_preset/synth/survivor/security_synth +/datum/equipment_preset/synth/survivor/wy/security_synth name = "Survivor - Synthetic - Corporate Security Synth" idtype = /obj/item/card/id/silver/cl role_comm_title = "WY Syn" @@ -394,7 +416,7 @@ survivor_variant = SECURITY_SURVIVOR -/datum/equipment_preset/synth/survivor/protection_synth +/datum/equipment_preset/synth/survivor/wy/protection_synth name = "Survivor - Synthetic - Corporate Protection Synth" idtype = /obj/item/card/id/pmc role_comm_title = "WY Syn" @@ -418,7 +440,7 @@ survivor_variant = SECURITY_SURVIVOR -/datum/equipment_preset/synth/survivor/corporate_synth +/datum/equipment_preset/synth/survivor/wy/corporate_synth name = "Survivor - Synthetic - Corporate Clerical Synth" idtype = /obj/item/card/id/data role_comm_title = "WY Syn" From 80cf19bffbe4a79e7ba46a05886210f69073a7a4 Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Tue, 7 Nov 2023 11:34:42 +0000 Subject: [PATCH 38/60] Automatic changelog for PR #4760 [ci skip] --- html/changelogs/AutoChangeLog-pr-4760.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4760.yml diff --git a/html/changelogs/AutoChangeLog-pr-4760.yml b/html/changelogs/AutoChangeLog-pr-4760.yml new file mode 100644 index 0000000000..b16cb24371 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4760.yml @@ -0,0 +1,6 @@ +author: "QuickLode" +delete-after: True +changes: + - rscadd: "adds another Colony Synthetic variant, changes up some existing ones(trucker,CMB)" + - bugfix: "fixes a small problem with WY-Colony Synthetic access(thx forest), adds WY subtype of Synthetics for admin building/faxes" + - bugfix: "fixes problems with organic spawning ferret industries Trucker Synthetic" \ No newline at end of file From 330cd7fa4715041827b44a2c683a78e81e729f85 Mon Sep 17 00:00:00 2001 From: zzzmike <85382350+zzzmike@users.noreply.github.com> Date: Tue, 7 Nov 2023 05:17:06 -0800 Subject: [PATCH 39/60] fixes typo (#4848) # About the pull request Fixes typo # Explain why it's good for the game typo bad # Testing Photographs and Procedure
Screenshots & Videos Put screenshots and videos here with an empty line between the screenshots and the `
` tags.
# Changelog :cl: spellcheck: fixed a typo /:cl: --- strings/metatips.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/strings/metatips.txt b/strings/metatips.txt index 24be6896bc..a28c902395 100644 --- a/strings/metatips.txt +++ b/strings/metatips.txt @@ -12,7 +12,7 @@ As a mentor, you can become the imaginary friend of a new player to teach them! You shouldn't ignore what your allies are up to. Sometimes they can be organizing a flank in hivemind/radio, sometimes they can be walking up behind you with a slug-loaded shotgun. Either way, it pays to be alert to what they're doing, as much to as what the enemies are. The Wiki (https://cm-ss13.com/wiki) is a very useful repository of information about the game, such as weapons, equipment, xenomorph castes and their strains. It may not be fully up to date much of the time, but the basics are usually accurate. As an observer, you may see how much remaining hijack time is left in the status panel. -You can always AdminHelp with the F1 key to question a mmeber of staff regarding rules or game bugs. +You can always AdminHelp with the F1 key to question a member of staff regarding rules or game bugs. As ghost you are given extra tools for spectating the round: you can jump and follow specific players, get notifications about CAS and OB strikes, can see all health bars, and such. You can press ESC key to bring up the game pause menu. It allows you change settings, AdminHelp and MentorHelp, and even access the Web Maps of game by clicking at top right. Dead? You can take that moment to 'Edit Characters' from Preferences or Escape menus, to flesh out your characters or change your settings. From a7e1d74dfe4b504acb1aa0b8b5f4f176501a7fce Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Tue, 7 Nov 2023 13:25:32 +0000 Subject: [PATCH 40/60] Automatic changelog for PR #4848 [ci skip] --- html/changelogs/AutoChangeLog-pr-4848.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4848.yml diff --git a/html/changelogs/AutoChangeLog-pr-4848.yml b/html/changelogs/AutoChangeLog-pr-4848.yml new file mode 100644 index 0000000000..4977495850 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4848.yml @@ -0,0 +1,4 @@ +author: "zzzmike" +delete-after: True +changes: + - spellcheck: "fixed a typo" \ No newline at end of file From 465b4c500f25ad1c74cf097ca78efd702dce37a4 Mon Sep 17 00:00:00 2001 From: Birdtalon Date: Tue, 7 Nov 2023 13:17:49 +0000 Subject: [PATCH 41/60] Adds icon for hive core and cluster to Xeno tacmap (#4820) There was supposed to be an icon for the hive core but it doesn't seem to exist. I added one for hive core and cluster ![dreammaker_2023-11-01_21-26-47](https://github.com/cmss13-devs/cmss13/assets/25027759/38f4d39f-4e1d-4874-bc8d-1a9a020a4604) ![2023-11-01_21-18-05](https://github.com/cmss13-devs/cmss13/assets/25027759/e0cf5302-004b-4a2a-9370-a8fcfac961a6) My sprites even at this level are awful. If someone who is actually artistic could make better ones I will use those. Likewise if you would like to make 2 states for the core, damaged and healthy I can restore the intended functionality of displaying a different icon for a damaged core. # About the pull request Places a Cabinet on a Wall in the SW Big Red mines. As evidenced by the below images, we did test it. Oddly enough, the cabinet was always empty. (Unless the cabinet's stuff was included in a sprinkle. In which case...Oops? We did check the sprinkle file names, but none seemed to mention the SW mines.) # Explain why it's good for the game Well. It probably isn't. It's an empty cabinet. But it looks nicer now? # Testing Photographs and Procedure
Screenshots & Videos What's been done in StrongDMM ![LookIdontgetpaidforinformaticgraphics](https://github.com/cmss13-devs/cmss13/assets/38842059/c39fbe6b-949d-4742-b4f4-3989a8159a55) What it looks like Ingame. ![Test SolarisRidgepixel](https://github.com/cmss13-devs/cmss13/assets/38842059/c50ffae8-0fd4-407a-8790-374a9d11b737)
# Changelog :cl: Skye. maptweak: Tweaks a Cabinet in the SW mines of Solaris Ridge fix: On account of it being propped up on the floor like a cardboard cutout. /:cl: --- maps/map_files/BigRed/BigRed.dmm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/maps/map_files/BigRed/BigRed.dmm b/maps/map_files/BigRed/BigRed.dmm index b13a1d6842..412d970cff 100644 --- a/maps/map_files/BigRed/BigRed.dmm +++ b/maps/map_files/BigRed/BigRed.dmm @@ -37444,11 +37444,10 @@ }, /area/space) "weO" = ( -/obj/structure/closet/secure_closet/medical_wall, -/turf/open/floor/plating{ - dir = 8; - icon_state = "platingdmg3" +/obj/structure/closet/secure_closet/medical_wall{ + pixel_y = -5 }, +/turf/closed/wall/solaris/reinforced, /area/bigredv2/caves/mining) "wfd" = ( /obj/effect/decal/cleanable/dirt, @@ -44776,8 +44775,8 @@ aao aao aao aao -uHQ weO +pSa wtj rKs wJd From 49d89e7dbf45b2cf11ecbbfa94d2414e614fb45d Mon Sep 17 00:00:00 2001 From: cm13-github <128137806+cm13-github@users.noreply.github.com> Date: Tue, 7 Nov 2023 13:54:35 +0000 Subject: [PATCH 44/60] Automatic changelog for PR #4854 [ci skip] --- html/changelogs/AutoChangeLog-pr-4854.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4854.yml diff --git a/html/changelogs/AutoChangeLog-pr-4854.yml b/html/changelogs/AutoChangeLog-pr-4854.yml new file mode 100644 index 0000000000..c506769a9a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4854.yml @@ -0,0 +1,5 @@ +author: "Skye." +delete-after: True +changes: + - maptweak: "Tweaks a Cabinet in the SW mines of Solaris Ridge" + - bugfix: "On account of it being propped up on the floor like a cardboard cutout." \ No newline at end of file From a341a35eede6590b0f06c4fcb43b14355d481588 Mon Sep 17 00:00:00 2001 From: fira Date: Tue, 7 Nov 2023 16:14:12 +0100 Subject: [PATCH 45/60] Code maintenace of Stats Entities (#4750) # About the pull request * Removes extraneous `= null` * Adds `Destroy` with proper clearing to all entities * Fixes up some single-letter vars and incorrect proc signatures * Transforms some comments to DMDoc * Generally tries to clear up the usage of the entity lists (they're MOSTLY indexed) # Explain why it's good for the game Code maintenance # Testing Photographs and Procedure Didn't see anything wrong but best tested in TM # Changelog Nothing player facing --- code/datums/mind.dm | 5 ++++ .../datums/statistics/entities/caste_stats.dm | 4 +++ .../datums/statistics/entities/death_stats.dm | 8 +++--- .../datums/statistics/entities/human_stats.dm | 15 ++++++++--- code/datums/statistics/entities/job_stats.dm | 14 +++++------ .../datums/statistics/entities/panel_stats.dm | 2 +- .../statistics/entities/player_entity.dm | 9 +++++-- .../statistics/entities/player_stats.dm | 10 +++++++- .../datums/statistics/entities/round_stats.dm | 18 ++++++++++--- .../statistics/entities/weapon_stats.dm | 25 ++++++++++++------- code/datums/statistics/entities/xeno_stats.dm | 6 +++++ 11 files changed, 85 insertions(+), 31 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 2e56b963e8..9e8279a843 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -29,9 +29,14 @@ research_objective_interface = new() /datum/mind/Destroy() + QDEL_NULL(initial_account) QDEL_NULL(objective_memory) QDEL_NULL(objective_interface) QDEL_NULL(research_objective_interface) + current = null + original = null + ghost_mob = null + player_entity = null return ..() /datum/mind/proc/transfer_to(mob/living/new_character, force = FALSE) diff --git a/code/datums/statistics/entities/caste_stats.dm b/code/datums/statistics/entities/caste_stats.dm index 639e1b4a05..6bfc18d124 100644 --- a/code/datums/statistics/entities/caste_stats.dm +++ b/code/datums/statistics/entities/caste_stats.dm @@ -3,6 +3,10 @@ var/total_hits = 0 var/list/abilities_used = list() // types of /datum/entity/statistic, "tail sweep" = 10, "screech" = 2 +/datum/entity/player_stats/caste/Destroy(force) + . = ..() + QDEL_LIST_ASSOC_VAL(abilities_used) + /datum/entity/player_stats/caste/proc/setup_ability(ability) if(!ability) return diff --git a/code/datums/statistics/entities/death_stats.dm b/code/datums/statistics/entities/death_stats.dm index cb3053a334..35ff1769b9 100644 --- a/code/datums/statistics/entities/death_stats.dm +++ b/code/datums/statistics/entities/death_stats.dm @@ -140,16 +140,16 @@ new_death.detach() return new_death -/mob/living/carbon/human/track_mob_death(cause, cause_mob) - . = ..(cause, cause_mob, job) +/mob/living/carbon/human/track_mob_death(datum/cause_data/cause_data, turf/death_loc) + . = ..() if(statistic_exempt || !mind) return var/datum/entity/player_stats/human/human_stats = mind.setup_human_stats() if(human_stats && human_stats.death_list) human_stats.death_list.Insert(1, .) -/mob/living/carbon/xenomorph/track_mob_death(cause, cause_mob) - var/datum/entity/statistic/death/new_death = ..(cause, cause_mob, caste_type) +/mob/living/carbon/xenomorph/track_mob_death(datum/cause_data/cause_data, turf/death_loc) + var/datum/entity/statistic/death/new_death = ..() if(!new_death) return new_death.is_xeno = TRUE // this was placed beneath the if below, which meant gibbing as a xeno wouldn't track properly in stats diff --git a/code/datums/statistics/entities/human_stats.dm b/code/datums/statistics/entities/human_stats.dm index 51b07867df..1e15aa1d16 100644 --- a/code/datums/statistics/entities/human_stats.dm +++ b/code/datums/statistics/entities/human_stats.dm @@ -5,10 +5,17 @@ var/total_shots = 0 var/total_shots_hit = 0 var/total_screams = 0 - var/datum/entity/weapon_stats/top_weapon = null // reference to /datum/entity/weapon_stats (like tac-shotty) - var/list/weapon_stats_list = list() // list of types /datum/entity/weapon_stats - var/list/job_stats_list = list() // list of types /datum/entity/job_stats - var/list/datum/entity/statistic/medal/medal_list = list() // list of all medals earned + var/list/weapon_stats_list = list() //! indexed list of types /datum/entity/weapon_stats + var/list/job_stats_list = list() //! indexed list of types /datum/entity/job_stats + var/datum/entity/weapon_stats/top_weapon //! reference to /datum/entity/weapon_stats (like tac-shotty) + var/list/datum/entity/statistic/medal/medal_list = list() //! list of all medals earned + +/datum/entity/player_stats/human/Destroy(force) + . = ..() + QDEL_LIST_ASSOC_VAL(weapon_stats_list) + QDEL_LIST_ASSOC_VAL(job_stats_list) + QDEL_NULL(top_weapon) + QDEL_LIST(medal_list) /datum/entity/player_stats/human/get_playtime(type) if(!type) diff --git a/code/datums/statistics/entities/job_stats.dm b/code/datums/statistics/entities/job_stats.dm index ecde1c9420..199c2adb31 100644 --- a/code/datums/statistics/entities/job_stats.dm +++ b/code/datums/statistics/entities/job_stats.dm @@ -1,8 +1,8 @@ /datum/entity/player_stats/job - var/name = null - var/total_friendly_fire = null - var/total_revives = null - var/total_lives_saved = null - var/total_shots = null - var/total_shots_hit = null - var/total_screams = null + var/name + var/total_friendly_fire + var/total_revives + var/total_lives_saved + var/total_shots + var/total_shots_hit + var/total_screams diff --git a/code/datums/statistics/entities/panel_stats.dm b/code/datums/statistics/entities/panel_stats.dm index d6e391e173..e507d5d81a 100644 --- a/code/datums/statistics/entities/panel_stats.dm +++ b/code/datums/statistics/entities/panel_stats.dm @@ -8,7 +8,7 @@ update_panel_data(round_statistics) ui_interact(user) -/datum/entity/player_entity/proc/ui_interact(mob/user, ui_key = "statistics", datum/nanoui/ui = null, force_open = 1) +/datum/entity/player_entity/proc/ui_interact(mob/user, ui_key = "statistics", datum/nanoui/ui, force_open = 1) data["menu"] = menu data["subMenu"] = subMenu data["dataMenu"] = dataMenu diff --git a/code/datums/statistics/entities/player_entity.dm b/code/datums/statistics/entities/player_entity.dm index 72f4d95d7a..f0b3d37ede 100644 --- a/code/datums/statistics/entities/player_entity.dm +++ b/code/datums/statistics/entities/player_entity.dm @@ -8,8 +8,8 @@ /datum/entity/player_entity var/name var/ckey // "cakey" - var/list/datum/entity/player_stats = list() - var/list/datum/entity/statistic/death/death_stats = list() + var/list/player_stats = list() //! Indeed list of /datum/entity/player_stats + var/list/death_stats = list() //! Indexed list of /datum/entity/statistic/death var/menu = 0 var/subMenu = 0 var/dataMenu = 0 @@ -18,6 +18,11 @@ var/savefile_version var/save_loaded = FALSE +/datum/entity/player_entity/Destroy(force) + QDEL_LIST_ASSOC_VAL(player_stats) + QDEL_LIST_ASSOC_VAL(death_stats) + return ..() + /datum/entity/player_entity/proc/get_playtime(branch, type) var/playtime = 0 if(player_stats["[branch]"]) diff --git a/code/datums/statistics/entities/player_stats.dm b/code/datums/statistics/entities/player_stats.dm index b378d7c2ea..d9fbd3b11e 100644 --- a/code/datums/statistics/entities/player_stats.dm +++ b/code/datums/statistics/entities/player_stats.dm @@ -6,13 +6,21 @@ var/total_rounds_played = 0 var/steps_walked = 0 var/round_played = FALSE - var/datum/entity/statistic/nemesis = null // "runner" = 3 + var/datum/entity/statistic/nemesis // "runner" = 3 var/list/niche_stats = list() // list of type /datum/entity/statistic, "Total Executions" = number var/list/humans_killed = list() // list of type /datum/entity/statistic, "jobname2" = number var/list/xenos_killed = list() // list of type /datum/entity/statistic, "caste" = number var/list/death_list = list() // list of type /datum/entity/death_stats var/display_stat = TRUE +/datum/entity/player_stats/Destroy(force) + QDEL_NULL(nemesis) + QDEL_LIST_ASSOC_VAL(niche_stats) + QDEL_LIST_ASSOC_VAL(humans_killed) + QDEL_LIST_ASSOC_VAL(xenos_killed) + QDEL_LIST_ASSOC_VAL(death_list) + return ..() + /datum/entity/player_stats/proc/get_playtime() return total_playtime diff --git a/code/datums/statistics/entities/round_stats.dm b/code/datums/statistics/entities/round_stats.dm index 0e1fb6e387..baed6befa9 100644 --- a/code/datums/statistics/entities/round_stats.dm +++ b/code/datums/statistics/entities/round_stats.dm @@ -23,7 +23,7 @@ var/total_slashes = 0 // untracked data - var/datum/entity/statistic/map/current_map = null // reference to current map + var/datum/entity/statistic/map/current_map // reference to current map var/list/datum/entity/statistic/death/death_stats_list = list() var/list/abilities_used = list() // types of /datum/entity/statistic, "tail sweep" = 10, "screech" = 2 @@ -37,8 +37,20 @@ var/list/job_stats_list = list() // list of types /datum/entity/job_stats // nanoui data - var/round_data[0] - var/death_data[0] + var/list/round_data = list() + var/list/death_data = list() + +/datum/entity/statistic/round/Destroy(force) + . = ..() + QDEL_NULL(current_map) + QDEL_LIST(death_stats_list) + QDEL_LIST_ASSOC_VAL(abilities_used) + QDEL_LIST_ASSOC_VAL(final_participants) + QDEL_LIST_ASSOC_VAL(hijack_participants) + QDEL_LIST_ASSOC_VAL(total_deaths) + QDEL_LIST_ASSOC_VAL(caste_stats_list) + QDEL_LIST_ASSOC_VAL(weapon_stats_list) + QDEL_LIST_ASSOC_VAL(job_stats_list) /datum/entity_meta/statistic_round entity_type = /datum/entity/statistic/round diff --git a/code/datums/statistics/entities/weapon_stats.dm b/code/datums/statistics/entities/weapon_stats.dm index 0d8458c20d..9fff5c5144 100644 --- a/code/datums/statistics/entities/weapon_stats.dm +++ b/code/datums/statistics/entities/weapon_stats.dm @@ -1,16 +1,23 @@ /datum/entity/weapon_stats - var/datum/entity/player = null // "deanthelis" - var/list/niche_stats = list() // list of type /datum/entity/statistic, "Total Reloads" = number - var/list/humans_killed = list() // list of type /datum/entity/statistic, "jobname2" = number - var/list/xenos_killed = list() // list of type /datum/entity/statistic, "caste" = number - var/name = null + var/datum/entity/player + var/list/niche_stats = list() //! Indexed list of /datum/entity/statistic, "Total Reloads" = number + var/list/humans_killed = list() //! Indexed list of /datum/entity/statistic, "jobname2" = number + var/list/xenos_killed = list() //! Indexed list of /datum/entity/statistic, "caste" = number + var/name var/total_kills = 0 - var/total_hits = null - var/total_shots = null - var/total_shots_hit = null - var/total_friendly_fire = null + var/total_hits + var/total_shots + var/total_shots_hit + var/total_friendly_fire var/display_stat = TRUE +/datum/entity/weapon_stats/Destroy(force) + player = null + QDEL_LIST_ASSOC_VAL(niche_stats) + QDEL_LIST_ASSOC_VAL(humans_killed) + QDEL_LIST_ASSOC_VAL(xenos_killed) + return ..() + /datum/entity/weapon_stats/proc/count_human_kill(job_name) if(!job_name) return diff --git a/code/datums/statistics/entities/xeno_stats.dm b/code/datums/statistics/entities/xeno_stats.dm index 9ed3272582..8fff4a2e5d 100644 --- a/code/datums/statistics/entities/xeno_stats.dm +++ b/code/datums/statistics/entities/xeno_stats.dm @@ -4,6 +4,12 @@ var/list/caste_stats_list = list() // list of types /datum/entity/player_stats/caste var/list/datum/entity/statistic/medal/medal_list = list() // list of all royal jelly earned +/datum/entity/player_stats/xeno/Destroy(force) + . = ..() + QDEL_NULL(top_caste) + QDEL_LIST_ASSOC_VAL(caste_stats_list) + QDEL_LIST(medal_list) + /datum/entity/player_stats/xeno/get_playtime(type) if(!type || type == FACTION_XENOMORPH) return ..() From 2c9ef445392b800971416a0cdb3750c448ba7138 Mon Sep 17 00:00:00 2001 From: fira Date: Tue, 7 Nov 2023 16:14:39 +0100 Subject: [PATCH 46/60] Minor Code Maintenance Bundle (deletes, standards, runtimes) (#4756) # About the pull request Just some bundled code maintenance bits: * annotations and variable names * loc -> forceMove / New -> Initialize, GLOB variables, per standard * add some missing ref clearing in Destroy * dead code * fix minor runtimes * runtime fix in gear presets spamming logs * fixes a typo in bottles making them use only 1 of the 4 sprites # Explain why it's good for the game Standards, bugfixing # Changelog :cl: fix: Spawned bottles now use all 4 of their sprites as intended rather than always the same. /:cl: --- code/game/objects/effects/spawners/random.dm | 15 +++++++------ .../items/reagent_containers/glass/bottle.dm | 2 +- code/game/objects/items/storage/backpack.dm | 16 +++++++++++--- code/game/objects/items/storage/boxes.dm | 1 + code/game/objects/items/storage/storage.dm | 21 ++++++++++--------- code/game/objects/structures/flora.dm | 2 ++ code/modules/cm_marines/smartgun_mount.dm | 6 +++--- code/modules/cm_tech/implements/railgun.dm | 6 +++--- code/modules/gear_presets/cmb.dm | 2 -- code/modules/gear_presets/uscm.dm | 2 -- code/modules/mob/dead/observer/observer.dm | 5 +++-- .../mob/living/carbon/xenomorph/Embryo.dm | 2 +- .../mob/living/carbon/xenomorph/Xenomorph.dm | 2 +- code/modules/projectiles/gun.dm | 7 +------ 14 files changed, 47 insertions(+), 42 deletions(-) diff --git a/code/game/objects/effects/spawners/random.dm b/code/game/objects/effects/spawners/random.dm index a70fb5588f..d302e7794f 100644 --- a/code/game/objects/effects/spawners/random.dm +++ b/code/game/objects/effects/spawners/random.dm @@ -351,8 +351,7 @@ /obj/effect/spawner/random/gun/proc/spawn_weapon_on_floor(gunpath, ammopath, ammo_amount = 1) - var/atom/spawnloc = src - spawnloc = get_turf(spawnloc) + var/turf/spawnloc = get_turf(src) var/obj/gun var/obj/ammo @@ -360,20 +359,20 @@ gun = new gunpath(spawnloc) if(scatter) var/direction = pick(alldirs) - var/turf/T = get_step(gun, direction) - if(!T || T.density) + var/turf/turf = get_step(gun, direction) + if(!turf || turf.density) return - gun.loc = T + gun.forceMove(turf) if(ammopath) for(var/i in 0 to ammo_amount-1) ammo = new ammopath(spawnloc) if(scatter) for(i=0, i Date: Tue, 7 Nov 2023 15:38:11 +0000 Subject: [PATCH 47/60] Automatic changelog for PR #4756 [ci skip] --- html/changelogs/AutoChangeLog-pr-4756.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-4756.yml diff --git a/html/changelogs/AutoChangeLog-pr-4756.yml b/html/changelogs/AutoChangeLog-pr-4756.yml new file mode 100644 index 0000000000..f0e5a3bc07 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-4756.yml @@ -0,0 +1,4 @@ +author: "fira" +delete-after: True +changes: + - bugfix: "Spawned bottles now use all 4 of their sprites as intended rather than always the same." \ No newline at end of file From 9efcf33d37e6c377a42ef63ac66a24f8b12b27b6 Mon Sep 17 00:00:00 2001 From: Morrow Date: Tue, 7 Nov 2023 10:45:31 -0500 Subject: [PATCH 48/60] deploy beacon lights and custom name support --- .../objects/items/beacons/deployable_beacons.dm | 13 ++++++++++++- .../structures/beacons/deployable_beacons.dm | 15 ++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/beacons/deployable_beacons.dm b/code/game/objects/items/beacons/deployable_beacons.dm index e46e76e801..a9624945f7 100644 --- a/code/game/objects/items/beacons/deployable_beacons.dm +++ b/code/game/objects/items/beacons/deployable_beacons.dm @@ -52,7 +52,18 @@ playsound(deploying_turf, 'sound/mecha/mechmove01.ogg', 30, 1) var/obj/structure/deployable_beacon/deployed_beacon = new beacon_type(get_turf(src), user) - transfer_label_component(deployed_beacon) + + var/datum/component/label/src_label_component = GetComponent(/datum/component/label) + var/label_text + if(src_label_component) + label_text = src_label_component.label_name + src_label_component.remove_label() + + deployed_beacon.name = name + deployed_beacon.desc = desc + + if(label_text) + deployed_beacon.AddComponent(/datum/component/label, label_text) qdel(src) diff --git a/code/game/objects/structures/beacons/deployable_beacons.dm b/code/game/objects/structures/beacons/deployable_beacons.dm index f355aa3ba7..003cb4f576 100644 --- a/code/game/objects/structures/beacons/deployable_beacons.dm +++ b/code/game/objects/structures/beacons/deployable_beacons.dm @@ -20,6 +20,8 @@ visible_message(SPAN_NOTICE("[src] beeps quietly as it begins broadcasting preprogrammed signals.")) + set_light(2, 1, beacon_light_color) + for(var/client/admin_client in GLOB.admins) if((R_ADMIN|R_MOD) & admin_client.admin_holder.rights) playsound_client(admin_client,'sound/effects/sos-morse-code.ogg',10) @@ -39,7 +41,18 @@ visible_message(SPAN_NOTICE("[src] gives a drone as it powers down and collapses into itself for easier carrying.")) var/obj/item/deployable_beacon/undeployed_beacon = new beacon_type() - transfer_label_component(undeployed_beacon) + + var/datum/component/label/src_label_component = GetComponent(/datum/component/label) + var/label_text + if(src_label_component) + label_text = src_label_component.label_name + src_label_component.remove_label() + + undeployed_beacon.name = name + undeployed_beacon.desc = desc + + if(label_text) + undeployed_beacon.AddComponent(/datum/component/label, label_text) user.put_in_hands(undeployed_beacon) From 5c7b5958056db2945b2e5fce731ee5ad2013eafc Mon Sep 17 00:00:00 2001 From: Morrow Date: Tue, 7 Nov 2023 10:52:22 -0500 Subject: [PATCH 49/60] disabled weed eating for now --- code/modules/mob/living/carbon/human/death.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 1981089369..e5ee1557c8 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -113,6 +113,7 @@ . = ..(cause, gibbed, death_message) // stat is now set + /* var/datum/cause_data/death_data = cause if(!gibbed && death_data?.cause_name != "gibbing") // Hilariously the gibbing proc causes death via droplimb which means gibbed is false... @@ -120,3 +121,4 @@ else if(death_data?.cause_name == "existing") // Corpses spawn as gibbed true to avoid sfx, even though they aren't actually gibbed... AddComponent(/datum/component/weed_food) + */ From 78df68f27de28d09e3cad1194cacd0e6673f2330 Mon Sep 17 00:00:00 2001 From: Morrow Date: Tue, 7 Nov 2023 11:17:15 -0500 Subject: [PATCH 50/60] dumbass color begone --- code/modules/client/preferences_savefile.dm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index aa02e580b5..d0148d73bf 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -1,5 +1,5 @@ #define SAVEFILE_VERSION_MIN 8 -#define SAVEFILE_VERSION_MAX 21 +#define SAVEFILE_VERSION_MAX 22 //handles converting savefiles to new formats //MAKE SURE YOU KEEP THIS UP TO DATE! @@ -89,6 +89,13 @@ dual_wield_pref = DUAL_WIELD_FIRE S["dual_wield_pref"] << dual_wield_pref + if(savefile_version < 22) + var/temp_ooccolor + S["ooccolor"] >> temp_ooccolor + if(temp_ooccolor == "#b82e00") + temp_ooccolor = "#1c52f5" + S["ooccolor"] << temp_ooccolor + savefile_version = SAVEFILE_VERSION_MAX return 1 From 0081d460be34c1f1a02ae312e41a96ea0d241756 Mon Sep 17 00:00:00 2001 From: Morrow Date: Tue, 7 Nov 2023 11:48:30 -0500 Subject: [PATCH 51/60] beacon admin log tweak --- code/game/objects/structures/beacons/deployable_beacons.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/beacons/deployable_beacons.dm b/code/game/objects/structures/beacons/deployable_beacons.dm index 003cb4f576..bcff248eb7 100644 --- a/code/game/objects/structures/beacons/deployable_beacons.dm +++ b/code/game/objects/structures/beacons/deployable_beacons.dm @@ -26,7 +26,7 @@ if((R_ADMIN|R_MOD) & admin_client.admin_holder.rights) playsound_client(admin_client,'sound/effects/sos-morse-code.ogg',10) - message_admins("[key_name(user)] has deployed [src]! [ADMIN_JMP_USER(user)]") + message_admins("[key_name(user)] has deployed [src]! [ADMIN_JMP(src)]") /obj/structure/deployable_beacon/attackby(obj/item/attacking_item, mob/user) if(!HAS_TRAIT(attacking_item, TRAIT_TOOL_MULTITOOL)) From efd3b7958321fec1e3385b72c292e3e998e78dd9 Mon Sep 17 00:00:00 2001 From: Morrow Date: Tue, 7 Nov 2023 14:30:52 -0500 Subject: [PATCH 52/60] slightly bigger squad sergeant text --- code/datums/factions/uscm.dm | 3 ++- interface/skin.dmf | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/code/datums/factions/uscm.dm b/code/datums/factions/uscm.dm index fd97ea4ae3..0a989ab206 100644 --- a/code/datums/factions/uscm.dm +++ b/code/datums/factions/uscm.dm @@ -33,8 +33,9 @@ switch(squad.squad_type) if("Platoon") marine_rk = "leader_a" if("Team") marine_rk = "soctl_a" - current_human.langchat_styles = "langchat_bolded" // bold text for bold leaders + else if(squad.fireteam_leaders["SQ1"] == current_human || squad.fireteam_leaders["SQ2"] == current_human) + current_human.langchat_styles = "langchat_smaller_bolded" else current_human.langchat_styles = initial(current_human.langchat_styles) diff --git a/interface/skin.dmf b/interface/skin.dmf index dfd279983e..79ec957f08 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -215,7 +215,7 @@ window "mapwindow" font-size = 7 is-default = true saved-params = "zoom;letterbox;zoom-mode" - style = ".maptext { font-family: 'Small Fonts'; font-size: 7px; -dm-text-outline: 1px black; color: white; line-height: 1.1; } .center { text-align: center; } .langchat { font-family: 'Small Fonts'; font-size: 7px; -dm-text-outline: 1px black; } .langchat_small { font-size: 6px; } .langchat_yell { font-weight: bold; font-size: 10px; } .langchat_bolded { font-weight: bold; font-size: 8px; } .langchat_announce { font-weight: bold; font-size: 12px; } .langchat_bolditalicbig {font-weight: bold; font-size: 24px; font-style: italic; } .langchat_italic {font-style: italic; }" + style = ".maptext { font-family: 'Small Fonts'; font-size: 7px; -dm-text-outline: 1px black; color: white; line-height: 1.1; } .center { text-align: center; } .langchat { font-family: 'Small Fonts'; font-size: 7px; -dm-text-outline: 1px black; } .langchat_small { font-size: 6px; } .langchat_yell { font-weight: bold; font-size: 10px; } .langchat_smaller_bolded { font-weight: bold; font-size: 7px; } .langchat_bolded { font-weight: bold; font-size: 8px; } .langchat_announce { font-weight: bold; font-size: 12px; } .langchat_bolditalicbig {font-weight: bold; font-size: 24px; font-style: italic; } .langchat_italic {font-style: italic; }" elem "status_bar" type = LABEL pos = 0,464 From 4996bf9d9e40f07866bc02b146882e176a38c999 Mon Sep 17 00:00:00 2001 From: morrowwolf Date: Tue, 7 Nov 2023 14:45:20 -0500 Subject: [PATCH 53/60] Platoon Renaming (#55) --- code/__DEFINES/dcs/signals/signals_global.dm | 3 + code/datums/datacore.dm | 12 ++ .../colonialmarines/ai/colonialmarines_ai.dm | 9 -- code/game/jobs/job/marine/squad_info.dm | 1 + code/game/jobs/job/marine/squads.dm | 28 +++- code/game/machinery/cryopod.dm | 10 ++ .../objects/effects/landmarks/landmarks.dm | 23 ++++ .../items/devices/radio/encryptionkey.dm | 32 +++++ .../objects/items/devices/radio/headset.dm | 21 ++- code/modules/admin/admin_verbs.dm | 2 + .../extra_buttons/rename_platoon.dm | 62 +++++++++ .../{ => extra_buttons}/toggle_join_xeno.dm | 2 +- code/modules/asset_cache/asset_list_items.dm | 6 +- code/modules/clothing/head/head.dm | 9 +- code/modules/cm_marines/overwatch.dm | 10 ++ code/modules/gear_presets/uscm_ship.dm | 8 ++ colonialmarines.dme | 3 +- icons/obj/items/clothing/cm_hats.dmi | Bin 50034 -> 48397 bytes maps/map_files/golden_arrow/golden_arrow.dmm | 128 +++++++++--------- tgui/packages/tgui/interfaces/SquadInfo.tsx | 5 +- 20 files changed, 284 insertions(+), 90 deletions(-) create mode 100644 code/modules/admin/game_master/extra_buttons/rename_platoon.dm rename code/modules/admin/game_master/{ => extra_buttons}/toggle_join_xeno.dm (93%) diff --git a/code/__DEFINES/dcs/signals/signals_global.dm b/code/__DEFINES/dcs/signals/signals_global.dm index 032a1891a8..fe31678acc 100644 --- a/code/__DEFINES/dcs/signals/signals_global.dm +++ b/code/__DEFINES/dcs/signals/signals_global.dm @@ -65,3 +65,6 @@ /// From /proc/biohazard_lockdown() #define COMSIG_GLOB_RESEARCH_LOCKDOWN "research_lockdown_closed" #define COMSIG_GLOB_RESEARCH_LIFT "research_lockdown_opened" + +/// From /client/proc/rename_platoon() +#define COMSIG_GLOB_PLATOON_NAME_CHANGE "platoon_name_change" diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index b60b20bc90..31e909b068 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -7,6 +7,18 @@ GLOBAL_DATUM_INIT(data_core, /datum/datacore, new) //This list tracks characters spawned in the world and cannot be modified in-game. Currently referenced by respawn_character(). var/locked[] = list() +/datum/datacore/New() + . = ..() + + RegisterSignal(SSdcs, COMSIG_GLOB_PLATOON_NAME_CHANGE, PROC_REF(rename_platoon)) + +/datum/datacore/proc/rename_platoon(datum/source, new_name, old_name) + SIGNAL_HANDLER + + for(var/datum/data/record/cycled_data_record in general) + if(cycled_data_record.fields["squad"] == old_name) + cycled_data_record.fields["squad"] = new_name + /datum/datacore/proc/get_manifest(monochrome, OOC, nonHTML) var/list/cic = ROLES_CIC.Copy() var/list/auxil = ROLES_AUXIL_SUPPORT.Copy() diff --git a/code/game/gamemodes/colonialmarines/ai/colonialmarines_ai.dm b/code/game/gamemodes/colonialmarines/ai/colonialmarines_ai.dm index 8d41f5282b..de75235475 100644 --- a/code/game/gamemodes/colonialmarines/ai/colonialmarines_ai.dm +++ b/code/game/gamemodes/colonialmarines/ai/colonialmarines_ai.dm @@ -33,15 +33,6 @@ return ..() /datum/game_mode/colonialmarines/ai/pre_setup() - - //Hacky pre-setup shit since RoleAuthority sucks - RoleAuthority.squads = list() - RoleAuthority.squads_by_type = list() - for(var/cycled_squad_type in squad_limit) - var/datum/squad/cycled_squad = new cycled_squad_type() - RoleAuthority.squads += cycled_squad - RoleAuthority.squads_by_type[cycled_squad.type] = cycled_squad - RegisterSignal(SSdcs, COMSIG_GLOB_XENO_SPAWN, PROC_REF(handle_xeno_spawn)) . = ..() diff --git a/code/game/jobs/job/marine/squad_info.dm b/code/game/jobs/job/marine/squad_info.dm index 6199c38c40..6a59ecf560 100644 --- a/code/game/jobs/job/marine/squad_info.dm +++ b/code/game/jobs/job/marine/squad_info.dm @@ -23,6 +23,7 @@ "primary" = primary_objective, "secondary" = secondary_objective, ) + data["partial_squad_ref"] = copytext(REF(src), 2, 12) return data /datum/squad/proc/get_leadership(mob/user) diff --git a/code/game/jobs/job/marine/squads.dm b/code/game/jobs/job/marine/squads.dm index 23db6c1e8d..55be638e69 100644 --- a/code/game/jobs/job/marine/squads.dm +++ b/code/game/jobs/job/marine/squads.dm @@ -115,7 +115,6 @@ /datum/squad/marine name = "Root" - usable = TRUE active = TRUE faction = FACTION_MARINE lead_icon = "leader" @@ -128,6 +127,7 @@ radio_freq = ALPHA_FREQ minimap_color = MINIMAP_SQUAD_ALPHA use_stripe_overlay = FALSE + usable = TRUE /datum/squad/marine/bravo name = SQUAD_MARINE_2 @@ -295,6 +295,32 @@ RegisterSignal(SSdcs, COMSIG_GLOB_MODE_POSTSETUP, PROC_REF(setup_supply_drop_list)) +/datum/squad/marine/alpha/New() + . = ..() + + RegisterSignal(SSdcs, COMSIG_GLOB_PLATOON_NAME_CHANGE, PROC_REF(rename_platoon)) + +/datum/squad/marine/alpha/proc/rename_platoon(datum/source, new_name, old_name) + SIGNAL_HANDLER + + name = new_name + + for(var/mob/living/carbon/human/marine in marines_list) + if(!istype(marine.wear_id, /obj/item/card/id)) + continue + + var/obj/item/card/id/marine_card = marine.wear_id + var/datum/weakref/marine_card_registered = marine.wear_id.registered_ref + + if(!istype(marine_card_registered)) + continue + + if(marine != marine_card_registered.resolve()) + continue + + marine_card.assignment = "[new_name] [marine.job]" + marine_card.name = "[marine_card.registered_name]'s ID Card ([marine_card.assignment])" + /datum/squad/proc/setup_supply_drop_list() SIGNAL_HANDLER diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index e13b282cbc..cda3da5e2e 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -37,6 +37,16 @@ GLOBAL_LIST_INIT(frozen_items, list(SQUAD_MARINE_1 = list(), SQUAD_MARINE_2 = li /obj/structure/machinery/computer/cryopod/alpha cryotype = SQUAD_MARINE_1 +/obj/structure/machinery/computer/cryopod/alpha/Initialize() + . = ..() + + RegisterSignal(SSdcs, COMSIG_GLOB_PLATOON_NAME_CHANGE, PROC_REF(rename_platoon)) + +/obj/structure/machinery/computer/cryopod/alpha/proc/rename_platoon(datum/source, new_name, old_name) + SIGNAL_HANDLER + + cryotype = new_name + /obj/structure/machinery/computer/cryopod/bravo cryotype = SQUAD_MARINE_2 diff --git a/code/game/objects/effects/landmarks/landmarks.dm b/code/game/objects/effects/landmarks/landmarks.dm index 5f4a374ba3..1659c4ca6e 100644 --- a/code/game/objects/effects/landmarks/landmarks.dm +++ b/code/game/objects/effects/landmarks/landmarks.dm @@ -255,6 +255,8 @@ else LAZYADD(GLOB.spawns_by_job[job], src) + RegisterSignal(SSdcs, COMSIG_GLOB_PLATOON_NAME_CHANGE, PROC_REF(rename_platoon)) + /obj/effect/landmark/start/Destroy() if(job) if(squad) @@ -263,6 +265,17 @@ LAZYREMOVE(GLOB.spawns_by_job[job], src) return ..() +/obj/effect/landmark/start/proc/rename_platoon(datum/source, new_name, old_name) + SIGNAL_HANDLER + if(squad != old_name) + return + + LAZYREMOVE(GLOB.spawns_by_squad_and_job, squad) + squad = new_name + LAZYINITLIST(GLOB.spawns_by_squad_and_job) + LAZYINITLIST(GLOB.spawns_by_squad_and_job[squad]) + LAZYADD(GLOB.spawns_by_squad_and_job[squad][job], src) + /obj/effect/landmark/start/AISloc name = "AI" @@ -385,6 +398,16 @@ name = "alpha late join" squad = SQUAD_MARINE_1 +/obj/effect/landmark/late_join/alpha/Initialize(mapload, ...) + . = ..() + + RegisterSignal(SSdcs, COMSIG_GLOB_PLATOON_NAME_CHANGE, PROC_REF(rename_platoon)) + +/obj/effect/landmark/late_join/alpha/proc/rename_platoon(datum/source, new_name, old_name) + SIGNAL_HANDLER + + squad = new_name + /obj/effect/landmark/late_join/bravo name = "bravo late join" squad = SQUAD_MARINE_2 diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm index 58d8cd8d8d..e899a1fc13 100644 --- a/code/game/objects/items/devices/radio/encryptionkey.dm +++ b/code/game/objects/items/devices/radio/encryptionkey.dm @@ -11,6 +11,38 @@ var/list/tracking_options var/abstract = FALSE +/obj/item/device/encryptionkey/Initialize(mapload, ...) + . = ..() + + RegisterSignal(SSdcs, COMSIG_GLOB_PLATOON_NAME_CHANGE, PROC_REF(rename_platoon)) + + if(!isnull(channels[SQUAD_MARINE_1]) && SQUAD_MARINE_1 != GLOB.main_platoon_name) + rename_platoon(null, GLOB.main_platoon_name, SQUAD_MARINE_1) + +/obj/item/device/encryptionkey/proc/rename_platoon(datum/source, new_name, old_name) + SIGNAL_HANDLER + + var/toggled_channel = channels[old_name] + + if(isnull(toggled_channel)) + return + + channels -= old_name + + channels[new_name] = toggled_channel + + if(!istype(loc, /obj/item/device/radio/headset)) + return + + var/obj/item/device/radio/headset/current_headset = loc + + var/passed_freq = current_headset.secure_radio_connections[old_name].frequency + current_headset.secure_radio_connections -= old_name + + SSradio.remove_object(current_headset, passed_freq) + + current_headset.recalculateChannels() + /obj/item/device/encryptionkey/binary icon_state = "binary_key" translate_apollo = TRUE diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 1f7c20a648..d34444487f 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -63,6 +63,16 @@ if(radiochannels[cycled_channel] == frequency) default_freq = cycled_channel + RegisterSignal(SSdcs, COMSIG_GLOB_PLATOON_NAME_CHANGE, PROC_REF(rename_platoon)) + + if(SQUAD_MARINE_1 == default_freq && SQUAD_MARINE_1 != GLOB.main_platoon_name) + rename_platoon(null, GLOB.main_platoon_name, SQUAD_MARINE_1) + +/obj/item/device/radio/headset/proc/rename_platoon(datum/source, new_name, old_name) + SIGNAL_HANDLER + + set_frequency(frequency) + /obj/item/device/radio/headset/Destroy() wearer = null QDEL_NULL_LIST(keys) @@ -763,11 +773,6 @@ if(istype(H, /mob/living/carbon/human)) if(H.assigned_squad) switch(H.assigned_squad.name) - if(SQUAD_MARINE_1) - name = "[SQUAD_MARINE_1] radio headset" - desc = "This is used by [SQUAD_MARINE_1] squad members." - icon_state = "alpha_headset" - frequency = ALPHA_FREQ if(SQUAD_MARINE_2) name = "[SQUAD_MARINE_2] radio headset" desc = "This is used by [SQUAD_MARINE_2] squad members." @@ -792,6 +797,12 @@ desc = "This is used by [SQUAD_MARINE_CRYO] squad members." frequency = CRYO_FREQ + if(H.assigned_squad.name == GLOB.main_platoon_name) + name = "[GLOB.main_platoon_name] radio headset" + desc = "This is used by [GLOB.main_platoon_name] squad members." + icon_state = "alpha_headset" + frequency = ALPHA_FREQ + switch(GET_DEFAULT_ROLE(H.job)) if(JOB_SQUAD_LEADER) name = "marine leader " + name diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index b706852d5d..62ef154b7f 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -328,6 +328,7 @@ var/list/roundstart_mod_verbs = list( add_verb(src, /client/proc/togglebuildmodeself) add_verb(src, /client/proc/toggle_game_master) add_verb(src, /client/proc/toggle_join_xeno) + add_verb(src, /client/proc/game_master_rename_platoon) if(CLIENT_HAS_RIGHTS(src, R_SERVER)) add_verb(src, admin_verbs_server) if(CLIENT_HAS_RIGHTS(src, R_DEBUG)) @@ -359,6 +360,7 @@ var/list/roundstart_mod_verbs = list( /client/proc/togglebuildmodeself, /client/proc/toggle_game_master, /client/proc/toggle_join_xeno, + /client/proc/game_master_rename_platoon, admin_verbs_admin, admin_verbs_ban, admin_verbs_minor_event, diff --git a/code/modules/admin/game_master/extra_buttons/rename_platoon.dm b/code/modules/admin/game_master/extra_buttons/rename_platoon.dm new file mode 100644 index 0000000000..b73b7f10c7 --- /dev/null +++ b/code/modules/admin/game_master/extra_buttons/rename_platoon.dm @@ -0,0 +1,62 @@ + +GLOBAL_VAR_INIT(main_platoon_name, SQUAD_MARINE_1) + +/// Ability to rename the platoon +/client/proc/game_master_rename_platoon() + set name = "Rename Platoon Override" + set category = "Game Master.Extras" + + if(!admin_holder || !check_rights(R_MOD, FALSE)) + return + + rename_platoon() + +/client/proc/commander_rename_platoon() + set name = "Rename Platoon" + set category = "OOC.Commander" + + if(GLOB.main_platoon_name != SQUAD_MARINE_1) + to_chat(src, SPAN_NOTICE("The platoon has already been renamed this round.")) + return + + rename_platoon() + +/// Actually renames the platoon +/client/proc/rename_platoon() + var/new_name = tgui_input_text(mob, "New platoon name?", "Platoon Name", GLOB.main_platoon_name) + if(!new_name || !istext(new_name)) + return + + if(length(new_name) > 10) + to_chat(src, SPAN_NOTICE("The platoon name should be 10 characters or less.")) + return + + var/old_name = GLOB.main_platoon_name + + var/channel = radiochannels[old_name] + radiochannels -= old_name + + radiochannels[new_name] = channel + + var/list/keys_to_readd = list() + + for(var/key in department_radio_keys) + if(department_radio_keys[key] == old_name) + keys_to_readd += key + department_radio_keys -= key + + for(var/key in keys_to_readd) + department_radio_keys[key] = new_name + + ROLES_SQUAD_ALL -= old_name + ROLES_SQUAD_ALL += new_name + + var/list/copy_frozen_platoon_items = GLOB.frozen_items[old_name] + GLOB.frozen_items -= old_name + GLOB.frozen_items[new_name] = copy_frozen_platoon_items + + SEND_GLOBAL_SIGNAL(COMSIG_GLOB_PLATOON_NAME_CHANGE, new_name, old_name) + + log_admin("[key_name(src)] has renamed the platoon from [GLOB.main_platoon_name] to [new_name].") + + GLOB.main_platoon_name = new_name diff --git a/code/modules/admin/game_master/toggle_join_xeno.dm b/code/modules/admin/game_master/extra_buttons/toggle_join_xeno.dm similarity index 93% rename from code/modules/admin/game_master/toggle_join_xeno.dm rename to code/modules/admin/game_master/extra_buttons/toggle_join_xeno.dm index 6bd29e2f8e..5fb931206a 100644 --- a/code/modules/admin/game_master/toggle_join_xeno.dm +++ b/code/modules/admin/game_master/extra_buttons/toggle_join_xeno.dm @@ -2,7 +2,7 @@ /// For PvE CM we start without the ability for people to join as xenos. This can be toggled by game masters. /client/proc/toggle_join_xeno() set name = "Toggle Player Xeno Joins" - set category = "Game Master" + set category = "Game Master.Extras" if(!admin_holder || !check_rights(R_MOD, FALSE)) return diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index 4879db24aa..cf4f0b52c6 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -281,8 +281,8 @@ list("Med", "hudsquad_med"), list("SG", "hudsquad_gun"), list("Spc", "hudsquad_spec"), - list("TL", "hudsquad_tl"), - list("SL", "hudsquad_leader"), + list("SqSgt", "hudsquad_tl"), + list("PltSgt", "hudsquad_leader"), ) for(var/datum/squad/marine/squad in RoleAuthority.squads) @@ -297,7 +297,7 @@ background.Crop(25,25,32,32) background.Scale(16,16) - Insert("squad-[squad]-hud-[iconref[1]]", background) + Insert("squad-[copytext(REF(squad), 2, 12)]-hud-[iconref[1]]", background) return ..() /datum/asset/spritesheet/vending_products diff --git a/code/modules/clothing/head/head.dm b/code/modules/clothing/head/head.dm index ac4eb485c1..d1743a6c4f 100644 --- a/code/modules/clothing/head/head.dm +++ b/code/modules/clothing/head/head.dm @@ -99,9 +99,6 @@ if(istype(H)) if(H.assigned_squad) switch(H.assigned_squad.name) - if(SQUAD_MARINE_1) - icon_state = "beret_alpha" - desc = "Often found atop heads, slightly less found on those still attached." if(SQUAD_MARINE_2) icon_state = "beret_bravo" desc = "It has quite a lot of debris on it, the person wearing this probably moves less than a wall." @@ -120,6 +117,10 @@ if(SQUAD_MARINE_INTEL) icon_state = "beret_intel" desc = "Looks more intellegent than the person wearing it." + + if(H.assigned_squad.name == GLOB.main_platoon_name) + icon_state = "beret_alpha" + desc = "Often found atop heads, slightly less found on those still attached." else icon_state = "beret" desc = initial(desc) @@ -193,7 +194,7 @@ return ..() /obj/item/clothing/head/headband/squad/proc/adapt_to_squad() - var/squad_color = "gray" + var/squad_color = "Delta" var/mob/living/carbon/human/wearer = recursive_holder_check(src) if(istype(wearer) && wearer.assigned_squad) var/squad_name = lowertext(wearer.assigned_squad.name) diff --git a/code/modules/cm_marines/overwatch.dm b/code/modules/cm_marines/overwatch.dm index 273fb07ecb..fbc1ad3562 100644 --- a/code/modules/cm_marines/overwatch.dm +++ b/code/modules/cm_marines/overwatch.dm @@ -931,6 +931,16 @@ icon_state = "alphadrop" squad = SQUAD_MARINE_1 +/obj/structure/supply_drop/alpha/Initialize(mapload, ...) + . = ..() + + RegisterSignal(SSdcs, COMSIG_GLOB_PLATOON_NAME_CHANGE, PROC_REF(rename_platoon)) + +/obj/structure/supply_drop/alpha/proc/rename_platoon(datum/source, new_name, old_name) + SIGNAL_HANDLER + + squad = new_name + /obj/structure/supply_drop/bravo icon_state = "bravodrop" squad = SQUAD_MARINE_2 diff --git a/code/modules/gear_presets/uscm_ship.dm b/code/modules/gear_presets/uscm_ship.dm index ea5ef95865..d707831f44 100644 --- a/code/modules/gear_presets/uscm_ship.dm +++ b/code/modules/gear_presets/uscm_ship.dm @@ -568,6 +568,14 @@ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large(new_human), WEAR_R_STORE) new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range(new_human), WEAR_L_HAND) +/datum/equipment_preset/uscm_ship/so/load_status(mob/living/carbon/human/new_human, client/mob_client) + . = ..() + + if(!new_human.client) + return + + add_verb(new_human.client, /client/proc/commander_rename_platoon) + /datum/equipment_preset/uscm_ship/so/lesser_rank paygrade = "MO1" diff --git a/colonialmarines.dme b/colonialmarines.dme index eedb4b4da7..9b1c07d047 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -1381,7 +1381,8 @@ #include "code\modules\admin\ToRban.dm" #include "code\modules\admin\game_master\game_master.dm" #include "code\modules\admin\game_master\game_master_submenu.dm" -#include "code\modules\admin\game_master\toggle_join_xeno.dm" +#include "code\modules\admin\game_master\extra_buttons\rename_platoon.dm" +#include "code\modules\admin\game_master\extra_buttons\toggle_join_xeno.dm" #include "code\modules\admin\game_master\game_master_submenu\vents.dm" #include "code\modules\admin\medal_panel\medals_panel.dm" #include "code\modules\admin\medal_panel\medals_panel_tgui.dm" diff --git a/icons/obj/items/clothing/cm_hats.dmi b/icons/obj/items/clothing/cm_hats.dmi index 1c2134ee3b809a511048f6ecc8b471c8a777e75f..1d35eefcc530e3f144fac3cc3d74a09bf5600265 100644 GIT binary patch literal 48397 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

5$rcU)R%dWN>N~h&q?z5*k;xWP$n|j?_ENwX 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 D34usw literal 50034 zcmc$`by!s4yDmI{bcsj{2&f21C?%cJDGkykASGQhbV`WQB1m_44J9BU&A`yoJxC7> za~8k&_TJyw*S@av&pCex>s@QH)_UW4p8L6<`!z~KO`e#5mH-3-5i2Ulz6F6W&47QB zcsRfr_I~!x&JtF7-YYwc$F(ay!)&e;hB^8S_yAB~$AxQ~N4L9&IePvk(x@|q9x z6*Sfp9w9M9#)k(iIHTBqRo4a}89vyyO9>)voLf6tqx1M~6knNoLHsXI*0v5&h4HPq zN$Gzl7QK$ZC`T_ZC3xRq$2IEU(5bGDasDa`-elml-0oZ7I;m|B9Ly~ehuMmtQT!Si zx3A!QMt+|<{GK64L**c}Wex5s=yWF=MMtwNxQ!lE?81#D9Z%(V!FzYp59X@6V^}j0 ziQ^xV_K8VqUoFIZ6=aD`!4fZHwHqY#9-leDXPD%B%JR!@mMF!obdl8F;pM6ga&1$p zox&`zox&lu5qD;*?Fk*t`@iXV45Q&KW8N5WUGBF2x2WEavmF$q;;P;ARE=A2evHi@ zq;Dir=Gt$h_Ksa93=L1((9*;p2!`tsNBVq^1PG_hFpRXg+p<<$ zaTO|_&G(Gx2RSHChJGzKt0ht!y4S10g?CZ)RLHG@rPeY-xtKz#j^gBv=v%mEBz{OXwjeuO0hVl8|%|XTnO(cH}|% zT#%NLaV7IXt%mUg!MW65(UY7inRn+17?1O-zV0!?N=zWA-o+!tu;?+GV<0$XLwc_m9 z3Cd#;aBIZ9hm6g9Oz$JL9Lj1|7=I=(p2}MV>D>T*tJilX*Zw5)GQ*pUgAZO6AhNJt zjo%~$YUY-sqb@JXcu`&F?r&2%JinL;?DA#QbMahCm zj$&x4T7P*f;v9su)D6xPN;&_e{rh#&sM=FnPP?pLyHO8LQMN<#3d}bXU1qyt_{^>E z6kDF@swN!2(w$aoeyQ|q{XXK0M#qN(+U8YTAJKcFF_c&-e4NiLYcM|9a_Vx>9MTeNb@Tj~ALtbbiu|IXpv((?Ck2PYxQaB3b5_~tDRjA5F`hCY38t}*0B zib{NSG0R%!pN_L{eOP(ZNgnVgk#Zi~z;)s??T_`enzg7>(SH7^C&|gj)=#1#QfXnd z=N#i6`cux8M=23uM`EKLhvNR=<#zO`>jfjD?^CS^!zo7)=rKr9R!ZCZ+y0{8yRSO8 zxCl}onYWtv?`<&WL>ZcB2`Xp2ZEd10pz*fkD{JF6FD<{CKd>lBuE?-)} zhf~wbgTL~*Fka-s=hkc<@12|5)bFn0G%5*hI2$M6cK@AkSSJC$MSDaUN8P^T7N(|B zFBE^v%nTcU@BUF6m6YZG_?hbWohqbkeOGS0IQ#kjTu&Aja}Ilv>7uj0dy?9F^b$G4 zS_0`ZmvPI=z-N}Y=ft2?hL?15x#LXrnVFf`X1>IH@^OzeYZ!gccCD8#TwPs3AbA{f zjPvb zjGSM8RX7@G&67~nJOBJcO0}RlYGnNT_iyRzwQWa)^U+q3Do;kWpmbT&xm~$8>C%Dj zyKC*?S-LJ*`nJFvv6-RS-5XB*R(EWe_I0J<2V*v-yNN(IHFi`!0ev>S`h`0oPEBtx zpIBR4>wP*dKLU9nqu^^;@HM^Wd!uk2YGnZ7aFqpe%+PiY$rqL3`n@l4kN~$`A|U&| z{JWGlXnpv0a)5UoevskXA(QDtAL*2`2(qF1=CrA6+h~=UbK^2+L8Ij?p$B3}?T&-U%K9!R{w7CP797!)&F|oCb zm=G@9z)BWc4{&+4$9&%VOrcye19Ryw#?Uu`wz}Vk4grTLizR{)+i@O~{ATeL6H&{A z>VkVI0lS|GSBi6Tx??83UtDmtXt-+1S&vp?=ZN{8E0hM*hMfbmW;d~(Her7hBN3zZ z=FK*Hd3X8MTFTC!zs;7BX}rTXhN9?W^$Cdx;H}w{E_)4UG7-_&8G`b#dIyJ*t(A*h zfBTV!`_rD&CZVJYhL<0wFas#W-!)LbA{EwdRY@0}EUx)^2~1cUvu;j>158***dIf( zbt!)J8`iET(xGm|Z|`<om3QoeBP1lQv zp~~R@DfQWAlFDe}(b_UPIVdzT@=%zGiK)BXTFd*IkGIh}pDOoprK}>J8EUx_YI7!U z;XljAHlG9A3se4rBXFk7ZCtL4*IHisI4Ux77xQ3cxzd^Rp2z8%`Ey5C@ncbm_S}(#6tTi@1?g4_Xspjqr6+zIY!13Rmrr?VV~ZeP zkkid9nCemw01FTG+$}zx&}rhcGn+K^-C@TJS@>)+y!mFb+KYAPtp0d3 zjV#LegvxxSO-R4azqsZ&#iS+L;i-@S>MX-IeXo_zE-+rg&>(kSBMGTPBVpSa85!v$ zEpmy2)69~snym@}dUUnIT?_7C%6w#KN{8-{X&pyIiO+hy7et;N{AdC*W`Ku~`6(5` zbzq%^k07IyU4#*`UK&o6c3j!UeINMNs~5K3H4`z;@KNN)J!tg}@7Ls%A5~TN9or0Z z>)MF8Nr{t$u?nZNP`C0fc2m^(8`j=W-9>LZTw||}|L7I!_}mD#lcwea3xFSeZTjs}X!fv%#BQmBHm`!`~-0{dKGUA`)Sd_Sp-$6)bSzRsv6o}G zfgRdFDj35IoOuSn!3MW#11*Sarl`p6L-Gd?m;tBGVT@(NN1MMC{i6bwCFs+n@chHQ z#$;7TB*9;$u^(@QHX+Qm#J&m&k<`e3j9Dbggs-U|A4@EAe0q|iT8OHeqd&3~O7I?~ z<3s#GO$wfoKY{s$vaC<vg)wcKUSi5jzb@vX+4 zqdpA*|M-nvo;MvA7w4J&$}w?!qMg{kmaqzVvawLXG0CaBTzU%KIislV2FRWt%f>le zNlxDa#KN2-65HNd<)FP7Syur&8q0Y^jGAZSXs2EhA8~oQ@#p~o9b2)4HT;R@TNiwF ziR0&qS`+tIj$#-akEFC3pG~*?op=_gLnOyfmh2=@DhI4^_tFBDj3+?HS7vJLVwXSu zx%fm!&mJt?AY&p$X4t|X!F2m*#%Wf+78*V9if>vLWVv$Z5kwZ7#(!-3YcC?OwI6ia zf2VflbtppqaV;PTrz%=c+VHj<)%s^`u;aU+ z*;C+IEk7nex-a>3i1husEx)~RuCPDy1J-lozzpX|;GEyPxr+ z$DN-uxY>LH?%57!M{y|t4`FTzn5YPTa(8r1eP<4l4=sV=VrG8(3FGcYg_k&Yo{ahD z|G~vFutx{mlPA5KDGu`T@*;EBhBS9x#%QQuvme{%>ENE;2Q33=#pK>ucfKOl$=Zan z9vKBi{{C4Oy->Fen%ksB(I8-PdtBhmQsBeNwfg6j?*7PgdQnHXEwn-9m$-{Ns%rd4 zjvp>0<9wizaykmRu8(}#(7#-Cwi^e{?Tf7~MsL9Dr%OyXO#8~i7@f0h@ZOV0u77%B zl~2V%D3yF>)Oap!W7E*H>!3Z;xPTMOf?1TiyLaYGM!g<4Q{F!8n3guD@M@g{-@KMZ zJ`w|q0TV>D4 z+==uM$v?uChr!zFt*S?)E-PzoIId}cNvJA@en@M{l9C?>9$4p09D^-9V4+e4H*vsE!?uiU{I-ZyrmEK482d!04O$X&93@@ii%f3}BrJ zK96Vi&T?+2EgsrZI(}_=Sc*1+4u`k^m+x!}6MoO|6Z$Sj0RA~q9PCKPj-ye& zsEMJk6HxBCH)DcFL{zmqq{N-vLCkyF^YhE7_$OXlBI=hmMMC~GYCp|810#53B;LJ< zN9q~|WU8?S`(E@Vd{)mfji4s8c$CCQTwZx zHwrkPBOlfeauH?9SDS)3{IYoIfsE00RAf{11{yz@LjlW*#3z5IUr#UQ`w%d?KTag( zhL;oKetg#?3|(5IX-MmE9!`HTv5)se+vn5g-D-YkT$j>zm-rLZm@YG1?#!287E51i z^+Z_gUHFwE-E}PZXf+unCAUlv&Ie&!2RHYujd{}^yGk`F+g z_p@+7n+Bc08HI8n+`maVbR5Q5zg44m-Bl4yOicWomc}U-DBL1$CcNmqK4##Cz*1Q) z1%h6h^+-d&iRmSFv*jeRT#$BeTBeZUp!y&KtyEe%xf2=@Px`mE#$~tD{F|`LY>9*f zhq9rg>Q7QhPXGMO5y^LDH%RkbnS=03UVN&r^!^x+4?cunEn@_M@#s#YGOV^RNuFqD3r_!Fw&t$z0Xh{`y!vtw< z3xi+l%B3mA(u?R4J$ijVkj>rN))xKSYpU%hp`-1x_DG;n#|1y!Hi2Mg4*T`rtoH4* zf!GEX^jys8ez3jRGAAxiy9xJ#p}WeV2?FM`^f3a4R%cs+3ymH2pwo(4{d+@wY}?{?8m?EE7?Qc}|1zP|Jj z*g~^g(hO`VA}$>R_k&Do2?87R^r@cfX|KWhy8+(Dd|RsQygXlWP~)S{Is`_i69`j< zsrRF+yXr@Wxrd73{;4x)_v#(k42D64YKbEJ5-VhZZ0y-sfrJnXK5*G?Eei;a)S`J* z=cq>)MxYlByWH*W6d@6(-Cym#^!78BmmM?SlZSbEddiuZfzE~cy8us|!S4+kM%8>1 zvXm@TlbQuaiiDn1&dG^OR8;i-iXS}|j%X-g;`g8AS8=0=V#5s=Ys<>Pa;YM6VFtST5Ztd*gb8~a=!|Mt6 zX3AR~)CHG5QGz&&iOj`X7b8sKiFhQ$fdw{ulC?|khdkKqs7J`nLN<*u=@Zn7dqMe=80@9!Igy^^d+GWfyMQ7t` z@Eu(FVc+tls&TtJwR}1de$zWQkX+%y!Q^IlfP}A8$q`HOzHA6N2>7O z0ZUi2hUm|@e2dvA$C)Dm0_e&b*@xnOyi7NbVhx^;!vlnKBv|Mx`kIJ`1GWmd|1=}#I;+XhxGIZ z5C4gSS10m<7PSIiIY->TJ6XZV0{3mr$%K+3Pw`$|&aV!GfO{Q8esRSI1@_K*gCu>L;n-cW9#Og7DFp(d z+?@{_>iou^K3jjDnHg)ycwj|fE(q5S6%BL?HtMNJ0;OrI-UakMT#jTQ=SbdSY=khXW&rO=o9Bf+&8nX&>u^JqES~}1uH?a&) zgF*(5e`FQ64mmn_ds~UYYZrAXA9pJorg2rSJ3kf-z2}>WT9)PE^$)%@o2F7z7Z=j< z_N4@%!bd~I6bl*K#oJ5j)$Ow=uNrn-o>+lB4OfBS^$frlyFkH~&$yr_%K6uw<7Yq) zcj!J%a+fK~YK#5VB__Yi0gV5VI?G1C3T4l2Buw=g;<*#ENe$ij(^mrIt<%dJ0}RQL7t_RO5?_85~Z*9IoT4!Wt?aV^D2 zRs^lPJy{rkill8faXty50`h>o4i*P2NuRXpnOLZS12;wfhzSX!LoG4-UA@|`OL_x3 zo&z*o;5PibIJ*)S$RzEe&BenZlxs2MzSlxv4EDz5^$mo>4@GZ`&PTiys6+!XhNFDB zBcxDgejk?1R*L?3seinX{arU+=k^Ap-jZ=@1IfRUjFl=dIgMKFcfB3PuX{gD;N;}= z{Q2|FpTQsM4yHzK`1fFPuuH-pBkt`yuA+z&&jnZqF(#J(=da(who^MM#BT42U;D>` z0>?Ca@(%IttV3c6J17W4;Gjk((xj4#+~kq{bn@4)WqAz+uX*X}9dE9|abFB(qR%n> zO^vuSJm(mDxg+8!+*paL?M3{=jdr9~l+=Xn=P#jfA8i|hTD?s%?qH;6;Cwq59{o!K z#r6kPjz{3OYWFs8mXEQgu;uYHQvya7hHFdG(gq;Hdb9a|dcO+S_VjrHK=6c~UTzXA-T^c%eKU89*9xXui&(2R0I_nQ;D`Q46>mNnjZSf0gyY?UqMM#HD66 z%3NHMzrOi}_w~AY#mb(|{fi*e=GK9C9(wI^v?D8j8rLbba(MWIm5q&ZxlUTZHOXw< z8KfgVeRe{b(nS*1~GO97BVLK-k<6={fS8O6u=svycaj{+^}oo zFURHu*sHR1^WqP1Oi;3n$M{RJ7-YtPZe`NraZHOygslv`BKu5*@S0Tj4A9cI;>QBt}FvE1<< z&-c6Ud$AiQi6)tC+EEUTqqd&rcB335J1cynM!`6e6>BS}`sSMCyEiI!C-wDt<#X;< zr`vS7*u5VCxay}z^MqMaBT{3p{DFY7qM+r2i%RL~C%D+;!uxB7jbcQbeZLa>PArPV zorHP&)pzbfN6Eua2?w~@lRSkx+V+LdZ@ocL_(Hk|xtkeCT7CwW!J!Hk`+yO~h%-xR z+1$P}aH$q4sH}mdTqb<_S~`4xpSg7nm*lZXE8bn+JU92|^6;ARFfy%*eFQ*ty8u61 zErdpn2rer!x@;GjtNq9g7b+7sBLKmP5(*&bh+%YtpokVZKoB|`mU=jF?_WyYq9MSD z-3^c%>3Ll`%IB0c^Ix|ybV#fe)VH-8KHj}XD;7HzbH$@Aq=f#&(Sblm!=@yl?Zr}& zr8MXxQj+a3z_oZ;qwG#7u|PPYsQZ1Nyy<~df8Jl!LOSkB`>RSTR3d!wHI5^(K5*i+ zULs|va^-Ir2QV1eYELtkW0G(E*ynEQYlyv(OqWY3(Sec@AVIYri~_Tk3wfceF5qF7 zos*<*W)~L)_YVOm`ibFqOXR%1=&w$KN9I13zeh1a=;7gE5v+`@;X|<)hWk)5ryB3= zEBU6F@Ck=sB(JCQ+3yQDYz8HUt5#bpAK+)hZ=Gk#f~JItxi526VSBo~s?Zzld#ouI zr+Z6`;nQbdVGy5L5jF0^0Hva$%4#u`<=Mb3$sX|indqW>RdA6R~ z13Ns5H$TObch)&OmMhbK%As54(gLo&S8Fp;!hZox<9A4I0-7AU15jcmV?EdfB;`=5 zN!zJ?N#iSy#dZ9(RZ2zOEp+Mnm!eGoD)qjmi6{NtLI5miby8<9ll|6bw;8wk`r6Xt zqi*z+-E!CDqYi;GctAgN*_$A-#CmtC_|G84q%UqtU+i($-wh?meVgB@OiDw8fa-!y z!0PgCS;ZlG44=Grpo%0?#3^ti_~NeB$K8L$4lpeolw-1juF%y3KT;bs3qds zpgXu=1slPn{>&nJ($DnA3C|StPbBg29oGMSVDUeK8C|IGGN1LtL(S@gwIoK7#oNuQ z+e{79O4$5Vd~|dP?;0ry2|0>k-wfP_cEJ>IHZivCGli+9@x7@#b9My#i$B%c*+c)C z!plIRD=CJ)cAz;Liv7`Aiv<8bQeo78 zBntPnc%X32?N>#u-W4gVv06VtxB2lk)+);_lc$yF7%i6GJX>_+k5O@Jr+MUvy8hM3 zg_5+si%Y6^b}kjBf53?2FFU)}G+E^z7(-)8D8L1 zHn`)?ZZJbW!1XGTvIZbm?Yk4=0b4rWNTVb4x3Ah|XmI@Lecj2k(ubXOr04`qmhp;A zM!47Er{2jzSD@UI1HCasN=cS7`h9?^n!*@RU#CfF_#c4A5X%{^8&_r^4T0M~!6!-Q zf^H5m@p|C>I=eNTm(1?&vCa_yY=J3#WIw1}p3<_%D)4h-DW@DVNxlajFLy5O7+(9xbJ>s3H%-<5@gL-4zQM+ zBi}j0i5Wh1Ubl@GD+_)DF67l3%+^>&B;FU`c=fiawfTo-Aixaq$xE4&{rNJPV5)IP zxVj6!T>Ba2;xN8Y(w<#~mjMxfEOu`?9JxA5DzofFKjMh1-irm&Mfni|lYCf&oEFCR zIlaUO6_7Fv^|SXf%*X$4g(xz=4-)Ck^*S}g^6^=cr6_1BLz#XQp=SY$b&cTd`lNgw z%)@Ra_)o@^m)#0;0G+g4Z10|%?OYwS)(oGr9s17xV0dBZ{oBgF$F`d$$%YU_Him+N z0-r>~&6To(!rj`)o5^}*7d;jahO>hj9JV6dw%(5a=)qS3R__2wc3c^0s+yo2BFs4qYnDl<%i-kjLG52I;w7f(VME% zetH(tvfwP}zhP56hX&ox`W7BX!GI-cpXkT~rQ2i8U-qsHyzFiNw-(^+V1}&cI}H(t z`h3`|%%EEKNxrReCVuHJWTPlnL8h;8W@_Z`gZcT>EHxEb#H70UNxXz&8us|^dHW*GDTk3l${DcOs=Zd-Zl!KqofV+Do zDBHs&Mhqfn7%t$az`%yja9h%ue4}Mb@WNcat)eo5Ui~V7Y}cxrUnXEk4mt6Q69T3# z8_yu-a`;aC#wfjF-u~ZY9_T)oYC^i<3r9wM93GJFs>4}$?1XLB3oL3-DIz~d+-2?5 zR3nfSl-iTM**X4&=SiV*Mid}j5Zt^qxQFz{;0a?;he)jF<^5TS@-CIU2YPu8DLzi) zF*tMf!BM$(Aq6AZN=YR~0P7#dh0xR?S+Ypo-UrCXqjh(IQLH;5+T9&86RH3fQ-VKj zWHEw2DeO!7*ijeB-GHbRf^26`9ST95uxHaxP!&D*4D~6sJV89F`$6}lnpR*6diowODms@0gjp|w zG5ry}*-`?$F5y|E`T^yi0MZv0KZhnn%%?r$MD*TxQYxL>$)}w;3k4edMrhw4N@uyT z_LjYGx0nmFf%;}xSlIiuX&(}*1nQuxjASQ>LhF;&iK3Tn z42KvXr9P-lzfHz5RFqG9cMl@|bW*gZ9`K}Jj z&NsW4BJS_wJr8cod@w@gjDp81GP87enlpACR0`909o2*e#ZhHZ$W6L;t~IFRIN+c( z?24aFU`G@lPaQO?nz538QMyTG53(>X8 z15IIb$66P?d{PM1bMPL=RhSwOXR6t{y{Q;PHtqolqcRrN2`+l4SGE;5Fd8>JeSM-6 z8;B@^<&|ecC8l(JP?wSZO@yl%%7!RS00S5q{iaRJGO%0JDH3Q%60QKn*X_kMj5Yy* zM})9)X>;=*r!YwW?{?iaQ`F{z8@oCGlgnja^W-{YT64-sSL>-g+b6l)=Fz!1cj0GD zOq%eZ+58~F4zw#_#SaXCgVNph_<20+l*U1{^=$&){&szxs2KOc(kV~w=5uOtc>FDwEwPn~%BL@$*^?E4MBvSrZqNpXeJlTl(~#=HQu+f;pZeVVR{p?+ z3V4fgW67YNRI&+YxjS(*FjPBwLDL(^lV_wz6Mv{9eXSAm8t#URLqCE-3C=*G6AFgn;%Qgk+P4lzQ{2pWH=I2)QpCpRt^ zQFnkITdlhkH?E}uu6ba%{S%nfv+9}_Koha32=X!bnu*;JnkoyT;(y&^;_g!=A?$Vd z!AT+j$@hoks0YD>g{XuaC7<8=Z6xXSwiDBW0!JL5gH|LWNEVNAWto#o{3)z{`biqR zb$zN~T#*GCpM53~qzDUL0BLN0nMh zpkBU;90SP$Az=!%J8+B@SnDPf9Zmb=B%}eu1-*LjwMdF``Eped2SCStfY&3YH753{ z%;0FPXR2gL?Z4sR&-LhfZ}4fqto zxmD#_#G>^j`>u@p?ga5+Is7qN8s~R!W&)Vv3FtEV)qd1yKW~UH%Vk>supYD1t&?EK zyuk@!R@9;AbPJh-bwG)etRZZ#6*elZZjATf!GrN1GJcO@qvUS+ou8gjwWAtd`v{Z# z*NS=x2%MVZ2Bp%7OZivr5*Dtk@Qjzu z#WIHcv0z=o&nluVdDL0tsegJt|HohH864TD>$x)i-&E__P44dv9K$^BT<}+`g{Gr- zlLGBu53%H7mBe+AaRx|DWS`(-QR@udmGH3wcM(8A(Y^3rXthsmi*$ot0k4)-tm=f>%;r81K6KWw`AD1^o}Z+(r#51_AQ4 z{7&CSW})v|b?0X3jk6v(PlVzN90etr`u|uLTN!|ZG)!#DJl34|7nR=FfdTz&j%P(;}Vu>b3sQpS?7H(J?VIORJ>vbd?-zkLO0l#^_KdIVIG|b zG(OE7>Au#~RFY1}-TShpn$9D2dIY2TZnC6%VCsz2^~Fo$GY_T~vS`vVQuCxdKaeQm z15HmK@3{*Dvk`=Wg_Ameez+K8J(SEQ1QKrP*znZ;prv`|-(9@iWcop-P4(~Ng1eb} zSqqt<*^)pFf5+XTFNPcgG1vKyK}aWI;(j#608~P0AmtZE>g|KjVx0e4ALS@^_@!A3F}$Qf?rXU? zPxmb>6)T4~o7&)gbPxC_%IR;lzRtqJy3921^5Xofsu3C-@Y1gP-Vf$~_vyid;KpU} zd`SRerE6etFc_GRSEPY)70%7{=a`ZEceUO(8Y$NRI!qO;T#GF0rmU;(XDv*l1z%sc zSEuPCR0N;SYt-b^{obJO&4L+>V*UpDbrXOvx~zEw0ZU;VLaZKpLZJDBqk0>l&DGVQ zPi-+g3}X1%44c0*3Qq&~fK#)x`fiAH5wD5~WD<(h3K&bERu6zzyiX@`tT7F|uB(OG)Gh7pIeY|naPVZjY1~Rv z7pyoqmvC1T>5EOzF1vX^D`=1TcyZG~)ZgE}r7UUc3D$XQ%i{}+Vx8+^^uDxxBB1yC z^2R=KHQDwL;8GSA7gqd7JswGr$4@)VJkL5noSufJq)>Stz{5QDW~Q6xlGp3_0N^f| z_}eCJ9vB`4UBv3z0P@6Ul=6;xi>h7jXA8k7T&gGWr^(Mx^0ytq10a|#H-wnn78-vO zjJePKylS@+)&w77JBmc6x8*S3t^GqMr_BZi<0C=z{L;RP>U-D{-=26)qM@Vc;_(RS zeBM-pwqAebuFL+VtGBne_J)x|Z!k9D-B-ArZfizN;RXhC z=miF2_F`?KQR`F>Q{fc&0E7UtLrXGyvu}dQ0d>fViY!gTXdmaY&Mijp`-`4u3nrGt zC9o#(Zkrd{0z=yKyGGIcPqcjpQ9HKb^9~)3=QeOohdCq4$I4|)7`EgOssKaJaMDt3 znY)Z2rh9g{HzuWItUNwG?)~={tLthvHlM4PV58~aX#a2;Z?)sR0G}gVTM-pY=NuY0 zHm30-r=w33!wSd|)Zo_(WL<=ykCT(t==U#@Ul`=HotJ-eq!ZHRF7E)$uHEC)$Qrs7j6Z3Opa zRS0{&!l;(&&ve>5${=pb;A_Y7*|=!!0ET*}MOr;t{wlhTM?hEpNru%qEg~0 z{mZ)OOcO?z4yn zM>?R|aB-NukF8hnT;w&l*|U7|&c*g0wb}4vc|1G3SJ2j>fz*kNt59Eme@B6(3wxBL z0^FC&lvGoWL9I>Hp0%}pwME#}L7I@;Gn0TbowlpZjMuJzLYv!-8lAk)ruAOBZK|Yg zl{-LUZR=;d31M#qIF&1)m%R$%TP`Sf}i!@ufm$6j~J)BiVBxc?N*|5N2}+UpcY zTfPZgRy5ndZl6iM2a5&7w@U?JZEfvL8VJBG;Sqdr0)J3o2N;&pz2VEf78jKM_{8Gk z&1-H6)15u&Iyd+HKHA{uR%_=PYLPK`A)%@28XXnodMcnDb-wBb@q@U{7xzB2W|S^N zU!RTMdX+XEt^Ro1@TL+*$nB+-zw|WI0|h$3)Lc5WNvVEkcDEQ;|4*dY z($aTb$CzZWhAn0`U~etpc1QTKKH_^KEL&jef{>`j&a{2^3p)&&i1Nm&9ltQ|A=${juG`EcL3L6T5jS0~F%3diD=L5x$!Xn|D6q)OvqM+329v zdD#=-tpX=~iu&JnBhgPSZl(Yg0<9(naTv(&`uj?DF&t@mwJz&CHGgh z?|N(Kcz`M#UxL&$numj%yaR5`dcU^@0{jLhi0hk3*sL4XSiLbvTdfUlvU~u?Km11g z=}t(bo%!}uenvA&WdZ-i_4|5&_+tH7Fm~Qv2+g``hp@kVV}R#o1)AD%|1;@jQtyk# zD7aWb9$hGqO4a|k{Y1suUH-Aq3=YJ3>O_*Tmtu zzhFJRRI-Qyc`E!v$yQpL#by=INS6Vfcbta25;p>LY=B1cWfR1?b(Mpo^e>uvCQs-y zZ?hWdq;2${)Xb+t>oMNn;7b;Mh;JgPf4!`bEX>wuk(HE#~$CQ$kl!9UU`m~h6bH% zuB@p`XbRljTqQ`T11&CW?nr5Mh(*Vjv7cEVp$9P&)aOYi)WUFZBcisx?}w*`$eTM; z4mTIm0Ymbq)R8rB7;|B8G;4<2fwJb${ujCF7hhTSaDlroY$W0(xNijw1)xroS$f)} zhR{!rRf5;ncKyGNCv3U^{|4Y;+~1i)5fJ4`4@<`k;f(9i6lx4mcRv1Gt(g1+tRWCi zC%ZqO9Mbf?#HXXT7xXtC`K8@J4BvrDGIE1>A~Z*mk31il6%sHj7;L5v_t z0P~j4Rbk1icPD%U5Am9N4HE(OBVOdJcgJIOksoh{K!=g)#I);UNcd&tdX@~DE!X8K z`cb#M_>VU5o8+_F6K>(U4x;2WB|z!;t1u{)z*NiNbuqqF&Akhk0Go+iv{Z1pVsj(m?Vs=eZkUQ50&d=E`H%C>W@ln*Q~0yLrSDiuy|yLWUJFBPMa&I@o&`Yr|E1l# z%TdT4u7t4S5WkA3_-7u_g*d?|tt=l@nWZQ11myhe;7gr-+kob?vy){xJ0BWALO9EzMPmbT|8?bXTw_J3u$vQn~~zpq9M zc~3P!ix|H9)f6svq-V!UY_4eTi&8syv|P~c=89LCYb<}C=z{=0S*x?E2_)@?kQG(K zK%8FG5@@Qn=U<&W-(d(3)WBCmyDkAU;Gah zTCl@Xr6+XL%3pwCdpqoigkIWe#2FK0c87J`m~9CioIkzl8KLs*3Bz&?X`GFQq_D%+? z?yMnmLpaNW42U$@;_LpD-<4D_I_87g{IxEtsQ4QF8+#5RYW6kapbv`yct&1~HM`Dx z^Gf!pwjAG0ey^loii$}M=oI;YJw8COeCL^38XUqrTAl74RAaSTELJ#7P_Euduz&&t z1_(}(&^0P*a|oLW$^0~$4Ce7%2X-S61tzsuz`;OyM#m}^9cKV!os?ZBGAJcj_EbOr ze=uJL))(D>8D#I4zqeq=r>m@iW&-wi61u}ac6^ipEf^bm6_(kBye+;h%mQ1?o*UHT zMdo7fQ8gx5@^OqjeIQ$=M`S>3b?RiCyTG&9kAc_BpXHo(DGSk-x^0 zbB|C^Q^Vfn?*-8AH^Y{RlB2in;YBIQ#a1F8$;qqPS&S7q{g%pkJVDPnd43MZwq)a*A zwrXV(Y^o_M8>)%|QoQM?p=J44I$PdzZdiqmfTui+wPX*Vv>m}XdT+|L{_<}BefYHFiB_wyIsn^~mK@y(q%4PF$eLB>ls*`DIhH{6sx`LEj}s;jHL0`TYnZqU2H zl=SpqW_-aD2tXb45EaEcsw$_2>z{6`?n>Mx-Jp^?kwF^x=AVgPoBH(|d3hG&g>+wW zvRj02|NpWzHvHKJFNvB5Z;$2H(_3#(yZ}$&3Pd^J9c15c!2^nlKLH5xIw|#S`F-7T znySlnKKC*NHR$aZqG_KN_O$=H0l`;Q*|I;50t=Vqo*9Ah+}xbf9#&iiYO*`tlUyVA zT#C1VLFC6IbK#uJ2UT_%Cll{O_xcGaFp9Y1mjR*6!l8%M zk;&qSqtivpV`ZChL*@_eMbrz>#zjQ^i7M-(;yyQBjzF43=Y`N}phC^Cdj$fm{P<34 z)^&3QfGIA=XD=Rik^;l|Nq4DW}N9RCd;jsMde6MjxT8c6`H(vQw zT>x-q8$b2NN>u5ZeEnFe+-#p@ipRzn7&Ik(4oc$Cn~6d}clQnyRBItDCjZulDJu^l zdJfU>(^BLO#_r+evc9m1`wm0sQhN)_7!*su3Hjg$i=4sP&^PQ-RS8HkfVVkt<2%trQVlz(9C~jGY?xu=9$5Hb3t(l(x-!7`ln;z06 z$cm4zZ}-p;VXNmscZkzO`H#(pTir`N-KxBq=p#Uu`|EM8a}V`A_asx0kNx z*FYD)ADVo5ruu+GA~oWU9;;83UQc<*jNZ3%LwnfTKAnGgfZa}w)E7JjcBr)Zi#!(L z#ONo!#8O1NLH<)Y0&ib3S_}r+EKr3pv_5@OhLOFe3~MFceM9|Dh`w+hQPr>9z0a zb71GhR~W7eG;Z^9Rln|U%dvwkm(^ApST&Y;l_jgn5IrXNlwt@5_R@nvwJVuyh7AKp zg@$xkjlDek^3qO@n?r1ym5kFZ_72HsTdqS@TiHuHmP~ehQ;xM-;Q;%!R`|Q7*w(-S zupw(bj0#|M)mWcc0<@9fVnMol?J+5xfJ#v+hH`T{=|vgv-?sP|{=xpY7C@604|HdW z>3sI#Wue-6??zH|TLo@z?zSQ*`eiLTAtn}H-tAuWFE;$({Ogs!kZ*N+1I`N}q3K7m zI^`ICwn{~dRlJr9yxyp_*tb;OA}!)%(~eq&Y7}ShGAyoIW9+B5hCe}v$za^cW0yYG=roe6VMe$CB8^xX^nqWs{ycZ)=aNoHWIslR5aNecWhj=*e@aep@fft`w( znv#;z)01NJ=X8e|u&iIdij~xV+A|G ?QBs$+0@NA#4;7pP^j(+WC$da9f}6+N19 z$5++VyeeKLJQkY;fV!aru4C$y0fInFa|-tDy_>9#~7#MTQc%iO^pQf zSWpngbarsHS2m|cUZ}3;i`4=6V~>dnxv8Qy>`;Im(p+q?_(@P$tW_AT_~jWs$i;4f zn(>8c#p#Ld<|mq*x-ufrSe3cV&MF~D0DK(wg)Q_9SYcQbU((aAsXI!x;?gi!uK&qI zy$s$M(V!;-1AG^-8Pk*JUyAQ#?7Q8X|92(d|2^6CFAcix@;II3|6=Z~gW`I+cF_Ss zAP_vb1&Bg|yE_C8?hJ%r!QB~Lf+rzZkOX%K?iSqLU4soaFbptrHoy0MPu2I`I#uUZ zox11#0ejEhBfD3xUj6j5q&+g?;|bL&-wFyYM8Xba{eVbq4KZfsqLFAZetx9~NQS;! z{=bliwkyqzBhhVT)M9>(CsvaSxBPreBsQYA@8=K1gq%Z$k>F<6ufGwEa;fM}kuq@lbg?sUzTi+V~=UwwJTUT1Ex+Zmrx_9i402;O?zbg8DUW7l<3cj|Fg9nXTtVT8qFurwfC= zRrt3@Da{`nn5D6RWl9591Gyq}pD@o4u1a(DMjvsL{jdB7Nn-^ZQSeR7MR0&Ns*~-; z7NHM2E-yj;aT@*g*E}!`wGz!Tij}=({PLf4{rU-{4PGh(&~bkUGkK%bR554a?t3tA zr_yKn6G()zNNyOrTpOxKHIvnUSgEKQl`#{jPS6QBWj7ik%?PKqMbl2HH%2y!M`slY zOk?lEmCC2_DX$;g1_`DuYT)G)-ND@dF5YK)3Ilmh{4PBKL}p>=pb;9ykabO(pkru| z-Rdp*V0LSwHju#+nYGfw@p0?x-fVVKgCDAr3BG<{2QYwJO}HVo(7PZ(rfJ88Te^Se zeeO;DB>k^>pBqY@p`Su4m@|W>I(5{&dB03l4IiOAPdOE8UAq#BL``|V+5Qc4@e*58 zMK#VAiQHbBj{S9&w7{P1)bVvrEo2bDyT-(r;HkA*Q_z zh?8)vf&A9M=cl5O*q?Mo83ha8FOYdGZmYbH)PP2fBf>@UuvoMiUHY;W_CFoQqN;B* zg@NE~1Ye;8kQeXJ1$4uQ^-M;)1@KL;`jD8vJR_WW>J&O1id`#fLI;ZbZJ0y zx3{$XWZ}CnViWWsw-+Zu7d09o58mwZ-8u2ihO*U+Wpbd zfiKzyB)o!}7qn*~%O{EC)HgS(?=fI<1b@x=d}&qX3uj!k1p>U_aDXeK-evu!TSJgW z@GWsS+bO&M7vLCcHEgQwfe_wj8v{PFpxu}Y6Byfzw2-^J3<^>2kn1Pw1^Gd=+Ta~H zIr8;{JxCv(FJJw48LWQ?xc*Q7xCq`t*VLLe+w$F>X6!AJ0BZ)xo;MM-V1R-00JYEH zrR7A^vty3s@bV!i(?9X!fp&tk4)57q;GG|ieYh&uM(IHT%4^IjEImtC77B}~ON+KQ zcKU6ks-idS7JK1QsTr7noA{Sp9G(2=aHvN%qEFOZd@*li2YLQn)|0O&4q?AC7DM+| z^T+2BidJohxq=H%0}fxUI{zB7bu5G@!&vX&?cAB>7GMIVy#@@0Dfq+&7UBc+N>M!4)^lqRnYjjiNBObGc zck67*?pA(wx6eTcAZJX$BsEdZsEu(DaUGV5qAYoPLoc3-CcH|>R_eb-A9Mm(J5zlW zS4SS$0PAA|Z{Z681T4 zPI2J!thTmuyPd3+IY`u_bp*QDbsW;|B0amc^7(Y6I zy1TE{;R3#+CTm8$xF`0)kC)NJ`{A>5lqevLG`AJmK$!xUTFsb4YCT4JoD?WSob)-W zDLE;tPa&{tZ+;;mgY@HRIx#+{=;~9T$2-^xsswyB4MXsg(Id7C8=4ARWz)>7_%L1= z+$Y;!4nx#ta_|g+;Gg}!k3g?p@ujEwp3R3Rd@8t}jIVsRJMRAn`;Yy?gKyuvrl)y7 zQcX;9DARwABSX^G;y(D)vyVre&bVsy6a?!~EN;6fcX{A=)1j!b4RWtb*Do&mFCM~< z_#el6%Icj~+#dj`uv5hVBXdy%1kggPXTh*hVT{n?swhbbqj5&dW^dQ znG{AwsFCDOJuFd$ENiHLs6wI1i{Jr;L{2BetN=M>m)5a>4pPF-_1aabf0=R{C#j18 zb|~!^FCzdT05Q7<@8lK4@N#MJ7}0|+{p;|2+7>OQSMx0S3Sm)`pNI2>S-yVae`|+g zyH6%eOIu)XT>ZWN#!-K+B(b%eCTuF#4Z0jDY`pec>I7P_QoiEe#g_6Det;OOpN z>ys*l`}}uVXJaCQvplF6Z}Yw+N(2QDkzJz)R~bYiV;4N3yD9A*do7{v>?+ zr1kiH5BY1%(YRDYvz%f;AXJ&Fp)|oGO9#E+=xJ=z@0acoZ4|g9awKI*4D;3J5gX~4 zqC*gMhr=c6&ww1z)}TBlqw9$}80%%wRz+cxUG) zYCx7$2_7X>(MWit+9=e3abGeAucb9j53{iq@sQOpR<`Z3aWSgn(vc+*0`~{@$eusPth?dB!z=buu$94y7?4I)B|k6)_V`|e+5V&RyC2nUjt=nYSl z8;1JTm37X_z*Q(l1>LQpmTnCy*d0RWs2|NSc}kRsUbX!+sIcI%NuXg~Wpz7#dm%99 z;V0=DicZ0>_48VVf-UYrBtAHV@QgbPB#X@uLdZzbHu>WIL^4AAN&7!153>Jr3zJ>) z{z}KI0HXU7Y+1BuLf}N29eASqlOQz^)BOoiH1PfRUt#ip@GEQ#Gr?4w2ZQ>H3!kbT zjOtWQ`wT7~Ol1n23Lot3l#I8UY`?_&B|2Wt(b`(#zUbj|iS2U?Gs-0NLyQhw&F2q_ zd6vXp^*W_VpI>GS#nLUqq(vSQ(6;x$5x=)>zIVYyJD1U`60^q6*xk&araUQK~w$r)*qRqLAarVu%1Y&a%z&!vL0nt%qumZA+W^ z5`jsZ>h71lX26S-2tu+aPyXa7rKo4WWn@H`kdQdE#y3@mpPkaj)mmK11*8j#GF_cN zmQaUNAyWxTY!~~E=2PBD?tkr-3P3%pwd#4GDH_;Nl1kY761mZ{!?&dyYHZ_PL?}Z-6n*OOe z@k!!Spou$&9|xL*?{ypzO%asg*VtaT$t54z5?i5|pbIE;u_|`44k)Vr$!k;-I5Xpf z@)`%!Zn?z*M?jkN{^ZJ+MQX0X%)aTJwKZK`wx7)Uf_dBM z{edo=TT8TaG+iPNd9`?dOl1bk`~3o|!y8>;4;^7)#=r?xgnG7M@1;tM=qs*#W-?0p{wRb=v5<=lO zy}rQ1ljGShc=Cra*<+$|#S*yP_SPcFPvj{7T!Ef1-y zu6`_*j?~CTEhuwjqr|(GQGgC4`_#n(!l7OeXj&IP@t}Zm<;k{{$#qz;C3o{eF7TUQ zzDequ{cT=6UfpciI-0&Sygt!Gbo68K@9zr?Edp>uLIO6QXuAgvCmR%b#gmVW zp1Ww$GCkOOSe!mZVm{_3Ix%b#Vn13x53e3?8AD2w$PecGY3*X7*PQEcB4hC4->U~z zBwIC;5O<<*#jPpPEgq}If$r?K3Odf(YGOwAf^_Idv1axsYcN(;Pu?aiO!I8ru?>}r zUnJ^++Kb|N(Lmm?y)Z3$JIT>qpDgyaAjReR!5MVWkMzTeGqJ((8ZcYTjbRH-D16J4 z6;|AIG09dB{Kd}%Y|F}uPV7PfHF683v9pvu&4SiEcN6LR`ZAjQH;Pe8+o*Nn>aEXF z&3J@rY1^_LXeu9N2qF;E*IfZ9Wj2ZW$z)# zFW(5C)Ztl>iTJxjS?`W#y0Cyb4`>Yhez4Z0UjTc#W^a9S$NI1~H8>WQMq$qH97~!v%S8* zu+cBYE!!@-0*hK{dq&i`SfW>z99YP~Tk6%!dd=n0�}X8~xUx)^V}yR3on<)~M(` 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