From 0dd30c87a65634b4807441be95b286401f07a149 Mon Sep 17 00:00:00 2001 From: Southbridge <7013162+southbridge-fur@users.noreply.github.com> Date: Thu, 5 Jun 2025 19:24:02 -0400 Subject: [PATCH] Reorganized Turret Prototypes (#37863) * Reorganized turret prototypes * Added circuit board to migrations * Fixed frequencies * Fixed typos and set the base control panel to abstract since it's technically not constructable yet * Fixed the typo in the migrations * Addressed changes * Whitespace fixes * Whitespace check fix --------- Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com> --- .../Devices/Circuitboards/Machine/turrets.yml | 28 +++++++--- .../Weapons/Guns/Turrets/turrets_energy.yml | 54 ++++++++++++++----- .../Structures/Wallmounts/turret_controls.yml | 53 +++++++++++++----- Resources/migration.yml | 5 ++ 4 files changed, 105 insertions(+), 35 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/turrets.yml b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/turrets.yml index 5bbf2bb596..d9d8a848c3 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/turrets.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Circuitboards/Machine/turrets.yml @@ -1,6 +1,7 @@ - type: entity - id: WeaponEnergyTurretStationMachineCircuitboard + abstract: true parent: BaseMachineCircuitboard + id: WeaponEnergyTurretStationMachineCircuitboardBase name: sentry turret machine board description: A machine printed circuit board for a sentry turret. components: @@ -13,7 +14,7 @@ TurretCompatibleWeapon: amount: 1 defaultPrototype: WeaponLaserCannon - examineName: construction-insert-info-examine-name-laser-cannon + examineName: construction-insert-info-examine-name-laser-cannon ProximitySensor: amount: 1 defaultPrototype: ProximitySensor @@ -21,16 +22,27 @@ PowerCell: amount: 1 defaultPrototype: PowerCellMedium - examineName: construction-insert-info-examine-name-power-cell - + examineName: construction-insert-info-examine-name-power-cell + - type: entity + parent: WeaponEnergyTurretStationMachineCircuitboardBase id: WeaponEnergyTurretAIMachineCircuitboard - parent: WeaponEnergyTurretStationMachineCircuitboard - name: AI sentry turret machine board - description: A machine printed circuit board for an AI sentry turret. + suffix: AI, Silicon components: - type: Sprite sprite: Objects/Misc/module.rsi state: command - type: MachineBoard - prototype: WeaponEnergyTurretAI \ No newline at end of file + prototype: WeaponEnergyTurretAI + +- type: entity + parent: WeaponEnergyTurretStationMachineCircuitboardBase + id: WeaponEnergyTurretSecurityMachineCircuitboard + suffix: Security + components: + - type: Sprite + sprite: Objects/Misc/module.rsi + state: security + - type: MachineBoard + prototype: WeaponEnergyTurretSecurity + diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Turrets/turrets_energy.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Turrets/turrets_energy.yml index a8b3c9a88c..077d5dc5fd 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Turrets/turrets_energy.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Turrets/turrets_energy.yml @@ -1,7 +1,8 @@ - type: entity + abstract: true parent: [BaseWeaponEnergyTurret, ConstructibleMachine] - id: WeaponEnergyTurretStation - name: security turret + id: WeaponEnergyTurretStationBase + name: sentry turret description: A high-tech autonomous weapons system designed to keep unauthorized personnel out of sensitive areas. components: - type: Fixtures @@ -72,8 +73,6 @@ - type: NpcFactionMember factions: - AllHostile - - type: AccessReader - access: [["Security"]] - type: ProjectileBatteryAmmoProvider proto: BulletEnergyTurretDisabler fireCost: 100 @@ -83,11 +82,6 @@ fireCost: 100 - proto: BulletEnergyTurretLaser fireCost: 100 - - type: TurretTargetSettings - exemptAccessLevels: - - Security - - Borg - - BasicSilicon - type: DeployableTurret retractedDamageModifierSetId: Metallic deployedDamageModifierSetId: FlimsyMetallic @@ -140,16 +134,13 @@ locked: true unlockOnClick: false - type: LockedWiresPanel - - type: Machine - board: WeaponEnergyTurretStationMachineCircuitboard - type: UseDelay delay: 1.2 - type: entity - parent: WeaponEnergyTurretStation + parent: WeaponEnergyTurretStationBase id: WeaponEnergyTurretAI - name: AI sentry turret - description: A high-tech autonomous weapons system under the direct control of a local artifical intelligence. + suffix: AI, Silicon components: - type: AccessReader access: [["StationAi"], ["ResearchDirector"]] @@ -163,3 +154,38 @@ receiveFrequencyId: TurretControlAI transmitFrequencyId: TurretAI +- type: entity + parent: WeaponEnergyTurretStationBase + id: WeaponEnergyTurretSecurity + suffix: Security + components: + - type: AccessReader + access: [["StationAi"], ["Security"]] + - type: TurretTargetSettings + exemptAccessLevels: + - Security + - Borg + - BasicSilicon + - type: Machine + board: WeaponEnergyTurretSecurityMachineCircuitboard + - type: DeviceNetwork + receiveFrequencyId: TurretControl + transmitFrequencyId: Turret + +- type: entity + parent: WeaponEnergyTurretStationBase + id: WeaponEnergyTurretCommand + suffix: Command + components: + - type: AccessReader + access: [["StationAi"], ["Command"]] + - type: TurretTargetSettings + exemptAccessLevels: + - Command + - Borg + - BasicSilicon + - type: Machine + board: WeaponEnergyTurretSecurityMachineCircuitboard + - type: DeviceNetwork + receiveFrequencyId: TurretControl + transmitFrequencyId: Turret diff --git a/Resources/Prototypes/Entities/Structures/Wallmounts/turret_controls.yml b/Resources/Prototypes/Entities/Structures/Wallmounts/turret_controls.yml index 95a3e74b1f..e65530509b 100644 --- a/Resources/Prototypes/Entities/Structures/Wallmounts/turret_controls.yml +++ b/Resources/Prototypes/Entities/Structures/Wallmounts/turret_controls.yml @@ -45,10 +45,11 @@ - Wallmount - type: entity + abstract: true parent: WeaponEnergyTurretControlPanelFrame - id: WeaponEnergyTurretStationControlPanel - name: security turret control panel - description: A wall-mounted interface for remotely configuring the operational parameters of linked security turrets. + id: WeaponEnergyTurretStationControlPanelBase + name: sentry turret control panel + description: A wall-mounted interface for remotely configuring the operational parameters of linked sentry turrets. components: - type: Appearance - type: Sprite @@ -79,13 +80,6 @@ 0: { state: stun } 1: { state: lethal } - type: StationAiWhitelist - - type: AccessReader - access: [["Security"]] - - type: TurretTargetSettings - exemptAccessLevels: - - Security - - Borg - - BasicSilicon - type: DeployableTurretController accessGroups: - Cargo @@ -172,10 +166,9 @@ # node: finish - type: entity - parent: WeaponEnergyTurretStationControlPanel + parent: WeaponEnergyTurretStationControlPanelBase id: WeaponEnergyTurretAIControlPanel - name: AI sentry turret control panel - description: A wall-mounted interface that allows a local artifical intelligence to adjust the operational parameters of linked sentry turrets. + suffix: AI, Silicon components: - type: AccessReader access: [["StationAi"], ["ResearchDirector"]] @@ -196,3 +189,37 @@ accessLevels: - BasicSilicon - Borg + +- type: entity + parent: WeaponEnergyTurretStationControlPanelBase + id: WeaponEnergyTurretSecurityControlPanel + suffix: Security + components: + - type: AccessReader + access: [["StationAi"], ["Security"]] + #- type: ContainerFill - Will be added in a later PR + # containers: + # board: + # - WeaponEnergyTurretSecurityControlPanelElectronics + - type: TurretTargetSettings + exemptAccessLevels: + - Security + - BasicSilicon + - Borg + +- type: entity + parent: WeaponEnergyTurretStationControlPanelBase + id: WeaponEnergyTurretCommandControlPanel + suffix: Command + components: + - type: AccessReader + access: [["StationAi"], ["Command"]] + #- type: ContainerFill - Will be added in a later PR + # containers: + # board: + # - WeaponEnergyTurretCommandControlPanelElectronics + - type: TurretTargetSettings + exemptAccessLevels: + - Command + - BasicSilicon + - Borg diff --git a/Resources/migration.yml b/Resources/migration.yml index 73f52a3423..d560bf8d6b 100644 --- a/Resources/migration.yml +++ b/Resources/migration.yml @@ -642,6 +642,11 @@ ClothingNeckCloakMiner: null MatterBinStockPart: MicroManipulatorStockPart CapacitorStockPart: MicroManipulatorStockPart +# 2025-05-26 Turrets +WeaponEnergyTurretStation: WeaponEnergyTurretSecurity +WeaponEnergyTurretStationControlPanel: WeaponEnergyTurretSecurityControlPanel +WeaponEnergyTurretStationMachineCircuitboard: WeaponEnergyTurretSecurityMachineCircuitboard + # 2025-05-30 SpawnHonkBot: SpawnMobHonkBot -- 2.51.2