From f2615f093341c01831e457de927f994b6b88417e Mon Sep 17 00:00:00 2001 From: HerCoyote23 <131214189+HerCoyote23@users.noreply.github.com> Date: Sun, 8 Sep 2024 15:21:01 -0600 Subject: [PATCH 001/192] Corrects some typos in the uplink catalog, adjusts grammar (#31989) * AlmostCertainlyDoesntWork * Please work * maybe work * emptycommit * test * testest * Empty-Commit * Uplink grammar/typos fix --- .../Locale/en-US/store/uplink-catalog.ftl | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Resources/Locale/en-US/store/uplink-catalog.ftl b/Resources/Locale/en-US/store/uplink-catalog.ftl index 65fee9d2cc..90676fbfe3 100644 --- a/Resources/Locale/en-US/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/store/uplink-catalog.ftl @@ -43,7 +43,7 @@ uplink-supermatter-grenade-name = Supermatter Grenade uplink-supermatter-grenade-desc = Grenade that simulates delamination of a suppermatter engine, generates powerful gravity well. Explosion comparable to a Mini Bomb. uplink-whitehole-grenade-name = Whitehole Grenade -uplink-whitehole-grenade-desc = Grenade that are repulses everything around for about 10 seconds. Very useful in small rooms and for chasing someone. +uplink-whitehole-grenade-desc = Grenade that repulses everything around for about 10 seconds. Very useful in small rooms and for chasing someone. uplink-penguin-grenade-name = Grenade Penguin uplink-penguin-grenade-desc = A small, highly-aggressive penguin with a grenade strapped around its neck. Harvested by the Syndicate from icy shit-hole planets. @@ -70,7 +70,7 @@ uplink-exploding-syndicate-bomb-fake-name = Decoy Syndicate Bomb uplink-exploding-syndicate-bomb-fake-desc = A training bomb carefully made to look just like the real thing. In all ways similar to a syndicate bomb, but only creates a tiny explosion. uplink-cluster-grenade-name = Cluster Grenade -uplink-cluster-grenade-desc = Three explosive grenades bundled together, the grenades get launched after the 3.5 second timer runs out. +uplink-cluster-grenade-desc = Three explosive grenades bundled together. The cluster splits after 3.5 seconds. uplink-incendiary-grenade-name = Incendiary Grenade uplink-incendiary-grenade-desc = Releases a spray of incendiary fragments, igniting anyone near the detonation area. @@ -134,7 +134,7 @@ uplink-reinforcement-radio-cyborg-assault-name = Syndicate Assault Cyborg Telepo uplink-reinforcement-radio-cyborg-assault-desc = A lean, mean killing machine with access to an Energy Sword, LMG, Cryptographic Sequencer, and a Pinpointer. uplink-stealth-box-name = Stealth Box -uplink-stealth-box-desc = A box outfitted with stealth technology, sneak around with this and don't move too fast now! +uplink-stealth-box-desc = A box outfitted with stealth technology. Sneak around unnoticed, but don't move too fast or you'll be revealed! uplink-headset-name = Syndicate Over-ear Headset uplink-headset-desc = A headset that allows you to communicate with other syndicate operatives. Has 4 slots for encryption keys. @@ -158,7 +158,7 @@ uplink-radio-jammer-name = Radio Jammer uplink-radio-jammer-desc = This device will disrupt any nearby outgoing radio communication as well as suit sensors when activated. uplink-syndicate-weapon-module-name = Weapon Cyborg Module -uplink-syndicate-weapon-module-desc = This module will give a cyborg advanced laser and machete +uplink-syndicate-weapon-module-desc = Upgrades a cyborg with both a machete and an advanced laser. uplink-syndicate-martyr-module-name = Martyr Cyborg Module uplink-syndicate-martyr-module-desc = Turn your emagged borg friend into a walking bomb with just this module. Make sure they're loyal to your cause, results may vary. @@ -229,7 +229,7 @@ uplink-buldog-bundle-name = Bulldog Bundle uplink-buldog-bundle-desc = Lean and mean: Contains the popular Bulldog Shotgun, a 12g beanbag drum and three 12g buckshot drums. uplink-grenade-launcher-bundle-name = China-Lake Bundle -uplink-grenade-launcher-bundle-desc = An old China-Lake grenade launcher bundled with 11 rounds of various destruction capability. +uplink-grenade-launcher-bundle-desc = An old China-Lake grenade launcher bundled with 11 rounds of varying destructive capability. uplink-l6-saw-bundle-name = L6 Saw Bundle uplink-l6-saw-bundle-desc = More dakka: The iconic L6 light machine gun, bundled with 2 box magazines. @@ -254,7 +254,7 @@ uplink-duffel-surgery-name = Surgical Duffel Bag uplink-duffel-surgery-desc = A large duffel bag containing a full suite of surgical tools. uplink-power-sink-name = Power Sink -uplink-power-sink-desc = Drains immense amounts of electricity from the grid. Use wrench to connect it to wires. +uplink-power-sink-desc = Drains immense amounts of electricity from the grid, then explodes once it's saturated. Use wrench to connect it to wires. uplink-carp-dehydrated-name = Dehydrated Space Carp uplink-carp-dehydrated-desc = Looks like a plush toy carp, but just add water and it becomes a real-life space carp! @@ -304,7 +304,7 @@ uplink-clothing-no-slips-shoes-name = No-slip Shoes uplink-clothing-no-slips-shoes-desc = Chameleon shoes that protect you from slips. uplink-clothing-thieving-gloves-name = Thieving Gloves -uplink-clothing-thieving-gloves-desc = Discretely steal from pockets and increase your thieving technique with these fancy new gloves, all while looking like normal gloves! +uplink-clothing-thieving-gloves-desc = Discretely steal from pockets and improve your thieving technique with these fancy new gloves. They even look like normal gloves! uplink-clothing-outer-vest-web-name = Web Vest uplink-clothing-outer-vest-web-desc = A synthetic armor vest. This one has added webbing and ballistic plates. @@ -335,7 +335,7 @@ uplink-cyberpen-name = Cybersun Pen uplink-cyberpen-desc = Cybersun's legal department pen, invaluable for forging documents and escaping prisons. Smells vaguely of hard-light and war profiteering. uplink-decoy-disk-name = Decoy Nuclear Disk -uplink-decoy-disk-desc = A piece of plastic with a lenticular printing, made to look like a nuclear auth disk. +uplink-decoy-disk-desc = A piece of plastic with a lenticular printing, made to look like a nuclear authentication disk. uplink-cigarettes-name = Syndicate Smokes Packet uplink-cigarettes-desc = Elite cigarettes for elite agents. Infused with medicine for when you need to do more than calm your nerves. @@ -353,7 +353,7 @@ uplink-soap-name = Soap uplink-soap-desc = An untrustworthy bar of soap. Smells of fear. uplink-ultrabright-lantern-name = Extra-Bright Lantern -uplink-ultrabright-lantern-desc = It can be used to blind people like a flash. +uplink-ultrabright-lantern-desc = This ultra-bright lantern can be used to blind people, similar to a flash. uplink-combat-medkit-name = Combat Medical Kit uplink-combat-medkit-desc = A medkit made for fixing combat injuries. @@ -362,7 +362,7 @@ uplink-combat-medipen-name = Combat Medipen uplink-combat-medipen-desc = A single-use medipen containing chemicals that regenerate most types of damage. uplink-nocturine-chemistry-bottle-name = Nocturine Bottle -uplink-nocturine-chemistry-bottle-desc = A chemical that makes it very hard for your target to stand up. +uplink-nocturine-chemistry-bottle-desc = A chemical that puts your target straight to sleep. uplink-stimpack-name = Hyperzine Injector uplink-stimpack-desc = The legendary chemical produced by Donk Co. for the Syndicate. Injecting yourself with this will increase your run speed and let you recover from stuns faster for 30 seconds. @@ -438,7 +438,7 @@ uplink-barber-scissors-name = Barber Scissors uplink-barber-scissors-desc = A good tool to give your fellow agent a nice haircut, unless you want to give it to yourself. uplink-backpack-syndicate-name = Syndicate backpack -uplink-backpack-syndicate-desc = Lightweight explosion-proof a backpack for holding various traitor goods +uplink-backpack-syndicate-desc = A lightweight explosion-proof backpack for holding various traitor goods uplink-combat-bakery-name = Combat Bakery Kit uplink-combat-bakery-desc = A kit of clandestine baked weapons. Contains a baguette sword, a pair of throwing croissants, and a syndicate microwave board for making more. Once the job is done, eat the evidence. From ca1bfbf9813b69054dccc3993bcdd4603a557acc Mon Sep 17 00:00:00 2001 From: James Simonson Date: Mon, 9 Sep 2024 05:58:58 +0800 Subject: [PATCH 002/192] Add SetEntity(Owner) so can view APC sprite in UI (Bug fix) (#31962) * Add SetEntity(Owner) so can view APC sprite in UI * bump apc version flavor text --------- Co-authored-by: TIMMY --- Content.Client/Power/APC/ApcBoundUserInterface.cs | 2 +- Resources/Locale/en-US/ui/power-apc.ftl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Content.Client/Power/APC/ApcBoundUserInterface.cs b/Content.Client/Power/APC/ApcBoundUserInterface.cs index 759a5949ba..a790c5d984 100644 --- a/Content.Client/Power/APC/ApcBoundUserInterface.cs +++ b/Content.Client/Power/APC/ApcBoundUserInterface.cs @@ -19,8 +19,8 @@ namespace Content.Client.Power.APC protected override void Open() { base.Open(); - _menu = this.CreateWindow(); + _menu.SetEntity(Owner); _menu.OnBreaker += BreakerPressed; } diff --git a/Resources/Locale/en-US/ui/power-apc.ftl b/Resources/Locale/en-US/ui/power-apc.ftl index ed88644994..25ae32ab97 100644 --- a/Resources/Locale/en-US/ui/power-apc.ftl +++ b/Resources/Locale/en-US/ui/power-apc.ftl @@ -14,4 +14,4 @@ apc-menu-power-state-none = None # For the flavor text on the footer apc-menu-flavor-left = Contact an engineer for assistance. -apc-menu-flavor-right = v1.1 +apc-menu-flavor-right = v1.2 From 69be5d02843d1d8a53bffa92bab1c63aaae0e779 Mon Sep 17 00:00:00 2001 From: Spessmann <156740760+Spessmann@users.noreply.github.com> Date: Sun, 8 Sep 2024 18:22:13 -0700 Subject: [PATCH 003/192] Cog update (#31986) added stuff --- Resources/Maps/cog.yml | 1127 ++++++++++++++++++++++++++++++---------- 1 file changed, 851 insertions(+), 276 deletions(-) diff --git a/Resources/Maps/cog.yml b/Resources/Maps/cog.yml index 2598d8d16e..391fc3f7ab 100644 --- a/Resources/Maps/cog.yml +++ b/Resources/Maps/cog.yml @@ -160,7 +160,7 @@ entities: version: 6 -1,-4: ind: -1,-4 - tiles: gQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAYAAAAAACYAAAAAABcwAAAAABcwAAAAACgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAYAAAAAAAgQAAAAAAYAAAAAABYAAAAAABcwAAAAAAcwAAAAAAgQAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAYAAAAAAAgQAAAAAAYAAAAAACYAAAAAACYAAAAAAAcwAAAAACgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgAAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAYAAAAAADYAAAAAACYAAAAAAAYAAAAAAAcwAAAAAAcwAAAAAAcwAAAAAASgAAAAAASgAAAAAAgQAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAcwAAAAABcwAAAAAAYAAAAAAAYAAAAAABYAAAAAAAYAAAAAACgQAAAAAAgQAAAAAAgQAAAAAASgAAAAAADAAAAAABgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgAAAAAAAcwAAAAACgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAASgAAAAAASgAAAAAADAAAAAACSgAAAAAADAAAAAABSgAAAAAADAAAAAAAgQAAAAAAgAAAAAAAcwAAAAAAgQAAAAAAYAAAAAABYAAAAAAAYAAAAAABYAAAAAACgQAAAAAADAAAAAACSgAAAAAADAAAAAAADAAAAAACDAAAAAAASgAAAAAASgAAAAAAgQAAAAAAgAAAAAAAcwAAAAACcwAAAAAAYAAAAAACYAAAAAAAYAAAAAACYAAAAAADgQAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAADAAAAAAASgAAAAAAgQAAAAAAgAAAAAAAcwAAAAACgQAAAAAAYAAAAAAAYAAAAAACYAAAAAAAYAAAAAADgQAAAAAASgAAAAAADAAAAAADSgAAAAAASgAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAcwAAAAADgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAcwAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAcwAAAAABcwAAAAADcwAAAAACcwAAAAADgQAAAAAAgQAAAAAAcwAAAAAAcwAAAAAAcwAAAAADcwAAAAAAcwAAAAABcwAAAAABcwAAAAACcwAAAAAAcwAAAAADgQAAAAAAcwAAAAADcwAAAAAAcwAAAAABcwAAAAAAcwAAAAACgQAAAAAAcwAAAAAAcwAAAAAAcwAAAAAAcwAAAAAAcwAAAAADcwAAAAADcwAAAAACcwAAAAADcwAAAAABgQAAAAAAcwAAAAAAcwAAAAABcwAAAAAAcwAAAAABcwAAAAABgQAAAAAAcwAAAAAAcwAAAAAAcwAAAAAAHgAAAAAAcwAAAAAAHgAAAAAAcwAAAAACcwAAAAAAcwAAAAABgQAAAAAAcwAAAAAAcwAAAAAAcwAAAAABcwAAAAABcwAAAAABgQAAAAAAcwAAAAAAcwAAAAAAcwAAAAADHgAAAAAAcwAAAAAAHgAAAAAAcwAAAAAAcwAAAAAAcwAAAAADcwAAAAAAcwAAAAABcwAAAAACcwAAAAABcwAAAAADcwAAAAAAgQAAAAAAgQAAAAAAcwAAAAACcwAAAAABHgAAAAAAcwAAAAAAHgAAAAAAcwAAAAADcwAAAAABcwAAAAABgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAA + tiles: gQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAYAAAAAACYAAAAAABcwAAAAABcwAAAAACgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAYAAAAAAAgQAAAAAAYAAAAAABYAAAAAABcwAAAAAAcwAAAAAAgQAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAYAAAAAAAgQAAAAAAYAAAAAACYAAAAAACYAAAAAAAcwAAAAACgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgAAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAYAAAAAADYAAAAAACYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAAYAAAAAAASgAAAAAASgAAAAAAgQAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAcwAAAAABcwAAAAAAYAAAAAAAYAAAAAABYAAAAAAAYAAAAAACgQAAAAAAgQAAAAAAgQAAAAAASgAAAAAADAAAAAABgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgAAAAAAAcwAAAAACgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAASgAAAAAASgAAAAAADAAAAAACSgAAAAAADAAAAAABSgAAAAAADAAAAAAAgQAAAAAAgAAAAAAAcwAAAAAAgQAAAAAAYAAAAAABYAAAAAAAYAAAAAABYAAAAAACgQAAAAAADAAAAAACSgAAAAAADAAAAAAADAAAAAACDAAAAAAASgAAAAAASgAAAAAAgQAAAAAAgAAAAAAAcwAAAAACcwAAAAAAYAAAAAACYAAAAAAAYAAAAAACYAAAAAADgQAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAASgAAAAAADAAAAAAASgAAAAAAgQAAAAAAgAAAAAAAcwAAAAACgQAAAAAAYAAAAAAAYAAAAAACYAAAAAAAYAAAAAADgQAAAAAASgAAAAAADAAAAAADSgAAAAAASgAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAcwAAAAADgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAcwAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAcwAAAAABcwAAAAADcwAAAAACcwAAAAADgQAAAAAAgQAAAAAAcwAAAAAAcwAAAAAAcwAAAAADcwAAAAAAcwAAAAABcwAAAAABcwAAAAACcwAAAAAAcwAAAAADgQAAAAAAcwAAAAADcwAAAAAAcwAAAAABcwAAAAAAcwAAAAACgQAAAAAAcwAAAAAAcwAAAAAAcwAAAAAAcwAAAAAAcwAAAAADcwAAAAADcwAAAAACcwAAAAADcwAAAAABgQAAAAAAcwAAAAAAcwAAAAABcwAAAAAAcwAAAAABcwAAAAABgQAAAAAAcwAAAAAAcwAAAAAAcwAAAAAAHgAAAAAAcwAAAAAAHgAAAAAAcwAAAAACcwAAAAAAcwAAAAABgQAAAAAAcwAAAAAAcwAAAAAAcwAAAAABcwAAAAABcwAAAAABgQAAAAAAcwAAAAAAcwAAAAAAcwAAAAADHgAAAAAAcwAAAAAAHgAAAAAAcwAAAAAAcwAAAAAAcwAAAAADcwAAAAAAcwAAAAABcwAAAAACcwAAAAABcwAAAAADcwAAAAAAgQAAAAAAgQAAAAAAcwAAAAACcwAAAAABHgAAAAAAcwAAAAAAHgAAAAAAcwAAAAADcwAAAAABcwAAAAABgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAA version: 6 0,-4: ind: 0,-4 @@ -368,7 +368,7 @@ entities: version: 6 0,4: ind: 0,4 - tiles: gQAAAAAAgQAAAAAAgQAAAAAACwAAAAAADQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAYAAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAYAAAAAABYAAAAAACgQAAAAAAgQAAAAAAcAAAAAAAcAAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAYAAAAAABgQAAAAAAgQAAAAAAgQAAAAAAYAAAAAACYAAAAAACgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAYAAAAAACYAAAAAABBwAAAAAAYAAAAAAAYAAAAAABYAAAAAAAYAAAAAAAYAAAAAAAgQAAAAAAgQAAAAAAgQAAAAAABwAAAAAABwAAAAAABwAAAAAAYAAAAAAAgQAAAAAAYAAAAAACYAAAAAABYAAAAAABgQAAAAAAYAAAAAAAYAAAAAAAYAAAAAABYAAAAAABgQAAAAAAgQAAAAAAgQAAAAAAYAAAAAAABwAAAAAAYAAAAAACBwAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAYAAAAAABYAAAAAAAYAAAAAABgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAABwAAAAAABwAAAAAABwAAAAAAYAAAAAACgQAAAAAAgAAAAAAAgAAAAAAAgQAAAAAAYAAAAAADYAAAAAADYAAAAAADgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAAAAAAAAAgAAAAAAAgQAAAAAAYAAAAAACYAAAAAADgQAAAAAAgQAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAgAAAAAAAgQAAAAAAYAAAAAACYAAAAAADgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAgAAAAAAAgQAAAAAAYAAAAAAAYAAAAAADgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAgAAAAAAAgQAAAAAAYAAAAAACYAAAAAADgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAgAAAAAAAgQAAAAAAYAAAAAABYAAAAAADgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgQAAAAAAgQAAAAAAYAAAAAABYAAAAAADYAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAYAAAAAABYAAAAAABYAAAAAACgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAYAAAAAACYAAAAAABYAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAYAAAAAABYAAAAAADYAAAAAABgQAAAAAAAAAAAAAAAAAAAAAA + tiles: gQAAAAAAgQAAAAAAgQAAAAAACwAAAAAADQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAYAAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAYAAAAAABYAAAAAACgQAAAAAAgQAAAAAAcAAAAAAAcAAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAYAAAAAABgQAAAAAAgQAAAAAAgQAAAAAAYAAAAAACYAAAAAACgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAYAAAAAACYAAAAAABBwAAAAAAYAAAAAAAYAAAAAABYAAAAAAAYAAAAAAAYAAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAYAAAAAAAYAAAAAAAJgAAAAAAgQAAAAAAgQAAAAAAYAAAAAACYAAAAAABYAAAAAABgQAAAAAAYAAAAAAAYAAAAAAAYAAAAAABYAAAAAABgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAYAAAAAAAgQAAAAAAJgAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAYAAAAAABYAAAAAAAYAAAAAABgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAYAAAAAAAgQAAAAAAJgAAAAAAJgAAAAAAgQAAAAAAgAAAAAAAgAAAAAAAgQAAAAAAYAAAAAADYAAAAAADYAAAAAADgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAgQAAAAAAAAAAAAAAgAAAAAAAgQAAAAAAYAAAAAACYAAAAAADgQAAAAAAgQAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAgAAAAAAAgQAAAAAAYAAAAAACYAAAAAADgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAgAAAAAAAgQAAAAAAYAAAAAAAYAAAAAADgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAgAAAAAAAgQAAAAAAYAAAAAACYAAAAAADgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAgAAAAAAAgQAAAAAAYAAAAAABYAAAAAADgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAgAAAAAAAgAAAAAAAgQAAAAAAgQAAAAAAYAAAAAABYAAAAAADYAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAYAAAAAABYAAAAAABYAAAAAACgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAYAAAAAACYAAAAAABYAAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAgQAAAAAAYAAAAAABYAAAAAADYAAAAAABgQAAAAAAAAAAAAAAAAAAAAAA version: 6 -1,4: ind: -1,4 @@ -834,6 +834,8 @@ entities: 7203: 3,-60 7204: -8,-69 7205: -17,-59 + 7521: 3,70 + 7522: 5,70 - node: zIndex: 1 color: '#FFFFFFFF' @@ -1019,6 +1021,7 @@ entities: 7360: -19,-11 7361: -12,-13 7362: -11,-15 + 7519: 59,58 - node: color: '#FFFFFFFF' id: BrickTileSteelCornerNw @@ -1032,6 +1035,7 @@ entities: 7319: 11,-31 7332: -13,21 7337: -21,24 + 7518: 57,58 - node: color: '#FFFFFFFF' id: BrickTileSteelCornerSe @@ -1066,6 +1070,7 @@ entities: 7357: -21,-15 7358: -20,-16 7359: -13,-16 + 7517: 57,52 - node: color: '#FFFFFFFF' id: BrickTileSteelEndN @@ -1092,6 +1097,8 @@ entities: 7372: -13,-13 7373: -12,-15 7380: -21,-11 + 7508: 76,52 + 7509: 74,54 - node: color: '#FFFFFFFF' id: BrickTileSteelInnerNw @@ -1101,6 +1108,7 @@ entities: 4077: 74,46 6326: -31,27 6856: -4,73 + 7502: 68,54 - node: color: '#FFFFFFFF' id: BrickTileSteelInnerSe @@ -1110,6 +1118,8 @@ entities: 6853: -13,76 7310: 28,-34 7323: 17,-33 + 7506: 74,43 + 7507: 76,45 - node: color: '#FFFFFFFF' id: BrickTileSteelInnerSw @@ -1122,6 +1132,7 @@ entities: 7311: 26,-33 7312: 15,-32 7379: -20,-15 + 7505: 68,43 - node: color: '#FFFFFFFF' id: BrickTileSteelLineE @@ -1157,6 +1168,10 @@ entities: 7376: -19,-14 7377: -19,-13 7378: -19,-12 + 7503: 76,44 + 7514: 59,57 + 7515: 59,56 + 7516: 59,53 - node: color: '#FFFFFFFF' id: BrickTileSteelLineN @@ -1173,9 +1188,7 @@ entities: 4067: 72,55 4068: 73,55 4069: 67,54 - 4087: 59,58 4088: 58,58 - 4089: 57,58 6320: -32,27 6321: -33,27 6322: -34,27 @@ -1210,6 +1223,7 @@ entities: 7327: -12,21 7328: -11,21 7367: -20,-11 + 7510: 75,54 - node: color: '#FFFFFFFF' id: BrickTileSteelLineS @@ -1229,7 +1243,6 @@ entities: 4053: 75,43 4054: 75,43 4091: 58,52 - 4092: 57,52 6315: -36,27 6316: -35,27 6317: -34,27 @@ -1260,6 +1273,7 @@ entities: 7329: -12,19 7330: -11,19 7374: -12,-16 + 7504: 67,43 - node: color: '#FFFFFFFF' id: BrickTileSteelLineW @@ -1296,6 +1310,9 @@ entities: 7369: -13,-14 7370: -13,-13 7371: -13,-12 + 7511: 57,56 + 7512: 57,57 + 7513: 57,53 - node: color: '#FFFFFFFF' id: BrickTileWhiteEndN @@ -1574,6 +1591,7 @@ entities: 6660: -30,-5 6661: -30,-7 6666: -22,-3 + 7523: 3,68 - node: cleanable: True color: '#B02E26FF' @@ -4331,6 +4349,7 @@ entities: 4085: 72.24678,52.499477 4086: 71.920395,53.749477 6340: -11.384821,20.822517 + 7524: -6.217932,-59.185604 - node: color: '#FFFFFFFF' id: Grassd2 @@ -4356,6 +4375,14 @@ entities: 6046: -3.489414,24.993238 6338: -12.118657,19.028696 6339: -12.828032,20.153912 + 7525: -8.210987,-57.681267 + 7530: -7.139781,-57.569675 + 7531: -5.2578373,-56.50023 + 7532: -7.8412213,-55.090317 + 7533: -4.3064995,-56.102165 + 7534: -3.1974337,-57.978436 + 7536: -6.9667845,-59.92288 + 7537: -7.3973403,-55.888157 - node: color: '#FFFFFFFF' id: Grassd3 @@ -4367,6 +4394,8 @@ entities: 3998: 74.45184,44.579674 3999: 71.75756,43.38838 6346: -12.371423,21.042667 + 7526: -6.3637667,-55.222935 + 7535: -5.6820626,-58.1451 - node: color: '#FFFFFFFF' id: Grasse1 @@ -4383,6 +4412,7 @@ entities: 4008: 60.363934,56.15657 4009: 55.872505,57.57324 4082: 74.70531,53.74932 + 7527: -3.162377,-56.570152 - node: color: '#FFFFFFFF' id: Grasse2 @@ -4398,6 +4428,7 @@ entities: 4027: 55.46993,56.871117 4028: 55.462982,53.107086 6342: -11.392975,19.721764 + 7529: -8.943234,-55.069675 - node: color: '#FFFFFFFF' id: Grasse3 @@ -4412,6 +4443,7 @@ entities: 4015: 73.14992,51.7334 4016: 74.73748,45.363224 4017: 70.72331,43.30718 + 7528: -6.4679327,-56.7646 - node: color: '#334E6DC8' id: HalfTileOverlayGreyscale @@ -4543,8 +4575,6 @@ entities: 2900: 59,50 2910: 74,50 2911: 75,50 - 2912: 76,50 - 2913: 76,50 2915: 65,50 2916: 64,50 2917: 63,50 @@ -4560,6 +4590,7 @@ entities: 4238: 38,57 4239: 39,57 4240: 40,57 + 7501: 76,50 - node: color: '#A4610696' id: HalfTileOverlayGreyscale @@ -7918,6 +7949,8 @@ entities: 4719: 30,49 5396: 49,-11 5756: -42,34 + 7539: -22,-54 + 7549: -20,-55 - node: color: '#FFFFFFFF' id: WoodTrimThinCornerNw @@ -7926,23 +7959,31 @@ entities: 5395: 46,-11 5755: -45,34 6722: -26,0 + 7538: -24,-54 - node: color: '#FFFFFFFF' id: WoodTrimThinCornerSe decals: 5391: 49,-13 6729: -24,-1 + 7547: -20,-57 - node: color: '#FFFFFFFF' id: WoodTrimThinCornerSw decals: 5390: 46,-13 6728: -26,-1 + 7548: -24,-57 - node: color: '#FFFFFFFF' id: WoodTrimThinEndN decals: 6723: -24,1 + - node: + color: '#FFFFFFFF' + id: WoodTrimThinInnerNe + decals: + 7551: -22,-55 - node: zIndex: 1 color: '#FFFFFFFF' @@ -7988,6 +8029,7 @@ entities: 5758: -42,33 5759: -42,32 6727: -24,0 + 7540: -20,-56 - node: zIndex: 1 color: '#FFFFFFFF' @@ -8016,6 +8058,8 @@ entities: 5752: -44,34 5753: -43,34 6725: -25,0 + 7543: -23,-54 + 7550: -21,-55 - node: zIndex: 1 color: '#FFFFFFFF' @@ -8044,6 +8088,9 @@ entities: 5392: 47,-13 5393: 48,-13 6724: -25,-1 + 7544: -23,-57 + 7545: -22,-57 + 7546: -21,-57 - node: zIndex: 1 color: '#FFFFFFFF' @@ -8077,6 +8124,8 @@ entities: 4712: 8,57 5394: 46,-12 5757: -45,33 + 7541: -24,-56 + 7542: -24,-55 - node: zIndex: 1 color: '#FFFFFFFF' @@ -10937,6 +10986,12 @@ entities: container: 31201 - proto: ActionToggleInternals entities: + - uid: 2687 + components: + - type: Transform + parent: 30709 + - type: InstantAction + container: 30709 - uid: 3128 components: - type: Transform @@ -11003,6 +11058,18 @@ entities: parent: 30711 - type: InstantAction container: 30711 + - uid: 31737 + components: + - type: Transform + parent: 30710 + - type: InstantAction + container: 30710 + - uid: 31738 + components: + - type: Transform + parent: 30713 + - type: InstantAction + container: 30713 - proto: ActionToggleLight entities: - uid: 5596 @@ -11548,12 +11615,13 @@ entities: devices: - 2757 - 2754 - - 2477 + - 10457 - 2755 - 9983 - - 9982 + - 10450 - 3997 - 6753 + - 2686 - uid: 9975 components: - type: Transform @@ -11666,8 +11734,6 @@ entities: - 12739 - 13307 - 13165 - - 13168 - - 13305 - 13306 - 13292 - 13297 @@ -12603,12 +12669,13 @@ entities: parent: 12 - type: DeviceList devices: + - 28384 - 12731 - 12736 + - 13173 + - 3514 + - 3513 - 13219 - - 13305 - - 13168 - - 28384 - uid: 28502 components: - type: Transform @@ -12775,6 +12842,23 @@ entities: - 29100 - 27918 - 13593 + - uid: 31755 + components: + - type: Transform + pos: 44.5,1.5 + parent: 12 + - type: DeviceList + devices: + - 7357 + - 2674 + - 31757 + - 31758 + - 31756 + - 7806 + - 31760 + - 31759 + - 25681 + - 2324 - proto: AirAlarmVox entities: - uid: 7822 @@ -16257,38 +16341,35 @@ entities: parent: 12 - proto: AirlockVirologyLocked entities: + - uid: 2298 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -7.5,-59.5 + parent: 12 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 2477: + - DoorStatus: DoorBolt + - uid: 2477 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -9.5,-59.5 + parent: 12 + - type: DeviceLinkSink + invokeCounter: 1 + - type: DeviceLinkSource + linkedPorts: + 2298: + - DoorStatus: DoorBolt - uid: 2626 components: - type: Transform pos: -14.5,-58.5 parent: 12 - - uid: 2686 - components: - - type: Transform - pos: -9.5,-59.5 - parent: 12 - - type: Door - secondsUntilStateChange: -10322.122 - state: Opening - - type: DeviceLinkSink - invokeCounter: 1 - - type: DeviceLinkSource - linkedPorts: - 2687: - - DoorStatus: DoorBolt - lastSignals: - DoorStatus: True - - uid: 2687 - components: - - type: Transform - pos: -7.5,-59.5 - parent: 12 - - type: DeviceLinkSink - invokeCounter: 2 - - type: DeviceLinkSource - linkedPorts: - 2686: - - DoorStatus: DoorBolt - proto: AirSensor entities: - uid: 346 @@ -16603,15 +16684,6 @@ entities: - type: DeviceNetwork deviceLists: - 9975 - - uid: 9982 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -11.5,-61.5 - parent: 12 - - type: DeviceNetwork - deviceLists: - - 9974 - uid: 9983 components: - type: Transform @@ -16743,6 +16815,15 @@ entities: - type: DeviceNetwork deviceLists: - 4887 + - uid: 10450 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -10.5,-62.5 + parent: 12 + - type: DeviceNetwork + deviceLists: + - 9974 - uid: 13262 components: - type: Transform @@ -17553,6 +17634,24 @@ entities: - type: DeviceNetwork deviceLists: - 30445 + - uid: 31759 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 42.5,-7.5 + parent: 12 + - type: DeviceNetwork + deviceLists: + - 31755 + - uid: 31760 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,3.5 + parent: 12 + - type: DeviceNetwork + deviceLists: + - 31755 - proto: AirSensorVox entities: - uid: 19806 @@ -17638,8 +17737,17 @@ entities: - uid: 30709 components: - type: Transform - pos: -17.712711,-61.228313 + rot: -18.84955592153876 rad + pos: -17.75976,-61.27799 parent: 12 + - type: GasTank + toggleActionEntity: 2687 + - type: ActionsContainer + - type: ContainerContainer + containers: + actions: !type:Container + ents: + - 2687 - proto: AltarSpawner entities: - uid: 13340 @@ -17750,6 +17858,11 @@ entities: - type: Transform pos: -13.5,-57.5 parent: 12 + - uid: 2743 + components: + - type: Transform + pos: -23.5,-1.5 + parent: 12 - uid: 2888 components: - type: Transform @@ -20519,6 +20632,18 @@ entities: - type: Transform pos: 43.41042,29.810503 parent: 12 +- proto: Biogenerator + entities: + - uid: 2784 + components: + - type: Transform + pos: -25.5,47.5 + parent: 12 + - uid: 31741 + components: + - type: Transform + pos: 77.5,50.5 + parent: 12 - proto: BirdToyInstrument entities: - uid: 13000 @@ -21357,7 +21482,8 @@ entities: - uid: 2320 components: - type: Transform - pos: -27.728832,-48.761604 + rot: -25.132741228718352 rad + pos: -27.62685,-48.527725 parent: 12 - uid: 13832 components: @@ -21674,7 +21800,8 @@ entities: - uid: 2314 components: - type: Transform - pos: -27.36164,-48.65153 + rot: -25.132741228718352 rad + pos: -27.3456,-48.433975 parent: 12 - uid: 13869 components: @@ -23653,6 +23780,11 @@ entities: - type: Transform pos: 40.5,1.5 parent: 12 + - uid: 2742 + components: + - type: Transform + pos: -23.5,-2.5 + parent: 12 - uid: 2796 components: - type: Transform @@ -24738,6 +24870,11 @@ entities: - type: Transform pos: 9.5,-37.5 parent: 12 + - uid: 3511 + components: + - type: Transform + pos: -23.5,-1.5 + parent: 12 - uid: 3690 components: - type: Transform @@ -28988,11 +29125,6 @@ entities: - type: Transform pos: -25.5,-6.5 parent: 12 - - uid: 10450 - components: - - type: Transform - pos: -24.5,-6.5 - parent: 12 - uid: 10451 components: - type: Transform @@ -29023,11 +29155,6 @@ entities: - type: Transform pos: -25.5,-3.5 parent: 12 - - uid: 10457 - components: - - type: Transform - pos: -24.5,-3.5 - parent: 12 - uid: 10458 components: - type: Transform @@ -42593,6 +42720,26 @@ entities: - type: Transform pos: -65.5,-29.5 parent: 12 + - uid: 31764 + components: + - type: Transform + pos: -3.5,-55.5 + parent: 12 + - uid: 31765 + components: + - type: Transform + pos: -4.5,-55.5 + parent: 12 + - uid: 31766 + components: + - type: Transform + pos: -5.5,-55.5 + parent: 12 + - uid: 31767 + components: + - type: Transform + pos: -7.5,-55.5 + parent: 12 - proto: CableApcStack entities: - uid: 16561 @@ -54904,6 +55051,11 @@ entities: - type: Transform pos: -55.5,40.5 parent: 12 + - uid: 2789 + components: + - type: Transform + pos: -23.5,-1.5 + parent: 12 - uid: 2795 components: - type: Transform @@ -55354,6 +55506,11 @@ entities: - type: Transform pos: -23.5,-30.5 parent: 12 + - uid: 3510 + components: + - type: Transform + pos: -23.5,-2.5 + parent: 12 - uid: 3517 components: - type: Transform @@ -65949,6 +66106,21 @@ entities: - type: Transform pos: -5.5,-65.5 parent: 12 + - uid: 31771 + components: + - type: Transform + pos: -23.5,-4.5 + parent: 12 + - uid: 31772 + components: + - type: Transform + pos: -23.5,-3.5 + parent: 12 + - uid: 31774 + components: + - type: Transform + pos: -23.5,-5.5 + parent: 12 - proto: CableMVStack entities: - uid: 5999 @@ -66183,10 +66355,8 @@ entities: - uid: 21236 components: - type: Transform - parent: 21234 - - type: Physics - canCollide: False - - type: InsideEntityStorage + pos: -25.429438,44.73208 + parent: 12 - proto: CapacitorStockPart entities: - uid: 31575 @@ -78178,12 +78348,20 @@ entities: - type: Transform pos: -11.50525,-60.453125 parent: 12 +- proto: ClothingHeadHatAnimalHeadslime + entities: + - uid: 31773 + components: + - type: Transform + pos: -10.514854,-62.37003 + parent: 12 - proto: ClothingHeadHatAnimalMonkey entities: - uid: 2752 components: - type: Transform - pos: -5.9374723,-57.587387 + rot: -6.283185307179586 rad + pos: -7.887966,-54.723366 parent: 12 - proto: ClothingHeadHatBeretBrigmedic entities: @@ -78509,11 +78687,6 @@ entities: parent: 12 - proto: ClothingMaskMuzzle entities: - - uid: 2789 - components: - - type: Transform - pos: -11.427125,-61.984375 - parent: 12 - uid: 2993 components: - type: Transform @@ -78536,6 +78709,20 @@ entities: - type: Transform pos: -46.73773,54.846462 parent: 12 + - uid: 31732 + components: + - type: Transform + parent: 3958 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 31733 + components: + - type: Transform + parent: 3958 + - type: Physics + canCollide: False + - type: InsideEntityStorage - proto: ClothingNeckBling entities: - uid: 17459 @@ -78786,6 +78973,20 @@ entities: - type: Transform pos: -5.4173927,-52.61664 parent: 12 + - uid: 31734 + components: + - type: Transform + parent: 3958 + - type: Physics + canCollide: False + - type: InsideEntityStorage + - uid: 31735 + components: + - type: Transform + parent: 3958 + - type: Physics + canCollide: False + - type: InsideEntityStorage - proto: ClothingOuterRobesJudge entities: - uid: 26217 @@ -78795,11 +78996,6 @@ entities: parent: 12 - proto: ClothingOuterStraightjacket entities: - - uid: 2784 - components: - - type: Transform - pos: -11.401172,-62.36277 - parent: 12 - uid: 19275 components: - type: Transform @@ -78832,7 +79028,8 @@ entities: - uid: 2751 components: - type: Transform - pos: -5.9530973,-59.228012 + rot: -6.283185307179586 rad + pos: -3.6203089,-55.841423 parent: 12 - proto: ClothingOuterWinterChef entities: @@ -80691,13 +80888,11 @@ entities: - 0 - proto: CrateChemistrySupplies entities: - - uid: 2298 + - uid: 3512 components: - type: Transform - pos: -25.418272,-48.647766 + pos: -25.5,-48.5 parent: 12 - - type: Physics - fixedRotation: False - proto: CrateCoffin entities: - uid: 12738 @@ -82192,17 +82387,13 @@ entities: - uid: 21237 components: - type: Transform - parent: 21234 - - type: Physics - canCollide: False - - type: InsideEntityStorage + pos: -28.787512,53.838696 + parent: 12 - uid: 21238 components: - type: Transform - parent: 21234 - - type: Physics - canCollide: False - - type: InsideEntityStorage + pos: -28.829178,54.088696 + parent: 12 - proto: DisposalBend entities: - uid: 1862 @@ -94959,6 +95150,15 @@ entities: - type: Transform pos: -63.5,-27.5 parent: 12 + - uid: 31757 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 41.5,-0.5 + parent: 12 + - type: DeviceNetwork + deviceLists: + - 31755 - proto: FirelockEdge entities: - uid: 2114 @@ -94975,6 +95175,24 @@ entities: - type: DeviceNetwork deviceLists: - 23910 + - uid: 3513 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 43.5,32.5 + parent: 12 + - type: DeviceNetwork + deviceLists: + - 28383 + - uid: 3514 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: 44.5,32.5 + parent: 12 + - type: DeviceNetwork + deviceLists: + - 28383 - uid: 4203 components: - type: Transform @@ -95030,16 +95248,6 @@ entities: deviceLists: - 28373 - 8504 - - uid: 13168 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 43.5,32.5 - parent: 12 - - type: DeviceNetwork - deviceLists: - - 28383 - - 13303 - uid: 13292 components: - type: Transform @@ -95058,16 +95266,6 @@ entities: - type: DeviceNetwork deviceLists: - 13303 - - uid: 13305 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: 44.5,32.5 - parent: 12 - - type: DeviceNetwork - deviceLists: - - 28383 - - 13303 - uid: 23633 components: - type: Transform @@ -95402,6 +95600,7 @@ entities: - type: DeviceNetwork deviceLists: - 30445 + - 31755 - uid: 2348 components: - type: Transform @@ -95428,6 +95627,7 @@ entities: - type: DeviceNetwork deviceLists: - 7342 + - 31755 - uid: 2779 components: - type: Transform @@ -95876,6 +96076,7 @@ entities: - type: DeviceNetwork deviceLists: - 7342 + - 31755 - uid: 7388 components: - type: Transform @@ -96538,6 +96739,7 @@ entities: - type: DeviceNetwork deviceLists: - 13076 + - 28383 - uid: 13219 components: - type: Transform @@ -98293,6 +98495,7 @@ entities: - type: DeviceNetwork deviceLists: - 30445 + - 31755 - uid: 26113 components: - type: Transform @@ -98568,6 +98771,15 @@ entities: rot: 1.5707963267948966 rad pos: -10.5,-16.5 parent: 12 + - uid: 31758 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 45.5,1.5 + parent: 12 + - type: DeviceNetwork + deviceLists: + - 31755 - proto: Fireplace entities: - uid: 30393 @@ -99272,7 +99484,8 @@ entities: - uid: 24446 components: - type: Transform - pos: 55.595642,5.2034693 + rot: -18.84955592153876 rad + pos: 55.66475,5.299775 parent: 12 - proto: FoodBoxDonkpocketStonk entities: @@ -100018,6 +100231,14 @@ entities: rot: 3.141592653589793 rad pos: -25.5,54.5 parent: 12 + - uid: 6841 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -2.5,-59.5 + parent: 12 + - type: AtmosPipeColor + color: '#5D782EFF' - uid: 15414 components: - type: Transform @@ -100368,15 +100589,7 @@ entities: pos: -12.5,-59.5 parent: 12 - type: AtmosPipeColor - color: '#990000FF' - - uid: 3516 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -5.5,-59.5 - parent: 12 - - type: AtmosPipeColor - color: '#990000FF' + color: '#5D782EFF' - uid: 3544 components: - type: Transform @@ -100503,13 +100716,6 @@ entities: parent: 12 - type: AtmosPipeColor color: '#990000FF' - - uid: 3712 - components: - - type: Transform - pos: -5.5,-50.5 - parent: 12 - - type: AtmosPipeColor - color: '#990000FF' - uid: 3720 components: - type: Transform @@ -102018,6 +102224,14 @@ entities: parent: 12 - type: AtmosPipeColor color: '#0055CCFF' + - uid: 21234 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -5.5,-57.5 + parent: 12 + - type: AtmosPipeColor + color: '#5D782EFF' - uid: 21360 components: - type: Transform @@ -102605,6 +102819,14 @@ entities: parent: 12 - type: AtmosPipeColor color: '#990000FF' + - uid: 24029 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -6.5,-50.5 + parent: 12 + - type: AtmosPipeColor + color: '#990000FF' - uid: 24113 components: - type: Transform @@ -102636,6 +102858,14 @@ entities: parent: 12 - type: AtmosPipeColor color: '#FF0000FF' + - uid: 26253 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -13.5,-61.5 + parent: 12 + - type: AtmosPipeColor + color: '#0055CCFF' - uid: 26320 components: - type: Transform @@ -105001,14 +105231,6 @@ entities: parent: 12 - type: AtmosPipeColor color: '#990000FF' - - uid: 3493 - components: - - type: Transform - rot: -1.5707963267948966 rad - pos: -13.5,-58.5 - parent: 12 - - type: AtmosPipeColor - color: '#0055CCFF' - uid: 3494 components: - type: Transform @@ -105072,7 +105294,7 @@ entities: pos: -11.5,-59.5 parent: 12 - type: AtmosPipeColor - color: '#990000FF' + color: '#5D782EFF' - uid: 3504 components: - type: Transform @@ -105080,7 +105302,7 @@ entities: pos: -9.5,-59.5 parent: 12 - type: AtmosPipeColor - color: '#990000FF' + color: '#5D782EFF' - uid: 3506 components: - type: Transform @@ -105088,7 +105310,7 @@ entities: pos: -8.5,-59.5 parent: 12 - type: AtmosPipeColor - color: '#990000FF' + color: '#5D782EFF' - uid: 3507 components: - type: Transform @@ -105096,7 +105318,7 @@ entities: pos: -7.5,-59.5 parent: 12 - type: AtmosPipeColor - color: '#990000FF' + color: '#5D782EFF' - uid: 3508 components: - type: Transform @@ -105104,49 +105326,21 @@ entities: pos: -6.5,-59.5 parent: 12 - type: AtmosPipeColor - color: '#990000FF' + color: '#5D782EFF' - uid: 3509 components: - type: Transform pos: -5.5,-58.5 parent: 12 - type: AtmosPipeColor - color: '#990000FF' - - uid: 3510 + color: '#5D782EFF' + - uid: 3515 components: - type: Transform - pos: -5.5,-56.5 + pos: -13.5,-60.5 parent: 12 - type: AtmosPipeColor - color: '#990000FF' - - uid: 3511 - components: - - type: Transform - pos: -5.5,-55.5 - parent: 12 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 3512 - components: - - type: Transform - pos: -5.5,-54.5 - parent: 12 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 3513 - components: - - type: Transform - pos: -5.5,-53.5 - parent: 12 - - type: AtmosPipeColor - color: '#990000FF' - - uid: 3514 - components: - - type: Transform - pos: -5.5,-52.5 - parent: 12 - - type: AtmosPipeColor - color: '#990000FF' + color: '#0055CCFF' - uid: 3522 components: - type: Transform @@ -107299,13 +107493,6 @@ entities: parent: 12 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 5216 - components: - - type: Transform - pos: -5.5,-51.5 - parent: 12 - - type: AtmosPipeColor - color: '#990000FF' - uid: 5217 components: - type: Transform @@ -111189,6 +111376,14 @@ entities: parent: 12 - type: AtmosPipeColor color: '#990000FF' + - uid: 9982 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -3.5,-59.5 + parent: 12 + - type: AtmosPipeColor + color: '#5D782EFF' - uid: 9999 components: - type: Transform @@ -122842,10 +123037,10 @@ entities: components: - type: Transform rot: 3.141592653589793 rad - pos: 42.5,-2.5 + pos: -10.5,-60.5 parent: 12 - type: AtmosPipeColor - color: '#990000FF' + color: '#5D782EFF' - uid: 24634 components: - type: Transform @@ -126009,6 +126204,22 @@ entities: parent: 12 - type: AtmosPipeColor color: '#990000FF' + - uid: 31740 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -12.5,-61.5 + parent: 12 + - type: AtmosPipeColor + color: '#0055CCFF' + - uid: 31770 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -4.5,-59.5 + parent: 12 + - type: AtmosPipeColor + color: '#5D782EFF' - proto: GasPipeTJunction entities: - uid: 103 @@ -126258,7 +126469,7 @@ entities: pos: -10.5,-59.5 parent: 12 - type: AtmosPipeColor - color: '#990000FF' + color: '#5D782EFF' - uid: 3297 components: - type: Transform @@ -126298,14 +126509,6 @@ entities: parent: 12 - type: AtmosPipeColor color: '#0055CCFF' - - uid: 3515 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -5.5,-57.5 - parent: 12 - - type: AtmosPipeColor - color: '#990000FF' - uid: 3532 components: - type: Transform @@ -126448,6 +126651,13 @@ entities: parent: 12 - type: AtmosPipeColor color: '#990000FF' + - uid: 3712 + components: + - type: Transform + pos: -13.5,-58.5 + parent: 12 + - type: AtmosPipeColor + color: '#0055CCFF' - uid: 3733 components: - type: Transform @@ -126708,6 +126918,14 @@ entities: parent: 12 - type: AtmosPipeColor color: '#990000FF' + - uid: 5216 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -5.5,-59.5 + parent: 12 + - type: AtmosPipeColor + color: '#5D782EFF' - uid: 5278 components: - type: Transform @@ -126837,14 +127055,6 @@ entities: parent: 12 - type: AtmosPipeColor color: '#990000FF' - - uid: 6841 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -6.5,-50.5 - parent: 12 - - type: AtmosPipeColor - color: '#990000FF' - uid: 6889 components: - type: Transform @@ -127718,6 +127928,14 @@ entities: parent: 12 - type: AtmosPipeColor color: '#990000FF' + - uid: 13305 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 42.5,-2.5 + parent: 12 + - type: AtmosPipeColor + color: '#990000FF' - uid: 13518 components: - type: Transform @@ -129777,6 +129995,13 @@ entities: - type: Transform pos: 75.5,5.5 parent: 12 + - uid: 31768 + components: + - type: Transform + pos: -13.5,-59.5 + parent: 12 + - type: AtmosPipeColor + color: '#0055CCFF' - proto: GasVentPump entities: - uid: 688 @@ -129905,6 +130130,17 @@ entities: - 25448 - type: AtmosPipeColor color: '#0055CCFF' + - uid: 2686 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -11.5,-61.5 + parent: 12 + - type: DeviceNetwork + deviceLists: + - 9974 + - type: AtmosPipeColor + color: '#0055CCFF' - uid: 2754 components: - type: Transform @@ -130198,6 +130434,9 @@ entities: rot: 1.5707963267948966 rad pos: 42.5,0.5 parent: 12 + - type: DeviceNetwork + deviceLists: + - 31755 - type: AtmosPipeColor color: '#0055CCFF' - uid: 8535 @@ -131838,17 +132077,6 @@ entities: - 25448 - type: AtmosPipeColor color: '#990000FF' - - uid: 2477 - components: - - type: Transform - rot: 3.141592653589793 rad - pos: -10.5,-60.5 - parent: 12 - - type: DeviceNetwork - deviceLists: - - 9974 - - type: AtmosPipeColor - color: '#990000FF' - uid: 2673 components: - type: Transform @@ -131870,7 +132098,7 @@ entities: deviceLists: - 9974 - type: AtmosPipeColor - color: '#990000FF' + color: '#5D782EFF' - uid: 2757 components: - type: Transform @@ -131881,7 +132109,7 @@ entities: deviceLists: - 9974 - type: AtmosPipeColor - color: '#990000FF' + color: '#5D782EFF' - uid: 2760 components: - type: Transform @@ -132262,6 +132490,17 @@ entities: - 449 - type: AtmosPipeColor color: '#990000FF' + - uid: 10457 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -10.5,-61.5 + parent: 12 + - type: DeviceNetwork + deviceLists: + - 9974 + - type: AtmosPipeColor + color: '#5D782EFF' - uid: 10512 components: - type: Transform @@ -133271,6 +133510,17 @@ entities: parent: 12 - type: AtmosPipeColor color: '#990000FF' + - uid: 31756 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 43.5,-2.5 + parent: 12 + - type: DeviceNetwork + deviceLists: + - 31755 + - type: AtmosPipeColor + color: '#990000FF' - proto: GasVentScrubberVox entities: - uid: 9429 @@ -134843,11 +135093,6 @@ entities: - type: Transform pos: 1.5,-54.5 parent: 12 - - uid: 2742 - components: - - type: Transform - pos: -5.5,-53.5 - parent: 12 - uid: 2844 components: - type: Transform @@ -135072,6 +135317,12 @@ entities: - type: Transform pos: 20.5,-33.5 parent: 12 + - uid: 3516 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-53.5 + parent: 12 - uid: 3613 components: - type: Transform @@ -145486,8 +145737,8 @@ entities: immutable: False temperature: 293.14673 moles: - - 1.8856695 - - 7.0937095 + - 1.8968438 + - 7.1357465 - 0 - 0 - 0 @@ -145504,10 +145755,10 @@ entities: showEnts: False occludes: True ents: - - 3786 - - 3787 - - 3789 - 3788 + - 3789 + - 3787 + - 3786 paper_label: !type:ContainerSlot showEnts: False occludes: True @@ -145517,26 +145768,6 @@ entities: - type: Transform pos: -8.5,-57.5 parent: 12 - - uid: 3959 - components: - - type: Transform - pos: -8.5,-56.5 - parent: 12 - - uid: 12625 - components: - - type: Transform - pos: 58.5,38.5 - parent: 12 - - uid: 15356 - components: - - type: Transform - pos: 32.5,53.5 - parent: 12 - - uid: 21234 - components: - - type: Transform - pos: -25.5,47.5 - parent: 12 - type: EntityStorage air: volume: 200 @@ -145561,14 +145792,59 @@ entities: showEnts: False occludes: True ents: - - 21235 - - 21236 - - 21237 - - 21238 + - 31735 + - 31734 + - 31733 + - 31732 paper_label: !type:ContainerSlot showEnts: False occludes: True ent: null + - uid: 3959 + components: + - type: Transform + pos: -8.5,-56.5 + parent: 12 + - type: EntityStorage + air: + volume: 200 + immutable: False + temperature: 293.14673 + moles: + - 1.7459903 + - 6.568249 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - 0 + - type: ContainerContainer + containers: + entity_storage: !type:Container + showEnts: False + occludes: True + ents: + - 2750 + - 31736 + paper_label: !type:ContainerSlot + showEnts: False + occludes: True + ent: null + - uid: 12625 + components: + - type: Transform + pos: 58.5,38.5 + parent: 12 + - uid: 15356 + components: + - type: Transform + pos: 32.5,53.5 + parent: 12 - uid: 22473 components: - type: Transform @@ -147152,8 +147428,8 @@ entities: - uid: 30711 components: - type: Transform - rot: -25.132741228718352 rad - pos: -17.25248,-61.70304 + rot: -18.84955592153876 rad + pos: -17.254229,-61.604137 parent: 12 - type: GasTank toggleActionEntity: 30712 @@ -147201,8 +147477,17 @@ entities: - uid: 30710 components: - type: Transform - pos: -17.745327,-61.717537 + rot: -18.84955592153876 rad + pos: -17.735298,-61.636753 parent: 12 + - type: GasTank + toggleActionEntity: 31737 + - type: ActionsContainer + - type: ContainerContainer + containers: + actions: !type:Container + ents: + - 31737 - proto: NoticeBoard entities: - uid: 13304 @@ -147457,17 +147742,24 @@ entities: - uid: 30713 components: - type: Transform - pos: -17.256102,-61.239185 + rot: -18.84955592153876 rad + pos: -17.246075,-61.22907 parent: 12 + - type: GasTank + toggleActionEntity: 31738 + - type: ActionsContainer + - type: ContainerContainer + containers: + actions: !type:Container + ents: + - 31738 - proto: PackPaperRollingFilters entities: - uid: 21235 components: - type: Transform - parent: 21234 - - type: Physics - canCollide: False - - type: InsideEntityStorage + pos: -25.637772,44.41958 + parent: 12 - proto: PaintingAmogusTriptych entities: - uid: 31360 @@ -147528,11 +147820,128 @@ entities: - type: Paper content: > Weezer + - uid: 3493 + components: + - type: Transform + rot: -18.84955592153876 rad + pos: -16.463318,-61.498142 + parent: 12 + - type: Paper + content: >+ + [head=2]Standard output pressures for different tanks:[/head] + + ───────────────────────────────────────── + + [color=blue]Oxygen tank[/color] - 21.3 kPA + + [color=red]Nitrogen tank[/color] - 21.3 kPA + + Air tank - 101.3 kPA + + Nitrous oxide tank - 30.4 kPA + + [color=orange]Plasma tank[/color] - 101.3 kPA + + [color=red]Fun[/color][color=orange]ny e[/color][color=yellow]merg[/color][color=green]ency[/color][color=blue] oxy[/color][color=purple]gen [/color][color=pink]tank[/color] - 22.4 kPA + + + + [color=#AAAAAA]Note: The output pressures for the emergency, double, and extended-capacity versions of tanks are the same as their counterparts, with the exception of the funny emergency oxygen tank.[/color] + + + + + + - uid: 13513 components: - type: Transform pos: 54.333927,24.618994 parent: 12 + - uid: 31763 + components: + - type: Transform + pos: 33.828316,-23.429617 + parent: 12 + - type: Paper + content: >+ + [head=2]Standard output pressures for different tanks:[/head] + + ───────────────────────────────────────── + + [color=blue]Oxygen tank[/color] - 21.3 kPA + + [color=red]Nitrogen tank[/color] - 21.3 kPA + + Air tank - 101.3 kPA + + Nitrous oxide tank - 30.4 kPA + + [color=orange]Plasma tank[/color] - 101.3 kPA + + [color=red]Fun[/color][color=orange]ny e[/color][color=yellow]merg[/color][color=green]ency[/color][color=blue] oxy[/color][color=purple]gen [/color][color=pink]tank[/color] - 22.4 kPA + + + + [color=#AAAAAA]Note: The output pressures for the emergency, double, and extended-capacity versions of tanks are the same as their counterparts, with the exception of the funny emergency oxygen tank.[/color] + + + + + + + - uid: 31769 + components: + - type: Transform + rot: -18.84955592153876 rad + pos: 55.729565,5.748849 + parent: 12 + - type: Paper + content: >+ + [head=2]Standard output pressures for different tanks:[/head] + + ───────────────────────────────────────── + + [color=blue]Oxygen tank[/color] - 21.3 kPA + + [color=red]Nitrogen tank[/color] - 21.3 kPA + + Air tank - 101.3 kPA + + Nitrous oxide tank - 30.4 kPA + + [color=orange]Plasma tank[/color] - 101.3 kPA + + [color=red]Fun[/color][color=orange]ny e[/color][color=yellow]merg[/color][color=green]ency[/color][color=blue] oxy[/color][color=purple]gen [/color][color=pink]tank[/color] - 22.4 kPA + + + + [color=#AAAAAA]Note: The output pressures for the emergency, double, and extended-capacity versions of tanks are the same as their counterparts, with the exception of the funny emergency oxygen tank.[/color] + + + + + + + + + + + + + + + + + + + + + + + + + - proto: PaperBin10 entities: - uid: 6827 @@ -151865,6 +152274,12 @@ entities: rot: 1.5707963267948966 rad pos: -62.5,-20.5 parent: 12 + - uid: 31739 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -25.5,-48.5 + parent: 12 - proto: PoweredlightBlue entities: - uid: 9232 @@ -152777,12 +153192,6 @@ entities: - type: Transform pos: 57.5,-26.5 parent: 12 - - uid: 26253 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -27.5,-48.5 - parent: 12 - uid: 26407 components: - type: Transform @@ -157147,11 +157556,6 @@ entities: - type: Transform pos: 1.5,-54.5 parent: 12 - - uid: 2743 - components: - - type: Transform - pos: -5.5,-53.5 - parent: 12 - uid: 2896 components: - type: Transform @@ -159710,6 +160114,12 @@ entities: rot: 3.141592653589793 rad pos: -35.5,61.5 parent: 12 + - uid: 13168 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -5.5,-53.5 + parent: 12 - uid: 14025 components: - type: Transform @@ -168151,6 +168561,13 @@ entities: rot: -31.415926535897945 rad pos: -38.508156,-58.411694 parent: 12 + - uid: 31736 + components: + - type: Transform + parent: 3959 + - type: Physics + canCollide: False + - type: InsideEntityStorage - proto: StairDark entities: - uid: 4306 @@ -169792,6 +170209,38 @@ entities: - SurveillanceCameraCommand nameSet: True id: AI core + - uid: 31743 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 33.5,-5.5 + parent: 12 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: Telecomms + - uid: 31747 + components: + - type: Transform + pos: 3.5,-7.5 + parent: 12 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: AI core power + - uid: 31748 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -8.5,-4.5 + parent: 12 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraCommand + nameSet: True + id: AI core entrance - proto: SurveillanceCameraEngineering entities: - uid: 2258 @@ -169985,6 +170434,39 @@ entities: - SurveillanceCameraEngineering nameSet: True id: Gravity generator + - uid: 31742 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 15.5,-2.5 + parent: 12 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: Containment North + - uid: 31744 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: 37.5,0.5 + parent: 12 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: AME + - uid: 31745 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: 29.5,-4.5 + parent: 12 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraEngineering + nameSet: True + id: East Engineering hallway - proto: SurveillanceCameraGeneral entities: - uid: 3 @@ -170371,6 +170853,60 @@ entities: - SurveillanceCameraGeneral nameSet: True id: Crossroad + - uid: 31746 + components: + - type: Transform + pos: -36.5,-10.5 + parent: 12 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Ship construction bay + - uid: 31749 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -17.5,-0.5 + parent: 12 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Law office exterior + - uid: 31750 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -16.5,-12.5 + parent: 12 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Gorilla and penguin enclosures + - uid: 31751 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -52.5,61.5 + parent: 12 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Northwest maint dock + - uid: 31762 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -62.5,-24.5 + parent: 12 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraGeneral + nameSet: True + id: Southwest maint dock - proto: SurveillanceCameraMedical entities: - uid: 3960 @@ -170507,6 +171043,17 @@ entities: - SurveillanceCameraMedical nameSet: True id: Med checkpoint + - uid: 31761 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -20.5,-58.5 + parent: 12 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraMedical + nameSet: True + id: Psych office - proto: SurveillanceCameraMonitorCircuitboard entities: - uid: 21948 @@ -170885,6 +171432,37 @@ entities: - SurveillanceCameraSecurity nameSet: True id: Security evac pod and airlock + - uid: 31752 + components: + - type: Transform + rot: -1.5707963267948966 rad + pos: -41.5,72.5 + parent: 12 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Armory exterior maints + - uid: 31753 + components: + - type: Transform + pos: -41.5,74.5 + parent: 12 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Armory exterior space + - uid: 31754 + components: + - type: Transform + pos: -30.5,74.5 + parent: 12 + - type: SurveillanceCamera + setupAvailableNetworks: + - SurveillanceCameraSecurity + nameSet: True + id: Armory exterior space two - proto: SurveillanceCameraService entities: - uid: 10 @@ -175384,7 +175962,8 @@ entities: - uid: 3894 components: - type: Transform - pos: 55.428974,5.7243023 + rot: -18.84955592153876 rad + pos: 55.368454,5.6192193 parent: 12 - proto: ToyFigurineBartender entities: @@ -175474,7 +176053,8 @@ entities: - uid: 23410 components: - type: Transform - pos: 33.601498,-23.416973 + rot: -18.84955592153876 rad + pos: 33.349148,-23.356699 parent: 12 - proto: ToyFigurineFootsoldier entities: @@ -176228,13 +176808,6 @@ entities: - Left: Forward - Right: Reverse - Middle: Off -- proto: UnfinishedMachineFrame - entities: - - uid: 24029 - components: - - type: Transform - pos: 77.5,50.5 - parent: 12 - proto: UniformPrinter entities: - uid: 18661 @@ -176331,8 +176904,10 @@ entities: - uid: 2750 components: - type: Transform - pos: -5.9218473,-56.165512 - parent: 12 + parent: 3959 + - type: Physics + canCollide: False + - type: InsideEntityStorage - uid: 11141 components: - type: Transform From 1dc8a86ecc750cb3566444367a1e4bf391ad066d Mon Sep 17 00:00:00 2001 From: pigeonpeas <147350443+pigeonpeas@users.noreply.github.com> Date: Sun, 8 Sep 2024 23:42:23 -0400 Subject: [PATCH 004/192] fix moffra antennae (#31981) Update moffra.png --- .../Moth/moth_antennas.rsi/moffra.png | Bin 227 -> 324 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Resources/Textures/Mobs/Customization/Moth/moth_antennas.rsi/moffra.png b/Resources/Textures/Mobs/Customization/Moth/moth_antennas.rsi/moffra.png index ddb3899259eca0bdc27b6a609daa30cc561c81dc..75d0ce0fc78aa8e241ba3bb07ddd3d559108b461 100644 GIT binary patch delta 309 zcmaFNc!X(!L_G&H0|Ud{?Tv4M6k~CayA#8@b22Z19F}xPUq=Rpjs4tz5?O(Kp#Yx{ z*H525y?y)k?%lgzzI@rWYZp-1$Whx0NU@a!`33(60fx={m+S|Ma29w(7BevL9R^{> ziwR|t=V)wb?f=-)lY1s zm)zO-{&tP%9~Kq?0|AEv4h)Q+>zj0>EwVif4m|_XFAKy|ZXTGaxUf}uvzDh>fsINA xhn~Tq*yA}5T0U=||HBlbiJ6h*jJM-^d5c+orf$Y6n}N<|@O1TaS?83{1OTA!fD`}# delta 211 zcmV;^04)E+0^gg^`hhh@o;5At;fASi&-HURxMbII{p zJ_!;;9?1?ymJ`blZs5BJ3sqUd&1e7s N002ovPDHLkV1k;}S55!` From 6fb5ad5293138bbcf0d2197553324cebd005a2dd Mon Sep 17 00:00:00 2001 From: Nairod <110078045+Nairodian@users.noreply.github.com> Date: Mon, 9 Sep 2024 01:48:32 -0500 Subject: [PATCH 005/192] Set Salamander Max Pop to 80 (#31907) Cull Sala Max Pop --- Resources/ConfigPresets/WizardsDen/salamander.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/Resources/ConfigPresets/WizardsDen/salamander.toml b/Resources/ConfigPresets/WizardsDen/salamander.toml index 43ba4d8d04..676deec96d 100644 --- a/Resources/ConfigPresets/WizardsDen/salamander.toml +++ b/Resources/ConfigPresets/WizardsDen/salamander.toml @@ -3,7 +3,6 @@ [game] desc = "Official English Space Station 14 servers. Medium roleplay ruleset. you must be whitelisted by playing on other Wizard's Den servers if there are more than 15 online players." hostname = "[EN] Wizard's Den Salamander [US West RP]" -soft_max_players = 130 [server] rules_file = "MRPRuleset" From fb47889d6bacde5791608d6849b9993f16846289 Mon Sep 17 00:00:00 2001 From: qwerltaz <69696513+qwerltaz@users.noreply.github.com> Date: Mon, 9 Sep 2024 12:00:17 +0200 Subject: [PATCH 006/192] make laid power cables more visible (#32000) make cables more visible --- Resources/Prototypes/Entities/Structures/Power/cables.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Resources/Prototypes/Entities/Structures/Power/cables.yml b/Resources/Prototypes/Entities/Structures/Power/cables.yml index d064cc187c..1f1de4c4ab 100644 --- a/Resources/Prototypes/Entities/Structures/Power/cables.yml +++ b/Resources/Prototypes/Entities/Structures/Power/cables.yml @@ -46,7 +46,7 @@ - type: RCDDeconstructable cost: 2 delay: 0 - fx: EffectRCDConstruct0 + fx: EffectRCDConstruct0 - type: entity parent: CableBase @@ -56,6 +56,7 @@ components: - type: Sprite sprite: Structures/Power/Cables/hv_cable.rsi + offset: 0.1, -0.1 state: hvcable_0 drawdepth: ThickWire - type: Icon @@ -107,6 +108,7 @@ - type: Sprite color: Yellow sprite: Structures/Power/Cables/mv_cable.rsi + offset: -0.1, 0.1 state: mvcable_0 - type: Icon color: Yellow @@ -151,6 +153,7 @@ - type: Sprite color: Green sprite: Structures/Power/Cables/lv_cable.rsi + offset: -0.1, 0.1 state: lvcable_0 - type: Icon color: Green From d5c69b5255231ab8a99c58bac749aabb3f075724 Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 9 Sep 2024 10:01:26 +0000 Subject: [PATCH 007/192] Automatic changelog update --- Resources/Changelog/Changelog.yml | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 14072eee49..5fefc56a2c 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,13 +1,4 @@ Entries: -- author: PJB3005 - changes: - - message: Low pressure damage now does only 1/4th as much damage. This is a band-aid - until better mechanics exists for the crew to deal with breaches of various - kinds. - type: Remove - id: 6819 - time: '2024-06-26T00:48:26.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/29478 - author: lzk228 changes: - message: Blood now has less satiation. @@ -3868,3 +3859,11 @@ id: 7318 time: '2024-09-08T18:08:06.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/31975 +- author: qwerltaz + changes: + - message: Power cables on the ground are now offset and do not obscure each other + or pipes beneath. + type: Tweak + id: 7319 + time: '2024-09-09T10:00:18.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/32000 From 8894e32a102c9cacf6232081d7d72b63374752ea Mon Sep 17 00:00:00 2001 From: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com> Date: Mon, 9 Sep 2024 03:30:24 -0700 Subject: [PATCH 008/192] Budget insuls leaves behind frayed insulative fibers instead of insulative fibers (#31886) * Adds fibers-insulative-frayed to fibers.ftl and relevant fibers-insulative-frayed components to budget insuls * +1 to the "different types of fibers in the game" info under the forensics guidebook entry (pray this is actually correct and accurate) --- Resources/Locale/en-US/forensics/fibers.ftl | 1 + Resources/Prototypes/Entities/Clothing/Hands/colored.yml | 3 +++ Resources/ServerInfo/Guidebook/Security/Forensics.xml | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Resources/Locale/en-US/forensics/fibers.ftl b/Resources/Locale/en-US/forensics/fibers.ftl index c95b292c96..ae52f1d775 100644 --- a/Resources/Locale/en-US/forensics/fibers.ftl +++ b/Resources/Locale/en-US/forensics/fibers.ftl @@ -2,6 +2,7 @@ forensic-fibers = {LOC($material)} fibers forensic-fibers-colored = {LOC($color)} {LOC($material)} fibers fibers-insulative = insulative +fibers-insulative-frayed = frayed insulative fibers-synthetic = synthetic fibers-leather = leather fibers-durathread = durathread diff --git a/Resources/Prototypes/Entities/Clothing/Hands/colored.yml b/Resources/Prototypes/Entities/Clothing/Hands/colored.yml index 556442cee1..7ed7b9f398 100644 --- a/Resources/Prototypes/Entities/Clothing/Hands/colored.yml +++ b/Resources/Prototypes/Entities/Clothing/Hands/colored.yml @@ -335,6 +335,9 @@ - 3 - 3.5 - 4 + - type: Fiber + fiberMaterial: fibers-insulative-frayed + fiberColor: fibers-yellow # Conductive Insulated Gloves - type: entity diff --git a/Resources/ServerInfo/Guidebook/Security/Forensics.xml b/Resources/ServerInfo/Guidebook/Security/Forensics.xml index cc118e14cb..733969b5a6 100644 --- a/Resources/ServerInfo/Guidebook/Security/Forensics.xml +++ b/Resources/ServerInfo/Guidebook/Security/Forensics.xml @@ -40,7 +40,7 @@ ## Fibers Whenenever people wearing gloves touch anything on the station, they are bound to leave behind some fibers. This complicates things, but nothing is unsolvable for a real detective. - There are up to [color=red]25[/color] different types of fibers possible. Can that stop you from solving the case? + There are up to [color=red]26[/color] different types of fibers possible. Can that stop you from solving the case? From 82464dad26df9ae2b5f98daf318595df273167d9 Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 9 Sep 2024 10:31:31 +0000 Subject: [PATCH 009/192] Automatic changelog update --- Resources/Changelog/Changelog.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 5fefc56a2c..f16d971708 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: lzk228 - changes: - - message: Blood now has less satiation. - type: Tweak - id: 6820 - time: '2024-06-26T02:27:11.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/29433 - author: Veritable-Calamity changes: - message: Moldy food can now be collected in the Janitors' trash bags. @@ -3867,3 +3860,11 @@ id: 7319 time: '2024-09-09T10:00:18.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/32000 +- author: ArtisticRoomba + changes: + - message: Budget insulated gloves now leave behind yellow frayed insulative fibers + instead of yellow insulative fibers. Detectives, rejoice! + type: Tweak + id: 7320 + time: '2024-09-09T10:30:25.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/31886 From 2187aef90449824643d247e392eb7462d948d465 Mon Sep 17 00:00:00 2001 From: slarticodefast <161409025+slarticodefast@users.noreply.github.com> Date: Mon, 9 Sep 2024 13:02:15 +0200 Subject: [PATCH 010/192] Make mobs without hands unable to spill jugs (#31438) * make mobs without hands unable to spill jugs * snails --- .../Fluids/Components/PreventSpillerComponent.cs | 12 ------------ .../Fluids/SharedPuddleSystem.Spillable.cs | 6 +----- Resources/Prototypes/Entities/Mobs/NPCs/animals.yml | 1 - Resources/Prototypes/Entities/Mobs/NPCs/space.yml | 3 +-- 4 files changed, 2 insertions(+), 20 deletions(-) delete mode 100644 Content.Shared/Fluids/Components/PreventSpillerComponent.cs diff --git a/Content.Shared/Fluids/Components/PreventSpillerComponent.cs b/Content.Shared/Fluids/Components/PreventSpillerComponent.cs deleted file mode 100644 index e396d9faf5..0000000000 --- a/Content.Shared/Fluids/Components/PreventSpillerComponent.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Robust.Shared.GameStates; - -namespace Content.Shared.Fluids.Components; - -/// -/// Blocks this entity's ability to spill solution containing entities via the verb menu. -/// -[RegisterComponent, NetworkedComponent] -public sealed partial class PreventSpillerComponent : Component -{ - -} diff --git a/Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs b/Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs index f88f13e8b0..2ce008da26 100644 --- a/Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs +++ b/Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs @@ -34,7 +34,7 @@ public abstract partial class SharedPuddleSystem private void AddSpillVerb(Entity entity, ref GetVerbsEvent args) { - if (!args.CanAccess || !args.CanInteract) + if (!args.CanAccess || !args.CanInteract || args.Hands == null) return; if (!_solutionContainerSystem.TryGetSolution(args.Target, entity.Comp.SolutionName, out var soln, out var solution)) @@ -46,10 +46,6 @@ public abstract partial class SharedPuddleSystem if (solution.Volume == FixedPoint2.Zero) return; - if (HasComp(args.User)) - return; - - Verb verb = new() { Text = Loc.GetString("spill-target-verb-get-data-text") diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 4e37a5ca3f..b11c1a50c6 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -1719,7 +1719,6 @@ price: 50 - type: BadFood - type: NonSpreaderZombie - - type: PreventSpiller - type: FireVisuals sprite: Mobs/Effects/onfire.rsi normalState: Mouse_burning diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml index bba4d44265..a51fe52238 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml @@ -484,7 +484,6 @@ price: 50 - type: BadFood - type: NonSpreaderZombie - - type: PreventSpiller - type: FireVisuals sprite: Mobs/Effects/onfire.rsi normalState: Mouse_burning @@ -506,7 +505,7 @@ visualType: Large messages: [ "snail-hurt-by-salt-popup" ] probability: 0.66 - + - type: entity parent: MobSnail id: MobSnailInstantDeath From 3b2fc5463b95e1750643bea892345e67e53e56a7 Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 9 Sep 2024 11:03:21 +0000 Subject: [PATCH 011/192] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index f16d971708..7af08f1a91 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: Veritable-Calamity - changes: - - message: Moldy food can now be collected in the Janitors' trash bags. - type: Fix - id: 6821 - time: '2024-06-26T03:26:59.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/29380 - author: Plykiya changes: - message: You can now interact with magic mirrors. @@ -3868,3 +3861,10 @@ id: 7320 time: '2024-09-09T10:30:25.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/31886 +- author: slarticodefast + changes: + - message: Revenants or other mobs without hands can no longer spill jugs. + type: Fix + id: 7321 + time: '2024-09-09T11:02:15.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/31438 From 5a6a3371dc63d20ddad925e2c6d0b2b6d8aee5bc Mon Sep 17 00:00:00 2001 From: Pieter-Jan Briers Date: Mon, 9 Sep 2024 20:10:28 +0200 Subject: [PATCH 012/192] Extend shuttle dock time if the shuttle doesn't dock at evac. (#31496) * Extend shuttle dock time if the shuttle doesn't dock at evac. If the shuttle can't dock at evac for *some reason*, it will instead try to dock at another port on the station. And if that fails it goes somewhere random on the station. Because of the chaos and confusion caused by this, many people will frequently not get to the shuttle in time under these circumstances. This sucks for everybody. To alleviate this, the shuttle launch timer will now be extended if the station doesn't dock at its ideal spot. The default values (controlled via CVar) are 1.667x and 2x respectively for "wrong dock" and "no dock at all" scenarios. The code around here was a mess, so I fixed that too. "CallEmergencyShuttle" has been renamed to "DockEmergencyShuttle", the overload that did the actual docking has been renamed to DockSingleEmergencyShuttle. Code has been split into separate dock -> announce methods so we can calculate shuttle delay in between the case of multiple stations. Also made the "shuttle couldn't find a dock" text announce the time until it launches and fix the shuttle timers not triggering for it. * Minor review --------- --- Content.Server/RoundEnd/RoundEndSystem.cs | 2 +- .../Commands/DockEmergencyShuttleCommand.cs | 2 +- .../Shuttles/Systems/DockingSystem.Shuttle.cs | 13 +- .../Systems/EmergencyShuttleSystem.cs | 260 ++++++++++++++---- .../Systems/ShuttleSystem.FasterThanLight.cs | 24 +- Content.Shared/CCVar/CCVars.cs | 12 + Resources/Locale/en-US/shuttles/emergency.ftl | 5 +- 7 files changed, 257 insertions(+), 61 deletions(-) diff --git a/Content.Server/RoundEnd/RoundEndSystem.cs b/Content.Server/RoundEnd/RoundEndSystem.cs index 42783f163b..82bdb78816 100644 --- a/Content.Server/RoundEnd/RoundEndSystem.cs +++ b/Content.Server/RoundEnd/RoundEndSystem.cs @@ -194,7 +194,7 @@ namespace Content.Server.RoundEnd ExpectedCountdownEnd = _gameTiming.CurTime + countdownTime; // TODO full game saves - Timer.Spawn(countdownTime, _shuttle.CallEmergencyShuttle, _countdownTokenSource.Token); + Timer.Spawn(countdownTime, _shuttle.DockEmergencyShuttle, _countdownTokenSource.Token); ActivateCooldown(); RaiseLocalEvent(RoundEndSystemChangedEvent.Default); diff --git a/Content.Server/Shuttles/Commands/DockEmergencyShuttleCommand.cs b/Content.Server/Shuttles/Commands/DockEmergencyShuttleCommand.cs index 8febe51f5a..f219602bcb 100644 --- a/Content.Server/Shuttles/Commands/DockEmergencyShuttleCommand.cs +++ b/Content.Server/Shuttles/Commands/DockEmergencyShuttleCommand.cs @@ -19,6 +19,6 @@ public sealed class DockEmergencyShuttleCommand : IConsoleCommand public void Execute(IConsoleShell shell, string argStr, string[] args) { var system = _sysManager.GetEntitySystem(); - system.CallEmergencyShuttle(); + system.DockEmergencyShuttle(); } } diff --git a/Content.Server/Shuttles/Systems/DockingSystem.Shuttle.cs b/Content.Server/Shuttles/Systems/DockingSystem.Shuttle.cs index 597d74dcc7..aabfaa31dd 100644 --- a/Content.Server/Shuttles/Systems/DockingSystem.Shuttle.cs +++ b/Content.Server/Shuttles/Systems/DockingSystem.Shuttle.cs @@ -17,7 +17,7 @@ public sealed partial class DockingSystem private const int DockRoundingDigits = 2; - public Angle GetAngle(EntityUid uid, TransformComponent xform, EntityUid targetUid, TransformComponent targetXform, EntityQuery xformQuery) + public Angle GetAngle(EntityUid uid, TransformComponent xform, EntityUid targetUid, TransformComponent targetXform) { var (shuttlePos, shuttleRot) = _transform.GetWorldPositionRotation(xform); var (targetPos, targetRot) = _transform.GetWorldPositionRotation(targetXform); @@ -288,9 +288,7 @@ public sealed partial class DockingSystem // Prioritise by priority docks, then by maximum connected ports, then by most similar angle. validDockConfigs = validDockConfigs - .OrderByDescending(x => x.Docks.Any(docks => - TryComp(docks.DockBUid, out var priority) && - priority.Tag?.Equals(priorityTag) == true)) + .OrderByDescending(x => IsConfigPriority(x, priorityTag)) .ThenByDescending(x => x.Docks.Count) .ThenBy(x => Math.Abs(Angle.ShortestDistance(x.Angle.Reduced(), targetGridAngle).Theta)).ToList(); @@ -301,6 +299,13 @@ public sealed partial class DockingSystem return location; } + public bool IsConfigPriority(DockingConfig config, string? priorityTag) + { + return config.Docks.Any(docks => + TryComp(docks.DockBUid, out var priority) + && priority.Tag?.Equals(priorityTag) == true); + } + /// /// Checks whether the shuttle can warp to the specified position. /// diff --git a/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs b/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs index 4c13a2cc82..6c4bdc0814 100644 --- a/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs +++ b/Content.Server/Shuttles/Systems/EmergencyShuttleSystem.cs @@ -1,3 +1,4 @@ +using System.Linq; using System.Numerics; using System.Threading; using Content.Server.Access.Systems; @@ -255,18 +256,19 @@ public sealed partial class EmergencyShuttleSystem : EntitySystem } /// - /// Attempts to dock the emergency shuttle to the station. + /// Attempts to dock a station's emergency shuttle. /// - public void CallEmergencyShuttle(EntityUid stationUid, StationEmergencyShuttleComponent? stationShuttle = null) + /// + public ShuttleDockResult? DockSingleEmergencyShuttle(EntityUid stationUid, StationEmergencyShuttleComponent? stationShuttle = null) { if (!Resolve(stationUid, ref stationShuttle)) - return; + return null; if (!TryComp(stationShuttle.EmergencyShuttle, out TransformComponent? xform) || !TryComp(stationShuttle.EmergencyShuttle, out var shuttle)) { Log.Error($"Attempted to call an emergency shuttle for an uninitialized station? Station: {ToPrettyString(stationUid)}. Shuttle: {ToPrettyString(stationShuttle.EmergencyShuttle)}"); - return; + return null; } var targetGrid = _station.GetLargestGrid(Comp(stationUid)); @@ -274,60 +276,126 @@ public sealed partial class EmergencyShuttleSystem : EntitySystem // UHH GOOD LUCK if (targetGrid == null) { - _logger.Add(LogType.EmergencyShuttle, LogImpact.High, $"Emergency shuttle {ToPrettyString(stationUid)} unable to dock with station {ToPrettyString(stationUid)}"); - _chatSystem.DispatchStationAnnouncement(stationUid, Loc.GetString("emergency-shuttle-good-luck"), playDefaultSound: false); + _logger.Add( + LogType.EmergencyShuttle, + LogImpact.High, + $"Emergency shuttle {ToPrettyString(stationUid)} unable to dock with station {ToPrettyString(stationUid)}"); + + return new ShuttleDockResult + { + Station = (stationUid, stationShuttle), + ResultType = ShuttleDockResultType.GoodLuck, + }; + } + + ShuttleDockResultType resultType; + if (_shuttle.TryFTLDock(stationShuttle.EmergencyShuttle.Value, shuttle, targetGrid.Value, out var config, DockTag)) + { + _logger.Add( + LogType.EmergencyShuttle, + LogImpact.High, + $"Emergency shuttle {ToPrettyString(stationUid)} docked with stations"); + + resultType = _dock.IsConfigPriority(config, DockTag) + ? ShuttleDockResultType.PriorityDock + : ShuttleDockResultType.OtherDock; + } + else + { + _logger.Add( + LogType.EmergencyShuttle, + LogImpact.High, + $"Emergency shuttle {ToPrettyString(stationUid)} unable to find a valid docking port for {ToPrettyString(stationUid)}"); + + resultType = ShuttleDockResultType.NoDock; + } + + return new ShuttleDockResult + { + Station = (stationUid, stationShuttle), + DockingConfig = config, + ResultType = resultType, + TargetGrid = targetGrid, + }; + } + + /// + /// Do post-shuttle-dock setup. Announce to the crew and set up shuttle timers. + /// + public void AnnounceShuttleDock(ShuttleDockResult result, bool extended) + { + var shuttle = result.Station.Comp.EmergencyShuttle; + + DebugTools.Assert(shuttle != null); + + if (result.ResultType == ShuttleDockResultType.GoodLuck) + { + _chatSystem.DispatchStationAnnouncement( + result.Station, + Loc.GetString("emergency-shuttle-good-luck"), + playDefaultSound: false); + // TODO: Need filter extensions or something don't blame me. _audio.PlayGlobal("/Audio/Misc/notice1.ogg", Filter.Broadcast(), true); return; } - var xformQuery = GetEntityQuery(); + DebugTools.Assert(result.TargetGrid != null); - if (_shuttle.TryFTLDock(stationShuttle.EmergencyShuttle.Value, shuttle, targetGrid.Value, DockTag)) + // Send station announcement. + + var targetXform = Transform(result.TargetGrid.Value); + var angle = _dock.GetAngle( + shuttle.Value, + Transform(shuttle.Value), + result.TargetGrid.Value, + targetXform); + + var direction = ContentLocalizationManager.FormatDirection(angle.GetDir()); + var location = FormattedMessage.RemoveMarkupPermissive( + _navMap.GetNearestBeaconString((shuttle.Value, Transform(shuttle.Value)))); + + var extendedText = extended ? Loc.GetString("emergency-shuttle-extended") : ""; + var locKey = result.ResultType == ShuttleDockResultType.NoDock + ? "emergency-shuttle-nearby" + : "emergency-shuttle-docked"; + + _chatSystem.DispatchStationAnnouncement( + result.Station, + Loc.GetString( + locKey, + ("time", $"{_consoleAccumulator:0}"), + ("direction", direction), + ("location", location), + ("extended", extendedText)), + playDefaultSound: false); + + // Trigger shuttle timers on the shuttle. + + var time = TimeSpan.FromSeconds(_consoleAccumulator); + if (TryComp(shuttle, out var netComp)) { - if (TryComp(targetGrid.Value, out TransformComponent? targetXform)) + var payload = new NetworkPayload { - var angle = _dock.GetAngle(stationShuttle.EmergencyShuttle.Value, xform, targetGrid.Value, targetXform, xformQuery); - var direction = ContentLocalizationManager.FormatDirection(angle.GetDir()); - var location = FormattedMessage.RemoveMarkupPermissive(_navMap.GetNearestBeaconString((stationShuttle.EmergencyShuttle.Value, xform))); - _chatSystem.DispatchStationAnnouncement(stationUid, Loc.GetString("emergency-shuttle-docked", ("time", $"{_consoleAccumulator:0}"), ("direction", direction), ("location", location)), playDefaultSound: false); - } - - // shuttle timers - var time = TimeSpan.FromSeconds(_consoleAccumulator); - if (TryComp(stationShuttle.EmergencyShuttle.Value, out var netComp)) - { - var payload = new NetworkPayload - { - [ShuttleTimerMasks.ShuttleMap] = stationShuttle.EmergencyShuttle.Value, - [ShuttleTimerMasks.SourceMap] = targetXform?.MapUid, - [ShuttleTimerMasks.DestMap] = _roundEnd.GetCentcomm(), - [ShuttleTimerMasks.ShuttleTime] = time, - [ShuttleTimerMasks.SourceTime] = time, - [ShuttleTimerMasks.DestTime] = time + TimeSpan.FromSeconds(TransitTime), - [ShuttleTimerMasks.Docked] = true - }; - _deviceNetworkSystem.QueuePacket(stationShuttle.EmergencyShuttle.Value, null, payload, netComp.TransmitFrequency); - } - - _logger.Add(LogType.EmergencyShuttle, LogImpact.High, $"Emergency shuttle {ToPrettyString(stationUid)} docked with stations"); - // TODO: Need filter extensions or something don't blame me. - _audio.PlayGlobal("/Audio/Announcements/shuttle_dock.ogg", Filter.Broadcast(), true); + [ShuttleTimerMasks.ShuttleMap] = shuttle, + [ShuttleTimerMasks.SourceMap] = targetXform.MapUid, + [ShuttleTimerMasks.DestMap] = _roundEnd.GetCentcomm(), + [ShuttleTimerMasks.ShuttleTime] = time, + [ShuttleTimerMasks.SourceTime] = time, + [ShuttleTimerMasks.DestTime] = time + TimeSpan.FromSeconds(TransitTime), + [ShuttleTimerMasks.Docked] = true, + }; + _deviceNetworkSystem.QueuePacket(shuttle.Value, null, payload, netComp.TransmitFrequency); } - else - { - if (TryComp(targetGrid.Value, out var targetXform)) - { - var angle = _dock.GetAngle(stationShuttle.EmergencyShuttle.Value, xform, targetGrid.Value, targetXform, xformQuery); - var direction = ContentLocalizationManager.FormatDirection(angle.GetDir()); - var location = FormattedMessage.RemoveMarkupPermissive(_navMap.GetNearestBeaconString((stationShuttle.EmergencyShuttle.Value, xform))); - _chatSystem.DispatchStationAnnouncement(stationUid, Loc.GetString("emergency-shuttle-nearby", ("time", $"{_consoleAccumulator:0}"), ("direction", direction), ("location", location)), playDefaultSound: false); - } - _logger.Add(LogType.EmergencyShuttle, LogImpact.High, $"Emergency shuttle {ToPrettyString(stationUid)} unable to find a valid docking port for {ToPrettyString(stationUid)}"); - // TODO: Need filter extensions or something don't blame me. - _audio.PlayGlobal("/Audio/Misc/notice1.ogg", Filter.Broadcast(), true); - } + // Play announcement audio. + + var audioFile = result.ResultType == ShuttleDockResultType.NoDock + ? "/Audio/Misc/notice1.ogg" + : "/Audio/Announcements/shuttle_dock.ogg"; + + // TODO: Need filter extensions or something don't blame me. + _audio.PlayGlobal(audioFile, Filter.Broadcast(), true); } private void OnStationInit(EntityUid uid, StationCentcommComponent component, MapInitEvent args) @@ -353,9 +421,12 @@ public sealed partial class EmergencyShuttleSystem : EntitySystem } /// - /// Spawns the emergency shuttle for each station and starts the countdown until controls unlock. + /// Teleports the emergency shuttle to its station and starts the countdown until it launches. /// - public void CallEmergencyShuttle() + /// + /// If the emergency shuttle is disabled, this immediately ends the round. + /// + public void DockEmergencyShuttle() { if (EmergencyShuttleArrived) return; @@ -371,9 +442,34 @@ public sealed partial class EmergencyShuttleSystem : EntitySystem var query = AllEntityQuery(); + var dockResults = new List(); + while (query.MoveNext(out var uid, out var comp)) { - CallEmergencyShuttle(uid, comp); + if (DockSingleEmergencyShuttle(uid, comp) is { } dockResult) + dockResults.Add(dockResult); + } + + // Make the shuttle wait longer if it couldn't dock in the normal spot. + // We have to handle the possibility of there being multiple stations, so since the shuttle timer is global, + // use the WORST value we have. + var worstResult = dockResults.Max(x => x.ResultType); + var multiplier = worstResult switch + { + ShuttleDockResultType.OtherDock => _configManager.GetCVar( + CCVars.EmergencyShuttleDockTimeMultiplierOtherDock), + ShuttleDockResultType.NoDock => _configManager.GetCVar( + CCVars.EmergencyShuttleDockTimeMultiplierNoDock), + // GoodLuck doesn't get a multiplier. + // Quite frankly at that point the round is probably so fucked that you'd rather it be over ASAP. + _ => 1, + }; + + _consoleAccumulator *= multiplier; + + foreach (var shuttleDockResult in dockResults) + { + AnnounceShuttleDock(shuttleDockResult, multiplier > 1); } _commsConsole.UpdateCommsConsoleInterface(); @@ -579,4 +675,66 @@ public sealed partial class EmergencyShuttleSystem : EntitySystem return _transformSystem.GetWorldMatrix(shuttleXform).TransformBox(grid.LocalAABB).Contains(_transformSystem.GetWorldPosition(xform)); } + + /// + /// A result of a shuttle dock operation done by . + /// + /// + public sealed class ShuttleDockResult + { + /// + /// The station for which the emergency shuttle got docked. + /// + public Entity Station; + + /// + /// The target grid of the station that the shuttle tried to dock to. + /// + /// + /// Not present if is . + /// + public EntityUid? TargetGrid; + + /// + /// Enum code describing the dock result. + /// + public ShuttleDockResultType ResultType; + + /// + /// The docking config used to actually dock to the station. + /// + /// + /// Only present if is + /// or . + /// + public DockingConfig? DockingConfig; + } + + /// + /// Emergency shuttle dock result codes used by . + /// + public enum ShuttleDockResultType : byte + { + // This enum is ordered from "best" to "worst". This is used to sort the results. + + /// + /// The shuttle was docked at a priority dock, which is the intended destination. + /// + PriorityDock, + + /// + /// The shuttle docked at another dock on the station then the intended priority dock. + /// + OtherDock, + + /// + /// The shuttle couldn't find any suitable dock on the station at all, it did not dock. + /// + NoDock, + + /// + /// No station grid was found at all, shuttle did not get moved. + /// + GoodLuck, + } } diff --git a/Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs b/Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs index 8da7aaa641..f30cab253a 100644 --- a/Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs +++ b/Content.Server/Shuttles/Systems/ShuttleSystem.FasterThanLight.cs @@ -669,8 +669,28 @@ public sealed partial class ShuttleSystem /// Tries to dock with the target grid, otherwise falls back to proximity. /// This bypasses FTL travel time. /// - public bool TryFTLDock(EntityUid shuttleUid, ShuttleComponent component, EntityUid targetUid, string? priorityTag = null) + public bool TryFTLDock( + EntityUid shuttleUid, + ShuttleComponent component, + EntityUid targetUid, + string? priorityTag = null) { + return TryFTLDock(shuttleUid, component, targetUid, out _, priorityTag); + } + + /// + /// Tries to dock with the target grid, otherwise falls back to proximity. + /// This bypasses FTL travel time. + /// + public bool TryFTLDock( + EntityUid shuttleUid, + ShuttleComponent component, + EntityUid targetUid, + [NotNullWhen(true)] out DockingConfig? config, + string? priorityTag = null) + { + config = null; + if (!_xformQuery.TryGetComponent(shuttleUid, out var shuttleXform) || !_xformQuery.TryGetComponent(targetUid, out var targetXform) || targetXform.MapUid == null || @@ -679,7 +699,7 @@ public sealed partial class ShuttleSystem return false; } - var config = _dockSystem.GetDockingConfig(shuttleUid, targetUid, priorityTag); + config = _dockSystem.GetDockingConfig(shuttleUid, targetUid, priorityTag); if (config != null) { diff --git a/Content.Shared/CCVar/CCVars.cs b/Content.Shared/CCVar/CCVars.cs index 95fb7bd692..9e95231c84 100644 --- a/Content.Shared/CCVar/CCVars.cs +++ b/Content.Shared/CCVar/CCVars.cs @@ -1556,6 +1556,18 @@ namespace Content.Shared.CCVar public static readonly CVarDef EmergencyShuttleDockTime = CVarDef.Create("shuttle.emergency_dock_time", 180f, CVar.SERVERONLY); + /// + /// If the emergency shuttle can't dock at a priority port, the dock time will be multiplied with this value. + /// + public static readonly CVarDef EmergencyShuttleDockTimeMultiplierOtherDock = + CVarDef.Create("shuttle.emergency_dock_time_multiplier_other_dock", 1.6667f, CVar.SERVERONLY); + + /// + /// If the emergency shuttle can't dock at all, the dock time will be multiplied with this value. + /// + public static readonly CVarDef EmergencyShuttleDockTimeMultiplierNoDock = + CVarDef.Create("shuttle.emergency_dock_time_multiplier_no_dock", 2f, CVar.SERVERONLY); + /// /// How long after the console is authorized for the shuttle to early launch. /// diff --git a/Resources/Locale/en-US/shuttles/emergency.ftl b/Resources/Locale/en-US/shuttles/emergency.ftl index be3f0962fa..ef3582c623 100644 --- a/Resources/Locale/en-US/shuttles/emergency.ftl +++ b/Resources/Locale/en-US/shuttles/emergency.ftl @@ -13,9 +13,10 @@ emergency-shuttle-command-launch-desc = Early launches the emergency shuttle if # Emergency shuttle emergency-shuttle-left = The Emergency Shuttle has left the station. Estimate {$transitTime} seconds until the shuttle arrives at CentComm. emergency-shuttle-launch-time = The emergency shuttle will launch in {$consoleAccumulator} seconds. -emergency-shuttle-docked = The Emergency Shuttle has docked {$direction} of the station, {$location}. It will leave in {$time} seconds. +emergency-shuttle-docked = The Emergency Shuttle has docked {$direction} of the station, {$location}. It will leave in {$time} seconds.{$extended} emergency-shuttle-good-luck = The Emergency Shuttle is unable to find a station. Good luck. -emergency-shuttle-nearby = The Emergency Shuttle is unable to find a valid docking port. It has warped in {$direction} of the station, {$location}. +emergency-shuttle-nearby = The Emergency Shuttle is unable to find a valid docking port. It has warped in {$direction} of the station, {$location}. It will leave in {$time} seconds.{$extended} +emergency-shuttle-extended = {" "}Launch time has been extended due to inconvenient circumstances. # Emergency shuttle console popup / announcement emergency-shuttle-console-no-early-launches = Early launch is disabled From 83182d886df5fe74bc4f4bf94fb156bc81498388 Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 9 Sep 2024 18:11:34 +0000 Subject: [PATCH 013/192] Automatic changelog update --- Resources/Changelog/Changelog.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 7af08f1a91..2a08d8ae65 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: Plykiya - changes: - - message: You can now interact with magic mirrors. - type: Fix - id: 6822 - time: '2024-06-26T14:25:11.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/29491 - author: Doomsdrayk changes: - message: Disposal units no longer protect their contents from nuclear explosions. @@ -3868,3 +3861,11 @@ id: 7321 time: '2024-09-09T11:02:15.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/31438 +- author: PJB3005 + changes: + - message: The emergency shuttle will now wait at the station longer if it couldn't + dock at evac. + type: Tweak + id: 7322 + time: '2024-09-09T18:10:28.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/31496 From f9faafec41396ffaa1fd67592123a95293f5a79b Mon Sep 17 00:00:00 2001 From: qwerltaz <69696513+qwerltaz@users.noreply.github.com> Date: Mon, 9 Sep 2024 21:15:22 +0200 Subject: [PATCH 014/192] make laid power cables more visible v2 (#32008) * Revert "make cables more visible" This reverts commit b2defdfd06652138c4f9be3f6b35f20fe3e8c596. * offset cable sprite * :-) * one more pixel for mv --- .../Entities/Structures/Power/cables.yml | 3 --- .../Power/Cables/hv_cable.rsi/hvcable_0.png | Bin 544 -> 188 bytes .../Power/Cables/hv_cable.rsi/hvcable_1.png | Bin 606 -> 287 bytes .../Power/Cables/hv_cable.rsi/hvcable_10.png | Bin 261 -> 318 bytes .../Power/Cables/hv_cable.rsi/hvcable_11.png | Bin 671 -> 321 bytes .../Power/Cables/hv_cable.rsi/hvcable_12.png | Bin 605 -> 222 bytes .../Power/Cables/hv_cable.rsi/hvcable_13.png | Bin 689 -> 335 bytes .../Power/Cables/hv_cable.rsi/hvcable_14.png | Bin 684 -> 335 bytes .../Power/Cables/hv_cable.rsi/hvcable_15.png | Bin 705 -> 335 bytes .../Power/Cables/hv_cable.rsi/hvcable_2.png | Bin 604 -> 286 bytes .../Power/Cables/hv_cable.rsi/hvcable_3.png | Bin 557 -> 214 bytes .../Power/Cables/hv_cable.rsi/hvcable_4.png | Bin 625 -> 301 bytes .../Power/Cables/hv_cable.rsi/hvcable_5.png | Bin 254 -> 310 bytes .../Power/Cables/hv_cable.rsi/hvcable_6.png | Bin 254 -> 304 bytes .../Power/Cables/hv_cable.rsi/hvcable_7.png | Bin 674 -> 321 bytes .../Power/Cables/hv_cable.rsi/hvcable_8.png | Bin 633 -> 299 bytes .../Power/Cables/hv_cable.rsi/hvcable_9.png | Bin 255 -> 309 bytes .../Power/Cables/lv_cable.rsi/lvcable_0.png | Bin 131 -> 129 bytes .../Power/Cables/lv_cable.rsi/lvcable_1.png | Bin 151 -> 199 bytes .../Power/Cables/lv_cable.rsi/lvcable_10.png | Bin 234 -> 216 bytes .../Power/Cables/lv_cable.rsi/lvcable_11.png | Bin 293 -> 234 bytes .../Power/Cables/lv_cable.rsi/lvcable_12.png | Bin 97 -> 95 bytes .../Power/Cables/lv_cable.rsi/lvcable_13.png | Bin 268 -> 236 bytes .../Power/Cables/lv_cable.rsi/lvcable_14.png | Bin 277 -> 232 bytes .../Power/Cables/lv_cable.rsi/lvcable_15.png | Bin 362 -> 385 bytes .../Power/Cables/lv_cable.rsi/lvcable_2.png | Bin 161 -> 192 bytes .../Power/Cables/lv_cable.rsi/lvcable_3.png | Bin 114 -> 113 bytes .../Power/Cables/lv_cable.rsi/lvcable_4.png | Bin 157 -> 199 bytes .../Power/Cables/lv_cable.rsi/lvcable_5.png | Bin 226 -> 219 bytes .../Power/Cables/lv_cable.rsi/lvcable_6.png | Bin 206 -> 213 bytes .../Power/Cables/lv_cable.rsi/lvcable_7.png | Bin 299 -> 246 bytes .../Power/Cables/lv_cable.rsi/lvcable_8.png | Bin 156 -> 195 bytes .../Power/Cables/lv_cable.rsi/lvcable_9.png | Bin 189 -> 204 bytes .../Power/Cables/mv_cable.rsi/mvcable_0.png | Bin 174 -> 156 bytes .../Power/Cables/mv_cable.rsi/mvcable_1.png | Bin 182 -> 186 bytes .../Power/Cables/mv_cable.rsi/mvcable_10.png | Bin 249 -> 222 bytes .../Power/Cables/mv_cable.rsi/mvcable_11.png | Bin 298 -> 243 bytes .../Power/Cables/mv_cable.rsi/mvcable_12.png | Bin 119 -> 95 bytes .../Power/Cables/mv_cable.rsi/mvcable_13.png | Bin 271 -> 240 bytes .../Power/Cables/mv_cable.rsi/mvcable_14.png | Bin 268 -> 238 bytes .../Power/Cables/mv_cable.rsi/mvcable_15.png | Bin 339 -> 261 bytes .../Power/Cables/mv_cable.rsi/mvcable_2.png | Bin 186 -> 192 bytes .../Power/Cables/mv_cable.rsi/mvcable_3.png | Bin 131 -> 114 bytes .../Power/Cables/mv_cable.rsi/mvcable_4.png | Bin 179 -> 175 bytes .../Power/Cables/mv_cable.rsi/mvcable_5.png | Bin 235 -> 222 bytes .../Power/Cables/mv_cable.rsi/mvcable_6.png | Bin 197 -> 208 bytes .../Power/Cables/mv_cable.rsi/mvcable_7.png | Bin 283 -> 245 bytes .../Power/Cables/mv_cable.rsi/mvcable_8.png | Bin 174 -> 181 bytes .../Power/Cables/mv_cable.rsi/mvcable_9.png | Bin 202 -> 210 bytes 49 files changed, 3 deletions(-) diff --git a/Resources/Prototypes/Entities/Structures/Power/cables.yml b/Resources/Prototypes/Entities/Structures/Power/cables.yml index 1f1de4c4ab..ac855a5460 100644 --- a/Resources/Prototypes/Entities/Structures/Power/cables.yml +++ b/Resources/Prototypes/Entities/Structures/Power/cables.yml @@ -56,7 +56,6 @@ components: - type: Sprite sprite: Structures/Power/Cables/hv_cable.rsi - offset: 0.1, -0.1 state: hvcable_0 drawdepth: ThickWire - type: Icon @@ -108,7 +107,6 @@ - type: Sprite color: Yellow sprite: Structures/Power/Cables/mv_cable.rsi - offset: -0.1, 0.1 state: mvcable_0 - type: Icon color: Yellow @@ -153,7 +151,6 @@ - type: Sprite color: Green sprite: Structures/Power/Cables/lv_cable.rsi - offset: -0.1, 0.1 state: lvcable_0 - type: Icon color: Green diff --git a/Resources/Textures/Structures/Power/Cables/hv_cable.rsi/hvcable_0.png b/Resources/Textures/Structures/Power/Cables/hv_cable.rsi/hvcable_0.png index d7c0c68ea403a5f36c71dd947fd4650cda980142..80fc1762a0be1113a3100f95721801f2f71f1f12 100644 GIT binary patch delta 172 zcmV;d08{^<1iS%|7=H)`0001UdV2H#004tYL_t(|obAyu3d1lA1yD8g4%+|j8~J#? zl2`5W>Oo^NB}2&&)ItgQZ!!ppFIj|$i0J8F*~VJy>h7mCRh8D-rP=Rn0C$%;=V@(> zae2;?4e$v-s_!QO0En6WC&0crfYcSf4q#@-_L(c(_X|{2A|*m1LVEAVJ0hf%k{wG# a^gtW*F))s_gf;R20000~0iXns7=Hu<0001iRAdVfa%qYyBHq{M7Y~^!{fWUi-r8bt^n3XM^c$zq>Yc6Y^hu7I1wl{*5eI*PUyGD@Zc}KH_Jo`B z@ZR$t?mZU}G8)tEo&=y9j+INN#MQ!@7axocHQp z*D(f)ip_vPAMqSBEr)oXIJ4!LocD-_Sy?I)pAg3^Iw0{a*JYpIIG23>;%wz}i-5p; zilsJ|+nALtop_o!s%tK5o`>HgtQafHl*egJz(x*fq##0ui%n>75T|U=%sTrL4c`(f zL_|eJMOau^T3T9MTwHf|ca}#0vsD1a zUI5Bs1Kn>7ni?bJ00001bW%=J06^y0W&i*HM@d9MR5;6HU_b@}y!^a;JPf$OAW*=~ z#>&dd%sKmY&$07*qoM6N<$g0t)OGXMYp diff --git a/Resources/Textures/Structures/Power/Cables/hv_cable.rsi/hvcable_10.png b/Resources/Textures/Structures/Power/Cables/hv_cable.rsi/hvcable_10.png index 61961e7940ee7d315522387a3355f5c6f3d0e2cd..5913203bf51226aa83be74f71a01709d97256627 100644 GIT binary patch delta 291 zcmZo=+Q&3OrJk`k$lZxy-8q?;3=9k`>5jgR3=A9lx&I`x0{JQdJ|V8<<>hztd0bpv zHit4;TU(z>Vm=zjU}kDM&7DDCM<*g80;q7uqM+G8il-#VFZe$KFbLg0cMd4dS>O>_ z%)r2R7=#&*=dVZs3U+(CIEK_)_`jWSn(v4LhpXetMgRW)7i&>F`emY?`pnG-7O01_ z9^@OX!wrVC3c;|1OXSmB&EH+#cV8wlOHx8^J9aKLz9;Pgg&ebxsLQ092P&bN~PV diff --git a/Resources/Textures/Structures/Power/Cables/hv_cable.rsi/hvcable_11.png b/Resources/Textures/Structures/Power/Cables/hv_cable.rsi/hvcable_11.png index d627767f63276acd3f3f6199174c45ca714dcc48..da9f4598fd930d373717b58cc1e678b9f07b2472 100644 GIT binary patch delta 295 zcmbQwdXQ;?ayE4iE z|Ko3)?RIoy+3Wc{H9|%t@N(5Lzp^qbnYzdijU7p+tTwH0-MIdx?IN83gN8swg=wN@ zv8l(nl#T?hs7(}d;n4f=>owoh($>f$74Hh{4|Prv;CIhRtDL{-;8%rNvz9NE_wN0n c9(|i}*;!+@X?L}ofX-m>boFyt=akR{0I)N4OaK4? delta 648 zcmV;30(bqv0-pttBYy#LX+uL$X=7sm04R}lkv&VpP!xvWrb7I1wl{*5eI*PUyGD@Zc}KH_Jo`B z@ZR$t?mZU}G8)tEo&=y9j+INN#MQ!@7axocHQp z*D(f)ip_vPAMqSBEr)oXIJ4!LocD-_Sy?I)pAg3^Iw0{a*JYpIIG23>;%wz}i-5p; zilsJ|+nALtop_o!s%tK5o`>HgtQafHl*egJz(x*fq##0ui%n>75T|U=%sTrL4c`(f zS)z`+0i|1T^oFE1}PH8nUmI6FH#L_|bIMMYRxSXx?ITwGjt zcXyUY0JBv9#a;l)Vguc83?Ur!OaK4?1awkPQvd(}0JD>3ng9R*d`Uz>R5;7sk~&fGnE*nZj0a*%Ysyg+=|u>Jh_rIwg&ww$RUrgE zrMJM}Y8zt=!p>m235g*>u&_LZl_5e{)SDfagNKkAt*;L65s^^}Q5*pr-e>R=@YRbN ie)T8Otu>-IVF&yJ5O}@2Df|Ec002ovPDHLkU;%=7ju5v1 diff --git a/Resources/Textures/Structures/Power/Cables/hv_cable.rsi/hvcable_12.png b/Resources/Textures/Structures/Power/Cables/hv_cable.rsi/hvcable_12.png index a43728cb8a4ac4d3d718706eb7f233692e06ee74..925f66e9b7429c51d72a262e8b5e91b1298ceedd 100644 GIT binary patch delta 206 zcmV;<05SjF1l|FV7=H)`0001UdV2H#005;)L_t(|obAyq4gxU{#qmF35F}tQT&*`i zB73D?W(5X^C0Pwg!!Daezy?9n&hlZ%{M3l|UeXkdF~%5E;Jxp?_x-Q7k07*qo IM6N<$f&?L8TL1t6 delta 592 zcmV-W0dVfa%qYyBHq{M7Y~^!{fWUi-r8bt^n3XM^c$zq>Yc6Y^huL_}CvSa)}KmPY`yRRG0a z0Lo$m-ERyJO&G&t5Z7{R2L1$Ol(Vr*Jdz-7*M{)$Z1jX$R-KYEK+YCj8)aE9|;<*wN zbKAQ%o{?5M5oxidL9uwUVpE3W{`aEJW!4V^^wiI|dF4ojfAJCDE}>_s{Fsa9rbO}9 q|G`=}W~995FMX^jA7I1wl{*5eI*PUyGD@Zc}KH_Jo`B z@ZR$t?mZU}G8)tEo&=y9j+INN#MQ!@7axocHQp z*D(f)ip_vPAMqSBEr)oXIJ4!LocD-_Sy?I)pAg3^Iw0{a*JYpIIG23>;%wz}i-5p; zilsJ|+nALtop_o!s%tK5o`>HgtQafHl*egJz(x*fq##0ui%n>75T|U=%sTrL4c`(f zSw!vMg*!2kdMFDxuCFE2JVH8?mpJ3Bi>L_|eJMOau^T3T9M zTwHf|ca}#0vsD1aUI5Bs1Kn>71S0Q;00005bW%=J000000K#hqu>b%7ib+I4R5(xV zk;@K)Fnc(OHxQC%W@nb+<+ITR zIS+-t;!5GQ3)8QVk~|+VfT+6mZ3OQTVFp%rR0L*(2x}8`N1MQm2)LiE?hX^y#$iGg zoa+;?;@cr83&tS&3f=9mvfu|!(SoSDKR4n7Z4=}XJT-+p5&!@I07*qoM6N<$f*ivf ABme*a diff --git a/Resources/Textures/Structures/Power/Cables/hv_cable.rsi/hvcable_14.png b/Resources/Textures/Structures/Power/Cables/hv_cable.rsi/hvcable_14.png index a946e893a933e1d98bec7d639b4a4decdf73b254..33251cf2f3734158b8e87650f45583c8c27156fc 100644 GIT binary patch delta 309 zcmZ3(dY);5ayu(Nau(r02ii$dw#C$Z4!OYZjnmdEOj!r~G1W@1JQ*+dTlwe7a zU+{l4z@WNzW)e`6v%n*=xSoN5?=T269?xHq0u=4=ba4!^@P9kupir{{k4v+Xi|dpB z`>*{_V!!RY+}L)DaV`6`*l-1}>Vx|q{0VXVqsSv*kYZ$IsC1Zx(^>6ipzFCqIjlT0 zb^5fDSgY+-d2U|j+gx}%vDE9~;<_VKZz|0W*1pt#V8U0!@3NenH9mTqj?0@qQ(b>M r)ojbYz_j$-h1^>bP0l+XkKFd=%~ delta 661 zcmV;G0&4xw0;~m)BYy#LX+uL$X=7sm04R}lkv&VpP!xvWrb7I1wl{*5eI*PUyGD@Zc}KH_Jo`B z@ZR$t?mZU}G8)tEo&=y9j+INN#MQ!@7axocHQp z*D(f)ip_vPAMqSBEr)oXIJ4!LocD-_Sy?I)pAg3^Iw0{a*JYpIIG23>;%wz}i-5p; zilsJ|+nALtop_o!s%tK5o`>HgtQafHl*egJz(x*fq##0ui%n>75T|U=%sTrL4c`(f zL_|eJMOau^T3T9M zTwHf|ca}#0vsD1aUI5Bs1Kn>7x};Uy00005bW%=J000000K#hqu>b%7g-Jv~R5(xV zk5LYUAb$)*ySoAw5JbKIS*4@IhIjxz_I-57bTSP@f5swbnZFc3QXbJEcn=9Pu-c;{ zFheA;)PVMA7nmUd``K!*Ygj5>!zMV_8gSzFAhZg`K-vlIU0;b&<~Lc8K9Bb>Rp=;t v+1BgbGfE(PW_BjN280%PU4r|>Xn_+-`4MXC^$vTD00000NkvXXu0mjfbw(IO diff --git a/Resources/Textures/Structures/Power/Cables/hv_cable.rsi/hvcable_15.png b/Resources/Textures/Structures/Power/Cables/hv_cable.rsi/hvcable_15.png index 5bb5fcb1afef5232a9baa8d4364cff8fcaae4087..d63ec8e823610b0c79d09db958d359570c0fd821 100644 GIT binary patch delta 309 zcmX@edY);5ay;V2@um6C_U+loSGFrxk$G3y(Vr*Jdz-7T*J;sE(p-O6Yroh$+cXZ3n+p<7#HhQa z++LWZ^SOZ*Ks9js2FK54BYy#LX+uL$X=7sm04R}lkv&VpP!xvWrb7I1wl{*5eI*PUyGD@Zc}KH_Jo`B z@ZR$t?mZU}G8)tEo&=y9j+INN#MQ!@7axocHQp z*D(f)ip_vPAMqSBEr)oXIJ4!LocD-_Sy?I)pAg3^Iw0{a*JYpIIG23>;%wz}i-5p; zilsJ|+nALtop_o!s%tK5o`>HgtQafHl*egJz(x*fq##0ui%n>75T|U=%sTrL4c`(f zL_|eJMOau^T3T9M zTwHf|ca}#0vsD1aUI5Bs1Kn>7^FHQ700005bW%=J000000K#hqu>b%7nn^@KR5;7c zlfe>$Ab$)*BNZ^9Alm=`){>=+)Y|q~-hp+Non#C^)N)UI+E)5Z2Z89A+3NXn^OmUr z`MwO)7XJ*4C7|8|G0Hjy4}vxpOGsI(mGOc&2uw+gZ zHo@9j0WF>$gjPXoNNv%2y`U?X?uQp58Fi+oIq#( QN&o-=07*qoM6N<$f(#TUNB{r; diff --git a/Resources/Textures/Structures/Power/Cables/hv_cable.rsi/hvcable_2.png b/Resources/Textures/Structures/Power/Cables/hv_cable.rsi/hvcable_2.png index 5c260839d9455c9d737bb12c7789a223a1668f3c..db2ad38a2dcd336a1c48eb3bcf527f2832a15711 100644 GIT binary patch delta 259 zcmcb^GLLD3aynma>zdAW;=i?y}2nW?G1j!r~G1W;e&A*X3TO0Xoz zFZe$iU{GBO>_T*JV?cNl~jkLRyQ0g8rux;Tbd_$Lb}Ft~|290&+GaDao& zV^Ic|#LNQ?lBZaibhsioG#E}j4n4rcVzRZVQIcnZ%S9264VyM@E-Y}eR50KWEhzl_ q;lqbdADwqPIILoNWgX7I1wl{*5eI*PUyGD@Zc}KH_Jo`B z@ZR$t?mZU}G8)tEo&=y9j+INN#MQ!@7axocHQp z*D(f)ip_vPAMqSBEr)oXIJ4!LocD-_Sy?I)pAg3^Iw0{a*JYpIIG23>;%wz}i-5p; zilsJ|+nALtop_o!s%tK5o`>HgtQafHl*egJz(x*fq##0ui%n>75T|U=%sTrL4c`(f zL_|eJMOau^T3T9MTwHf|ca}#0vsD1a zUI5Bs1Kn>7ni?bJ00001bW%=J06^y0W&i*HMM*?KR5;6HU>F615^%AD0T)gM>?~lw zgjWG40X+qr1We!r0-9RE#RLYpy~!ZJ%g@Wl!!W27aI>+pvNAJrkgs5{dJ_PHAOzzS SVvuA20000ua z|1ya4GBccc`j;VVCj%p~W-w9W0BQiLI^g%8zXR(4a=@qq2HXKeXBTu(US9tH?Afyn z-@ku{i~aufi{a<@?+ltcIt(jTtRTwlp&J4W444Ix5GMn}#Xpw}Be)dVfa%qYyBHq{M7Y~^!{fWUi-r8bt^n3XM^c$zq>Yc6Y^huyL_|bbSXg&=ca}#0vsD1aUI5Bs z1Kn>7`+}aP00001bW%=J06^y0W&i*HB}qgEak-;s3VRo3BBE$K@wynBb28 znQymravN?id#I~+_RCV!+(SZB?75C{-Lh(TJI4OHbwi_srCrOBLwp?;RgK^6WEwga z3kw7I1wl{*5eI*PUyGD@Zc}KH_Jo`B z@ZR$t?mZU}G8)tEo&=y9j+INN#MQ!@7axocHQp z*D(f)ip_vPAMqSBEr)oXIJ4!LocD-_Sy?I)pAg3^Iw0{a*JYpIIG23>;%wz}i-5p; zilsJ|+nALtop_o!s%tK5o`>HgtQafHl*egJz(x*fq##0ui%n>75T|U=%sTrL4c`(f zL_|eJMOau^T3T9MTwHf|ca}#0vsD1a zUI5Bs1Kn>7ni?bJ00001bW%=J06^y0W&i*HT1iAfR5(xV&pQslAPfW001c4P-~CTp zVx~gXnNoqbSV)#5h?Xg70>z`0v5+?Kw}}xk6r>go!;I()VhfjHMsx+K{uglKG$DK~ nv=h5=4)H3ehxW~!X_?Cd8ejzIO3wZ?00000NkvXXu0mjf99{hk diff --git a/Resources/Textures/Structures/Power/Cables/hv_cable.rsi/hvcable_5.png b/Resources/Textures/Structures/Power/Cables/hv_cable.rsi/hvcable_5.png index 6067423beb6bea50ba4f0a6d4949bb89c45932d4..bce851dd3c504325805492fa1bb571abecac0d06 100644 GIT binary patch delta 283 zcmeyzxQ%IoNGZx^prw85kH?(j9#r85lP9bN@+X1@ct_d_r9B=JRY0WjK|@ zd^C<>nma>zdAW;=i?y}2nW?G1j!r~G1W@7rLlHqhil-#VFZe$KFbLg0cMd4dS>O>_ z%)r2R7=#&*=dVZs3O0MXIEK_)_`kjA$=9I3!x|99ox0O2Zk zrP(=zw>p0Ie86mce9CQ&O740477Dj7STAvKT@pjs!)brzB3K)QAMHK2Elydq!Ocm) ztU;^CV0HFuJ(sH9jx$9v4O;7@LNpFa_)Docbp%a%%yK2=?`G|Q&&;QJHB#9`f@i2c U;?Dn)78&qol`;+0Q8_~F8}}l delta 226 zcmV<803H9f0{#JzB!4_mOjJc|b7cSk0G*wkz`(#SEG#cCFE%wbI5;>vJ3B-~L`6kK zSXfwET3TFOTz7YOmPY`yRRG0a0Lo$m-ER!}7i)?D0004WQchC6WZ)a)U^#A|>07*qoM6N<$f`-&p@c;k- diff --git a/Resources/Textures/Structures/Power/Cables/hv_cable.rsi/hvcable_6.png b/Resources/Textures/Structures/Power/Cables/hv_cable.rsi/hvcable_6.png index 8d6d82961a367b06363bf40548c794af28595be4..36cbd9cfc8239679d05b6c7dc164ef07ad281300 100644 GIT binary patch delta 277 zcmeyzxPfVcNGZx^prw85kH?(j9#r85lP9bN@+X1@ct_d_r8y%ggWP^SHRU zYz}3xwzfW%#C$Z4!OYZjnmdEOj!r~G1W@6QMM1NH6i-QzU+{kfU=X^0?i^5@v%n*= zn1O-sFbFdq&tH)O6s+}haSW-q@PFHPkdHx-$3@rmbP0l+XkK=DKVD delta 226 zcmdnM^pA0ZO1({hPlzi67|fkJ_rQSz`Z_xL`ub+3rWO_!*4EZ8E-tRFt`QLtQBhGb zF)`)k<o>8gd;_ z;BhtXaA6U?{QLga&N8h|r|D%cq(wg2#fLP^e}6eT>J8uGDI0&z5_O5b`PoWL(8bVZ z{o@^p70>QfpNl*EWmRX8(qp+9_gvP#W3Bl0f$;{@#`e_=*BEcHiTw{2FkJr2W`pgc ar3W~9jkz29rB$YYJmTr<=d#Wzp$PyUR9Vvi diff --git a/Resources/Textures/Structures/Power/Cables/hv_cable.rsi/hvcable_7.png b/Resources/Textures/Structures/Power/Cables/hv_cable.rsi/hvcable_7.png index 7f158911157c6418ae961b0ef1beb04b36ae10c9..66dfb114234f5ccb05bb3ad220e98e8b34d054d5 100644 GIT binary patch delta 295 zcmZ3)dXQ;?ay$h}cSdt(4&ONN=tFG!B__gO!w^_FS0e#lj9Vgn?PCpa;P&oUTii_r&rxGn&xFZ># zPuP38F(BeXLr1dMj{VPB1qywf65pwx5N4~WH(hAEu}Q#!O)+iZ+MNmy)0#hYChz^| cf31okDcU4P#(&;VpfeaeUHx3vIVCg!0F=9Qwg3PC delta 651 zcmV;60(AYs0-^7I1wl{*5eI*PUyGD@Zc}KH_Jo`B z@ZR$t?mZU}G8)tEo&=y9j+INN#MQ!@7axocHQp z*D(f)ip_vPAMqSBEr)oXIJ4!LocD-_Sy?I)pAg3^Iw0{a*JYpIIG23>;%wz}i-5p; zilsJ|+nALtop_o!s%tK5o`>HgtQafHl*egJz(x*fq##0ui%n>75T|U=%sTrL4c`(f z3ng9R*e@R3^R5;7slF1H$ zAPhuN5r2z-Z2$kS($R~!-3;+v29lRHEeNqQ6hsawM8BPDS`ijaL`s@Vfq4}kTYM|@ zw}P92>oL-D7Ul_znb8_?5^NCyLxiXW%M}tsgs22tc&>mJkx}ZZ!q&nwQX-CHj=*(% lG3ItrUDL1mt3P=VR#g2E?ocZ~lmGw#07*qoLu(Nau(r02ii$dw#C$Z4!OYZjnmdEOj!r~G1W@1JQ*+dTlwe7a zU+{l4z@WNzW)e`6v%n*=xSoN5?=T269?xHq0u)X0ba4!^@PFIy$k(92!@{j3=KA3O z`mK4E9!*7NiF(X0TiCRi(-!>EQm~ca=Fw{qJ8F4i-GS>X9cCZmx$BtG9GlptGU4ZQ zZpVx!=T5;_Yb>TtS#YlF)f~mg2S3lgy8euVB+JqmMrNz!E1jIbGB9v4FnGH9xvX7I1wl{*5eI*PUyGD@Zc}KH_Jo`B z@ZR$t?mZU}G8)tEo&=y9j+INN#MQ!@7axocHQp z*D(f)ip_vPAMqSBEr)oXIJ4!LocD-_Sy?I)pAg3^Iw0{a*JYpIIG23>;%wz}i-5p; zilsJ|+nALtop_o!s%tK5o`>HgtQafHl*egJz(x*fq##0ui%n>75T|U=%sTrL4c`(f zvJ3B-~L`6kKSXfwET3TFOTz7YOmPY`y zRRG0a0Lo$m-ERza3)Sub0007XQchC<0CtnjH~;_uUP(kjR5(xV&r1$~APhy(3RphH z-~Kl%eOieoMHj$;Gr0p^AP`MssTGj~V$LoVBa&9|X0R(}LH+%D00000NkvXXu0mjfB$@x} diff --git a/Resources/Textures/Structures/Power/Cables/hv_cable.rsi/hvcable_9.png b/Resources/Textures/Structures/Power/Cables/hv_cable.rsi/hvcable_9.png index e727be69647baf38356077959d82e01df3acdc68..1438c5cb50b4d64d09596812250043b8b13e0d88 100644 GIT binary patch delta 282 zcmey*xRq&wNGZx^prw85kH?(j9#r85lP9bN@+X1@ct_d_r9B=JRY0WjK|@ zd^C<>nma>zdAW;=i?y}2nW?G1j!r~G1W@7rLlHqhil-#VFZe$KFbLg0cMd4dS>O>_ z%)r2R7=#&*=dVZs3O0GVIEK_)_`jWakgr97$0b^n>)ZeT*ZC5X*6u#?I_*B=p*^0R zPOlW>D()U*{F9=XDyUg1@BTP9v5M7~dryt-7smPAA0$46c$_Txp2u*>?cB2V@2u}S z9NgEZXbNm>U0g2g!@fR6QG@lh*q%wL3$AVJ{c`B%%->IIWwyu5{uH;G-1Lg^iLjEY V$&a0Ju|W4Qc)I$ztaD0e0st9ua!3FG delta 227 zcmdnW^q+BpO1({hPlzi67|fkJ_rQSz`Z_xL`ub+3rWO_!*4EZ8E-tRFt`QLtQBhGb zF)`)k<o>?&dn6 zz{6nN;lk4U?En9*ZmizYqE?n)#M-SNaX;V-UM3Qgc#hGrpd+LAzg*7t2e}TFl3N%* zH~ePMITt<807*qo IM6N<$f~_Gc6951J diff --git a/Resources/Textures/Structures/Power/Cables/lv_cable.rsi/lvcable_1.png b/Resources/Textures/Structures/Power/Cables/lv_cable.rsi/lvcable_1.png index 49da9c51ba97a3144900beaa833638950c99869d..db96c8598f3f13f31ab4a193eeb25af8bb31c615 100644 GIT binary patch delta 182 zcmbQvc${&9WIZzj1B1(wu46!ou{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstUx|zfKQ0) z|Ns9pGc$p_=4DY;K#I8}$S?T+e}?O)c!6peI14-?iy0XB4ude`@%$AjKtT&n7sn6_ z|Kx-wMm9GMX3-w41_l*Y4mG2OZX<&PeRC#HM&&wIpBqmniacOg%%zYJ!pIV^s-csU Z;e!wR`;OXk;vd$@?2>|Y=Hc0>g delta 133 zcmV;00DAw&0ha-g8GZ%;0047(dh`GQ0A5K%K~z|U?bX2vz%U4fVbdj@K?iako$Qqy z3OzPK2!;2ZJn2s^k*_jS0Km*J=Pp;j7!kPvlsq7Z&_0jl00000NkvXXu0mjfvavRZ diff --git a/Resources/Textures/Structures/Power/Cables/lv_cable.rsi/lvcable_10.png b/Resources/Textures/Structures/Power/Cables/lv_cable.rsi/lvcable_10.png index e8fdc982057d89f2fdac95f1f7d7b5fba5e6af25..63ecca850f1924957beb6d7ae1603c4a755cce9f 100644 GIT binary patch delta 199 zcmaFGc!P0*WIZzj1B1(wu46!ou{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstUx|bfKQ0) z|Ns9pGc)JToeLC@Yl;X2sVfQc3kHfaIB2c>0_1ZRctjR6Fz_7)VaDV6D^h@huAVNA zAr}5`&mI(F5a4jV829(TeR7=HvJD9i*JD#5#SiyC qPg*DbV?!Bl&_{ukMGU|B&Pa(_a`!EqnUDZ9k-^i|&t;ucLK6VoUPhS! delta 217 zcmV;~04D#~0qOye8Gi-<0047(dh`GQ0I^9#K~z|U?UvsO#2^fZ~AmUME znJan=Zr0k?EQC1UcX4Bq zSR%j@&bebO(*;KJlK^c4t?7sq{v&}~2=EyA%Q;0_1ZRctjR6Fz_7)VaDV6D^h@h;hrvz zAr}5`CmQlGC~z=4{`;RE_$o=qFwi{6+VS0r=A;gdHqGxW$F{ScQY^T~>bb-DIOq3I zBJRw`N~4@tnJkM+id606HotJL_v4?B@db|;9q7?_na7d3|&u)``1XaxgmdK II;Vst0Gt|3h5!Hn delta 277 zcmV+w0qXwh0i^LUPW^{7(-ZgZ4)XN-4l^9VpYAAgyWF^bzf0z6hrs$rY} z$k;iT7T0yHf2q1H+8p-{sjX TgL$>u7=Xaj)z4*}Q$iB}+_e>( delta 66 zcmaz~oS;pyTS64CnhoFgNHfdG?&`1fDz1%`hdn3xXS%D(;d;oZ9?3=9XtCh>0y WWwUf#?6iRa2s~Z=T-G@yGywoS9Tb#? z&Wdv5Piai8({8&+x!7KK_dHwb#ub%EO;(e`B6c|oQDxvt4s;FVZ;v%eq3?TI*R?r? zT>~|7&~@Fm)@tId4IwP|PvW@=F@XJ&jM@PD9z`H5?1|?lVvO6_l#&cf(wK2L0nu-T zYvi5r99YK&Fxw%jon$3Q^sF{D48t%C!!WLeh#v6bYMoqZtKk3u002ovPDHLkV1f$( Ba~A*r diff --git a/Resources/Textures/Structures/Power/Cables/lv_cable.rsi/lvcable_14.png b/Resources/Textures/Structures/Power/Cables/lv_cable.rsi/lvcable_14.png index 950c10a4991e9e8c9e4bdf165f162745db09f8db..c7162bbb7368a2d364471c239347918b3a44fc5a 100644 GIT binary patch delta 215 zcmbQr^n!7MWIZzj1B1(wu46!ou{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstUx|bfKQ0) z|Ns9pGc)JToeLC@Yl;X2sVfQc3kHfaIB2c>0_1ZRctjR6Fz_7)VaDV6D^h@hp`I>| zAr}5``z`qnDDbf4{`qfz{CE??T9>YXCCOTEBvk~g3!0nQHZ_`lX!Sc{pq^RicWC7{ zshXIz!PBL=ZkF-~2-w#N_Wk_c82xHL&kydr3qNfQsu}LQ;1(8pp8>L#!PC{xWt~$( F697JXO_l%v delta 260 zcmV+f0sH>w0hI!f8Gi-<0047(dh`GQ0NhDLK~z|U?Um6DgCG!wp>Y#e@Ey0{oi`oG z9oRw!VHTR-^o$y@SF52-?n{V?Ir4vSf=UnsK`4z*DJ3|B5Hy}`+kT}qj^p$+#w1R? z?z(O&9EM?jNiv_Z4DI`#HCvOh_kNyCGF%Y~UWQt0cjp>o)_nro0tk^z(=@8C>q7~I zQ!ql`weZ#PnQE_y>|=}xBPT)Oxz%!b9Mw=TB<=_YhXN$woLhY(SB0|#?uI3R(}0tK zUAS`f;6HZYXTY^hH|JS!4=jhYKm>{lRNKE3hck0>NDImeD5akGg>a)S?gOP>KVP%>Du6)@!?0N4XBRI5T%{sFdIEmp={Etc(Cq+KQdLbitb;igm+5u~ z9)Jg+c|WB}+7nxw>vjhofX2Q|O0xG=6T6ke^fiCSzoc`&qhwfPt^fc407*qoM6N<$ Ef;+F9?f?J) delta 335 zcmV-V0kHmo1L^{hB!4kUL_t(oh3%Hx34|~ZMdM;8w%~v4!hiovLFvIRv=D2VWn?eJ zY@R-lU2;K0Npg>qnTaAtL`35_Qr09(M6|nJXBN9cwY|nX&(39~l%$jrT5Eo!zV9p7 zxUTE6upW=VZvY_t9QI{dD&B@^nocES7Qmf~0+?TqcN~SbZGXkOuBW3A1aO%{P19`e z&O&^ZA&mL%GdCd^0OL6_*#M|}ECORz$lQcbN^Nts*4!*b4orm^Fikaf$*hb|!-@l- zx0@4=gi?5-7zMxK~z|U?bg8!fG`M!Vd|3100VU%m<)r_ z#3LH4m-n4|Y51F7AOHZUGBb)(o|lUo5s9w(+tUlG+WPi#fV+=tI5Uss0cp y7Z88|1Rwwb2q=q)V=2jHB+p&&1^)&R(GLBhE`?~_M%@4a00{s|MNUMnLSTZOyE^Xx diff --git a/Resources/Textures/Structures/Power/Cables/lv_cable.rsi/lvcable_3.png b/Resources/Textures/Structures/Power/Cables/lv_cable.rsi/lvcable_3.png index aea0d4df9dea2e9e184c7a897127eac8e6f9681f..d07a9b7f8fccde3fdf3f79cdbcf83513a972d1e2 100644 GIT binary patch delta 82 zcmXRaoS@=s;pyTSQZeW4xsALG4jjyeUv6*u&+t=p!Gh0M1D~vN^t^O;X3qA#-N6hf aputz({4iVT6!qfUAaPGuKbLh*2~7Z9*d3_= delta 83 zcmXRcnxNum>FMGa64Cnh+(AwT10H6>%ekBXGrZ$ay|DaU{^Fdh+cRHgeR=W6hM55c bL`;9e#3syEx@Y6TJ0J;9S3j3^P62c`cT=2<(Rlg^K@lcGLn+CIJ!gdMH9<7FkKvn^VVpbm? Zh9x@eo7@gvtN@%pHxK{- delta 140 zcmV;70CWGx0i6Mm8Gi-<0047(dh`GQ0Axu-K~z|U?a{#vfFKM7(3-ecy9G1Q&Da7a z`v$|o3#K8)gZ_8wfi~?&h=_h~iw00@6;(yATWixkGrOGwU@dc8syZhP& u6MOVwkG+&~E|F4t{|ktSh={&PL=MmBZzZZGn;ZZD002ovP6b4+LSTXh`Z~q{ diff --git a/Resources/Textures/Structures/Power/Cables/lv_cable.rsi/lvcable_5.png b/Resources/Textures/Structures/Power/Cables/lv_cable.rsi/lvcable_5.png index bd189065302952aaf4915144710c404bf218afe3..41b5edf9e998d85b3ecd9bb79444ae4044670439 100644 GIT binary patch delta 202 zcmaFFc$;y8WIZzj1B1(wu46!ou{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstUx|bfKQ0) z|Ns9pGc)JToeLC@Yl;X2sVfQc3kHfaIB2c>0_1ZRctjR6Fz_7)VaDV6D^h@h9-c0a zAr}5`PZ@GCDDXI6+_v-o+|Z~iQ}mjgA3U1xRM9jugXfjjilc%Jkv+OhQxg~_m!vR+ sCQd%6aCpt5WxHlhO?b}?gtiP)iCWx!&%dU91sclW>FVdQ&MBb@0PMU;oB#j- delta 209 zcmV;?051RA0pbCW8Gi-<0047(dh`GQ0I5ktK~z|U?Ud08#2^en<8hm~g8#aOJ7l2j z;1)WFv*buYxPG*!wZawhzz@;rBOx&`05dZpLX7b+E`)IUAT#gwuMvS23<(%x3=u&} zi94=$@vIE|g+M9g)-pV^1d;{k9MoE;vv4^B*4k|r%t}m^ph`)2?^)KBH{LS>O#%_O z&xwfJq?0oB#1D;PA?JK}_T3rMDN6)?(FE_DmWrY%ilQjWIso7UIi@=fGeij;00000 LNkvXXu0mjfPH$ON diff --git a/Resources/Textures/Structures/Power/Cables/lv_cable.rsi/lvcable_6.png b/Resources/Textures/Structures/Power/Cables/lv_cable.rsi/lvcable_6.png index 7b7bfd270e5bd7a89224ee78b2d89f25001998fc..2f0af7a16d788b898c263735ebe0f2af328d38d7 100644 GIT binary patch delta 196 zcmX@dc$IO2WIZzj1B1(wu46!ou{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstUx|zfKQ0) z|Ns9pGc$p_=4DY;K#I8}$S?T+e}?O)c!6peI14-?iy0XB4ude`@%$AjKtVT87sn6_ z|F>O^Tnq|4hoAlXpK*N6j@~AYD&yssTx?4Y^Rt;u;Mmt%s~f<){e~Z>PqJ^3Lg@5{ oA0h_zA_4WL5B{+~s9bQ1adj^Hzopr0CfOE$^ZZW delta 189 zcmV;u07C!O0nP!C8Gi-<0047(dh`GQ0F_BZK~z|U?Um69z#t3-ZRuWd3wLlzH%m!D zP_fq7lu*e1h@jp}{D?CQ!!Wejr2Q$SYXtzDInNG|1wBe>jB)C{gBxHZE~O!aZgBum z?O%6*;PY2 r0W84MFlt9?NjvSHurJUJ;G8=FXy7s!2cTts00000NkvXXu0mjfGT~8! diff --git a/Resources/Textures/Structures/Power/Cables/lv_cable.rsi/lvcable_7.png b/Resources/Textures/Structures/Power/Cables/lv_cable.rsi/lvcable_7.png index 365817b8fc88904d9d5d65c64f821b8659642a4d..065cb686a665e5230e9ac96dc31dd80ced815fe8 100644 GIT binary patch delta 229 zcmZ3@^o?0_1ZRctjR6Fz_7)VaDV6D^h@h$(}Bb zAr}5`FP`RWFyL?rl>7hxe3RsDzDM= zfsL!VW^+wiGBeS(J9fs!x05T6)`U6CF^o0LnAhd-eTsI)U;SIZ!!F#fZ?I#3$G%_% VxA3B_usWc944$rjF6*2UngER>Rv7>Q delta 283 zcmV+$0p$Mn0jmO#8Gi-<0047(dh`GQ0P;yhK~z|U?UvyUgdhxs%jGs<1^>eq?7%?m z;1)WFv-DCE5;Q?6g}XE1CH^1^@3Rd&6flH{=)DK$Ty~zd_Hsc)Jd9r)fF5E2D5X>g z0p@weg3pWetP1=Ez`CwY+wja5P!*|Y*<}enwfXt&Y znR3%mRDo!I70-97-i9sANmT%?%&P%fiVe{6?@8lA!U8C{6?X;bp#d-es>0|Tsj1Fs hcc;;U-vR)@2Nc{fVYZVt8zTS!002ovPDHLkV1hQjd~N^$ diff --git a/Resources/Textures/Structures/Power/Cables/lv_cable.rsi/lvcable_8.png b/Resources/Textures/Structures/Power/Cables/lv_cable.rsi/lvcable_8.png index e5c1191df3c27cec3d4f619ac0957d9cf55b582c..bded844ed1d282d62e0388236b9572893c93f9a7 100644 GIT binary patch delta 178 zcmbQkc$jg5WIZzj1B1(wu46!ou{g-xiDBJ2nU_EgOS+@4BLl<6e(pbstUx|zfKQ0) z|Ns9pGc$p_=4DY;K#I8}$S?T+e}?O)c!6peI14-?iy0XB4ude`@%$AjKtU5v7sn6_ z|KtQE2Ddp(Y;Uq8Com|7@UR*fI57suY42vzID4cecHX{wM;P5i9S*Eu5=cm5V&Is_ Ve$Da7r4FD044$rjF6*2UngDD_HXQ%} delta 139 zcmX@iIEQh9WIY=L14D6D)fXU@?CIhd64Cnh;z7;>1{|yb%y+%FpWx$r!go{2FD>)r z$}I_Ac|YGja&_F#!mwfQC!Pi0|IOqyJ|22^Z^wyAZ~8hqZZ5nQwMX}VHe;x->8zWv roBu`z>q|@zUR!#T8)!U(nY)X+PMxH~d*X5IjQM!m{Kq7SCDYaP(#Hwin?;4Y`ZIpvr#zlqFxlOtSv5<(bRdbAoE e6c;pfax$>4XTS3!;mUlVNerH@elF{r5}E*&emU^~ delta 172 zcmV;d08{_W0lfi`8Gi-<0047(dh`GQ0E9_IK~z|U?bKZgfFKYA;5E9J-oi8Jg}jb8 zD-<@u=ocpn=6ewYomn3=(#SctTMKLL6l0W>(&pS#L$8bA1rXEUDuD8j0{Z;k`>xM_ zxd75>0p#?>VF7e_G42JI6&+p+=+CF28eE{mYk~E&>WyG!LL~^bfQCBf-pVE-A|j#> a5Rn-XS1KPV6Zg{q0000&$bi}G_CzMh;?cEz-X6`MI hF&_V3L_|d77asiQ6HG<`2k8I+002ovPDHLkV1f_XGtvM6 delta 146 zcmV;D0B!%A0j>d%B!3BTNLh0L04^f{04^f|c%?sf0001BNkl8uk>2kFv~01E&B07*qoM6N<$f(_t5 ASpWb4 diff --git a/Resources/Textures/Structures/Power/Cables/mv_cable.rsi/mvcable_1.png b/Resources/Textures/Structures/Power/Cables/mv_cable.rsi/mvcable_1.png index fdebed5fa92767023dc731a89eb894ad0c4755fa..bd958a82f3cd57790264660ba101bf7550980c9b 100644 GIT binary patch delta 158 zcmdnSxQlUuNGZx^prw85kH?(j9#r85lP9bN@+X1@buyJR*x382Ao@Fyrz3 z6)8YLe@_?3kO=p;R~PazC~&w2KD&SDfBBT&1lKz}_kyQ92|heoD?a3EagOv(J7)$a zfd&Q^jcz>-%WYHR66}A3DazJ1&V2f=amUZIR%{Fm;`@bX=4_WTY|o0G05qGy)78&q Iol`;+0FR3|Mg{Ih8)Gm|0Q+rc;X-TN6;KQr4qh6Q&b3Ez5z$DPXz@qS> zp3(TUphRTCwY6L4l{E@_+$*sAD4oF~-6YqDpggd?x|944$rjF6*2U FngE>2H!uJI diff --git a/Resources/Textures/Structures/Power/Cables/mv_cable.rsi/mvcable_10.png b/Resources/Textures/Structures/Power/Cables/mv_cable.rsi/mvcable_10.png index 17c40b2276177a68bf427a437a72c8baf6e68445..690f9cda8fa42a3481a1145b1cf66ef56c8e57a7 100644 GIT binary patch delta 194 zcmey#c#m;{NGZx^prw85kH?(j9#r85lP9bN@+X1@buyJR*x382Ao@Fyrz3 z6)8Z$Vow*xkO=p;lO4GZDDbdM-lu8*X$pVk=e1#qQ^ju0KGtQepe8Q6$qT4-TYK@r ztVc~#^ERw9Ym`_VT4&VneJ{nWyGE|=WCus9z@5d`nMb1Miqz)Ys?hiMqQbg#Zm@@O1TaS?83{1OQQ@NU;C_ delta 221 zcmV<303!e10r>%tB!3BTNLh0L04^f{04^f|c%?sf00021Nkl0_1ZRctjR6Fz_7)VaDV6D^h@h37#&F zAr}5`FB%Fp7;v}*a(v&v*}JK2=7!d2<)zW8pXWzuOjDC;-x3$_H7?+r`GR-S6Y7`~ zYndF=?ka1YWmsWQsQoN+R;jJHW9gd18=s$aJW^*W`11Dr|Ez+07l_z@m>H}5gxj&$ SN#HxsG6qjqKbLh*2~7YS?^7TE delta 282 zcmV+#0pIp>Ps zmSqXswh?0tC5?KJ!I}UQpcw$80%i)D0b=;2l=OZPz+C;$0Dsu#Aa>Olp4jFGKgTe~DWM4f);JZi delta 88 zcmazqpP&-VS>O>_%)p?h48n{ROYO@T7#K7?T^vIq4!^zV$jjisal~Q5?tiQWJ027o qbIsbq#b9x5vmf)M9)5-oTiG=ZvRPjJ@p=VN6N9I#pUXO@geCyn;2vK9 diff --git a/Resources/Textures/Structures/Power/Cables/mv_cable.rsi/mvcable_13.png b/Resources/Textures/Structures/Power/Cables/mv_cable.rsi/mvcable_13.png index 6f03458fd3a1f72580b6cecd9c0cc85db25360d1..a13a602d9bbb2135af4407f15083e6b5bcc4bb02 100644 GIT binary patch delta 223 zcmeBY`oK6rvYwfNfx%@-*D)Z)SRCZ;#IWw1%u67LCEd~2k%3`jKlh(RRv@1zz$e7@ z|NsA)nVECv&IJm{HAMu1)RhGJ1p~zy9JE$`0rEKuJR*x382Ao@Fyrz36)8Z$SWg$n z5DWjeeU5ww6gXJKfBc{CDy|(md0A(K`}3CFi#fa!Do8(G5petJ55*0^x$Os) zzwF*D$aL&>*OqBad;E60+H~xkde1NZ^MYq7nVrXdqNn))KYH8$IL3m QK${pmUHx3vIVCg!0Cn|Kq5uE@ delta 254 zcmVpyjh7GWRWtNaq>c+L!)q4*igtZ~8wW612jNv2rz5yyfmUlhpEbtg&jP*Y%(C(gM zSOujNlv3)Y272OzlyZ$7HL>g!#^*@9HGu{wA1gCkTWs|?y`wO)CEh|m20Sdg&;I}a=2)y(7OP;`k>KYS+RkunJ<4n?P|tGYvCBJFhIw()Yh73E z@hXZs|Cra|`T^gKDK$4^w|GuJaP;c+`##%$gfqT?$ O7(8A5T-G@yGywn*(^CKd delta 251 zcmV^_eS{asR-?J&IP`f1ctY&t??L{DF%bY8R5eMC}FMrIwP~; zQvzo*B>=YpZU%JWNcH#az~2DRcb zawfnoOH2Szf|)tS$lAOfZdQdZD?kOY-*OCxJ8-ywX|%Rmjo}&&^tvS?CL*(Mf{Og> zBKU!sITMkDtA)6hRLeo%*>j1MupKev)&I>B7Q>NBm1v^fnY5p jr@&gvmw+W;39!Z;A3wq%yGh4x00000NkvXXu0mjff*EZg delta 312 zcmV-80muG@0@DJJB!3BTNLh0L04^f{04^f|c%?sf00036NklDnJEj zQWK0Z-f=0V)mpQ09M^*Ax{mwiDWz%%t_L9Z!|n4tbA(}7 zAbXe%K&YSR(C3D3zoD!U_~>&%+?+{yF}WZB2?nJ`*`BHt5>54jtSTUSWH_!6M666N zIR|33en$M%NihhBzVA0Va#s9%yP?|wOLkvBNQ$lg8C8Iv0C)l)Q=z@3o#wLu0000< KMNUMnLSTYQ+J^A} diff --git a/Resources/Textures/Structures/Power/Cables/mv_cable.rsi/mvcable_2.png b/Resources/Textures/Structures/Power/Cables/mv_cable.rsi/mvcable_2.png index ce3ffea8a4abb7171dd26267b65f5052097dcf9d..ee8e0b5dc68b759d674c723b7938ec2a199004f1 100644 GIT binary patch delta 164 zcmdnRcz|(&NGZx^prw85kH?(j9#r85lP9bN@+X1@buyJR*x382Ao@Fyrz3 z6)8Z$P)`@fkO=p;7ah3{DDbdeyl`8M{Zy&wL-Ac}qy!T09otb9!psn}ymQ-axwZRi z_{+Xe>R8zj?vi1ZaA(h}Z->8drz~40WEo2g|G48%4da~}R`D&mI N44$rjF6*2UngCEHJOBUy delta 158 zcmV;P0Ac^Y0lEQ@B!3BTNLh0L04^f{04^f|c%?sf0001NNklESjL=XX)wU7*a9k?KwkU1_K`EgDY|l%Qti{a9-5+efQecQqxrK&VBjr>d#UZ c1{AR2Ez?^aw$ikgoFyP}Pgg&ebxsLQ09)7|3IG5A delta 101 zcmXSFW}KiB&spFRSE?UA?y5p;9E=bVR)z4*}Q$iB})pQ-J diff --git a/Resources/Textures/Structures/Power/Cables/mv_cable.rsi/mvcable_4.png b/Resources/Textures/Structures/Power/Cables/mv_cable.rsi/mvcable_4.png index fb782f3cad99aa84b219529a6198f8d6b070c216..137138e8e33a17f7805f5f69d428883ba95d2a32 100644 GIT binary patch delta 147 zcmdnYxSnx>NGZx^prw85kH?(j9#r85lP9bN@+X1@buyJR*x382Ao@Fyrz3 z6)8YL7f%<*kO=p;=QnaOC~&w2zRv&p|GQJA^WqBv2W=HTwO!$1_%K(s>-w^)(>rh6 yeLW%C`E%4K$8Q}g{vGX delta 151 zcmV;I0BHZO0kZ*+B!3BTNLh0L04^f{04^f|c%?sf0001GNklx|L+pP5TBY7004itJvFq}rh6jdQG4&xIjVX)e_u^L z4iB|fH?zw=cmF29P)a$~x0VCMv&YS2opWCP0ssJT02h!N0}%Hb8Xo`v002ovPDHLk FV1nmeIpqKV diff --git a/Resources/Textures/Structures/Power/Cables/mv_cable.rsi/mvcable_5.png b/Resources/Textures/Structures/Power/Cables/mv_cable.rsi/mvcable_5.png index 6e0ffe9db5c5472e508c3a8a4c9ad6f71edfa53c..96065f62da11dfff882945b5a4f662ab8bdc1568 100644 GIT binary patch delta 194 zcmaFOc#m;{NGZx^prw85kH?(j9#r85lP9bN@+X1@buyJR*x382Ao@Fyrz3 z6)8Z$Vow*xkO=p;SG~CoDDbdcxMBP>C{DxreAZT#2W}b32ezHL{UegMN4{#6ndS3U zr&HVeZs+hn5Q=2hD(GJIaJT4^wwWuZ2z^uA@r7YMhjn7f>upOO8(B|KDq6ccZnEF< tLrgP1ru8JI9b)cLveyOL*RWs7iZSY;!Hqec(g%Qi22WQ%mvv4FO#rF7OiBO% delta 207 zcmV;=05JdF0qX&fB!3BTNLh0L04^f{04^f|c%?sf0001;Nkl)JcAk2c)MB_#LB_4cV!U-rZEw2@HK#XyBPitMAb7ZX*duNO>&G-X- z3!1mH{c{>_~#EB3>=QB7%n$uQPYX zw`I}>YuI#_{@J0Ji6002ov JPDHLkV1jTcPoMw* diff --git a/Resources/Textures/Structures/Power/Cables/mv_cable.rsi/mvcable_6.png b/Resources/Textures/Structures/Power/Cables/mv_cable.rsi/mvcable_6.png index 2d855fe035ebba6d3358b753d65aa93597a4e8f4..83b583a15d13bc9adf0230dddda07af8675c75e1 100644 GIT binary patch delta 180 zcmX@gc!6<(NGZx^prw85kH?(j9#r85lP9bN@+X1@buyJR*x382Ao@Fyrz3 z6)8Z$R8JSjkO=p;7p?gYDDW^}*s|SMZ_49oO+H5tiLGF;=lmF%!>XvX=yB|g_KG-* zvR3g7=d(P^_ibP@-N9S>eWCEbCk3Ip-2R`h6vRBgrK|Mk*uH5eF8;S`{JKw}=#S+7 g2G)oNUzn6Q-(4|3$8p!w0cazGr>mdKI;Vst01%5uo&W#< delta 169 zcmcb>c$9I1NL zbk;-Wq!8;81&h8#``g$`{`UhlGB6k%%jV8ndwph5mKLLn!J_Fx7eDx2$0_1ZRctjR6Fz_7)VaDV6D^h@hNuDl_ zAr}5`FCOGNV8Fo~u=fA|^PBaUv-kAGR>t@_%8RUt=+f{yW$@yNNyd@rgzSYjD;roC zql?Z+%vhyzxxsgvqk;9KWb<+d!Z}y{CWMGu zYoe5*wLMbG=KU}7a3BFBKu0f#DOyfI7c3{>y{E<)Vy%t;>wf~s0_U8B5aMGQV2tf9 z_>{y{2{H+2Qn1dP*=B1BBvM`2!PCzPW#W)&Ng-;r>(UwElv^@TMhObl@-_ll{}QxT zs;5hkr=$$p>jm5Fm-j}rWj4G5K8?Ut@ZabKBd^DSWSBs29z+R{z*i7>15aOBg1R9I RDgXcg07*qoLGZx^prw85kH?(j9#r85lP9bN@+X1@buyJR*x382Ao@Fyrz3 z6)8YLFHaZ8kO=p;=Pz;|FyL?voSa*#AiG`h5rZzLYGZZXygCgnhKAQROK+v_{kAu( zc+slpzKnRWoz=@`rngTe~DWM4f DW)e3n delta 146 zcmV;D0B!%Z0j>d%B!3BTNLh0L04^f{04^f|c%?sf0001BNkl0M21Z~eau2Lba!2mk>5UEDR8+4L>vJiPYar+Z2%%l&EG-lk}+ zjaq9wnN1>c^r@;o^>qG|6L@m3tMt1Q004jsQ=u9~23{y<01E&B07*qoM6N<$f?V=D AApigX diff --git a/Resources/Textures/Structures/Power/Cables/mv_cable.rsi/mvcable_9.png b/Resources/Textures/Structures/Power/Cables/mv_cable.rsi/mvcable_9.png index 2b988d3ffe696ac0afff4d99cfd6ad7ed5307284..66273438415da39292cf27c5794fc575fbc55b94 100644 GIT binary patch delta 182 zcmX@bc!_a>NGZx^prw85kH?(j9#r85lP9bN@+X1@buyJR*x382Ao@Fyrz3 z6)8Z$bWaz@kO=p;7cX)(DDbdexOqR%e#`l-YTZIr0Y$wJ=1te+2w!iqT5iV9U*EQ# zO`r9J+b1%1|3Pt{?iKg{EN)zJo!^stdxEfRT#cF73w>{)iDsc&tv5$ia+zK{xV&in gkJSM{OBi+tyxnlc+RsFVdQ&MBb@0P$}|TL1t6 delta 174 zcmcb_c#3g?NE*f>P!7QMbBBvv#l^W<^i;s a;fINJ!wW6-WUu#uAg-sYpUXO@geCywOh$$P From f2972318d713e929e4c3699e4594d835912087b6 Mon Sep 17 00:00:00 2001 From: Boaz1111 <149967078+Boaz1111@users.noreply.github.com> Date: Mon, 9 Sep 2024 21:15:32 +0200 Subject: [PATCH 015/192] pacifists can use grappling guns (#32014) pacifist can use --- .../Entities/Objects/Weapons/Guns/Launchers/launchers.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml index 63029ffba9..4c48ec1f20 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Launchers/launchers.yml @@ -273,6 +273,7 @@ unshaded: True: { state: base-unshaded } False: { state: base-unshaded-off } + - type: PacifismAllowedGun # Admeme - type: entity From 09d9843be5a928e1a4f1288d4f127c6770b2d9d3 Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 9 Sep 2024 19:16:38 +0000 Subject: [PATCH 016/192] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 2a08d8ae65..09afab30d7 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: Doomsdrayk - changes: - - message: Disposal units no longer protect their contents from nuclear explosions. - type: Fix - id: 6823 - time: '2024-06-26T14:25:43.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/29438 - author: Tayrtahn changes: - message: Pills and pill canisters no longer have two labels. @@ -3869,3 +3862,10 @@ id: 7322 time: '2024-09-09T18:10:28.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/31496 +- author: Boaz1111 + changes: + - message: Pacifists can now use grapple guns. + type: Tweak + id: 7323 + time: '2024-09-09T19:15:32.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/32014 From a6d8c466f3cf36735d0bc37fde028cead9287770 Mon Sep 17 00:00:00 2001 From: lzk <124214523+lzk228@users.noreply.github.com> Date: Mon, 9 Sep 2024 21:18:00 +0200 Subject: [PATCH 017/192] Allow all bots to be used for chameleon projector (#32006) Allow all bots to use for chameleon projector --- Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml | 2 ++ .../Entities/Objects/Devices/chameleon_projector.yml | 1 + Resources/Prototypes/tags.yml | 3 +++ 3 files changed, 6 insertions(+) diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml index eae5114883..9aff9c59af 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml @@ -66,6 +66,7 @@ - type: Tag tags: - DoorBumpOpener + - Bot - type: MobState allowedStates: - Alive @@ -392,6 +393,7 @@ tags: - DoorBumpOpener - FootstepSound + - Bot - type: ActiveRadio channels: - Binary diff --git a/Resources/Prototypes/Entities/Objects/Devices/chameleon_projector.yml b/Resources/Prototypes/Entities/Objects/Devices/chameleon_projector.yml index 41347e35c4..99d58c6a3a 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/chameleon_projector.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/chameleon_projector.yml @@ -12,6 +12,7 @@ components: - Anchorable - Item + - Bot # for funny bot moments blacklist: components: - ChameleonDisguise # no becoming kleiner diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index b8ee4d4efd..cfe1ecfdea 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -204,6 +204,9 @@ - type: Tag id: BorgServiceTorso +- type: Tag + id: Bot + - type: Tag id: BotanyHatchet From fae7622182c34a42ccb5909c444b2ecce0370eae Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 9 Sep 2024 19:19:06 +0000 Subject: [PATCH 018/192] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 09afab30d7..5adebf87ba 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: Tayrtahn - changes: - - message: Pills and pill canisters no longer have two labels. - type: Fix - id: 6824 - time: '2024-06-27T02:08:57.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/29499 - author: PJB3005 changes: - message: You can no longer place items onto tabletop games. The feature could @@ -3869,3 +3862,10 @@ id: 7323 time: '2024-09-09T19:15:32.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/32014 +- author: lzk228 + changes: + - message: All bots are available for disguise with the Chameleon Ppotlight + type: Tweak + id: 7324 + time: '2024-09-09T19:18:01.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/32006 From 2f7ad782c5cb1544b584d92ecc4ba8614e538e18 Mon Sep 17 00:00:00 2001 From: DieselMohawk Date: Mon, 9 Sep 2024 14:19:16 -0500 Subject: [PATCH 019/192] Trooper Uniform and Hat (#31997) * Adds entities, sprites, and loadout accessibility * Fixing Uniform file issues --- .../Entities/Clothing/Head/hats.yml | 15 +++++++++ .../Entities/Clothing/Uniforms/jumpsuits.yml | 11 +++++++ .../Jobs/Security/security_officer.yml | 10 ++++++ .../equipped-HELMET.png | Bin 0 -> 344 bytes .../Hats/security_trooper_hat.rsi/icon.png | Bin 0 -> 256 bytes .../security_trooper_hat.rsi/inhand-left.png | Bin 0 -> 351 bytes .../security_trooper_hat.rsi/inhand-right.png | Bin 0 -> 355 bytes .../Hats/security_trooper_hat.rsi/meta.json | 26 +++++++++++++++ .../equipped-INNERCLOTHING-monkey.png | Bin 0 -> 964 bytes .../equipped-INNERCLOTHING.png | Bin 0 -> 1205 bytes .../Jumpsuit/security_trooper.rsi/icon.png | Bin 0 -> 514 bytes .../security_trooper.rsi/inhand-left.png | Bin 0 -> 555 bytes .../security_trooper.rsi/inhand-right.png | Bin 0 -> 561 bytes .../Jumpsuit/security_trooper.rsi/meta.json | 30 ++++++++++++++++++ 14 files changed, 92 insertions(+) create mode 100644 Resources/Textures/Clothing/Head/Hats/security_trooper_hat.rsi/equipped-HELMET.png create mode 100644 Resources/Textures/Clothing/Head/Hats/security_trooper_hat.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Head/Hats/security_trooper_hat.rsi/inhand-left.png create mode 100644 Resources/Textures/Clothing/Head/Hats/security_trooper_hat.rsi/inhand-right.png create mode 100644 Resources/Textures/Clothing/Head/Hats/security_trooper_hat.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Uniforms/Jumpsuit/security_trooper.rsi/equipped-INNERCLOTHING-monkey.png create mode 100644 Resources/Textures/Clothing/Uniforms/Jumpsuit/security_trooper.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/Clothing/Uniforms/Jumpsuit/security_trooper.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Uniforms/Jumpsuit/security_trooper.rsi/inhand-left.png create mode 100644 Resources/Textures/Clothing/Uniforms/Jumpsuit/security_trooper.rsi/inhand-right.png create mode 100644 Resources/Textures/Clothing/Uniforms/Jumpsuit/security_trooper.rsi/meta.json diff --git a/Resources/Prototypes/Entities/Clothing/Head/hats.yml b/Resources/Prototypes/Entities/Clothing/Head/hats.yml index 02275d5a2f..c2e921bcbf 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/hats.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/hats.yml @@ -58,6 +58,21 @@ - HamsterWearable - WhitelistChameleon +- type: entity + parent: ClothingHeadBase + id: ClothingHeadHatSecurityTrooper + name: trooper hat + description: A campaign hat for the Nanotrasen Troopers, comes with a case too, but you lost it. + components: + - type: Sprite + sprite: Clothing/Head/Hats/security_trooper_hat.rsi + - type: Clothing + sprite: Clothing/Head/Hats/security_trooper_hat.rsi + - type: Tag + tags: + - ClothMade + - WhitelistChameleon + - type: entity parent: ClothingHeadBase id: ClothingHeadHatCasa diff --git a/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml b/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml index 8a265c5811..a3ffc5952a 100644 --- a/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml +++ b/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml @@ -634,6 +634,17 @@ - type: Clothing sprite: Clothing/Uniforms/Jumpsuit/security_grey.rsi +- type: entity + parent: [ClothingUniformBase, BaseRestrictedContraband] + id: ClothingUniformSecurityTrooper + name: trooper uniform + description: A formal uniform issued to the Nanotrasen Troopers, usually it comes with a car. + components: + - type: Sprite + sprite: Clothing/Uniforms/Jumpsuit/security_trooper.rsi + - type: Clothing + sprite: Clothing/Uniforms/Jumpsuit/security_trooper.rsi + - type: entity parent: [ClothingUniformBase, BaseRestrictedContraband] id: ClothingUniformJumpsuitWarden diff --git a/Resources/Prototypes/Loadouts/Jobs/Security/security_officer.yml b/Resources/Prototypes/Loadouts/Jobs/Security/security_officer.yml index e479d822dd..6cc0dedf72 100644 --- a/Resources/Prototypes/Loadouts/Jobs/Security/security_officer.yml +++ b/Resources/Prototypes/Loadouts/Jobs/Security/security_officer.yml @@ -39,6 +39,11 @@ equipment: head: ClothingHeadHatBeretSecurity +- type: loadout + id: TrooperHat + equipment: + head: ClothingHeadHatSecurityTrooper + # Jumpsuit - type: loadout id: SecurityJumpsuit @@ -60,6 +65,11 @@ equipment: jumpsuit: ClothingUniformJumpskirtSecGrey +- type: loadout + id: TrooperUniform + equipment: + jumpsuit: ClothingUniformSecurityTrooper + - type: loadout id: SeniorOfficerJumpsuit effects: diff --git a/Resources/Textures/Clothing/Head/Hats/security_trooper_hat.rsi/equipped-HELMET.png b/Resources/Textures/Clothing/Head/Hats/security_trooper_hat.rsi/equipped-HELMET.png new file mode 100644 index 0000000000000000000000000000000000000000..e2415d48d464fa46bf005e220f0346632115d31d GIT binary patch literal 344 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zg*;sxLn`LH zz2%tIVjyztW4;&jM281!t0t}4T)Angw9v9AK5p3Ze7{!Zk4&` zCoM^=JHfW&RJ``t`(N&E$+fnAe#NABPVxS@$;H!DdLOTtvw7D#>o@Z^sMgOsZ2O53 z=r=HEuwSsFE^M>=gA;FNOQ~E-eU&*&ZWD)l`ulhM6Z+O)yng21U3mrB_{HmI?yWq1 jWzEIQ@-UqY4YzBVH*IK*{HZ%@GDy(V)z4*}Q$iB}4Uv`0 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Head/Hats/security_trooper_hat.rsi/icon.png b/Resources/Textures/Clothing/Head/Hats/security_trooper_hat.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ed64010e818a6075c1e46a61ce63d7001ac0c68c GIT binary patch literal 256 zcmV+b0ssDqP)Px#x=BPqR9J=W(lN@zFbsy_x1})(hJpyBC-Ia$hv)%H&zL=vZ_pzILdS$;@IU=& zw-OKSqG$WSmIM+QV~qK+L(ZoVLUPVgRTbknvMdWR#;jV$+~%qZfU4r0BZQE?GJy9U zRYgR&-tLG9s*3kMr~kecv~8P2WXr=aP}lXA=Xs{O#nkE%R0YF)n0Q~27>$(CkP1Bb9zRx;LV~jDzeAOS`w=F^VA&e&g000044)QC+?Lqk!Dy>@OBewK+|?cU%xW>X`fdti{y-`B%k0&9a%4 zW5)?J3IxoIHm9YXT^x39=hHc{S+&p4t)4J*>y$}BUi0_muAEw&S9^c;`|8+Tob3Hd z$B$l*3iX<(a#TXp>4J%`)bYZr^>XbCdE2im7H3z@N}paiujqZ`nkkE-UjMGK%lvI75a%&4{Fra^sA7A?pIdt#{fJdFpI7+Dcj@8mxzfkIt?iiN%Jwqb s0LAYyPKuY=f1AxCKEL)+1w+J3*01il44zy*j(wIy@$iEdek!ryk2_x^bx-`sv) z2xt-rgorq4D7FMG4(r)?L}K-oT~#Y1-^6h&w0Qnx&gFY*ckDKNkGofWHRsUEu!W}Y z4+peezAjL#`D?~=-^WKKy1&O+rZ1hM;(0AfGTFp;^0C62iht|-#Ug~0b&g5IuDP1j zqoVnI&Gso?=PExR3HCZ=`Tx%B_p?k*G97xSzFg|boVEGdy145fzG#=)vgcjB_5Tv1 zl)~RS&S|L^f7aMt5o3lpk>SDm48id4+bresWy8OJD=93^-+k!fG$7^sU%;{{Hs9g& vj$PZ&R&OhfxqEw^=l%J=+-oZsetfrMtSZW7_$IvVI>;PPS3j3^P6Px&en~_@RCt{2nlWhGSQy8DuFrDBAtKvaoFzU@>21xSEtCdr;RxC8Zt2o^$ky#R zC>=^~@0Q`{(y3zzC7W=_8sc|n?K`gTw-`NtdjIeJ z-+L11d!SG#6bgkxq4+w<$ppKuD~7`%!{Lzg^Yi3h$8kilSfp4i;(4A_pIP-M$*P|^ zcz1VKR4NsMAfQkvaCCIUU@*Wi4EFZ+h@uEx*XeXR93LOg-GoW~e!rjmx4OETSwD4P zy<8UGK7Nd*X-V7R;UNbH2g!99hWz>F4S#(3GIs-}>36$bN~O}B^iu`a%Vl9}8m%y- z_22>P>+4vS#pc6DG|x`)eV=x_jeU7Z95+uBX6eTU+(rLhnxM~HTeQNEN^ZQ*`Y%6? zT~~5BT4BiNt*x|UOT{ex(b>Dlc zSd_l>GPP}66bc1Or4mn{J?GWS7j(N_q9~%(YAx&yFsfgzR=K{uPTJz@Ec&TeK#be# zVObXWe4gKb`;~k?k7Zf7y`F4WnTU0&)hecGQmt0U+GUY8ASMWcvEOAgFa2+1g6rk7 zxTw|8f!>JYx~_9kt5FBBh*#h&{m~^KY;KAy`cekOOxbV3G|ensWnxm_wr$aDHgnAk zeMxVD-i*CAt9{08W2T0d- zh2uDx@{#_A@4BwAEGsEUG#U*CgTcZ}V$(1TLu_wv1Glva-}j{tNJ!TOocHem`0L4& zq^;3th-I4)4}N1~1Au$4U-KQ{N%kX^bX=zgXoVrc&JJs9YXEFMe8kT`?kvTGx9?6w z^XwFWtE(&YlM_bslBo_!6-I1LqaQ`|qbL!KX`Y>87{=#Cge(dCA(gEdUCI0=llVva-U{XU`YD4c@*x5wBjp z;O6FrAP9(}2q5#>giJTtwk=H40-r(VOrhC2K*tq~**D*~qS(P$mJ|GdZ%)!S@Ga)O|2Fz1@Ufg98GCu>RwJ&QG m{M-5pg+ifFC=`nS1AhbNsO^&c^HpE~0000Px(Z%IT!RCt{2nmtV8NEFBaS-Bzhi zSDda&bsYuSiUzs`Av$;4q0?>!ks>)82?g!SiJb_`#8%E%aJCYY56|QS-QN79D9m_f z{?9LO2FvdO3LBn;?-PwUC zipb@16GcH-eUD0|LaaYF0(4zRtyaTPvl(f(+t4&^;5bdw&~CSJ)NDp-wHkC?AGdTU zM(OwNe_H*K4lqp<>2#XP@N_y2(=@5(&Qt%VQ5O|Oi71LfEKWP`IrPVFfkAj-n9XMU z+Vdh9-ji&%kr5E2TCL*t_7;L5U~zE~?|=ObfBx}19v&WGSr#0}p*AF}ezjV~%E}7v z?(Y2lV4DP@hn0h5(!E|=^V{uq8%s+|emiq>Gt~#6VfqUT3$Se)wrzvwdGI`sZnsON zPqhUAz_P5q?|I_geDH4?h_---Wmzx`qpwd81ZpElv2D9gKaogK>r+Pn0H~@uvv40q zx7!`4-`h_Du>*z)(HijFOcVh>0>lm&cHm5M5Iv_p(IKcL5N+JO?n^cDU z7xWnn27|$1Fc=I5W+5!Z6SCQ?D~h83GE@)*oSvRW0Jt>kQQ`uK z?C$Qmy>?iZMO>ReTp_aYBD%0OfKS03gdUip3)FniRN&LZMF=0A76f006jt z{hG)LL~n$o&z}+JIK(*)dZ~nZy$)HHA6E$P z*%gb$h~^PFz%)&)uCDg=X_^L66p2Kqh4-uX+C=&TO(iiBtQVLi)2>M%`kyUH(vzYi zj^q031@^YLX8Ig(a&hVQ)+7XR9ET`pN$dcQPx$yh%hsR9J=Wls#+PP!xtA*+n0CiIq|^2o0HpcTXL)l_IHI{(y&UojjEeC6lLa z9s-)X1w-lPv6Fv-AznO~px8!WEXgRhLt=r`K<*8L)YR0xbu<;R z@B1RpbMicAGMQA*cDr3+7zT!6FdmPUYBpqrK@bSnb#WXA&+`DpetDjU<2bmkOArJ? z#ekICo^6W{=jUuT8+2W-@`J&Ee!pMEMN!adwYV7$xm+%#YCk)Ho^6X$UFT*vJZKK^ z>-V37Sbxx+>N-8!mYT$~1}>LN?Yby9*8V@x+2>CHj7Fns9cvobMe%YI04Sq~TOpWE zr%&#OVMrK;bUGbwg`kWgnX>W*;yBjIC?ZW$k|cRjlOzdgno>p)aU4tE1nFBKTU4dF zl7ZJk+JNu-)mOcL4ZiOm#E*3{ypt8qW-|ch^EsAfVVWjizkTQD#SgM9W4qn5+wD|( z0}8+5FGok>eWStOlangfY&I#&vWh=079@9fT&>sAb)_e;r`>J?R3|n~6U(yhHx~=l za`FbQ)@!Y2+hVm^Rk1`os9Bp#uhF7F~b6Q={vS_i_HS(e`4l z6Rl0&o962{J+dg<_g=W|p?o%wI{q9TJ~sU#KbWfNbtP){+q!kFE3(k{Qdj+ zch6hp&tCk#A$8IOan|&E?~8Z-`^Vhyu;9eZ=M%+QPpkY?ue>c|+n{rLPwJ$C=Q58! zN;ItIf6w@$Z1)|@<3^q*Hsvf|ojP}W?@4Qg(?$ z7&vuyRj=85)_-iL&2~*;-jK7{`}_AzrPVRJtPkw6)w|2E=Jw-DybL+F9|!S0*qIFE r>}5H)%~tOzgAPcD;fh>$N3VP67C+Ye(#BVSvCrV?>gTe~DWM4f?Cc1C literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Uniforms/Jumpsuit/security_trooper.rsi/inhand-right.png b/Resources/Textures/Clothing/Uniforms/Jumpsuit/security_trooper.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..7a4841f09b6cb13c070f9eb60f2830b4150d48ea GIT binary patch literal 561 zcmV-10?z%3P)Px$>q$gGRCt{2*|BQdP#DGWzX}faV&Y^71fjtiI(v{8`x%TnmF~<&^tGq4WW| zc}UP&Iu*ZzU!se~OiCQQ*vOdMp*V!pa%FLQYs&e77hO2_@<~YG10o_KA|fIpA|g`P za5ywk6q#Mu>*l?@7DbV%o43m=TS24I$oRfb7>2*C`M%F+G&<;FszkV#@YZb zW;22yAP52gv;8GWVuB#xVm7Olmn6wk7GSn}9GX|gvk`KAc4oRKCuBuI=jsZ8$z;NK zJO*HXd&_qH=HcOwd)m(1$I271iDR;&;N0_=PNx9eeEs&ce(rf>MZqSH|4H6HRtAu! zskez^?u}tE7yxkn?kxa$o^x*un>Z#-(@J;CcHTbL-T`TvdRecxb1m!j4nC~yyfW4X z@LZnf^!t7CJU`03=d4T-pxf=5Mx#Ni)uP#K^8Uj|zI^_~YPDjyT(VxT$+E2Sezx<< zSR25b(^K=~@)Cefr^8~gpxtgWpU(k!eRs$A$H&V1+0H9tZ2<7=^HsK1=W}H{PeepS zL_|bHL_`kbqOEnUaxdVjt#z&P09>`Tu2uSL*=1YnTBRqzWn1f7r2)8XYhA1S4sg}h zx>l Date: Mon, 9 Sep 2024 19:20:22 +0000 Subject: [PATCH 020/192] Automatic changelog update --- Resources/Changelog/Changelog.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 5adebf87ba..72228a76de 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,12 +1,4 @@ Entries: -- author: PJB3005 - changes: - - message: You can no longer place items onto tabletop games. The feature could - be easily abused to crash the server. - type: Remove - id: 6825 - time: '2024-06-27T14:57:55.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/29513 - author: KonstantinAngelov changes: - message: Chef's Cookbook has a more IC name. @@ -3869,3 +3861,10 @@ id: 7324 time: '2024-09-09T19:18:01.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/32006 +- author: DieselMohawk + changes: + - message: Added Security Trooper Uniform + type: Add + id: 7325 + time: '2024-09-09T19:19:16.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/31997 From 7c99b5c10b1eb34afe6524b827b51203e7c2a31b Mon Sep 17 00:00:00 2001 From: qwerltaz <69696513+qwerltaz@users.noreply.github.com> Date: Mon, 9 Sep 2024 21:22:41 +0200 Subject: [PATCH 021/192] fix dragon spawn location and round end summary (#31890) * spawn dragon rule at station edge * 2 * stuff * fix round end summary not showing * no invalid euid --- .../Dragon/Components/DragonRuleComponent.cs | 7 --- .../Rules/Components/DragonRuleComponent.cs | 4 ++ .../GameTicking/Rules/DragonRuleSystem.cs | 52 +++++++++++++++++++ Resources/Locale/en-US/dragon/dragon.ftl | 2 +- Resources/Prototypes/GameRules/events.yml | 7 +-- 5 files changed, 61 insertions(+), 11 deletions(-) delete mode 100644 Content.Server/Dragon/Components/DragonRuleComponent.cs create mode 100644 Content.Server/GameTicking/Rules/Components/DragonRuleComponent.cs create mode 100644 Content.Server/GameTicking/Rules/DragonRuleSystem.cs diff --git a/Content.Server/Dragon/Components/DragonRuleComponent.cs b/Content.Server/Dragon/Components/DragonRuleComponent.cs deleted file mode 100644 index a87232bebc..0000000000 --- a/Content.Server/Dragon/Components/DragonRuleComponent.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Content.Server.Dragon; - -[RegisterComponent] -public sealed partial class DragonRuleComponent : Component -{ - -} diff --git a/Content.Server/GameTicking/Rules/Components/DragonRuleComponent.cs b/Content.Server/GameTicking/Rules/Components/DragonRuleComponent.cs new file mode 100644 index 0000000000..e3fab85f2d --- /dev/null +++ b/Content.Server/GameTicking/Rules/Components/DragonRuleComponent.cs @@ -0,0 +1,4 @@ +namespace Content.Server.GameTicking.Rules.Components; + +[RegisterComponent] +public sealed partial class DragonRuleComponent : Component; diff --git a/Content.Server/GameTicking/Rules/DragonRuleSystem.cs b/Content.Server/GameTicking/Rules/DragonRuleSystem.cs new file mode 100644 index 0000000000..96021e6123 --- /dev/null +++ b/Content.Server/GameTicking/Rules/DragonRuleSystem.cs @@ -0,0 +1,52 @@ +using Content.Server.Antag; +using Content.Server.GameTicking.Rules.Components; +using Content.Server.Station.Components; +using Content.Server.Station.Systems; +using Content.Shared.Localizations; +using Robust.Server.GameObjects; + +namespace Content.Server.GameTicking.Rules; + +public sealed class DragonRuleSystem : GameRuleSystem +{ + [Dependency] private readonly TransformSystem _transform = default!; + [Dependency] private readonly AntagSelectionSystem _antag = default!; + [Dependency] private readonly StationSystem _station = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(AfterAntagEntitySelected); + } + + private void AfterAntagEntitySelected(Entity ent, ref AfterAntagEntitySelectedEvent args) + { + _antag.SendBriefing(args.EntityUid, MakeBriefing(args.EntityUid), null, null); + } + + private string MakeBriefing(EntityUid dragon) + { + var direction = string.Empty; + + var dragonXform = Transform(dragon); + + var station = _station.GetStationInMap(dragonXform.MapID); + EntityUid? stationGrid = null; + if (TryComp(station, out var stationData)) + stationGrid = _station.GetLargestGrid(stationData); + + if (stationGrid is not null) + { + var stationPosition = _transform.GetWorldPosition((EntityUid)stationGrid); + var dragonPosition = _transform.GetWorldPosition(dragon); + + var vectorToStation = stationPosition - dragonPosition; + direction = ContentLocalizationManager.FormatDirection(vectorToStation.GetDir()); + } + + var briefing = Loc.GetString("dragon-role-briefing", ("direction", direction)); + + return briefing; + } +} diff --git a/Resources/Locale/en-US/dragon/dragon.ftl b/Resources/Locale/en-US/dragon/dragon.ftl index 11e8a58620..380a24ccf8 100644 --- a/Resources/Locale/en-US/dragon/dragon.ftl +++ b/Resources/Locale/en-US/dragon/dragon.ftl @@ -2,4 +2,4 @@ dragon-round-end-agent-name = dragon objective-issuer-dragon = [color=#7567b6]Space Dragon[/color] -dragon-role-briefing = Summon 3 carp rifts and take over this quadrant! +dragon-role-briefing = Summon 3 carp rifts and take over this quadrant! The station is located {$direction}. diff --git a/Resources/Prototypes/GameRules/events.yml b/Resources/Prototypes/GameRules/events.yml index 7b269406b7..8a56cfc257 100644 --- a/Resources/Prototypes/GameRules/events.yml +++ b/Resources/Prototypes/GameRules/events.yml @@ -157,9 +157,12 @@ earliestStart: 40 reoccurrenceDelay: 20 minimumPlayers: 20 - - type: AntagRandomSpawn + duration: null + - type: SpaceSpawnRule + spawnDistance: 0 - type: AntagSpawner prototype: MobDragon + - type: DragonRule - type: AntagObjectives objectives: - CarpRiftsObjective @@ -174,8 +177,6 @@ mindComponents: - type: DragonRole prototype: Dragon - - type: RoleBriefing - briefing: dragon-role-briefing - type: entity parent: BaseGameRule From 6e911bff034d856c7a29fbeb541dee8d245f5ec3 Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 9 Sep 2024 19:23:47 +0000 Subject: [PATCH 022/192] Automatic changelog update --- Resources/Changelog/Changelog.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 72228a76de..17c4b05392 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: KonstantinAngelov - changes: - - message: Chef's Cookbook has a more IC name. - type: Tweak - id: 6826 - time: '2024-06-27T15:11:33.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/29467 - author: metalgearsloth changes: - message: Ushanka no longer applies an accent to your name. @@ -3868,3 +3861,12 @@ id: 7325 time: '2024-09-09T19:19:16.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/31997 +- author: qwerltaz + changes: + - message: Dragon ghost role now spawns outside the station. + type: Tweak + - message: Dragon ghost role now spawns where advertised! + type: Fix + id: 7326 + time: '2024-09-09T19:22:41.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/31890 From 7929f897c9c48dcbf61a5982050dc810fb561eed Mon Sep 17 00:00:00 2001 From: godisdeadLOL <169250097+godisdeadLOL@users.noreply.github.com> Date: Mon, 9 Sep 2024 22:23:57 +0300 Subject: [PATCH 023/192] Surveillance camera's red light fixes (#31831) several surv camera related fixes Co-authored-by: YourUsername --- .../SurveillanceCameraMonitorSystem.cs | 7 ++++++ .../Systems/SurveillanceCameraSystem.cs | 23 +++++++++++++++---- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraMonitorSystem.cs b/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraMonitorSystem.cs index 5e50740ae6..21e71c4316 100644 --- a/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraMonitorSystem.cs +++ b/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraMonitorSystem.cs @@ -21,6 +21,7 @@ public sealed class SurveillanceCameraMonitorSystem : EntitySystem { SubscribeLocalEvent(OnSurveillanceCameraDeactivate); SubscribeLocalEvent(OnPowerChanged); + SubscribeLocalEvent(OnShutdown); SubscribeLocalEvent(OnPacketReceived); SubscribeLocalEvent(OnComponentStartup); SubscribeLocalEvent(OnToggleInterface); @@ -196,6 +197,12 @@ public sealed class SurveillanceCameraMonitorSystem : EntitySystem } } + private void OnShutdown(EntityUid uid, SurveillanceCameraMonitorComponent component, ComponentShutdown args) + { + RemoveActiveCamera(uid, component); + } + + private void OnToggleInterface(EntityUid uid, SurveillanceCameraMonitorComponent component, AfterActivatableUIOpenEvent args) { diff --git a/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraSystem.cs b/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraSystem.cs index 9d1dd00590..f1d1b58bf5 100644 --- a/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraSystem.cs +++ b/Content.Server/SurveillanceCamera/Systems/SurveillanceCameraSystem.cs @@ -321,6 +321,13 @@ public sealed class SurveillanceCameraSystem : EntitySystem { AddActiveViewer(camera, player, monitor, component); } + + // Add monitor without viewers + if (players.Count == 0 && monitor != null) + { + component.ActiveMonitors.Add(monitor.Value); + UpdateVisuals(camera, component); + } } // Switch the set of active viewers from one camera to another. @@ -349,13 +356,12 @@ public sealed class SurveillanceCameraSystem : EntitySystem public void RemoveActiveViewer(EntityUid camera, EntityUid player, EntityUid? monitor = null, SurveillanceCameraComponent? component = null, ActorComponent? actor = null) { - if (!Resolve(camera, ref component) - || !Resolve(player, ref actor)) - { + if (!Resolve(camera, ref component)) return; - } - _viewSubscriberSystem.RemoveViewSubscriber(camera, actor.PlayerSession); + if (Resolve(player, ref actor)) + _viewSubscriberSystem.RemoveViewSubscriber(camera, actor.PlayerSession); + component.ActiveViewers.Remove(player); if (monitor != null) @@ -377,6 +383,13 @@ public sealed class SurveillanceCameraSystem : EntitySystem { RemoveActiveViewer(camera, player, monitor, component); } + + // Even if not removing any viewers, remove the monitor + if (players.Count == 0 && monitor != null) + { + component.ActiveMonitors.Remove(monitor.Value); + UpdateVisuals(camera, component); + } } private void UpdateVisuals(EntityUid uid, SurveillanceCameraComponent? component = null, AppearanceComponent? appearance = null) From a7c1cdc34211b91924ce83d26576afefaa8b73bd Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 9 Sep 2024 19:25:03 +0000 Subject: [PATCH 024/192] Automatic changelog update --- Resources/Changelog/Changelog.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 17c4b05392..fd8f4b2877 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: metalgearsloth - changes: - - message: Ushanka no longer applies an accent to your name. - type: Tweak - id: 6827 - time: '2024-06-28T00:08:09.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/29524 - author: JIPDawg changes: - message: Changed the sound of pulling back the foam crossbow from the sound of @@ -3870,3 +3863,11 @@ id: 7326 time: '2024-09-09T19:22:41.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/31890 +- author: yuitop + changes: + - message: Fixed some cases when surveillance camera's red light not turning off + when needed + type: Fix + id: 7327 + time: '2024-09-09T19:23:57.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/31831 From 00f90ac78ad4f5beaa312e1f06ec43530af79dc2 Mon Sep 17 00:00:00 2001 From: Alzore <140123969+Blackern5000@users.noreply.github.com> Date: Mon, 9 Sep 2024 14:26:10 -0500 Subject: [PATCH 025/192] Add easy window upgrading, fix some other window issues. (#31978) * uhhh a lot of window stuff, mainly easy upgrades * buff plasma/uranium rwindows so you actually want them * fix uranium number, correct construction descriptions * fix tinted window price * frosted windo --- .../Entities/Structures/Windows/clockwork.yml | 19 +- .../Entities/Structures/Windows/mining.yml | 4 +- .../Entities/Structures/Windows/plasma.yml | 25 +- .../Structures/Windows/plastitanium.yml | 8 +- .../Structures/Windows/reinforced.yml | 35 +-- .../Entities/Structures/Windows/rplasma.yml | 14 +- .../Entities/Structures/Windows/ruranium.yml | 20 +- .../Entities/Structures/Windows/shuttle.yml | 4 +- .../Entities/Structures/Windows/uranium.yml | 24 +- .../Entities/Structures/Windows/window.yml | 30 +- .../Construction/Graphs/structures/window.yml | 293 ++++++++++-------- .../Graphs/structures/window_diagonal.yml | 192 +++++++----- .../Graphs/structures/windowdirectional.yml | 168 +++++++--- .../Recipes/Construction/structures.yml | 22 +- ...mageOverlay_8.png => DamageOverlay_10.png} | Bin ...ageOverlay_12.png => DamageOverlay_20.png} | Bin ...amageOverlay_4.png => DamageOverlay_5.png} | Bin .../Structures/Windows/cracks.rsi/meta.json | 6 +- ...mageOverlay_8.png => DamageOverlay_10.png} | Bin ...ageOverlay_12.png => DamageOverlay_20.png} | Bin ...amageOverlay_4.png => DamageOverlay_5.png} | Bin .../Windows/cracks_diagonal.rsi/meta.json | 6 +- ...mageOverlay_8.png => DamageOverlay_10.png} | Bin ...ageOverlay_12.png => DamageOverlay_20.png} | Bin ...amageOverlay_4.png => DamageOverlay_5.png} | Bin .../Windows/cracks_directional.rsi/meta.json | 6 +- 26 files changed, 535 insertions(+), 341 deletions(-) rename Resources/Textures/Structures/Windows/cracks.rsi/{DamageOverlay_8.png => DamageOverlay_10.png} (100%) rename Resources/Textures/Structures/Windows/cracks.rsi/{DamageOverlay_12.png => DamageOverlay_20.png} (100%) rename Resources/Textures/Structures/Windows/cracks.rsi/{DamageOverlay_4.png => DamageOverlay_5.png} (100%) rename Resources/Textures/Structures/Windows/cracks_diagonal.rsi/{DamageOverlay_8.png => DamageOverlay_10.png} (100%) rename Resources/Textures/Structures/Windows/cracks_diagonal.rsi/{DamageOverlay_12.png => DamageOverlay_20.png} (100%) rename Resources/Textures/Structures/Windows/cracks_diagonal.rsi/{DamageOverlay_4.png => DamageOverlay_5.png} (100%) rename Resources/Textures/Structures/Windows/cracks_directional.rsi/{DamageOverlay_8.png => DamageOverlay_10.png} (100%) rename Resources/Textures/Structures/Windows/cracks_directional.rsi/{DamageOverlay_12.png => DamageOverlay_20.png} (100%) rename Resources/Textures/Structures/Windows/cracks_directional.rsi/{DamageOverlay_4.png => DamageOverlay_5.png} (100%) diff --git a/Resources/Prototypes/Entities/Structures/Windows/clockwork.yml b/Resources/Prototypes/Entities/Structures/Windows/clockwork.yml index 89237c1bb6..3449d1d11a 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/clockwork.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/clockwork.yml @@ -47,8 +47,8 @@ node: clockworkWindow - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 4 + thresholds: [5, 10, 20] + damageDivisor: 3 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks.rsi @@ -74,8 +74,8 @@ node: windowClockworkDirectional - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 10 + thresholds: [5, 10, 20] + damageDivisor: 1.5 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_directional.rsi @@ -85,7 +85,16 @@ thresholds: - trigger: !type:DamageTrigger - damage: 150 + damage: 75 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: WindowShatter + - trigger: + !type:DamageTrigger + damage: 37 behaviors: - !type:PlaySoundBehavior sound: diff --git a/Resources/Prototypes/Entities/Structures/Windows/mining.yml b/Resources/Prototypes/Entities/Structures/Windows/mining.yml index 82d11b732b..f0b77e6689 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/mining.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/mining.yml @@ -43,8 +43,8 @@ base: mwindow - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 6 + thresholds: [5, 10, 20] + damageDivisor: 4 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks.rsi diff --git a/Resources/Prototypes/Entities/Structures/Windows/plasma.yml b/Resources/Prototypes/Entities/Structures/Windows/plasma.yml index 66fac515a7..58991b9286 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/plasma.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/plasma.yml @@ -10,12 +10,12 @@ sprite: Structures/Windows/plasma_window.rsi - type: Damageable damageContainer: StructuralInorganic - damageModifierSet: RGlass + damageModifierSet: Glass - type: Destructible thresholds: - trigger: !type:DamageTrigger - damage: 120 + damage: 150 behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] @@ -24,7 +24,7 @@ collection: WindowShatter - trigger: !type:DamageTrigger - damage: 60 + damage: 75 behaviors: - !type:PlaySoundBehavior sound: @@ -43,8 +43,8 @@ node: plasmaWindow - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 3.333 + thresholds: [5, 10, 20] + damageDivisor: 3 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks.rsi @@ -74,8 +74,8 @@ node: plasmaWindowDirectional - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 3.333 + thresholds: [5, 10, 20] + damageDivisor: 1.5 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_directional.rsi @@ -83,7 +83,16 @@ thresholds: - trigger: !type:DamageTrigger - damage: 200 + damage: 75 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:PlaySoundBehavior + sound: + collection: WindowShatter + - trigger: + !type:DamageTrigger + damage: 37 behaviors: - !type:PlaySoundBehavior sound: diff --git a/Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml b/Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml index 2134cfe892..e7af4b6c67 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/plastitanium.yml @@ -98,8 +98,8 @@ - !type:DoActsBehavior acts: [ "Destruction" ] - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 28 + thresholds: [5, 10, 20] + damageDivisor: 20 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks.rsi @@ -185,8 +185,8 @@ - !type:DoActsBehavior acts: [ "Destruction" ] - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 28 + thresholds: [5, 10, 20] + damageDivisor: 20 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_diagonal.rsi diff --git a/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml b/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml index 503d2eec6e..9e80d46e64 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/reinforced.yml @@ -50,31 +50,12 @@ node: reinforcedWindow - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 4 + thresholds: [5, 10, 20] + damageDivisor: 3 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks.rsi -- type: entity - parent: ReinforcedWindow - id: TintedWindow - name: tinted window - components: - - type: Sprite - drawdepth: WallTops - sprite: Structures/Windows/tinted_window.rsi - - type: Icon - sprite: Structures/Windows/tinted_window.rsi - - type: IconSmooth - base: twindow - - type: Construction - graph: Window - node: tintedWindow - - type: Occluder - - type: StaticPrice - price: 45 - - type: entity id: WindowReinforcedDirectional parent: WindowDirectional @@ -96,8 +77,8 @@ node: windowReinforcedDirectional - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 10 + thresholds: [5, 10, 20] + damageDivisor: 1.5 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_directional.rsi @@ -111,16 +92,16 @@ thresholds: - trigger: !type:DamageTrigger - damage: 150 #excess damage (nuke?). avoid computational cost of spawning entities. + damage: 75 behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] - !type:PlaySoundBehavior sound: collection: WindowShatter - - !type:DoActsBehavior - acts: [ "Destruction" ] - trigger: !type:DamageTrigger - damage: 50 + damage: 37 behaviors: - !type:PlaySoundBehavior sound: diff --git a/Resources/Prototypes/Entities/Structures/Windows/rplasma.yml b/Resources/Prototypes/Entities/Structures/Windows/rplasma.yml index 0940ac308a..0dfe893a5c 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/rplasma.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/rplasma.yml @@ -17,7 +17,7 @@ thresholds: - trigger: !type:DamageTrigger - damage: 200 + damage: 300 behaviors: #excess damage, don't spawn entities. - !type:DoActsBehavior acts: [ "Destruction" ] @@ -26,7 +26,7 @@ collection: WindowShatter - trigger: !type:DamageTrigger - damage: 100 + damage: 150 behaviors: - !type:PlaySoundBehavior sound: @@ -48,7 +48,7 @@ node: reinforcedPlasmaWindow - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] + thresholds: [5, 10, 20] damageDivisor: 6 trackAllDamage: true damageOverlay: @@ -77,8 +77,8 @@ node: plasmaReinforcedWindowDirectional - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 36 + thresholds: [5, 10, 20] + damageDivisor: 3 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_directional.rsi @@ -88,13 +88,13 @@ thresholds: - trigger: !type:DamageTrigger - damage: 1000 + damage: 150 behaviors: #excess damage, don't spawn entities. - !type:DoActsBehavior acts: [ "Destruction" ] - trigger: !type:DamageTrigger - damage: 600 + damage: 75 behaviors: - !type:PlaySoundBehavior sound: diff --git a/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml b/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml index 150039b47b..2231ab6a49 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/ruranium.yml @@ -15,13 +15,13 @@ thresholds: - trigger: !type:DamageTrigger - damage: 200 + damage: 300 behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] - trigger: !type:DamageTrigger - damage: 100 + damage: 150 behaviors: - !type:PlaySoundBehavior sound: @@ -43,7 +43,7 @@ node: reinforcedUraniumWindow - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] + thresholds: [5, 10, 20] damageDivisor: 6 trackAllDamage: true damageOverlay: @@ -74,8 +74,8 @@ node: uraniumReinforcedWindowDirectional - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 3.333 + thresholds: [5, 10, 20] + damageDivisor: 3 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_directional.rsi @@ -83,7 +83,13 @@ thresholds: - trigger: !type:DamageTrigger - damage: 200 + damage: 150 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 75 behaviors: - !type:PlaySoundBehavior sound: @@ -93,7 +99,7 @@ ShardGlassUranium: min: 1 max: 2 - PartRodMetal1: + PartRodMetal: min: 1 max: 2 - !type:DoActsBehavior diff --git a/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml b/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml index 1b4c96c170..659f5b8a20 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/shuttle.yml @@ -46,8 +46,8 @@ node: shuttleWindow - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 28 + thresholds: [5, 10, 20] + damageDivisor: 20 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks.rsi diff --git a/Resources/Prototypes/Entities/Structures/Windows/uranium.yml b/Resources/Prototypes/Entities/Structures/Windows/uranium.yml index c7b7312a70..514463f1d3 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/uranium.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/uranium.yml @@ -11,18 +11,18 @@ state: full - type: Damageable damageContainer: StructuralInorganic - damageModifierSet: RGlass + damageModifierSet: Glass - type: Destructible thresholds: - trigger: !type:DamageTrigger - damage: 100 + damage: 150 behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] - trigger: !type:DamageTrigger - damage: 60 + damage: 75 behaviors: - !type:PlaySoundBehavior sound: @@ -41,8 +41,8 @@ node: uraniumWindow - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 3.333 + thresholds: [5, 10, 20] + damageDivisor: 3 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks.rsi @@ -72,8 +72,8 @@ node: uraniumWindowDirectional - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 3.333 + thresholds: [5, 10, 20] + damageDivisor: 1.5 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_directional.rsi @@ -81,7 +81,13 @@ thresholds: - trigger: !type:DamageTrigger - damage: 200 + damage: 75 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 37 behaviors: - !type:PlaySoundBehavior sound: @@ -90,7 +96,7 @@ spawn: ShardGlassUranium: min: 1 - max: 2 + max: 1 - !type:DoActsBehavior acts: [ "Destruction" ] - type: StaticPrice diff --git a/Resources/Prototypes/Entities/Structures/Windows/window.yml b/Resources/Prototypes/Entities/Structures/Windows/window.yml index 56a38f82fc..fdf4c2ccea 100644 --- a/Resources/Prototypes/Entities/Structures/Windows/window.yml +++ b/Resources/Prototypes/Entities/Structures/Windows/window.yml @@ -84,8 +84,8 @@ node: window - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 3.333 + thresholds: [5, 10, 20] + damageDivisor: 2 trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks.rsi @@ -93,6 +93,25 @@ price: 100 - type: BlockWeather +- type: entity + parent: Window + id: TintedWindow + name: tinted window + components: + - type: Sprite + drawdepth: WallTops + sprite: Structures/Windows/tinted_window.rsi + - type: Icon + sprite: Structures/Windows/tinted_window.rsi + - type: IconSmooth + base: twindow + - type: Construction + graph: Window + node: tintedWindow + - type: Occluder + - type: StaticPrice + price: 70 + - type: entity id: WindowRCDResistant parent: Window @@ -158,7 +177,7 @@ thresholds: - trigger: !type:DamageTrigger - damage: 150 #excess damage (nuke?). avoid computational cost of spawning entities. + damage: 50 #excess damage (nuke?). avoid computational cost of spawning entities. behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] @@ -188,8 +207,7 @@ node: windowDirectional - type: Appearance - type: DamageVisuals - thresholds: [4, 8, 12] - damageDivisor: 3.333 + thresholds: [5, 10, 20] trackAllDamage: true damageOverlay: sprite: Structures/Windows/cracks_directional.rsi @@ -220,6 +238,8 @@ - type: Icon sprite: Structures/Windows/directional.rsi state: frosted_window + - type: StaticPrice + price: 35 - type: entity parent: Window diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/window.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/window.yml index 1c1aaec4e1..b9e6eae081 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/structures/window.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/window.yml @@ -4,61 +4,63 @@ graph: - node: start edges: - - to: plasmaWindow - steps: - - material: PlasmaGlass - amount: 2 - doAfter: 2 - - - to: reinforcedWindow - steps: - - material: ReinforcedGlass - amount: 2 - doAfter: 2 - - - to: tintedWindow - steps: - - material: ReinforcedGlass - amount: 2 - doAfter: 2 - - - to: reinforcedPlasmaWindow - steps: - - material: ReinforcedPlasmaGlass - amount: 2 - doAfter: 3 - - - to: uraniumWindow - steps: - - material: UraniumGlass - amount: 2 - doAfter: 2 - - - to: reinforcedUraniumWindow - steps: - - material: ReinforcedUraniumGlass - amount: 2 - doAfter: 3 - - - to: window + - to: window # 50 hp steps: - material: Glass + amount: 2 + doAfter: 2 + + - to: tintedWindow # 50 hp + steps: + - material: Glass + amount: 2 + - material: Plastic + amount: 2 + doAfter: 2 + + - to: plasmaWindow # 75 hp + steps: + - material: PlasmaGlass amount: 2 doAfter: 3 - - to: shuttleWindow + - to: uraniumWindow # 75 hp + steps: + - material: UraniumGlass + amount: 2 + doAfter: 3 + + - to: clockworkWindow # 75 hp reinforced damage mod + steps: + - material: ClockworkGlass + amount: 2 + doAfter: 3 + + - to: reinforcedWindow # 75 hp reinforced damage mod + steps: + - material: ReinforcedGlass + amount: 2 + doAfter: 3 + + - to: reinforcedPlasmaWindow # 150 hp reinforced damage mod + steps: + - material: ReinforcedPlasmaGlass + amount: 2 + doAfter: 4 + + - to: reinforcedUraniumWindow # 150 hp reinforced damage mod + steps: + - material: ReinforcedUraniumGlass + amount: 2 + doAfter: 4 + + - to: shuttleWindow # 500 hp reinforced damage mod (wow) steps: - material: Plasteel amount: 2 - material: ReinforcedGlass amount: 2 - doAfter: 4 - - - to: clockworkWindow - steps: - - material: ClockworkGlass - amount: 2 - doAfter: 3 + doAfter: 6 - node: window entity: Window @@ -74,6 +76,120 @@ doAfter: 1 - tool: Anchoring doAfter: 2 + - to: tintedWindow + steps: + - material: Plastic + amount: 2 + doAfter: 0.5 + - to: plasmaWindow + steps: + - material: Plasma + amount: 2 + doAfter: 1 + - to: uraniumWindow + steps: + - material: Uranium + amount: 2 + doAfter: 1 + - to: clockworkWindow + steps: + - material: Brass + amount: 2 + doAfter: 2 + - to: reinforcedWindow + steps: + - material: MetalRod + amount: 2 + doAfter: 2 + + - node: tintedWindow + entity: TintedWindow + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetGlass1 + amount: 2 + - !type:SpawnPrototype + prototype: SheetPlastic1 + amount: 2 + - !type:DeleteEntity {} + steps: + - tool: Screwing + doAfter: 1 + - tool: Anchoring + doAfter: 2 + + - node: plasmaWindow + entity: PlasmaWindow + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetPGlass1 + amount: 2 + - !type:DeleteEntity {} + steps: + - tool: Screwing + doAfter: 2 + - tool: Prying + doAfter: 3 + - tool: Screwing + doAfter: 2 + - tool: Anchoring + doAfter: 3 + - to: reinforcedPlasmaWindow + steps: + - material: MetalRod + amount: 2 + doAfter: 1 + + - node: uraniumWindow + entity: UraniumWindow + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetUGlass1 + amount: 2 + - !type:DeleteEntity {} + steps: + - tool: Screwing + doAfter: 2 + - tool: Prying + doAfter: 3 + - tool: Screwing + doAfter: 2 + - tool: Anchoring + doAfter: 3 + - to: reinforcedUraniumWindow + steps: + - material: MetalRod + amount: 2 + doAfter: 1 + + - node: clockworkWindow + entity: ClockworkWindow + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetClockworkGlass1 + amount: 2 + - !type:DeleteEntity {} + steps: + - tool: Welding + doAfter: 5 + - tool: Screwing + doAfter: 2 + - tool: Prying + doAfter: 3 + - tool: Welding + doAfter: 5 + - tool: Screwing + doAfter: 2 + - tool: Anchoring + doAfter: 3 - node: reinforcedWindow entity: ReinforcedWindow @@ -97,43 +213,20 @@ doAfter: 1 - tool: Anchoring doAfter: 2 - - - node: tintedWindow - entity: TintedWindow - edges: - - to: start - completed: - - !type:SpawnPrototype - prototype: SheetRGlass1 - amount: 2 - - !type:DeleteEntity {} + - to: reinforcedPlasmaWindow steps: - - tool: Screwing - doAfter: 1 - - tool: Prying - doAfter: 2 - - tool: Screwing - doAfter: 1 - - tool: Anchoring - doAfter: 2 - - - node: plasmaWindow - entity: PlasmaWindow - edges: - - to: start - completed: - - !type:SpawnPrototype - prototype: SheetPGlass1 + - material: Plasma amount: 2 - - !type:DeleteEntity {} + doAfter: 1 + - to: reinforcedUraniumWindow steps: - - tool: Screwing - doAfter: 2 - - tool: Prying - doAfter: 3 - - tool: Screwing - doAfter: 2 - - tool: Anchoring + - material: Uranium + amount: 2 + doAfter: 1 + - to: shuttleWindow + steps: + - material: Plasteel + amount: 2 doAfter: 3 - node: reinforcedPlasmaWindow @@ -159,25 +252,6 @@ - tool: Anchoring doAfter: 3 - - node: uraniumWindow - entity: UraniumWindow - edges: - - to: start - completed: - - !type:SpawnPrototype - prototype: SheetUGlass1 - amount: 2 - - !type:DeleteEntity {} - steps: - - tool: Screwing - doAfter: 2 - - tool: Prying - doAfter: 3 - - tool: Screwing - doAfter: 2 - - tool: Anchoring - doAfter: 3 - - node: reinforcedUraniumWindow entity: ReinforcedUraniumWindow edges: @@ -200,29 +274,6 @@ doAfter: 2 - tool: Anchoring doAfter: 3 - - - node: clockworkWindow - entity: ClockworkWindow - edges: - - to: start - completed: - - !type:SpawnPrototype - prototype: SheetClockworkGlass1 - amount: 2 - - !type:DeleteEntity {} - steps: - - tool: Welding - doAfter: 5 - - tool: Screwing - doAfter: 2 - - tool: Prying - doAfter: 3 - - tool: Welding - doAfter: 5 - - tool: Screwing - doAfter: 2 - - tool: Anchoring - doAfter: 3 - node: shuttleWindow entity: ShuttleWindow diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/window_diagonal.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/window_diagonal.yml index 55036b7559..63788ae5ad 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/structures/window_diagonal.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/window_diagonal.yml @@ -4,12 +4,30 @@ graph: - node: start edges: + - to: windowDiagonal + steps: + - material: Glass + amount: 2 + doAfter: 2 + - to: plasmaWindowDiagonal steps: - material: PlasmaGlass amount: 2 doAfter: 2 + - to: uraniumWindowDiagonal + steps: + - material: UraniumGlass + amount: 2 + doAfter: 2 + + - to: clockworkWindowDiagonal + steps: + - material: ClockworkGlass + amount: 2 + doAfter: 3 + - to: reinforcedWindowDiagonal steps: - material: ReinforcedGlass @@ -22,30 +40,12 @@ amount: 2 doAfter: 3 - - to: uraniumWindowDiagonal - steps: - - material: UraniumGlass - amount: 2 - doAfter: 2 - - to: reinforcedUraniumWindowDiagonal steps: - material: ReinforcedUraniumGlass amount: 2 doAfter: 3 - - to: clockworkWindowDiagonal - steps: - - material: ClockworkGlass - amount: 2 - doAfter: 3 - - - to: windowDiagonal - steps: - - material: Glass - amount: 2 - doAfter: 3 - - node: windowDiagonal entity: WindowDiagonal edges: @@ -60,6 +60,97 @@ doAfter: 1 - tool: Anchoring doAfter: 2 + - to: plasmaWindowDiagonal + steps: + - material: Plasma + amount: 2 + doAfter: 1 + - to: uraniumWindowDiagonal + steps: + - material: Uranium + amount: 2 + doAfter: 1 + - to: clockworkWindowDiagonal + steps: + - material: Brass + amount: 2 + doAfter: 2 + - to: reinforcedWindowDiagonal + steps: + - material: MetalRod + amount: 2 + doAfter: 2 + + - node: plasmaWindowDiagonal + entity: PlasmaWindowDiagonal + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetPGlass1 + amount: 2 + - !type:DeleteEntity {} + steps: + - tool: Screwing + doAfter: 2 + - tool: Prying + doAfter: 3 + - tool: Screwing + doAfter: 2 + - tool: Anchoring + doAfter: 3 + - to: reinforcedPlasmaWindowDiagonal + steps: + - material: MetalRod + amount: 2 + doAfter: 1 + + - node: uraniumWindowDiagonal + entity: UraniumWindowDiagonal + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetUGlass1 + amount: 2 + - !type:DeleteEntity {} + steps: + - tool: Screwing + doAfter: 2 + - tool: Prying + doAfter: 3 + - tool: Screwing + doAfter: 2 + - tool: Anchoring + doAfter: 3 + - to: reinforcedUraniumWindowDiagonal + steps: + - material: MetalRod + amount: 2 + doAfter: 1 + + - node: clockworkWindowDiagonal + entity: ClockworkWindowDiagonal + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetClockworkGlass1 + amount: 2 + - !type:DeleteEntity {} + steps: + - tool: Welding + doAfter: 5 + - tool: Screwing + doAfter: 1 + - tool: Prying + doAfter: 2 + - tool: Welding + doAfter: 5 + - tool: Screwing + doAfter: 1 + - tool: Anchoring + doAfter: 2 - node: reinforcedWindowDiagonal entity: ReinforcedWindowDiagonal @@ -83,48 +174,16 @@ doAfter: 1 - tool: Anchoring doAfter: 2 - - - node: clockworkWindowDiagonal - entity: ClockworkWindowDiagonal - edges: - - to: start - completed: - - !type:SpawnPrototype - prototype: SheetClockworkGlass1 - amount: 2 - - !type:DeleteEntity {} + - to: reinforcedPlasmaWindowDiagonal steps: - - tool: Welding - doAfter: 5 - - tool: Screwing - doAfter: 1 - - tool: Prying - doAfter: 2 - - tool: Welding - doAfter: 5 - - tool: Screwing - doAfter: 1 - - tool: Anchoring - doAfter: 2 - - - node: plasmaWindowDiagonal - entity: PlasmaWindowDiagonal - edges: - - to: start - completed: - - !type:SpawnPrototype - prototype: SheetPGlass1 + - material: Plasma amount: 2 - - !type:DeleteEntity {} + doAfter: 1 + - to: reinforcedUraniumWindowDiagonal steps: - - tool: Screwing - doAfter: 2 - - tool: Prying - doAfter: 3 - - tool: Screwing - doAfter: 2 - - tool: Anchoring - doAfter: 3 + - material: Uranium + amount: 2 + doAfter: 1 - node: reinforcedPlasmaWindowDiagonal entity: ReinforcedPlasmaWindowDiagonal @@ -149,25 +208,6 @@ - tool: Anchoring doAfter: 3 - - node: uraniumWindowDiagonal - entity: UraniumWindowDiagonal - edges: - - to: start - completed: - - !type:SpawnPrototype - prototype: SheetUGlass1 - amount: 2 - - !type:DeleteEntity {} - steps: - - tool: Screwing - doAfter: 2 - - tool: Prying - doAfter: 3 - - tool: Screwing - doAfter: 2 - - tool: Anchoring - doAfter: 3 - - node: reinforcedUraniumWindowDiagonal entity: ReinforcedUraniumWindowDiagonal edges: diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/windowdirectional.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/windowdirectional.yml index 96f009fabb..7d3ace33c7 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/structures/windowdirectional.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/windowdirectional.yml @@ -4,47 +4,55 @@ graph: - node: start edges: - - - to: windowDirectional + - to: windowDirectional # 25 hp steps: - material: Glass amount: 1 - doAfter: 2 + doAfter: 1 - - to: windowReinforcedDirectional + - to: windowFrostedDirectional # 25 hp steps: - - material: ReinforcedGlass + - material: Glass amount: 1 - doAfter: 3 + - material: Plastic + amount: 1 + doAfter: 1 - - to: plasmaWindowDirectional + - to: plasmaWindowDirectional # 37 hp steps: - material: PlasmaGlass amount: 1 - doAfter: 2 + doAfter: 1.5 - - to: plasmaReinforcedWindowDirectional - steps: - - material: ReinforcedPlasmaGlass - amount: 1 - doAfter: 3 - - to: uraniumWindowDirectional + - to: uraniumWindowDirectional # 37 hp steps: - material: UraniumGlass amount: 1 - doAfter: 2 + doAfter: 1.5 - - to: uraniumReinforcedWindowDirectional - steps: - - material: ReinforcedUraniumGlass - amount: 1 - doAfter: 3 - - - to: windowClockworkDirectional + - to: windowClockworkDirectional # 37 hp reinforced damage mod steps: - material: ClockworkGlass amount: 1 - doAfter: 3 + doAfter: 1.5 + + - to: windowReinforcedDirectional # 37 hp reinforced damage mod + steps: + - material: ReinforcedGlass + amount: 1 + doAfter: 1.5 + + - to: plasmaReinforcedWindowDirectional # 75 hp reinforced damage mod + steps: + - material: ReinforcedPlasmaGlass + amount: 1 + doAfter: 2 + + - to: uraniumReinforcedWindowDirectional # 75 hp reinforced damage mod + steps: + - material: ReinforcedUraniumGlass + amount: 1 + doAfter: 2 - node: windowDirectional entity: WindowDirectional @@ -60,21 +68,45 @@ doAfter: 1 - tool: Anchoring doAfter: 2 + - to: windowFrostedDirectional + steps: + - material: Plastic + amount: 1 + doAfter: 0.5 + - to: plasmaWindowDirectional + steps: + - material: Plasma + amount: 1 + doAfter: 0.5 + - to: uraniumWindowDirectional + steps: + - material: Uranium + amount: 1 + doAfter: 0.5 + - to: windowClockworkDirectional + steps: + - material: Brass + amount: 1 + doAfter: 1 + - to: windowReinforcedDirectional + steps: + - material: MetalRod + amount: 1 + doAfter: 1 - - node: windowReinforcedDirectional - entity: WindowReinforcedDirectional + - node: windowFrostedDirectional + entity: WindowFrostedDirectional edges: - to: start completed: - !type:SpawnPrototype - prototype: SheetRGlass1 + prototype: SheetGlass1 + amount: 1 + - !type:SpawnPrototype + prototype: SheetPlastic1 amount: 1 - !type:DeleteEntity {} steps: - - tool: Screwing - doAfter: 1 - - tool: Prying - doAfter: 2 - tool: Screwing doAfter: 1 - tool: Anchoring @@ -98,6 +130,35 @@ doAfter: 2 - tool: Anchoring doAfter: 3 + - to: plasmaReinforcedWindowDirectional + steps: + - material: MetalRod + amount: 1 + doAfter: 0.5 + + - node: uraniumWindowDirectional + entity: UraniumWindowDirectional + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetUGlass1 + amount: 1 + - !type:DeleteEntity {} + steps: + - tool: Screwing + doAfter: 2 + - tool: Prying + doAfter: 3 + - tool: Screwing + doAfter: 2 + - tool: Anchoring + doAfter: 3 + - to: uraniumReinforcedWindowDirectional + steps: + - material: MetalRod + amount: 1 + doAfter: 0.5 - node: windowClockworkDirectional entity: WindowClockworkDirectional @@ -118,6 +179,35 @@ - tool: Anchoring doAfter: 3 + - node: windowReinforcedDirectional + entity: WindowReinforcedDirectional + edges: + - to: start + completed: + - !type:SpawnPrototype + prototype: SheetRGlass1 + amount: 1 + - !type:DeleteEntity {} + steps: + - tool: Screwing + doAfter: 1 + - tool: Prying + doAfter: 2 + - tool: Screwing + doAfter: 1 + - tool: Anchoring + doAfter: 2 + - to: plasmaReinforcedWindowDirectional + steps: + - material: Plasma + amount: 1 + doAfter: 0.5 + - to: uraniumReinforcedWindowDirectional + steps: + - material: Uranium + amount: 1 + doAfter: 0.5 + - node: plasmaReinforcedWindowDirectional entity: PlasmaReinforcedWindowDirectional edges: @@ -136,24 +226,6 @@ doAfter: 2 - tool: Anchoring doAfter: 3 - - node: uraniumWindowDirectional - entity: UraniumWindowDirectional - edges: - - to: start - completed: - - !type:SpawnPrototype - prototype: SheetUGlass1 - amount: 1 - - !type:DeleteEntity {} - steps: - - tool: Screwing - doAfter: 2 - - tool: Prying - doAfter: 3 - - tool: Screwing - doAfter: 2 - - tool: Anchoring - doAfter: 3 - node: uraniumReinforcedWindowDirectional entity: UraniumReinforcedWindowDirectional diff --git a/Resources/Prototypes/Recipes/Construction/structures.yml b/Resources/Prototypes/Recipes/Construction/structures.yml index 5278c1b45e..fee1217c16 100644 --- a/Resources/Prototypes/Recipes/Construction/structures.yml +++ b/Resources/Prototypes/Recipes/Construction/structures.yml @@ -455,7 +455,7 @@ startNode: start targetNode: tintedWindow category: construction-category-structures - description: Not clear but tough. + description: Not clear, but lasers still pass through. canBuildInImpassable: true conditions: - !type:EmptyOrWindowValidInTile @@ -512,7 +512,7 @@ targetNode: plasmaWindow category: construction-category-structures canBuildInImpassable: true - description: Clear and even tougher, with a purple tint. + description: Clear, with a purple tint. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -531,7 +531,7 @@ targetNode: reinforcedPlasmaWindow category: construction-category-structures canBuildInImpassable: true - description: Fire resistant and even tougher, with a purple tint. + description: Clear and even tougher, with a purple tint. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -569,7 +569,7 @@ targetNode: plasmaWindowDiagonal category: construction-category-structures canBuildInImpassable: true - description: Clear and even tougher, with a purple tint. + description: Clear, with a purple tint. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -587,7 +587,7 @@ targetNode: reinforcedPlasmaWindowDiagonal category: construction-category-structures canBuildInImpassable: true - description: Fire resistant and even tougher, with a purple tint. + description: Clear and even tougher, with a purple tint. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -659,7 +659,7 @@ targetNode: plasmaWindowDirectional category: construction-category-structures canBuildInImpassable: true - description: Clear and even tougher, with a purple tint. + description: Clear, with a purple tint. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -677,7 +677,7 @@ targetNode: plasmaReinforcedWindowDirectional category: construction-category-structures canBuildInImpassable: true - description: Fire resistant and even tougher, with a purple tint. + description: Clear and even tougher, with a purple tint. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -695,7 +695,7 @@ targetNode: uraniumWindow category: construction-category-structures canBuildInImpassable: true - description: Clear and much tougher than regular glass, with added RadAbsorb to protect you from deadly radiation. + description: Clear, with added RadAbsorb to protect you from deadly radiation. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -714,7 +714,7 @@ targetNode: reinforcedUraniumWindow category: construction-category-structures canBuildInImpassable: true - description: Clear and much tougher than regular glass, with added RadAbsorb to protect you from deadly radiation. + description: Clear and even tougher, with added RadAbsorb to protect you from deadly radiation. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -733,7 +733,7 @@ targetNode: uraniumWindowDiagonal category: construction-category-structures canBuildInImpassable: true - description: Clear and much tougher than regular glass, with added RadAbsorb to protect you from deadly radiation. + description: Clear, with added RadAbsorb to protect you from deadly radiation. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile @@ -751,7 +751,7 @@ targetNode: reinforcedUraniumWindowDiagonal category: construction-category-structures canBuildInImpassable: true - description: Clear and much tougher than regular glass, with added RadAbsorb to protect you from deadly radiation. + description: Clear and even tougher, with added RadAbsorb to protect you from deadly radiation. conditions: - !type:EmptyOrWindowValidInTile - !type:NoWindowsInTile diff --git a/Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_8.png b/Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_10.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_8.png rename to Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_10.png diff --git a/Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_12.png b/Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_20.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_12.png rename to Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_20.png diff --git a/Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_4.png b/Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_5.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_4.png rename to Resources/Textures/Structures/Windows/cracks.rsi/DamageOverlay_5.png diff --git a/Resources/Textures/Structures/Windows/cracks.rsi/meta.json b/Resources/Textures/Structures/Windows/cracks.rsi/meta.json index 9d0cc9a505..ca012e8fc5 100644 --- a/Resources/Textures/Structures/Windows/cracks.rsi/meta.json +++ b/Resources/Textures/Structures/Windows/cracks.rsi/meta.json @@ -7,8 +7,8 @@ "license": "CC-BY-SA-3.0", "copyright": "Taken from https://github.com/tgstation/tgstation at commit e06b82a7f4b2b09216fb28fd384c95a2e1dc50e5", "states": [ - {"name": "DamageOverlay_4", "directions": 1}, - {"name": "DamageOverlay_8", "directions": 1}, - {"name": "DamageOverlay_12", "directions": 1} + {"name": "DamageOverlay_5", "directions": 1}, + {"name": "DamageOverlay_10", "directions": 1}, + {"name": "DamageOverlay_20", "directions": 1} ] } diff --git a/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_8.png b/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_10.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_8.png rename to Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_10.png diff --git a/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_12.png b/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_20.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_12.png rename to Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_20.png diff --git a/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_4.png b/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_5.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_4.png rename to Resources/Textures/Structures/Windows/cracks_diagonal.rsi/DamageOverlay_5.png diff --git a/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/meta.json b/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/meta.json index 9d0cc9a505..ca012e8fc5 100644 --- a/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/meta.json +++ b/Resources/Textures/Structures/Windows/cracks_diagonal.rsi/meta.json @@ -7,8 +7,8 @@ "license": "CC-BY-SA-3.0", "copyright": "Taken from https://github.com/tgstation/tgstation at commit e06b82a7f4b2b09216fb28fd384c95a2e1dc50e5", "states": [ - {"name": "DamageOverlay_4", "directions": 1}, - {"name": "DamageOverlay_8", "directions": 1}, - {"name": "DamageOverlay_12", "directions": 1} + {"name": "DamageOverlay_5", "directions": 1}, + {"name": "DamageOverlay_10", "directions": 1}, + {"name": "DamageOverlay_20", "directions": 1} ] } diff --git a/Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_8.png b/Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_10.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_8.png rename to Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_10.png diff --git a/Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_12.png b/Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_20.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_12.png rename to Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_20.png diff --git a/Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_4.png b/Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_5.png similarity index 100% rename from Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_4.png rename to Resources/Textures/Structures/Windows/cracks_directional.rsi/DamageOverlay_5.png diff --git a/Resources/Textures/Structures/Windows/cracks_directional.rsi/meta.json b/Resources/Textures/Structures/Windows/cracks_directional.rsi/meta.json index df077f67d2..9555aa5ab3 100644 --- a/Resources/Textures/Structures/Windows/cracks_directional.rsi/meta.json +++ b/Resources/Textures/Structures/Windows/cracks_directional.rsi/meta.json @@ -8,15 +8,15 @@ "copyright": "Adapted from https://github.com/space-wizards/space-station-14/ at commit f57e8ec6b9b4b72ef56c8146be0bc159ed2691ee, originally added by Zumorica, and modified for directional use by Darkie", "states": [ { - "name": "DamageOverlay_4", + "name": "DamageOverlay_5", "directions": 4 }, { - "name": "DamageOverlay_8", + "name": "DamageOverlay_10", "directions": 4 }, { - "name": "DamageOverlay_12", + "name": "DamageOverlay_20", "directions": 4 } ] From f9aaf138b2516cc55433a6a6453844ca57168d48 Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 9 Sep 2024 19:27:16 +0000 Subject: [PATCH 026/192] Automatic changelog update --- Resources/Changelog/Changelog.yml | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index fd8f4b2877..5400bf4909 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,12 +1,4 @@ Entries: -- author: JIPDawg - changes: - - message: Changed the sound of pulling back the foam crossbow from the sound of - a Flash to just pulling back a bow. - type: Tweak - id: 6828 - time: '2024-06-28T00:23:17.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/29508 - author: Plykiya changes: - message: Do-after bars performed inside containers are hidden from view. @@ -3871,3 +3863,18 @@ id: 7327 time: '2024-09-09T19:23:57.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/31831 +- author: Blackern5000 + changes: + - message: Normal and reinforced windows have been made directly upgradable using + rods, plasma, uranium, or plasteel. + type: Add + - message: Reinforced plasma and uranium windows have been made tougher. + type: Tweak + - message: Windows have been made to correctly display their damage visuals. + type: Fix + - message: Reinforced plasma windows have been given the correct amount of hp and + no longer have 12x the amount they should. + type: Fix + id: 7328 + time: '2024-09-09T19:26:10.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/31978 From 00034622c3f192c5d5822fd63092c804578909a0 Mon Sep 17 00:00:00 2001 From: Cojoke <83733158+Cojoke-dot@users.noreply.github.com> Date: Mon, 9 Sep 2024 14:30:26 -0500 Subject: [PATCH 027/192] Nuke Now Requires the Disk to be Inserted to Toggle Anchor (#29565) * Nuke Now Requires the Disk to be Inserted to Toggle Anchor * message stating you need the disk to toggle floor bolts --- Content.Client/Nuke/NukeMenu.xaml.cs | 2 +- Content.Server/Nuke/NukeSystem.cs | 10 ++++++++++ Resources/Locale/en-US/nuke/nuke-component.ftl | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Content.Client/Nuke/NukeMenu.xaml.cs b/Content.Client/Nuke/NukeMenu.xaml.cs index b498d0e3bb..aa75758473 100644 --- a/Content.Client/Nuke/NukeMenu.xaml.cs +++ b/Content.Client/Nuke/NukeMenu.xaml.cs @@ -107,7 +107,7 @@ namespace Content.Client.Nuke FirstStatusLabel.Text = firstMsg; SecondStatusLabel.Text = secondMsg; - EjectButton.Disabled = !state.DiskInserted || state.Status == NukeStatus.ARMED; + EjectButton.Disabled = !state.DiskInserted || state.Status == NukeStatus.ARMED || !state.IsAnchored; AnchorButton.Disabled = state.Status == NukeStatus.ARMED; AnchorButton.Pressed = state.IsAnchored; ArmButton.Disabled = !state.AllowArm || !state.IsAnchored; diff --git a/Content.Server/Nuke/NukeSystem.cs b/Content.Server/Nuke/NukeSystem.cs index 109d790be1..38c1070a8a 100644 --- a/Content.Server/Nuke/NukeSystem.cs +++ b/Content.Server/Nuke/NukeSystem.cs @@ -167,12 +167,21 @@ public sealed class NukeSystem : EntitySystem if (component.Status == NukeStatus.ARMED) return; + // Nuke has to have the disk in it to be moved + if (!component.DiskSlot.HasItem) + { + var msg = Loc.GetString("nuke-component-cant-anchor-toggle"); + _popups.PopupEntity(msg, uid, args.Actor, PopupType.MediumCaution); + return; + } + // manually set transform anchor (bypassing anchorable) // todo: it will break pullable system var xform = Transform(uid); if (xform.Anchored) { _transform.Unanchor(uid, xform); + _itemSlots.SetLock(uid, component.DiskSlot, true); } else { @@ -194,6 +203,7 @@ public sealed class NukeSystem : EntitySystem _transform.SetCoordinates(uid, xform, xform.Coordinates.SnapToGrid()); _transform.AnchorEntity(uid, xform); + _itemSlots.SetLock(uid, component.DiskSlot, false); } UpdateUserInterface(uid, component); diff --git a/Resources/Locale/en-US/nuke/nuke-component.ftl b/Resources/Locale/en-US/nuke/nuke-component.ftl index 981dd8b6ae..dfd56347ca 100644 --- a/Resources/Locale/en-US/nuke/nuke-component.ftl +++ b/Resources/Locale/en-US/nuke/nuke-component.ftl @@ -1,4 +1,5 @@ nuke-component-cant-anchor-floor = The anchoring bolts fail to lock into the floor! +nuke-component-cant-anchor-toggle = The nuclear authentication disk is required to toggle the floor bolts! nuke-component-announcement-sender = Nuclear Fission Explosive nuke-component-announcement-armed = Attention! The station's self-destruct mechanism has been engaged {$location}. {$time} seconds until detonation. If this was made in error, the mechanism may still be disarmed. nuke-component-announcement-unarmed = The station's self-destruct was deactivated! Have a nice day! From 7a6efeaba4f1891dd25783ca5b3e203d63698fa3 Mon Sep 17 00:00:00 2001 From: Kara Date: Mon, 9 Sep 2024 12:31:27 -0700 Subject: [PATCH 028/192] Properly credit contributors who were truncated by GitHub API (#31739) * Properly credit contributors who were truncated by GitHub's 500 email limit * update list oops forgot my origin was so out of date * another --- .github/workflows/update-credits.yml | 2 + Tools/contribs_shared.ps1 | 4 ++ Tools/dump_github_contributors.ps1 | 90 +++++++++++++++++++++++++++- 3 files changed, 94 insertions(+), 2 deletions(-) diff --git a/.github/workflows/update-credits.yml b/.github/workflows/update-credits.yml index e35d4def7d..87babfa2a6 100644 --- a/.github/workflows/update-credits.yml +++ b/.github/workflows/update-credits.yml @@ -19,6 +19,8 @@ jobs: - name: Get this week's Contributors shell: pwsh + env: + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} run: Tools/dump_github_contributors.ps1 > Resources/Credits/GitHub.txt # TODO diff --git a/Tools/contribs_shared.ps1 b/Tools/contribs_shared.ps1 index a3638b41b8..140a44a23e 100644 --- a/Tools/contribs_shared.ps1 +++ b/Tools/contribs_shared.ps1 @@ -9,8 +9,12 @@ $ignore = @{ "PJBot" = $true + "github-actions[bot]" = $true "ZDDM" = $true "TYoung86" = $true + "paul" = $true # erroneously included -- presumably from PaulRitter, somehow, who is already credited + "08a" = $true # erroneously included -- valid github account, but not an actual contributor, probably an alias of a contributor who does not own this github account and is already credited somewhere. + "UristMcContributor" = $true # this was an account used to demonstrate how to create a valid PR, and is in actuality Willhelm53, who is already credited. } $add = @("RamZ") diff --git a/Tools/dump_github_contributors.ps1 b/Tools/dump_github_contributors.ps1 index 10e74bcf0b..9aeabbd52d 100755 --- a/Tools/dump_github_contributors.ps1 +++ b/Tools/dump_github_contributors.ps1 @@ -3,10 +3,22 @@ $scriptDir = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent . $(join-path $scriptDir contribs_shared.ps1) +if ($null -eq $env:GITHUB_TOKEN) +{ + throw "A GitHub API token is required to run this script properly without being rate limited. If you're a user, generate a personal access token and use that. If you're running this in a GitHub action, make sure you expose the GITHUB_TOKEN secret as an environment variable." +} + function load_contribs([string] $repo) { + # https://developer.github.com/enterprise/2.8/v3/repos/#list-contributors + # We use the ?anon=1 query param for reasons explained later. $qParams = @{ "per_page" = 100 + "anon" = 1 + } + + $headers = @{ + Authorization="Bearer $env:GITHUB_TOKEN" } $url = "https://api.github.com/repos/{0}/contributors" -f $repo @@ -15,7 +27,7 @@ function load_contribs([string] $repo) while ($null -ne $url) { - $resp = Invoke-WebRequest $url -Body $qParams + $resp = Invoke-WebRequest $url -Body $qParams -Headers $headers $url = $resp.RelationLink.next @@ -23,6 +35,80 @@ function load_contribs([string] $repo) $r += $j } + # After collecting all the paginated data, we still aren't done. + # GitHub's API, for some reason, has a hard cap on 500 email addresses per repo which it will collate + # SS14 has gone past this limit for quite some time, so GitHub will stop including accounts, starting + # with those that have lower contributions, as valid distinct users with a `login` field. + # + # This is obviously a problem. + # To remedy, we first use the ?anon=1 parameter to force GitHub to include all committers emails, even + # those that it has, in its great and infinite wisdom, chosen to not properly attach to a GitHub account. + # + # Of course, this is normally an issue -- we use this API specifically because we want to only get + # committers with valid GitHub accounts, otherwise we pollute the contributor log with random aliases + # and names that people don't use, things like that. + # + # So, okay, solution: + # 1) Go over our list, and check for ones which only have a `name` and `email` field ('anonymous' contributors) + # and which dont already appear. + # 2) Check to see if the email ends with `@users.noreply.github.com`. + # - To my knowledge, GitHub includes an email in the form of `(numbers)+(username)@users.noreply.github.com` + # - when commits are made using someones GitHub account, and they aren't attaching another email to their account + # 3) If an email of this form was found, we can assume this is one of the 'missing' contribs and extract their GitHub username. + # 4) If an email of this form -wasn't- found, but they're still anonymous, we -unfortunately- still have to check if they're a valid GitHub user + # because GitHub might have just force-anonymized them anyway! + # + # It's possible their `name` is a valid GitHub user, but that this is a coincidence and they aren't actually a contributor. + # There is kind of not really jack shit we can do about that! It's not that common though and it's probably more likely to attribute + # correctly than not. + # 5) Then, we just add a `login` field to our object with their true username and let the rest of the code do its job. + + foreach ($contributor in $r) + { + if ($null -ne $contributor.name ` + -And $null -ne $contributor.email ` + -And $contributor.email -match '\d+\+(.*)@users\.noreply\.github\.com$') + { + $username = $Matches.1 + # Use their `name` if its equivalent to the extracted username, + # since that one will have proper casing. Otherwise just let them be a lowercasecel + if ($contributor.name.ToLower() -eq $username) + { + $username = $contributor.name + } + + if (($r).login -contains $username) + { + continue + } + + $contributor | Add-Member -MemberType NoteProperty -Name "login" -Value $username + } + elseif ($null -eq $contributor.login ` + -And $null -ne $contributor.name ` + -And !$contributor.name.Contains(" ")) + { + $username = $contributor.name + # They're an anonymous user, without a GH email, and their name doesn't contain a space + # (since a valid GH username can't have a space) + # Might still be a valid contrib??? + if (($r).login -contains $username) + { + continue + } + + $userUrl = "https://api.github.com/users/{0}" -f $username + + try + { + $userResp = Invoke-WebRequest $userUrl -Headers $headers + $userJ = ConvertFrom-Json $userResp.Content + $contributor | Add-Member -MemberType NoteProperty -Name "login" -Value $userJ.login + } + catch {} # if it 404s do nothing. powershell doesn't seem to really have a simpler way to do this. + } + } + return $r } @@ -34,4 +120,4 @@ $contentJson = load_contribs("space-wizards/space-station-14") | Where-Object { -not $ignore[$_] }` | ForEach-Object { if($replacements[$_] -eq $null){ $_ } else { $replacements[$_] }} ` | Sort-object ` - | Join-String -Separator ", " + | Join-String -Separator ", " \ No newline at end of file From e491bc98c02269bc5ee1d8624cf408be5ec23d05 Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 9 Sep 2024 19:31:32 +0000 Subject: [PATCH 029/192] Automatic changelog update --- Resources/Changelog/Changelog.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 5400bf4909..fa82989e90 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: Plykiya - changes: - - message: Do-after bars performed inside containers are hidden from view. - type: Add - id: 6829 - time: '2024-06-28T03:34:24.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/29487 - author: slarticodefast changes: - message: Passive vents now have the correct sprite. @@ -3878,3 +3871,11 @@ id: 7328 time: '2024-09-09T19:26:10.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/31978 +- author: Cojoke-dot + changes: + - message: Nuclear bombs now require the Nuclear Authentification Disk to toggle + anchor. + type: Tweak + id: 7329 + time: '2024-09-09T19:30:26.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/29565 From 2a7bc17a13e1273c3e41b7ca8eebef741dfa760d Mon Sep 17 00:00:00 2001 From: Hreno Date: Mon, 9 Sep 2024 21:31:53 +0200 Subject: [PATCH 030/192] Display agents' jobs in the Round End Summary window (#31652) --- Content.Server/Objectives/ObjectivesSystem.cs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Content.Server/Objectives/ObjectivesSystem.cs b/Content.Server/Objectives/ObjectivesSystem.cs index 61df1414c0..73bb74d524 100644 --- a/Content.Server/Objectives/ObjectivesSystem.cs +++ b/Content.Server/Objectives/ObjectivesSystem.cs @@ -13,6 +13,7 @@ using System.Linq; using System.Text; using Content.Server.Objectives.Commands; using Content.Shared.Prototypes; +using Content.Shared.Roles.Jobs; using Robust.Server.Player; using Robust.Shared.Utility; @@ -25,6 +26,7 @@ public sealed class ObjectivesSystem : SharedObjectivesSystem [Dependency] private readonly IPlayerManager _player = default!; [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly EmergencyShuttleSystem _emergencyShuttle = default!; + [Dependency] private readonly SharedJobSystem _job = default!; private IEnumerable? _objectives; @@ -257,7 +259,12 @@ public sealed class ObjectivesSystem : SharedObjectivesSystem _player.TryGetPlayerData(mind.Comp.OriginalOwnerUserId.Value, out var sessionData)) { var username = sessionData.UserName; - return Loc.GetString("objectives-player-user-named", ("user", username), ("name", name)); + + var nameWithJobMaybe = name; + if (_job.MindTryGetJobName(mind, out var jobName)) + nameWithJobMaybe += ", " + jobName; + + return Loc.GetString("objectives-player-user-named", ("user", username), ("name", nameWithJobMaybe)); } return Loc.GetString("objectives-player-named", ("name", name)); From 82af7688e90343df2ea8133f3116f495695e50e8 Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 9 Sep 2024 19:32:59 +0000 Subject: [PATCH 031/192] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index fa82989e90..711c4f3262 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: slarticodefast - changes: - - message: Passive vents now have the correct sprite. - type: Fix - id: 6830 - time: '2024-06-28T12:33:03.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/29536 - author: Plykiya changes: - message: Icons in the chameleon menu now appear correctly. @@ -3879,3 +3872,10 @@ id: 7329 time: '2024-09-09T19:30:26.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/29565 +- author: Hreno + changes: + - message: Display agents' jobs in the Round End Summary window. + type: Add + id: 7330 + time: '2024-09-09T19:31:53.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/31652 From 3f6846b8b294649467215bd35e7bf72f8b1b9ce0 Mon Sep 17 00:00:00 2001 From: deltanedas <39013340+deltanedas@users.noreply.github.com> Date: Mon, 9 Sep 2024 19:34:18 +0000 Subject: [PATCH 032/192] clean up electronics lathe recipes (#31524) * clean up electronics lathe recipes * result * make door and firelock cheap * engin --------- Co-authored-by: deltanedas <@deltanedas:kde.org> --- .../Prototypes/Recipes/Lathes/electronics.yml | 1205 ++++++----------- 1 file changed, 402 insertions(+), 803 deletions(-) diff --git a/Resources/Prototypes/Recipes/Lathes/electronics.yml b/Resources/Prototypes/Recipes/Lathes/electronics.yml index e0b95a23d7..e1295dd83d 100644 --- a/Resources/Prototypes/Recipes/Lathes/electronics.yml +++ b/Resources/Prototypes/Recipes/Lathes/electronics.yml @@ -1,994 +1,593 @@ +# Base protoypes + - type: latheRecipe - id: FirelockElectronics - result: FirelockElectronics + abstract: true + id: BaseElectronicsRecipe category: Circuitry completetime: 2 materials: - Steel: 100 - Plastic: 300 - -- type: latheRecipe - id: MailingUnitElectronics - result: MailingUnitElectronics - category: Circuitry - completetime: 4 - materials: - Steel: 50 + Steel: 100 Plastic: 300 - type: latheRecipe - id: CellRechargerCircuitboard - result: CellRechargerCircuitboard - category: Circuitry - completetime: 2 + abstract: true + parent: BaseElectronicsRecipe + id: BaseCheapElectronicsRecipe materials: Steel: 50 Plastic: 50 - type: latheRecipe - id: BorgChargerCircuitboard - result: BorgChargerCircuitboard - category: Circuitry - completetime: 2 - materials: - Steel: 50 - Plastic: 50 - -- type: latheRecipe - id: WeaponCapacitorRechargerCircuitboard - result: WeaponCapacitorRechargerCircuitboard - category: Circuitry - completetime: 2 - materials: - Steel: 50 - Plastic: 50 - -- type: latheRecipe - id: TurboItemRechargerCircuitboard - result: TurboItemRechargerCircuitboard - category: Circuitry - completetime: 2 - materials: - Steel: 500 - Plastic: 500 - Gold: 100 - -- type: latheRecipe - id: DoorElectronics - result: DoorElectronics - category: Circuitry - completetime: 2 - materials: - Steel: 50 - Plastic: 300 - -- type: latheRecipe - id: AirAlarmElectronics - result: AirAlarmElectronics - category: Circuitry - completetime: 2 - materials: - Steel: 100 - Plastic: 300 - -- type: latheRecipe - id: StationMapElectronics - result: StationMapCircuitboard - category: Circuitry - completetime: 2 - materials: - Steel: 50 - Plastic: 50 - -- type: latheRecipe - id: IntercomElectronics - result: IntercomElectronics - category: Circuitry - completetime: 2 - materials: - Steel: 50 - Plastic: 300 - -- type: latheRecipe - id: FireAlarmElectronics - result: FireAlarmElectronics - category: Circuitry - completetime: 2 - materials: - Steel: 100 - Plastic: 300 - -- type: latheRecipe - id: SignalTimerElectronics - result: SignalTimerElectronics - category: Circuitry - completetime: 2 - materials: - Steel: 50 - Plastic: 50 - -- type: latheRecipe - id: CloningPodMachineCircuitboard - result: CloningPodMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: ThermomachineFreezerMachineCircuitBoard - result: ThermomachineFreezerMachineCircuitBoard - category: Circuitry - completetime: 4 - materials: - Steel: 150 - Glass: 500 - Gold: 50 - -- type: latheRecipe - id: HellfireFreezerMachineCircuitBoard - result: HellfireFreezerMachineCircuitBoard - category: Circuitry - completetime: 4 - materials: - Steel: 150 - Glass: 500 - Gold: 50 - -- type: latheRecipe - id: CondenserMachineCircuitBoard - result: CondenserMachineCircuitBoard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - -- type: latheRecipe - id: PortableScrubberMachineCircuitBoard - result: PortableScrubberMachineCircuitBoard - category: Circuitry - completetime: 4 - materials: - Steel: 150 - Glass: 500 - Gold: 50 - -- type: latheRecipe - id: SpaceHeaterMachineCircuitBoard - result: SpaceHeaterMachineCircuitBoard - category: Circuitry - completetime: 4 - materials: - Steel: 150 - Glass: 500 - Gold: 50 - -- type: latheRecipe - id: MedicalScannerMachineCircuitboard - result: MedicalScannerMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - -- type: latheRecipe - id: CryoPodMachineCircuitboard - result: CryoPodMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: ChemMasterMachineCircuitboard - result: ChemMasterMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - -- type: latheRecipe - id: ChemDispenserMachineCircuitboard - result: ChemDispenserMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: BiomassReclaimerMachineCircuitboard - result: BiomassReclaimerMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: BiofabricatorMachineCircuitboard - result: BiofabricatorMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: HydroponicsTrayMachineCircuitboard - result: HydroponicsTrayMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - -- type: latheRecipe - id: AutolatheMachineCircuitboard - result: AutolatheMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - -- type: latheRecipe - id: ProtolatheMachineCircuitboard - result: ProtolatheMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - -- type: latheRecipe - id: AutolatheHyperConvectionMachineCircuitboard - result: AutolatheHyperConvectionMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: ProtolatheHyperConvectionMachineCircuitboard - result: ProtolatheHyperConvectionMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: CircuitImprinterMachineCircuitboard - result: CircuitImprinterMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - -- type: latheRecipe - id: CircuitImprinterHyperConvectionMachineCircuitboard - result: CircuitImprinterHyperConvectionMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 900 - Gold: 100 - - -- type: latheRecipe - id: ExosuitFabricatorMachineCircuitboard - result: ExosuitFabricatorMachineCircuitboard - category: Circuitry - completetime: 5 - materials: - Steel: 100 - Glass: 500 - -- type: latheRecipe - id: UniformPrinterMachineCircuitboard - result: UniformPrinterMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - -- type: latheRecipe - id: BiogeneratorMachineCircuitboard - result: BiogeneratorMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - -- type: latheRecipe - id: VaccinatorMachineCircuitboard - result: VaccinatorMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: DiagnoserMachineCircuitboard - result: DiagnoserMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: ArtifactAnalyzerMachineCircuitboard - result: ArtifactAnalyzerMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: ArtifactCrusherMachineCircuitboard - result: ArtifactCrusherMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: AnomalyVesselCircuitboard - result: AnomalyVesselCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - -- type: latheRecipe - id: AnomalyVesselExperimentalCircuitboard - result: AnomalyVesselExperimentalCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: AnomalySynchronizerCircuitboard - result: AnomalySynchronizerCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 700 - Silver: 100 - -- type: latheRecipe - id: APECircuitboard - result: APECircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - -- type: latheRecipe - id: ReagentGrinderMachineCircuitboard - result: ReagentGrinderMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - -- type: latheRecipe - id: HotplateMachineCircuitboard - result: HotplateMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - -- type: latheRecipe - id: AnalysisComputerCircuitboard - result: AnalysisComputerCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: TechDiskComputerCircuitboard - result: TechDiskComputerCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: ShuttleConsoleCircuitboard - result: ShuttleConsoleCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: RadarConsoleCircuitboard - result: RadarConsoleCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - -- type: latheRecipe - id: DawInstrumentMachineCircuitboard - result: DawInstrumentMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - -- type: latheRecipe - id: StasisBedMachineCircuitboard - result: StasisBedMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: ElectrolysisUnitMachineCircuitboard - result: ElectrolysisUnitMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - -- type: latheRecipe - id: CentrifugeMachineCircuitboard - result: CentrifugeMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - -- type: latheRecipe - id: OreProcessorMachineCircuitboard - result: OreProcessorMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - -- type: latheRecipe - id: OreProcessorIndustrialMachineCircuitboard - result: OreProcessorIndustrialMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: RipleyCentralElectronics - result: RipleyCentralElectronics - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: RipleyPeripheralsElectronics - result: RipleyPeripheralsElectronics - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: HonkerCentralElectronics - result: HonkerCentralElectronics - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Bananium: 100 - -- type: latheRecipe - id: HonkerPeripheralsElectronics - result: HonkerPeripheralsElectronics - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Bananium: 100 - -- type: latheRecipe - id: HonkerTargetingElectronics - result: HonkerTargetingElectronics - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Bananium: 100 - -- type: latheRecipe - id: HamtrCentralElectronics - result: HamtrCentralElectronics - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -- type: latheRecipe - id: HamtrPeripheralsElectronics - result: HamtrPeripheralsElectronics - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - -# Power -- type: latheRecipe - id: APCElectronics - result: APCElectronics - category: Circuitry - completetime: 2 + abstract: true + parent: BaseElectronicsRecipe + id: BaseCheapCircuitboardRecipe materials: Steel: 50 Glass: 250 - type: latheRecipe + abstract: true + parent: BaseElectronicsRecipe + id: BaseCircuitboardRecipe + completetime: 4 + materials: + Steel: 100 + Glass: 500 + +- type: latheRecipe + abstract: true + parent: BaseCircuitboardRecipe + id: BaseGoldCircuitboardRecipe + materials: + Steel: 100 + Glass: 500 + Gold: 100 + +- type: latheRecipe + abstract: true + parent: BaseCircuitboardRecipe + id: BaseSilverCircuitboardRecipe + materials: + Steel: 100 + Glass: 500 + Silver: 100 + +- type: latheRecipe + abstract: true + parent: BaseCircuitboardRecipe + id: BaseBananiumCircuitboardRecipe + materials: + Steel: 100 + Glass: 500 + Bananium: 100 + +# Recipes + +- type: latheRecipe + parent: BaseCheapElectronicsRecipe + id: FirelockElectronics + result: FirelockElectronics + +- type: latheRecipe + parent: BaseElectronicsRecipe + id: MailingUnitElectronics + result: MailingUnitElectronics + +- type: latheRecipe + parent: BaseCheapElectronicsRecipe + id: CellRechargerCircuitboard + result: CellRechargerCircuitboard + +- type: latheRecipe + parent: CellRechargerCircuitboard + id: BorgChargerCircuitboard + result: BorgChargerCircuitboard + +- type: latheRecipe + parent: CellRechargerCircuitboard + id: WeaponCapacitorRechargerCircuitboard + result: WeaponCapacitorRechargerCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: TurboItemRechargerCircuitboard + result: TurboItemRechargerCircuitboard + +- type: latheRecipe + parent: BaseCheapElectronicsRecipe + id: DoorElectronics + result: DoorElectronics + +- type: latheRecipe + parent: BaseElectronicsRecipe + id: AirAlarmElectronics + result: AirAlarmElectronics + +- type: latheRecipe + parent: BaseCheapElectronicsRecipe + id: StationMapElectronics + result: StationMapCircuitboard + +- type: latheRecipe + parent: BaseElectronicsRecipe + id: IntercomElectronics + result: IntercomElectronics + +- type: latheRecipe + parent: BaseElectronicsRecipe + id: FireAlarmElectronics + result: FireAlarmElectronics + +- type: latheRecipe + parent: BaseCheapElectronicsRecipe + id: SignalTimerElectronics + result: SignalTimerElectronics + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: CloningPodMachineCircuitboard + result: CloningPodMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: ThermomachineFreezerMachineCircuitBoard + result: ThermomachineFreezerMachineCircuitBoard + +- type: latheRecipe + parent: BaseSilverCircuitboardRecipe + id: HellfireFreezerMachineCircuitBoard + result: HellfireFreezerMachineCircuitBoard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: CondenserMachineCircuitBoard + result: CondenserMachineCircuitBoard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: PortableScrubberMachineCircuitBoard + result: PortableScrubberMachineCircuitBoard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: SpaceHeaterMachineCircuitBoard + result: SpaceHeaterMachineCircuitBoard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: MedicalScannerMachineCircuitboard + result: MedicalScannerMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: CryoPodMachineCircuitboard + result: CryoPodMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: ChemMasterMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: ChemDispenserMachineCircuitboard + result: ChemDispenserMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: BiomassReclaimerMachineCircuitboard + result: BiomassReclaimerMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: BiofabricatorMachineCircuitboard + result: BiofabricatorMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: HydroponicsTrayMachineCircuitboard + result: HydroponicsTrayMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: AutolatheMachineCircuitboard + result: AutolatheMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: ProtolatheMachineCircuitboard + result: ProtolatheMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: AutolatheHyperConvectionMachineCircuitboard + result: AutolatheHyperConvectionMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: ProtolatheHyperConvectionMachineCircuitboard + result: ProtolatheHyperConvectionMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: CircuitImprinterMachineCircuitboard + result: CircuitImprinterMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: CircuitImprinterHyperConvectionMachineCircuitboard + result: CircuitImprinterHyperConvectionMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: ExosuitFabricatorMachineCircuitboard + result: ExosuitFabricatorMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: UniformPrinterMachineCircuitboard + result: UniformPrinterMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: BiogeneratorMachineCircuitboard + result: BiogeneratorMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: VaccinatorMachineCircuitboard + result: VaccinatorMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: DiagnoserMachineCircuitboard + result: DiagnoserMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: ArtifactAnalyzerMachineCircuitboard + result: ArtifactAnalyzerMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: ArtifactCrusherMachineCircuitboard + result: ArtifactCrusherMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: AnomalyVesselCircuitboard + result: AnomalyVesselCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: AnomalyVesselExperimentalCircuitboard + result: AnomalyVesselExperimentalCircuitboard + +- type: latheRecipe + parent: BaseSilverCircuitboardRecipe + id: AnomalySynchronizerCircuitboard + result: AnomalySynchronizerCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: APECircuitboard + result: APECircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: ReagentGrinderMachineCircuitboard + result: ReagentGrinderMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: HotplateMachineCircuitboard + result: HotplateMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: AnalysisComputerCircuitboard + result: AnalysisComputerCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: TechDiskComputerCircuitboard + result: TechDiskComputerCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: ShuttleConsoleCircuitboard + result: ShuttleConsoleCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: RadarConsoleCircuitboard + result: RadarConsoleCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: DawInstrumentMachineCircuitboard + result: DawInstrumentMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: StasisBedMachineCircuitboard + result: StasisBedMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: ElectrolysisUnitMachineCircuitboard + result: ElectrolysisUnitMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: CentrifugeMachineCircuitboard + result: CentrifugeMachineCircuitboard + +- type: latheRecipe + parent: BaseCircuitboardRecipe + id: OreProcessorMachineCircuitboard + result: OreProcessorMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: OreProcessorIndustrialMachineCircuitboard + result: OreProcessorIndustrialMachineCircuitboard + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: RipleyCentralElectronics + result: RipleyCentralElectronics + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: RipleyPeripheralsElectronics + result: RipleyPeripheralsElectronics + +- type: latheRecipe + parent: BaseBananiumCircuitboardRecipe + id: HonkerCentralElectronics + result: HonkerCentralElectronics + +- type: latheRecipe + parent: BaseBananiumCircuitboardRecipe + id: HonkerPeripheralsElectronics + result: HonkerPeripheralsElectronics + +- type: latheRecipe + parent: BaseBananiumCircuitboardRecipe + id: HonkerTargetingElectronics + result: HonkerTargetingElectronics + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: HamtrCentralElectronics + result: HamtrCentralElectronics + +- type: latheRecipe + parent: BaseGoldCircuitboardRecipe + id: HamtrPeripheralsElectronics + result: HamtrPeripheralsElectronics + +# Power +- type: latheRecipe + parent: BaseCheapCircuitboardRecipe + id: APCElectronics + result: APCElectronics + +- type: latheRecipe + parent: BaseCircuitboardRecipe id: SubstationMachineCircuitboard result: SubstationMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 50 - Glass: 450 - type: latheRecipe + parent: BaseCircuitboardRecipe id: WallmountSubstationElectronics result: WallmountSubstationElectronics - category: Circuitry - completetime: 4 - materials: - Steel: 50 - Glass: 450 - type: latheRecipe + parent: BaseCircuitboardRecipe id: SMESMachineCircuitboard result: SMESMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseCircuitboardRecipe id: PortableGeneratorPacmanMachineCircuitboard result: PortableGeneratorPacmanMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 50 - Glass: 350 - type: latheRecipe + parent: PortableGeneratorPacmanMachineCircuitboard id: PortableGeneratorSuperPacmanMachineCircuitboard result: PortableGeneratorSuperPacmanMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 50 - Glass: 350 - type: latheRecipe + parent: PortableGeneratorPacmanMachineCircuitboard id: PortableGeneratorJrPacmanMachineCircuitboard result: PortableGeneratorJrPacmanMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 50 - Glass: 350 - -- type: latheRecipe - id: WallmountGeneratorElectronics - result: WallmountGeneratorElectronics - category: Circuitry - completetime: 4 - materials: - Steel: 50 - Glass: 150 - -- type: latheRecipe - id: WallmountGeneratorAPUElectronics - result: WallmountGeneratorAPUElectronics - category: Circuitry - completetime: 4 - materials: - Steel: 50 - Glass: 350 - type: latheRecipe + parent: BaseCircuitboardRecipe id: SolarControlComputerCircuitboard result: SolarControlComputerCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseCircuitboardRecipe id: SolarTrackerElectronics result: SolarTrackerElectronics - category: Circuitry - completetime: 4 - materials: - Steel: 150 - Glass: 600 - type: latheRecipe + parent: BaseCircuitboardRecipe id: PowerComputerCircuitboard result: PowerComputerCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseCircuitboardRecipe id: CloningConsoleComputerCircuitboard result: CloningConsoleComputerCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseCircuitboardRecipe id: MicrowaveMachineCircuitboard - result: MicrowaveMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseCircuitboardRecipe id: ElectricGrillMachineCircuitboard result: ElectricGrillMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseCircuitboardRecipe id: FatExtractorMachineCircuitboard result: FatExtractorMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseGoldCircuitboardRecipe id: FlatpackerMachineCircuitboard result: FlatpackerMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - type: latheRecipe + parent: BaseCircuitboardRecipe id: SheetifierMachineCircuitboard result: SheetifierMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseCircuitboardRecipe id: SurveillanceCameraRouterCircuitboard result: SurveillanceCameraRouterCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseCircuitboardRecipe id: SurveillanceCameraWirelessRouterCircuitboard result: SurveillanceCameraWirelessRouterCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseCircuitboardRecipe id: SurveillanceWirelessCameraAnchoredCircuitboard result: SurveillanceWirelessCameraAnchoredCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseCircuitboardRecipe id: SurveillanceWirelessCameraMovableCircuitboard result: SurveillanceWirelessCameraMovableCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseCircuitboardRecipe id: SurveillanceCameraMonitorCircuitboard result: SurveillanceCameraMonitorCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseCircuitboardRecipe id: SurveillanceWirelessCameraMonitorCircuitboard result: SurveillanceWirelessCameraMonitorCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseCircuitboardRecipe id: ComputerTelevisionCircuitboard result: ComputerTelevisionCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseCircuitboardRecipe id: EmitterCircuitboard result: EmitterCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseCircuitboardRecipe id: ThrusterMachineCircuitboard result: ThrusterMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseCircuitboardRecipe id: GyroscopeMachineCircuitboard result: GyroscopeMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseCircuitboardRecipe id: GasRecyclerMachineCircuitboard result: GasRecyclerMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseCircuitboardRecipe id: SeedExtractorMachineCircuitboard result: SeedExtractorMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseCircuitboardRecipe id: BoozeDispenserMachineCircuitboard result: BoozeDispenserMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseGoldCircuitboardRecipe id: CargoTelepadMachineCircuitboard result: CargoTelepadMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - type: latheRecipe + parent: BaseCircuitboardRecipe id: SodaDispenserMachineCircuitboard result: SodaDispenserMachineCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseCircuitboardRecipe id: TelecomServerCircuitboard result: TelecomServerCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseCircuitboardRecipe id: MassMediaCircuitboard result: ComputerMassMediaCircuitboard - category: Circuitry - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseGoldCircuitboardRecipe id: MiniGravityGeneratorCircuitboard - result: MiniGravityGeneratorCircuitboard - category: Circuitry - completetime: 6 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - type: latheRecipe + parent: BaseCircuitboardRecipe id: PowerCageRechargerCircuitboard result: PowerCageRechargerCircuitboard - completetime: 6 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseCircuitboardRecipe id: ShuttleGunSvalinnMachineGunCircuitboard result: ShuttleGunSvalinnMachineGunCircuitboard completetime: 6 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseGoldCircuitboardRecipe id: ShuttleGunPerforatorCircuitboard result: ShuttleGunPerforatorCircuitboard completetime: 10 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - type: latheRecipe + parent: BaseCircuitboardRecipe id: ShuttleGunKineticCircuitboard result: ShuttleGunKineticCircuitboard completetime: 6 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseGoldCircuitboardRecipe id: ShuttleGunFriendshipCircuitboard result: ShuttleGunFriendshipCircuitboard completetime: 8 - materials: - Steel: 100 - Glass: 500 - Gold: 50 - type: latheRecipe + parent: BaseGoldCircuitboardRecipe id: ShuttleGunDusterCircuitboard result: ShuttleGunDusterCircuitboard completetime: 12 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - type: latheRecipe + parent: BaseGoldCircuitboardRecipe id: StationAnchorCircuitboard result: StationAnchorCircuitboard - category: Circuitry completetime: 8 - materials: - Steel: 100 - Glass: 900 - Gold: 100 - type: latheRecipe + parent: BaseGoldCircuitboardRecipe id: ReagentGrinderIndustrialMachineCircuitboard result: ReagentGrinderIndustrialMachineCircuitboard - completetime: 5 - materials: - Steel: 100 - Glass: 500 - Gold: 100 - type: latheRecipe + parent: BaseCircuitboardRecipe id: JukeboxCircuitBoard result: JukeboxCircuitBoard - completetime: 4 - materials: - Steel: 100 - Glass: 500 - type: latheRecipe + parent: BaseCircuitboardRecipe id: CutterMachineCircuitboard result: CutterMachineCircuitboard - completetime: 4 - materials: - Steel: 100 - Glass: 500 From 38a65346ae1d868a4fe6785122262ebffc79aea2 Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 9 Sep 2024 19:35:24 +0000 Subject: [PATCH 033/192] Automatic changelog update --- Resources/Changelog/Changelog.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 711c4f3262..dd4e754601 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: Plykiya - changes: - - message: Icons in the chameleon menu now appear correctly. - type: Fix - id: 6831 - time: '2024-06-28T21:21:36.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/29539 - author: DogZeroX changes: - message: Bananium no longer emit rads @@ -3879,3 +3872,11 @@ id: 7330 time: '2024-09-09T19:31:53.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/31652 +- author: deltanedas + changes: + - message: Adjusted the costs and production times of all electronics so they're + more consistent with eachother. + type: Tweak + id: 7331 + time: '2024-09-09T19:34:18.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/31524 From 2452e4647652a09a968ebc1cc09e9ccd301720f4 Mon Sep 17 00:00:00 2001 From: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com> Date: Mon, 9 Sep 2024 14:35:47 -0500 Subject: [PATCH 034/192] Completes secure wiring across all airlocks and windoors (#30794) Co-authored-by: Velcroboy --- .../Structures/Doors/Airlocks/access.yml | 28 +++++- .../Structures/Doors/Airlocks/external.yml | 2 + .../Doors/Windoors/base_structurewindoors.yml | 14 +++ .../Structures/Doors/Windoors/windoor.yml | 86 ++++++++++++++---- .../Graphs/structures/windoor.yml | 89 ++++++++++++++++++- Resources/Prototypes/Wires/layouts.yml | 4 + Resources/Prototypes/tags.yml | 9 ++ 7 files changed, 210 insertions(+), 22 deletions(-) diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/access.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/access.yml index 0c280f339a..51484b9599 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/access.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/access.yml @@ -90,6 +90,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsCargo ] + - type: Wires + layoutId: AirlockCargo - type: entity parent: AirlockExternal @@ -99,6 +101,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsEngineering ] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: AirlockExternal @@ -108,6 +112,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsAtmospherics ] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: AirlockExternal @@ -117,6 +123,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsSyndicateAgent ] + - type: Wires + layoutId: AirlockSecurity - type: entity parent: AirlockExternal @@ -126,6 +134,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsNukeop ] + - type: Wires + layoutId: AirlockSecurity - type: entity parent: AirlockFreezer @@ -431,7 +441,7 @@ board: [ DoorElectronicsTheatre ] - type: entity - parent: AirlockGlass + parent: AirlockServiceGlassLocked id: AirlockBarGlassLocked suffix: Bar, Locked components: @@ -456,6 +466,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsCargo ] + - type: Wires + layoutId: AirlockCargo - type: entity parent: AirlockExternalGlass @@ -465,6 +477,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsSyndicateAgent ] + - type: Wires + layoutId: AirlockSecurity - type: entity parent: AirlockExternalGlass @@ -474,6 +488,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsNukeop ] + - type: Wires + layoutId: AirlockSecurity - type: entity parent: AirlockExternalGlass @@ -483,6 +499,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsEngineering ] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: AirlockExternalGlass @@ -492,6 +510,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsAtmospherics ] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: AirlockServiceGlassLocked @@ -1153,6 +1173,9 @@ components: - type: PriorityDock tag: DockArrivals + - type: ContainerFill + containers: + board: [ DoorElectronicsExternal ] - type: entity parent: AirlockGlassShuttle @@ -1164,6 +1187,9 @@ - type: IFF flags: - HideLabel + - type: ContainerFill + containers: + board: [ DoorElectronicsExternal ] #HighSecDoors - type: entity diff --git a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/external.yml b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/external.yml index 3197ba417f..7f5c019025 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Airlocks/external.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Airlocks/external.yml @@ -19,6 +19,8 @@ - type: PaintableAirlock group: External department: null + - type: Wires + layoutId: AirlockExternal - type: entity parent: AirlockExternal diff --git a/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml b/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml index e9d95f90be..800affffbb 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Windoors/base_structurewindoors.yml @@ -204,6 +204,11 @@ node: windoorSecure - type: StaticPrice price: 350 + - type: Tag + tags: + - SecureWindoor + # This tag is used to nagivate the Airlock construction graph. It's needed because the construction graph is shared between Airlock, AirlockGlass, and HighSecDoor + #Plasma Windoors - type: entity @@ -314,6 +319,11 @@ price: 500 - type: RadiationBlocker resistance: 4 + - type: Tag + tags: + - SecurePlasmaWindoor + # This tag is used to nagivate the Airlock construction graph. It's needed because the construction graph is shared between Airlock, AirlockGlass, and HighSecDoor + #Uranium Windoors - type: entity @@ -424,3 +434,7 @@ price: 750 - type: RadiationBlocker resistance: 5 + - type: Tag + tags: + - SecureUraniumWindoor + # This tag is used to nagivate the Airlock construction graph. It's needed because the construction graph is shared between Airlock, AirlockGlass, and HighSecDoor diff --git a/Resources/Prototypes/Entities/Structures/Doors/Windoors/windoor.yml b/Resources/Prototypes/Entities/Structures/Doors/Windoors/windoor.yml index 089d5f81d1..2501a9fb7a 100644 --- a/Resources/Prototypes/Entities/Structures/Doors/Windoors/windoor.yml +++ b/Resources/Prototypes/Entities/Structures/Doors/Windoors/windoor.yml @@ -44,7 +44,7 @@ # Windoors (alphabetical) - type: entity - parent: Windoor + parent: WindoorServiceLocked id: WindoorBarLocked suffix: Bar, Locked components: @@ -53,7 +53,7 @@ board: [ DoorElectronicsBar ] - type: entity - parent: Windoor + parent: WindoorServiceLocked id: WindoorBarKitchenLocked suffix: Bar&Kitchen, Locked components: @@ -69,6 +69,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsCargo ] + - type: Wires + layoutId: AirlockCargo - type: entity parent: Windoor @@ -80,7 +82,7 @@ board: [ DoorElectronicsChapel ] - type: entity - parent: Windoor + parent: WindoorServiceLocked id: WindoorHydroponicsLocked suffix: Hydroponics, Locked components: @@ -89,7 +91,7 @@ board: [ DoorElectronicsHydroponics ] - type: entity - parent: Windoor + parent: WindoorServiceLocked id: WindoorJanitorLocked suffix: Janitor, Locked components: @@ -105,9 +107,11 @@ - type: ContainerFill containers: board: [ DoorElectronicsJanitor ] + - type: Wires + layoutId: AirlockService - type: entity - parent: Windoor + parent: WindoorServiceLocked id: WindoorKitchenLocked suffix: Kitchen, Locked components: @@ -116,7 +120,7 @@ board: [ DoorElectronicsKitchen ] - type: entity - parent: Windoor + parent: WindoorServiceLocked id: WindoorKitchenHydroponicsLocked suffix: Kitchen&Hydroponics, Locked components: @@ -132,9 +136,11 @@ - type: ContainerFill containers: board: [ DoorElectronicsService ] + - type: Wires + layoutId: AirlockService - type: entity - parent: Windoor + parent: WindoorServiceLocked id: WindoorTheatreLocked suffix: Theatre, Locked components: @@ -145,13 +151,15 @@ # Secure - type: entity - parent: WindoorSecureSecurityLocked + parent: WindoorSecure id: WindoorSecureArmoryLocked suffix: Armory, Locked components: - type: ContainerFill containers: board: [ DoorElectronicsArmory ] + - type: Wires + layoutId: AirlockArmory - type: entity parent: WindoorSecurePlasma @@ -161,9 +169,11 @@ - type: ContainerFill containers: board: [ DoorElectronicsArmory ] + - type: Wires + layoutId: AirlockArmory - type: entity - parent: WindoorSecure + parent: WindoorSecureEngineeringLocked id: WindoorSecureAtmosphericsLocked suffix: Atmospherics, Locked components: @@ -172,7 +182,7 @@ board: [ DoorElectronicsAtmospherics ] - type: entity - parent: WindoorSecurePlasma + parent: PlasmaWindoorSecureEngineeringLocked id: PlasmaWindoorSecureAtmosphericsLocked suffix: Atmospherics, Locked, Plasma components: @@ -181,7 +191,7 @@ board: [ DoorElectronicsAtmospherics ] - type: entity - parent: WindoorSecure + parent: WindoorSecureServiceLocked id: WindoorSecureBarLocked suffix: Bar, Locked components: @@ -206,6 +216,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsCargo ] + - type: Wires + layoutId: AirlockCargo - type: entity parent: WindoorSecure @@ -217,7 +229,7 @@ board: [ DoorElectronicsChapel ] - type: entity - parent: WindoorSecure + parent: WindoorSecureMedicalLocked id: WindoorSecureChemistryLocked suffix: Chemistry, Locked components: @@ -233,9 +245,11 @@ - type: ContainerFill containers: board: [ DoorElectronicsChemistry ] + - type: Wires + layoutId: AirlockMedical - type: entity - parent: WindoorSecure + parent: WindoorSecureCommandLocked id: WindoorSecureCentralCommandLocked suffix: Central Command, Locked components: @@ -244,7 +258,7 @@ board: [ DoorElectronicsCentralCommand ] - type: entity - parent: WindoorSecurePlasma + parent: PlasmaWindoorSecureCommandLocked id: PlasmaWindoorSecureCentralCommandLocked suffix: Central Command, Locked, Plasma components: @@ -260,6 +274,10 @@ - type: ContainerFill containers: board: [ DoorElectronicsCentralCommand ] + - type: WiresPanelSecurity + securityLevel: medSecurity + - type: Wires + layoutId: AirlockCommand - type: entity parent: WindoorSecure @@ -269,6 +287,10 @@ - type: ContainerFill containers: board: [ DoorElectronicsCommand ] + - type: WiresPanelSecurity + securityLevel: medSecurity + - type: Wires + layoutId: AirlockCommand - type: entity parent: WindoorSecurePlasma @@ -278,9 +300,13 @@ - type: ContainerFill containers: board: [ DoorElectronicsCommand ] + - type: WiresPanelSecurity + securityLevel: medSecurity + - type: Wires + layoutId: AirlockCommand - type: entity - parent: WindoorSecure + parent: WindoorSecureSecurityLocked id: WindoorSecureDetectiveLocked suffix: Detective, Locked components: @@ -296,6 +322,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsEngineering ] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: WindoorSecurePlasma @@ -305,6 +333,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsEngineering ] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: WindoorSecureUranium @@ -314,6 +344,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsEngineering ] + - type: Wires + layoutId: AirlockEngineering - type: entity parent: WindoorSecure @@ -323,9 +355,11 @@ - type: ContainerFill containers: board: [ DoorElectronicsExternal ] + - type: Wires + layoutId: AirlockExternal - type: entity - parent: WindoorSecure + parent: WindoorSecureServiceLocked id: WindoorSecureJanitorLocked suffix: Janitor, Locked components: @@ -341,9 +375,11 @@ - type: ContainerFill containers: board: [ DoorElectronicsJanitor ] + - type: Wires + layoutId: AirlockService - type: entity - parent: WindoorSecure + parent: WindoorSecureServiceLocked id: WindoorSecureKitchenLocked suffix: Kitchen, Locked components: @@ -368,9 +404,11 @@ - type: ContainerFill containers: board: [ DoorElectronicsMedical ] + - type: Wires + layoutId: AirlockMedical - type: entity - parent: WindoorSecure + parent: WindoorSecureCargoLocked id: WindoorSecureSalvageLocked suffix: Salvage, Locked components: @@ -386,6 +424,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsSecurity ] + - type: Wires + layoutId: AirlockSecurity - type: entity parent: WindoorSecurePlasma @@ -395,6 +435,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsSecurity ] + - type: Wires + layoutId: AirlockSecurity - type: entity parent: WindoorSecure @@ -404,6 +446,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsResearch ] + - type: Wires + layoutId: AirlockScience - type: entity parent: WindoorSecurePlasma @@ -413,6 +457,8 @@ - type: ContainerFill containers: board: [ DoorElectronicsResearch ] + - type: Wires + layoutId: AirlockScience - type: entity parent: WindoorSecure @@ -422,9 +468,11 @@ - type: ContainerFill containers: board: [ DoorElectronicsService ] + - type: Wires + layoutId: AirlockService - type: entity - parent: WindoorSecure + parent: WindoorSecureCommandLocked id: WindoorSecureHeadOfPersonnelLocked suffix: HeadOfPersonnel, Locked components: diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/structures/windoor.yml b/Resources/Prototypes/Recipes/Construction/Graphs/structures/windoor.yml index de89663467..b56c48d0df 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/structures/windoor.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/structures/windoor.yml @@ -370,7 +370,6 @@ - tool: Screwing doAfter: 4 - - node: wiredSecure entity: WindoorAssemblySecure edges: @@ -406,6 +405,10 @@ - node: windoorSecure entity: WindoorSecure + doNotReplaceInheritingEntities: true + actions: + - !type:SetWiresPanelSecurity + wiresAccessible: true edges: - to: wiredSecure conditions: @@ -422,6 +425,15 @@ - tool: Anchoring doAfter: 4 + - to: medSecurityUnfinished + conditions: + - !type:WirePanel {} + steps: + - material: Steel + amount: 2 + doAfter: 2 + +#Clockwork - node: assemblyClockwork entity: WindoorAssemblyClockwork actions: @@ -580,6 +592,10 @@ - node: pwindoorSecure entity: WindoorSecurePlasma + doNotReplaceInheritingEntities: true + actions: + - !type:SetWiresPanelSecurity + wiresAccessible: true edges: - to: pwiredSecure conditions: @@ -619,7 +635,6 @@ - tool: Screwing doAfter: 4 - - node: uwiredSecure entity: WindoorAssemblySecureUranium edges: @@ -655,6 +670,10 @@ - node: uwindoorSecure entity: WindoorSecureUranium + doNotReplaceInheritingEntities: true + actions: + - !type:SetWiresPanelSecurity + wiresAccessible: true edges: - to: uwiredSecure conditions: @@ -670,3 +689,69 @@ steps: - tool: Anchoring doAfter: 4 + +#Security Panels + - node: medSecurityUnfinished + actions: + - !type:SetWiresPanelSecurity + examine: wires-panel-component-on-examine-security-level1 + wiresAccessible: false + edges: + - to: windoorSecure + completed: + - !type:GivePrototype + prototype: SheetSteel1 + amount: 2 + conditions: + - !type:WirePanel {} + - !type:HasTag + tag: SecureWindoor + steps: + - tool: Prying + doAfter: 4 + + - to: pwindoorSecure + completed: + - !type:GivePrototype + prototype: SheetSteel1 + amount: 2 + conditions: + - !type:WirePanel {} + - !type:HasTag + tag: SecurePlasmaWindoor + steps: + - tool: Prying + doAfter: 4 + + - to: uwindoorSecure + completed: + - !type:GivePrototype + prototype: SheetSteel1 + amount: 2 + conditions: + - !type:WirePanel {} + - !type:HasTag + tag: SecureUraniumWindoor + steps: + - tool: Prying + doAfter: 4 + + - to: medSecurity + conditions: + - !type:WirePanel {} + steps: + - tool: Welding + doAfter: 3 + + - node: medSecurity + actions: + - !type:SetWiresPanelSecurity + examine: wires-panel-component-on-examine-security-level2 + wiresAccessible: false + edges: + - to: medSecurityUnfinished + conditions: + - !type:WirePanel {} + steps: + - tool: Welding + doAfter: 10 diff --git a/Resources/Prototypes/Wires/layouts.yml b/Resources/Prototypes/Wires/layouts.yml index 70b11ca7ed..7b42ef8b75 100644 --- a/Resources/Prototypes/Wires/layouts.yml +++ b/Resources/Prototypes/Wires/layouts.yml @@ -43,6 +43,10 @@ parent: Airlock id: AirlockArmory +- type: wireLayout + parent: Airlock + id: AirlockExternal + - type: wireLayout id: HighSec wires: diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index cfe1ecfdea..e2400265f2 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -1157,6 +1157,15 @@ id: SecBeltEquip - type: Tag + id: SecurePlasmaWindoor + +- type: Tag + id: SecureUraniumWindoor + +- type: Tag + id: SecureWindoor + +- type: Tag id: SecurityHelmet - type: Tag From 2263311ce2899ec7fd2845f81736b70f787017bc Mon Sep 17 00:00:00 2001 From: Winkarst <74284083+Winkarst-cpu@users.noreply.github.com> Date: Mon, 9 Sep 2024 22:36:25 +0300 Subject: [PATCH 035/192] Fix some contraband issues (#31606) * Fix some contraband issues * Flaming fire axe to Syndie contraband * Add Central Command department and contraband group * Restricted encryption keys * ERT gas mask * Thieving beacon * Bladed flatcaps * Advanced circular saw and thief toolbox * Acolyte armor * Magazines and cartridges * SMG magazines * Grenades * Mercenary clothing and combat gloves * ERT, Deathsquad and Central Command Official items * Update * Who the fuck putted ERT into fun?! * Fix * Yeah * I forgot --- .../Locale/en-US/job/department-desc.ftl | 1 + Resources/Locale/en-US/job/department.ftl | 1 + Resources/Locale/en-US/job/job-names.ftl | 2 + .../Prototypes/Catalog/Fills/Items/misc.yml | 2 +- .../Entities/Clothing/Back/backpacks.yml | 2 +- .../Entities/Clothing/Back/duffel.yml | 2 +- .../Entities/Clothing/Belt/belts.yml | 2 +- .../Entities/Clothing/Ears/headsets.yml | 2 +- .../Entities/Clothing/Hands/gloves.yml | 2 +- .../Clothing/Head/hardsuit-helmets.yml | 16 ++-- .../Entities/Clothing/Head/hats.yml | 6 +- .../Entities/Clothing/Head/helmets.yml | 12 +-- .../Entities/Clothing/Masks/masks.yml | 4 +- .../Entities/Clothing/Neck/scarfs.yml | 2 +- .../Entities/Clothing/OuterClothing/armor.yml | 2 +- .../Clothing/OuterClothing/hardsuits.yml | 12 +-- .../Clothing/OuterClothing/wintercoats.yml | 4 +- .../Entities/Clothing/Shoes/boots.yml | 2 +- .../Entities/Clothing/Uniforms/jumpsuits.yml | 20 ++--- .../Objects/Devices/encryption_keys.yml | 26 +++--- .../Objects/Misc/identification_cards.yml | 56 ++++++------- .../Objects/Specific/Medical/surgery.yml | 2 +- .../Entities/Objects/Tools/thief_beacon.yml | 3 +- .../Entities/Objects/Tools/toolbox.yml | 2 +- .../Ammunition/Cartridges/antimateriel.yml | 2 +- .../Ammunition/Cartridges/caseless_rifle.yml | 2 +- .../Ammunition/Cartridges/heavy_rifle.yml | 2 +- .../Ammunition/Cartridges/light_rifle.yml | 2 +- .../Guns/Ammunition/Cartridges/magnum.yml | 2 +- .../Guns/Ammunition/Cartridges/pistol.yml | 2 +- .../Guns/Ammunition/Cartridges/rifle.yml | 2 +- .../Guns/Ammunition/Cartridges/shotgun.yml | 4 +- .../Ammunition/Magazines/caseless_rifle.yml | 2 +- .../Guns/Ammunition/Magazines/grenade.yml | 6 +- .../Guns/Ammunition/Magazines/heavy_rifle.yml | 2 +- .../Guns/Ammunition/Magazines/light_rifle.yml | 2 +- .../Guns/Ammunition/Magazines/magnum.yml | 2 +- .../Guns/Ammunition/Magazines/pistol.yml | 8 +- .../Guns/Ammunition/Magazines/rifle.yml | 2 +- .../Guns/Ammunition/Magazines/shotgun.yml | 2 +- .../Guns/Ammunition/SpeedLoaders/magnum.yml | 2 +- .../Guns/Ammunition/SpeedLoaders/pistol.yml | 2 +- .../Ammunition/SpeedLoaders/rifle_light.yml | 2 +- .../Objects/Weapons/Melee/fireaxe.yml | 2 +- .../Entities/Objects/Weapons/Melee/knife.yml | 2 +- .../Objects/Weapons/Throwable/grenades.yml | 6 +- .../Entities/Objects/base_contraband.yml | 83 ++++++++++++++++--- .../Prototypes/Roles/Jobs/CentComm/cburn.yml | 37 +++++++++ .../Roles/Jobs/CentComm/deathsquad.yml | 44 ++++++++++ .../emergencyresponseteam.yml | 0 .../official.yml} | 0 .../Roles/Jobs/Fun/misc_startinggear.yml | 55 ------------ .../Prototypes/Roles/Jobs/departments.yml | 28 ++++++- .../Prototypes/Roles/play_time_trackers.yml | 6 ++ 54 files changed, 306 insertions(+), 192 deletions(-) create mode 100644 Resources/Prototypes/Roles/Jobs/CentComm/cburn.yml create mode 100644 Resources/Prototypes/Roles/Jobs/CentComm/deathsquad.yml rename Resources/Prototypes/Roles/Jobs/{Fun => CentComm}/emergencyresponseteam.yml (100%) rename Resources/Prototypes/Roles/Jobs/{Command/centcom_official.yml => CentComm/official.yml} (100%) diff --git a/Resources/Locale/en-US/job/department-desc.ftl b/Resources/Locale/en-US/job/department-desc.ftl index 0243d61942..6357727432 100644 --- a/Resources/Locale/en-US/job/department-desc.ftl +++ b/Resources/Locale/en-US/job/department-desc.ftl @@ -1,6 +1,7 @@ department-Cargo-description = Complete bounties, earn Spessos, and order useful supplies for the crew. department-Civilian-description = Perform small helpful tasks to keep the station sane and well catered. department-Command-description = Manage the crew and keep them working efficiently. +department-CentralCommand-description = Manage the crew and keep them working efficiently. department-Engineering-description = Keep the power on and the station operational. department-Medical-description = Keep the crew healthy. department-Security-description = Keep the peace around the station. diff --git a/Resources/Locale/en-US/job/department.ftl b/Resources/Locale/en-US/job/department.ftl index 51a0345bc6..c77c1fd572 100644 --- a/Resources/Locale/en-US/job/department.ftl +++ b/Resources/Locale/en-US/job/department.ftl @@ -1,6 +1,7 @@ department-Cargo = Cargo department-Civilian = Civilian department-Command = Command +department-CentralCommand = Central Command department-Engineering = Engineering department-Medical = Medical department-Security = Security diff --git a/Resources/Locale/en-US/job/job-names.ftl b/Resources/Locale/en-US/job/job-names.ftl index 6f6a644eaf..0140adf8a2 100644 --- a/Resources/Locale/en-US/job/job-names.ftl +++ b/Resources/Locale/en-US/job/job-names.ftl @@ -21,6 +21,8 @@ job-name-hop = Head of Personnel job-name-captain = Captain job-name-serviceworker = Service Worker job-name-centcomoff = CentComm Official +job-name-cburn = Centcomm Quarantine Officer +job-name-deathsquad = Centcomm Agent job-name-reporter = Reporter job-name-musician = Musician job-name-librarian = Librarian diff --git a/Resources/Prototypes/Catalog/Fills/Items/misc.yml b/Resources/Prototypes/Catalog/Fills/Items/misc.yml index 4ec546caef..ac10a50510 100644 --- a/Resources/Prototypes/Catalog/Fills/Items/misc.yml +++ b/Resources/Prototypes/Catalog/Fills/Items/misc.yml @@ -30,8 +30,8 @@ - ClothingShoesBootsSecFilled - type: entity - id: ClothingShoesBootsMercFilled parent: ClothingShoesBootsMerc + id: ClothingShoesBootsMercFilled suffix: Filled components: - type: ContainerFill diff --git a/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml b/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml index f94b773886..b589b2bbc0 100644 --- a/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml +++ b/Resources/Prototypes/Entities/Clothing/Back/backpacks.yml @@ -192,7 +192,7 @@ #ERT - type: entity - parent: ClothingBackpack + parent: [ ClothingBackpack, BaseCentcommContraband ] id: ClothingBackpackERTLeader name: ERT leader backpack description: A spacious backpack with lots of pockets, worn by the Commander of an Emergency Response Team. diff --git a/Resources/Prototypes/Entities/Clothing/Back/duffel.yml b/Resources/Prototypes/Entities/Clothing/Back/duffel.yml index 76451f54f5..58e9bea0b4 100644 --- a/Resources/Prototypes/Entities/Clothing/Back/duffel.yml +++ b/Resources/Prototypes/Entities/Clothing/Back/duffel.yml @@ -245,7 +245,7 @@ - type: HeldSpeedModifier - type: entity - parent: ClothingBackpackDuffel + parent: [ ClothingBackpackDuffel, BaseCentcommContraband ] id: ClothingBackpackDuffelCBURN name: CBURN duffel bag description: A duffel bag containing a variety of biological containment equipment. diff --git a/Resources/Prototypes/Entities/Clothing/Belt/belts.yml b/Resources/Prototypes/Entities/Clothing/Belt/belts.yml index 2201504b26..845944302f 100644 --- a/Resources/Prototypes/Entities/Clothing/Belt/belts.yml +++ b/Resources/Prototypes/Entities/Clothing/Belt/belts.yml @@ -621,7 +621,7 @@ sprite: Clothing/Belt/securitywebbing.rsi - type: entity - parent: ClothingBeltStorageBase + parent: [ ClothingBeltStorageBase, BaseSecurityCargoContraband ] id: ClothingBeltMercWebbing name: mercenary webbing description: Ideal for storing everything from ammo to weapons and combat essentials. diff --git a/Resources/Prototypes/Entities/Clothing/Ears/headsets.yml b/Resources/Prototypes/Entities/Clothing/Ears/headsets.yml index d6cee89335..817f83ec92 100644 --- a/Resources/Prototypes/Entities/Clothing/Ears/headsets.yml +++ b/Resources/Prototypes/Entities/Clothing/Ears/headsets.yml @@ -76,7 +76,7 @@ - EncryptionKeyCommon - type: entity - parent: ClothingHeadset + parent: [ ClothingHeadset, BaseCentcommContraband ] id: ClothingHeadsetCentCom name: CentComm headset description: A headset used by the upper echelons of Nanotrasen. diff --git a/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml b/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml index d5d3b64e0f..2de84b45a2 100644 --- a/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml +++ b/Resources/Prototypes/Entities/Clothing/Hands/gloves.yml @@ -255,7 +255,7 @@ - type: CriminalRecordsHacker - type: entity - parent: [ClothingHandsGlovesColorBlack, BaseSecurityEngineeringContraband] + parent: [ClothingHandsGlovesColorBlack, BaseSecurityCargoContraband] id: ClothingHandsGlovesCombat name: combat gloves description: These tactical gloves are fireproof and shock resistant. diff --git a/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml b/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml index 42075b1cf1..b97df840a7 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/hardsuit-helmets.yml @@ -540,7 +540,7 @@ #CENTCOMM / ERT HARDSUITS #ERT Leader Hardsuit - type: entity - parent: ClothingHeadHelmetHardsuitSyndieCommander + parent: [ BaseCentcommContraband, ClothingHeadHelmetHardsuitSyndieCommander ] id: ClothingHeadHelmetHardsuitERTLeader name: ERT leader hardsuit helmet description: A special hardsuit helmet worn by members of an emergency response team. @@ -561,7 +561,7 @@ #ERT Chaplain Hardsuit - type: entity - parent: ClothingHeadHelmetHardsuitSyndie + parent: [ BaseCentcommContraband, ClothingHeadHelmetHardsuitSyndie ] id: ClothingHeadHelmetHardsuitERTChaplain name: ERT chaplain hardsuit helmet description: A special hardsuit helmet worn by members of an emergency response team. @@ -575,7 +575,7 @@ #ERT Engineer Hardsuit - type: entity - parent: ClothingHeadHelmetHardsuitSyndie + parent: [ BaseCentcommContraband, ClothingHeadHelmetHardsuitSyndie ] id: ClothingHeadHelmetHardsuitERTEngineer name: ERT engineer hardsuit helmet description: A special hardsuit helmet worn by members of an emergency response team. @@ -596,7 +596,7 @@ #ERT Medical Hardsuit - type: entity - parent: ClothingHeadHelmetHardsuitSyndieElite + parent: [ BaseCentcommContraband, ClothingHeadHelmetHardsuitSyndieElite ] id: ClothingHeadHelmetHardsuitERTMedical name: ERT medic hardsuit helmet description: A special hardsuit helmet worn by members of an emergency response team. @@ -610,7 +610,7 @@ #ERT Security Hardsuit - type: entity - parent: ClothingHeadHelmetHardsuitSyndie + parent: [ BaseCentcommContraband, ClothingHeadHelmetHardsuitSyndie ] id: ClothingHeadHelmetHardsuitERTSecurity name: ERT security hardsuit helmet description: A special hardsuit helmet worn by members of an emergency response team. @@ -631,7 +631,7 @@ #ERT Janitor Hardsuit - type: entity - parent: ClothingHeadHelmetHardsuitSyndie + parent: [ BaseCentcommContraband, ClothingHeadHelmetHardsuitSyndie ] id: ClothingHeadHelmetHardsuitERTJanitor name: ERT janitor hardsuit helmet description: A special hardsuit helmet worn by members of an emergency response team. @@ -645,7 +645,7 @@ #CBURN Hardsuit - type: entity - parent: ClothingHeadHardsuitWithLightBase + parent: [ BaseCentcommContraband, ClothingHeadHardsuitWithLightBase ] id: ClothingHeadHelmetCBURN name: CBURN exosuit helmet description: A pressure resistant and fireproof hood worn by special cleanup units. @@ -684,7 +684,7 @@ #Deathsquad Hardsuit - type: entity - parent: ClothingHeadHardsuitBase + parent: [ BaseCentcommContraband, ClothingHeadHardsuitBase ] id: ClothingHeadHelmetHardsuitDeathsquad name: deathsquad hardsuit helmet description: A robust helmet for special operations. diff --git a/Resources/Prototypes/Entities/Clothing/Head/hats.yml b/Resources/Prototypes/Entities/Clothing/Head/hats.yml index c2e921bcbf..123896240d 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/hats.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/hats.yml @@ -182,7 +182,7 @@ sprite: Clothing/Head/Hats/beret_brigmedic.rsi - type: entity - parent: ClothingHeadBase + parent: [ ClothingHeadBase, BaseRestrictedContraband ] id: ClothingHeadHatBeretMerc name: mercenary beret description: Olive beret, the badge depicts a jackal on a rock. @@ -235,7 +235,7 @@ - type: IngestionBlocker - type: entity - parent: ClothingHeadBase + parent: [ ClothingHeadBase, BaseCentcommContraband ] id: ClothingHeadHatCentcom name: CentComm brand hat description: "It's good to be the emperor." @@ -890,7 +890,7 @@ - type: BlockMovement - type: entity - parent: ClothingHeadBase + parent: [ ClothingHeadBase, BaseCentcommContraband ] id: ClothingHeadHatCentcomcap name: CentComm cap description: An extravagant, fancy Central Commander cap. diff --git a/Resources/Prototypes/Entities/Clothing/Head/helmets.yml b/Resources/Prototypes/Entities/Clothing/Head/helmets.yml index 67f775c0e6..4ab01b4062 100644 --- a/Resources/Prototypes/Entities/Clothing/Head/helmets.yml +++ b/Resources/Prototypes/Entities/Clothing/Head/helmets.yml @@ -30,7 +30,7 @@ #Mercenary Helmet - type: entity - parent: ClothingHeadHelmetBasic + parent: [ ClothingHeadHelmetBasic, BaseRestrictedContraband ] id: ClothingHeadHelmetMerc name: mercenary helmet description: The combat helmet is commonly used by mercenaries, is strong, light and smells like gunpowder and the jungle. @@ -302,7 +302,7 @@ #ERT HELMETS #ERT Leader Helmet - type: entity - parent: ClothingHeadHelmetBasic + parent: [ BaseCentcommContraband, ClothingHeadHelmetBasic ] id: ClothingHeadHelmetERTLeader name: ERT leader helmet description: An in-atmosphere helmet worn by the leader of a Nanotrasen Emergency Response Team. Has blue highlights. @@ -314,7 +314,7 @@ #ERT Security Helmet - type: entity - parent: ClothingHeadHelmetBasic + parent: [ BaseCentcommContraband, ClothingHeadHelmetBasic ] id: ClothingHeadHelmetERTSecurity name: ERT security helmet description: An in-atmosphere helmet worn by security members of the Nanotrasen Emergency Response Team. Has red highlights. @@ -326,7 +326,7 @@ #ERT Medic Helmet - type: entity - parent: ClothingHeadHelmetBasic + parent: [ BaseCentcommContraband, ClothingHeadHelmetBasic ] id: ClothingHeadHelmetERTMedic name: ERT medic helmet description: An in-atmosphere helmet worn by medical members of the Nanotrasen Emergency Response Team. Has white highlights. @@ -338,7 +338,7 @@ #ERT Engineer Helmet - type: entity - parent: ClothingHeadHelmetBasic + parent: [ BaseCentcommContraband, ClothingHeadHelmetBasic ] id: ClothingHeadHelmetERTEngineer name: ERT engineer helmet description: An in-atmosphere helmet worn by engineering members of the Nanotrasen Emergency Response Team. Has orange highlights. @@ -350,7 +350,7 @@ #ERT Janitor Helmet - type: entity - parent: ClothingHeadHelmetBasic + parent: [ BaseCentcommContraband, ClothingHeadHelmetBasic ] id: ClothingHeadHelmetERTJanitor name: ERT janitor helmet description: An in-atmosphere helmet worn by janitorial members of the Nanotrasen Emergency Response Team. Has dark purple highlights. diff --git a/Resources/Prototypes/Entities/Clothing/Masks/masks.yml b/Resources/Prototypes/Entities/Clothing/Masks/masks.yml index 1a213a7768..a8dcbf99ca 100644 --- a/Resources/Prototypes/Entities/Clothing/Masks/masks.yml +++ b/Resources/Prototypes/Entities/Clothing/Masks/masks.yml @@ -89,7 +89,7 @@ - type: IngestionBlocker - type: entity - parent: ClothingMaskGasAtmos + parent: [ ClothingMaskGasAtmos, BaseCentcommContraband ] id: ClothingMaskGasCentcom name: CentComm gas mask description: Oooh, gold and green. Fancy! This should help as you sit in your office. @@ -389,7 +389,7 @@ sprite: Clothing/Mask/merc.rsi - type: entity - parent: ClothingMaskGasSyndicate + parent: [ BaseCentcommContraband, ClothingMaskGasSyndicate ] id: ClothingMaskGasERT name: ert gas mask description: The gas mask of the elite squad of the ERT. diff --git a/Resources/Prototypes/Entities/Clothing/Neck/scarfs.yml b/Resources/Prototypes/Entities/Clothing/Neck/scarfs.yml index e03ea02e68..abb3df78e7 100644 --- a/Resources/Prototypes/Entities/Clothing/Neck/scarfs.yml +++ b/Resources/Prototypes/Entities/Clothing/Neck/scarfs.yml @@ -109,7 +109,7 @@ sprite: Clothing/Neck/Scarfs/syndiered.rsi - type: entity - parent: ClothingScarfBase + parent: [ ClothingScarfBase, BaseCentcommContraband ] id: ClothingNeckScarfStripedCentcom name: striped CentComm scarf description: A stylish striped centcomm colored scarf. The perfect winter accessory for those with a keen fashion sense, and those who need to do paperwork in the cold. diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/armor.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/armor.yml index 80588ba493..49dabaddaa 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/armor.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/armor.yml @@ -172,7 +172,7 @@ autoRechargeRate: 2 - type: entity - parent: ClothingOuterBaseLarge + parent: [ ClothingOuterBaseLarge, BaseMinorContraband ] id: ClothingOuterArmorCult name: acolyte armor description: An evil-looking piece of cult armor, made of bones. diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml index c6e3383931..0e84fca06d 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml @@ -763,7 +763,7 @@ #CENTCOMM / ERT HARDSUITS #ERT Leader Hardsuit - type: entity - parent: ClothingOuterHardsuitSyndieCommander + parent: [ BaseCentcommContraband, ClothingOuterHardsuitSyndieCommander ] id: ClothingOuterHardsuitERTLeader name: ERT leader's hardsuit description: A protective hardsuit worn by the leader of an emergency response team. @@ -777,7 +777,7 @@ #ERT Chaplain Hardsuit - type: entity - parent: ClothingOuterHardsuitJuggernaut + parent: [ BaseCentcommContraband, ClothingOuterHardsuitJuggernaut ] id: ClothingOuterHardsuitERTChaplain name: ERT chaplain's hardsuit description: A protective hardsuit worn by the chaplains of an Emergency Response Team. @@ -805,7 +805,7 @@ #ERT Medic Hardsuit - type: entity - parent: ClothingOuterHardsuitSyndieMedic + parent: [ BaseCentcommContraband, ClothingOuterHardsuitSyndieMedic ] id: ClothingOuterHardsuitERTMedical name: ERT medic's hardsuit description: A protective hardsuit worn by the medics of an emergency response team. @@ -819,7 +819,7 @@ #ERT Security Hardsuit - type: entity - parent: ClothingOuterHardsuitSyndie + parent: [ BaseCentcommContraband, ClothingOuterHardsuitSyndie ] id: ClothingOuterHardsuitERTSecurity name: ERT security's hardsuit description: A protective hardsuit worn by the security officers of an emergency response team. @@ -851,7 +851,7 @@ #Deathsquad - type: entity - parent: ClothingOuterHardsuitBase + parent: [ BaseCentcommContraband, ClothingOuterHardsuitBase ] id: ClothingOuterHardsuitDeathsquad name: death squad hardsuit description: An advanced hardsuit favored by commandos for use in special operations. @@ -888,7 +888,7 @@ #CBURN Hardsuit - type: entity - parent: ClothingOuterHardsuitBase + parent: [ BaseCentcommContraband, ClothingOuterHardsuitBase ] id: ClothingOuterHardsuitCBURN name: CBURN exosuit description: A lightweight yet strong exosuit used for special cleanup operations. diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml index ec38b79370..e7f5a59472 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/wintercoats.yml @@ -166,7 +166,7 @@ clothingPrototype: ClothingHeadHatHoodWinterCE - type: entity - parent: ClothingOuterWinterCoatToggleable + parent: [ ClothingOuterWinterCoatToggleable, BaseCentcommContraband ] id: ClothingOuterWinterCentcom name: CentComm winter coat components: @@ -1207,4 +1207,4 @@ color: "#EBE216" - state: winterbits-equipped-OUTERCLOTHING - type: ToggleableClothing - clothingPrototype: ClothingHeadHatHoodWinterColorYellow \ No newline at end of file + clothingPrototype: ClothingHeadHatHoodWinterColorYellow diff --git a/Resources/Prototypes/Entities/Clothing/Shoes/boots.yml b/Resources/Prototypes/Entities/Clothing/Shoes/boots.yml index 32fd118f1c..fbaeba6047 100644 --- a/Resources/Prototypes/Entities/Clothing/Shoes/boots.yml +++ b/Resources/Prototypes/Entities/Clothing/Shoes/boots.yml @@ -73,7 +73,7 @@ sprite: Clothing/Shoes/Boots/highheelboots.rsi - type: entity - parent: ClothingShoesMilitaryBase + parent: [ ClothingShoesMilitaryBase, BaseRestrictedContraband ] id: ClothingShoesBootsMerc name: mercenary boots description: Boots that have gone through many conflicts and that have proven their combat reliability. diff --git a/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml b/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml index a3ffc5952a..42a0b7069d 100644 --- a/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml +++ b/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml @@ -124,7 +124,7 @@ sprite: Clothing/Uniforms/Jumpsuit/chaplain.rsi - type: entity - parent: ClothingUniformBase + parent: [ ClothingUniformBase, BaseCentcommContraband ] id: ClothingUniformJumpsuitCentcomAgent name: CentComm agent's jumpsuit description: A suit worn by CentComm's legal team. Smells of burnt coffee. @@ -135,7 +135,7 @@ sprite: Clothing/Uniforms/Jumpsuit/centcom_agent.rsi - type: entity - parent: ClothingUniformBase + parent: [ ClothingUniformBase, BaseCentcommContraband ] id: ClothingUniformJumpsuitCentcomOfficial name: CentComm official's jumpsuit description: It's a jumpsuit worn by CentComm's officials. @@ -146,7 +146,7 @@ sprite: Clothing/Uniforms/Jumpsuit/centcom_official.rsi - type: entity - parent: ClothingUniformBase + parent: [ ClothingUniformBase, BaseCentcommContraband ] id: ClothingUniformJumpsuitCentcomOfficer name: CentComm officer's jumpsuit description: It's a jumpsuit worn by CentComm Officers. @@ -860,7 +860,7 @@ mode: SensorOff - type: entity - parent: ClothingUniformBase + parent: [ ClothingUniformBase, BaseRestrictedContraband ] id: ClothingUniformJumpsuitMercenary name: mercenary jumpsuit description: Clothing for real mercenaries who have gone through fire, water and the jungle of planets flooded with dangerous monsters or targets for which a reward has been assigned. @@ -981,7 +981,7 @@ sprite: Clothing/Uniforms/Jumpsuit/musician.rsi - type: entity - parent: ClothingUniformBase + parent: [ BaseCentcommContraband, ClothingUniformBase ] id: ClothingUniformJumpsuitERTChaplain name: ERT chaplain uniform description: A special suit made for Central Command's elite chaplain corps. @@ -992,7 +992,7 @@ sprite: Clothing/Uniforms/Jumpsuit/ert_chaplain.rsi - type: entity - parent: ClothingUniformBase + parent: [ BaseCentcommContraband, ClothingUniformBase ] id: ClothingUniformJumpsuitERTEngineer name: ERT engineering uniform description: A special suit made for the elite engineers under CentComm. @@ -1003,7 +1003,7 @@ sprite: Clothing/Uniforms/Jumpsuit/ert_engineer.rsi - type: entity - parent: ClothingUniformBase + parent: [ BaseCentcommContraband, ClothingUniformBase ] id: ClothingUniformJumpsuitERTJanitor name: ERT janitorial uniform description: A special suit made for the elite janitors under CentComm. @@ -1014,7 +1014,7 @@ sprite: Clothing/Uniforms/Jumpsuit/ert_janitor.rsi - type: entity - parent: ClothingUniformBase + parent: [ BaseCentcommContraband, ClothingUniformBase ] id: ClothingUniformJumpsuitERTLeader name: ERT leader uniform description: A special suit made for the best of the elites under CentComm. @@ -1025,7 +1025,7 @@ sprite: Clothing/Uniforms/Jumpsuit/ert_leader.rsi - type: entity - parent: ClothingUniformBase + parent: [ BaseCentcommContraband, ClothingUniformBase ] id: ClothingUniformJumpsuitERTMedic name: ERT medical uniform description: A special suit made for the elite medics under CentComm. @@ -1036,7 +1036,7 @@ sprite: Clothing/Uniforms/Jumpsuit/ert_medic.rsi - type: entity - parent: ClothingUniformBase + parent: [ BaseCentcommContraband, ClothingUniformBase ] id: ClothingUniformJumpsuitERTSecurity name: ERT security uniform description: A special suit made for the elite security under CentComm. diff --git a/Resources/Prototypes/Entities/Objects/Devices/encryption_keys.yml b/Resources/Prototypes/Entities/Objects/Devices/encryption_keys.yml index d7b059f3d8..7186f9f34a 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/encryption_keys.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/encryption_keys.yml @@ -27,7 +27,7 @@ - state: common_label - type: entity - parent: EncryptionKey + parent: [ EncryptionKey, BaseCargoContraband ] id: EncryptionKeyCargo name: cargo encryption key description: An encryption key used by supply employees. @@ -42,7 +42,7 @@ - state: cargo_label - type: entity - parent: EncryptionKey + parent: [ EncryptionKey, BaseCentcommContraband ] id: EncryptionKeyCentCom name: central command encryption key description: An encryption key used by captain's bosses. @@ -57,7 +57,7 @@ - state: nano_label - type: entity - parent: EncryptionKey + parent: [ EncryptionKey, BaseCentcommCommandContraband ] id: EncryptionKeyStationMaster name: station master encryption key description: An encryption key used by station's bosses. @@ -79,7 +79,7 @@ - state: cap_label - type: entity - parent: EncryptionKey + parent: [ EncryptionKey, BaseCommandContraband ] id: EncryptionKeyCommand name: command encryption key description: An encryption key used by crew's bosses. @@ -94,7 +94,7 @@ - state: com_label - type: entity - parent: EncryptionKey + parent: [ EncryptionKey, BaseEngineeringContraband ] id: EncryptionKeyEngineering name: engineering encryption key description: An encryption key used by the engineers. @@ -109,7 +109,7 @@ - state: eng_label - type: entity - parent: EncryptionKey + parent: [ EncryptionKey, BaseMedicalContraband ] id: EncryptionKeyMedical name: medical encryption key description: An encryption key used by those who save lives. @@ -124,7 +124,7 @@ - state: med_label - type: entity - parent: EncryptionKey + parent: [ EncryptionKey, BaseMedicalScienceContraband ] id: EncryptionKeyMedicalScience name: med-sci encryption key description: An encryption key used by someone who hasn't decided which side to take. @@ -140,7 +140,7 @@ - state: medsci_label - type: entity - parent: EncryptionKey + parent: [ EncryptionKey, BaseScienceContraband ] id: EncryptionKeyScience name: science encryption key description: An encryption key used by scientists. Maybe it is plasmaproof? @@ -155,7 +155,7 @@ - state: sci_label - type: entity - parent: EncryptionKey + parent: [ EncryptionKey, BaseScienceContraband ] id: EncryptionKeyRobo name: robotech encryption key description: An encryption key used by robototech engineers. Maybe it has a LAH-6000 on it? @@ -170,7 +170,7 @@ - state: robotics_label - type: entity - parent: EncryptionKey + parent: [ EncryptionKey, BaseSecurityContraband ] id: EncryptionKeySecurity name: security encryption key description: An encryption key used by security. @@ -185,7 +185,7 @@ - state: sec_label - type: entity - parent: EncryptionKey + parent: [ EncryptionKey, BaseCivilianContraband ] id: EncryptionKeyService name: service encryption key description: An encryption key used by the service staff, tasked with keeping the station full, happy and clean. @@ -200,7 +200,7 @@ - state: service_label - type: entity - parent: [EncryptionKey, BaseRestrictedContraband] + parent: [ EncryptionKey, BaseSyndicateContraband ] id: EncryptionKeySyndie name: blood-red encryption key description: An encryption key used by... wait... Who is the owner of this chip? @@ -215,7 +215,7 @@ - state: synd_label - type: entity - parent: [ EncryptionKey, BaseScienceContraband ] + parent: [ EncryptionKey, BaseSiliconScienceContraband ] id: EncryptionKeyBinary name: binary translator key description: An encryption key that translates binary signals used by silicons. diff --git a/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml b/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml index 73085e18d9..2c5fb86cc0 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml @@ -454,17 +454,11 @@ - state: idcentcom - type: Item heldPrefix: blue - - type: IdCard - jobTitle: Central Commander - jobIcon: JobIconNanotrasen - - type: Access - groups: - - AllAccess - tags: - - CentralCommand + - type: PresetIdCard + job: CentralCommandOfficial - type: entity - parent: CentcomIDCard + parent: IDCardStandard id: ERTLeaderIDCard name: ERT leader ID card components: @@ -472,13 +466,13 @@ layers: - state: gold - state: ert_commander - - type: IdCard - jobTitle: ERT Company Commander + - type: PresetIdCard + job: ERTLeader - type: Item heldPrefix: gold - type: entity - parent: ERTLeaderIDCard + parent: IDCardStandard id: ERTChaplainIDCard name: ERT chaplain ID card components: @@ -486,13 +480,13 @@ layers: - state: gold - state: ert_chaplain # we have the sprite for the id but dont have chaplain ERT equipment for now. - - type: IdCard - jobTitle: ERT Soul Officer + - type: PresetIdCard + job: ERTChaplain - type: Item heldPrefix: blue - type: entity - parent: ERTChaplainIDCard + parent: IDCardStandard id: ERTEngineerIDCard name: ERT engineer ID card components: @@ -500,11 +494,11 @@ layers: - state: gold - state: ert_engineer - - type: IdCard - jobTitle: ERT Field Engineer + - type: PresetIdCard + job: ERTEngineer - type: entity - parent: ERTChaplainIDCard + parent: IDCardStandard id: ERTJanitorIDCard name: ERT janitor ID card components: @@ -512,11 +506,11 @@ layers: - state: gold - state: ert_janitor - - type: IdCard - jobTitle: ERT Custodian + - type: PresetIdCard + job: ERTJanitor - type: entity - parent: ERTChaplainIDCard + parent: IDCardStandard id: ERTMedicIDCard name: ERT medic ID card components: @@ -524,11 +518,11 @@ layers: - state: gold - state: ert_medic - - type: IdCard - jobTitle: ERT Medical Doctor + - type: PresetIdCard + job: ERTMedical - type: entity - parent: ERTChaplainIDCard + parent: IDCardStandard id: ERTSecurityIDCard name: ERT security ID card components: @@ -536,8 +530,8 @@ layers: - state: gold - state: ert_security - - type: IdCard - jobTitle: ERT Field Officer + - type: PresetIdCard + job: ERTSecurity - type: entity parent: IDCardStandard @@ -552,7 +546,7 @@ job: Musician - type: entity - parent: CentcomIDCard + parent: IDCardStandard id: CentcomIDCardDeathsquad name: death squad ID card components: @@ -561,8 +555,8 @@ - state: centcom - type: Item heldPrefix: blue - - type: IdCard - jobTitle: Centcomm Agent + - type: PresetIdCard + job: DeathSquad - type: entity name: passenger ID card @@ -718,8 +712,8 @@ - state: centcom - type: Item heldPrefix: blue - - type: IdCard - jobTitle: Centcomm Quarantine Officer + - type: PresetIdCard + job: CBURN - type: entity parent: IDCardStandard diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml index 8b1606dc5d..9b6da25eb7 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml @@ -223,7 +223,7 @@ - type: entity name: advanced circular saw id: SawAdvanced - parent: SawElectric + parent: [ SawElectric, BaseSyndicateContraband ] description: You think you can cut anything with it. components: - type: Sprite diff --git a/Resources/Prototypes/Entities/Objects/Tools/thief_beacon.yml b/Resources/Prototypes/Entities/Objects/Tools/thief_beacon.yml index c35e66127d..042b3fe517 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/thief_beacon.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/thief_beacon.yml @@ -1,4 +1,5 @@ - type: entity + parent: BaseMinorContraband id: ThiefBeacon name: thieving beacon description: A device that will teleport everything around it to the thief's vault at the end of the shift. @@ -35,4 +36,4 @@ noRot: true layers: - state: extraction_point - map: [ "foldedLayer" ] \ No newline at end of file + map: [ "foldedLayer" ] diff --git a/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml b/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml index b2ad5dec6b..dd1f41e571 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/toolbox.yml @@ -148,7 +148,7 @@ id: ToolboxThief name: thief undetermined toolbox description: This is where your favorite thief's supplies lie. Try to remember which ones. - parent: BaseItem + parent: [ BaseItem, BaseMinorContraband ] components: - type: Sprite sprite: Objects/Tools/Toolboxes/toolbox_thief.rsi diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/antimateriel.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/antimateriel.yml index 0d8775f37a..e622952b3f 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/antimateriel.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/antimateriel.yml @@ -1,5 +1,5 @@ - type: entity - parent: BaseCartridge + parent: [ BaseCartridge, BaseMajorContraband ] id: CartridgeAntiMateriel name: cartridge (.60 anti-materiel) components: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/caseless_rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/caseless_rifle.yml index 9e46725b94..21edce2222 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/caseless_rifle.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/caseless_rifle.yml @@ -1,7 +1,7 @@ - type: entity id: BaseCartridgeCaselessRifle name: cartridge (.25 rifle) - parent: BaseCartridge + parent: [ BaseCartridge, BaseRestrictedContraband ] abstract: true components: - type: Tag diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/heavy_rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/heavy_rifle.yml index a63351b6f9..719bae8ab4 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/heavy_rifle.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/heavy_rifle.yml @@ -1,7 +1,7 @@ - type: entity id: BaseCartridgeHeavyRifle name: cartridge (.20 rifle) - parent: BaseCartridge + parent: [ BaseCartridge, BaseRestrictedContraband ] abstract: true components: - type: Tag diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/light_rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/light_rifle.yml index 80623f874e..4cf3c759bb 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/light_rifle.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/light_rifle.yml @@ -1,7 +1,7 @@ - type: entity id: BaseCartridgeLightRifle name: cartridge (.30 rifle) - parent: BaseCartridge + parent: [ BaseCartridge, BaseRestrictedContraband ] abstract: true components: - type: Tag diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/magnum.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/magnum.yml index b6cb65db05..3367fa45a1 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/magnum.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/magnum.yml @@ -1,7 +1,7 @@ - type: entity id: BaseCartridgeMagnum name: cartridge (.45 magnum) - parent: BaseCartridge + parent: [ BaseCartridge, BaseRestrictedContraband ] abstract: true components: - type: Tag diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/pistol.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/pistol.yml index c097d7746e..3635b00f36 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/pistol.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/pistol.yml @@ -1,7 +1,7 @@ - type: entity id: BaseCartridgePistol name: cartridge (.35 auto) - parent: BaseCartridge + parent: [ BaseCartridge, BaseRestrictedContraband ] abstract: true components: - type: Tag diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/rifle.yml index 21e6daa2b8..30976744e0 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/rifle.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/rifle.yml @@ -1,7 +1,7 @@ - type: entity id: BaseCartridgeRifle name: cartridge (.20 rifle) - parent: BaseCartridge + parent: [ BaseCartridge, BaseRestrictedContraband ] abstract: true components: - type: Tag diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/shotgun.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/shotgun.yml index 1d90fab7c2..47577b0857 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/shotgun.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/shotgun.yml @@ -1,7 +1,7 @@ - type: entity id: BaseShellShotgun name: shell (.50) - parent: BaseCartridge + parent: [ BaseCartridge, BaseRestrictedContraband ] abstract: true components: - type: Tag @@ -123,7 +123,7 @@ maxTransferAmount: 7 - type: SpentAmmoVisuals state: "tranquilizer" - + - type: entity id: ShellShotgunImprovised name: improvised shotgun shell diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/caseless_rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/caseless_rifle.yml index 2c23d803e2..5aa1f285c8 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/caseless_rifle.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/caseless_rifle.yml @@ -1,7 +1,7 @@ - type: entity id: BaseMagazineCaselessRifle name: "magazine (.25 caseless)" - parent: BaseItem + parent: [ BaseItem, BaseRestrictedContraband ] abstract: true components: - type: Tag diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/grenade.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/grenade.yml index 0b23ebc966..389a4033cb 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/grenade.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/grenade.yml @@ -1,7 +1,7 @@ - type: entity id: BaseMagazineGrenade name: grenade cartridge - parent: BaseItem + parent: [ BaseItem, BaseRestrictedContraband ] abstract: true components: - type: Tag @@ -45,7 +45,7 @@ parent: BaseMagazineGrenade components: - type: BallisticAmmoProvider - + - type: entity id: MagazineGrenadeFrag name: frag grenade cartridge @@ -84,4 +84,4 @@ parent: BaseMagazineGrenade components: - type: BallisticAmmoProvider - proto: GrenadeBaton \ No newline at end of file + proto: GrenadeBaton diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/heavy_rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/heavy_rifle.yml index d8af7064a4..ba5094255c 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/heavy_rifle.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/heavy_rifle.yml @@ -1,7 +1,7 @@ - type: entity id: BaseMagazineHeavyRifle name: "magazine (.20 rifle)" - parent: BaseItem + parent: [ BaseItem, BaseRestrictedContraband ] abstract: true components: - type: Tag diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/light_rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/light_rifle.yml index 495bcd37d1..5784564378 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/light_rifle.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/light_rifle.yml @@ -2,7 +2,7 @@ - type: entity id: BaseMagazineLightRifle name: "magazine (.30 rifle)" - parent: BaseItem + parent: [ BaseItem, BaseRestrictedContraband ] abstract: true components: - type: Tag diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/magnum.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/magnum.yml index 304014d11b..4f6f101be4 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/magnum.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/magnum.yml @@ -1,7 +1,7 @@ - type: entity id: BaseMagazineMagnum name: pistol magazine (.45 magnum) - parent: BaseMagazinePistol + parent: [ BaseMagazinePistol, BaseRestrictedContraband ] abstract: true components: - type: Tag diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/pistol.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/pistol.yml index 850be4b130..bd85e2691b 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/pistol.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/pistol.yml @@ -1,7 +1,7 @@ - type: entity id: BaseMagazinePistol name: pistol magazine (.35 auto) - parent: BaseItem + parent: [ BaseItem, BaseRestrictedContraband ] abstract: true components: - type: Tag @@ -67,7 +67,7 @@ - type: entity id: BaseMagazinePistolSubMachineGun # Yeah it's weird but it's pistol caliber name: SMG magazine (.35 auto) - parent: BaseItem + parent: [ BaseItem, BaseRestrictedContraband ] abstract: true components: - type: Tag @@ -100,7 +100,7 @@ - type: entity id: MagazinePistolSubMachineGunTopMounted name: WT550 magazine (.35 auto top-mounted) - parent: BaseItem + parent: [ BaseItem, BaseRestrictedContraband ] components: - type: Tag tags: @@ -282,7 +282,7 @@ parent: BaseMagazinePistolSubMachineGun components: - type: BallisticAmmoProvider - proto: null + proto: null - type: Sprite layers: - state: base diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/rifle.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/rifle.yml index b2148ba1b2..c882a3b2f1 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/rifle.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/rifle.yml @@ -2,7 +2,7 @@ - type: entity id: BaseMagazineRifle name: "magazine (.20 rifle)" - parent: BaseItem + parent: [ BaseItem, BaseRestrictedContraband ] abstract: true components: - type: Tag diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/shotgun.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/shotgun.yml index 5b0b16bf4b..cc679b12d8 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/shotgun.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magazines/shotgun.yml @@ -1,7 +1,7 @@ - type: entity id: BaseMagazineShotgun name: ammo drum (.50 shells) - parent: BaseItem + parent: [ BaseItem, BaseRestrictedContraband ] abstract: true components: - type: Tag diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/magnum.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/magnum.yml index 08d50db9b2..ae6bf0cebf 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/magnum.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/magnum.yml @@ -1,7 +1,7 @@ - type: entity id: BaseSpeedLoaderMagnum name: "speed loader (.45 magnum)" - parent: BaseItem + parent: [ BaseItem, BaseRestrictedContraband ] abstract: true components: - type: Tag diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/pistol.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/pistol.yml index 3ce419b2c3..8f3ec37753 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/pistol.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/pistol.yml @@ -1,7 +1,7 @@ - type: entity id: BaseSpeedLoaderPistol name: "speed loader (.35 auto)" - parent: BaseItem + parent: [ BaseItem, BaseRestrictedContraband ] abstract: true components: - type: Tag diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/rifle_light.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/rifle_light.yml index f527440600..71b1119267 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/rifle_light.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SpeedLoaders/rifle_light.yml @@ -1,7 +1,7 @@ - type: entity id: SpeedLoaderLightRifle name: "speed loader (.30 rifle)" - parent: BaseItem + parent: [ BaseItem, BaseRestrictedContraband ] components: - type: Tag tags: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml index 2af85fae4f..de75ae4be4 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/fireaxe.yml @@ -53,7 +53,7 @@ - type: entity id: FireAxeFlaming name: fire axe - parent: FireAxe + parent: [BaseSyndicateContraband, FireAxe] description: Why fight fire with an axe when you can fight with fire and axe? Now featuring rugged rubberized handle! components: - type: MeleeWeapon diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml index 506a36d08a..ae5b22f8e0 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml @@ -136,7 +136,7 @@ sprite: Objects/Weapons/Melee/kukri_knife.rsi - type: entity - parent: [ClothingHeadHatGreyFlatcap, BaseSyndicateContraband] + parent: ClothingHeadHatGreyFlatcap id: BladedFlatcapGrey name: grey flatcap description: Fashionable for both the working class and old man Jenkins. It has glass shards hidden in the brim. diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml index fca6fea4f8..a279c56378 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml @@ -373,7 +373,7 @@ path: /Audio/Effects/hallelujah.ogg - type: entity - parent: [ GrenadeBase, BaseMinorContraband ] + parent: [ GrenadeBase, BaseRestrictedContraband ] id: SmokeGrenade name: smoke grenade description: A tactical grenade that releases a large, long-lasting cloud of smoke when used. @@ -391,7 +391,7 @@ path: /Audio/Items/smoke_grenade_prime.ogg - type: entity - parent: SmokeGrenade + parent: [ BaseCivilianContraband, SmokeGrenade ] id: CleanerGrenade name: cleanade description: Special grenade for janitors, releasing large cloud of space cleaner foam. @@ -424,7 +424,7 @@ Quantity: 50 - type: entity - parent: SmokeGrenade + parent: [ BaseEngineeringContraband, SmokeGrenade ] id: MetalFoamGrenade name: metal foam grenade description: An emergency tool used for patching up holes. Almost as good as real walls. diff --git a/Resources/Prototypes/Entities/Objects/base_contraband.yml b/Resources/Prototypes/Entities/Objects/base_contraband.yml index fffa4b506c..6f44767c9f 100644 --- a/Resources/Prototypes/Entities/Objects/base_contraband.yml +++ b/Resources/Prototypes/Entities/Objects/base_contraband.yml @@ -35,7 +35,15 @@ - type: Contraband severity: Restricted -# departmentally restricted contraband -- this covers every configuration currently listed in space law +# one department restricted contraband +- type: entity + id: BaseCentcommContraband + parent: BaseRestrictedContraband + abstract: true + components: + - type: Contraband + allowedDepartments: [ CentralCommand ] + - type: entity id: BaseCommandContraband parent: BaseRestrictedContraband @@ -44,6 +52,63 @@ - type: Contraband allowedDepartments: [ Command ] +- type: entity + id: BaseSecurityContraband + parent: BaseRestrictedContraband + abstract: true + components: + - type: Contraband + allowedDepartments: [ Security ] + +- type: entity + id: BaseEngineeringContraband + parent: BaseRestrictedContraband + abstract: true + components: + - type: Contraband + allowedDepartments: [ Engineering ] + +- type: entity + id: BaseScienceContraband + parent: BaseRestrictedContraband + abstract: true + components: + - type: Contraband + allowedDepartments: [ Science ] + +- type: entity + id: BaseMedicalContraband + parent: BaseRestrictedContraband + abstract: true + components: + - type: Contraband + allowedDepartments: [ Medical ] + +- type: entity + id: BaseCivilianContraband + parent: BaseRestrictedContraband + abstract: true + components: + - type: Contraband + allowedDepartments: [ Civilian ] + +- type: entity + id: BaseCargoContraband + parent: BaseRestrictedContraband + abstract: true + components: + - type: Contraband + allowedDepartments: [ Cargo ] + +# multiple departments restricted contraband +- type: entity + id: BaseCentcommCommandContraband + parent: BaseRestrictedContraband + abstract: true + components: + - type: Contraband + allowedDepartments: [ CentralCommand, Command ] + - type: entity id: BaseSecurityCommandContraband parent: BaseRestrictedContraband @@ -69,20 +134,12 @@ allowedDepartments: [ Security, Engineering ] - type: entity - id: BaseEngineeringContraband + id: BaseSiliconScienceContraband parent: BaseRestrictedContraband abstract: true components: - type: Contraband - allowedDepartments: [ Engineering ] - -- type: entity - id: BaseScienceContraband - parent: BaseRestrictedContraband - abstract: true - components: - - type: Contraband - allowedDepartments: [ Science ] + allowedDepartments: [ Science, Silicon ] - type: entity id: BaseSecurityCargoContraband @@ -93,12 +150,12 @@ allowedDepartments: [ Security, Cargo ] - type: entity - id: BaseCargoContraband + id: BaseMedicalScienceContraband parent: BaseRestrictedContraband abstract: true components: - type: Contraband - allowedDepartments: [ Cargo ] + allowedDepartments: [ Medical, Science ] # for ~objective items - type: entity diff --git a/Resources/Prototypes/Roles/Jobs/CentComm/cburn.yml b/Resources/Prototypes/Roles/Jobs/CentComm/cburn.yml new file mode 100644 index 0000000000..3f8d07092c --- /dev/null +++ b/Resources/Prototypes/Roles/Jobs/CentComm/cburn.yml @@ -0,0 +1,37 @@ +- type: job + id: CBURN + name: job-name-cburn + description: job-description-cburn + playTimeTracker: JobCBURN + setPreference: false + startingGear: CBURNGear + icon: "JobIconNanotrasen" + supervisors: job-supervisors-centcom + canBeAntag: false + accessGroups: + - AllAccess + access: + - CentralCommand + +- type: startingGear + id: CBURNGear + equipment: + jumpsuit: ClothingUniformJumpsuitColorBrown + back: ClothingBackpackDuffelCBURN + mask: ClothingMaskGasERT + eyes: ClothingEyesGlassesSecurity + ears: ClothingHeadsetAltCentCom + gloves: ClothingHandsGlovesCombat + outerClothing: ClothingOuterHardsuitCBURN + shoes: ClothingShoesBootsCombatFilled + id: CBURNPDA + pocket1: RadioHandheld + pocket2: WeaponLaserGun + belt: ClothingBeltBandolier + storage: + back: + - WeaponShotgunDoubleBarreled + - BoxShotgunIncendiary + - GrenadeFlashBang + - PillAmbuzolPlus + - PillAmbuzol diff --git a/Resources/Prototypes/Roles/Jobs/CentComm/deathsquad.yml b/Resources/Prototypes/Roles/Jobs/CentComm/deathsquad.yml new file mode 100644 index 0000000000..5f731fa582 --- /dev/null +++ b/Resources/Prototypes/Roles/Jobs/CentComm/deathsquad.yml @@ -0,0 +1,44 @@ +- type: job + id: DeathSquad + name: job-name-deathsquad + description: job-description-deathsquad + playTimeTracker: JobDeathSquad + setPreference: false + startingGear: DeathSquadGear + icon: "JobIconNanotrasen" + supervisors: job-supervisors-centcom + canBeAntag: false + accessGroups: + - AllAccess + access: + - CentralCommand + +- type: startingGear + id: DeathSquadGear + equipment: + jumpsuit: ClothingUniformJumpsuitDeathSquad + back: ClothingBackpackDeathSquad + mask: ClothingMaskGasDeathSquad + eyes: ClothingEyesHudSecurity + ears: ClothingHeadsetAltCentCom + gloves: ClothingHandsGlovesCombat + outerClothing: ClothingOuterHardsuitDeathsquad + shoes: ClothingShoesBootsMagAdv + id: DeathsquadPDA + pocket1: EnergySword + pocket2: EnergyShield + belt: ClothingBeltMilitaryWebbingMedFilled + storage: + back: + - WeaponPulsePistol + - WeaponRevolverMateba + - SpeedLoaderMagnumAP + - SpeedLoaderMagnumAP + - BoxFlashbang + - ToolDebug # spanish army knife + - WelderExperimental + - Hypospray + - DeathAcidifierImplanter # crew will try to steal their amazing hardsuits + - FreedomImplanter + inhand: + - WeaponPulseRifle diff --git a/Resources/Prototypes/Roles/Jobs/Fun/emergencyresponseteam.yml b/Resources/Prototypes/Roles/Jobs/CentComm/emergencyresponseteam.yml similarity index 100% rename from Resources/Prototypes/Roles/Jobs/Fun/emergencyresponseteam.yml rename to Resources/Prototypes/Roles/Jobs/CentComm/emergencyresponseteam.yml diff --git a/Resources/Prototypes/Roles/Jobs/Command/centcom_official.yml b/Resources/Prototypes/Roles/Jobs/CentComm/official.yml similarity index 100% rename from Resources/Prototypes/Roles/Jobs/Command/centcom_official.yml rename to Resources/Prototypes/Roles/Jobs/CentComm/official.yml diff --git a/Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml b/Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml index 79560d22f5..04da99826a 100644 --- a/Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml +++ b/Resources/Prototypes/Roles/Jobs/Fun/misc_startinggear.yml @@ -17,37 +17,6 @@ back: - BoxSurvival -#Deathsquad Outfit -- type: startingGear - id: DeathSquadGear - equipment: - jumpsuit: ClothingUniformJumpsuitDeathSquad - back: ClothingBackpackDeathSquad - mask: ClothingMaskGasDeathSquad - eyes: ClothingEyesHudSecurity - ears: ClothingHeadsetAltCentCom - gloves: ClothingHandsGlovesCombat - outerClothing: ClothingOuterHardsuitDeathsquad - shoes: ClothingShoesBootsMagAdv - id: DeathsquadPDA - pocket1: EnergySword - pocket2: EnergyShield - belt: ClothingBeltMilitaryWebbingMedFilled - storage: - back: - - WeaponPulsePistol - - WeaponRevolverMateba - - SpeedLoaderMagnumAP - - SpeedLoaderMagnumAP - - BoxFlashbang - - ToolDebug # spanish army knife - - WelderExperimental - - Hypospray - - DeathAcidifierImplanter # crew will try to steal their amazing hardsuits - - FreedomImplanter - inhand: - - WeaponPulseRifle - # Syndicate Operative Outfit - Civilian - type: startingGear id: SyndicateOperativeGearCivilian @@ -101,30 +70,6 @@ - Flash - MagazinePistol -#CBURN Unit Gear - Full Kit -- type: startingGear - id: CBURNGear - equipment: - jumpsuit: ClothingUniformJumpsuitColorBrown - back: ClothingBackpackDuffelCBURN - mask: ClothingMaskGasERT - eyes: ClothingEyesGlassesSecurity - ears: ClothingHeadsetAltCentCom - gloves: ClothingHandsGlovesCombat - outerClothing: ClothingOuterHardsuitCBURN - shoes: ClothingShoesBootsCombatFilled - id: CBURNPDA - pocket1: RadioHandheld - pocket2: WeaponLaserGun - belt: ClothingBeltBandolier - storage: - back: - - WeaponShotgunDoubleBarreled - - BoxShotgunIncendiary - - GrenadeFlashBang - - PillAmbuzolPlus - - PillAmbuzol - - type: startingGear id: BoxingKangarooGear equipment: diff --git a/Resources/Prototypes/Roles/Jobs/departments.yml b/Resources/Prototypes/Roles/Jobs/departments.yml index 6178ff89a2..15737a273b 100644 --- a/Resources/Prototypes/Roles/Jobs/departments.yml +++ b/Resources/Prototypes/Roles/Jobs/departments.yml @@ -33,6 +33,24 @@ - Zookeeper - ServiceWorker +- type: department + id: CentralCommand + name: department-CentralCommand + description: department-CentralCommand-description + color: "#0c344d" + roles: + - CentralCommandOfficial + - CBURN + - ERTLeader + - ERTChaplain + - ERTJanitor + - ERTMedical + - ERTSecurity + - ERTEngineer + - DeathSquad + editorHidden: true + weight: 120 + - type: department id: Command name: department-Command @@ -40,13 +58,21 @@ color: "#334E6D" roles: - Captain - - CentralCommandOfficial - ChiefEngineer - ChiefMedicalOfficer - HeadOfPersonnel - HeadOfSecurity - ResearchDirector - Quartermaster + - CentralCommandOfficial + - CBURN + - ERTLeader + - ERTChaplain + - ERTJanitor + - ERTMedical + - ERTSecurity + - ERTEngineer + - DeathSquad primary: false weight: 100 diff --git a/Resources/Prototypes/Roles/play_time_trackers.yml b/Resources/Prototypes/Roles/play_time_trackers.yml index d4cd1ec15d..26647e79ae 100644 --- a/Resources/Prototypes/Roles/play_time_trackers.yml +++ b/Resources/Prototypes/Roles/play_time_trackers.yml @@ -64,6 +64,12 @@ - type: playTimeTracker id: JobERTSecurity +- type: playTimeTracker + id: JobDeathSquad + +- type: playTimeTracker + id: JobCBURN + - type: playTimeTracker id: JobHeadOfPersonnel From f91672974c484684dcd59d3880956b8e8585d409 Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 9 Sep 2024 19:37:31 +0000 Subject: [PATCH 036/192] Automatic changelog update --- Resources/Changelog/Changelog.yml | 37 +++++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index dd4e754601..eedb49d1e8 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: DogZeroX - changes: - - message: Bananium no longer emit rads - type: Remove - id: 6832 - time: '2024-06-28T23:28:27.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/29545 - author: TokenStyle changes: - message: Mechs can now be destroyed! @@ -3880,3 +3873,33 @@ id: 7331 time: '2024-09-09T19:34:18.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/31524 +- author: Winkarst-cpu + changes: + - message: Now fire axe (the flaming one), and an advanced circular saw are Syndicate + contraband. + type: Fix + - message: Now encryption keys are restricted according to their department. + type: Fix + - message: Now ERT, Deathsquad and Central Command Official items are restricted + to the Central Command. + type: Fix + - message: Now acolyte armor, a thieving beacon and the thief's undetermined toolbox + are minor contraband. + type: Fix + - message: Now bladed flatcaps are not a contraband (stealth item). + type: Fix + - message: Now mercenary clothes, magazines, speedloaders and cartridges are contraband. + type: Fix + - message: Now cleanades are restricted to the Service. + type: Fix + - message: Now metal foam grenades are restricted to the Engineering. + type: Fix + - message: Now flash, smoke, and tear gas grenades are restricted to the Security. + type: Fix + - message: Now combat gloves are restricted to Security and Cargo. + type: Fix + - message: The Central Command restricted contraband group and department were added. + type: Add + id: 7332 + time: '2024-09-09T19:36:25.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/31606 From ec4d59f6088ecc14b9231d51df18a4a4334d28ff Mon Sep 17 00:00:00 2001 From: themias <89101928+themias@users.noreply.github.com> Date: Mon, 9 Sep 2024 15:38:49 -0400 Subject: [PATCH 037/192] Save unpublished news articles (#31491) * Add draft saving to news consoles * fix after bui changes * comments + rename vars * no --- .../MassMedia/Ui/ArticleEditorPanel.xaml | 4 +++- .../MassMedia/Ui/ArticleEditorPanel.xaml.cs | 12 ++++++++++ .../Ui/NewsWriterBoundUserInterface.cs | 15 +++++++++++- .../MassMedia/Ui/NewsWriterMenu.xaml.cs | 9 ++++++- .../Components/NewsWriterComponent.cs | 12 ++++++++++ .../MassMedia/Systems/NewsSystem.cs | 14 ++++++++++- .../Components/NewsWriterBuiMessages.cs | 24 ++++++++++++++++++- Resources/Locale/en-US/mass-media/news-ui.ftl | 3 ++- 8 files changed, 87 insertions(+), 6 deletions(-) diff --git a/Content.Client/MassMedia/Ui/ArticleEditorPanel.xaml b/Content.Client/MassMedia/Ui/ArticleEditorPanel.xaml index 2b600845ca..f4fb9da062 100644 --- a/Content.Client/MassMedia/Ui/ArticleEditorPanel.xaml +++ b/Content.Client/MassMedia/Ui/ArticleEditorPanel.xaml @@ -47,8 +47,10 @@ +