diff --git a/Content.Shared/Weapons/Ranged/Components/BallisticAmmoProviderComponent.cs b/Content.Shared/Weapons/Ranged/Components/BallisticAmmoProviderComponent.cs index 672d3da5f8..7b6a345f8b 100644 --- a/Content.Shared/Weapons/Ranged/Components/BallisticAmmoProviderComponent.cs +++ b/Content.Shared/Weapons/Ranged/Components/BallisticAmmoProviderComponent.cs @@ -51,6 +51,13 @@ public sealed partial class BallisticAmmoProviderComponent : Component [AutoNetworkedField] public bool Cycled = true; + /// + /// Is the magazine allowed to be cycled + /// + [ViewVariables(VVAccess.ReadWrite), DataField("cycleable")] + [AutoNetworkedField] + public bool Cycleable = true; + /// /// Is it okay for this entity to directly transfer its valid ammunition into another provider? /// diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs index fd60b4fbf1..29913cd73d 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs @@ -132,13 +132,13 @@ public abstract partial class SharedGunSystem { if (!args.CanAccess || !args.CanInteract || args.Hands == null) return; - - args.Verbs.Add(new Verb() - { - Text = Loc.GetString("gun-ballistic-cycle"), - Disabled = GetBallisticShots(component) == 0, - Act = () => ManualCycle(uid, component, Transform(uid).MapPosition, args.User), - }); + if (component.Cycleable == true) + args.Verbs.Add(new Verb() + { + Text = Loc.GetString("gun-ballistic-cycle"), + Disabled = GetBallisticShots(component) == 0, + Act = () => ManualCycle(uid, component, Transform(uid).MapPosition, args.User), + }); } private void OnBallisticExamine(EntityUid uid, BallisticAmmoProviderComponent component, ExaminedEvent args) diff --git a/Resources/Prototypes/Catalog/uplink_catalog.yml b/Resources/Prototypes/Catalog/uplink_catalog.yml index df7b7c54e2..734cca56e0 100644 --- a/Resources/Prototypes/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/Catalog/uplink_catalog.yml @@ -910,7 +910,7 @@ description: uplink-disposable-turret-desc productEntity: ToolboxElectricalTurretFilled cost: - Telecrystal: 12 + Telecrystal: 8 categories: - UplinkJob conditions: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/turrets.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/turrets.yml index 7c29a51053..c620fb6956 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/turrets.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/turrets.yml @@ -8,7 +8,7 @@ - type: InteractionOutline - type: Sprite sprite: Objects/Weapons/Guns/Turrets/turrets.rsi - drawdepth: WallMountedItems + drawdepth: Mobs layers: - state: syndie_broken - type: Damageable @@ -55,7 +55,7 @@ ballistic-ammo: !type:Container - type: Sprite sprite: Objects/Weapons/Guns/Turrets/turrets.rsi - drawdepth: WallMountedItems + drawdepth: Mobs layers: - state: syndie_lethal - type: InteractionPopup @@ -152,14 +152,22 @@ min: 1 max: 1 - type: Gun - fireRate: 2.5 + fireRate: 2 selectedMode: FullAuto availableModes: - FullAuto soundGunshot: /Audio/Weapons/Guns/Gunshots/gun_sentry.ogg - type: BallisticAmmoProvider proto: CartridgePistol - capacity: 125 + capacity: 50 + cycleable: false + - type: Construction + deconstructionTarget: null + graph: WeaponTurretSyndicateDisposable + node: disposableTurret + - type: Repairable + qualityNeeded: "Anchoring" + doAfterDelay: 3 - type: entity parent: BaseWeaponTurret diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/machines/disposable_turret.yml b/Resources/Prototypes/Recipes/Construction/Graphs/machines/disposable_turret.yml new file mode 100644 index 0000000000..1421a889b1 --- /dev/null +++ b/Resources/Prototypes/Recipes/Construction/Graphs/machines/disposable_turret.yml @@ -0,0 +1,16 @@ +- type: constructionGraph + id: WeaponTurretSyndicateDisposable + start: disposableTurret + graph: + - node: disposableTurret + entity: WeaponTurretSyndicateDisposable + edges: + - to: disposableTurret + completed: + - !type:SpawnPrototype + prototype: ToolboxElectricalTurret + amount: 1 + - !type:DeleteEntity {} + steps: + - tool: Screwing + doAfter: 10