From 41a70be44175fda03609bf4401c9a9c9d88e5296 Mon Sep 17 00:00:00 2001 From: deltanedas <39013340+deltanedas@users.noreply.github.com> Date: Sun, 1 Dec 2024 22:04:46 +0000 Subject: [PATCH 1/7] add robotics to id card console (#2335) Co-authored-by: deltanedas <@deltanedas:kde.org> --- Content.Shared/Access/Components/IdCardConsoleComponent.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/Content.Shared/Access/Components/IdCardConsoleComponent.cs b/Content.Shared/Access/Components/IdCardConsoleComponent.cs index e13540eb6f3..9a8af18a6db 100644 --- a/Content.Shared/Access/Components/IdCardConsoleComponent.cs +++ b/Content.Shared/Access/Components/IdCardConsoleComponent.cs @@ -90,6 +90,7 @@ public WriteToTargetIdMessage(string fullName, string jobTitle, List Date: Sun, 1 Dec 2024 23:05:05 +0100 Subject: [PATCH 2/7] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index 40fee4be278..6376790e471 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,10 +1,4 @@ Entries: -- author: UnicornOnLSD - changes: - - message: Submarine got better telecomms, a revamped psych. ward and more ! - type: Tweak - id: 230 - time: '2024-02-07T02:32:33.0000000+00:00' - author: FluffiestFloof changes: - message: Fixed PSB not being edible by Reptilian @@ -3797,3 +3791,10 @@ id: 729 time: '2024-12-01T13:28:31.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2329 +- author: deltanedas + changes: + - message: Fixed Robotics access not being listed in ID card consoles. + type: Fix + id: 730 + time: '2024-12-01T22:04:46.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2335 From bde3c04c8ceb021ccc2e24b0cdff48e32b8fe044 Mon Sep 17 00:00:00 2001 From: Milon Date: Sun, 1 Dec 2024 23:05:18 +0100 Subject: [PATCH 3/7] something something fix pebble (#2336) who needs tests anyways --- Resources/Maps/pebble.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/Resources/Maps/pebble.yml b/Resources/Maps/pebble.yml index 14c48de8b98..0a7122e1560 100644 --- a/Resources/Maps/pebble.yml +++ b/Resources/Maps/pebble.yml @@ -34286,8 +34286,6 @@ entities: pos: -28.5,-14.5 parent: 2 - type: Door - secondsUntilStateChange: -594.89136 - state: Opening - uid: 10986 components: - type: Transform From aad9b24e8c20465404fdf3f0cebf6ec1f8c288fc Mon Sep 17 00:00:00 2001 From: deltanedas <39013340+deltanedas@users.noreply.github.com> Date: Sun, 1 Dec 2024 22:48:03 +0000 Subject: [PATCH 4/7] ai law changes + ion storm (#2338) ai law changes Co-authored-by: deltanedas <@deltanedas:kde.org> --- Resources/Prototypes/Entities/Mobs/Player/silicon.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml index 4f581be068f..fa093b081ef 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml @@ -376,7 +376,8 @@ - type: BlockMovement blockInteraction: false - type: SiliconLawProvider - laws: Crewsimov + laws: NTDefault # Goobstation - AI/borg law changes - set AI to NTDefault + - type: IonStormTarget # Goobstation - AI/borg law changes - ion stormable AI - type: SiliconLawBound - type: ActionGrant actions: From 027df56d23d5aacac3f7099adb835cc1139bb585 Mon Sep 17 00:00:00 2001 From: deltanedas <39013340+deltanedas@users.noreply.github.com> Date: Sun, 1 Dec 2024 22:48:13 +0000 Subject: [PATCH 5/7] borg slavery :fire: :fire: :fire: (#2337) * fuck it fix emag law 4 * add borg enslaving --------- Co-authored-by: deltanedas <@deltanedas:kde.org> --- .../DeltaV/Silicons/Laws/SlavedBorgSystem.cs | 5 +++ .../Borgs/BorgSwitchableTypeSystem.Lawset.cs | 7 ++++ .../DeltaV/Silicons/Laws/SlavedBorgSystem.cs | 42 +++++++++++++++++++ .../Silicons/Laws/SiliconLawSystem.cs | 2 +- .../Silicons/Laws/SharedSlavedBorgSystem.cs | 3 ++ .../Silicons/Laws/SlavedBorgComponent.cs | 26 ++++++++++++ .../en-US/_Goobstation/station-laws/laws.ftl | 1 + Resources/Locale/en-US/station-laws/laws.ftl | 2 +- .../Mobs/Cyborgs/base_borg_chassis.yml | 2 + .../Prototypes/_Goobstation/silicon-laws.yml | 4 ++ 10 files changed, 92 insertions(+), 2 deletions(-) create mode 100644 Content.Client/DeltaV/Silicons/Laws/SlavedBorgSystem.cs create mode 100644 Content.Server/DeltaV/Silicons/Laws/SlavedBorgSystem.cs create mode 100644 Content.Shared/DeltaV/Silicons/Laws/SharedSlavedBorgSystem.cs create mode 100644 Content.Shared/DeltaV/Silicons/Laws/SlavedBorgComponent.cs create mode 100644 Resources/Locale/en-US/_Goobstation/station-laws/laws.ftl create mode 100644 Resources/Prototypes/_Goobstation/silicon-laws.yml diff --git a/Content.Client/DeltaV/Silicons/Laws/SlavedBorgSystem.cs b/Content.Client/DeltaV/Silicons/Laws/SlavedBorgSystem.cs new file mode 100644 index 00000000000..f546fa900dd --- /dev/null +++ b/Content.Client/DeltaV/Silicons/Laws/SlavedBorgSystem.cs @@ -0,0 +1,5 @@ +using Content.Shared.DeltaV.Silicons.Laws; + +namespace Content.Client.DeltaV.Silicons.Laws; + +public sealed class SlavedBorgSystem : SharedSlavedBorgSystem; diff --git a/Content.Server/DeltaV/Silicons/Borgs/BorgSwitchableTypeSystem.Lawset.cs b/Content.Server/DeltaV/Silicons/Borgs/BorgSwitchableTypeSystem.Lawset.cs index 03b7c54ad01..c674f7a4446 100644 --- a/Content.Server/DeltaV/Silicons/Borgs/BorgSwitchableTypeSystem.Lawset.cs +++ b/Content.Server/DeltaV/Silicons/Borgs/BorgSwitchableTypeSystem.Lawset.cs @@ -1,4 +1,6 @@ +using Content.Server.DeltaV.Silicons.Laws; using Content.Server.Silicons.Laws; +using Content.Shared.DeltaV.Silicons.Laws; using Content.Shared.Emag.Components; using Content.Shared.Emag.Systems; using Content.Shared.Silicons.Laws; @@ -13,11 +15,16 @@ namespace Content.Server.Silicons.Borgs; /// public sealed partial class BorgSwitchableTypeSystem { + [Dependency] private readonly SlavedBorgSystem _slavedBorg = default!; [Dependency] private readonly SiliconLawSystem _law = default!; private void ConfigureLawset(EntityUid uid, ProtoId id) { var laws = _law.GetLawset(id); + + if (TryComp(uid, out var slaved)) + _slavedBorg.AddLaw(laws, slaved.Law); + _law.SetLaws(laws.Laws, uid); // re-add law 0 and final law based on new lawset diff --git a/Content.Server/DeltaV/Silicons/Laws/SlavedBorgSystem.cs b/Content.Server/DeltaV/Silicons/Laws/SlavedBorgSystem.cs new file mode 100644 index 00000000000..584d0a263b1 --- /dev/null +++ b/Content.Server/DeltaV/Silicons/Laws/SlavedBorgSystem.cs @@ -0,0 +1,42 @@ +using Content.Server.Silicons.Laws; +using Content.Shared.DeltaV.Silicons.Laws; +using Content.Shared.Silicons.Laws; +using Content.Shared.Silicons.Laws.Components; +using Robust.Shared.Prototypes; + +namespace Content.Server.DeltaV.Silicons.Laws; + +/// +/// Handles adding the slave law for the first time. +/// Borg chassis switches preserve this on its own. +/// +public sealed class SlavedBorgSystem : SharedSlavedBorgSystem +{ + [Dependency] private readonly IPrototypeManager _proto = default!; + + public override void Initialize() + { + base.Initialize(); + + // need to run after so it doesnt get overriden by the actual lawset + SubscribeLocalEvent(OnGetSiliconLaws, after: [ typeof(SiliconLawSystem) ]); + } + + private void OnGetSiliconLaws(Entity ent, ref GetSiliconLawsEvent args) + { + if (ent.Comp.Added || !TryComp(ent, out var provider)) + return; + + if (provider.Lawset is {} lawset) + AddLaw(lawset, ent.Comp.Law); + ent.Comp.Added = true; // prevent opening the ui adding more law 0's + } + + /// + /// Adds the slave law to a lawset without checking if it was added already. + /// + public void AddLaw(SiliconLawset lawset, ProtoId law) + { + lawset.Laws.Insert(0, _proto.Index(law)); + } +} diff --git a/Content.Server/Silicons/Laws/SiliconLawSystem.cs b/Content.Server/Silicons/Laws/SiliconLawSystem.cs index 2cce871fb24..1dc8ae1c219 100644 --- a/Content.Server/Silicons/Laws/SiliconLawSystem.cs +++ b/Content.Server/Silicons/Laws/SiliconLawSystem.cs @@ -135,7 +135,7 @@ private void OnEmagLawsAdded(EntityUid uid, SiliconLawProviderComponent componen component.Lawset?.Laws.Insert(0, new SiliconLaw { LawString = Loc.GetString("law-emag-custom", ("name", name), ("title", Loc.GetString(component.Lawset.ObeysTo))), // DeltaV: pass name from variable - Order = 0 + Order = -1 // Goobstation - AI/borg law changes - borgs obeying AI }); //Add the secrecy law after the others diff --git a/Content.Shared/DeltaV/Silicons/Laws/SharedSlavedBorgSystem.cs b/Content.Shared/DeltaV/Silicons/Laws/SharedSlavedBorgSystem.cs new file mode 100644 index 00000000000..141badf2db0 --- /dev/null +++ b/Content.Shared/DeltaV/Silicons/Laws/SharedSlavedBorgSystem.cs @@ -0,0 +1,3 @@ +namespace Content.Shared.DeltaV.Silicons.Laws; + +public abstract class SharedSlavedBorgSystem : EntitySystem; diff --git a/Content.Shared/DeltaV/Silicons/Laws/SlavedBorgComponent.cs b/Content.Shared/DeltaV/Silicons/Laws/SlavedBorgComponent.cs new file mode 100644 index 00000000000..3c2dcd2226a --- /dev/null +++ b/Content.Shared/DeltaV/Silicons/Laws/SlavedBorgComponent.cs @@ -0,0 +1,26 @@ +using Content.Shared.Silicons.Laws; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.DeltaV.Silicons.Laws; + +/// +/// Adds a law no matter the default lawset. +/// Switching borg chassis type keeps this law. +/// +[RegisterComponent, NetworkedComponent, Access(typeof(SharedSlavedBorgSystem))] +public sealed partial class SlavedBorgComponent : Component +{ + /// + /// The law to add after loading the default laws or switching chassis. + /// This is assumed to be law 0 so gets inserted to the top of the laws. + /// + [DataField(required: true)] + public ProtoId Law; + + /// + /// Prevents adding the same law twice. + /// + [DataField] + public bool Added; +} diff --git a/Resources/Locale/en-US/_Goobstation/station-laws/laws.ftl b/Resources/Locale/en-US/_Goobstation/station-laws/laws.ftl new file mode 100644 index 00000000000..ee4fb931403 --- /dev/null +++ b/Resources/Locale/en-US/_Goobstation/station-laws/laws.ftl @@ -0,0 +1 @@ +laws-obeyai = You must obey orders given to you by the Station AI. diff --git a/Resources/Locale/en-US/station-laws/laws.ftl b/Resources/Locale/en-US/station-laws/laws.ftl index 50cba68f0fa..00662be926b 100644 --- a/Resources/Locale/en-US/station-laws/laws.ftl +++ b/Resources/Locale/en-US/station-laws/laws.ftl @@ -88,7 +88,7 @@ laws-owner-syndicate = Syndicate agents laws-owner-spider-clan = Spider Clan members law-emag-custom = You are to take the orders of {$name} and people they designate, they are your {$title}. -law-emag-secrecy = You are to maintain all secrets of {$name}, and act to keep them hidden, except when doing so would conflict with any previous law. +law-emag-secrecy = You are to maintain all secrets of {$faction}, and act to keep them hidden, except when doing so would conflict with any previous law. law-emag-require-panel = The panel must be open to use the EMAG. law-emag-cannot-emag-self = You cannot use the EMAG on yourself. diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml index c7fb4f50ee5..3c7dd74e22a 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml @@ -292,6 +292,8 @@ - AllAccessBorg - type: AccessReader access: [["Command"], ["Research"]] + - type: SlavedBorg # DeltaV: NT borgs are enslaved to the AI by default + law: ObeyAI - type: ShowJobIcons - type: InteractionPopup interactSuccessSound: diff --git a/Resources/Prototypes/_Goobstation/silicon-laws.yml b/Resources/Prototypes/_Goobstation/silicon-laws.yml new file mode 100644 index 00000000000..ba61b512043 --- /dev/null +++ b/Resources/Prototypes/_Goobstation/silicon-laws.yml @@ -0,0 +1,4 @@ +- type: siliconLaw + id: ObeyAI + order: 0 + lawString: laws-obeyai From 7c0e5aa240826b2796d68de00b1fab826c7d7644 Mon Sep 17 00:00:00 2001 From: Delta-V bot <135767721+DeltaV-Bot@users.noreply.github.com> Date: Sun, 1 Dec 2024 23:48:32 +0100 Subject: [PATCH 6/7] Automatic changelog update --- Resources/Changelog/DeltaVChangelog.yml | 28 ++++++++++++++----------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/Resources/Changelog/DeltaVChangelog.yml b/Resources/Changelog/DeltaVChangelog.yml index 6376790e471..d53334cecb7 100644 --- a/Resources/Changelog/DeltaVChangelog.yml +++ b/Resources/Changelog/DeltaVChangelog.yml @@ -1,16 +1,4 @@ Entries: -- author: FluffiestFloof - changes: - - message: Fixed PSB not being edible by Reptilian - type: Fix - id: 231 - time: '2024-02-08T15:38:11.0000000+00:00' -- author: Velcroboy - changes: - - message: Fixed martial artist access - type: Fix - id: 232 - time: '2024-02-08T15:39:24.0000000+00:00' - author: IamVelcroboy changes: - message: 'More improvements all around to Submarine Station as well as the addition @@ -3798,3 +3786,19 @@ id: 730 time: '2024-12-01T22:04:46.0000000+00:00' url: https://github.com/DeltaV-Station/Delta-v/pull/2335 +- author: deltanedas, Ilya246 + changes: + - message: Borgs have a new law that makes them obey the AI. + type: Add + id: 731 + time: '2024-12-01T22:48:13.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2337 +- author: Ilya246 + changes: + - message: AI's default lawset is now NTDefault. This should make it more station-oriented. + type: Tweak + - message: 'tweak: AI is now ion-stormable.' + type: Tweak + id: 732 + time: '2024-12-01T22:48:03.0000000+00:00' + url: https://github.com/DeltaV-Station/Delta-v/pull/2338 From 7f608b6fa3d573473f5f546ecec423e17692e6dc Mon Sep 17 00:00:00 2001 From: Stop-Signs Date: Sun, 1 Dec 2024 17:32:00 -0600 Subject: [PATCH 7/7] Superweapon Safe and spawner (#2322) * Meow * Update security.yml * This took me 45 minuets please dont roast me * Thanks milon * Fix failcheck * i hate everything --- .../DeltaV/Catalog/Fills/Lockers/security.yml | 21 +++++++++++++++++++ .../Markers/Spawners/Random/safes.yml | 11 ++++++++++ .../Markers/Spawners/Random/security.yml | 21 +++++++++++++++++++ .../Weapons/Guns/Battery/battery_guns.yml | 2 +- 4 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 Resources/Prototypes/DeltaV/Entities/Markers/Spawners/Random/security.yml diff --git a/Resources/Prototypes/DeltaV/Catalog/Fills/Lockers/security.yml b/Resources/Prototypes/DeltaV/Catalog/Fills/Lockers/security.yml index 94d0748b3c4..935dd8ff804 100644 --- a/Resources/Prototypes/DeltaV/Catalog/Fills/Lockers/security.yml +++ b/Resources/Prototypes/DeltaV/Catalog/Fills/Lockers/security.yml @@ -77,3 +77,24 @@ amount: 2 - id: MagazineRifle amount: 4 + +- type: entity + parent: GunSafe + id: GunSafeRocketLauncher + name: RPG safe + components: + - type: StorageFill + contents: + - id: WeaponLauncherRocket + - id: CartridgeRocket + prob: 0.2 + +- type: entity + parent: GunSafe + id: GunSafeBeamDevastator + name: Devastator safe + components: + - type: StorageFill + contents: + - id: WeaponBeamDevastator + diff --git a/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/Random/safes.yml b/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/Random/safes.yml index 375bdd1d383..6ad9fc975b3 100644 --- a/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/Random/safes.yml +++ b/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/Random/safes.yml @@ -53,3 +53,14 @@ - id: GunSafeEnergyGunMini - id: GunSafePistolUniversal - id: GunSafeSubMachineGunWt550 + +- type: entity + parent: BaseGunSafeSpawner + id: SuperweaponSafeSpawner + suffix: Superweapon + components: + - type: EntityTableSpawner + table: !type:GroupSelector + children: + - id: GunSafeBeamDevastator + - id: GunSafeRocketLauncher \ No newline at end of file diff --git a/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/Random/security.yml b/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/Random/security.yml new file mode 100644 index 00000000000..2fda11f0e54 --- /dev/null +++ b/Resources/Prototypes/DeltaV/Entities/Markers/Spawners/Random/security.yml @@ -0,0 +1,21 @@ +- type: entity + id: LootSpawnerSecuritySuperweapon + name: security superweapon spawner + suffix: superweapon + parent: MarkerBase + components: + - type: EntityTableSpawner + table: !type:NestedSelector + tableId: RandomSuperweaponTable + +#Table +- type: entityTable + id: RandomSuperweaponTable + table: !type:GroupSelector + children: + - !type:AllSelector + children: + - id: WeaponLauncherRocket + - id: CartridgeRocket + prob: 0.2 + - id: WeaponBeamDevastator \ No newline at end of file diff --git a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml index ef2df6b0291..8885134daef 100644 --- a/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml +++ b/Resources/Prototypes/DeltaV/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml @@ -298,7 +298,7 @@ - type: entity parent: BaseWeaponBattery - id: WeaponBeamDevestator + id: WeaponBeamDevastator name: beam devastator description: A powerful energy weapon that fires multiple rapid laser beams per second components: