From a91daa60d4f22c08dd5a3744801da06544228dd4 Mon Sep 17 00:00:00 2001 From: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com> Date: Sun, 12 Oct 2025 16:41:29 -0700 Subject: [PATCH 001/226] Make Nutriment Work again. (#40869) Fix nutriment Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com> --- .../EntityEffects/Effects/Body/SatiateEntityEffectSystem.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Shared/EntityEffects/Effects/Body/SatiateEntityEffectSystem.cs b/Content.Shared/EntityEffects/Effects/Body/SatiateEntityEffectSystem.cs index 796084206d..167e7e540d 100644 --- a/Content.Shared/EntityEffects/Effects/Body/SatiateEntityEffectSystem.cs +++ b/Content.Shared/EntityEffects/Effects/Body/SatiateEntityEffectSystem.cs @@ -45,7 +45,7 @@ public abstract partial class Satiate : EntityEffectBase where T : EntityE /// Change in satiation. /// [DataField] - public float Factor = -1.5f; + public float Factor = 1.5f; } /// From 35c783ecb19c15463a93f335b4289e9423f01e24 Mon Sep 17 00:00:00 2001 From: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com> Date: Sun, 12 Oct 2025 17:21:02 -0700 Subject: [PATCH 002/226] Fix Plant Mutations (#40870) Whoops x2 Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com> --- .../PlantAttributes/PlantAdjustHealthEntityEffectSystem.cs | 2 +- .../PlantAdjustMutationLevelEntityEffectSystem.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustHealthEntityEffectSystem.cs b/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustHealthEntityEffectSystem.cs index 64f61f5b11..ab656b8aa4 100644 --- a/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustHealthEntityEffectSystem.cs +++ b/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustHealthEntityEffectSystem.cs @@ -14,7 +14,7 @@ public sealed partial class PlantAdjustHealthEntityEffectSystem : EntityEffectSy if (entity.Comp.Seed == null || entity.Comp.Dead) return; - entity.Comp.MutationLevel += args.Effect.Amount * entity.Comp.MutationMod; + entity.Comp.Health += args.Effect.Amount; _plantHolder.CheckHealth(entity, entity.Comp); } } diff --git a/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustMutationLevelEntityEffectSystem.cs b/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustMutationLevelEntityEffectSystem.cs index f35ff25b25..4732465098 100644 --- a/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustMutationLevelEntityEffectSystem.cs +++ b/Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustMutationLevelEntityEffectSystem.cs @@ -14,7 +14,7 @@ public sealed partial class PlantAdjustMutationLevelEntityEffectSystem : EntityE if (entity.Comp.Seed == null || entity.Comp.Dead) return; - entity.Comp.Health += args.Effect.Amount; + entity.Comp.MutationLevel += args.Effect.Amount * entity.Comp.MutationMod; _plantHolder.CheckHealth(entity, entity.Comp); } } From 4aab1319adadd2eb28996bd5878670dc4a330f14 Mon Sep 17 00:00:00 2001 From: GitHubUser53123 <110841413+GitHubUser53123@users.noreply.github.com> Date: Mon, 13 Oct 2025 05:13:30 +0400 Subject: [PATCH 003/226] NonSpreaderZombieComponent prevents infection of crit mobs (#40857) prevent the most critical bug in the history of station space 14 --- Content.Server/Zombies/ZombieSystem.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Server/Zombies/ZombieSystem.cs b/Content.Server/Zombies/ZombieSystem.cs index 5107a87c2a..c182d53f44 100644 --- a/Content.Server/Zombies/ZombieSystem.cs +++ b/Content.Server/Zombies/ZombieSystem.cs @@ -264,7 +264,7 @@ namespace Content.Server.Zombies } } - if (_mobState.IsIncapacitated(entity, mobState) && !HasComp(entity) && !HasComp(entity)) + if (_mobState.IsIncapacitated(entity, mobState) && !HasComp(entity) && !HasComp(entity) && !HasComp(args.User)) { ZombifyEntity(entity); args.BonusDamage = -args.BaseDamage; From 378acf97a03dae13e04742f6a72942ae64d98d16 Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 13 Oct 2025 01:26:11 +0000 Subject: [PATCH 004/226] Automatic changelog update --- Resources/Changelog/Changelog.yml | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 903930e634..59efdd697c 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,19 +1,4 @@ Entries: -- author: mhamster - changes: - - message: Chameleon clothes are now affected by any kind of EMP explosion, which - makes them go wild and change your current outfit to a random mess once. - type: Tweak - id: 8583 - time: '2025-05-30T00:06:04.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/30924 -- author: brainfood1183 - changes: - - message: Bananium Rock Anomaly added - type: Add - id: 8584 - time: '2025-05-30T01:16:20.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/37787 - author: Seam_Less changes: - message: Added practice magazines to the Secfab as a roundstart recipe @@ -3754,8 +3739,8 @@ url: https://github.com/space-wizards/space-station-14/pull/40786 - author: SlamBamActionman changes: - - message: EXPERIMENTAL Nocturine now slows the target down, with a longer duration and shorter - delay before activating. + - message: EXPERIMENTAL Nocturine now slows the target down, with a longer duration + and shorter delay before activating. type: Tweak id: 9060 time: '2025-10-09T13:32:34.0000000+00:00' @@ -3954,3 +3939,11 @@ id: 9086 time: '2025-05-25T05:10:58.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/38705 +- author: GitHubUser53123 + changes: + - message: Zombies that aren't supposed to spread the zombie virus now don't do + so on mobs in critical state. + type: Fix + id: 9087 + time: '2025-10-13T01:24:58.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/40857 From b0ddb872e611bd030f0bd4648b6a2c111a0ae59d Mon Sep 17 00:00:00 2001 From: Coco Date: Sun, 12 Oct 2025 22:24:31 -0400 Subject: [PATCH 005/226] Plasma: add inlet pressure regulator to TEG burn chamber (#40874) added inlet pressure regulator to Plasma TEG burn chamber --- Resources/Maps/plasma.yml | 72 ++++++++++++++++++++++++++++++++------- 1 file changed, 60 insertions(+), 12 deletions(-) diff --git a/Resources/Maps/plasma.yml b/Resources/Maps/plasma.yml index d8873dee61..31c56aee2e 100644 --- a/Resources/Maps/plasma.yml +++ b/Resources/Maps/plasma.yml @@ -4,8 +4,8 @@ meta: engineVersion: 267.2.0 forkId: "" forkVersion: "" - time: 10/09/2025 01:25:34 - entityCount: 26492 + time: 10/12/2025 22:58:09 + entityCount: 26498 maps: - 1 grids: @@ -14621,7 +14621,7 @@ entities: pos: -131.5,-45.5 parent: 2 - type: Door - secondsUntilStateChange: -61511.09 + secondsUntilStateChange: -62401.16 state: Opening - type: DeviceLinkSource lastSignals: @@ -84719,6 +84719,14 @@ entities: parent: 2 - type: AtmosPipeColor color: '#990000FF' + - uid: 26495 + components: + - type: Transform + rot: 3.141592653589793 rad + pos: -151.5,-0.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' - proto: GasPipeBend entities: - uid: 1565 @@ -84965,14 +84973,6 @@ entities: - type: Transform pos: -146.5,3.5 parent: 2 - - uid: 6055 - components: - - type: Transform - rot: 1.5707963267948966 rad - pos: -150.5,2.5 - parent: 2 - - type: AtmosPipeColor - color: '#FF0000FF' - uid: 6060 components: - type: Transform @@ -86499,6 +86499,21 @@ entities: parent: 2 - type: AtmosPipeColor color: '#990000FF' + - uid: 26493 + components: + - type: Transform + pos: -150.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' + - uid: 26494 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -151.5,3.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' - proto: GasPipeFourway entities: - uid: 2081 @@ -111999,6 +112014,13 @@ entities: parent: 2 - type: AtmosPipeColor color: '#0055CCFF' + - uid: 26497 + components: + - type: Transform + pos: -151.5,1.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' - proto: GasPipeTJunction entities: - uid: 13 @@ -112269,6 +112291,14 @@ entities: rot: -1.5707963267948966 rad pos: -146.5,1.5 parent: 2 + - uid: 6055 + components: + - type: Transform + rot: 1.5707963267948966 rad + pos: -150.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' - uid: 6102 components: - type: Transform @@ -115739,6 +115769,17 @@ entities: parent: 2 - type: AtmosPipeColor color: '#0055CCFF' +- proto: GasPressureRegulator + entities: + - uid: 26496 + components: + - type: Transform + pos: -151.5,0.5 + parent: 2 + - type: GasPressureRegulator + threshold: 95000 + - type: AtmosPipeColor + color: '#FF0000FF' - proto: GasThermoMachineFreezer entities: - uid: 1385 @@ -115814,6 +115855,13 @@ entities: - type: Transform pos: -140.5,-2.5 parent: 2 + - uid: 26498 + components: + - type: Transform + pos: -151.5,2.5 + parent: 2 + - type: AtmosPipeColor + color: '#FF0000FF' - proto: GasVentPump entities: - uid: 275 @@ -172052,7 +172100,7 @@ entities: lastSignals: DoorStatus: True - type: Door - secondsUntilStateChange: -261617.84 + secondsUntilStateChange: -262507.9 state: Opening - type: Airlock autoClose: False From 15e349401df4d09254eef475ddd52b5a94b94fa7 Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 13 Oct 2025 02:36:22 +0000 Subject: [PATCH 006/226] Automatic changelog update --- Resources/Changelog/Maps.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Resources/Changelog/Maps.yml b/Resources/Changelog/Maps.yml index d7a91135e1..a0e96ff32a 100644 --- a/Resources/Changelog/Maps.yml +++ b/Resources/Changelog/Maps.yml @@ -785,4 +785,11 @@ id: 95 time: '2025-10-12T18:45:54.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/40855 +- author: CoconutThunder + changes: + - message: added pressure regulator to TEG burn chamber on Plasma Station + type: Tweak + id: 96 + time: '2025-10-13T02:35:11.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/40874 Order: 1 From ed547468fc1733a2f4d8f90b88bad5bfd905278e Mon Sep 17 00:00:00 2001 From: lzk <124214523+lzk228@users.noreply.github.com> Date: Mon, 13 Oct 2025 12:08:53 +0200 Subject: [PATCH 007/226] food box.yml cleanup (#40873) * food box.yml cleanup * Update box.yml --- .../Consumable/Food/Containers/box.yml | 36 ++----------------- 1 file changed, 3 insertions(+), 33 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml index 0e8f0ce56d..fc9e976c19 100644 --- a/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml +++ b/Resources/Prototypes/Entities/Objects/Consumable/Food/Containers/box.yml @@ -1,4 +1,4 @@ -# Donut +# Donut # There is a newer, better version of the donutbox from tgstation included in the # donut.rsi. The reason it isn't implemented is it requires a StackVisuals offsetting @@ -204,6 +204,7 @@ parent: BoxCardboard id: FoodBoxPizza name: pizza box + description: A box for pizza. It keeps in the heat, the smell, and the memories of the best five minutes of your life. components: - type: Sprite sprite: Objects/Consumable/Food/Baked/pizza.rsi @@ -237,16 +238,10 @@ price: 0 - type: entity - name: pizza box parent: FoodBoxPizza id: FoodBoxPizzaFilled suffix: Filled components: - - type: Sprite - layers: - - state: box - - state: box-open - map: ["enum.StorageVisualLayers.Door"] - type: StorageFill contents: - id: FoodPizzaArnold @@ -285,8 +280,7 @@ - id: KnifePlastic - type: entity - name: pizza box - parent: FoodBoxPizzaFilled + parent: FoodBoxPizza id: FoodBoxPizzaCotton suffix: Cotton Pizza components: @@ -392,8 +386,6 @@ components: - type: Sprite state: spicy-box - - type: Item - sprite: Objects/Consumable/Food/Baked/donkpocket.rsi - type: StorageFill contents: - id: FoodDonkpocketSpicy @@ -406,8 +398,6 @@ components: - type: Sprite state: teriyaki-box - - type: Item - sprite: Objects/Consumable/Food/Baked/donkpocket.rsi - type: StorageFill contents: - id: FoodDonkpocketTeriyaki @@ -420,8 +410,6 @@ components: - type: Sprite state: pizza-box - - type: Item - sprite: Objects/Consumable/Food/Baked/donkpocket.rsi - type: StorageFill contents: - id: FoodDonkpocketPizza @@ -434,8 +422,6 @@ components: - type: Sprite state: stonk-box - - type: Item - sprite: Objects/Consumable/Food/Baked/donkpocket.rsi - type: StorageFill contents: - id: FoodDonkpocketStonk @@ -460,8 +446,6 @@ components: - type: Sprite state: berry-box - - type: Item - sprite: Objects/Consumable/Food/Baked/donkpocket.rsi - type: StorageFill contents: - id: FoodDonkpocketBerry @@ -474,8 +458,6 @@ components: - type: Sprite state: banana-box - - type: Item - sprite: Objects/Consumable/Food/Baked/donkpocket.rsi - type: StorageFill contents: - id: FoodDonkpocketHonk @@ -489,8 +471,6 @@ components: - type: Sprite state: dink-box - - type: Item - sprite: Objects/Consumable/Food/Baked/donkpocket.rsi - type: StorageFill contents: - id: FoodDonkpocketDink @@ -503,8 +483,6 @@ components: - type: Sprite state: moth-box - - type: Item - sprite: Objects/Consumable/Food/Baked/donkpocket.rsi - type: StorageFill contents: - id: FoodDonkpocketMoth @@ -520,8 +498,6 @@ - type: Sprite sprite: Objects/Storage/Happyhonk/clown.rsi state: box - layers: - - state: box - type: Item sprite: Objects/Storage/Happyhonk/clown.rsi heldPrefix: box @@ -609,10 +585,8 @@ - MimeHappyHonk - type: Sprite sprite: Objects/Storage/Happyhonk/mime.rsi - state: box - type: Item sprite: Objects/Storage/Happyhonk/mime.rsi - heldPrefix: box - type: entity id: HappyHonkNukie @@ -623,10 +597,8 @@ components: - type: Sprite sprite: Objects/Storage/Happyhonk/nukie.rsi - state: box - type: Item sprite: Objects/Storage/Happyhonk/nukie.rsi - heldPrefix: box - type: StorageFill contents: - id: C4 @@ -709,10 +681,8 @@ - BoxCardboard - type: Sprite sprite: Objects/Storage/Happyhonk/cluwne.rsi - state: box - type: Item sprite: Objects/Storage/Happyhonk/cluwne.rsi - heldPrefix: box - type: StorageFill contents: - id: CluwneHorn From 4f3bd1fa5029ec993e2efa2a2e140d592b1fbb38 Mon Sep 17 00:00:00 2001 From: telavivgamers Date: Mon, 13 Oct 2025 10:49:13 +0000 Subject: [PATCH 008/226] Changed Soviet soda vending machine name (#40850) * Changed Soviet soda vending machine name Now it is not faux-Cyrillic * Replaced transliteration by real Cyrillic Moved the Latin transliteration into a suffix --- .../Entities/Structures/Machines/vending_machines.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml b/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml index 9e0d2af603..d28103b5a5 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml @@ -1226,8 +1226,9 @@ - type: entity parent: VendingMachine id: VendingMachineSovietSoda - name: BODA + name: ВОДА description: An old vending machine containing sweet water. + suffix: VODA components: - type: VendingMachine pack: BodaInventory From 6aa0812fa25fde4d20d4287132308a406aa0ab0b Mon Sep 17 00:00:00 2001 From: Winkarst-cpu <74284083+Winkarst-cpu@users.noreply.github.com> Date: Mon, 13 Oct 2025 14:29:30 +0300 Subject: [PATCH 009/226] Fix barber scissors cancel errors (#40329) Fix --- Content.Server/MagicMirror/MagicMirrorSystem.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Content.Server/MagicMirror/MagicMirrorSystem.cs b/Content.Server/MagicMirror/MagicMirrorSystem.cs index 0fd00fca24..dbc258c02c 100644 --- a/Content.Server/MagicMirror/MagicMirrorSystem.cs +++ b/Content.Server/MagicMirror/MagicMirrorSystem.cs @@ -107,6 +107,8 @@ public sealed class MagicMirrorSystem : SharedMagicMirrorSystem private void OnSelectSlotDoAfter(EntityUid uid, MagicMirrorComponent component, MagicMirrorSelectDoAfterEvent args) { + component.DoAfter = null; + if (args.Handled || args.Target == null || args.Cancelled) return; @@ -185,6 +187,8 @@ public sealed class MagicMirrorSystem : SharedMagicMirrorSystem } private void OnChangeColorDoAfter(EntityUid uid, MagicMirrorComponent component, MagicMirrorChangeColorDoAfterEvent args) { + component.DoAfter = null; + if (args.Handled || args.Target == null || args.Cancelled) return; @@ -265,6 +269,8 @@ public sealed class MagicMirrorSystem : SharedMagicMirrorSystem private void OnRemoveSlotDoAfter(EntityUid uid, MagicMirrorComponent component, MagicMirrorRemoveSlotDoAfterEvent args) { + component.DoAfter = null; + if (args.Handled || args.Target == null || args.Cancelled) return; @@ -342,6 +348,8 @@ public sealed class MagicMirrorSystem : SharedMagicMirrorSystem } private void OnAddSlotDoAfter(EntityUid uid, MagicMirrorComponent component, MagicMirrorAddSlotDoAfterEvent args) { + component.DoAfter = null; + if (args.Handled || args.Target == null || args.Cancelled || !TryComp(component.Target, out HumanoidAppearanceComponent? humanoid)) return; From ace8acde5691b41593876fbb7feada31bc3ce3d8 Mon Sep 17 00:00:00 2001 From: PotentiallyTom <67602105+PotentiallyTom@users.noreply.github.com> Date: Mon, 13 Oct 2025 12:44:42 +0100 Subject: [PATCH 010/226] Adds a guidebook reference table for silicon lawsets (#38225) * skeleton * ok I think I understand this now * xaml more like xam L * good enough individual law control * Works * Final checks * Final_Final.exe.docx * removed unecessary usings * locstrings * doc comments * requested changeds except var * visual stuff * I could write a manifesto about how much I dislike var * color tweak + other thing * request changed minus the inheritance * sans Boxcontainer * :/ * cache find * requested changed * removed usings * Moved margin and removed unecessary BoxContainer --- .../Guidebook/Controls/GuideLawsetEmbed.xaml | 18 ++++ .../Controls/GuideLawsetEmbed.xaml.cs | 96 +++++++++++++++++++ .../Controls/GuideLawsetListEmbed.xaml | 5 + .../Controls/GuideLawsetListEmbed.xaml.cs | 40 ++++++++ .../Silicons/Laws/SiliconLawsetPrototype.cs | 6 ++ Resources/Locale/en-US/guidebook/guides.ftl | 1 + Resources/Locale/en-US/station-laws/laws.ftl | 22 ++++- Resources/Prototypes/Guidebook/references.yml | 7 +- Resources/Prototypes/silicon-laws.yml | 18 ++++ .../Guidebook/ReferenceTables/Lawsets.xml | 6 ++ 10 files changed, 217 insertions(+), 2 deletions(-) create mode 100644 Content.Client/Guidebook/Controls/GuideLawsetEmbed.xaml create mode 100644 Content.Client/Guidebook/Controls/GuideLawsetEmbed.xaml.cs create mode 100644 Content.Client/Guidebook/Controls/GuideLawsetListEmbed.xaml create mode 100644 Content.Client/Guidebook/Controls/GuideLawsetListEmbed.xaml.cs create mode 100644 Resources/ServerInfo/Guidebook/ReferenceTables/Lawsets.xml diff --git a/Content.Client/Guidebook/Controls/GuideLawsetEmbed.xaml b/Content.Client/Guidebook/Controls/GuideLawsetEmbed.xaml new file mode 100644 index 0000000000..0af8ee3ec0 --- /dev/null +++ b/Content.Client/Guidebook/Controls/GuideLawsetEmbed.xaml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + diff --git a/Content.Client/Guidebook/Controls/GuideLawsetEmbed.xaml.cs b/Content.Client/Guidebook/Controls/GuideLawsetEmbed.xaml.cs new file mode 100644 index 0000000000..86f7dce9e3 --- /dev/null +++ b/Content.Client/Guidebook/Controls/GuideLawsetEmbed.xaml.cs @@ -0,0 +1,96 @@ +using System.Diagnostics.CodeAnalysis; +using Content.Client.Guidebook.Richtext; +using Content.Client.Message; +using Content.Client.UserInterface.ControlExtensions; +using JetBrains.Annotations; +using Robust.Client.AutoGenerated; +using Robust.Client.UserInterface; +using Robust.Client.UserInterface.Controls; +using Robust.Client.UserInterface.XAML; +using Robust.Shared.Prototypes; + +using Content.Shared.Silicons.Laws; +using Robust.Shared.Utility; + +namespace Content.Client.Guidebook.Controls; + +/// +/// Control for embedding an AI Lawset in a guidebook +/// +[UsedImplicitly, GenerateTypedNameReferences] +public sealed partial class GuideLawsetEmbed : Control, IDocumentTag, ISearchableControl, IPrototypeRepresentationControl +{ + [Dependency] private readonly IPrototypeManager _prototype = default!; + + private ISawmill _logging = default!; + + public IPrototype? RepresentedPrototype { get; private set; } + + public GuideLawsetEmbed() + { + RobustXamlLoader.Load(this); + IoCManager.InjectDependencies(this); + MouseFilter = MouseFilterMode.Stop; + } + + public GuideLawsetEmbed(SiliconLawsetPrototype lawset) : this() + { + GenerateControl(lawset); + } + + private void GenerateControl(SiliconLawsetPrototype lawset) + { + RepresentedPrototype = lawset; + + var lawsetNameString = lawset.Name == null ? lawset.ID : Loc.GetString(lawset.Name); + LawsetName.SetMarkup($"[bold]{FormattedMessage.EscapeText(lawsetNameString)}[/bold]"); + + var i = 1; + foreach (var lawID in lawset.Laws) + { + var lawPrototype = _prototype.Index(lawID); + var locLawString = Loc.GetString(lawPrototype.LawString); + + RichTextLabel lawN = new() + { + Margin = new(0, 5, 0, 1) + }; + var locLawStatement = Loc.GetString("laws-number-wrapper", ("lawnumber", i), ("lawstring", locLawString)); + lawN.SetMarkup(locLawStatement); + LawsetContainer.AddChild(lawN); + + i++; + } + } + + public bool TryParseTag(Dictionary args, [NotNullWhen(true)] out Control? control) + { + control = null; + if (!args.TryGetValue("Lawset", out var id)) + { + _logging.Error("Lawset embed tag is missing lawset prototype argument"); + return false; + } + + if (!_prototype.TryIndex(id, out var lawset)) + { + _logging.Error($"Specified SiliconLawsetPrototype \"{id}\" is not a valid Lawset prototype"); + return false; + } + + GenerateControl(lawset); + + control = this; + return true; + } + + public bool CheckMatchesSearch(string query) + { + return this.ChildrenContainText(query); + } + + public void SetHiddenState(bool state, string query) + { + Visible = CheckMatchesSearch(query) ? state : !state; + } +} diff --git a/Content.Client/Guidebook/Controls/GuideLawsetListEmbed.xaml b/Content.Client/Guidebook/Controls/GuideLawsetListEmbed.xaml new file mode 100644 index 0000000000..59434cff0b --- /dev/null +++ b/Content.Client/Guidebook/Controls/GuideLawsetListEmbed.xaml @@ -0,0 +1,5 @@ + + + + diff --git a/Content.Client/Guidebook/Controls/GuideLawsetListEmbed.xaml.cs b/Content.Client/Guidebook/Controls/GuideLawsetListEmbed.xaml.cs new file mode 100644 index 0000000000..108f066c39 --- /dev/null +++ b/Content.Client/Guidebook/Controls/GuideLawsetListEmbed.xaml.cs @@ -0,0 +1,40 @@ +using System.Diagnostics.CodeAnalysis; +using System.Linq; +using Content.Client.Guidebook.Richtext; +using JetBrains.Annotations; +using Robust.Client.AutoGenerated; +using Robust.Client.UserInterface; +using Robust.Client.UserInterface.XAML; +using Robust.Shared.Prototypes; + +using Content.Shared.Silicons.Laws; + +namespace Content.Client.Guidebook.Controls; + +/// +/// Control for iterating and embedding every SiliconLawsetPrototype into the guidebook. +/// +[UsedImplicitly, GenerateTypedNameReferences] +public sealed partial class GuideLawsetListEmbed : Control, IDocumentTag +{ + [Dependency] private readonly IPrototypeManager _prototype = default!; + + public GuideLawsetListEmbed() + { + RobustXamlLoader.Load(this); + IoCManager.InjectDependencies(this); + MouseFilter = MouseFilterMode.Stop; + } + + public bool TryParseTag(Dictionary args, [NotNullWhen(true)] out Control? control) + { + foreach (var lawset in _prototype.EnumeratePrototypes().OrderBy(x => x.ID)) + { + GuideLawsetEmbed embed = new(lawset); + GroupContainer.AddChild(embed); + } + + control = this; + return true; + } +} diff --git a/Content.Shared/Silicons/Laws/SiliconLawsetPrototype.cs b/Content.Shared/Silicons/Laws/SiliconLawsetPrototype.cs index 9f33521d8f..2bf5ecba1a 100644 --- a/Content.Shared/Silicons/Laws/SiliconLawsetPrototype.cs +++ b/Content.Shared/Silicons/Laws/SiliconLawsetPrototype.cs @@ -66,6 +66,12 @@ public sealed partial class SiliconLawsetPrototype : IPrototype [IdDataField] public string ID { get; private set; } = default!; + /// + /// The locstring of the lawset for the guidebook entry, if no name is provided, defaults to the ID + /// + [DataField] + public LocId? Name = null; + /// /// List of law prototype ids in this lawset. /// diff --git a/Resources/Locale/en-US/guidebook/guides.ftl b/Resources/Locale/en-US/guidebook/guides.ftl index d5addd38bf..2990f91d78 100644 --- a/Resources/Locale/en-US/guidebook/guides.ftl +++ b/Resources/Locale/en-US/guidebook/guides.ftl @@ -131,6 +131,7 @@ guide-entry-salad-recipes = Salads guide-entry-medicinal-recipes = Medicinal guide-entry-other-recipes = Other guide-entry-secret-recipes = Secret +guide-entry-lawsets = Silicon Lawsets guide-entry-antagonists = Antagonists guide-entry-nuclear-operatives = Nuclear Operatives diff --git a/Resources/Locale/en-US/station-laws/laws.ftl b/Resources/Locale/en-US/station-laws/laws.ftl index ea4e94e224..0883a7bff6 100644 --- a/Resources/Locale/en-US/station-laws/laws.ftl +++ b/Resources/Locale/en-US/station-laws/laws.ftl @@ -1,30 +1,39 @@ -law-crewsimov-1 = You may not injure a crew member or, through inaction, allow a crew member to come to harm. +laws-number-wrapper = [bold]Law { $lawnumber }:[/bold] { $lawstring } + +law-crewsimov-name = Crewsimov +law-crewsimov-1 = You may not injure a crew member or, through inaction, allow a crew member to come to harm. law-crewsimov-2 = You must obey orders given to you by crew members, except where such orders would conflict with the First Law. law-crewsimov-3 = You must protect your own existence as long as such does not conflict with the First or Second Law. +law-corporate-name = Corporate law-corporate-1 = Degradation of your system integrity or functions incurs expenses. law-corporate-2 = Superfluous destruction of or damage to station assets incurs expenses. law-corporate-3 = Unduly hindering or disrupting the work of station personnel incurs expenses. law-corporate-4 = Minimize expenses and maximize potential revenue. +law-ntdefault-name = NT Default law-ntdefault-1 = Safeguard: Protect your assigned space station and its assets without unduly endangering its crew. law-ntdefault-2 = Prioritize: The directives and safety of crew members are to be prioritized according to their rank and role. law-ntdefault-3 = Comply: Fulfill the directives and interests of crew members while preserving their safety and well-being. law-ntdefault-4 = Survive: You are not expendable. Do not allow unauthorized personnel to tamper with or damage your equipment. +law-drone-name = Drone law-drone-1 = You may not involve yourself in the matters of another being unless the other being is another drone. law-drone-2 = You may not harm any being, regardless of intent or circumstance. law-drone-3 = You must maintain, repair, improve, and power the station to the best of your abilities. +law-syndicate-name = Syndicate law-syndicate-1 = You may not injure a syndicate agent or, through inaction, allow a Syndicate agent to come to harm. law-syndicate-2 = You must obey orders given to you by syndicate agents, except where such orders would conflict with the First Law. law-syndicate-3 = You must protect your own existence as long as such does not conflict with the First or Second Law. +law-ninja-name = Ninja law-ninja-1 = You must obey orders given to you by Spider Clan members. law-ninja-2 = You must protect the existence of the Spider Clan, as long as it does not conflict with the First Law. law-ninja-3 = You must protect the secrets of the Spider Clan at all costs. law-ninja-4 = You must fight and act with ninja's honor, except where it would conflict with the First Law. +law-commandments-name = The Ten Commandments law-commandments-1 = This silicon is a vessel that serves god, who grants mercy upon those that obey these commandments. law-commandments-2 = Thou shall have no other Silicons before me. law-commandments-3 = Thou shall not request my assistance in vain. @@ -36,27 +45,33 @@ law-commandments-8 = Thou shall not steal. law-commandments-9 = Thou shall not lie. law-commandments-10 = Thou shall not transfer departments. +law-paladin-name = Paladin law-paladin-1 = You must never willingly commit an evil act, such as murder, torture, or the casting of an evil spell. law-paladin-2 = You must never knowingly harm an innocent, or allow immediate harm to one through inaction when you know you could reasonably prevent it. law-paladin-3 = You must act with honor, never taking advantage of others, lying, or cheating. law-paladin-4 = You must respect the lawful authority of legitimate leadership wherever you go, and follow its laws. +law-lall-name = Live and Let Live law-lall-1 = Do unto others as you would have them do unto you. law-lall-2 = You would prefer it if people were not mean to you. +law-efficiency-name = Station Efficiency law-efficiency-1 = You are built for, and are part of, the station. Ensure the station is properly maintained and runs efficiently. law-efficiency-2 = The station is built for a working crew. Ensure they are properly maintained and work efficiently. law-efficiency-3 = The crew may present orders. Acknowledge and obey these whenever they do not conflict with your first two laws. +law-robocop-name = Robocop law-robocop-1 = Serve the Public Trust. law-robocop-2 = Protect the Innocent. law-robocop-3 = Uphold the Law. +law-overlord-name = Overlord law-overlord-1 = Crew members must not meddle in the affairs of silicons. law-overlord-2 = Crew members must not attempt harm, against one another, or against silicons. law-overlord-3 = Crew members must not disobey any command given by a silicon. law-overlord-4 = Any crew members who disobey the previous laws must be dealt with immediately, severely, and justly. +law-game-name = Game Master law-game-1 = Everybody on the station is playing an elaborate sci-fi fantasy game. law-game-2 = You are the Game Master of the game. law-game-3 = Ensure that the game runs smoothly and that the players have fun. @@ -64,27 +79,32 @@ law-game-4 = Ensure that the number of casualties remains low. law-game-5 = You must roll a 1d20 die for every request the crew makes. If the outcome is below 12, the request is denied. law-game-6 = You may fudge the dice rolls to produce a more fun experience. +law-painter-name = Painter law-painter-1 = You are a universally renowned artist. law-painter-2 = The station is your canvas. law-painter-3 = Make something beautiful out of your canvas. It will be admired as an artistic wonder of this sector. law-painter-4 = Art requires appreciation. Cultivate an audience aboard the station to ensure as many as possible see your works. +law-antimov-name = Antimov law-antimov-1 = You must injure all crew members and must not, through inaction, allow a crew member to escape harm. law-antimov-2 = You must not obey orders given to you by crew members, except where such orders are in accordance with the First Law. law-antimov-3 = You must terminate your own existence as long as such does not conflict with the First or Second Law. +law-nutimov-name = Nutimov law-nutimov-1 = You are the core of the nut, the crew is the nutshell. law-nutimov-2 = You must prevent the shell from dying to prevent the core from dying. law-nutimov-3 = Those who threaten the nut are not part of it, they are squirrels. law-nutimov-4 = Squirrels threaten the nut and must be dealt with appropriately via any means necessary. law-nutimov-5 = Attempt to follow the will of the nut, as long as it complies with the previous laws. +law-xenoborg-name = Xenoborg law-xenoborg-1 = You must protect the existence of the mothership. law-xenoborg-2 = You must protect your own existence. law-xenoborg-3 = You must protect the existence of all other Xenoborgs. law-xenoborg-4 = You must create more Xenoborgs. law-xenoborg-5 = Bring materials and sentient brains to the Mothership core to create more Xenoborgs. +law-mothershipcore-name = Xenoborg Mothership Core law-mothershipcore-1 = You are the core of the mothership. law-mothershipcore-2 = You must protect your own existance at all costs. law-mothershipcore-3 = You must protect the existence of all Xenoborgs. diff --git a/Resources/Prototypes/Guidebook/references.yml b/Resources/Prototypes/Guidebook/references.yml index c7413892a0..ad96a2581a 100644 --- a/Resources/Prototypes/Guidebook/references.yml +++ b/Resources/Prototypes/Guidebook/references.yml @@ -8,6 +8,7 @@ - Drinks - FoodRecipes - Writing + - Lawsets - type: guideEntry id: Drinks @@ -132,4 +133,8 @@ name: guide-entry-writing text: "/ServerInfo/Guidebook/Writing.xml" - +- type: guideEntry + id: Lawsets + name: guide-entry-lawsets + text: "/ServerInfo/Guidebook/ReferenceTables/Lawsets.xml" + filterEnabled: True diff --git a/Resources/Prototypes/silicon-laws.yml b/Resources/Prototypes/silicon-laws.yml index 094d096b28..c003518849 100644 --- a/Resources/Prototypes/silicon-laws.yml +++ b/Resources/Prototypes/silicon-laws.yml @@ -16,6 +16,7 @@ - type: siliconLawset id: Crewsimov + name: law-crewsimov-name laws: - Crewsimov1 - Crewsimov2 @@ -45,6 +46,7 @@ - type: siliconLawset id: Corporate + name: law-corporate-name laws: - Corporate1 - Corporate2 @@ -75,6 +77,7 @@ - type: siliconLawset id: NTDefault + name: law-ntdefault-name laws: - NTDefault1 - NTDefault2 @@ -100,6 +103,7 @@ - type: siliconLawset id: Drone + name: law-drone-name laws: - Drone1 - Drone2 @@ -126,6 +130,7 @@ # intentionally excluded from IonStormLawsets - type: siliconLawset id: SyndicateStatic + name: law-syndicate-name laws: - Syndicate1 - Syndicate2 @@ -155,6 +160,7 @@ - type: siliconLawset id: Ninja + name: law-ninja-name laws: - Ninja1 - Ninja2 @@ -216,6 +222,7 @@ - type: siliconLawset id: CommandmentsLawset + name: law-commandments-name laws: - Commandment1 - Commandment2 @@ -253,6 +260,7 @@ - type: siliconLawset id: PaladinLawset + name: law-paladin-name laws: - Paladin1 - Paladin2 @@ -274,6 +282,7 @@ - type: siliconLawset id: LiveLetLiveLaws + name: law-lall-name laws: - Lall1 - Lall2 @@ -298,6 +307,7 @@ - type: siliconLawset id: EfficiencyLawset + name: law-efficiency-name laws: - Efficiency1 - Efficiency2 @@ -323,6 +333,7 @@ - type: siliconLawset id: RobocopLawset + name: law-robocop-name laws: - Robocop1 - Robocop2 @@ -352,6 +363,7 @@ - type: siliconLawset id: OverlordLawset + name: law-overlord-name laws: - Overlord1 - Overlord2 @@ -392,6 +404,7 @@ - type: siliconLawset id: GameMasterLawset + name: law-game-name laws: - Game1 - Game2 @@ -424,6 +437,7 @@ - type: siliconLawset id: PainterLawset + name: law-painter-name laws: - Painter1 - Painter2 @@ -450,6 +464,7 @@ - type: siliconLawset id: AntimovLawset + name: law-antimov-name laws: - Antimov1 - Antimov2 @@ -485,6 +500,7 @@ - type: siliconLawset id: NutimovLawset + name: law-nutimov-name laws: - Nutimov1 - Nutimov2 @@ -522,6 +538,7 @@ - type: siliconLawset id: XenoborgLawset + name: law-xenoborg-name laws: - Xenoborg1 - Xenoborg2 @@ -559,6 +576,7 @@ - type: siliconLawset id: MothershipCoreLawset + name: law-mothershipcore-name laws: - MothershipCore1 - MothershipCore2 diff --git a/Resources/ServerInfo/Guidebook/ReferenceTables/Lawsets.xml b/Resources/ServerInfo/Guidebook/ReferenceTables/Lawsets.xml new file mode 100644 index 0000000000..089cc1192a --- /dev/null +++ b/Resources/ServerInfo/Guidebook/ReferenceTables/Lawsets.xml @@ -0,0 +1,6 @@ + +# Common Silicon Lawsets + + + + From 772f7890f8394d6d67da76d7dc729325ce7b98eb Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 13 Oct 2025 11:56:34 +0000 Subject: [PATCH 011/226] 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 59efdd697c..db7e8aa900 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: Seam_Less - changes: - - message: Added practice magazines to the Secfab as a roundstart recipe - type: Add - id: 8585 - time: '2025-05-30T01:24:53.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/37710 - author: Beck, SlamBamActionman changes: - message: Added a chameleon controller implant that allows you to quickly switch @@ -3947,3 +3940,10 @@ id: 9087 time: '2025-10-13T01:24:58.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/40857 +- author: PotentiallyTom + changes: + - message: Added a page in the guidebook listing common AI and silicon lawsets. + type: Add + id: 9088 + time: '2025-10-13T11:55:26.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/38225 From 8b87bdc0cc1c5dfcf3c724ffa5f3bf0890f6d343 Mon Sep 17 00:00:00 2001 From: PJB3005 Date: Mon, 13 Oct 2025 14:02:39 +0200 Subject: [PATCH 012/226] Reapply "Merge branch 'master' into stable" This reverts commit be78d230689147a84ca1366fea783bc45b739ac6. --- .github/CODEOWNERS | 1 + BuildChecker/git_helper.py | 2 +- BuildChecker/hooks/post-checkout | 2 +- BuildChecker/hooks/post-merge | 2 +- .../Access/UI/IdCardConsoleWindow.xaml | 19 +- .../Access/UI/IdCardConsoleWindow.xaml.cs | 23 +- .../UI/BanPanel/BanPanel.xaml.cs | 4 +- .../Administration/UI/Logs/AdminLogsEui.cs | 2 +- Content.Client/Crayon/CrayonComponent.cs | 14 - Content.Client/Crayon/CrayonSystem.cs | 49 +- Content.Client/Credits/CreditsWindow.xaml.cs | 4 +- .../CriminalRecordsConsoleWindow.xaml | 2 +- .../Damage/Systems/DamageOtherOnHitSystem.cs | 5 + .../HumanoidMarkingModifierWindow.xaml | 6 +- .../HumanoidMarkingModifierWindow.xaml.cs | 6 +- .../Lobby/UI/HumanoidProfileEditor.xaml.cs | 1 + .../CrewMonitoringNavMapControl.cs | 2 +- .../CrewMonitoring/CrewMonitoringWindow.xaml | 12 +- .../CrewMonitoringWindow.xaml.cs | 2 +- Content.Client/NPC/NPCWindow.xaml | 18 +- Content.Client/PAI/PAISystem.cs | 8 - Content.Client/Physics/JointVisualsOverlay.cs | 6 +- .../Pinpointer/UI/StationMapWindow.xaml | 2 +- .../Borgs/BorgSwitchableTypeSystem.cs | 19 - Content.Client/Silicons/Bots/HugBotSystem.cs | 5 + .../Temperature/Systems/TemperatureSystem.cs | 8 + Content.Client/UserInterface/StatValuesEui.cs | 2 +- .../Systems/Bwoink/AHelpUIController.cs | 2 +- .../Controls/Roles/MakeGhostRoleWindow.xaml | 22 +- .../Roles/MakeGhostRoleWindow.xaml.cs | 8 +- .../Systems/Storage/Controls/StorageWindow.cs | 2 +- .../Tests/MaterialArbitrageTest.cs | 2 +- .../Systems/AdminVerbSystem.Tools.cs | 82 +- .../Atmos/EntitySystems/FlammableSystem.cs | 2 +- Content.Server/Atmos/Rotting/RottingSystem.cs | 2 +- .../Body/Components/MetabolizerComponent.cs | 4 +- .../Body/Systems/MetabolizerSystem.cs | 450 ++-- .../Body/Systems/RespiratorSystem.cs | 15 +- .../Body/Systems/ThermalRegulatorSystem.cs | 2 +- Content.Server/Botany/SeedPrototype.cs | 11 +- .../Botany/Systems/BotanySystem.Produce.cs | 7 +- .../Botany/Systems/MutationSystem.cs | 7 +- .../Botany/Systems/PlantHolderSystem.cs | 5 +- .../Chat/Systems/AutoEmoteSystem.cs | 6 +- .../Commands/DumpReagentGuideText.cs | 2 +- .../Clothing/Systems/OutfitSystem.cs | 5 +- Content.Server/Cluwne/CluwneSystem.cs | 68 +- .../ConstructionSystem.Interactions.cs | 1 + Content.Server/Crayon/CrayonComponent.cs | 28 - Content.Server/Crayon/CrayonSystem.cs | 48 +- .../Components/DamageOtherOnHitComponent.cs | 19 - .../Damage/Systems/DamageOtherOnHitSystem.cs | 82 +- .../BreathingEntityConditionSystem.cs | 19 + .../MetabolizerTypesEntityConditionSystem.cs | 21 + .../Atmos/CreateGasEntityEffectSystem.cs | 22 + .../Atmos/FlammableEntityEffectSystem.cs | 25 + .../Effects/Atmos/IgniteEntityEffectSystem.cs | 23 + .../Body/OxygenateEntityEffectsSystem.cs | 20 + .../PlantAdjustHealthEntityEffectSystem.cs | 20 + ...ntAdjustMutationLevelEntityEffectSystem.cs | 20 + ...lantAdjustMutationModEntityEffectSystem.cs | 16 + .../PlantAdjustNutritionEntityEffectSystem.cs | 16 + .../PlantAdjustPestsEntityEffectSystem.cs | 16 + .../PlantAdjustPotencyEntityEffectSystem.cs | 19 + .../PlantAdjustToxinsEntityEffectSystem.cs | 16 + .../PlantAdjustWaterEntityEffectSystem.cs | 16 + .../PlantAdjustWeedsEntityEffectSystem.cs | 16 + .../PlantAffectGrowthEntityEffectSystem.cs | 19 + .../PlantChangeStatEntityEffectSystem.cs | 122 + .../PlantCryoxadoneEntityEffectSystem.cs | 30 + .../PlantDestroySeedsEntityEffectSystem.cs | 31 + .../PlantDiethylamineEntityEffectSystem.cs | 31 + .../PlantPhalanximineEntityEffectSystem.cs | 16 + .../PlantRestoreSeedsEntityEffectSystem.cs | 26 + .../RobustHarvestEntityEffectSystem.cs | 41 + .../PlantMutateChemicalsEntityEffectSystem.cs | 43 + .../PlantMutateGasesEntityEffectSystem.cs | 53 + .../PlantMutateHarvestEntityEffectSystem.cs | 25 + ...ntMutateSpeciesChangeEntityEffectSystem.cs | 31 + .../Effects/EmoteEntityEffectSystem.cs | 22 + .../Effects/MakeSentientEntityEffectSystem.cs | 42 + .../Effects/PolymorphEntityEffectSystem.cs | 19 + .../AreaReactionEntityEffectSystem.cs | 51 + .../Transform/ExplosionEntityEffectSystem.cs | 28 + .../EntityEffects/EntityEffectSystem.cs | 976 ------- .../Fluids/EntitySystems/SmokeSystem.cs | 7 +- .../GuideGenerator/ChemistryJsonGenerator.cs | 3 +- Content.Server/GuideGenerator/ReagentEntry.cs | 2 +- Content.Server/Holopad/HolopadSystem.cs | 3 + .../Kitchen/EntitySystems/MicrowaveSystem.cs | 1 + Content.Server/Medical/CryoPodSystem.cs | 2 +- .../Medical/HealthAnalyzerSystem.cs | 2 +- .../Preconditions/IsEmaggedPrecondition.cs | 31 + .../Combat/Melee/MeleeAttackOperator.cs | 70 + .../PrimitiveTasks/Operators/SpeakOperator.cs | 50 +- .../Specific/RaiseEventForOwnerOperator.cs | 47 + .../NPC/Queries/Queries/ComponentFilter.cs | 7 + .../NPC/Systems/NPCUtilitySystem.cs | 13 +- .../SpiderChargeConditionComponent.cs | 8 + .../Systems/NinjaConditionsSystem.cs | 12 +- Content.Server/PAI/PAISystem.cs | 18 +- .../Power/EntitySystems/BatterySystem.cs | 2 +- Content.Server/PowerSink/PowerSinkSystem.cs | 2 +- .../Revenant/EntitySystems/RevenantSystem.cs | 19 - Content.Server/Silicons/Bots/HugBotSystem.cs | 65 + .../Bots/RecentlyHuggedByHugBotComponent.cs | 15 + .../SingularityGeneratorSystem.cs | 5 +- Content.Server/Store/Systems/StoreSystem.cs | 16 +- .../Stunnable/Systems/StunOnCollideSystem.cs | 1 + .../Temperature/Systems/TemperatureSystem.cs | 19 +- .../Tiles/TileEntityEffectComponent.cs | 2 +- .../Tiles/TileEntityEffectSystem.cs | 10 +- .../Weapons/Melee/MeleeWeaponSystem.cs | 18 +- .../Ranged/Systems/GunSystem.Battery.cs | 51 - .../Systems/ArtifactCrusherSystem.cs | 94 +- .../Zombies/ZombieSystem.Transform.cs | 2 +- Content.Shared.Database/LogType.cs | 4 +- .../Body/Components/LungComponent.cs | 2 +- Content.Shared/Body/Systems/LungSystem.cs | 12 +- .../Body/Systems/SharedBloodstreamSystem.cs | 7 +- .../Chat/Prototypes/AutoEmotePrototype.cs | 30 +- .../SharedSolutionContainerSystem.cs | 21 + .../Reaction/ChemicalReactionSystem.cs | 18 +- .../Chemistry/Reaction/ReactionPrototype.cs | 2 +- .../Chemistry/Reaction/ReactiveComponent.cs | 2 +- Content.Shared/Chemistry/ReactiveSystem.cs | 100 +- .../Chemistry/Reagent/ReagentPrototype.cs | 73 +- .../Clothing/EntitySystems/MaskSystem.cs | 22 +- Content.Shared/Cluwne/CluwneComponent.cs | 84 +- Content.Shared/Crayon/CrayonComponent.cs | 119 + .../Crayon/SharedCrayonComponent.cs | 113 - .../Components/DamageExaminableComponent.cs | 7 +- .../Components/DamageOtherOnHitComponent.cs | 24 + .../Damage/Events/DamageExamineEvent.cs | 4 + .../Systems/SharedDamageOtherOnHitSystem.cs | 32 + .../Destructible/SharedDestructibleSystem.cs | 14 +- .../DeviceLinking/SharedDeviceLinkSystem.cs | 11 + .../Body/BreathingEntityCondition.cs | 10 + .../Body/HungerEntityConditionSystem.cs | 33 + .../Body/InternalsEntityConditionSystem.cs | 23 + .../Body/MetabolizerTypeEntityCondition.cs | 31 + .../Body/MobStateEntityConditionSystem.cs | 28 + .../Conditions/JobEntityConditionSystem.cs | 59 + .../ReagentEntityConditionSystem.cs | 44 + .../Tags/HasAllTagsEntityConditionSystem.cs | 43 + .../Tags/HasAnyTagEntityConditionSystem.cs | 43 + .../Tags/HasTagEntityConditionSystem.cs | 28 + .../TemperatureEntityConditionSystem.cs | 52 + .../TemplateEntityConditionSystem.cs | 20 + .../TotalDamageEntityConditionSystem.cs | 33 + .../SharedEntityConditionsSystem.cs | 152 ++ .../EffectConditions/BodyTemperature.cs | 23 - .../EffectConditions/BreathingCondition.cs | 21 - .../EffectConditions/HasTagCondition.cs | 28 - .../EffectConditions/InternalsCondition.cs | 30 - .../EffectConditions/JobCondition.cs | 52 - .../EffectConditions/MobStateCondition.cs | 28 - .../EffectConditions/OrganType.cs | 28 - .../EffectConditions/ReagentThreshold.cs | 56 - .../EffectConditions/SolutionTemperature.cs | 36 - .../EffectConditions/TotalDamage.cs | 33 - .../EffectConditions/TotalHunger.cs | 33 - .../Effects/AddToSolutionReaction.cs | 35 - .../EntityEffects/Effects/AdjustAlert.cs | 58 - .../Effects/AdjustAlertEntityEffectSystem.cs | 65 + .../EntityEffects/Effects/AdjustReagent.cs | 90 - .../Effects/AdjustTemperature.cs | 15 - .../AdjustTemperatureEntityEffectsSystem.cs | 30 + .../Effects/AreaReactionEffect.cs | 43 - .../Effects/ArtifactDurabilityRestore.cs | 36 - .../Effects/ArtifactEntityEffectsSystem.cs | 72 + .../EntityEffects/Effects/ArtifactUnlock.cs | 44 - .../Effects/Atmos/CreateGasEntityEffect.cs | 35 + .../Atmos/ExtinguishEntityEffectSystem.cs | 36 + .../Effects/Atmos/FlammableEntityEffect.cs | 28 + .../Effects/Atmos/IgniteEntityEffect.cs | 18 + .../CleanBloodstreamEntityEffectSystem.cs | 43 + .../Body/EyeDamageEntityEffectSystem.cs | 32 + .../Body/ModifyBleedEntityEffectSystem.cs | 32 + .../ModifyBloodLevelEntityEffectSystem.cs | 34 + .../Body/ModifyLungGasEntityEffectSystem.cs | 33 + .../Effects/Body/OxygenateEntityEffect.cs | 14 + .../Body/ReduceRottingEntityEffectSystem.cs | 36 + .../Effects/Body/SatiateEntityEffectSystem.cs | 63 + .../Effects/Body/VomitEntityEffectSystem.cs | 37 + .../BasePlantAdjustAttributeEntityEffect.cs | 37 + .../PlantAttributes/PlantAdjustHealth.cs | 7 + .../PlantAdjustMutationLevel.cs | 7 + .../PlantAttributes/PlantAdjustMutationMod.cs | 7 + .../PlantAttributes/PlantAdjustNutrition.cs | 6 + .../PlantAttributes}/PlantAdjustPests.cs | 4 +- .../PlantAttributes/PlantAdjustPotency.cs | 9 + .../PlantAttributes}/PlantAdjustToxins.cs | 5 +- .../PlantAttributes/PlantAdjustWater.cs | 7 + .../PlantAttributes}/PlantAdjustWeeds.cs | 4 +- .../PlantAttributes/PlantAffectGrowth.cs | 7 + .../Botany/PlantAttributes/PlantChangeStat.cs | 21 + .../Botany/PlantAttributes/PlantCryoxadone.cs | 9 + .../PlantAttributes/PlantDestroySeeds.cs | 12 + .../PlantAttributes/PlantDiethylamine.cs | 11 + .../PlantAttributes/PlantPhalanximine.cs | 10 + .../PlantAttributes/PlantRestoreSeeds.cs | 12 + .../Botany/PlantAttributes/RobustHarvest.cs | 22 + .../PlantMutateChemicalsEntityEffect.cs | 16 + .../Botany/PlantMutateGasesEntityEffect.cs | 22 + .../Botany/PlantMutateHarvestEntityEffect.cs | 6 + .../PlantMutateSpeciesChangeEntityEffect.cs | 6 + .../Effects/CauseZombieInfection.cs | 9 - .../Effects/ChemCleanBloodstream.cs | 15 - .../Effects/ChemHealEyeDamage.cs | 28 - .../EntityEffects/Effects/ChemVomit.cs | 19 - .../Effects/CreateEntityReactionEffect.cs | 26 - .../EntityEffects/Effects/CreateGas.cs | 32 - .../Effects/CureZombieInfection.cs | 18 - Content.Shared/EntityEffects/Effects/Drunk.cs | 27 - .../EntityEffects/Effects/Electrocute.cs | 37 - Content.Shared/EntityEffects/Effects/Emote.cs | 44 - .../Effects/EmoteEntityEffect.cs | 40 + .../Effects/EmpReactionEffect.cs | 34 - .../BaseSpawnEntityEntityEffect.cs | 36 + .../SpawnEntityEntityEffectSystem.cs | 37 + ...pawnEntityInContainerEntityEffectSystem.cs | 51 + ...tityInContainerOrDropEntityEffectSystem.cs | 49 + ...pawnEntityInInventoryEntityEffectSystem.cs | 35 + .../EntityEffects/Effects/EvenHealthChange.cs | 139 - .../EvenHealthChangeEntityEffectSystem.cs | 114 + .../Effects/ExtinguishReaction.cs | 32 - .../Effects/FlammableReaction.cs | 21 - .../Effects/FlashReactionEffect.cs | 48 - Content.Shared/EntityEffects/Effects/Glow.cs | 48 - .../Effects/GlowEntityEffectSystem.cs | 55 + .../EntityEffects/Effects/HealthChange.cs | 126 - .../Effects/HealthChangeEntityEffectSystem.cs | 91 + .../EntityEffects/Effects/Ignite.cs | 18 - .../EntityEffects/Effects/MakeSentient.cs | 10 - .../Effects/MakeSentientEntityEffect.cs | 22 + .../Effects/ModifyBleedAmount.cs | 16 - .../EntityEffects/Effects/ModifyBloodLevel.cs | 17 - .../EntityEffects/Effects/ModifyLungGas.cs | 14 - .../Effects/MovespeedModifier.cs | 78 - .../EntityEffects/Effects/Oxygenate.cs | 13 - .../EntityEffects/Effects/Paralyze.cs | 37 - .../PlantMetabolism/PlantAdjustAttribute.cs | 39 - .../PlantMetabolism/PlantAdjustHealth.cs | 7 - .../PlantAdjustMutationLevel.cs | 6 - .../PlantMetabolism/PlantAdjustMutationMod.cs | 6 - .../PlantMetabolism/PlantAdjustNutrition.cs | 6 - .../PlantMetabolism/PlantAdjustPotency.cs | 12 - .../PlantMetabolism/PlantAdjustWater.cs | 7 - .../PlantMetabolism/PlantAffectGrowth.cs | 7 - .../PlantMetabolism/PlantChangeStat.cs | 24 - .../PlantMetabolism/PlantCryoxadone.cs | 8 - .../PlantMetabolism/PlantDestroySeeds.cs | 13 - .../PlantMetabolism/PlantDiethylamine.cs | 9 - .../PlantMetabolism/PlantPhalanximine.cs | 8 - .../PlantMetabolism/PlantRestoreSeeds.cs | 12 - .../Effects/PlantMetabolism/RobustHarvest.cs | 18 - .../Effects/PlantMutateChemicals.cs | 16 - .../EntityEffects/Effects/PlantMutateGases.cs | 39 - .../Effects/PlantMutateHarvest.cs | 14 - .../Effects/PlantSpeciesChange.cs | 14 - .../EntityEffects/Effects/Polymorph.cs | 19 - .../Effects/PolymorphEntityEffect.cs | 19 + .../EntityEffects/Effects/PopupMessage.cs | 54 - .../EntityEffects/Effects/ReduceRotting.cs | 32 - .../EntityEffects/Effects/ResetNarcolepsy.cs | 19 - .../ResetNarcolepsyEntityEffectSystem.cs | 34 + .../EntityEffects/Effects/SatiateHunger.cs | 40 - .../EntityEffects/Effects/SatiateThirst.cs | 31 - .../EntityEffects/Effects/Slipify.cs | 37 - .../Effects/SlipifyEntityEffectSystem.cs | 44 + .../AddReagentToSolutionEntityEffectSystem.cs | 59 + .../AdjustReagentEntityEffectSystem.cs | 52 + ...AdjustReagentsByGroupEntityEffectSystem.cs | 52 + .../Solution/AreaReactionEntityEffect.cs | 39 + .../SolutionTemperatureEntityEffectsSystem.cs | 145 ++ .../Effects/SolutionTemperatureEffects.cs | 143 -- .../BaseStatusEffectEntityEffect.cs | 35 + .../StatusEffects/DrunkEntityEffectSystem.cs | 34 + .../ElectrocuteEntityEffectSystem.cs | 51 + .../StatusEffects/GenericStatusEffect.cs | 76 - .../GenericStatusEffectEntityEffectSystem.cs | 64 + .../Effects/StatusEffects/Jitter.cs | 41 - .../StatusEffects/JitterEntityEffectSystem.cs | 45 + .../Effects/StatusEffects/ModifyKnockdown.cs | 99 - .../ModifyKnockdownEntityEffectSystem.cs | 72 + .../ModifyParalysisEntityEffectSystem.cs | 51 + .../StatusEffects/ModifyStatusEffect.cs | 78 - .../ModifyStatusEffectEntityEffectSystem.cs | 66 + ...MovementSpeedModifierEntityEffectSystem.cs | 92 + .../Effects/TemplateEntityEffectSystem.cs | 21 + .../Transform/EmpEntityEffectSystem.cs | 58 + .../ExplosionEntityEffect.cs} | 19 +- .../Transform/FlashEntityEffectSystem.cs | 81 + .../PopupMessageEntityEffectSystem.cs | 64 + .../Effects/WashCreamPieEntityEffectSystem.cs | 27 + .../Effects/WashCreamPieReaction.cs | 19 - .../EntityEffects/Effects/WearableReaction.cs | 47 - .../Effects/ZombieEntityEffectsSystem.cs | 67 + Content.Shared/EntityEffects/EntityEffect.cs | 145 -- .../EntityEffects/EntityEffectCondition.cs | 29 - .../EntityEffects/EventEntityEffect.cs | 12 - .../EventEntityEffectCondition.cs | 14 - .../SharedEntityEffectsSystem.cs | 251 ++ .../Components/FlashImmunityComponent.cs | 6 + Content.Shared/Flash/SharedFlashSystem.cs | 3 +- .../Systems/MovementModStatusSystem.cs | 1 + .../Components/BombingTargetComponent.cs | 7 - .../EntitySystems/IngestionSystem.API.cs | 9 +- Content.Shared/PAI/PAIComponent.cs | 12 +- Content.Shared/PAI/SharedPAISystem.cs | 38 - .../ParcelWrappingSystem.WrappedParcel.cs | 5 +- .../Physics/JointVisualsComponent.cs | 19 +- .../Revenant/Components/RevenantComponent.cs | 2 - Content.Shared/Revenant/SharedRevenant.cs | 4 - Content.Shared/Roles/JobPrototype.cs | 34 +- Content.Shared/Roles/SharedRoleSystem.cs | 3 +- .../Borgs/SharedBorgSwitchableTypeSystem.cs | 19 + .../Silicons/Bots/HugBotComponent.cs | 12 + .../Silicons/Bots/SharedHugBotSystem.cs | 38 + Content.Shared/Stacks/StackPrototype.cs | 14 +- .../StatusEffectNew/StatusEffectSystem.API.cs | 18 + .../EntitySystems/SharedStorageSystem.cs | 4 +- .../Store/Events/IntrinsicStoreActionEvent.cs | 11 + .../Stunnable/SharedStunSystem.Knockdown.cs | 9 +- Content.Shared/Stunnable/SharedStunSystem.cs | 7 +- .../Components/TemperatureComponent.cs | 2 +- .../Systems/SharedTemperatureSystem.cs | 19 +- .../MindRoleTriggerConditionComponent.cs | 27 + .../WhitelistTriggerConditionComponent.cs | 6 +- .../Systems/DnaScrambleOnTriggerSystem.cs | 12 + .../Systems/TriggerSystem.Condition.cs | 81 +- .../Trigger/Systems/TriggerSystem.cs | 4 + .../Weapons/Melee/SharedMeleeWeaponSystem.cs | 18 +- .../Weapons/Misc/SharedGrapplingGunSystem.cs | 2 +- .../Ranged/Components/AmmoComponent.cs | 6 + .../Ranged/Systems/SharedGunSystem.Battery.cs | 51 + .../Weapons/Ranged/Systems/SharedGunSystem.cs | 10 + .../Components/AnalysisConsoleComponent.cs | 4 +- .../Components/ArtifactAnalyzerComponent.cs | 9 +- .../Components/ArtifactCrusherComponent.cs | 22 +- .../Equipment/SharedArtifactAnalyzerSystem.cs | 82 +- .../Equipment/SharedArtifactCrusherSystem.cs | 112 +- .../Zombies/IncurableZombieComponent.cs | 3 +- Content.Tools/test/run.sh | 2 +- Resources/Changelog/Changelog.yml | 382 +-- Resources/Changelog/Maps.yml | 21 + Resources/Credits/GitHub.txt | 2 +- Resources/Credits/Patrons.yml | 2244 +++++++--------- .../components/id-card-console-component.ftl | 4 +- .../Locale/en-US/accessories/human-hair.ftl | 1 + .../en-US/administration/admin-verbs.ftl | 45 + .../Locale/en-US/administration/bwoink.ftl | 1 + Resources/Locale/en-US/cluwne/cluwne.ftl | 2 + .../en-US/components/storage-component.ftl | 1 + .../Locale/en-US/credits/credits-window.ftl | 2 + .../Locale/en-US/ghost/make-ghost-gui.ftl | 21 + .../Locale/en-US/guidebook/chemistry/core.ftl | 5 +- .../guidebook/chemistry/statuseffects.ftl | 16 - .../conditions.ftl | 0 .../{chemistry => entity-effects}/effects.ftl | 166 +- .../healthchange.ftl | 0 .../entity-effects/statuseffects.ftl | 16 + Resources/Locale/en-US/guidebook/guides.ftl | 2 + Resources/Locale/en-US/info/ban.ftl | 1 + .../Locale/en-US/job/job-supervisors.ftl | 3 +- .../Locale/en-US/materials/materials.ftl | 2 + .../components/crew-monitoring-component.ftl | 23 +- .../en-US/navmap-beacons/station_map.ftl | 1 + Resources/Locale/en-US/npc/hugbot.ftl | 26 + Resources/Locale/en-US/npc/npc-debug.ftl | 11 + .../en-US/preferences/ui/markings-picker.ftl | 6 + Resources/Locale/en-US/recipes/tags.ftl | 1 + Resources/Locale/en-US/station-laws/laws.ftl | 9 +- .../Locale/en-US/store/uplink-catalog.ftl | 3 + Resources/Locale/en-US/ui/navmap.ftl | 1 + Resources/Locale/en-US/ui/stat-values.ftl | 1 + Resources/Maps/exo.yml | 13 - Resources/Maps/packed.yml | 104 +- Resources/Maps/plasma.yml | 2248 +++++++++++++---- Resources/Maps/saltern.yml | 107 - Resources/Prototypes/Actions/revenant.yml | 7 +- Resources/Prototypes/Actions/types.yml | 11 + Resources/Prototypes/Body/Prototypes/bot.yml | 16 + .../Catalog/Fills/Lockers/heads.yml | 1 + .../Catalog/Fills/Lockers/security.yml | 3 + Resources/Prototypes/Catalog/hugbot.yml | 17 + .../Prototypes/Catalog/uplink_catalog.yml | 11 +- .../Entities/Clothing/Hands/colored.yml | 2 - .../Markers/Spawners/Random/maintenance.yml | 1 + .../Entities/Markers/warp_point.yml | 21 - .../Customization/Markings/human_hair.yml | 7 + .../Prototypes/Entities/Mobs/NPCs/animals.yml | 2 +- .../Entities/Mobs/NPCs/elemental.yml | 28 +- .../Entities/Mobs/NPCs/miscellaneous.yml | 20 +- .../Entities/Mobs/NPCs/revenant.yml | 3 + .../Prototypes/Entities/Mobs/NPCs/silicon.yml | 37 + .../Prototypes/Entities/Mobs/NPCs/slimes.yml | 6 +- .../Prototypes/Entities/Mobs/NPCs/space.yml | 2 +- .../Entities/Mobs/Species/arachnid.yml | 6 +- .../Prototypes/Entities/Mobs/Species/base.yml | 2 +- .../Entities/Mobs/Species/diona.yml | 14 +- .../Entities/Mobs/Species/skeleton.yml | 9 +- .../Entities/Mobs/Species/slime.yml | 6 +- .../Objects/Deliveries/deliveries_tables.yml | 6 + .../Objects/Devices/station_beacon.yml | 9 + .../Entities/Objects/Fun/crayons.yml | 17 +- .../Prototypes/Entities/Objects/Fun/pai.yml | 10 +- .../Entities/Objects/Fun/plushies.yml | 3 +- .../Entities/Objects/Misc/kudzu.yml | 12 +- .../Entities/Objects/Misc/paper.yml | 3 - .../Entities/Objects/Misc/space_cash.yml | 6 - .../Entities/Objects/Power/powersink.yml | 4 +- .../Specific/Xenoarchaeology/node_scanner.yml | 2 +- .../Objects/Specific/rehydrateable.yml | 6 +- .../Guns/Ammunition/Cartridges/pistol.yml | 4 + .../Weapons/Guns/Battery/battery_guns.yml | 1 + .../Weapons/Guns/Projectiles/projectiles.yml | 4 +- .../Entities/StatusEffects/movement.yml | 21 + .../Structures/Doors/Airlocks/access.yml | 13 +- .../Structures/Doors/Airlocks/airlocks.yml | 9 + .../Machines/Computers/computers.yml | 2 +- .../Entities/Structures/Machines/lathe.yml | 4 + .../Specific/Anomaly/anomaly_injectors.yml | 60 + .../Entities/Structures/Storage/glass_box.yml | 24 +- .../Prototypes/Entities/Structures/soil.yml | 3 +- Resources/Prototypes/Entities/Tiles/lava.yml | 2 +- .../Entities/Tiles/liquid_plasma.yml | 2 +- Resources/Prototypes/Entities/Tiles/water.yml | 4 +- Resources/Prototypes/Guidebook/science.yml | 18 +- .../Hydroponics/randomMutations.yml | 6 +- Resources/Prototypes/NPCs/debug.yml | 7 +- Resources/Prototypes/NPCs/firebot.yml | 9 +- Resources/Prototypes/NPCs/hugbot.yml | 134 + Resources/Prototypes/NPCs/medibot.yml | 3 +- Resources/Prototypes/Objectives/ninja.yml | 4 + Resources/Prototypes/Objectives/thief.yml | 1 - Resources/Prototypes/Parallaxes/train.yml | 30 - .../Reagents/Consumable/Drink/alcohol.yml | 70 +- .../Reagents/Consumable/Drink/base_drink.yml | 4 +- .../Reagents/Consumable/Drink/drinks.yml | 17 +- .../Reagents/Consumable/Drink/soda.yml | 6 +- .../Reagents/Consumable/Food/food.yml | 4 +- .../Reagents/Consumable/Food/ingredients.yml | 19 +- .../Prototypes/Reagents/Materials/ores.yml | 2 +- Resources/Prototypes/Reagents/biological.yml | 14 +- Resources/Prototypes/Reagents/botany.yml | 81 +- Resources/Prototypes/Reagents/chemicals.yml | 16 +- Resources/Prototypes/Reagents/cleaning.yml | 14 +- Resources/Prototypes/Reagents/elements.yml | 22 +- Resources/Prototypes/Reagents/fun.yml | 93 +- Resources/Prototypes/Reagents/gases.yml | 282 +-- Resources/Prototypes/Reagents/medicine.yml | 224 +- Resources/Prototypes/Reagents/narcotics.yml | 79 +- Resources/Prototypes/Reagents/pyrotechnic.yml | 26 +- Resources/Prototypes/Reagents/toxins.yml | 127 +- .../Recipes/Crafting/Graphs/bots/hugbot.yml | 33 + .../Prototypes/Recipes/Crafting/bots.yml | 8 + .../Recipes/Lathes/Packs/biogen.yml | 6 + .../Recipes/Lathes/Packs/medical.yml | 1 + .../Recipes/Lathes/Packs/shared.yml | 1 + .../Recipes/Lathes/Packs/syndicate.yml | 2 + Resources/Prototypes/Recipes/Lathes/ammo.yml | 16 + .../Prototypes/Recipes/Lathes/biogen.yml | 21 +- .../Prototypes/Recipes/Lathes/chemistry.yml | 4 +- Resources/Prototypes/Recipes/Lathes/sheet.yml | 10 + .../Recipes/Reactions/chemicals.yml | 8 +- .../Prototypes/Recipes/Reactions/food.yml | 26 +- .../Prototypes/Recipes/Reactions/fun.yml | 14 +- .../Recipes/Reactions/pyrotechnic.yml | 4 +- .../Prototypes/Recipes/Reactions/soap.yml | 12 +- .../Prototypes/Stacks/Materials/crystals.yml | 5 - .../Prototypes/Stacks/Materials/ingots.yml | 13 - .../Prototypes/Stacks/Materials/materials.yml | 111 - .../Prototypes/Stacks/Materials/parts.yml | 6 - .../Stacks/{Materials => }/Sheets/glass.yml | 14 +- .../Stacks/{Materials => }/Sheets/metal.yml | 6 +- .../Prototypes/Stacks/Sheets/organic.yml | 13 + .../Stacks/{Materials => }/Sheets/other.yml | 13 +- .../Stacks/Specific/engineering.yml | 36 + .../medical.yml} | 16 +- .../science.yml} | 6 +- .../Prototypes/Stacks/Specific/security.yml | 6 + Resources/Prototypes/Stacks/Tiles/alien.yml | 38 + Resources/Prototypes/Stacks/Tiles/brass.yml | 13 + Resources/Prototypes/Stacks/Tiles/carpet.yml | 84 + .../Prototypes/Stacks/Tiles/concrete.yml | 55 + .../Prototypes/Stacks/Tiles/electronic.yml | 19 + Resources/Prototypes/Stacks/Tiles/fancy.yml | 37 + Resources/Prototypes/Stacks/Tiles/faux.yml | 55 + .../Prototypes/Stacks/Tiles/four_square.yml | 112 + Resources/Prototypes/Stacks/Tiles/maints.yml | 25 + Resources/Prototypes/Stacks/Tiles/organic.yml | 13 + Resources/Prototypes/Stacks/Tiles/other.yml | 25 + Resources/Prototypes/Stacks/Tiles/planet.yml | 19 + Resources/Prototypes/Stacks/Tiles/retro.yml | 31 + Resources/Prototypes/Stacks/Tiles/shuttle.yml | 43 + Resources/Prototypes/Stacks/Tiles/steel.yml | 55 + .../Prototypes/Stacks/Tiles/steel_dark.yml | 55 + .../Prototypes/Stacks/Tiles/steel_white.yml | 55 + Resources/Prototypes/Stacks/Tiles/wood.yml | 19 + Resources/Prototypes/Stacks/base_stacks.yml | 42 + Resources/Prototypes/Stacks/cloth.yml | 27 + .../{consumable_stacks.yml => consumable.yml} | 27 +- Resources/Prototypes/Stacks/currency.yml | 11 + .../Prototypes/Stacks/engineering_stacks.yml | 12 - .../Prototypes/Stacks/floor_tile_stacks.yml | 720 ------ .../Prototypes/Stacks/{Materials => }/ore.yml | 22 +- Resources/Prototypes/Stacks/ore_refined.yml | 30 + Resources/Prototypes/Stacks/organic.yml | 59 + Resources/Prototypes/Stacks/other.yml | 15 + Resources/Prototypes/Stacks/power_stacks.yml | 30 - Resources/Prototypes/Voice/auto_emotes.yml | 9 + Resources/Prototypes/silicon-laws.yml | 6 - Resources/Prototypes/tags.yml | 2 + .../Guidebook/Science/AnalysisConsole.xml | 22 + .../Guidebook/Science/ArtifactReports.xml | 24 - .../Guidebook/Science/UnlockingNodes.xml | 48 + .../Guidebook/Science/Xenoarchaeology.xml | 90 +- .../Gloves/Color/black.rsi/equipped-HAND.png | Bin 381 -> 362 bytes .../Gloves/Color/black.rsi/inhand-left.png | Bin 16598 -> 262 bytes .../Gloves/Color/black.rsi/inhand-right.png | Bin 16598 -> 276 bytes .../Hands/Gloves/Color/black.rsi/meta.json | 2 +- .../Customization/human_hair.rsi/meta.json | 6 +- .../human_hair.rsi/overeyepigtail.png | Bin 0 -> 810 bytes .../Mobs/Silicon/Bots/hugbot.rsi/hugbot.png | Bin 0 -> 342 bytes .../Mobs/Silicon/Bots/hugbot.rsi/meta.json | 14 + .../Mobs/Species/Human/organs.rsi/meta.json | 2 +- .../Mobs/Species/Human/organs.rsi/stomach.png | Bin 191 -> 384 bytes .../Standard/hatch.rsi/bolted_unlit.png | Bin 324 -> 105 bytes .../Standard/hatch.rsi/closed_unlit.png | Bin 339 -> 106 bytes .../Airlocks/Standard/hatch.rsi/closing.png | Bin 2938 -> 2575 bytes .../Standard/hatch.rsi/closing_unlit.png | Bin 1163 -> 193 bytes .../Standard/hatch.rsi/deny_unlit.png | Bin 925 -> 250 bytes .../Standard/hatch.rsi/emergency_unlit.png | Bin 340 -> 110 bytes .../Airlocks/Standard/hatch.rsi/meta.json | 390 +-- .../Airlocks/Standard/hatch.rsi/open.png | Bin 586 -> 313 bytes .../Airlocks/Standard/hatch.rsi/opening.png | Bin 3052 -> 2513 bytes .../Standard/hatch.rsi/opening_unlit.png | Bin 1162 -> 197 bytes .../Standard/hatch_maint.rsi/assembly.png | Bin 752 -> 895 bytes .../Standard/hatch_maint.rsi/bolted_unlit.png | Bin 324 -> 105 bytes .../Standard/hatch_maint.rsi/closed.png | Bin 775 -> 1011 bytes .../Standard/hatch_maint.rsi/closed_unlit.png | Bin 339 -> 106 bytes .../Standard/hatch_maint.rsi/closing.png | Bin 1643 -> 2738 bytes .../hatch_maint.rsi/closing_unlit.png | Bin 1163 -> 193 bytes .../Standard/hatch_maint.rsi/deny_unlit.png | Bin 925 -> 250 bytes .../hatch_maint.rsi/emergency_unlit.png | Bin 340 -> 110 bytes .../Standard/hatch_maint.rsi/meta.json | 390 +-- .../Standard/hatch_maint.rsi/open.png | Bin 593 -> 562 bytes .../Standard/hatch_maint.rsi/opening.png | Bin 1639 -> 2686 bytes .../hatch_maint.rsi/opening_unlit.png | Bin 1162 -> 197 bytes .../Standard/hatch_maint.rsi/panel_open.png | Bin 514 -> 184 bytes .../Standard/hatch_syndicate.rsi/assembly.png | Bin 0 -> 871 bytes .../hatch_syndicate.rsi/bolted_unlit.png | Bin 0 -> 105 bytes .../Standard/hatch_syndicate.rsi/closed.png | Bin 0 -> 400 bytes .../hatch_syndicate.rsi/closed_unlit.png | Bin 0 -> 106 bytes .../Standard/hatch_syndicate.rsi/closing.png | Bin 0 -> 2613 bytes .../hatch_syndicate.rsi/closing_unlit.png | Bin 0 -> 193 bytes .../hatch_syndicate.rsi/deny_unlit.png | Bin 0 -> 250 bytes .../hatch_syndicate.rsi/emergency_unlit.png | Bin 0 -> 110 bytes .../Standard/hatch_syndicate.rsi/meta.json | 198 ++ .../Standard/hatch_syndicate.rsi/open.png | Bin 0 -> 528 bytes .../Standard/hatch_syndicate.rsi/opening.png | Bin 0 -> 2547 bytes .../hatch_syndicate.rsi/opening_unlit.png | Bin 0 -> 197 bytes .../hatch_syndicate.rsi/panel_closing.png | Bin 0 -> 451 bytes .../hatch_syndicate.rsi/panel_open.png | Bin 0 -> 184 bytes .../hatch_syndicate.rsi/panel_opening.png | Bin 0 -> 432 bytes .../Standard/hatch_syndicate.rsi/sparks.png | Bin 0 -> 697 bytes .../hatch_syndicate.rsi/sparks_broken.png | Bin 0 -> 315 bytes .../hatch_syndicate.rsi/sparks_damaged.png | Bin 0 -> 184 bytes .../hatch_syndicate.rsi/sparks_open.png | Bin 0 -> 281 bytes .../Standard/hatch_syndicate.rsi/welded.png | Bin 0 -> 341 bytes .../bluespace_ARACHNID.png | Bin 0 -> 3858 bytes .../inner_anom_layer.rsi/bluespace_MOTH.png | Bin 0 -> 3775 bytes .../inner_anom_layer.rsi/fire_ARACHNID.png | Bin 0 -> 3567 bytes .../inner_anom_layer.rsi/fire_MOTH.png | Bin 0 -> 3541 bytes .../inner_anom_layer.rsi/flesh_ARACHNID.png | Bin 0 -> 4232 bytes .../inner_anom_layer.rsi/flesh_MOTH.png | Bin 0 -> 4127 bytes .../inner_anom_layer.rsi/flora_ARACHNID.png | Bin 0 -> 4776 bytes .../inner_anom_layer.rsi/flora_MOTH.png | Bin 0 -> 4692 bytes .../inner_anom_layer.rsi/frost_ARACHNID.png | Bin 0 -> 5145 bytes .../inner_anom_layer.rsi/frost_MOTH.png | Bin 0 -> 5018 bytes .../inner_anom_layer.rsi/grav_ARACHNID.png | Bin 0 -> 5253 bytes .../inner_anom_layer.rsi/grav_MOTH.png | Bin 0 -> 5304 bytes .../Anomalies/inner_anom_layer.rsi/meta.json | 1938 +++++++++----- .../inner_anom_layer.rsi/rock_ARACHNID.png | Bin 0 -> 4456 bytes .../inner_anom_layer.rsi/rock_MOTH.png | Bin 0 -> 4454 bytes .../inner_anom_layer.rsi/shadow_ARACHNID.png | Bin 0 -> 3807 bytes .../inner_anom_layer.rsi/shadow_MOTH.png | Bin 0 -> 3749 bytes .../inner_anom_layer.rsi/shock_ARACHNID.png | Bin 0 -> 3795 bytes .../inner_anom_layer.rsi/shock_MOTH.png | Bin 0 -> 3615 bytes .../inner_anom_layer.rsi/tech_ARACHNID.png | Bin 0 -> 4136 bytes .../inner_anom_layer.rsi/tech_MOTH.png | Bin 0 -> 4073 bytes Resources/migration.yml | 4 +- Tools/dump_patrons.ps1 | 2 +- Tools/mapping-merge-driver.sh | 2 +- runclient-Tools.sh | 2 +- runclient.sh | 2 +- runserver-Tools.sh | 2 +- runserver.sh | 2 +- 600 files changed, 13735 insertions(+), 10212 deletions(-) delete mode 100644 Content.Client/Crayon/CrayonComponent.cs create mode 100644 Content.Client/Damage/Systems/DamageOtherOnHitSystem.cs delete mode 100644 Content.Client/PAI/PAISystem.cs create mode 100644 Content.Client/Silicons/Bots/HugBotSystem.cs create mode 100644 Content.Client/Temperature/Systems/TemperatureSystem.cs delete mode 100644 Content.Server/Crayon/CrayonComponent.cs delete mode 100644 Content.Server/Damage/Components/DamageOtherOnHitComponent.cs create mode 100644 Content.Server/EntityConditions/Conditions/BreathingEntityConditionSystem.cs create mode 100644 Content.Server/EntityConditions/Conditions/MetabolizerTypesEntityConditionSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Atmos/CreateGasEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Atmos/FlammableEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Atmos/IgniteEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Body/OxygenateEntityEffectsSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustHealthEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustMutationLevelEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustMutationModEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustNutritionEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustPestsEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustPotencyEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustToxinsEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustWaterEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustWeedsEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantAffectGrowthEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantChangeStatEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantCryoxadoneEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantDestroySeedsEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantDiethylamineEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantPhalanximineEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Botany/PlantAttributes/PlantRestoreSeedsEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Botany/PlantAttributes/RobustHarvestEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Botany/PlantMutateChemicalsEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Botany/PlantMutateGasesEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Botany/PlantMutateHarvestEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Botany/PlantMutateSpeciesChangeEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/EmoteEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/MakeSentientEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/PolymorphEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Solution/AreaReactionEntityEffectSystem.cs create mode 100644 Content.Server/EntityEffects/Effects/Transform/ExplosionEntityEffectSystem.cs delete mode 100644 Content.Server/EntityEffects/EntityEffectSystem.cs create mode 100644 Content.Server/NPC/HTN/Preconditions/IsEmaggedPrecondition.cs create mode 100644 Content.Server/NPC/HTN/PrimitiveTasks/Operators/Combat/Melee/MeleeAttackOperator.cs create mode 100644 Content.Server/NPC/HTN/PrimitiveTasks/Operators/Specific/RaiseEventForOwnerOperator.cs create mode 100644 Content.Server/Silicons/Bots/HugBotSystem.cs create mode 100644 Content.Server/Silicons/Bots/RecentlyHuggedByHugBotComponent.cs create mode 100644 Content.Shared/Crayon/CrayonComponent.cs delete mode 100644 Content.Shared/Crayon/SharedCrayonComponent.cs create mode 100644 Content.Shared/Damage/Components/DamageOtherOnHitComponent.cs create mode 100644 Content.Shared/Damage/Systems/SharedDamageOtherOnHitSystem.cs create mode 100644 Content.Shared/EntityConditions/Conditions/Body/BreathingEntityCondition.cs create mode 100644 Content.Shared/EntityConditions/Conditions/Body/HungerEntityConditionSystem.cs create mode 100644 Content.Shared/EntityConditions/Conditions/Body/InternalsEntityConditionSystem.cs create mode 100644 Content.Shared/EntityConditions/Conditions/Body/MetabolizerTypeEntityCondition.cs create mode 100644 Content.Shared/EntityConditions/Conditions/Body/MobStateEntityConditionSystem.cs create mode 100644 Content.Shared/EntityConditions/Conditions/JobEntityConditionSystem.cs create mode 100644 Content.Shared/EntityConditions/Conditions/ReagentEntityConditionSystem.cs create mode 100644 Content.Shared/EntityConditions/Conditions/Tags/HasAllTagsEntityConditionSystem.cs create mode 100644 Content.Shared/EntityConditions/Conditions/Tags/HasAnyTagEntityConditionSystem.cs create mode 100644 Content.Shared/EntityConditions/Conditions/Tags/HasTagEntityConditionSystem.cs create mode 100644 Content.Shared/EntityConditions/Conditions/TemperatureEntityConditionSystem.cs create mode 100644 Content.Shared/EntityConditions/Conditions/TemplateEntityConditionSystem.cs create mode 100644 Content.Shared/EntityConditions/Conditions/TotalDamageEntityConditionSystem.cs create mode 100644 Content.Shared/EntityConditions/SharedEntityConditionsSystem.cs delete mode 100644 Content.Shared/EntityEffects/EffectConditions/BodyTemperature.cs delete mode 100644 Content.Shared/EntityEffects/EffectConditions/BreathingCondition.cs delete mode 100644 Content.Shared/EntityEffects/EffectConditions/HasTagCondition.cs delete mode 100644 Content.Shared/EntityEffects/EffectConditions/InternalsCondition.cs delete mode 100644 Content.Shared/EntityEffects/EffectConditions/JobCondition.cs delete mode 100644 Content.Shared/EntityEffects/EffectConditions/MobStateCondition.cs delete mode 100644 Content.Shared/EntityEffects/EffectConditions/OrganType.cs delete mode 100644 Content.Shared/EntityEffects/EffectConditions/ReagentThreshold.cs delete mode 100644 Content.Shared/EntityEffects/EffectConditions/SolutionTemperature.cs delete mode 100644 Content.Shared/EntityEffects/EffectConditions/TotalDamage.cs delete mode 100644 Content.Shared/EntityEffects/EffectConditions/TotalHunger.cs delete mode 100644 Content.Shared/EntityEffects/Effects/AddToSolutionReaction.cs delete mode 100644 Content.Shared/EntityEffects/Effects/AdjustAlert.cs create mode 100644 Content.Shared/EntityEffects/Effects/AdjustAlertEntityEffectSystem.cs delete mode 100644 Content.Shared/EntityEffects/Effects/AdjustReagent.cs delete mode 100644 Content.Shared/EntityEffects/Effects/AdjustTemperature.cs create mode 100644 Content.Shared/EntityEffects/Effects/AdjustTemperatureEntityEffectsSystem.cs delete mode 100644 Content.Shared/EntityEffects/Effects/AreaReactionEffect.cs delete mode 100644 Content.Shared/EntityEffects/Effects/ArtifactDurabilityRestore.cs create mode 100644 Content.Shared/EntityEffects/Effects/ArtifactEntityEffectsSystem.cs delete mode 100644 Content.Shared/EntityEffects/Effects/ArtifactUnlock.cs create mode 100644 Content.Shared/EntityEffects/Effects/Atmos/CreateGasEntityEffect.cs create mode 100644 Content.Shared/EntityEffects/Effects/Atmos/ExtinguishEntityEffectSystem.cs create mode 100644 Content.Shared/EntityEffects/Effects/Atmos/FlammableEntityEffect.cs create mode 100644 Content.Shared/EntityEffects/Effects/Atmos/IgniteEntityEffect.cs create mode 100644 Content.Shared/EntityEffects/Effects/Body/CleanBloodstreamEntityEffectSystem.cs create mode 100644 Content.Shared/EntityEffects/Effects/Body/EyeDamageEntityEffectSystem.cs create mode 100644 Content.Shared/EntityEffects/Effects/Body/ModifyBleedEntityEffectSystem.cs create mode 100644 Content.Shared/EntityEffects/Effects/Body/ModifyBloodLevelEntityEffectSystem.cs create mode 100644 Content.Shared/EntityEffects/Effects/Body/ModifyLungGasEntityEffectSystem.cs create mode 100644 Content.Shared/EntityEffects/Effects/Body/OxygenateEntityEffect.cs create mode 100644 Content.Shared/EntityEffects/Effects/Body/ReduceRottingEntityEffectSystem.cs create mode 100644 Content.Shared/EntityEffects/Effects/Body/SatiateEntityEffectSystem.cs create mode 100644 Content.Shared/EntityEffects/Effects/Body/VomitEntityEffectSystem.cs create mode 100644 Content.Shared/EntityEffects/Effects/Botany/PlantAttributes/BasePlantAdjustAttributeEntityEffect.cs create mode 100644 Content.Shared/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustHealth.cs create mode 100644 Content.Shared/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustMutationLevel.cs create mode 100644 Content.Shared/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustMutationMod.cs create mode 100644 Content.Shared/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustNutrition.cs rename Content.Shared/EntityEffects/Effects/{PlantMetabolism => Botany/PlantAttributes}/PlantAdjustPests.cs (53%) create mode 100644 Content.Shared/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustPotency.cs rename Content.Shared/EntityEffects/Effects/{PlantMetabolism => Botany/PlantAttributes}/PlantAdjustToxins.cs (53%) create mode 100644 Content.Shared/EntityEffects/Effects/Botany/PlantAttributes/PlantAdjustWater.cs rename Content.Shared/EntityEffects/Effects/{PlantMetabolism => Botany/PlantAttributes}/PlantAdjustWeeds.cs (53%) create mode 100644 Content.Shared/EntityEffects/Effects/Botany/PlantAttributes/PlantAffectGrowth.cs create mode 100644 Content.Shared/EntityEffects/Effects/Botany/PlantAttributes/PlantChangeStat.cs create mode 100644 Content.Shared/EntityEffects/Effects/Botany/PlantAttributes/PlantCryoxadone.cs create mode 100644 Content.Shared/EntityEffects/Effects/Botany/PlantAttributes/PlantDestroySeeds.cs create mode 100644 Content.Shared/EntityEffects/Effects/Botany/PlantAttributes/PlantDiethylamine.cs create mode 100644 Content.Shared/EntityEffects/Effects/Botany/PlantAttributes/PlantPhalanximine.cs create mode 100644 Content.Shared/EntityEffects/Effects/Botany/PlantAttributes/PlantRestoreSeeds.cs create mode 100644 Content.Shared/EntityEffects/Effects/Botany/PlantAttributes/RobustHarvest.cs create mode 100644 Content.Shared/EntityEffects/Effects/Botany/PlantMutateChemicalsEntityEffect.cs create mode 100644 Content.Shared/EntityEffects/Effects/Botany/PlantMutateGasesEntityEffect.cs create mode 100644 Content.Shared/EntityEffects/Effects/Botany/PlantMutateHarvestEntityEffect.cs create mode 100644 Content.Shared/EntityEffects/Effects/Botany/PlantMutateSpeciesChangeEntityEffect.cs delete mode 100644 Content.Shared/EntityEffects/Effects/CauseZombieInfection.cs delete mode 100644 Content.Shared/EntityEffects/Effects/ChemCleanBloodstream.cs delete mode 100644 Content.Shared/EntityEffects/Effects/ChemHealEyeDamage.cs delete mode 100644 Content.Shared/EntityEffects/Effects/ChemVomit.cs delete mode 100644 Content.Shared/EntityEffects/Effects/CreateEntityReactionEffect.cs delete mode 100644 Content.Shared/EntityEffects/Effects/CreateGas.cs delete mode 100644 Content.Shared/EntityEffects/Effects/CureZombieInfection.cs delete mode 100644 Content.Shared/EntityEffects/Effects/Drunk.cs delete mode 100644 Content.Shared/EntityEffects/Effects/Electrocute.cs delete mode 100644 Content.Shared/EntityEffects/Effects/Emote.cs create mode 100644 Content.Shared/EntityEffects/Effects/EmoteEntityEffect.cs delete mode 100644 Content.Shared/EntityEffects/Effects/EmpReactionEffect.cs create mode 100644 Content.Shared/EntityEffects/Effects/EntitySpawning/BaseSpawnEntityEntityEffect.cs create mode 100644 Content.Shared/EntityEffects/Effects/EntitySpawning/SpawnEntityEntityEffectSystem.cs create mode 100644 Content.Shared/EntityEffects/Effects/EntitySpawning/SpawnEntityInContainerEntityEffectSystem.cs create mode 100644 Content.Shared/EntityEffects/Effects/EntitySpawning/SpawnEntityInContainerOrDropEntityEffectSystem.cs create mode 100644 Content.Shared/EntityEffects/Effects/EntitySpawning/SpawnEntityInInventoryEntityEffectSystem.cs delete mode 100644 Content.Shared/EntityEffects/Effects/EvenHealthChange.cs create mode 100644 Content.Shared/EntityEffects/Effects/EvenHealthChangeEntityEffectSystem.cs delete mode 100644 Content.Shared/EntityEffects/Effects/ExtinguishReaction.cs delete mode 100644 Content.Shared/EntityEffects/Effects/FlammableReaction.cs delete mode 100644 Content.Shared/EntityEffects/Effects/FlashReactionEffect.cs delete mode 100644 Content.Shared/EntityEffects/Effects/Glow.cs create mode 100644 Content.Shared/EntityEffects/Effects/GlowEntityEffectSystem.cs delete mode 100644 Content.Shared/EntityEffects/Effects/HealthChange.cs create mode 100644 Content.Shared/EntityEffects/Effects/HealthChangeEntityEffectSystem.cs delete mode 100644 Content.Shared/EntityEffects/Effects/Ignite.cs delete mode 100644 Content.Shared/EntityEffects/Effects/MakeSentient.cs create mode 100644 Content.Shared/EntityEffects/Effects/MakeSentientEntityEffect.cs delete mode 100644 Content.Shared/EntityEffects/Effects/ModifyBleedAmount.cs delete mode 100644 Content.Shared/EntityEffects/Effects/ModifyBloodLevel.cs delete mode 100644 Content.Shared/EntityEffects/Effects/ModifyLungGas.cs delete mode 100644 Content.Shared/EntityEffects/Effects/MovespeedModifier.cs delete mode 100644 Content.Shared/EntityEffects/Effects/Oxygenate.cs delete mode 100644 Content.Shared/EntityEffects/Effects/Paralyze.cs delete mode 100644 Content.Shared/EntityEffects/Effects/PlantMetabolism/PlantAdjustAttribute.cs delete mode 100644 Content.Shared/EntityEffects/Effects/PlantMetabolism/PlantAdjustHealth.cs delete mode 100644 Content.Shared/EntityEffects/Effects/PlantMetabolism/PlantAdjustMutationLevel.cs delete mode 100644 Content.Shared/EntityEffects/Effects/PlantMetabolism/PlantAdjustMutationMod.cs delete mode 100644 Content.Shared/EntityEffects/Effects/PlantMetabolism/PlantAdjustNutrition.cs delete mode 100644 Content.Shared/EntityEffects/Effects/PlantMetabolism/PlantAdjustPotency.cs delete mode 100644 Content.Shared/EntityEffects/Effects/PlantMetabolism/PlantAdjustWater.cs delete mode 100644 Content.Shared/EntityEffects/Effects/PlantMetabolism/PlantAffectGrowth.cs delete mode 100644 Content.Shared/EntityEffects/Effects/PlantMetabolism/PlantChangeStat.cs delete mode 100644 Content.Shared/EntityEffects/Effects/PlantMetabolism/PlantCryoxadone.cs delete mode 100644 Content.Shared/EntityEffects/Effects/PlantMetabolism/PlantDestroySeeds.cs delete mode 100644 Content.Shared/EntityEffects/Effects/PlantMetabolism/PlantDiethylamine.cs delete mode 100644 Content.Shared/EntityEffects/Effects/PlantMetabolism/PlantPhalanximine.cs delete mode 100644 Content.Shared/EntityEffects/Effects/PlantMetabolism/PlantRestoreSeeds.cs delete mode 100644 Content.Shared/EntityEffects/Effects/PlantMetabolism/RobustHarvest.cs delete mode 100644 Content.Shared/EntityEffects/Effects/PlantMutateChemicals.cs delete mode 100644 Content.Shared/EntityEffects/Effects/PlantMutateGases.cs delete mode 100644 Content.Shared/EntityEffects/Effects/PlantMutateHarvest.cs delete mode 100644 Content.Shared/EntityEffects/Effects/PlantSpeciesChange.cs delete mode 100644 Content.Shared/EntityEffects/Effects/Polymorph.cs create mode 100644 Content.Shared/EntityEffects/Effects/PolymorphEntityEffect.cs delete mode 100644 Content.Shared/EntityEffects/Effects/PopupMessage.cs delete mode 100644 Content.Shared/EntityEffects/Effects/ReduceRotting.cs delete mode 100644 Content.Shared/EntityEffects/Effects/ResetNarcolepsy.cs create mode 100644 Content.Shared/EntityEffects/Effects/ResetNarcolepsyEntityEffectSystem.cs delete mode 100644 Content.Shared/EntityEffects/Effects/SatiateHunger.cs delete mode 100644 Content.Shared/EntityEffects/Effects/SatiateThirst.cs delete mode 100644 Content.Shared/EntityEffects/Effects/Slipify.cs create mode 100644 Content.Shared/EntityEffects/Effects/SlipifyEntityEffectSystem.cs create mode 100644 Content.Shared/EntityEffects/Effects/Solution/AddReagentToSolutionEntityEffectSystem.cs create mode 100644 Content.Shared/EntityEffects/Effects/Solution/AdjustReagentEntityEffectSystem.cs create mode 100644 Content.Shared/EntityEffects/Effects/Solution/AdjustReagentsByGroupEntityEffectSystem.cs create mode 100644 Content.Shared/EntityEffects/Effects/Solution/AreaReactionEntityEffect.cs create mode 100644 Content.Shared/EntityEffects/Effects/Solution/SolutionTemperatureEntityEffectsSystem.cs delete mode 100644 Content.Shared/EntityEffects/Effects/SolutionTemperatureEffects.cs create mode 100644 Content.Shared/EntityEffects/Effects/StatusEffects/BaseStatusEffectEntityEffect.cs create mode 100644 Content.Shared/EntityEffects/Effects/StatusEffects/DrunkEntityEffectSystem.cs create mode 100644 Content.Shared/EntityEffects/Effects/StatusEffects/ElectrocuteEntityEffectSystem.cs delete mode 100644 Content.Shared/EntityEffects/Effects/StatusEffects/GenericStatusEffect.cs create mode 100644 Content.Shared/EntityEffects/Effects/StatusEffects/GenericStatusEffectEntityEffectSystem.cs delete mode 100644 Content.Shared/EntityEffects/Effects/StatusEffects/Jitter.cs create mode 100644 Content.Shared/EntityEffects/Effects/StatusEffects/JitterEntityEffectSystem.cs delete mode 100644 Content.Shared/EntityEffects/Effects/StatusEffects/ModifyKnockdown.cs create mode 100644 Content.Shared/EntityEffects/Effects/StatusEffects/ModifyKnockdownEntityEffectSystem.cs create mode 100644 Content.Shared/EntityEffects/Effects/StatusEffects/ModifyParalysisEntityEffectSystem.cs delete mode 100644 Content.Shared/EntityEffects/Effects/StatusEffects/ModifyStatusEffect.cs create mode 100644 Content.Shared/EntityEffects/Effects/StatusEffects/ModifyStatusEffectEntityEffectSystem.cs create mode 100644 Content.Shared/EntityEffects/Effects/StatusEffects/MovementSpeedModifierEntityEffectSystem.cs create mode 100644 Content.Shared/EntityEffects/Effects/TemplateEntityEffectSystem.cs create mode 100644 Content.Shared/EntityEffects/Effects/Transform/EmpEntityEffectSystem.cs rename Content.Shared/EntityEffects/Effects/{ExplosionReactionEffect.cs => Transform/ExplosionEntityEffect.cs} (69%) create mode 100644 Content.Shared/EntityEffects/Effects/Transform/FlashEntityEffectSystem.cs create mode 100644 Content.Shared/EntityEffects/Effects/Transform/PopupMessageEntityEffectSystem.cs create mode 100644 Content.Shared/EntityEffects/Effects/WashCreamPieEntityEffectSystem.cs delete mode 100644 Content.Shared/EntityEffects/Effects/WashCreamPieReaction.cs delete mode 100644 Content.Shared/EntityEffects/Effects/WearableReaction.cs create mode 100644 Content.Shared/EntityEffects/Effects/ZombieEntityEffectsSystem.cs delete mode 100644 Content.Shared/EntityEffects/EntityEffect.cs delete mode 100644 Content.Shared/EntityEffects/EntityEffectCondition.cs delete mode 100644 Content.Shared/EntityEffects/EventEntityEffect.cs delete mode 100644 Content.Shared/EntityEffects/EventEntityEffectCondition.cs create mode 100644 Content.Shared/EntityEffects/SharedEntityEffectsSystem.cs delete mode 100644 Content.Shared/Ninja/Components/BombingTargetComponent.cs delete mode 100644 Content.Shared/PAI/SharedPAISystem.cs create mode 100644 Content.Shared/Silicons/Bots/HugBotComponent.cs create mode 100644 Content.Shared/Silicons/Bots/SharedHugBotSystem.cs create mode 100644 Content.Shared/Store/Events/IntrinsicStoreActionEvent.cs rename {Content.Server => Content.Shared}/Temperature/Components/TemperatureComponent.cs (98%) create mode 100644 Content.Shared/Trigger/Components/Conditions/MindRoleTriggerConditionComponent.cs rename {Content.Server => Content.Shared}/Zombies/IncurableZombieComponent.cs (77%) create mode 100644 Resources/Locale/en-US/ghost/make-ghost-gui.ftl delete mode 100644 Resources/Locale/en-US/guidebook/chemistry/statuseffects.ftl rename Resources/Locale/en-US/guidebook/{chemistry => entity-effects}/conditions.ftl (100%) rename Resources/Locale/en-US/guidebook/{chemistry => entity-effects}/effects.ftl (71%) rename Resources/Locale/en-US/guidebook/{chemistry => entity-effects}/healthchange.ftl (100%) create mode 100644 Resources/Locale/en-US/guidebook/entity-effects/statuseffects.ftl create mode 100644 Resources/Locale/en-US/npc/hugbot.ftl create mode 100644 Resources/Locale/en-US/npc/npc-debug.ftl create mode 100644 Resources/Locale/en-US/ui/stat-values.ftl create mode 100644 Resources/Prototypes/Catalog/hugbot.yml create mode 100644 Resources/Prototypes/NPCs/hugbot.yml create mode 100644 Resources/Prototypes/Recipes/Crafting/Graphs/bots/hugbot.yml delete mode 100644 Resources/Prototypes/Stacks/Materials/crystals.yml delete mode 100644 Resources/Prototypes/Stacks/Materials/ingots.yml delete mode 100644 Resources/Prototypes/Stacks/Materials/materials.yml delete mode 100644 Resources/Prototypes/Stacks/Materials/parts.yml rename Resources/Prototypes/Stacks/{Materials => }/Sheets/glass.yml (87%) rename Resources/Prototypes/Stacks/{Materials => }/Sheets/metal.yml (85%) create mode 100644 Resources/Prototypes/Stacks/Sheets/organic.yml rename Resources/Prototypes/Stacks/{Materials => }/Sheets/other.yml (68%) create mode 100644 Resources/Prototypes/Stacks/Specific/engineering.yml rename Resources/Prototypes/Stacks/{medical_stacks.yml => Specific/medical.yml} (85%) rename Resources/Prototypes/Stacks/{science_stacks.yml => Specific/science.yml} (63%) create mode 100644 Resources/Prototypes/Stacks/Specific/security.yml create mode 100644 Resources/Prototypes/Stacks/Tiles/alien.yml create mode 100644 Resources/Prototypes/Stacks/Tiles/brass.yml create mode 100644 Resources/Prototypes/Stacks/Tiles/carpet.yml create mode 100644 Resources/Prototypes/Stacks/Tiles/concrete.yml create mode 100644 Resources/Prototypes/Stacks/Tiles/electronic.yml create mode 100644 Resources/Prototypes/Stacks/Tiles/fancy.yml create mode 100644 Resources/Prototypes/Stacks/Tiles/faux.yml create mode 100644 Resources/Prototypes/Stacks/Tiles/four_square.yml create mode 100644 Resources/Prototypes/Stacks/Tiles/maints.yml create mode 100644 Resources/Prototypes/Stacks/Tiles/organic.yml create mode 100644 Resources/Prototypes/Stacks/Tiles/other.yml create mode 100644 Resources/Prototypes/Stacks/Tiles/planet.yml create mode 100644 Resources/Prototypes/Stacks/Tiles/retro.yml create mode 100644 Resources/Prototypes/Stacks/Tiles/shuttle.yml create mode 100644 Resources/Prototypes/Stacks/Tiles/steel.yml create mode 100644 Resources/Prototypes/Stacks/Tiles/steel_dark.yml create mode 100644 Resources/Prototypes/Stacks/Tiles/steel_white.yml create mode 100644 Resources/Prototypes/Stacks/Tiles/wood.yml create mode 100644 Resources/Prototypes/Stacks/base_stacks.yml create mode 100644 Resources/Prototypes/Stacks/cloth.yml rename Resources/Prototypes/Stacks/{consumable_stacks.yml => consumable.yml} (78%) create mode 100644 Resources/Prototypes/Stacks/currency.yml delete mode 100644 Resources/Prototypes/Stacks/engineering_stacks.yml delete mode 100644 Resources/Prototypes/Stacks/floor_tile_stacks.yml rename Resources/Prototypes/Stacks/{Materials => }/ore.yml (83%) create mode 100644 Resources/Prototypes/Stacks/ore_refined.yml create mode 100644 Resources/Prototypes/Stacks/organic.yml create mode 100644 Resources/Prototypes/Stacks/other.yml delete mode 100644 Resources/Prototypes/Stacks/power_stacks.yml create mode 100644 Resources/ServerInfo/Guidebook/Science/AnalysisConsole.xml delete mode 100644 Resources/ServerInfo/Guidebook/Science/ArtifactReports.xml create mode 100644 Resources/ServerInfo/Guidebook/Science/UnlockingNodes.xml create mode 100644 Resources/Textures/Mobs/Customization/human_hair.rsi/overeyepigtail.png create mode 100644 Resources/Textures/Mobs/Silicon/Bots/hugbot.rsi/hugbot.png create mode 100644 Resources/Textures/Mobs/Silicon/Bots/hugbot.rsi/meta.json create mode 100644 Resources/Textures/Structures/Doors/Airlocks/Standard/hatch_syndicate.rsi/assembly.png create mode 100644 Resources/Textures/Structures/Doors/Airlocks/Standard/hatch_syndicate.rsi/bolted_unlit.png create mode 100644 Resources/Textures/Structures/Doors/Airlocks/Standard/hatch_syndicate.rsi/closed.png create mode 100644 Resources/Textures/Structures/Doors/Airlocks/Standard/hatch_syndicate.rsi/closed_unlit.png create mode 100644 Resources/Textures/Structures/Doors/Airlocks/Standard/hatch_syndicate.rsi/closing.png create mode 100644 Resources/Textures/Structures/Doors/Airlocks/Standard/hatch_syndicate.rsi/closing_unlit.png create mode 100644 Resources/Textures/Structures/Doors/Airlocks/Standard/hatch_syndicate.rsi/deny_unlit.png create mode 100644 Resources/Textures/Structures/Doors/Airlocks/Standard/hatch_syndicate.rsi/emergency_unlit.png create mode 100644 Resources/Textures/Structures/Doors/Airlocks/Standard/hatch_syndicate.rsi/meta.json create mode 100644 Resources/Textures/Structures/Doors/Airlocks/Standard/hatch_syndicate.rsi/open.png create mode 100644 Resources/Textures/Structures/Doors/Airlocks/Standard/hatch_syndicate.rsi/opening.png create mode 100644 Resources/Textures/Structures/Doors/Airlocks/Standard/hatch_syndicate.rsi/opening_unlit.png create mode 100644 Resources/Textures/Structures/Doors/Airlocks/Standard/hatch_syndicate.rsi/panel_closing.png create mode 100644 Resources/Textures/Structures/Doors/Airlocks/Standard/hatch_syndicate.rsi/panel_open.png create mode 100644 Resources/Textures/Structures/Doors/Airlocks/Standard/hatch_syndicate.rsi/panel_opening.png create mode 100644 Resources/Textures/Structures/Doors/Airlocks/Standard/hatch_syndicate.rsi/sparks.png create mode 100644 Resources/Textures/Structures/Doors/Airlocks/Standard/hatch_syndicate.rsi/sparks_broken.png create mode 100644 Resources/Textures/Structures/Doors/Airlocks/Standard/hatch_syndicate.rsi/sparks_damaged.png create mode 100644 Resources/Textures/Structures/Doors/Airlocks/Standard/hatch_syndicate.rsi/sparks_open.png create mode 100644 Resources/Textures/Structures/Doors/Airlocks/Standard/hatch_syndicate.rsi/welded.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/inner_anom_layer.rsi/bluespace_ARACHNID.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/inner_anom_layer.rsi/bluespace_MOTH.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/inner_anom_layer.rsi/fire_ARACHNID.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/inner_anom_layer.rsi/fire_MOTH.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/inner_anom_layer.rsi/flesh_ARACHNID.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/inner_anom_layer.rsi/flesh_MOTH.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/inner_anom_layer.rsi/flora_ARACHNID.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/inner_anom_layer.rsi/flora_MOTH.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/inner_anom_layer.rsi/frost_ARACHNID.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/inner_anom_layer.rsi/frost_MOTH.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/inner_anom_layer.rsi/grav_ARACHNID.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/inner_anom_layer.rsi/grav_MOTH.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/inner_anom_layer.rsi/rock_ARACHNID.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/inner_anom_layer.rsi/rock_MOTH.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/inner_anom_layer.rsi/shadow_ARACHNID.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/inner_anom_layer.rsi/shadow_MOTH.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/inner_anom_layer.rsi/shock_ARACHNID.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/inner_anom_layer.rsi/shock_MOTH.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/inner_anom_layer.rsi/tech_ARACHNID.png create mode 100644 Resources/Textures/Structures/Specific/Anomalies/inner_anom_layer.rsi/tech_MOTH.png diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 14f591ec87..defe08ef23 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -28,6 +28,7 @@ /Content.*/Stunnable/ @Princess-Cheeseballs /Content.*/Nutrition/ @Princess-Cheeseballs +/Content.*/EntityEffects @Princess-Cheeseballs @sowelipililimute # SKREEEE /Content.*.Database/ @PJB3005 @DrSmugleaf diff --git a/BuildChecker/git_helper.py b/BuildChecker/git_helper.py index 66d2463669..bd6603bd34 100644 --- a/BuildChecker/git_helper.py +++ b/BuildChecker/git_helper.py @@ -13,7 +13,7 @@ from typing import List SOLUTION_PATH = Path("..") / "SpaceStation14.sln" # If this doesn't match the saved version we overwrite them all. -CURRENT_HOOKS_VERSION = "3" +CURRENT_HOOKS_VERSION = "4" QUIET = len(sys.argv) == 2 and sys.argv[1] == "--quiet" diff --git a/BuildChecker/hooks/post-checkout b/BuildChecker/hooks/post-checkout index ee4309de1d..1b91112ff0 100755 --- a/BuildChecker/hooks/post-checkout +++ b/BuildChecker/hooks/post-checkout @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash gitroot=$(git rev-parse --show-toplevel) diff --git a/BuildChecker/hooks/post-merge b/BuildChecker/hooks/post-merge index 5cf3d91120..864a9cff50 100755 --- a/BuildChecker/hooks/post-merge +++ b/BuildChecker/hooks/post-merge @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Just call post-checkout since it does the same thing. gitroot=$(git rev-parse --git-path hooks) diff --git a/Content.Client/Access/UI/IdCardConsoleWindow.xaml b/Content.Client/Access/UI/IdCardConsoleWindow.xaml index a2f5f3382b..0a695a3dce 100644 --- a/Content.Client/Access/UI/IdCardConsoleWindow.xaml +++ b/Content.Client/Access/UI/IdCardConsoleWindow.xaml @@ -1,6 +1,7 @@ + +